|
|
/*
|
|
|
* 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/).
|
|
|
*/
|
|
|
(() => {
|
|
|
var exports = {};
|
|
|
exports.id = "app/page";
|
|
|
exports.ids = ["app/page"];
|
|
|
exports.modules = {
|
|
|
|
|
|
/***/ "./action-async-storage.external":
|
|
|
/*!****************************************************************************!*\
|
|
|
!*** external "next/dist/client/components/action-async-storage.external" ***!
|
|
|
\****************************************************************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("next/dist/client/components/action-async-storage.external");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "../../client/components/action-async-storage.external":
|
|
|
/*!*******************************************************************************!*\
|
|
|
!*** external "next/dist/client/components/action-async-storage.external.js" ***!
|
|
|
\*******************************************************************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("next/dist/client/components/action-async-storage.external.js");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./request-async-storage.external":
|
|
|
/*!*****************************************************************************!*\
|
|
|
!*** external "next/dist/client/components/request-async-storage.external" ***!
|
|
|
\*****************************************************************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("next/dist/client/components/request-async-storage.external");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "../../client/components/request-async-storage.external":
|
|
|
/*!********************************************************************************!*\
|
|
|
!*** external "next/dist/client/components/request-async-storage.external.js" ***!
|
|
|
\********************************************************************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("next/dist/client/components/request-async-storage.external.js");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "./static-generation-async-storage.external":
|
|
|
/*!***************************************************************************************!*\
|
|
|
!*** external "next/dist/client/components/static-generation-async-storage.external" ***!
|
|
|
\***************************************************************************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("next/dist/client/components/static-generation-async-storage.external");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "../../client/components/static-generation-async-storage.external":
|
|
|
/*!******************************************************************************************!*\
|
|
|
!*** external "next/dist/client/components/static-generation-async-storage.external.js" ***!
|
|
|
\******************************************************************************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("next/dist/client/components/static-generation-async-storage.external.js");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "next/dist/compiled/next-server/app-page.runtime.dev.js":
|
|
|
/*!*************************************************************************!*\
|
|
|
!*** external "next/dist/compiled/next-server/app-page.runtime.dev.js" ***!
|
|
|
\*************************************************************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("next/dist/compiled/next-server/app-page.runtime.dev.js");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "assert":
|
|
|
/*!*************************!*\
|
|
|
!*** external "assert" ***!
|
|
|
\*************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("assert");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "buffer":
|
|
|
/*!*************************!*\
|
|
|
!*** external "buffer" ***!
|
|
|
\*************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("buffer");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "child_process":
|
|
|
/*!********************************!*\
|
|
|
!*** external "child_process" ***!
|
|
|
\********************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("child_process");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "crypto":
|
|
|
/*!*************************!*\
|
|
|
!*** external "crypto" ***!
|
|
|
\*************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("crypto");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "events":
|
|
|
/*!*************************!*\
|
|
|
!*** external "events" ***!
|
|
|
\*************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("events");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "fs":
|
|
|
/*!*********************!*\
|
|
|
!*** external "fs" ***!
|
|
|
\*********************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("fs");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "fs/promises":
|
|
|
/*!******************************!*\
|
|
|
!*** external "fs/promises" ***!
|
|
|
\******************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("fs/promises");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "http":
|
|
|
/*!***********************!*\
|
|
|
!*** external "http" ***!
|
|
|
\***********************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("http");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "https":
|
|
|
/*!************************!*\
|
|
|
!*** external "https" ***!
|
|
|
\************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("https");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "net":
|
|
|
/*!**********************!*\
|
|
|
!*** external "net" ***!
|
|
|
\**********************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("net");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "node:child_process":
|
|
|
/*!*************************************!*\
|
|
|
!*** external "node:child_process" ***!
|
|
|
\*************************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("node:child_process");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "node:crypto":
|
|
|
/*!******************************!*\
|
|
|
!*** external "node:crypto" ***!
|
|
|
\******************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("node:crypto");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "node:process":
|
|
|
/*!*******************************!*\
|
|
|
!*** external "node:process" ***!
|
|
|
\*******************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("node:process");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "os":
|
|
|
/*!*********************!*\
|
|
|
!*** external "os" ***!
|
|
|
\*********************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("os");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "path":
|
|
|
/*!***********************!*\
|
|
|
!*** external "path" ***!
|
|
|
\***********************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("path");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "process":
|
|
|
/*!**************************!*\
|
|
|
!*** external "process" ***!
|
|
|
\**************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("process");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "stream":
|
|
|
/*!*************************!*\
|
|
|
!*** external "stream" ***!
|
|
|
\*************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("stream");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "tls":
|
|
|
/*!**********************!*\
|
|
|
!*** external "tls" ***!
|
|
|
\**********************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("tls");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "tty":
|
|
|
/*!**********************!*\
|
|
|
!*** external "tty" ***!
|
|
|
\**********************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("tty");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "url":
|
|
|
/*!**********************!*\
|
|
|
!*** external "url" ***!
|
|
|
\**********************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("url");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "util":
|
|
|
/*!***********************!*\
|
|
|
!*** external "util" ***!
|
|
|
\***********************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("util");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "zlib":
|
|
|
/*!***********************!*\
|
|
|
!*** external "zlib" ***!
|
|
|
\***********************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = require("zlib");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/add.svg":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/icons/add.svg ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _defs, _mask;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgAdd = function SvgAdd(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 16,\n height: 16,\n fill: \"none\"\n }, props), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n id: \"add_svg__a\",\n d: \"M0 0h16v16H0z\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", null, _mask || (_mask = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"mask\", {\n id: \"add_svg__b\",\n fill: \"#fff\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"use\", {\n xlinkHref: \"#add_svg__a\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n mask: \"url(#add_svg__b)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M13.33 6.67A6.66 6.66 0 0 0 6.67 0C2.98 0 0 2.98 0 6.67a6.66 6.66 0 0 0 6.67 6.66c3.68 0 6.66-2.98 6.66-6.66Z\",\n transform: \"translate(1.333 1.333)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M0 0v5.33\",\n transform: \"translate(8 5.333)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M0 0h5.33\",\n transform: \"translate(5.333 8)\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgAdd);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvYWRkLnN2ZyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBLHNCQUFzQixzRUFBc0UsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQyxrQkFBa0I7QUFDM1E7QUFDL0I7QUFDQSxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLHlDQUF5QyxnREFBbUIsNEJBQTRCLGdEQUFtQjtBQUM5RztBQUNBO0FBQ0EsR0FBRyxrQkFBa0IsZ0RBQW1CLDJDQUEyQyxnREFBbUI7QUFDdEc7QUFDQTtBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQSxHQUFHLGtCQUFrQixnREFBbUI7QUFDeEM7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsaUVBQWUsTUFBTSIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2ljb25zL2FkZC5zdmc/YzAzYSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX2RlZnMsIF9tYXNrO1xuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiA/IE9iamVjdC5hc3NpZ24uYmluZCgpIDogZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbnZhciBTdmdBZGQgPSBmdW5jdGlvbiBTdmdBZGQocHJvcHMpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIF9leHRlbmRzKHtcbiAgICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFxuICAgIHhtbG5zWGxpbms6IFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLFxuICAgIHdpZHRoOiAxNixcbiAgICBoZWlnaHQ6IDE2LFxuICAgIGZpbGw6IFwibm9uZVwiXG4gIH0sIHByb3BzKSwgX2RlZnMgfHwgKF9kZWZzID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkZWZzXCIsIG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgaWQ6IFwiYWRkX3N2Z19fYVwiLFxuICAgIGQ6IFwiTTAgMGgxNnYxNkgwelwiXG4gIH0pKSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZ1wiLCBudWxsLCBfbWFzayB8fCAoX21hc2sgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcIm1hc2tcIiwge1xuICAgIGlkOiBcImFkZF9zdmdfX2JcIixcbiAgICBmaWxsOiBcIiNmZmZcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInVzZVwiLCB7XG4gICAgeGxpbmtIcmVmOiBcIiNhZGRfc3ZnX19hXCJcbiAgfSkpKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICBtYXNrOiBcInVybCgjYWRkX3N2Z19fYilcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIHN0eWxlOiB7XG4gICAgICBzdHJva2U6IFwiIzMzM1wiLFxuICAgICAgc3Ryb2tlV2lkdGg6IDEuMzMzMzMzMzMzMzMzMzMzMyxcbiAgICAgIHN0cm9rZU9wYWNpdHk6IDEsXG4gICAgICBzdHJva2VEYXNoYXJyYXk6IFwiMCAwXCJcbiAgICB9LFxuICAgIGQ6IFwiTTEzLjMzIDYuNjdBNi42NiA2LjY2IDAgMCAwIDYuNjcgMEMyLjk4IDAgMCAyLjk4IDAgNi42N2E2LjY2IDYuNjYgMCAwIDAgNi42NyA2LjY2YzMuNjggMCA2LjY2LTIuOTggNi42Ni02LjY2WlwiLFxuICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoMS4zMzMgMS4zMzMpXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIHN0cm9rZTogXCIjMzMzXCIsXG4gICAgICBzdHJva2VXaWR0aDogMS4zMzMzMzMzMzMzMzMzMzMzLFxuICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgIHN0cm9rZURhc2hhcnJheTogXCIwIDBcIlxuICAgIH0sXG4gICAgZDogXCJNMCAwdjUuMzNcIixcbiAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDggNS4zMzMpXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIHN0cm9rZTogXCIjMzMzXCIsXG4gICAgICBzdHJva2VXaWR0aDogMS4zMzMzMzMzMzMzMzMzMzMzLFxuICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgIHN0cm9rZURhc2hhcnJheTogXCIwIDBcIlxuICAgIH0sXG4gICAgZDogXCJNMCAwaDUuMzNcIixcbiAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDUuMzMzIDgpXCJcbiAgfSkpKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgU3ZnQWRkOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/add.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/arrow.svg":
|
|
|
/*!*****************************!*\
|
|
|
!*** ./app/icons/arrow.svg ***!
|
|
|
\*****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgArrow = function SvgArrow(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n className: \"arrow_svg__icon--SJP_d\",\n width: 16,\n height: 16,\n fill: \"none\",\n style: {\n minWidth: 16,\n minHeight: 16\n }\n }, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n \"data-follow-fill\": \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.248 14.444a.625.625 0 0 1-.005-.884l5.068-5.12a.625.625 0 0 0 0-.88L5.243 2.44a.625.625 0 1 1 .889-.88l5.067 5.121c.723.73.723 1.907 0 2.638l-5.067 5.12a.625.625 0 0 1-.884.005Z\",\n fill: \"currentColor\"\n })));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgArrow);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvYXJyb3cuc3ZnIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0Esc0JBQXNCLHNFQUFzRSxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjtBQUMzUTtBQUMvQjtBQUNBLHNCQUFzQixnREFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcseUNBQXlDLGdEQUFtQjtBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsaUVBQWUsUUFBUSIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2ljb25zL2Fycm93LnN2Zz81Y2Q0Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfcGF0aDtcbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gPyBPYmplY3QuYXNzaWduLmJpbmQoKSA6IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG52YXIgU3ZnQXJyb3cgPSBmdW5jdGlvbiBTdmdBcnJvdyhwcm9wcykge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX2V4dGVuZHMoe1xuICAgIGNsYXNzTmFtZTogXCJhcnJvd19zdmdfX2ljb24tLVNKUF9kXCIsXG4gICAgd2lkdGg6IDE2LFxuICAgIGhlaWdodDogMTYsXG4gICAgZmlsbDogXCJub25lXCIsXG4gICAgc3R5bGU6IHtcbiAgICAgIG1pbldpZHRoOiAxNixcbiAgICAgIG1pbkhlaWdodDogMTZcbiAgICB9XG4gIH0sIHByb3BzKSwgX3BhdGggfHwgKF9wYXRoID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBcImRhdGEtZm9sbG93LWZpbGxcIjogXCJjdXJyZW50Q29sb3JcIixcbiAgICBmaWxsUnVsZTogXCJldmVub2RkXCIsXG4gICAgY2xpcFJ1bGU6IFwiZXZlbm9kZFwiLFxuICAgIGQ6IFwiTTUuMjQ4IDE0LjQ0NGEuNjI1LjYyNSAwIDAgMS0uMDA1LS44ODRsNS4wNjgtNS4xMmEuNjI1LjYyNSAwIDAgMCAwLS44OEw1LjI0MyAyLjQ0YS42MjUuNjI1IDAgMSAxIC44ODktLjg4bDUuMDY3IDUuMTIxYy43MjMuNzMuNzIzIDEuOTA3IDAgMi42MzhsLTUuMDY3IDUuMTJhLjYyNS42MjUgMCAwIDEtLjg4NC4wMDVaXCIsXG4gICAgZmlsbDogXCJjdXJyZW50Q29sb3JcIlxuICB9KSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IFN2Z0Fycm93OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/arrow.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/bot.svg":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/icons/bot.svg ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _defs, _rect, _mask, _mask2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgBot = function SvgBot(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 30,\n height: 30,\n fill: \"none\"\n }, props), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n id: \"bot_svg__a\",\n d: \"M0 0h30v30H0z\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n id: \"bot_svg__c\",\n d: \"M0 0h20.455v20.455H0z\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", null, _rect || (_rect = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"rect\", {\n width: 30,\n height: 30,\n fill: \"#E7F8FF\",\n rx: 10\n })), _mask || (_mask = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"mask\", {\n id: \"bot_svg__b\",\n fill: \"#fff\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"use\", {\n xlinkHref: \"#bot_svg__a\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n mask: \"url(#bot_svg__b)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n transform: \"translate(4.773 4.773)\"\n }, _mask2 || (_mask2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"mask\", {\n id: \"bot_svg__d\",\n fill: \"#fff\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"use\", {\n xlinkHref: \"#bot_svg__c\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n mask: \"url(#bot_svg__d)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n fillRule: \"evenodd\",\n style: {\n fill: \"#1f948c\"\n },\n d: \"M19.11 8.37c.17-.52.26-1.06.26-1.61 0-.9-.24-1.79-.71-2.57a5.24 5.24 0 0 0-4.53-2.59c-.37 0-.73.04-1.09.11A5.201 5.201 0 0 0 9.17 0h-.04C6.86 0 4.86 1.44 4.16 3.57A5.11 5.11 0 0 0 .71 6.04C.24 6.83 0 7.72 0 8.63c0 1.27.48 2.51 1.35 3.45-.18.52-.27 1.07-.27 1.61 0 .91.25 1.8.71 2.58 1.13 1.94 3.41 2.94 5.63 2.47a5.18 5.18 0 0 0 3.86 1.71h.05c2.26 0 4.27-1.44 4.97-3.57a5.132 5.132 0 0 0 3.45-2.47c.46-.78.7-1.67.7-2.58 0-1.28-.48-2.51-1.34-3.46ZM8.947 18.158c-.04.03-.08.05-.12.07.7.58 1.57.89 2.48.89h.01c2.14 0 3.88-1.72 3.88-3.83v-4.76c0-.02-.02-.04-.04-.05l-1.74-.99v5.75c0 .23-.13.45-.34.57l-4.13 2.35Zm-.67-1.153 4.17-2.38c.02-.01.03-.03.03-.05v-1.99l-5.04 2.87c-.21.12-.47.12-.68 0l-4.13-2.35c-.04-.02-.09-.06-.12-.07-.04.21-.06.43-.06.65 0 .67.18 1.33.52 1.92v-.01c.7 1.19 1.98 1.92 3.37 1.92.68 0 1.35-.18 1.94-.51ZM3.903 5.168v-.14c-.85.31-1.57.9-2.02 1.68a3.78 3.78 0 0 0-.52 1.91c0 1.37.74 2.64 1.94 3.33l4.17 2.37c.02.01.04.01.06 0l1.75-1-5.04-2.87a.64.64 0 0 1-.34-.57v-4.71Zm13.253 3.337-4.18-2.38c-.02 0-.04 0-.06.01l-1.74.99 5.04 2.87c.21.12.34.34.34.58v4.85c1.52-.56 2.54-1.99 2.54-3.6 0-1.37-.74-2.63-1.94-3.32ZM8.014 5.83c-.02.01-.03.03-.03.05v1.99L13.024 5a.692.692 0 0 1 .68 0l4.13 2.35c.04.02.08.05.12.07.03-.21.05-.43.05-.65 0-2.11-1.74-3.83-3.88-3.83-.68 0-1.35.18-1.94.51l-4.17 2.38Zm1.133-4.492c-2.15 0-3.89 1.72-3.89 3.83v4.76c0 .02.02.03.03.04l1.75 1v-5.75c0-.23.13-.45.34-.57l4.13-2.35c.04-.03.09-.06.12-.07-.7-.58-1.58-.89-2.48-.89ZM7.983 11.51l2.24 1.27 2.25-1.27V8.95l-2.25-1.28-2.24 1.28v2.56Z\"\n }))))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgBot);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvYm90LnN2ZyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBLHNCQUFzQixzRUFBc0UsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQyxrQkFBa0I7QUFDM1E7QUFDL0I7QUFDQSxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLHlDQUF5QyxnREFBbUIsNEJBQTRCLGdEQUFtQjtBQUM5RztBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQSxHQUFHLGtCQUFrQixnREFBbUIsMkNBQTJDLGdEQUFtQjtBQUN0RztBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsbUNBQW1DLGdEQUFtQjtBQUN6RDtBQUNBO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBLEdBQUcsa0JBQWtCLGdEQUFtQjtBQUN4QztBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQSxHQUFHLG1DQUFtQyxnREFBbUI7QUFDekQ7QUFDQTtBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQSxHQUFHLGtCQUFrQixnREFBbUI7QUFDeEM7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLEdBQUc7QUFDSDtBQUNBLGlFQUFlLE1BQU0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9pY29ucy9ib3Quc3ZnP2MxYjMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9kZWZzLCBfcmVjdCwgX21hc2ssIF9tYXNrMjtcbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gPyBPYmplY3QuYXNzaWduLmJpbmQoKSA6IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG52YXIgU3ZnQm90ID0gZnVuY3Rpb24gU3ZnQm90KHByb3BzKSB7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCBfZXh0ZW5kcyh7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICB4bWxuc1hsaW5rOiBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIixcbiAgICB3aWR0aDogMzAsXG4gICAgaGVpZ2h0OiAzMCxcbiAgICBmaWxsOiBcIm5vbmVcIlxuICB9LCBwcm9wcyksIF9kZWZzIHx8IChfZGVmcyA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGVmc1wiLCBudWxsLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGlkOiBcImJvdF9zdmdfX2FcIixcbiAgICBkOiBcIk0wIDBoMzB2MzBIMHpcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBpZDogXCJib3Rfc3ZnX19jXCIsXG4gICAgZDogXCJNMCAwaDIwLjQ1NXYyMC40NTVIMHpcIlxuICB9KSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImdcIiwgbnVsbCwgX3JlY3QgfHwgKF9yZWN0ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJyZWN0XCIsIHtcbiAgICB3aWR0aDogMzAsXG4gICAgaGVpZ2h0OiAzMCxcbiAgICBmaWxsOiBcIiNFN0Y4RkZcIixcbiAgICByeDogMTBcbiAgfSkpLCBfbWFzayB8fCAoX21hc2sgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcIm1hc2tcIiwge1xuICAgIGlkOiBcImJvdF9zdmdfX2JcIixcbiAgICBmaWxsOiBcIiNmZmZcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInVzZVwiLCB7XG4gICAgeGxpbmtIcmVmOiBcIiNib3Rfc3ZnX19hXCJcbiAgfSkpKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICBtYXNrOiBcInVybCgjYm90X3N2Z19fYilcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImdcIiwge1xuICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoNC43NzMgNC43NzMpXCJcbiAgfSwgX21hc2syIHx8IChfbWFzazIgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcIm1hc2tcIiwge1xuICAgIGlkOiBcImJvdF9zdmdfX2RcIixcbiAgICBmaWxsOiBcIiNmZmZcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInVzZVwiLCB7XG4gICAgeGxpbmtIcmVmOiBcIiNib3Rfc3ZnX19jXCJcbiAgfSkpKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICBtYXNrOiBcInVybCgjYm90X3N2Z19fZClcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGZpbGxSdWxlOiBcImV2ZW5vZGRcIixcbiAgICBzdHlsZToge1xuICAgICAgZmlsbDogXCIjMWY5NDhjXCJcbiAgICB9LFxuICAgIGQ6IFwiTTE5LjExIDguMzdjLjE3LS41Mi4yNi0xLjA2LjI2LTEuNjEgMC0uOS0uMjQtMS43OS0uNzEtMi41N2E1LjI0IDUuMjQgMCAwIDAtNC41My0yLjU5Yy0uMzcgMC0uNzMuMDQtMS4wOS4xMUE1LjIwMSA1LjIwMSAwIDAgMCA5LjE3IDBoLS4wNEM2Ljg2IDAgNC44NiAxLjQ0IDQuMTYgMy41N0E1LjExIDUuMTEgMCAwIDAgLjcxIDYuMDRDLjI0IDYuODMgMCA3LjcyIDAgOC42M2MwIDEuMjcuNDggMi41MSAxLjM1IDMuNDUtLjE4LjUyLS4yNyAxLjA3LS4yNyAxLjYxIDAgLjkxLjI1IDEuOC43MSAyLjU4IDEuMTMgMS45NCAzLjQxIDIuOTQgNS42MyAyLjQ3YTUuMTggNS4xOCAwIDAgMCAzLjg2IDEuNzFoLjA1YzIuMjYgMCA0LjI3LTEuNDQgNC45Ny0zLjU3YTUuMTMyIDUuMTMyIDAgMCAwIDMuNDUtMi40N2MuNDYtLjc4LjctMS42Ny43LTIuNTggMC0xLjI4LS40OC0yLjUxLTEuMzQtMy40NlpNOC45NDcgMTguMTU4Yy0uMDQuMDMtLjA4LjA1LS4xMi4wNy43LjU4IDEuNTcuODkgMi40OC44OWguMDFjMi4xNCAwIDMuODgtMS43MiAzLjg4LTMuODN2LTQuNzZjMC0uMDItLjAyLS4wNC0uMDQtLjA1bC0xLjc0LS45OXY1Ljc1YzAgLjIzLS4xMy40NS0uMzQuNTdsLTQuMTMgMi4zNVptLS42Ny0xLjE1MyA0LjE3LTIuMzhjLjAyLS4wMS4wMy0uMDMuMDMtLjA1di0xLjk5bC01LjA0IDIuODdjLS4yMS4xMi0uNDcuMTItLjY4IDBsLTQuMTMtMi4zNWMtLjA0LS4wMi0uMDktLjA2LS4xMi0uMDctLjA0LjIxLS4wNi40My0uMDYuNjUgMCAuNjcuMTggMS4zMy41MiAxLjkydi0uMDFjLjcgMS4xOSAxLjk4IDEuOTIgMy4zNyAxLjkyLjY4IDAgMS4zNS0uMTggMS45NC0uNTFaTTMuOTAzIDUuMTY4di0uMTRjLS44NS4zMS0xLjU3LjktMi4wMiAxLjY4YTMuNzggMy43OCAwIDAgMC0uNTIgMS45MWMwIDEuMzcuNzQgMi42NCAxLjk0IDMuMzNsNC4xNyAyLjM3Yy4wMi4wMS4wNC4wMS4wNiAwbDEuNzUtMS01LjA0LTIuODdhLjY0LjY0IDAgMCAxLS4zNC0uNTd2LTQuNzFabTEzLjI1MyAzLjMzNy00LjE4LTIuMzhjLS4wMiAwLS4wNCAwLS4wNi4wMWwtMS43NC45OSA1LjA0IDIuODdjLjIxLjEyLjM0LjM0LjM0LjU4djQuODVjMS41Mi0uNTYgMi41NC0xLjk5IDIuNTQtMy42IDAtMS4zNy0uNzQtMi42My0xLjk0LTMuMzJaTTguMDE0IDUuODNjLS4wMi4wMS0uMDMuMDMtLjAzLjA1djEuOTlMMTMuMDI0IDVhLjY5Mi42OTIgMCAwIDEgLjY4IDBsNC4xMyAyLjM1Yy4wNC4wMi4wOC4wNS4xMi4wNy4wMy0uMjEuMDUtLjQzLjA1LS42NSAwLTIuMTEtMS43NC0zLjgzLTMuODgtMy44My0uNjggMC0xLjM1LjE4LTEuOTQuNTFsLTQuMTcgMi4zOFptMS4xMzMtNC40OTJjLTIuMTUgMC0zLjg5IDEuNzItMy44OSAzLjgzdjQuNzZjMCAuMDIuMDIuMDMuMDMuMDRsMS43NSAxdi01Ljc1YzAtLjIzLjEzLS40NS4zNC0uNTdsNC4xMy0yLjM1Yy4wNC0uMDMuMDktLjA2LjEyLS4wNy0uNy0uNTgtMS41OC0uODktMi40OC0uODlaTTcuOTgzIDExLjUxbDIuMjQgMS4yNyAyLjI1LTEuMjdWOC45NWwtMi4yNS0xLjI4LTIuMjQgMS4yOHYyLjU2WlwiXG4gIH0pKSkpKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgU3ZnQm90OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/bot.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/cancel.svg":
|
|
|
/*!******************************!*\
|
|
|
!*** ./app/icons/cancel.svg ***!
|
|
|
\******************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _mask, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgCancel = function SvgCancel(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 16,\n height: 16,\n fill: \"none\"\n }, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", null, _mask || (_mask = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"mask\", {\n id: \"cancel_svg__b\",\n fill: \"#fff\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"use\", {\n xlinkHref: \"#cancel_svg__a\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n mask: \"url(#cancel_svg__b)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n fill: \"#333\",\n opacity: 1\n },\n d: \"M13.997 8.003c0-.816-.157-1.596-.471-2.34a5.947 5.947 0 0 0-1.284-1.907 5.938 5.938 0 0 0-1.905-1.285A5.93 5.93 0 0 0 8.003 2c-.816 0-1.596.157-2.34.47a5.943 5.943 0 0 0-1.907 1.286 5.942 5.942 0 0 0-1.285 1.908A5.955 5.955 0 0 0 2 8.004c0 .813.157 1.591.47 2.333a5.938 5.938 0 0 0 1.286 1.905c.553.553 1.19.98 1.908 1.284.743.314 1.523.47 2.34.47.813 0 1.59-.156 2.333-.47a5.944 5.944 0 0 0 1.905-1.284 5.944 5.944 0 0 0 1.284-1.905c.314-.742.47-1.52.47-2.334zm1.333 0c0 .994-.192 1.945-.576 2.853a7.265 7.265 0 0 1-1.57 2.329 7.265 7.265 0 0 1-2.328 1.57 7.253 7.253 0 0 1-2.853.575 7.278 7.278 0 0 1-2.858-.576 7.27 7.27 0 0 1-2.332-1.569 7.26 7.26 0 0 1-1.57-2.329 7.25 7.25 0 0 1-.576-2.853c0-.996.192-1.949.575-2.858a7.264 7.264 0 0 1 1.571-2.332 7.264 7.264 0 0 1 2.332-1.57A7.275 7.275 0 0 1 8.003.666a7.25 7.25 0 0 1 2.853.576 7.26 7.26 0 0 1 2.329 1.57 7.27 7.27 0 0 1 1.57 2.332c.383.91.575 1.862.575 2.858z\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n fill: \"#333\",\n opacity: 1\n },\n d: \"m5.471 4.529 6 6a.666.666 0 1 1-.942.942l-6-6a.665.665 0 1 1 .942-.942z\"\n }))), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n id: \"cancel_svg__a\",\n d: \"M0 0h16v16H0z\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgCancel);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvY2FuY2VsLnN2ZyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBLHNCQUFzQixzRUFBc0UsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQyxrQkFBa0I7QUFDM1E7QUFDL0I7QUFDQSxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLHVCQUF1QixnREFBbUIsMkNBQTJDLGdEQUFtQjtBQUMzRztBQUNBO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBLEdBQUcsa0JBQWtCLGdEQUFtQjtBQUN4QztBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLEdBQUcsb0NBQW9DLGdEQUFtQiw0QkFBNEIsZ0RBQW1CO0FBQ3pHO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpRUFBZSxTQUFTIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvaWNvbnMvY2FuY2VsLnN2Zz9iMzliIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfbWFzaywgX2RlZnM7XG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xudmFyIFN2Z0NhbmNlbCA9IGZ1bmN0aW9uIFN2Z0NhbmNlbChwcm9wcykge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX2V4dGVuZHMoe1xuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gICAgeG1sbnNYbGluazogXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXG4gICAgd2lkdGg6IDE2LFxuICAgIGhlaWdodDogMTYsXG4gICAgZmlsbDogXCJub25lXCJcbiAgfSwgcHJvcHMpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImdcIiwgbnVsbCwgX21hc2sgfHwgKF9tYXNrID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJtYXNrXCIsIHtcbiAgICBpZDogXCJjYW5jZWxfc3ZnX19iXCIsXG4gICAgZmlsbDogXCIjZmZmXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1c2VcIiwge1xuICAgIHhsaW5rSHJlZjogXCIjY2FuY2VsX3N2Z19fYVwiXG4gIH0pKSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZ1wiLCB7XG4gICAgbWFzazogXCJ1cmwoI2NhbmNlbF9zdmdfX2IpXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHlsZToge1xuICAgICAgZmlsbDogXCIjMzMzXCIsXG4gICAgICBvcGFjaXR5OiAxXG4gICAgfSxcbiAgICBkOiBcIk0xMy45OTcgOC4wMDNjMC0uODE2LS4xNTctMS41OTYtLjQ3MS0yLjM0YTUuOTQ3IDUuOTQ3IDAgMCAwLTEuMjg0LTEuOTA3IDUuOTM4IDUuOTM4IDAgMCAwLTEuOTA1LTEuMjg1QTUuOTMgNS45MyAwIDAgMCA4LjAwMyAyYy0uODE2IDAtMS41OTYuMTU3LTIuMzQuNDdhNS45NDMgNS45NDMgMCAwIDAtMS45MDcgMS4yODYgNS45NDIgNS45NDIgMCAwIDAtMS4yODUgMS45MDhBNS45NTUgNS45NTUgMCAwIDAgMiA4LjAwNGMwIC44MTMuMTU3IDEuNTkxLjQ3IDIuMzMzYTUuOTM4IDUuOTM4IDAgMCAwIDEuMjg2IDEuOTA1Yy41NTMuNTUzIDEuMTkuOTggMS45MDggMS4yODQuNzQzLjMxNCAxLjUyMy40NyAyLjM0LjQ3LjgxMyAwIDEuNTktLjE1NiAyLjMzMy0uNDdhNS45NDQgNS45NDQgMCAwIDAgMS45MDUtMS4yODQgNS45NDQgNS45NDQgMCAwIDAgMS4yODQtMS45MDVjLjMxNC0uNzQyLjQ3LTEuNTIuNDctMi4zMzR6bTEuMzMzIDBjMCAuOTk0LS4xOTIgMS45NDUtLjU3NiAyLjg1M2E3LjI2NSA3LjI2NSAwIDAgMS0xLjU3IDIuMzI5IDcuMjY1IDcuMjY1IDAgMCAxLTIuMzI4IDEuNTcgNy4yNTMgNy4yNTMgMCAwIDEtMi44NTMuNTc1IDcuMjc4IDcuMjc4IDAgMCAxLTIuODU4LS41NzYgNy4yNyA3LjI3IDAgMCAxLTIuMzMyLTEuNTY5IDcuMjYgNy4yNiAwIDAgMS0xLjU3LTIuMzI5IDcuMjUgNy4yNSAwIDAgMS0uNTc2LTIuODUzYzAtLjk5Ni4xOTItMS45NDkuNTc1LTIuODU4YTcuMjY0IDcuMjY0IDAgMCAxIDEuNTcxLTIuMzMyIDcuMjY0IDcuMjY0IDAgMCAxIDIuMzMyLTEuNTdBNy4yNzUgNy4yNzUgMCAwIDEgOC4wMDMuNjY2YTcuMjUgNy4yNSAwIDAgMSAyLjg1My41NzYgNy4yNiA3LjI2IDAgMCAxIDIuMzI5IDEuNTcgNy4yNyA3LjI3IDAgMCAxIDEuNTcgMi4zMzJjLjM4My45MS41NzUgMS44NjIuNTc1IDIuODU4elwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIHN0eWxlOiB7XG4gICAgICBmaWxsOiBcIiMzMzNcIixcbiAgICAgIG9wYWNpdHk6IDFcbiAgICB9LFxuICAgIGQ6IFwibTUuNDcxIDQuNTI5IDYgNmEuNjY2LjY2NiAwIDEgMS0uOTQyLjk0MmwtNi02YS42NjUuNjY1IDAgMSAxIC45NDItLjk0MnpcIlxuICB9KSkpLCBfZGVmcyB8fCAoX2RlZnMgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRlZnNcIiwgbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBpZDogXCJjYW5jZWxfc3ZnX19hXCIsXG4gICAgZDogXCJNMCAwaDE2djE2SDB6XCJcbiAgfSkpKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgU3ZnQ2FuY2VsOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/cancel.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/chatgpt.svg":
|
|
|
/*!*******************************!*\
|
|
|
!*** ./app/icons/chatgpt.svg ***!
|
|
|
\*******************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _defs, _mask;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgChatgpt = function SvgChatgpt(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 43,\n height: 44,\n fill: \"none\"\n }, props), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n id: \"chatgpt_svg__a\",\n d: \"M0 0h43v43.58H0z\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", null, _mask || (_mask = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"mask\", {\n id: \"chatgpt_svg__b\",\n fill: \"#fff\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"use\", {\n xlinkHref: \"#chatgpt_svg__a\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n mask: \"url(#chatgpt_svg__b)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n fillRule: \"evenodd\",\n style: {\n fill: \"#8bcae0\"\n },\n d: \"M40.17 17.84c.36-1.11.55-2.27.55-3.43 0-1.93-.51-3.83-1.49-5.49a10.98 10.98 0 0 0-9.52-5.51c-.77 0-1.55.08-2.3.24A10.868 10.868 0 0 0 19.29 0h-.1c-4.76 0-8.98 3.07-10.45 7.6-3.06.63-5.71 2.55-7.26 5.27a10.993 10.993 0 0 0 1.35 12.87c-.36 1.11-.55 2.27-.55 3.43 0 1.93.51 3.83 1.49 5.49a10.97 10.97 0 0 0 11.82 5.27c2.06 2.32 5.02 3.65 8.12 3.65h.1c4.76 0 8.99-3.07 10.45-7.61a10.82 10.82 0 0 0 7.26-5.26 10.995 10.995 0 0 0-1.35-12.87ZM18.817 38.695c-.09.05-.17.1-.26.15a8.145 8.145 0 0 0 5.22 1.89h.01c4.5-.01 8.15-3.67 8.16-8.17v-10.13a.153.153 0 0 0-.07-.1l-3.67-2.12v12.24c0 .51-.27.98-.72 1.23l-8.67 5.01Zm-1.424-2.472 8.77-5.06c.04-.03.06-.07.06-.11h-.01v-4.24l-10.59 6.12c-.44.25-.98.25-1.42 0l-8.68-5.01c-.08-.05-.2-.12-.26-.16a8.19 8.19 0 0 0 .97 5.47 8.18 8.18 0 0 0 7.08 4.08c1.43 0 2.84-.37 4.08-1.09Zm-9.187-25.21v-.3c-1.79.66-3.3 1.93-4.25 3.58a8.226 8.226 0 0 0-1.09 4.08c0 2.92 1.55 5.61 4.08 7.07l8.77 5.07c.04.02.09.02.12-.01l3.67-2.12-10.59-6.11c-.44-.25-.71-.72-.71-1.23v-10.03Zm27.849 7.117-8.77-5.07a.126.126 0 0 0-.12.01l-3.67 2.12 10.59 6.12c.44.25.71.71.71 1.22v10.33a8.168 8.168 0 0 0 5.35-7.66 8.16 8.16 0 0 0-4.09-7.07Zm-19.22-5.718a.16.16 0 0 0-.05.11v4.24l10.59-6.12c.22-.12.47-.19.72-.19s.49.07.71.19l8.68 5.02c.08.05.17.1.25.15.08-.46.12-.92.12-1.38 0-4.51-3.66-8.17-8.17-8.17-1.43 0-2.83.38-4.08 1.09l-8.77 5.06ZM19.22 2.85c-4.51 0-8.17 3.65-8.17 8.16v10.13c.01.05.03.08.07.1l3.67 2.12.01-12.23v-.01c0-.5.27-.97.71-1.22l8.68-5.01c.07-.05.19-.11.25-.15a8.145 8.145 0 0 0-5.22-1.89ZM16.783 24.51l4.72 2.73 4.72-2.73v-5.45l-4.72-2.72-4.72 2.73v5.44Z\",\n opacity: 0.27\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgChatgpt);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvY2hhdGdwdC5zdmciLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQSxzQkFBc0Isc0VBQXNFLGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUMsa0JBQWtCO0FBQzNRO0FBQy9CO0FBQ0Esc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyx5Q0FBeUMsZ0RBQW1CLDRCQUE0QixnREFBbUI7QUFDOUc7QUFDQTtBQUNBLEdBQUcsa0JBQWtCLGdEQUFtQiwyQ0FBMkMsZ0RBQW1CO0FBQ3RHO0FBQ0E7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CO0FBQ3JDO0FBQ0EsR0FBRyxrQkFBa0IsZ0RBQW1CO0FBQ3hDO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlFQUFlLFVBQVUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9pY29ucy9jaGF0Z3B0LnN2Zz9lM2UzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfZGVmcywgX21hc2s7XG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xudmFyIFN2Z0NoYXRncHQgPSBmdW5jdGlvbiBTdmdDaGF0Z3B0KHByb3BzKSB7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCBfZXh0ZW5kcyh7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICB4bWxuc1hsaW5rOiBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIixcbiAgICB3aWR0aDogNDMsXG4gICAgaGVpZ2h0OiA0NCxcbiAgICBmaWxsOiBcIm5vbmVcIlxuICB9LCBwcm9wcyksIF9kZWZzIHx8IChfZGVmcyA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGVmc1wiLCBudWxsLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGlkOiBcImNoYXRncHRfc3ZnX19hXCIsXG4gICAgZDogXCJNMCAwaDQzdjQzLjU4SDB6XCJcbiAgfSkpKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIG51bGwsIF9tYXNrIHx8IChfbWFzayA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwibWFza1wiLCB7XG4gICAgaWQ6IFwiY2hhdGdwdF9zdmdfX2JcIixcbiAgICBmaWxsOiBcIiNmZmZcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInVzZVwiLCB7XG4gICAgeGxpbmtIcmVmOiBcIiNjaGF0Z3B0X3N2Z19fYVwiXG4gIH0pKSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZ1wiLCB7XG4gICAgbWFzazogXCJ1cmwoI2NoYXRncHRfc3ZnX19iKVwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZmlsbFJ1bGU6IFwiZXZlbm9kZFwiLFxuICAgIHN0eWxlOiB7XG4gICAgICBmaWxsOiBcIiM4YmNhZTBcIlxuICAgIH0sXG4gICAgZDogXCJNNDAuMTcgMTcuODRjLjM2LTEuMTEuNTUtMi4yNy41NS0zLjQzIDAtMS45My0uNTEtMy44My0xLjQ5LTUuNDlhMTAuOTggMTAuOTggMCAwIDAtOS41Mi01LjUxYy0uNzcgMC0xLjU1LjA4LTIuMy4yNEExMC44NjggMTAuODY4IDAgMCAwIDE5LjI5IDBoLS4xYy00Ljc2IDAtOC45OCAzLjA3LTEwLjQ1IDcuNi0zLjA2LjYzLTUuNzEgMi41NS03LjI2IDUuMjdhMTAuOTkzIDEwLjk5MyAwIDAgMCAxLjM1IDEyLjg3Yy0uMzYgMS4xMS0uNTUgMi4yNy0uNTUgMy40MyAwIDEuOTMuNTEgMy44MyAxLjQ5IDUuNDlhMTAuOTcgMTAuOTcgMCAwIDAgMTEuODIgNS4yN2MyLjA2IDIuMzIgNS4wMiAzLjY1IDguMTIgMy42NWguMWM0Ljc2IDAgOC45OS0zLjA3IDEwLjQ1LTcuNjFhMTAuODIgMTAuODIgMCAwIDAgNy4yNi01LjI2IDEwLjk5NSAxMC45OTUgMCAwIDAtMS4zNS0xMi44N1pNMTguODE3IDM4LjY5NWMtLjA5LjA1LS4xNy4xLS4yNi4xNWE4LjE0NSA4LjE0NSAwIDAgMCA1LjIyIDEuODloLjAxYzQuNS0uMDEgOC4xNS0zLjY3IDguMTYtOC4xN3YtMTAuMTNhLjE1My4xNTMgMCAwIDAtLjA3LS4xbC0zLjY3LTIuMTJ2MTIuMjRjMCAuNTEtLjI3Ljk4LS43MiAxLjIzbC04LjY3IDUuMDFabS0xLjQyNC0yLjQ3MiA4Ljc3LTUuMDZjLjA0LS4wMy4wNi0uMDcuMDYtLjExaC0uMDF2LTQuMjRsLTEwLjU5IDYuMTJjLS40NC4yNS0uOTguMjUtMS40MiAwbC04LjY4LTUuMDFjLS4wOC0uMDUtLjItLjEyLS4yNi0uMTZhOC4xOSA4LjE5IDAgMCAwIC45NyA1LjQ3IDguMTggOC4xOCAwIDAgMCA3LjA4IDQuMDhjMS40MyAwIDIuODQtLjM3IDQuMDgtMS4wOVptLTkuMTg3LTI1LjIxdi0uM2MtMS43OS42Ni0zLjMgMS45My00LjI1IDMuNThhOC4yMjYgOC4yMjYgMCAwIDAtMS4wOSA0LjA4YzAgMi45MiAxLjU1IDUuNjEgNC4wOCA3LjA3bDguNzcgNS4wN2MuMDQuMDIuMDkuMDIuMTItLjAxbDMuNjctMi4xMi0xMC41OS02LjExYy0uNDQtLjI1LS43MS0uNzItLjcxLTEuMjN2LTEwLjAzWm0yNy44NDkgNy4xMTctOC43Ny01LjA3YS4xMjYuMTI2IDAgMCAwLS4xMi4wMWwtMy42NyAyLjEyIDEwLjU5IDYuMTJjLjQ0LjI1LjcxLjcxLjcxIDEuMjJ2MTAuMzNhOC4xNjggOC4xNjggMCAwIDAgNS4zNS03LjY2IDguMTYgOC4xNiAwIDAgMC00LjA5LTcuMDdabS0xOS4yMi01LjcxOGEuMTYuMTYgMCAwIDAtLjA1LjExdjQuMjRsMTAuNTktNi4xMmMuMjItLjEyLjQ3LS4xOS43Mi0uMTlzLjQ5LjA3LjcxLjE5bDguNjggNS4wMmMuMDguMDUuMTcuMS4yNS4xNS4wOC0uNDYuMTItLjkyLjEyLTEuMzggMC00LjUxLTMuNjYtOC4xNy04LjE3LTguMTctMS40MyAwLTIuODMuMzgtNC4wOCAxLjA5bC04Ljc3IDUuMDZaTTE5LjIyIDIuODVjLTQuNTEgMC04LjE3IDMuNjUtOC4xNyA4LjE2djEwLjEzYy4wMS4wNS4wMy4wOC4wNy4xbDMuNjcgMi4xMi4wMS0xMi4yM3YtLjAxYzAtLjUuMjctLjk3LjcxLTEuMjJsOC42OC01LjAxYy4wNy0uMDUuMTktLjExLjI1LS4xNWE4LjE0NSA4LjE0NSAwIDAgMC01LjIyLTEuODlaTTE2Ljc4MyAyNC41MWw0LjcyIDIuNzMgNC43Mi0yLjczdi01LjQ1bC00LjcyLTIuNzItNC43MiAyLjczdjUuNDRaXCIsXG4gICAgb3BhY2l0eTogMC4yN1xuICB9KSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBTdmdDaGF0Z3B0OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/chatgpt.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/close.svg":
|
|
|
/*!*****************************!*\
|
|
|
!*** ./app/icons/close.svg ***!
|
|
|
\*****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _defs, _mask;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgClose = function SvgClose(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 16,\n height: 16,\n fill: \"none\"\n }, props), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n id: \"close_svg__a\",\n d: \"M0 0h16v16H0z\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", null, _mask || (_mask = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"mask\", {\n id: \"close_svg__b\",\n fill: \"#fff\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"use\", {\n xlinkHref: \"#close_svg__a\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n mask: \"url(#close_svg__b)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"m0 0 10.67 10.67M0 10.67 10.67 0\",\n transform: \"translate(2.667 2.667)\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgClose);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvY2xvc2Uuc3ZnIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0Esc0JBQXNCLHNFQUFzRSxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjtBQUMzUTtBQUMvQjtBQUNBLHNCQUFzQixnREFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcseUNBQXlDLGdEQUFtQiw0QkFBNEIsZ0RBQW1CO0FBQzlHO0FBQ0E7QUFDQSxHQUFHLGtCQUFrQixnREFBbUIsMkNBQTJDLGdEQUFtQjtBQUN0RztBQUNBO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBLEdBQUcsa0JBQWtCLGdEQUFtQjtBQUN4QztBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsaUVBQWUsUUFBUSIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2ljb25zL2Nsb3NlLnN2Zz80ZGE3Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfZGVmcywgX21hc2s7XG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xudmFyIFN2Z0Nsb3NlID0gZnVuY3Rpb24gU3ZnQ2xvc2UocHJvcHMpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIF9leHRlbmRzKHtcbiAgICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFxuICAgIHhtbG5zWGxpbms6IFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLFxuICAgIHdpZHRoOiAxNixcbiAgICBoZWlnaHQ6IDE2LFxuICAgIGZpbGw6IFwibm9uZVwiXG4gIH0sIHByb3BzKSwgX2RlZnMgfHwgKF9kZWZzID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkZWZzXCIsIG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgaWQ6IFwiY2xvc2Vfc3ZnX19hXCIsXG4gICAgZDogXCJNMCAwaDE2djE2SDB6XCJcbiAgfSkpKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIG51bGwsIF9tYXNrIHx8IChfbWFzayA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwibWFza1wiLCB7XG4gICAgaWQ6IFwiY2xvc2Vfc3ZnX19iXCIsXG4gICAgZmlsbDogXCIjZmZmXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1c2VcIiwge1xuICAgIHhsaW5rSHJlZjogXCIjY2xvc2Vfc3ZnX19hXCJcbiAgfSkpKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICBtYXNrOiBcInVybCgjY2xvc2Vfc3ZnX19iKVwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIHN0cm9rZTogXCIjMzMzXCIsXG4gICAgICBzdHJva2VXaWR0aDogMS4zMzMzMzMzMzMzMzMzMzMzLFxuICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgIHN0cm9rZURhc2hhcnJheTogXCIwIDBcIlxuICAgIH0sXG4gICAgZDogXCJtMCAwIDEwLjY3IDEwLjY3TTAgMTAuNjcgMTAuNjcgMFwiLFxuICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoMi42NjcgMi42NjcpXCJcbiAgfSkpKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgU3ZnQ2xvc2U7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/close.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/confirm.svg":
|
|
|
/*!*******************************!*\
|
|
|
!*** ./app/icons/confirm.svg ***!
|
|
|
\*******************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _mask, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgConfirm = function SvgConfirm(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 16,\n height: 16,\n fill: \"none\"\n }, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", null, _mask || (_mask = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"mask\", {\n id: \"confirm_svg__b\",\n fill: \"#fff\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"use\", {\n xlinkHref: \"#confirm_svg__a\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n mask: \"url(#confirm_svg__b)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n fill: \"#333\",\n opacity: 1\n },\n d: \"M5.996 12.892a.67.67 0 0 1-.84-.083l-3.96-3.94a.665.665 0 0 1 .339-1.126.665.665 0 0 1 .602.181l3.49 3.472 8.24-8.202a.663.663 0 0 1 .841-.08.664.664 0 0 1 .244.81.661.661 0 0 1-.145.215l-8.71 8.67a.666.666 0 0 1-.1.083z\"\n }))), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n id: \"confirm_svg__a\",\n d: \"M0 0h16v16H0z\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgConfirm);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvY29uZmlybS5zdmciLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQSxzQkFBc0Isc0VBQXNFLGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUMsa0JBQWtCO0FBQzNRO0FBQy9CO0FBQ0Esc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyx1QkFBdUIsZ0RBQW1CLDJDQUEyQyxnREFBbUI7QUFDM0c7QUFDQTtBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQSxHQUFHLGtCQUFrQixnREFBbUI7QUFDeEM7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLEdBQUcsb0NBQW9DLGdEQUFtQiw0QkFBNEIsZ0RBQW1CO0FBQ3pHO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpRUFBZSxVQUFVIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvaWNvbnMvY29uZmlybS5zdmc/MDA2YyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX21hc2ssIF9kZWZzO1xuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiA/IE9iamVjdC5hc3NpZ24uYmluZCgpIDogZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbnZhciBTdmdDb25maXJtID0gZnVuY3Rpb24gU3ZnQ29uZmlybShwcm9wcykge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX2V4dGVuZHMoe1xuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gICAgeG1sbnNYbGluazogXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXG4gICAgd2lkdGg6IDE2LFxuICAgIGhlaWdodDogMTYsXG4gICAgZmlsbDogXCJub25lXCJcbiAgfSwgcHJvcHMpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImdcIiwgbnVsbCwgX21hc2sgfHwgKF9tYXNrID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJtYXNrXCIsIHtcbiAgICBpZDogXCJjb25maXJtX3N2Z19fYlwiLFxuICAgIGZpbGw6IFwiI2ZmZlwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwidXNlXCIsIHtcbiAgICB4bGlua0hyZWY6IFwiI2NvbmZpcm1fc3ZnX19hXCJcbiAgfSkpKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICBtYXNrOiBcInVybCgjY29uZmlybV9zdmdfX2IpXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHlsZToge1xuICAgICAgZmlsbDogXCIjMzMzXCIsXG4gICAgICBvcGFjaXR5OiAxXG4gICAgfSxcbiAgICBkOiBcIk01Ljk5NiAxMi44OTJhLjY3LjY3IDAgMCAxLS44NC0uMDgzbC0zLjk2LTMuOTRhLjY2NS42NjUgMCAwIDEgLjMzOS0xLjEyNi42NjUuNjY1IDAgMCAxIC42MDIuMTgxbDMuNDkgMy40NzIgOC4yNC04LjIwMmEuNjYzLjY2MyAwIDAgMSAuODQxLS4wOC42NjQuNjY0IDAgMCAxIC4yNDQuODEuNjYxLjY2MSAwIDAgMS0uMTQ1LjIxNWwtOC43MSA4LjY3YS42NjYuNjY2IDAgMCAxLS4xLjA4M3pcIlxuICB9KSkpLCBfZGVmcyB8fCAoX2RlZnMgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRlZnNcIiwgbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBpZDogXCJjb25maXJtX3N2Z19fYVwiLFxuICAgIGQ6IFwiTTAgMGgxNnYxNkgwelwiXG4gIH0pKSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IFN2Z0NvbmZpcm07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/confirm.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/delete.svg":
|
|
|
/*!******************************!*\
|
|
|
!*** ./app/icons/delete.svg ***!
|
|
|
\******************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgDelete = function SvgDelete(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 14.663,\n height: 14.663,\n fill: \"none\"\n }, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n style: {\n mixBlendMode: \"passthrough\"\n }\n }, _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n fill: \"#D8D8D8\",\n fillOpacity: 0.01,\n fillRule: \"evenodd\",\n d: \"M7.337.667c-3.69 0-6.67 2.98-6.67 6.67a6.66 6.66 0 0 0 6.67 6.66c3.68 0 6.66-2.98 6.66-6.66a6.66 6.66 0 0 0-6.66-6.67Z\"\n })), _path2 || (_path2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n fill: \"#333\",\n d: \"m10.138 5.471-4.667 4.667q-.046.046-.1.083-.055.036-.116.062-.06.025-.125.038-.064.012-.13.012t-.13-.012q-.064-.013-.125-.038-.06-.026-.115-.062-.055-.037-.101-.083-.047-.046-.083-.101-.037-.055-.062-.115-.025-.06-.038-.125-.013-.065-.013-.13 0-.066.013-.13.013-.065.038-.125.025-.061.062-.116.036-.054.083-.1l4.666-4.667q.047-.047.101-.083.055-.037.116-.062.06-.025.125-.038.064-.013.13-.013.065 0 .13.013.064.013.125.038.06.025.115.062.055.036.101.083.046.046.083.1.036.055.062.116.025.06.038.125.012.064.012.13t-.012.13q-.013.064-.038.125-.026.06-.062.115-.037.055-.083.101ZM5.471 4.53l.667.666q.046.047.083.101.036.055.062.116.025.06.038.125.012.064.012.13 0 .065-.012.13-.013.064-.038.125-.026.06-.062.115-.036.055-.083.101-.046.046-.1.083-.056.036-.116.062-.06.025-.125.038-.065.012-.13.012-.066 0-.13-.012-.065-.013-.125-.038-.061-.026-.116-.062-.054-.036-.1-.083l-.667-.667q-.047-.046-.083-.1-.037-.055-.062-.116-.025-.06-.038-.125-.013-.064-.013-.13t.013-.13q.013-.064.038-.125.025-.06.062-.115.036-.055.083-.101.046-.047.1-.083.055-.037.116-.062.06-.025.125-.038.064-.013.13-.013t.13.013q.064.013.125.038.06.025.115.062.055.036.101.083Zm4 4 .667.666q.046.047.083.101.036.055.062.116.025.06.038.125.012.064.012.13 0 .065-.012.13-.013.064-.038.125-.026.06-.062.115-.036.055-.083.101-.046.046-.1.083-.056.036-.116.062-.06.025-.125.038-.065.012-.13.012-.066 0-.13-.012-.065-.013-.125-.038-.061-.026-.116-.062-.054-.036-.1-.083l-.667-.667q-.047-.046-.083-.1-.037-.055-.062-.116-.025-.06-.038-.125-.013-.064-.013-.13t.013-.13q.013-.064.038-.125.025-.06.062-.115.036-.055.083-.101.046-.047.1-.083.055-.037.116-.062.06-.025.125-.038.064-.013.13-.013t.13.013q.064.013.125.038.06.025.115.062.055.036.101.083Zm3.859-1.192q0-2.491-1.755-4.248-1.754-1.756-4.238-1.756-2.492 0-4.248 1.756-1.756 1.756-1.756 4.248 0 2.484 1.756 4.238 1.757 1.755 4.248 1.755 2.484 0 4.238-1.755 1.755-1.754 1.755-4.238Zm1.333 0q0 3.036-2.145 5.181t-5.181 2.145q-3.043 0-5.19-2.145Q0 10.374 0 7.337q0-3.044 2.147-5.19Q4.293 0 7.337 0q3.037 0 5.181 2.147 2.145 2.147 2.145 5.19ZM10.332 5q0 .066-.013.13t-.038.125q-.025.06-.061.114-.037.055-.083.101-.046.047-.1.083-.055.036-.116.061-.06.025-.125.038-.064.013-.13.013-.065 0-.13-.013-.063-.013-.124-.038-.06-.025-.115-.061-.054-.036-.1-.083-.047-.046-.083-.1-.037-.055-.062-.115-.025-.061-.038-.125-.012-.064-.012-.13 0-.065.012-.13.013-.064.038-.124.025-.061.062-.115.036-.055.082-.101.047-.047.101-.083.055-.036.115-.061.06-.025.125-.038.064-.013.13-.013.065 0 .13.013.064.013.124.038t.115.061q.055.036.1.083.047.046.084.1.036.055.061.116.025.06.038.124.013.065.013.13ZM5.665 9.667q0 .065-.013.13-.013.064-.038.124t-.061.115q-.036.055-.083.1-.046.047-.1.084-.055.036-.116.061-.06.025-.124.038-.064.013-.13.013-.065 0-.13-.013-.064-.013-.124-.038-.061-.025-.115-.061-.055-.037-.101-.083-.047-.046-.083-.1-.036-.055-.061-.116-.025-.06-.038-.125-.013-.064-.013-.13 0-.065.013-.13.013-.063.038-.124.025-.06.061-.115.036-.054.083-.1.046-.047.1-.083.055-.037.116-.062.06-.025.124-.038.065-.012.13-.012.066 0 .13.012.064.013.124.038.061.025.115.062.055.036.101.082.047.047.083.101.036.055.061.115.025.06.038.125.013.064.013.13Zm0-4.667q0 .066-.013.13t-.038.125q-.025.06-.061.114-.036.055-.083.101-.046.047-.1.083-.055.036-.116.061-.06.025-.124.038-.064.013-.13.013-.065 0-.13-.013-.064-.013-.124-.038-.061-.025-.115-.061-.055-.036-.101-.083-.047-.046-.083-.1-.036-.055-.061-.115-.025-.061-.038-.125-.013-.064-.013-.13 0-.065.013-.13.013-.064.038-.124.025-.061.061-.115.036-.055.083-.101.046-.047.1-.083.055-.036.116-.061.06-.025.124-.038.065-.013.13-.013.066 0 .13.013t.124.038q.061.025.115.061.055.036.101.083.047.046.083.1.036.055.061.116.025.06.038.124.013.065.013.13Zm.667.667q0 .065-.013.13-.013.064-.038.124t-.061.115q-.037.055-.083.1-.046.047-.1.084-.055.036-.116.061-.06.025-.125.038-.064.013-.13.013-.065 0-.13-.013-.063-.013-.124-.038-.06-.025-.115-.061-.054-.037-.1-.083-.047-.046-.083-.1-.037-.055-.062-.116-.025-.06-.038-.125-.012-.064-.012-.13 0-.065.012-.13.013-.063.038-.124.025-.06.062-.115.036-.054.082-.1.047-.047.101-.083.055-.037.115-.062.06-.025.125-.038.064-.012.13-.012.065 0 .13.012.064.013.124.038t.115.062q.055.036.1.082.047.047.084.101.036.055.061.115.025.06.038.125.013.064.013.13ZM9.665 9q0 .066-.013.13t-.038.125q-.025.06-.061.114-.036.055-.083.101-.046.047-.1.083-.055.036-.116.061-.06.025-.124.038-.064.013-.13.013-.065 0-.13-.013-.064-.013-.124-.038-.061-.025-.115-.061-.055-.036-.101-.083-.047-.046-.083-.1-.036-.055-.061-.115-.025-.061-.038-.125-.013-.064-.013-.13 0-.065.013-.13.013-.064.038-.124.025-.061.061-.115.036-.055.083-.101.046-.047.1-.083.055-.036.116-.061.06-.025.124-.038.065-.013.13-.013.066 0 .13.013t.124.038q.061.025.115.061.055.036.101.083.047.046.083.1.036.055.061.116.025.06.038.124.013.065.013.13Zm.667.667q0 .065-.013.13-.013.064-.038.124t-.061.115q-.037.055-.083.1-.046.047-.1.084-.055.036-.116.061-.06.025-.125.038-.064.013-.13.013-.065 0-.13-.013-.063-.013-.124-.038-.06-.025-.115-.061-.054-.037-.1-.083-.047-.046-.083-.1-.037-.055-.062-.116-.025-.06-.038-.125-.012-.064-.012-.13 0-.065.012-.13.013-.063.038-.124.025-.06.062-.115.036-.054.082-.1.047-.047.101-.083.055-.037.115-.062.06-.025.125-.038.064-.012.13-.012.065 0 .13.012.064.013.124.038t.115.062q.055.036.1.082.047.047.084.101.036.055.061.115.025.06.038.125.013.064.013.13Z\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgDelete);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvZGVsZXRlLnN2ZyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBLHNCQUFzQixzRUFBc0UsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQyxrQkFBa0I7QUFDM1E7QUFDL0I7QUFDQSxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyx1QkFBdUIsZ0RBQW1CO0FBQzdDO0FBQ0E7QUFDQTtBQUNBLEdBQUcsaUNBQWlDLGdEQUFtQjtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcscUNBQXFDLGdEQUFtQjtBQUMzRDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsaUVBQWUsU0FBUyIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2ljb25zL2RlbGV0ZS5zdmc/ZGRiZiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX3BhdGgsIF9wYXRoMjtcbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gPyBPYmplY3QuYXNzaWduLmJpbmQoKSA6IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG52YXIgU3ZnRGVsZXRlID0gZnVuY3Rpb24gU3ZnRGVsZXRlKHByb3BzKSB7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCBfZXh0ZW5kcyh7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICB3aWR0aDogMTQuNjYzLFxuICAgIGhlaWdodDogMTQuNjYzLFxuICAgIGZpbGw6IFwibm9uZVwiXG4gIH0sIHByb3BzKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICBzdHlsZToge1xuICAgICAgbWl4QmxlbmRNb2RlOiBcInBhc3N0aHJvdWdoXCJcbiAgICB9XG4gIH0sIF9wYXRoIHx8IChfcGF0aCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZmlsbDogXCIjRDhEOEQ4XCIsXG4gICAgZmlsbE9wYWNpdHk6IDAuMDEsXG4gICAgZmlsbFJ1bGU6IFwiZXZlbm9kZFwiLFxuICAgIGQ6IFwiTTcuMzM3LjY2N2MtMy42OSAwLTYuNjcgMi45OC02LjY3IDYuNjdhNi42NiA2LjY2IDAgMCAwIDYuNjcgNi42NmMzLjY4IDAgNi42Ni0yLjk4IDYuNjYtNi42NmE2LjY2IDYuNjYgMCAwIDAtNi42Ni02LjY3WlwiXG4gIH0pKSwgX3BhdGgyIHx8IChfcGF0aDIgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGZpbGw6IFwiIzMzM1wiLFxuICAgIGQ6IFwibTEwLjEzOCA1LjQ3MS00LjY2NyA0LjY2N3EtLjA0Ni4wNDYtLjEuMDgzLS4wNTUuMDM2LS4xMTYuMDYyLS4wNi4wMjUtLjEyNS4wMzgtLjA2NC4wMTItLjEzLjAxMnQtLjEzLS4wMTJxLS4wNjQtLjAxMy0uMTI1LS4wMzgtLjA2LS4wMjYtLjExNS0uMDYyLS4wNTUtLjAzNy0uMTAxLS4wODMtLjA0Ny0uMDQ2LS4wODMtLjEwMS0uMDM3LS4wNTUtLjA2Mi0uMTE1LS4wMjUtLjA2LS4wMzgtLjEyNS0uMDEzLS4wNjUtLjAxMy0uMTMgMC0uMDY2LjAxMy0uMTMuMDEzLS4wNjUuMDM4LS4xMjUuMDI1LS4wNjEuMDYyLS4xMTYuMDM2LS4wNTQuMDgzLS4xbDQuNjY2LTQuNjY3cS4wNDctLjA0Ny4xMDEtLjA4My4wNTUtLjAzNy4xMTYtLjA2Mi4wNi0uMDI1LjEyNS0uMDM4LjA2NC0uMDEzLjEzLS4wMTMuMDY1IDAgLjEzLjAxMy4wNjQuMDEzLjEyNS4wMzguMDYuMDI1LjExNS4wNjIuMDU1LjAzNi4xMDEuMDgzLjA0Ni4wNDYuMDgzLjEuMDM2LjA1NS4wNjIuMTE2LjAyNS4wNi4wMzguMTI1LjAxMi4wNjQuMDEyLjEzdC0uMDEyLjEzcS0uMDEzLjA2NC0uMDM4LjEyNS0uMDI2LjA2LS4wNjIuMTE1LS4wMzcuMDU1LS4wODMuMTAxWk01LjQ3MSA0LjUzbC42NjcuNjY2cS4wNDYuMDQ3LjA4My4xMDEuMDM2LjA1NS4wNjIuMTE2LjAyNS4wNi4wMzguMTI1LjAxMi4wNjQuMDEyLjEzIDAgLjA2NS0uMDEyLjEzLS4wMTMuMDY0LS4wMzguMTI1LS4wMjYuMDYtLjA2Mi4xMTUtLjAzNi4wNTUtLjA4My4xMDEtLjA0Ni4wNDYtLjEuMDgzLS4wNTYuMDM2LS4xMTYuMDYyLS4wNi4wMjUtLjEyNS4wMzgtLjA2NS4wMTItLjEzLjAxMi0uMDY2IDAtLjEzLS4wMTItLjA2NS0uMDEzLS4xMjUtLjAzOC0uMDYxLS4wMjYtLjExNi0uMDYyLS4wNTQtLjAzNi0uMS0uMDgzbC0uNjY3LS42NjdxLS4wNDctLjA0Ni0uMDgzLS4xLS4wMzctLjA1NS0uMDYyLS4xMTYtLjAyNS0uMDYtLjAzOC0uMTI1LS4wMTMtLjA2NC0uMDEzLS4xM3QuMDEzLS4xM3EuMDEzLS4wNjQuMDM4LS4xMjUuMDI1LS4wNi4wNjItLjExNS4wMzYtLjA1NS4wODMtLjEwMS4wNDYtLjA0Ny4xLS4wODMuMDU1LS4wMzcuMTE2LS4wNjIuMDYtLjAyNS4xMjUtLjAzOC4wNjQtLjAxMy4xMy0uMDEzdC4xMy4wMTNxLjA2NC4wMTMuMTI1LjAzOC4wNi4wMjUuMTE1LjA2Mi4wNTUuMDM2LjEwMS4wODNabTQgNCAuNjY3LjY2NnEuMDQ2LjA0Ny4wODMuMTAxLjAzNi4wNTUuMDYyLjExNi4wMjUuMDYuMDM4LjEyNS4wMTIuMDY0LjAxMi4xMyAwIC4wNjUtLjAxMi4xMy0uMDEzLjA2NC0uMDM4LjEyNS0uMDI2LjA2LS4wNjIuMTE1LS4wMzYuMDU1LS4wODMuMTAxLS4wNDYuMDQ2LS4xLjA4My0uMDU2LjAzNi0uMTE2LjA2Mi0uMDYuMDI1LS4xMjUuMDM4LS4wNjUuMDEyLS4xMy4wMTItLjA2NiAwLS4xMy0uMDEyLS4wNjUtLjAxMy0uMTI1LS4wMzgtLjA2MS0uMDI2LS4xMTYtLjA2Mi0uMDU0LS4wMzYtLjEtLjA4M2wtLjY2Ny0uNjY3cS0uMDQ3LS4wNDYtLjA4My0uMS0uMDM3LS4wNTUtLjA2Mi0uMTE2LS4wMjUtLjA2LS4wMzgtLjEyNS0uMDEzLS4wNjQtLjAxMy0uMTN0LjAxMy0uMTNxLjAxMy0uMDY0LjAzOC0uMTI1LjAyNS0uMDYuMDYyLS4xMTUuMDM2LS4wNTUuMDgzLS4xMDEuMDQ2LS4wNDcuMS0uMDgzLjA1NS0uMDM3LjExNi0uMDYyLjA2LS4wMjUuMTI1LS4wMzguMDY0LS4wMTMuMTMtLjAxM3QuMTMuMDEzcS4wNjQuMDEzLjEyNS4wMzguMDYuMDI1LjExNS4wNjIuMDU1LjAzNi4xMDEuMDgzWm0zLjg1OS0xLjE5MnEwLTIuNDkxLTEuNzU1LTQuMjQ4LTEuNzU0LTEuNzU2LTQuMjM4LTEuNzU2LTIuNDkyIDAtNC4yNDggMS43NTYtMS43NTYgMS43NTYtMS43NTYgNC4yNDggMCAyLjQ4NCAxLjc1NiA0LjIzOCAxLjc1NyAxLjc1NSA0LjI0OCAxLjc1NSAyLjQ4NCAwIDQuMjM4LTEuNzU1IDEuNzU1LTEuNzU0IDEuNzU1LTQuMjM4Wm0xLjMzMyAwcTAgMy4wMzYtMi4xNDUgNS4xODF0LTUuMTgxIDIuMTQ1cS0zLjA0MyAwLTUuMTktMi4xNDVRMCAxMC4zNzQgMCA3LjMzN3EwLTMuMDQ0IDIuMTQ3LTUuMTlRNC4yOTMgMCA3LjMzNyAwcTMuMDM3IDAgNS4xODEgMi4xNDcgMi4xNDUgMi4xNDcgMi4xNDUgNS4xOVpNMTAuMzMyIDVxMCAuMDY2LS4wMTMuMTN0LS4wMzguMTI1cS0uMDI1LjA2LS4wNjEuMTE0LS4wMzcuMDU1LS4wODMuMTAxLS4wNDYuMDQ3LS4xLjA4My0uMDU1LjAzNi0uMTE2LjA2MS0uMDYuMDI1LS4xMjUuMDM4LS4wNjQuMDEzLS4xMy4wMTMtLjA2NSAwLS4xMy0uMDEzLS4wNjMtLjAxMy0uMTI0LS4wMzgtLjA2LS4wMjUtLjExNS0uMDYxLS4wNTQtLjAzNi0uMS0uMDgzLS4wNDctLjA0Ni0uMDgzLS4xLS4wMzctLjA1NS0uMDYyLS4xMTUtLjAyNS0uMDYxLS4wMzgtLjEyNS0uMDEyLS4wNjQtLjAxMi0uMTMgMC0uMDY1LjAxMi0uMTMuMDEzLS4wNjQuMDM4LS4xMjQuMDI1LS4wNjEuMDYyLS4xMTUuMDM2LS4wNTUuMDgyLS4xMDEuMDQ3LS4wNDcuMTAxLS4wODMuMDU1LS4wMzYuMTE1LS4wNjEuMDYtLjAyNS4xMjUtLjAzOC4wNjQtLjAxMy4xMy0uMDEzLjA2NSAwIC4xMy4wMTMuMDY0LjAxMy4xMjQuMDM4dC4xMTUuMDYxcS4wNTUuMDM2LjEuMDgzLjA0Ny4wNDYuMDg0LjEuMDM2LjA1NS4wNjEuMTE2LjAyNS4wNi4wMzguMTI0LjAxMy4wNjUuMDEzLjEzWk01LjY2NSA5LjY2N3EwIC4wNjUtLjAxMy4xMy0uMDEzLjA2NC0uMDM4LjEyNHQtLjA2MS4xMTVxLS4wMzYuMDU1LS4wODMuMS0uMDQ2LjA0Ny0uMS4wODQtLjA1NS4wMzYtLjExNi4wNjEtLjA2LjAyNS0uMTI0LjAzOC0uMDY0LjAxMy0uMTMuMDEzLS4wNjUgMC0uMTMtLjAxMy0uMDY0LS4wMTMtLjEyNC0uMDM4LS4wNjEtLjAyNS0uMTE1LS4wNjEtLjA1NS0uMDM3LS4xMDEtLjA4My0uMDQ3LS4wNDYtLjA4My0uMS0uMDM2LS4wNTUtLjA2MS0uMTE2LS4wMjUtLjA2LS4wMzgtLjEyNS0uMDEzLS4wNjQtLjAxMy0uMTMgMC0uMDY1LjAxMy0uMTMuMDEzLS4wNjMuMDM4LS4xMjQuMDI1LS4wNi4wNjEtLjExNS4wMzYtLjA1NC4wODMtLjEuMDQ2LS4wNDcuMS0uMDgzLjA1NS0uMDM3LjExNi0uMDYyLjA2LS4wMjUuMTI0LS4wMzguMDY1LS4wMTIuMTMtLjAxMi4wNjYgMCAuMTMuMDEyLjA2NC4wMTMuMTI0LjAzOC4wNjEuMDI1LjExNS4wNjIuMDU1LjAzNi4xMDEuMDgyLjA0Ny4wNDcuMDgzLjEwMS4wMzYuMDU1LjA2MS4xMTUuMDI1LjA2LjAzOC4xMjUuMDEzLjA2NC4wMTMuMTNabTAtNC42NjdxMCAuMDY2LS4wMTMuMTN0LS4wMzguMTI1cS0uMDI1LjA2LS4wNjEuMTE0LS4wMzYuMDU1LS4wODMuMTAxLS4wNDYuMDQ3LS4xLjA4My0uMDU1LjAzNi0uMTE2LjA2MS0uMDYuMDI1LS4xMjQuMDM4LS4wNjQuMDEzLS4xMy4wMTMtLjA2NSAwLS4xMy0uMDEzLS4wNjQtLjAxMy0uMTI0LS4wMzgtLjA2MS0uMDI1LS4xMTUtLjA2MS0uMDU1LS4wMzYtLjEwMS0uMDgzLS4wNDctLjA0Ni0uMDgzLS4xLS4wMzYtLjA1NS0uMDYxLS4xMTUtLjAyNS0uMDYxLS4wMzgtLjEyNS0uMDEzLS4wNjQtLjAxMy0uMTMgMC0uMDY1LjAxMy0uMTMuMDEzLS4wNjQuMDM4LS4xMjQuMDI1LS4wNjEuMDYxLS4xMTUuMDM2LS4wNTUuMDgzLS4xMDEuMDQ2LS4wNDcuMS0uMDgzLjA1NS0uMDM2LjExNi0uMDYxLjA2LS4wMjUuMTI0LS4wMzguMDY1LS4wMTMuMTMtLjAxMy4wNjYgMCAuMTMuMDEzdC4xMjQuMDM4cS4wNjEuMDI1LjExNS4wNjEuMDU1LjAzNi4xMDEuMDgzLjA0Ny4wNDYuMDgzLjEuMDM2LjA1NS4wNjEuMTE2LjAyNS4wNi4wMzguMTI0LjAxMy4wNjUuMDEzLjEzWm0uNjY3LjY2N3EwIC4wNjUtLjAxMy4xMy0uMDEzLjA2NC0uMDM4LjEyNHQtLjA2MS4xMTVxLS4wMzcuMDU1LS4wODMuMS0uMDQ2LjA0Ny0uMS4wODQtLjA1NS4wMzYtLjExNi4wNjEtLjA2LjAyNS0uMTI1LjAzOC0uMDY0LjAxMy0uMTMuMDEzLS4wNjUgMC0uMTMtLjAxMy0uMDYzLS4wMTMtLjEyNC0uMDM4LS4wNi0uMDI1LS4xMTUtLjA2MS0uMDU0LS4wMzctLjEtLjA4My0uMDQ3LS4wNDYtLjA4My0uMS0uMDM3LS4wNTUtLjA2Mi0uMTE2LS4wMjUtLjA2LS4wMzgtLjEyNS0uMDEyLS4wNjQtLjAxMi0uMTMgMC0uMDY1LjAxMi0uMTMuMDEzLS4wNjMuMDM4LS4xMjQuMDI1LS4wNi4wNjItLjExNS4wMzYtLjA1NC4wODItLjEuMDQ3LS4wNDcuMTAxLS4wODMuMDU1LS4wMzcuMTE1LS4wNjIuMDYtLjAyNS4xMjUtLjAzOC4wNjQtLjAxMi4xMy0uMDEyLjA2NSAwIC4xMy4wMTIuMDY0LjAxMy4xMjQuMDM4dC4xMTUuMDYycS4wNTUuMDM2LjEuMDgyLjA0Ny4wNDcuMDg0LjEwMS4wMzYuMDU1LjA2MS4xMTUuMDI1LjA2LjAzOC4xMjUuMDEzLjA2NC4wMTMuMTNaTTkuNjY1IDlxMCAuMDY2LS4wMTMuMTN0LS4wMzguMTI1cS0uMDI1LjA2LS4wNjEuMTE0LS4wMzYuMDU1LS4wODMuMTAxLS4wNDYuMDQ3LS4xLjA4My0uMDU1LjAzNi0uMTE2LjA2MS0uMDYuMDI1LS4xMjQuMDM4LS4wNjQuMDEzLS4xMy4wMTMtLjA2NSAwLS4xMy0uMDEzLS4wNjQtLjAxMy0uMTI0LS4wMzgtLjA2MS0uMDI1LS4xMTUtLjA2MS0uMDU1LS4wMzYtLjEwMS0uMDgzLS4wNDctLjA0Ni0uMDgzLS4xLS4wMzYtLjA1NS0uMDYxLS4xMTUtLjAyNS0uMDYxLS4wMzgtLjEyNS0uMDEzLS4wNjQtLjAxMy0uMTMgMC0uMDY1LjAxMy0uMTMuMDEzLS4wNjQuMDM4LS4xMjQuMDI1LS4wNjEuMDYxLS4xMTUuMDM2LS4wNTUuMDgzLS4xMDEuMDQ2LS4wNDcuMS0uMDgzLjA1NS0uMDM2LjExNi0uMDYxLjA2LS4wMjUuMTI0LS4wMzguMDY1LS4wMTMuMTMtLjAxMy4wNjYgMCAuMTMuMDEzdC4xMjQuMDM4cS4wNjEuMDI1LjExNS4wNjEuMDU1LjAzNi4xMDEuMDgzLjA0Ny4wNDYuMDgzLjEuMDM2LjA1NS4wNjEuMTE2LjAyNS4wNi4wMzguMTI0LjAxMy4wNjUuMDEzLjEzWm0uNjY3LjY2N3EwIC4wNjUtLjAxMy4xMy0uMDEzLjA2NC0uMDM4LjEyNHQtLjA2MS4xMTVxLS4wMzcuMDU1LS4wODMuMS0uMDQ2LjA0Ny0uMS4wODQtLjA1NS4wMzYtLjExNi4wNjEtLjA2LjAyNS0uMTI1LjAzOC0uMDY0LjAxMy0uMTMuMDEzLS4wNjUgMC0uMTMtLjAxMy0uMDYzLS4wMTMtLjEyNC0uMDM4LS4wNi0uMDI1LS4xMTUtLjA2MS0uMDU0LS4wMzctLjEtLjA4My0uMDQ3LS4wNDYtLjA4My0uMS0uMDM3LS4wNTUtLjA2Mi0uMTE2LS4wMjUtLjA2LS4wMzgtLjEyNS0uMDEyLS4wNjQtLjAxMi0uMTMgMC0uMDY1LjAxMi0uMTMuMDEzLS4wNjMuMDM4LS4xMjQuMDI1LS4wNi4wNjItLjExNS4wMzYtLjA1NC4wODItLjEuMDQ3LS4wNDcuMTAxLS4wODMuMDU1LS4wMzcuMTE1LS4wNjIuMDYtLjAyNS4xMjUtLjAzOC4wNjQtLjAxMi4xMy0uMDEyLjA2NSAwIC4xMy4wMTIuMDY0LjAxMy4xMjQuMDM4dC4xMTUuMDYycS4wNTUuMDM2LjEuMDgyLjA0Ny4wNDcuMDg0LjEwMS4wMzYuMDU1LjA2MS4xMTUuMDI1LjA2LjAzOC4xMjUuMDEzLjA2NC4wMTMuMTNaXCJcbiAgfSkpKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgU3ZnRGVsZXRlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/delete.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/down.svg":
|
|
|
/*!****************************!*\
|
|
|
!*** ./app/icons/down.svg ***!
|
|
|
\****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _defs, _mask;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgDown = function SvgDown(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 16,\n height: 16,\n fill: \"none\"\n }, props), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n id: \"down_svg__a\",\n d: \"M0 0h16v16H0z\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n transform: \"rotate(-90 8 8)\"\n }, _mask || (_mask = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"mask\", {\n id: \"down_svg__b\",\n fill: \"#fff\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"use\", {\n xlinkHref: \"#down_svg__a\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n mask: \"url(#down_svg__b)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M4 8 0 4l4-4\",\n transform: \"translate(6.333 4)\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgDown);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvZG93bi5zdmciLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQSxzQkFBc0Isc0VBQXNFLGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUMsa0JBQWtCO0FBQzNRO0FBQy9CO0FBQ0Esc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyx5Q0FBeUMsZ0RBQW1CLDRCQUE0QixnREFBbUI7QUFDOUc7QUFDQTtBQUNBLEdBQUcsa0JBQWtCLGdEQUFtQjtBQUN4QztBQUNBLEdBQUcsaUNBQWlDLGdEQUFtQjtBQUN2RDtBQUNBO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBLEdBQUcsa0JBQWtCLGdEQUFtQjtBQUN4QztBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsaUVBQWUsT0FBTyIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2ljb25zL2Rvd24uc3ZnPzEyYTUiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9kZWZzLCBfbWFzaztcbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gPyBPYmplY3QuYXNzaWduLmJpbmQoKSA6IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG52YXIgU3ZnRG93biA9IGZ1bmN0aW9uIFN2Z0Rvd24ocHJvcHMpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIF9leHRlbmRzKHtcbiAgICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFxuICAgIHhtbG5zWGxpbms6IFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLFxuICAgIHdpZHRoOiAxNixcbiAgICBoZWlnaHQ6IDE2LFxuICAgIGZpbGw6IFwibm9uZVwiXG4gIH0sIHByb3BzKSwgX2RlZnMgfHwgKF9kZWZzID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkZWZzXCIsIG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgaWQ6IFwiZG93bl9zdmdfX2FcIixcbiAgICBkOiBcIk0wIDBoMTZ2MTZIMHpcIlxuICB9KSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImdcIiwge1xuICAgIHRyYW5zZm9ybTogXCJyb3RhdGUoLTkwIDggOClcIlxuICB9LCBfbWFzayB8fCAoX21hc2sgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcIm1hc2tcIiwge1xuICAgIGlkOiBcImRvd25fc3ZnX19iXCIsXG4gICAgZmlsbDogXCIjZmZmXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1c2VcIiwge1xuICAgIHhsaW5rSHJlZjogXCIjZG93bl9zdmdfX2FcIlxuICB9KSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImdcIiwge1xuICAgIG1hc2s6IFwidXJsKCNkb3duX3N2Z19fYilcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIHN0eWxlOiB7XG4gICAgICBzdHJva2U6IFwiIzMzM1wiLFxuICAgICAgc3Ryb2tlV2lkdGg6IDEuMzMzMzMzMzMzMzMzMzMzMyxcbiAgICAgIHN0cm9rZU9wYWNpdHk6IDEsXG4gICAgICBzdHJva2VEYXNoYXJyYXk6IFwiMCAwXCJcbiAgICB9LFxuICAgIGQ6IFwiTTQgOCAwIDRsNC00XCIsXG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSg2LjMzMyA0KVwiXG4gIH0pKSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IFN2Z0Rvd247Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/down.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/drag.svg":
|
|
|
/*!****************************!*\
|
|
|
!*** ./app/icons/drag.svg ***!
|
|
|
\****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _mask, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgDrag = function SvgDrag(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 16,\n height: 16,\n fill: \"none\"\n }, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", null, _mask || (_mask = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"mask\", {\n id: \"drag_svg__b\",\n fill: \"#fff\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"use\", {\n xlinkHref: \"#drag_svg__a\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n mask: \"url(#drag_svg__b)\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n fill: \"#333\"\n },\n d: \"M6.337 3.33c0 .74-.6 1.34-1.34 1.34a1.336 1.336 0 1 1 1.34-1.34zm-1.34 6a1.33 1.33 0 1 1 0-2.66c.74 0 1.34.59 1.34 1.33 0 .74-.6 1.33-1.34 1.33zm0 4.67a1.336 1.336 0 0 1 0-2.67c.74 0 1.34.6 1.34 1.34 0 .73-.6 1.33-1.34 1.33zM12.337 3.33c0 .74-.6 1.34-1.34 1.34a1.336 1.336 0 1 1 1.34-1.34zm-1.34 6a1.33 1.33 0 1 1 0-2.66c.74 0 1.34.59 1.34 1.33 0 .74-.6 1.33-1.34 1.33zm0 4.67a1.336 1.336 0 0 1 0-2.67c.74 0 1.34.6 1.34 1.34 0 .73-.6 1.33-1.34 1.33z\"\n }))), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n id: \"drag_svg__a\",\n d: \"M0 0h16v16H0z\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgDrag);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvZHJhZy5zdmciLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQSxzQkFBc0Isc0VBQXNFLGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUMsa0JBQWtCO0FBQzNRO0FBQy9CO0FBQ0Esc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyx1QkFBdUIsZ0RBQW1CLDJDQUEyQyxnREFBbUI7QUFDM0c7QUFDQTtBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQSxHQUFHLGtCQUFrQixnREFBbUI7QUFDeEM7QUFDQTtBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLEdBQUcsb0NBQW9DLGdEQUFtQiw0QkFBNEIsZ0RBQW1CO0FBQ3pHO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpRUFBZSxPQUFPIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvaWNvbnMvZHJhZy5zdmc/ODM3ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX21hc2ssIF9kZWZzO1xuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiA/IE9iamVjdC5hc3NpZ24uYmluZCgpIDogZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbnZhciBTdmdEcmFnID0gZnVuY3Rpb24gU3ZnRHJhZyhwcm9wcykge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX2V4dGVuZHMoe1xuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gICAgeG1sbnNYbGluazogXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXG4gICAgd2lkdGg6IDE2LFxuICAgIGhlaWdodDogMTYsXG4gICAgZmlsbDogXCJub25lXCJcbiAgfSwgcHJvcHMpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImdcIiwgbnVsbCwgX21hc2sgfHwgKF9tYXNrID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJtYXNrXCIsIHtcbiAgICBpZDogXCJkcmFnX3N2Z19fYlwiLFxuICAgIGZpbGw6IFwiI2ZmZlwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwidXNlXCIsIHtcbiAgICB4bGlua0hyZWY6IFwiI2RyYWdfc3ZnX19hXCJcbiAgfSkpKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICBtYXNrOiBcInVybCgjZHJhZ19zdmdfX2IpXCIsXG4gICAgZmlsbFJ1bGU6IFwiZXZlbm9kZFwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIGZpbGw6IFwiIzMzM1wiXG4gICAgfSxcbiAgICBkOiBcIk02LjMzNyAzLjMzYzAgLjc0LS42IDEuMzQtMS4zNCAxLjM0YTEuMzM2IDEuMzM2IDAgMSAxIDEuMzQtMS4zNHptLTEuMzQgNmExLjMzIDEuMzMgMCAxIDEgMC0yLjY2Yy43NCAwIDEuMzQuNTkgMS4zNCAxLjMzIDAgLjc0LS42IDEuMzMtMS4zNCAxLjMzem0wIDQuNjdhMS4zMzYgMS4zMzYgMCAwIDEgMC0yLjY3Yy43NCAwIDEuMzQuNiAxLjM0IDEuMzQgMCAuNzMtLjYgMS4zMy0xLjM0IDEuMzN6TTEyLjMzNyAzLjMzYzAgLjc0LS42IDEuMzQtMS4zNCAxLjM0YTEuMzM2IDEuMzM2IDAgMSAxIDEuMzQtMS4zNHptLTEuMzQgNmExLjMzIDEuMzMgMCAxIDEgMC0yLjY2Yy43NCAwIDEuMzQuNTkgMS4zNCAxLjMzIDAgLjc0LS42IDEuMzMtMS4zNCAxLjMzem0wIDQuNjdhMS4zMzYgMS4zMzYgMCAwIDEgMC0yLjY3Yy43NCAwIDEuMzQuNiAxLjM0IDEuMzQgMCAuNzMtLjYgMS4zMy0xLjM0IDEuMzN6XCJcbiAgfSkpKSwgX2RlZnMgfHwgKF9kZWZzID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkZWZzXCIsIG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgaWQ6IFwiZHJhZ19zdmdfX2FcIixcbiAgICBkOiBcIk0wIDBoMTZ2MTZIMHpcIlxuICB9KSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBTdmdEcmFnOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/drag.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/eye-off.svg":
|
|
|
/*!*******************************!*\
|
|
|
!*** ./app/icons/eye-off.svg ***!
|
|
|
\*******************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgEyeOff = function SvgEyeOff(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"evenodd\",\n d: \"M19.707 5.707a1 1 0 0 0-1.414-1.414l-4.261 4.26a4 4 0 0 0-5.478 5.478l-4.261 4.262a1 1 0 1 0 1.414 1.414l4.261-4.26a4 4 0 0 0 5.478-5.478l4.261-4.262Zm-7.189 4.36a2 2 0 0 0-2.45 2.45l2.45-2.45Zm-1.036 3.865 2.45-2.45a2 2 0 0 1-2.45 2.45Zm4.283-9.111C14.63 4.32 13.367 4 12 4 9.148 4 6.757 5.395 4.998 6.906c-1.765 1.517-2.99 3.232-3.534 4.064a1.876 1.876 0 0 0 0 2.06 20.304 20.304 0 0 0 2.748 3.344l1.414-1.414A18.315 18.315 0 0 1 3.18 12c.51-.773 1.598-2.268 3.121-3.577C7.874 7.072 9.816 6 12 6a7.06 7.06 0 0 1 2.22.367l1.545-1.546ZM12 18a7.06 7.06 0 0 1-2.22-.367L8.236 19.18c1.136.5 2.398.821 3.765.821 2.852 0 5.243-1.395 7.002-2.906 1.765-1.517 2.99-3.232 3.534-4.064.411-.628.411-1.431 0-2.06a20.303 20.303 0 0 0-2.748-3.344L18.374 9.04A18.312 18.312 0 0 1 20.82 12c-.51.773-1.598 2.268-3.121 3.577C16.126 16.928 14.184 18 12 18Z\",\n clipRule: \"evenodd\"\n })));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgEyeOff);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvZXllLW9mZi5zdmciLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQSxzQkFBc0Isc0VBQXNFLGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUMsa0JBQWtCO0FBQzNRO0FBQy9CO0FBQ0Esc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyx5Q0FBeUMsZ0RBQW1CO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsaUVBQWUsU0FBUyIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2ljb25zL2V5ZS1vZmYuc3ZnP2RmZTgiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9wYXRoO1xuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiA/IE9iamVjdC5hc3NpZ24uYmluZCgpIDogZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbnZhciBTdmdFeWVPZmYgPSBmdW5jdGlvbiBTdmdFeWVPZmYocHJvcHMpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIF9leHRlbmRzKHtcbiAgICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFxuICAgIHdpZHRoOiA4MDAsXG4gICAgaGVpZ2h0OiA4MDAsXG4gICAgZmlsbDogXCJub25lXCIsXG4gICAgdmlld0JveDogXCIwIDAgMjQgMjRcIlxuICB9LCBwcm9wcyksIF9wYXRoIHx8IChfcGF0aCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZmlsbDogXCIjMDAwXCIsXG4gICAgZmlsbFJ1bGU6IFwiZXZlbm9kZFwiLFxuICAgIGQ6IFwiTTE5LjcwNyA1LjcwN2ExIDEgMCAwIDAtMS40MTQtMS40MTRsLTQuMjYxIDQuMjZhNCA0IDAgMCAwLTUuNDc4IDUuNDc4bC00LjI2MSA0LjI2MmExIDEgMCAxIDAgMS40MTQgMS40MTRsNC4yNjEtNC4yNmE0IDQgMCAwIDAgNS40NzgtNS40NzhsNC4yNjEtNC4yNjJabS03LjE4OSA0LjM2YTIgMiAwIDAgMC0yLjQ1IDIuNDVsMi40NS0yLjQ1Wm0tMS4wMzYgMy44NjUgMi40NS0yLjQ1YTIgMiAwIDAgMS0yLjQ1IDIuNDVabTQuMjgzLTkuMTExQzE0LjYzIDQuMzIgMTMuMzY3IDQgMTIgNCA5LjE0OCA0IDYuNzU3IDUuMzk1IDQuOTk4IDYuOTA2Yy0xLjc2NSAxLjUxNy0yLjk5IDMuMjMyLTMuNTM0IDQuMDY0YTEuODc2IDEuODc2IDAgMCAwIDAgMi4wNiAyMC4zMDQgMjAuMzA0IDAgMCAwIDIuNzQ4IDMuMzQ0bDEuNDE0LTEuNDE0QTE4LjMxNSAxOC4zMTUgMCAwIDEgMy4xOCAxMmMuNTEtLjc3MyAxLjU5OC0yLjI2OCAzLjEyMS0zLjU3N0M3Ljg3NCA3LjA3MiA5LjgxNiA2IDEyIDZhNy4wNiA3LjA2IDAgMCAxIDIuMjIuMzY3bDEuNTQ1LTEuNTQ2Wk0xMiAxOGE3LjA2IDcuMDYgMCAwIDEtMi4yMi0uMzY3TDguMjM2IDE5LjE4YzEuMTM2LjUgMi4zOTguODIxIDMuNzY1LjgyMSAyLjg1MiAwIDUuMjQzLTEuMzk1IDcuMDAyLTIuOTA2IDEuNzY1LTEuNTE3IDIuOTktMy4yMzIgMy41MzQtNC4wNjQuNDExLS42MjguNDExLTEuNDMxIDAtMi4wNmEyMC4zMDMgMjAuMzAzIDAgMCAwLTIuNzQ4LTMuMzQ0TDE4LjM3NCA5LjA0QTE4LjMxMiAxOC4zMTIgMCAwIDEgMjAuODIgMTJjLS41MS43NzMtMS41OTggMi4yNjgtMy4xMjEgMy41NzdDMTYuMTI2IDE2LjkyOCAxNC4xODQgMTggMTIgMThaXCIsXG4gICAgY2xpcFJ1bGU6IFwiZXZlbm9kZFwiXG4gIH0pKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgU3ZnRXllT2ZmOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/eye-off.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/eye.svg":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/icons/eye.svg ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgEye = function SvgEye(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"evenodd\",\n d: \"M6.301 15.577C4.778 14.268 3.691 12.773 3.18 12c.51-.773 1.598-2.268 3.121-3.577C7.874 7.072 9.816 6 12 6c2.184 0 4.126 1.072 5.699 2.423 1.523 1.309 2.61 2.804 3.121 3.577-.51.773-1.598 2.268-3.121 3.577C16.126 16.928 14.184 18 12 18c-2.184 0-4.126-1.072-5.699-2.423ZM12 4C9.148 4 6.757 5.395 4.998 6.906c-1.765 1.517-2.99 3.232-3.534 4.064a1.876 1.876 0 0 0 0 2.06c.544.832 1.769 2.547 3.534 4.064C6.758 18.605 9.148 20 12 20c2.852 0 5.243-1.395 7.002-2.906 1.765-1.517 2.99-3.232 3.534-4.064.411-.628.411-1.431 0-2.06-.544-.832-1.769-2.547-3.534-4.064C17.242 5.395 14.852 4 12 4Zm-2 8a2 2 0 1 1 4 0 2 2 0 0 1-4 0Zm2-4a4 4 0 1 0 0 8 4 4 0 0 0 0-8Z\",\n clipRule: \"evenodd\"\n })));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgEye);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvZXllLnN2ZyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBLHNCQUFzQixzRUFBc0UsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQyxrQkFBa0I7QUFDM1E7QUFDL0I7QUFDQSxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLHlDQUF5QyxnREFBbUI7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpRUFBZSxNQUFNIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvaWNvbnMvZXllLnN2Zz80YjRlIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfcGF0aDtcbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gPyBPYmplY3QuYXNzaWduLmJpbmQoKSA6IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG52YXIgU3ZnRXllID0gZnVuY3Rpb24gU3ZnRXllKHByb3BzKSB7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCBfZXh0ZW5kcyh7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICB3aWR0aDogODAwLFxuICAgIGhlaWdodDogODAwLFxuICAgIGZpbGw6IFwibm9uZVwiLFxuICAgIHZpZXdCb3g6IFwiMCAwIDI0IDI0XCJcbiAgfSwgcHJvcHMpLCBfcGF0aCB8fCAoX3BhdGggPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGZpbGw6IFwiIzAwMFwiLFxuICAgIGZpbGxSdWxlOiBcImV2ZW5vZGRcIixcbiAgICBkOiBcIk02LjMwMSAxNS41NzdDNC43NzggMTQuMjY4IDMuNjkxIDEyLjc3MyAzLjE4IDEyYy41MS0uNzczIDEuNTk4LTIuMjY4IDMuMTIxLTMuNTc3QzcuODc0IDcuMDcyIDkuODE2IDYgMTIgNmMyLjE4NCAwIDQuMTI2IDEuMDcyIDUuNjk5IDIuNDIzIDEuNTIzIDEuMzA5IDIuNjEgMi44MDQgMy4xMjEgMy41NzctLjUxLjc3My0xLjU5OCAyLjI2OC0zLjEyMSAzLjU3N0MxNi4xMjYgMTYuOTI4IDE0LjE4NCAxOCAxMiAxOGMtMi4xODQgMC00LjEyNi0xLjA3Mi01LjY5OS0yLjQyM1pNMTIgNEM5LjE0OCA0IDYuNzU3IDUuMzk1IDQuOTk4IDYuOTA2Yy0xLjc2NSAxLjUxNy0yLjk5IDMuMjMyLTMuNTM0IDQuMDY0YTEuODc2IDEuODc2IDAgMCAwIDAgMi4wNmMuNTQ0LjgzMiAxLjc2OSAyLjU0NyAzLjUzNCA0LjA2NEM2Ljc1OCAxOC42MDUgOS4xNDggMjAgMTIgMjBjMi44NTIgMCA1LjI0My0xLjM5NSA3LjAwMi0yLjkwNiAxLjc2NS0xLjUxNyAyLjk5LTMuMjMyIDMuNTM0LTQuMDY0LjQxMS0uNjI4LjQxMS0xLjQzMSAwLTIuMDYtLjU0NC0uODMyLTEuNzY5LTIuNTQ3LTMuNTM0LTQuMDY0QzE3LjI0MiA1LjM5NSAxNC44NTIgNCAxMiA0Wm0tMiA4YTIgMiAwIDEgMSA0IDAgMiAyIDAgMCAxLTQgMFptMi00YTQgNCAwIDEgMCAwIDggNCA0IDAgMCAwIDAtOFpcIixcbiAgICBjbGlwUnVsZTogXCJldmVub2RkXCJcbiAgfSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBTdmdFeWU7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/eye.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/github.svg":
|
|
|
/*!******************************!*\
|
|
|
!*** ./app/icons/github.svg ***!
|
|
|
\******************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _defs, _mask;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgGithub = function SvgGithub(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 16,\n height: 16,\n fill: \"none\"\n }, props), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n id: \"github_svg__a\",\n d: \"M0 0h16v16H0z\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", null, _mask || (_mask = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"mask\", {\n id: \"github_svg__b\",\n fill: \"#fff\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"use\", {\n xlinkHref: \"#github_svg__a\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n mask: \"url(#github_svg__b)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M7.11 8.51c.81-.16 1.53-.45 2.1-.87.96-.73 1.46-1.85 1.46-2.95 0-.78-.3-1.5-.81-2.11-.28-.34.55-2.89-.19-2.55-.73.34-1.81 1.1-2.38.94C6.68.79 6.02.69 5.33.69c-.6 0-1.17.07-1.71.21-.79.2-1.53-.54-2.29-.87C.58-.29.99 2.34.77 2.62.28 3.22 0 3.93 0 4.69c0 1.1.6 2.22 1.56 2.95.65.48 1.45.78 2.35.94\",\n transform: \"translate(2.667 1.645)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M.58 0C.19.43 0 .83 0 1.21v2.91\",\n transform: \"translate(6 10.22)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M0 0c.37.48.55.91.55 1.29v2.89\",\n transform: \"translate(9.782 10.159)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M0 0c.3.04.52.17.67.41C.88.77 1.69 2.1 2.61 2.1H4\",\n transform: \"translate(2 10.405)\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgGithub);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvZ2l0aHViLnN2ZyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBLHNCQUFzQixzRUFBc0UsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQyxrQkFBa0I7QUFDM1E7QUFDL0I7QUFDQSxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLHlDQUF5QyxnREFBbUIsNEJBQTRCLGdEQUFtQjtBQUM5RztBQUNBO0FBQ0EsR0FBRyxrQkFBa0IsZ0RBQW1CLDJDQUEyQyxnREFBbUI7QUFDdEc7QUFDQTtBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQSxHQUFHLGtCQUFrQixnREFBbUI7QUFDeEM7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlFQUFlLFNBQVMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9pY29ucy9naXRodWIuc3ZnPzI0YTQiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9kZWZzLCBfbWFzaztcbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gPyBPYmplY3QuYXNzaWduLmJpbmQoKSA6IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG52YXIgU3ZnR2l0aHViID0gZnVuY3Rpb24gU3ZnR2l0aHViKHByb3BzKSB7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCBfZXh0ZW5kcyh7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICB4bWxuc1hsaW5rOiBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIixcbiAgICB3aWR0aDogMTYsXG4gICAgaGVpZ2h0OiAxNixcbiAgICBmaWxsOiBcIm5vbmVcIlxuICB9LCBwcm9wcyksIF9kZWZzIHx8IChfZGVmcyA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGVmc1wiLCBudWxsLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGlkOiBcImdpdGh1Yl9zdmdfX2FcIixcbiAgICBkOiBcIk0wIDBoMTZ2MTZIMHpcIlxuICB9KSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImdcIiwgbnVsbCwgX21hc2sgfHwgKF9tYXNrID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJtYXNrXCIsIHtcbiAgICBpZDogXCJnaXRodWJfc3ZnX19iXCIsXG4gICAgZmlsbDogXCIjZmZmXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1c2VcIiwge1xuICAgIHhsaW5rSHJlZjogXCIjZ2l0aHViX3N2Z19fYVwiXG4gIH0pKSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZ1wiLCB7XG4gICAgbWFzazogXCJ1cmwoI2dpdGh1Yl9zdmdfX2IpXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHlsZToge1xuICAgICAgc3Ryb2tlOiBcIiMzMzNcIixcbiAgICAgIHN0cm9rZVdpZHRoOiAxLjMzMzMzMzMzMzMzMzMzMzMsXG4gICAgICBzdHJva2VPcGFjaXR5OiAxLFxuICAgICAgc3Ryb2tlRGFzaGFycmF5OiBcIjAgMFwiXG4gICAgfSxcbiAgICBkOiBcIk03LjExIDguNTFjLjgxLS4xNiAxLjUzLS40NSAyLjEtLjg3Ljk2LS43MyAxLjQ2LTEuODUgMS40Ni0yLjk1IDAtLjc4LS4zLTEuNS0uODEtMi4xMS0uMjgtLjM0LjU1LTIuODktLjE5LTIuNTUtLjczLjM0LTEuODEgMS4xLTIuMzguOTRDNi42OC43OSA2LjAyLjY5IDUuMzMuNjljLS42IDAtMS4xNy4wNy0xLjcxLjIxLS43OS4yLTEuNTMtLjU0LTIuMjktLjg3Qy41OC0uMjkuOTkgMi4zNC43NyAyLjYyLjI4IDMuMjIgMCAzLjkzIDAgNC42OWMwIDEuMS42IDIuMjIgMS41NiAyLjk1LjY1LjQ4IDEuNDUuNzggMi4zNS45NFwiLFxuICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoMi42NjcgMS42NDUpXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIHN0cm9rZTogXCIjMzMzXCIsXG4gICAgICBzdHJva2VXaWR0aDogMS4zMzMzMzMzMzMzMzMzMzMzLFxuICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgIHN0cm9rZURhc2hhcnJheTogXCIwIDBcIlxuICAgIH0sXG4gICAgZDogXCJNLjU4IDBDLjE5LjQzIDAgLjgzIDAgMS4yMXYyLjkxXCIsXG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSg2IDEwLjIyKVwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIHN0eWxlOiB7XG4gICAgICBzdHJva2U6IFwiIzMzM1wiLFxuICAgICAgc3Ryb2tlV2lkdGg6IDEuMzMzMzMzMzMzMzMzMzMzMyxcbiAgICAgIHN0cm9rZU9wYWNpdHk6IDEsXG4gICAgICBzdHJva2VEYXNoYXJyYXk6IFwiMCAwXCJcbiAgICB9LFxuICAgIGQ6IFwiTTAgMGMuMzcuNDguNTUuOTEuNTUgMS4yOXYyLjg5XCIsXG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSg5Ljc4MiAxMC4xNTkpXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIHN0cm9rZTogXCIjMzMzXCIsXG4gICAgICBzdHJva2VXaWR0aDogMS4zMzMzMzMzMzMzMzMzMzMzLFxuICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgIHN0cm9rZURhc2hhcnJheTogXCIwIDBcIlxuICAgIH0sXG4gICAgZDogXCJNMCAwYy4zLjA0LjUyLjE3LjY3LjQxQy44OC43NyAxLjY5IDIuMSAyLjYxIDIuMUg0XCIsXG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgyIDEwLjQwNSlcIlxuICB9KSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBTdmdHaXRodWI7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/github.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/left.svg":
|
|
|
/*!****************************!*\
|
|
|
!*** ./app/icons/left.svg ***!
|
|
|
\****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _defs, _mask;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgLeft = function SvgLeft(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 16,\n height: 16,\n fill: \"none\"\n }, props), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n id: \"left_svg__a\",\n d: \"M0 0h16v16H0z\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", null, _mask || (_mask = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"mask\", {\n id: \"left_svg__b\",\n fill: \"#fff\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"use\", {\n xlinkHref: \"#left_svg__a\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n mask: \"url(#left_svg__b)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M4 8 0 4l4-4\",\n transform: \"translate(6.333 4)\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgLeft);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvbGVmdC5zdmciLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQSxzQkFBc0Isc0VBQXNFLGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUMsa0JBQWtCO0FBQzNRO0FBQy9CO0FBQ0Esc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyx5Q0FBeUMsZ0RBQW1CLDRCQUE0QixnREFBbUI7QUFDOUc7QUFDQTtBQUNBLEdBQUcsa0JBQWtCLGdEQUFtQiwyQ0FBMkMsZ0RBQW1CO0FBQ3RHO0FBQ0E7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CO0FBQ3JDO0FBQ0EsR0FBRyxrQkFBa0IsZ0RBQW1CO0FBQ3hDO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpRUFBZSxPQUFPIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvaWNvbnMvbGVmdC5zdmc/ZGM4YiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX2RlZnMsIF9tYXNrO1xuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiA/IE9iamVjdC5hc3NpZ24uYmluZCgpIDogZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbnZhciBTdmdMZWZ0ID0gZnVuY3Rpb24gU3ZnTGVmdChwcm9wcykge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX2V4dGVuZHMoe1xuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gICAgeG1sbnNYbGluazogXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXG4gICAgd2lkdGg6IDE2LFxuICAgIGhlaWdodDogMTYsXG4gICAgZmlsbDogXCJub25lXCJcbiAgfSwgcHJvcHMpLCBfZGVmcyB8fCAoX2RlZnMgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRlZnNcIiwgbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBpZDogXCJsZWZ0X3N2Z19fYVwiLFxuICAgIGQ6IFwiTTAgMGgxNnYxNkgwelwiXG4gIH0pKSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZ1wiLCBudWxsLCBfbWFzayB8fCAoX21hc2sgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcIm1hc2tcIiwge1xuICAgIGlkOiBcImxlZnRfc3ZnX19iXCIsXG4gICAgZmlsbDogXCIjZmZmXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1c2VcIiwge1xuICAgIHhsaW5rSHJlZjogXCIjbGVmdF9zdmdfX2FcIlxuICB9KSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImdcIiwge1xuICAgIG1hc2s6IFwidXJsKCNsZWZ0X3N2Z19fYilcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIHN0eWxlOiB7XG4gICAgICBzdHJva2U6IFwiIzMzM1wiLFxuICAgICAgc3Ryb2tlV2lkdGg6IDEuMzMzMzMzMzMzMzMzMzMzMyxcbiAgICAgIHN0cm9rZU9wYWNpdHk6IDEsXG4gICAgICBzdHJva2VEYXNoYXJyYXk6IFwiMCAwXCJcbiAgICB9LFxuICAgIGQ6IFwiTTQgOCAwIDRsNC00XCIsXG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSg2LjMzMyA0KVwiXG4gIH0pKSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IFN2Z0xlZnQ7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/left.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/llm-icons/chatglm.svg":
|
|
|
/*!*****************************************!*\
|
|
|
!*** ./app/icons/llm-icons/chatglm.svg ***!
|
|
|
\*****************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _rect, _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgChatglm = function SvgChatglm(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n height: \"1em\",\n style: {\n flex: \"none\",\n lineHeight: 1\n },\n viewBox: \"0 0 30 30\",\n width: \"1em\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _rect || (_rect = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"rect\", {\n width: 30,\n height: 30,\n fill: \"#E7F8FF\",\n rx: 6\n })), _g || (_g = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n transform: \"translate(3 3)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"chatglm_svg__a\",\n x1: \"-18.756%\",\n x2: \"70.894%\",\n y1: \"49.371%\",\n y2: \"90.944%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"0%\",\n stopColor: \"#504AF4\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"100%\",\n stopColor: \"#3485FF\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M9.917 2c4.906 0 10.178 3.947 8.93 10.58-.014.07-.037.14-.057.21l-.003-.277c-.083-3-1.534-8.934-8.87-8.934-3.393 0-8.137 3.054-7.93 8.158-.04 4.778 3.555 8.4 7.95 8.332l.073-.001c1.2-.033 2.763-.429 3.1-1.657.063-.031.26.534.268.598.048.256.112.369.192.34.981-.348 2.286-1.222 1.952-2.38-.176-.61-1.775-.147-1.921-.347.418-.979 2.234-.926 3.153-.716.443.102.657.38 1.012.442.29.052.981-.2.96.242-1.5 3.042-4.893 5.41-8.808 5.41C3.654 22 0 16.574 0 11.737 0 5.947 4.959 2 9.917 2zM9.9 5.3c.484 0 1.125.225 1.38.585 3.669.145 4.313 2.686 4.694 5.444.255 1.838.315 2.3.182 1.387l.083.59c.068.448.554.737.982.516.144-.075.254-.231.328-.47a.2.2 0 0 1 .258-.13l.625.22a.2.2 0 0 1 .124.238 2.172 2.172 0 0 1-.51.92c-.878.917-2.757.664-3.08-.62-.14-.554-.055-.626-.345-1.242-.292-.621-1.238-.709-1.69-.295-.345.315-.407.805-.406 1.282L12.6 15.9a.9.9 0 0 1-.9.9h-1.4a.9.9 0 0 1-.9-.9v-.65a1.15 1.15 0 1 0-2.3 0v.65a.9.9 0 0 1-.9.9H4.8a.9.9 0 0 1-.9-.9l.035-3.239c.012-1.884.356-3.658 2.47-4.134.2-.045.252.13.29.342.025.154.043.252.053.294.701 3.058 1.75 4.299 3.144 3.722l.66-.331.254-.13c.158-.082.25-.131.276-.15.012-.01-.165-.206-.407-.464l-1.012-1.067a8.925 8.925 0 0 1-.199-.216c-.047-.034-.116.068-.208.306-.074.157-.251.252-.272.326-.013.058.108.298.362.72.164.288.22.508-.31.343-1.04-.8-1.518-2.273-1.684-3.725-.004-.035-.162-1.913-.162-1.913a1.2 1.2 0 0 1 1.113-1.281L9.9 5.3zm12.994 8.68c.037.697-.403.704-1.213.591l-1.783-.276c-.265-.053-.385-.099-.313-.147.47-.315 3.268-.93 3.31-.168zm-.915-.083-.926.042c-.85.077-1.452.24.338.336l.103.003c.815.012 1.264-.359.485-.381zm1.667-3.601h.01c.79.398.067 1.03-.65 1.393-.14.07-.491.176-1.052.315-.241.04-.457.092-.333.16l.01.005c1.952.958-3.123 1.534-2.495 1.285l.38-.148c.68-.266 1.614-.682 1.666-1.337.038-.48 1.253-.442 1.493-.968.048-.106 0-.236-.144-.389-.05-.047-.094-.094-.107-.148-.073-.305.7-.431 1.222-.168zm-2.568-.474c-.135 1.198-2.479 4.192-1.949 2.863l.017-.042c.298-.717.376-2.221 1.337-3.221.25-.26.636.035.595.4zm-7.976-.253c.02-.694 1.002-.968 1.346-.347.01-1.274-1.941-.768-1.346.347z\",\n fill: \"url(#chatglm_svg__a)\",\n fillRule: \"evenodd\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgChatglm);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvbGxtLWljb25zL2NoYXRnbG0uc3ZnIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0Esc0JBQXNCLHNFQUFzRSxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjtBQUMzUTtBQUMvQjtBQUNBLHNCQUFzQixnREFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsR0FBRyx5Q0FBeUMsZ0RBQW1CO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyw2QkFBNkIsZ0RBQW1CO0FBQ25EO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQiw0QkFBNEIsZ0RBQW1CO0FBQ3BGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CO0FBQ3JDO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBLEdBQUcsa0JBQWtCLGdEQUFtQjtBQUN4QztBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpRUFBZSxVQUFVIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvaWNvbnMvbGxtLWljb25zL2NoYXRnbG0uc3ZnPzk1ODMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9yZWN0LCBfZztcbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gPyBPYmplY3QuYXNzaWduLmJpbmQoKSA6IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG52YXIgU3ZnQ2hhdGdsbSA9IGZ1bmN0aW9uIFN2Z0NoYXRnbG0ocHJvcHMpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIF9leHRlbmRzKHtcbiAgICBoZWlnaHQ6IFwiMWVtXCIsXG4gICAgc3R5bGU6IHtcbiAgICAgIGZsZXg6IFwibm9uZVwiLFxuICAgICAgbGluZUhlaWdodDogMVxuICAgIH0sXG4gICAgdmlld0JveDogXCIwIDAgMzAgMzBcIixcbiAgICB3aWR0aDogXCIxZW1cIixcbiAgICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gIH0sIHByb3BzKSwgX3JlY3QgfHwgKF9yZWN0ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJyZWN0XCIsIHtcbiAgICB3aWR0aDogMzAsXG4gICAgaGVpZ2h0OiAzMCxcbiAgICBmaWxsOiBcIiNFN0Y4RkZcIixcbiAgICByeDogNlxuICB9KSksIF9nIHx8IChfZyA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZ1wiLCB7XG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgzIDMpXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkZWZzXCIsIG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwibGluZWFyR3JhZGllbnRcIiwge1xuICAgIGlkOiBcImNoYXRnbG1fc3ZnX19hXCIsXG4gICAgeDE6IFwiLTE4Ljc1NiVcIixcbiAgICB4MjogXCI3MC44OTQlXCIsXG4gICAgeTE6IFwiNDkuMzcxJVwiLFxuICAgIHkyOiBcIjkwLjk0NCVcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN0b3BcIiwge1xuICAgIG9mZnNldDogXCIwJVwiLFxuICAgIHN0b3BDb2xvcjogXCIjNTA0QUY0XCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3RvcFwiLCB7XG4gICAgb2Zmc2V0OiBcIjEwMCVcIixcbiAgICBzdG9wQ29sb3I6IFwiIzM0ODVGRlwiXG4gIH0pKSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZDogXCJNOS45MTcgMmM0LjkwNiAwIDEwLjE3OCAzLjk0NyA4LjkzIDEwLjU4LS4wMTQuMDctLjAzNy4xNC0uMDU3LjIxbC0uMDAzLS4yNzdjLS4wODMtMy0xLjUzNC04LjkzNC04Ljg3LTguOTM0LTMuMzkzIDAtOC4xMzcgMy4wNTQtNy45MyA4LjE1OC0uMDQgNC43NzggMy41NTUgOC40IDcuOTUgOC4zMzJsLjA3My0uMDAxYzEuMi0uMDMzIDIuNzYzLS40MjkgMy4xLTEuNjU3LjA2My0uMDMxLjI2LjUzNC4yNjguNTk4LjA0OC4yNTYuMTEyLjM2OS4xOTIuMzQuOTgxLS4zNDggMi4yODYtMS4yMjIgMS45NTItMi4zOC0uMTc2LS42MS0xLjc3NS0uMTQ3LTEuOTIxLS4zNDcuNDE4LS45NzkgMi4yMzQtLjkyNiAzLjE1My0uNzE2LjQ0My4xMDIuNjU3LjM4IDEuMDEyLjQ0Mi4yOS4wNTIuOTgxLS4yLjk2LjI0Mi0xLjUgMy4wNDItNC44OTMgNS40MS04LjgwOCA1LjQxQzMuNjU0IDIyIDAgMTYuNTc0IDAgMTEuNzM3IDAgNS45NDcgNC45NTkgMiA5LjkxNyAyek05LjkgNS4zYy40ODQgMCAxLjEyNS4yMjUgMS4zOC41ODUgMy42NjkuMTQ1IDQuMzEzIDIuNjg2IDQuNjk0IDUuNDQ0LjI1NSAxLjgzOC4zMTUgMi4zLjE4MiAxLjM4N2wuMDgzLjU5Yy4wNjguNDQ4LjU1NC43MzcuOTgyLjUxNi4xNDQtLjA3NS4yNTQtLjIzMS4zMjgtLjQ3YS4yLjIgMCAwIDEgLjI1OC0uMTNsLjYyNS4yMmEuMi4yIDAgMCAxIC4xMjQuMjM4IDIuMTcyIDIuMTcyIDAgMCAxLS41MS45MmMtLjg3OC45MTctMi43NTcuNjY0LTMuMDgtLjYyLS4xNC0uNTU0LS4wNTUtLjYyNi0uMzQ1LTEuMjQyLS4yOTItLjYyMS0xLjIzOC0uNzA5LTEuNjktLjI5NS0uMzQ1LjMxNS0uNDA3LjgwNS0uNDA2IDEuMjgyTDEyLjYgMTUuOWEuOS45IDAgMCAxLS45LjloLTEuNGEuOS45IDAgMCAxLS45LS45di0uNjVhMS4xNSAxLjE1IDAgMSAwLTIuMyAwdi42NWEuOS45IDAgMCAxLS45LjlINC44YS45LjkgMCAwIDEtLjktLjlsLjAzNS0zLjIzOWMuMDEyLTEuODg0LjM1Ni0zLjY1OCAyLjQ3LTQuMTM0LjItLjA0NS4yNTIuMTMuMjkuMzQyLjAyNS4xNTQuMDQzLjI1Mi4wNTMuMjk0LjcwMSAzLjA1OCAxLjc1IDQuMjk5IDMuMTQ0IDMuNzIybC42Ni0uMzMxLjI1NC0uMTNjLjE1OC0uMDgyLjI1LS4xMzEuMjc2LS4xNS4wMTItLjAxLS4xNjUtLjIwNi0uNDA3LS40NjRsLTEuMDEyLTEuMDY3YTguOTI1IDguOTI1IDAgMCAxLS4xOTktLjIxNmMtLjA0Ny0uMDM0LS4xMTYuMDY4LS4yMDguMzA2LS4wNzQuMTU3LS4yNTEuMjUyLS4yNzIuMzI2LS4wMTMuMDU4LjEwOC4yOTguMzYyLjcyLjE2NC4yODguMjIuNTA4LS4zMS4zNDMtMS4wNC0uOC0xLjUxOC0yLjI3My0xLjY4NC0zLjcyNS0uMDA0LS4wMzUtLjE2Mi0xLjkxMy0uMTYyLTEuOTEzYTEuMiAxLjIgMCAwIDEgMS4xMTMtMS4yODFMOS45IDUuM3ptMTIuOTk0IDguNjhjLjAzNy42OTctLjQwMy43MDQtMS4yMTMuNTkxbC0xLjc4My0uMjc2Yy0uMjY1LS4wNTMtLjM4NS0uMDk5LS4zMTMtLjE0Ny40Ny0uMzE1IDMuMjY4LS45MyAzLjMxLS4xNjh6bS0uOTE1LS4wODMtLjkyNi4wNDJjLS44NS4wNzctMS40NTIuMjQuMzM4LjMzNmwuMTAzLjAwM2MuODE1LjAxMiAxLjI2NC0uMzU5LjQ4NS0uMzgxem0xLjY2Ny0zLjYwMWguMDFjLjc5LjM5OC4wNjcgMS4wMy0uNjUgMS4zOTMtLjE0LjA3LS40OTEuMTc2LTEuMDUyLjMxNS0uMjQxLjA0LS40NTcuMDkyLS4zMzMuMTZsLjAxLjAwNWMxLjk1Mi45NTgtMy4xMjMgMS41MzQtMi40OTUgMS4yODVsLjM4LS4xNDhjLjY4LS4yNjYgMS42MTQtLjY4MiAxLjY2Ni0xLjMzNy4wMzgtLjQ4IDEuMjUzLS40NDIgMS40OTMtLjk2OC4wNDgtLjEwNiAwLS4yMzYtLjE0NC0uMzg5LS4wNS0uMDQ3LS4wOTQtLjA5NC0uMTA3LS4xNDgtLjA3My0uMzA1LjctLjQzMSAxLjIyMi0uMTY4em0tMi41NjgtLjQ3NGMtLjEzNSAxLjE5OC0yLjQ3OSA0LjE5Mi0xLjk0OSAyLjg2M2wuMDE3LS4wNDJjLjI5OC0uNzE3LjM3Ni0yLjIyMSAxLjMzNy0zLjIyMS4yNS0uMjYuNjM2LjAzNS41OTUuNHptLTcuOTc2LS4yNTNjLjAyLS42OTQgMS4wMDItLjk2OCAxLjM0Ni0uMzQ3LjAxLTEuMjc0LTEuOTQxLS43NjgtMS4zNDYuMzQ3elwiLFxuICAgIGZpbGw6IFwidXJsKCNjaGF0Z2xtX3N2Z19fYSlcIixcbiAgICBmaWxsUnVsZTogXCJldmVub2RkXCJcbiAgfSkpKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgU3ZnQ2hhdGdsbTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/llm-icons/chatglm.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/llm-icons/claude.svg":
|
|
|
/*!****************************************!*\
|
|
|
!*** ./app/icons/llm-icons/claude.svg ***!
|
|
|
\****************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgClaude = function SvgClaude(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n height: \"1em\",\n style: {\n flex: \"none\",\n lineHeight: 1\n },\n viewBox: \"0 0 30 30\",\n width: \"1em\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _rect || (_rect = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"rect\", {\n width: 30,\n height: 30,\n fill: \"#E7F8FF\",\n rx: 6\n })), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"m7.709 18.955 4.72-2.647.08-.23-.08-.128H12.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L3 14.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 0 1-.104-.729l.748-1.013L9.696 3l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158v-.146l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L7.132 21.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z\",\n fill: \"#D97757\"\n })));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgClaude);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvbGxtLWljb25zL2NsYXVkZS5zdmciLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQSxzQkFBc0Isc0VBQXNFLGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUMsa0JBQWtCO0FBQzNRO0FBQy9CO0FBQ0Esc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxHQUFHLHlDQUF5QyxnREFBbUI7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLG1DQUFtQyxnREFBbUI7QUFDekQ7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlFQUFlLFNBQVMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9pY29ucy9sbG0taWNvbnMvY2xhdWRlLnN2Zz8zNDRkIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfcmVjdCwgX3BhdGg7XG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xudmFyIFN2Z0NsYXVkZSA9IGZ1bmN0aW9uIFN2Z0NsYXVkZShwcm9wcykge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX2V4dGVuZHMoe1xuICAgIGhlaWdodDogXCIxZW1cIixcbiAgICBzdHlsZToge1xuICAgICAgZmxleDogXCJub25lXCIsXG4gICAgICBsaW5lSGVpZ2h0OiAxXG4gICAgfSxcbiAgICB2aWV3Qm94OiBcIjAgMCAzMCAzMFwiLFxuICAgIHdpZHRoOiBcIjFlbVwiLFxuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgfSwgcHJvcHMpLCBfcmVjdCB8fCAoX3JlY3QgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInJlY3RcIiwge1xuICAgIHdpZHRoOiAzMCxcbiAgICBoZWlnaHQ6IDMwLFxuICAgIGZpbGw6IFwiI0U3RjhGRlwiLFxuICAgIHJ4OiA2XG4gIH0pKSwgX3BhdGggfHwgKF9wYXRoID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIm03LjcwOSAxOC45NTUgNC43Mi0yLjY0Ny4wOC0uMjMtLjA4LS4xMjhIMTIuMmwtLjc5LS4wNDgtMi42OTgtLjA3My0yLjMzOS0uMDk3LTIuMjY2LS4xMjItLjU3MS0uMTIxTDMgMTQuNzg0bC4wNTUtLjM1Mi40OC0uMzIxLjY4Ni4wNiAxLjUyLjEwMyAyLjI3OC4xNTggMS42NTIuMDk3IDIuNDQ5LjI1NWguMzg5bC4wNTUtLjE1Ny0uMTM0LS4wOTgtLjEwMy0uMDk3LTIuMzU4LTEuNTk2LTIuNTUyLTEuNjg4LTEuMzM2LS45NzItLjcyNC0uNDkxLS4zNjQtLjQ2Mi0uMTU4LTEuMDA4LjY1Ni0uNzIyLjg4MS4wNi4yMjUuMDYxLjg5My42ODYgMS45MDggMS40NzYgMi40OTEgMS44MzMuMzY1LjMwNC4xNDUtLjEwMy4wMTktLjA3My0uMTY0LS4yNzQtMS4zNTUtMi40NDYtMS40NDYtMi40OS0uNjQ0LTEuMDMyLS4xNy0uNjE5YTIuOTcgMi45NyAwIDAgMS0uMTA0LS43MjlsLjc0OC0xLjAxM0w5LjY5NiAzbC45OTYuMTM0LjQyLjM2NC42MiAxLjQxNCAxLjAwMiAyLjIyOSAxLjU1NSAzLjAzLjQ1Ni44OTguMjQzLjgzMi4wOTEuMjU1aC4xNTh2LS4xNDZsLjEyOC0xLjcwNi4yMzctMi4wOTUuMjMtMi42OTUuMDgtLjc2LjM3Ni0uOTEuNzQ3LS40OTIuNTg0LjI4LjQ4LjY4NS0uMDY3LjQ0NC0uMjg2IDEuODUxLS41NTkgMi45MDMtLjM2NCAxLjk0MmguMjEybC4yNDMtLjI0Mi45ODUtMS4zMDYgMS42NTItMi4wNjQuNzMtLjgyLjg1LS45MDQuNTQ3LS40MzFoMS4wMzNsLjc2IDEuMTI5LS4zNCAxLjE2Ni0xLjA2NCAxLjM0Ny0uODgxIDEuMTQyLTEuMjY0IDEuNy0uNzkgMS4zNi4wNzMuMTEuMTg4LS4wMiAyLjg1Ni0uNjA2IDEuNTQzLS4yOCAxLjg0MS0uMzE1LjgzMy4zODguMDkxLjM5NS0uMzI4LjgwNy0xLjk2OS40ODYtMi4zMDkuNDYyLTMuNDM5LjgxMy0uMDQyLjAzLjA0OS4wNjEgMS41NDkuMTQ2LjY2Mi4wMzZoMS42MjJsMy4wMi4yMjUuNzkuNTIyLjQ3NC42MzgtLjA3OS40ODUtMS4yMTUuNjItMS42NC0uMzg5LTMuODI5LS45MS0xLjMxMi0uMzI5aC0uMTgydi4xMWwxLjA5MyAxLjA2OCAyLjAwNiAxLjgxIDIuNTA5IDIuMzMuMTI3LjU3OC0uMzIyLjQ1NS0uMzQtLjA0OS0yLjIwNS0xLjY1Ny0uODUxLS43NDctMS45MjYtMS42MmgtLjEyOHYuMTdsLjQ0NC42NDkgMi4zNDUgMy41MjEuMTIyIDEuMDgtLjE3LjM1My0uNjA4LjIxMy0uNjY4LS4xMjItMS4zNzQtMS45MjUtMS40MTUtMi4xNjctMS4xNDMtMS45NDMtLjE0LjA4LS42NzQgNy4yNTQtLjMxNi4zNy0uNzI5LjI4LS42MDctLjQ2MS0uMzIyLS43NDcuMzIyLTEuNDc2LjM4OS0xLjkyNC4zMTUtMS41My4yODYtMS45LjE3LS42MzItLjAxMi0uMDQyLS4xNC4wMTgtMS40MzQgMS45NjctMi4xOCAyLjk0NS0xLjcyNiAxLjg0NS0uNDE0LjE2NC0uNzE3LS4zNy4wNjctLjY2Mi40MDEtLjU4OSAyLjM4OC0zLjAzNiAxLjQ0LTEuODgyLjkzLTEuMDg2LS4wMDYtLjE1OGgtLjA1NUw3LjEzMiAyMS41NmwtMS4xMy4xNDYtLjQ4Ny0uNDU2LjA2MS0uNzQ2LjIzMS0uMjQzIDEuOTA4LTEuMzEyLS4wMDYuMDA2elwiLFxuICAgIGZpbGw6IFwiI0Q5Nzc1N1wiXG4gIH0pKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgU3ZnQ2xhdWRlOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/llm-icons/claude.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/llm-icons/deepseek.svg":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./app/icons/llm-icons/deepseek.svg ***!
|
|
|
\******************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgDeepseek = function SvgDeepseek(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n height: \"1em\",\n style: {\n flex: \"none\",\n lineHeight: 1\n },\n viewBox: \"0 0 30 30\",\n width: \"1em\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _rect || (_rect = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"rect\", {\n width: 30,\n height: 30,\n fill: \"#E7F8FF\",\n rx: 6\n })), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M27.748 8.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526 5.526 0 0 1-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365 11.365 0 0 0-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055 3.055 0 0 1-.465.137 9.597 9.597 0 0 0-2.883-.102c-1.885.21-3.39 1.102-4.497 2.623-1.33 1.828-1.643 3.906-1.26 6.072.403 2.284 1.569 4.175 3.36 5.653 1.858 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.133-.284 4.994-1.86.47.234.962.327 1.78.397.63.059 1.236-.03 1.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926 1.096-1.296 2.746-2.642 3.392-7.003.05-.347.007-.565 0-.845-.004-.17.035-.237.23-.256a4.173 4.173 0 0 0 1.545-.475c1.396-.763 1.96-2.015 2.093-3.517.02-.23-.004-.467-.247-.588zM15.581 22c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696 4.696 0 0 1 1.529-.039c2.132.312 3.946 1.265 5.468 2.774.868.86 1.525 1.887 2.202 2.891.72 1.066 1.494 2.082 2.48 2.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306 0 0 1 .415-.287.302.302 0 0 1 .2.288.306.306 0 0 1-.31.307.303.303 0 0 1-.304-.308zm3.11 1.596c-.2.081-.399.151-.59.16a1.245 1.245 0 0 1-.798-.254c-.274-.23-.47-.358-.552-.758a1.73 1.73 0 0 1 .016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559 0 0 1-.254-.078.253.253 0 0 1-.114-.358c.028-.054.16-.186.192-.21.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z\",\n fill: \"#4D6BFE\"\n })));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgDeepseek);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvbGxtLWljb25zL2RlZXBzZWVrLnN2ZyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBLHNCQUFzQixzRUFBc0UsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQyxrQkFBa0I7QUFDM1E7QUFDL0I7QUFDQSxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEdBQUcseUNBQXlDLGdEQUFtQjtBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsbUNBQW1DLGdEQUFtQjtBQUN6RDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsaUVBQWUsV0FBVyIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2ljb25zL2xsbS1pY29ucy9kZWVwc2Vlay5zdmc/NzNkNyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX3JlY3QsIF9wYXRoO1xuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiA/IE9iamVjdC5hc3NpZ24uYmluZCgpIDogZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbnZhciBTdmdEZWVwc2VlayA9IGZ1bmN0aW9uIFN2Z0RlZXBzZWVrKHByb3BzKSB7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCBfZXh0ZW5kcyh7XG4gICAgaGVpZ2h0OiBcIjFlbVwiLFxuICAgIHN0eWxlOiB7XG4gICAgICBmbGV4OiBcIm5vbmVcIixcbiAgICAgIGxpbmVIZWlnaHQ6IDFcbiAgICB9LFxuICAgIHZpZXdCb3g6IFwiMCAwIDMwIDMwXCIsXG4gICAgd2lkdGg6IFwiMWVtXCIsXG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICB9LCBwcm9wcyksIF9yZWN0IHx8IChfcmVjdCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicmVjdFwiLCB7XG4gICAgd2lkdGg6IDMwLFxuICAgIGhlaWdodDogMzAsXG4gICAgZmlsbDogXCIjRTdGOEZGXCIsXG4gICAgcng6IDZcbiAgfSkpLCBfcGF0aCB8fCAoX3BhdGggPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTI3Ljc0OCA4LjQ4MmMtLjI1NC0uMTI0LS4zNjQuMTEzLS41MTIuMjM0LS4wNTEuMDM5LS4wOTQuMDktLjEzNy4xMzYtLjM3Mi4zOTctLjgwNi42NTctMS4zNzMuNjI2LS44MjktLjA0Ni0xLjUzNy4yMTQtMi4xNjMuODQ4LS4xMzMtLjc4Mi0uNTc1LTEuMjQ4LTEuMjQ3LTEuNTQ4LS4zNTItLjE1Ni0uNzA4LS4zMTEtLjk1NS0uNjUtLjE3Mi0uMjQxLS4yMTktLjUxLS4zMDUtLjc3NC0uMDU1LS4xNi0uMTEtLjMyMy0uMjkzLS4zNS0uMi0uMDMxLS4yNzguMTM2LS4zNTYuMjc2LS4zMTMuNTcyLS40MzQgMS4yMDItLjQyMiAxLjg0LjAyNyAxLjQzNi42MzMgMi41OCAxLjgzOCAzLjM5My4xMzcuMDkzLjE3Mi4xODcuMTI5LjMyMy0uMDgyLjI4LS4xOC41NTItLjI2Ni44MzMtLjA1NS4xNzktLjEzNy4yMTctLjMyOS4xNGE1LjUyNiA1LjUyNiAwIDAgMS0xLjczNi0xLjE4Yy0uODU3LS44MjgtMS42MzEtMS43NDItMi41OTctMi40NThhMTEuMzY1IDExLjM2NSAwIDAgMC0uNjg5LS40NzFjLS45ODUtLjk1Ny4xMy0xLjc0My4zODgtMS44MzYuMjctLjA5OC4wOTMtLjQzMi0uNzc5LS40MjgtLjg3Mi4wMDQtMS42Ny4yOTUtMi42ODcuNjg0YTMuMDU1IDMuMDU1IDAgMCAxLS40NjUuMTM3IDkuNTk3IDkuNTk3IDAgMCAwLTIuODgzLS4xMDJjLTEuODg1LjIxLTMuMzkgMS4xMDItNC40OTcgMi42MjMtMS4zMyAxLjgyOC0xLjY0MyAzLjkwNi0xLjI2IDYuMDcyLjQwMyAyLjI4NCAxLjU2OSA0LjE3NSAzLjM2IDUuNjUzIDEuODU4IDEuNTMzIDMuOTk3IDIuMjg0IDYuNDM4IDIuMTQgMS40ODItLjA4NSAzLjEzMy0uMjg0IDQuOTk0LTEuODYuNDcuMjM0Ljk2Mi4zMjcgMS43OC4zOTcuNjMuMDU5IDEuMjM2LS4wMyAxLjcwNS0uMTI4LjczNS0uMTU2LjY4NC0uODM3LjQxOS0uOTYxLTIuMTU1LTEuMDA0LTEuNjgyLS41OTUtMi4xMTMtLjkyNiAxLjA5Ni0xLjI5NiAyLjc0Ni0yLjY0MiAzLjM5Mi03LjAwMy4wNS0uMzQ3LjAwNy0uNTY1IDAtLjg0NS0uMDA0LS4xNy4wMzUtLjIzNy4yMy0uMjU2YTQuMTczIDQuMTczIDAgMCAwIDEuNTQ1LS40NzVjMS4zOTYtLjc2MyAxLjk2LTIuMDE1IDIuMDkzLTMuNTE3LjAyLS4yMy0uMDA0LS40NjctLjI0Ny0uNTg4ek0xNS41ODEgMjJjLTIuMDg5LTEuNjQyLTMuMTAyLTIuMTgzLTMuNTItMi4xNi0uMzkyLjAyNC0uMzIxLjQ3MS0uMjM1Ljc2My4wOS4yODguMjA3LjQ4Ni4zNzEuNzM5LjExNC4xNjcuMTkyLjQxNi0uMTEzLjYwMy0uNjczLjQxNi0xLjg0Mi0uMTQtMS44OTctLjE2Ny0xLjM2MS0uODAyLTIuNS0xLjg2LTMuMzAxLTMuMzA3LS43NzQtMS4zOTMtMS4yMjQtMi44ODctMS4yOTgtNC40ODItLjAyLS4zODYuMDkzLS41MjIuNDc3LS41OTJhNC42OTYgNC42OTYgMCAwIDEgMS41MjktLjAzOWMyLjEzMi4zMTIgMy45NDYgMS4yNjUgNS40NjggMi43NzQuODY4Ljg2IDEuNTI1IDEuODg3IDIuMjAyIDIuODkxLjcyIDEuMDY2IDEuNDk0IDIuMDgyIDIuNDggMi45MTQuMzQ4LjI5Mi42MjUuNTE0Ljg5MS42NzctLjgwMi4wOS0yLjE0LjExLTMuMDU0LS42MTR6bTEtNi40NGEuMzA2LjMwNiAwIDAgMSAuNDE1LS4yODcuMzAyLjMwMiAwIDAgMSAuMi4yODguMzA2LjMwNiAwIDAgMS0uMzEuMzA3LjMwMy4zMDMgMCAwIDEtLjMwNC0uMzA4em0zLjExIDEuNTk2Yy0uMi4wODEtLjM5OS4xNTEtLjU5LjE2YTEuMjQ1IDEuMjQ1IDAgMCAxLS43OTgtLjI1NGMtLjI3NC0uMjMtLjQ3LS4zNTgtLjU1Mi0uNzU4YTEuNzMgMS43MyAwIDAgMSAuMDE2LS41ODhjLjA3LS4zMjctLjAwOC0uNTM3LS4yMzktLjcyNy0uMTg3LS4xNTYtLjQyNi0uMTk5LS42ODgtLjE5OWEuNTU5LjU1OSAwIDAgMS0uMjU0LS4wNzguMjUzLjI1MyAwIDAgMS0uMTE0LS4zNThjLjAyOC0uMDU0LjE2LS4xODYuMTkyLS4yMS4zNTYtLjIwMi43NjctLjEzNiAxLjE0Ni4wMTYuMzUyLjE0NC42MTguNDA4IDEuMDAxLjc4Mi4zOTEuNDUxLjQ2Mi41NzYuNjg1LjkxNC4xNzYuMjY1LjMzNi41MzcuNDQ1Ljg0OC4wNjcuMTk1LS4wMTkuMzU0LS4yNS40NTJ6XCIsXG4gICAgZmlsbDogXCIjNEQ2QkZFXCJcbiAgfSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBTdmdEZWVwc2VlazsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/llm-icons/deepseek.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/llm-icons/default.svg":
|
|
|
/*!*****************************************!*\
|
|
|
!*** ./app/icons/llm-icons/default.svg ***!
|
|
|
\*****************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _defs, _rect, _mask, _mask2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgDefault = function SvgDefault(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 30,\n height: 30,\n fill: \"none\"\n }, props), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n id: \"default_svg__a\",\n d: \"M0 0h30v30H0z\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n id: \"default_svg__c\",\n d: \"M0 0h20.455v20.455H0z\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", null, _rect || (_rect = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"rect\", {\n width: 30,\n height: 30,\n fill: \"#E7F8FF\",\n rx: 10\n })), _mask || (_mask = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"mask\", {\n id: \"default_svg__b\",\n fill: \"#fff\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"use\", {\n xlinkHref: \"#default_svg__a\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n mask: \"url(#default_svg__b)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n transform: \"translate(4.773 4.773)\"\n }, _mask2 || (_mask2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"mask\", {\n id: \"default_svg__d\",\n fill: \"#fff\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"use\", {\n xlinkHref: \"#default_svg__c\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n mask: \"url(#default_svg__d)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n fillRule: \"evenodd\",\n style: {\n fill: \"#1f948c\"\n },\n d: \"M19.11 8.37c.17-.52.26-1.06.26-1.61 0-.9-.24-1.79-.71-2.57a5.24 5.24 0 0 0-4.53-2.59c-.37 0-.73.04-1.09.11A5.201 5.201 0 0 0 9.17 0h-.04C6.86 0 4.86 1.44 4.16 3.57A5.11 5.11 0 0 0 .71 6.04C.24 6.83 0 7.72 0 8.63c0 1.27.48 2.51 1.35 3.45-.18.52-.27 1.07-.27 1.61 0 .91.25 1.8.71 2.58 1.13 1.94 3.41 2.94 5.63 2.47a5.18 5.18 0 0 0 3.86 1.71h.05c2.26 0 4.27-1.44 4.97-3.57a5.132 5.132 0 0 0 3.45-2.47c.46-.78.7-1.67.7-2.58 0-1.28-.48-2.51-1.34-3.46ZM8.947 18.158c-.04.03-.08.05-.12.07.7.58 1.57.89 2.48.89h.01c2.14 0 3.88-1.72 3.88-3.83v-4.76c0-.02-.02-.04-.04-.05l-1.74-.99v5.75c0 .23-.13.45-.34.57l-4.13 2.35Zm-.67-1.153 4.17-2.38c.02-.01.03-.03.03-.05v-1.99l-5.04 2.87c-.21.12-.47.12-.68 0l-4.13-2.35c-.04-.02-.09-.06-.12-.07-.04.21-.06.43-.06.65 0 .67.18 1.33.52 1.92v-.01c.7 1.19 1.98 1.92 3.37 1.92.68 0 1.35-.18 1.94-.51ZM3.903 5.168v-.14c-.85.31-1.57.9-2.02 1.68a3.78 3.78 0 0 0-.52 1.91c0 1.37.74 2.64 1.94 3.33l4.17 2.37c.02.01.04.01.06 0l1.75-1-5.04-2.87a.64.64 0 0 1-.34-.57v-4.71Zm13.253 3.337-4.18-2.38c-.02 0-.04 0-.06.01l-1.74.99 5.04 2.87c.21.12.34.34.34.58v4.85c1.52-.56 2.54-1.99 2.54-3.6 0-1.37-.74-2.63-1.94-3.32ZM8.014 5.83c-.02.01-.03.03-.03.05v1.99L13.024 5a.692.692 0 0 1 .68 0l4.13 2.35c.04.02.08.05.12.07.03-.21.05-.43.05-.65 0-2.11-1.74-3.83-3.88-3.83-.68 0-1.35.18-1.94.51l-4.17 2.38Zm1.133-4.492c-2.15 0-3.89 1.72-3.89 3.83v4.76c0 .02.02.03.03.04l1.75 1v-5.75c0-.23.13-.45.34-.57l4.13-2.35c.04-.03.09-.06.12-.07-.7-.58-1.58-.89-2.48-.89ZM7.983 11.51l2.24 1.27 2.25-1.27V8.95l-2.25-1.28-2.24 1.28v2.56Z\"\n }))))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgDefault);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvbGxtLWljb25zL2RlZmF1bHQuc3ZnIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0Esc0JBQXNCLHNFQUFzRSxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjtBQUMzUTtBQUMvQjtBQUNBLHNCQUFzQixnREFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcseUNBQXlDLGdEQUFtQiw0QkFBNEIsZ0RBQW1CO0FBQzlHO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBLEdBQUcsa0JBQWtCLGdEQUFtQiwyQ0FBMkMsZ0RBQW1CO0FBQ3RHO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxtQ0FBbUMsZ0RBQW1CO0FBQ3pEO0FBQ0E7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CO0FBQ3JDO0FBQ0EsR0FBRyxrQkFBa0IsZ0RBQW1CO0FBQ3hDO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBLEdBQUcsbUNBQW1DLGdEQUFtQjtBQUN6RDtBQUNBO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBLEdBQUcsa0JBQWtCLGdEQUFtQjtBQUN4QztBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsR0FBRztBQUNIO0FBQ0EsaUVBQWUsVUFBVSIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2ljb25zL2xsbS1pY29ucy9kZWZhdWx0LnN2Zz82NDM5Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfZGVmcywgX3JlY3QsIF9tYXNrLCBfbWFzazI7XG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xudmFyIFN2Z0RlZmF1bHQgPSBmdW5jdGlvbiBTdmdEZWZhdWx0KHByb3BzKSB7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCBfZXh0ZW5kcyh7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICB4bWxuc1hsaW5rOiBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIixcbiAgICB3aWR0aDogMzAsXG4gICAgaGVpZ2h0OiAzMCxcbiAgICBmaWxsOiBcIm5vbmVcIlxuICB9LCBwcm9wcyksIF9kZWZzIHx8IChfZGVmcyA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGVmc1wiLCBudWxsLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGlkOiBcImRlZmF1bHRfc3ZnX19hXCIsXG4gICAgZDogXCJNMCAwaDMwdjMwSDB6XCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgaWQ6IFwiZGVmYXVsdF9zdmdfX2NcIixcbiAgICBkOiBcIk0wIDBoMjAuNDU1djIwLjQ1NUgwelwiXG4gIH0pKSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZ1wiLCBudWxsLCBfcmVjdCB8fCAoX3JlY3QgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInJlY3RcIiwge1xuICAgIHdpZHRoOiAzMCxcbiAgICBoZWlnaHQ6IDMwLFxuICAgIGZpbGw6IFwiI0U3RjhGRlwiLFxuICAgIHJ4OiAxMFxuICB9KSksIF9tYXNrIHx8IChfbWFzayA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwibWFza1wiLCB7XG4gICAgaWQ6IFwiZGVmYXVsdF9zdmdfX2JcIixcbiAgICBmaWxsOiBcIiNmZmZcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInVzZVwiLCB7XG4gICAgeGxpbmtIcmVmOiBcIiNkZWZhdWx0X3N2Z19fYVwiXG4gIH0pKSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZ1wiLCB7XG4gICAgbWFzazogXCJ1cmwoI2RlZmF1bHRfc3ZnX19iKVwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZ1wiLCB7XG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSg0Ljc3MyA0Ljc3MylcIlxuICB9LCBfbWFzazIgfHwgKF9tYXNrMiA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwibWFza1wiLCB7XG4gICAgaWQ6IFwiZGVmYXVsdF9zdmdfX2RcIixcbiAgICBmaWxsOiBcIiNmZmZcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInVzZVwiLCB7XG4gICAgeGxpbmtIcmVmOiBcIiNkZWZhdWx0X3N2Z19fY1wiXG4gIH0pKSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZ1wiLCB7XG4gICAgbWFzazogXCJ1cmwoI2RlZmF1bHRfc3ZnX19kKVwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZmlsbFJ1bGU6IFwiZXZlbm9kZFwiLFxuICAgIHN0eWxlOiB7XG4gICAgICBmaWxsOiBcIiMxZjk0OGNcIlxuICAgIH0sXG4gICAgZDogXCJNMTkuMTEgOC4zN2MuMTctLjUyLjI2LTEuMDYuMjYtMS42MSAwLS45LS4yNC0xLjc5LS43MS0yLjU3YTUuMjQgNS4yNCAwIDAgMC00LjUzLTIuNTljLS4zNyAwLS43My4wNC0xLjA5LjExQTUuMjAxIDUuMjAxIDAgMCAwIDkuMTcgMGgtLjA0QzYuODYgMCA0Ljg2IDEuNDQgNC4xNiAzLjU3QTUuMTEgNS4xMSAwIDAgMCAuNzEgNi4wNEMuMjQgNi44MyAwIDcuNzIgMCA4LjYzYzAgMS4yNy40OCAyLjUxIDEuMzUgMy40NS0uMTguNTItLjI3IDEuMDctLjI3IDEuNjEgMCAuOTEuMjUgMS44LjcxIDIuNTggMS4xMyAxLjk0IDMuNDEgMi45NCA1LjYzIDIuNDdhNS4xOCA1LjE4IDAgMCAwIDMuODYgMS43MWguMDVjMi4yNiAwIDQuMjctMS40NCA0Ljk3LTMuNTdhNS4xMzIgNS4xMzIgMCAwIDAgMy40NS0yLjQ3Yy40Ni0uNzguNy0xLjY3LjctMi41OCAwLTEuMjgtLjQ4LTIuNTEtMS4zNC0zLjQ2Wk04Ljk0NyAxOC4xNThjLS4wNC4wMy0uMDguMDUtLjEyLjA3LjcuNTggMS41Ny44OSAyLjQ4Ljg5aC4wMWMyLjE0IDAgMy44OC0xLjcyIDMuODgtMy44M3YtNC43NmMwLS4wMi0uMDItLjA0LS4wNC0uMDVsLTEuNzQtLjk5djUuNzVjMCAuMjMtLjEzLjQ1LS4zNC41N2wtNC4xMyAyLjM1Wm0tLjY3LTEuMTUzIDQuMTctMi4zOGMuMDItLjAxLjAzLS4wMy4wMy0uMDV2LTEuOTlsLTUuMDQgMi44N2MtLjIxLjEyLS40Ny4xMi0uNjggMGwtNC4xMy0yLjM1Yy0uMDQtLjAyLS4wOS0uMDYtLjEyLS4wNy0uMDQuMjEtLjA2LjQzLS4wNi42NSAwIC42Ny4xOCAxLjMzLjUyIDEuOTJ2LS4wMWMuNyAxLjE5IDEuOTggMS45MiAzLjM3IDEuOTIuNjggMCAxLjM1LS4xOCAxLjk0LS41MVpNMy45MDMgNS4xNjh2LS4xNGMtLjg1LjMxLTEuNTcuOS0yLjAyIDEuNjhhMy43OCAzLjc4IDAgMCAwLS41MiAxLjkxYzAgMS4zNy43NCAyLjY0IDEuOTQgMy4zM2w0LjE3IDIuMzdjLjAyLjAxLjA0LjAxLjA2IDBsMS43NS0xLTUuMDQtMi44N2EuNjQuNjQgMCAwIDEtLjM0LS41N3YtNC43MVptMTMuMjUzIDMuMzM3LTQuMTgtMi4zOGMtLjAyIDAtLjA0IDAtLjA2LjAxbC0xLjc0Ljk5IDUuMDQgMi44N2MuMjEuMTIuMzQuMzQuMzQuNTh2NC44NWMxLjUyLS41NiAyLjU0LTEuOTkgMi41NC0zLjYgMC0xLjM3LS43NC0yLjYzLTEuOTQtMy4zMlpNOC4wMTQgNS44M2MtLjAyLjAxLS4wMy4wMy0uMDMuMDV2MS45OUwxMy4wMjQgNWEuNjkyLjY5MiAwIDAgMSAuNjggMGw0LjEzIDIuMzVjLjA0LjAyLjA4LjA1LjEyLjA3LjAzLS4yMS4wNS0uNDMuMDUtLjY1IDAtMi4xMS0xLjc0LTMuODMtMy44OC0zLjgzLS42OCAwLTEuMzUuMTgtMS45NC41MWwtNC4xNyAyLjM4Wm0xLjEzMy00LjQ5MmMtMi4xNSAwLTMuODkgMS43Mi0zLjg5IDMuODN2NC43NmMwIC4wMi4wMi4wMy4wMy4wNGwxLjc1IDF2LTUuNzVjMC0uMjMuMTMtLjQ1LjM0LS41N2w0LjEzLTIuMzVjLjA0LS4wMy4wOS0uMDYuMTItLjA3LS43LS41OC0xLjU4LS44OS0yLjQ4LS44OVpNNy45ODMgMTEuNTFsMi4yNCAxLjI3IDIuMjUtMS4yN1Y4Ljk1bC0yLjI1LTEuMjgtMi4yNCAxLjI4djIuNTZaXCJcbiAgfSkpKSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBTdmdEZWZhdWx0OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/llm-icons/default.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/llm-icons/doubao.svg":
|
|
|
/*!****************************************!*\
|
|
|
!*** ./app/icons/llm-icons/doubao.svg ***!
|
|
|
\****************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _rect, _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgDoubao = function SvgDoubao(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n height: \"1em\",\n style: {\n flex: \"none\",\n lineHeight: 1\n },\n viewBox: \"0 0 30 30\",\n width: \"1em\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _rect || (_rect = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"rect\", {\n width: 30,\n height: 30,\n fill: \"#E7F8FF\",\n rx: 6\n })), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M8.31 18.756c.172-3.75 1.883-5.999 2.549-6.739-3.26 2.058-5.425 5.658-6.358 8.308v1.12C4.501 24.513 7.226 27 10.59 27a6.59 6.59 0 0 0 2.2-.375c.353-.12.7-.248 1.039-.378a12.81 12.81 0 0 0 2.243-2.992c-4.877 2.431-7.974.072-7.763-4.5l.002.001z\",\n fill: \"#1E37FC\"\n })), _path2 || (_path2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M25.57 13.283c-1.212-.901-4.109-2.404-7.397-2.8.295 3.792.093 8.766-2.1 12.773a12.782 12.782 0 0 1-2.244 2.992c3.764-1.448 6.746-3.457 8.596-5.219 2.82-2.683 3.353-5.178 3.361-6.66a2.737 2.737 0 0 0-.216-1.084v-.002z\",\n fill: \"#37E1BE\"\n })), _path3 || (_path3 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M17.303 4.867C15.955 3.7 14.248 3 12.39 3s-3.507.677-4.845 1.807C5.791 6.29 4.627 8.557 4.5 11.125v9.201c.932-2.65 3.097-6.25 6.357-8.307.5-.318 1.025-.595 1.569-.829 1.883-.801 3.878-.932 5.746-.706-.222-2.83-.718-5.002-.87-5.617h.001z\",\n fill: \"#A569FF\"\n })), _path4 || (_path4 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M20.305 7.961a199.47 199.47 0 0 1-1.08-1.094c-.202-.213-.398-.419-.586-.622l-1.333-1.378c.151.615.648 2.786.869 5.617 3.288.395 6.185 1.898 7.396 2.8-1.306-1.275-3.475-3.487-5.266-5.323z\",\n fill: \"#1E37FC\"\n })));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgDoubao);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvbGxtLWljb25zL2RvdWJhby5zdmciLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQSxzQkFBc0Isc0VBQXNFLGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUMsa0JBQWtCO0FBQzNRO0FBQy9CO0FBQ0Esc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxHQUFHLHlDQUF5QyxnREFBbUI7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLG1DQUFtQyxnREFBbUI7QUFDekQ7QUFDQTtBQUNBLEdBQUcscUNBQXFDLGdEQUFtQjtBQUMzRDtBQUNBO0FBQ0EsR0FBRyxxQ0FBcUMsZ0RBQW1CO0FBQzNEO0FBQ0E7QUFDQSxHQUFHLHFDQUFxQyxnREFBbUI7QUFDM0Q7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlFQUFlLFNBQVMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9pY29ucy9sbG0taWNvbnMvZG91YmFvLnN2Zz9lNjAzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfcmVjdCwgX3BhdGgsIF9wYXRoMiwgX3BhdGgzLCBfcGF0aDQ7XG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xudmFyIFN2Z0RvdWJhbyA9IGZ1bmN0aW9uIFN2Z0RvdWJhbyhwcm9wcykge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX2V4dGVuZHMoe1xuICAgIGhlaWdodDogXCIxZW1cIixcbiAgICBzdHlsZToge1xuICAgICAgZmxleDogXCJub25lXCIsXG4gICAgICBsaW5lSGVpZ2h0OiAxXG4gICAgfSxcbiAgICB2aWV3Qm94OiBcIjAgMCAzMCAzMFwiLFxuICAgIHdpZHRoOiBcIjFlbVwiLFxuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgfSwgcHJvcHMpLCBfcmVjdCB8fCAoX3JlY3QgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInJlY3RcIiwge1xuICAgIHdpZHRoOiAzMCxcbiAgICBoZWlnaHQ6IDMwLFxuICAgIGZpbGw6IFwiI0U3RjhGRlwiLFxuICAgIHJ4OiA2XG4gIH0pKSwgX3BhdGggfHwgKF9wYXRoID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk04LjMxIDE4Ljc1NmMuMTcyLTMuNzUgMS44ODMtNS45OTkgMi41NDktNi43MzktMy4yNiAyLjA1OC01LjQyNSA1LjY1OC02LjM1OCA4LjMwOHYxLjEyQzQuNTAxIDI0LjUxMyA3LjIyNiAyNyAxMC41OSAyN2E2LjU5IDYuNTkgMCAwIDAgMi4yLS4zNzVjLjM1My0uMTIuNy0uMjQ4IDEuMDM5LS4zNzhhMTIuODEgMTIuODEgMCAwIDAgMi4yNDMtMi45OTJjLTQuODc3IDIuNDMxLTcuOTc0LjA3Mi03Ljc2My00LjVsLjAwMi4wMDF6XCIsXG4gICAgZmlsbDogXCIjMUUzN0ZDXCJcbiAgfSkpLCBfcGF0aDIgfHwgKF9wYXRoMiA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZDogXCJNMjUuNTcgMTMuMjgzYy0xLjIxMi0uOTAxLTQuMTA5LTIuNDA0LTcuMzk3LTIuOC4yOTUgMy43OTIuMDkzIDguNzY2LTIuMSAxMi43NzNhMTIuNzgyIDEyLjc4MiAwIDAgMS0yLjI0NCAyLjk5MmMzLjc2NC0xLjQ0OCA2Ljc0Ni0zLjQ1NyA4LjU5Ni01LjIxOSAyLjgyLTIuNjgzIDMuMzUzLTUuMTc4IDMuMzYxLTYuNjZhMi43MzcgMi43MzcgMCAwIDAtLjIxNi0xLjA4NHYtLjAwMnpcIixcbiAgICBmaWxsOiBcIiMzN0UxQkVcIlxuICB9KSksIF9wYXRoMyB8fCAoX3BhdGgzID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk0xNy4zMDMgNC44NjdDMTUuOTU1IDMuNyAxNC4yNDggMyAxMi4zOSAzcy0zLjUwNy42NzctNC44NDUgMS44MDdDNS43OTEgNi4yOSA0LjYyNyA4LjU1NyA0LjUgMTEuMTI1djkuMjAxYy45MzItMi42NSAzLjA5Ny02LjI1IDYuMzU3LTguMzA3LjUtLjMxOCAxLjAyNS0uNTk1IDEuNTY5LS44MjkgMS44ODMtLjgwMSAzLjg3OC0uOTMyIDUuNzQ2LS43MDYtLjIyMi0yLjgzLS43MTgtNS4wMDItLjg3LTUuNjE3aC4wMDF6XCIsXG4gICAgZmlsbDogXCIjQTU2OUZGXCJcbiAgfSkpLCBfcGF0aDQgfHwgKF9wYXRoNCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZDogXCJNMjAuMzA1IDcuOTYxYTE5OS40NyAxOTkuNDcgMCAwIDEtMS4wOC0xLjA5NGMtLjIwMi0uMjEzLS4zOTgtLjQxOS0uNTg2LS42MjJsLTEuMzMzLTEuMzc4Yy4xNTEuNjE1LjY0OCAyLjc4Ni44NjkgNS42MTcgMy4yODguMzk1IDYuMTg1IDEuODk4IDcuMzk2IDIuOC0xLjMwNi0xLjI3NS0zLjQ3NS0zLjQ4Ny01LjI2Ni01LjMyM3pcIixcbiAgICBmaWxsOiBcIiMxRTM3RkNcIlxuICB9KSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IFN2Z0RvdWJhbzsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/llm-icons/doubao.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/llm-icons/gemini.svg":
|
|
|
/*!****************************************!*\
|
|
|
!*** ./app/icons/llm-icons/gemini.svg ***!
|
|
|
\****************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _rect, _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgGemini = function SvgGemini(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n height: \"1em\",\n style: {\n flex: \"none\",\n lineHeight: 1\n },\n viewBox: \"0 0 30 30\",\n width: \"1em\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _rect || (_rect = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"rect\", {\n width: 30,\n height: 30,\n fill: \"#E7F8FF\",\n rx: 6\n })), _g || (_g = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n transform: \"translate(3 3)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"gemini_svg__a\",\n x1: \"0%\",\n x2: \"68.73%\",\n y1: \"100%\",\n y2: \"30.395%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"0%\",\n stopColor: \"#1C7DFF\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"52.021%\",\n stopColor: \"#1C69FF\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"100%\",\n stopColor: \"#F0DCD6\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M12 24A14.304 14.304 0 0 0 0 12 14.304 14.304 0 0 0 12 0a14.305 14.305 0 0 0 12 12 14.305 14.305 0 0 0-12 12\",\n fill: \"url(#gemini_svg__a)\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgGemini);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvbGxtLWljb25zL2dlbWluaS5zdmciLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQSxzQkFBc0Isc0VBQXNFLGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUMsa0JBQWtCO0FBQzNRO0FBQy9CO0FBQ0Esc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxHQUFHLHlDQUF5QyxnREFBbUI7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLDZCQUE2QixnREFBbUI7QUFDbkQ7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CLDRCQUE0QixnREFBbUI7QUFDcEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQSxHQUFHLGtCQUFrQixnREFBbUI7QUFDeEM7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlFQUFlLFNBQVMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9pY29ucy9sbG0taWNvbnMvZ2VtaW5pLnN2Zz9iNzY1Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfcmVjdCwgX2c7XG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xudmFyIFN2Z0dlbWluaSA9IGZ1bmN0aW9uIFN2Z0dlbWluaShwcm9wcykge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX2V4dGVuZHMoe1xuICAgIGhlaWdodDogXCIxZW1cIixcbiAgICBzdHlsZToge1xuICAgICAgZmxleDogXCJub25lXCIsXG4gICAgICBsaW5lSGVpZ2h0OiAxXG4gICAgfSxcbiAgICB2aWV3Qm94OiBcIjAgMCAzMCAzMFwiLFxuICAgIHdpZHRoOiBcIjFlbVwiLFxuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgfSwgcHJvcHMpLCBfcmVjdCB8fCAoX3JlY3QgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInJlY3RcIiwge1xuICAgIHdpZHRoOiAzMCxcbiAgICBoZWlnaHQ6IDMwLFxuICAgIGZpbGw6IFwiI0U3RjhGRlwiLFxuICAgIHJ4OiA2XG4gIH0pKSwgX2cgfHwgKF9nID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDMgMylcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRlZnNcIiwgbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaW5lYXJHcmFkaWVudFwiLCB7XG4gICAgaWQ6IFwiZ2VtaW5pX3N2Z19fYVwiLFxuICAgIHgxOiBcIjAlXCIsXG4gICAgeDI6IFwiNjguNzMlXCIsXG4gICAgeTE6IFwiMTAwJVwiLFxuICAgIHkyOiBcIjMwLjM5NSVcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN0b3BcIiwge1xuICAgIG9mZnNldDogXCIwJVwiLFxuICAgIHN0b3BDb2xvcjogXCIjMUM3REZGXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3RvcFwiLCB7XG4gICAgb2Zmc2V0OiBcIjUyLjAyMSVcIixcbiAgICBzdG9wQ29sb3I6IFwiIzFDNjlGRlwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN0b3BcIiwge1xuICAgIG9mZnNldDogXCIxMDAlXCIsXG4gICAgc3RvcENvbG9yOiBcIiNGMERDRDZcIlxuICB9KSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTEyIDI0QTE0LjMwNCAxNC4zMDQgMCAwIDAgMCAxMiAxNC4zMDQgMTQuMzA0IDAgMCAwIDEyIDBhMTQuMzA1IDE0LjMwNSAwIDAgMCAxMiAxMiAxNC4zMDUgMTQuMzA1IDAgMCAwLTEyIDEyXCIsXG4gICAgZmlsbDogXCJ1cmwoI2dlbWluaV9zdmdfX2EpXCJcbiAgfSkpKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgU3ZnR2VtaW5pOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/llm-icons/gemini.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/llm-icons/gemma.svg":
|
|
|
/*!***************************************!*\
|
|
|
!*** ./app/icons/llm-icons/gemma.svg ***!
|
|
|
\***************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _rect, _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgGemma = function SvgGemma(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n height: \"1em\",\n style: {\n flex: \"none\",\n lineHeight: 1\n },\n viewBox: \"0 0 30 30\",\n width: \"1em\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _rect || (_rect = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"rect\", {\n width: 30,\n height: 30,\n fill: \"#E7F8FF\",\n rx: 6\n })), _g || (_g = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n transform: \"translate(3 3)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"gemma_svg__a\",\n x1: \"24.419%\",\n x2: \"75.194%\",\n y1: \"75.581%\",\n y2: \"25.194%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"0%\",\n stopColor: \"#446EFF\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"36.661%\",\n stopColor: \"#2E96FF\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"83.221%\",\n stopColor: \"#B1C5FF\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M12.34 5.953a8.233 8.233 0 0 1-.247-1.125V3.72a8.25 8.25 0 0 1 5.562 2.232H12.34zm-.69 0a8.01 8.01 0 0 0 .257-1.145V3.72a8.25 8.25 0 0 0-5.562 2.232h5.304zm-5.433.187h5.373a7.98 7.98 0 0 1-.267.696 8.41 8.41 0 0 1-1.76 2.65L6.216 6.14zm-.264-.187H2.977v.187h2.915a8.436 8.436 0 0 0-2.357 5.767H0v.186h3.535a8.436 8.436 0 0 0 2.357 5.767H2.977v.186h2.976v2.977h.187v-2.915a8.436 8.436 0 0 0 5.767 2.357V24h.186v-3.535a8.436 8.436 0 0 0 5.767-2.357v2.915h.186v-2.977h2.977v-.186h-2.915a8.436 8.436 0 0 0 2.357-5.767H24v-.186h-3.535a8.436 8.436 0 0 0-2.357-5.767h2.915v-.187h-2.977V2.977h-.186v2.915a8.436 8.436 0 0 0-5.767-2.357V0h-.186v3.535A8.436 8.436 0 0 0 6.14 5.892V2.977h-.187v2.976zm6.14 14.326a8.25 8.25 0 0 0 5.562-2.233H12.34a8.33 8.33 0 0 0-.247 1.126v1.107zm-.186-1.087a8.015 8.015 0 0 0-.258-1.146H6.345a8.25 8.25 0 0 0 5.562 2.233v-1.087zm-8.186-7.285h1.107a8.23 8.23 0 0 0 1.125-.247V6.345a8.25 8.25 0 0 0-2.232 5.562zm1.087.186H3.72a8.25 8.25 0 0 0 2.232 5.562v-5.304a8.012 8.012 0 0 0-1.145-.258zm15.47-.186a8.25 8.25 0 0 0-2.232-5.562v5.315c.367.108.743.19 1.126.247h1.107zm-1.086.186c-.39.058-.772.144-1.146.258v5.304a8.25 8.25 0 0 0 2.233-5.562h-1.087zm-1.332 5.69V12.41a7.97 7.97 0 0 0-.696.267 8.409 8.409 0 0 0-2.65 1.76l3.346 3.346zm0-6.18v-5.45l-.012-.013h-5.451c.076.235.162.468.26.696a8.698 8.698 0 0 0 1.819 2.688 8.698 8.698 0 0 0 2.688 1.82c.228.097.46.183.696.259zM6.14 17.848V12.41c.235.078.468.167.696.267a8.403 8.403 0 0 1 2.688 1.799 8.404 8.404 0 0 1 1.799 2.688c.1.228.19.46.267.696H6.152l-.012-.012zm0-6.245V6.326l3.29 3.29a8.716 8.716 0 0 1-2.594 1.728 8.14 8.14 0 0 1-.696.259zm6.257 6.257h5.277l-3.29-3.29a8.716 8.716 0 0 0-1.728 2.594 8.135 8.135 0 0 0-.259.696zm-2.347-7.81a9.435 9.435 0 0 1-2.88 1.96 9.14 9.14 0 0 1 2.88 1.94 9.14 9.14 0 0 1 1.94 2.88 9.435 9.435 0 0 1 1.96-2.88 9.14 9.14 0 0 1 2.88-1.94 9.435 9.435 0 0 1-2.88-1.96 9.434 9.434 0 0 1-1.96-2.88 9.14 9.14 0 0 1-1.94 2.88z\",\n fill: \"url(#gemma_svg__a)\",\n fillRule: \"evenodd\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgGemma);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvbGxtLWljb25zL2dlbW1hLnN2ZyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBLHNCQUFzQixzRUFBc0UsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQyxrQkFBa0I7QUFDM1E7QUFDL0I7QUFDQSxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEdBQUcseUNBQXlDLGdEQUFtQjtBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsNkJBQTZCLGdEQUFtQjtBQUNuRDtBQUNBLEdBQUcsZUFBZSxnREFBbUIsNEJBQTRCLGdEQUFtQjtBQUNwRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBLEdBQUcsa0JBQWtCLGdEQUFtQjtBQUN4QztBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpRUFBZSxRQUFRIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvaWNvbnMvbGxtLWljb25zL2dlbW1hLnN2Zz9jNGY3Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfcmVjdCwgX2c7XG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xudmFyIFN2Z0dlbW1hID0gZnVuY3Rpb24gU3ZnR2VtbWEocHJvcHMpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIF9leHRlbmRzKHtcbiAgICBoZWlnaHQ6IFwiMWVtXCIsXG4gICAgc3R5bGU6IHtcbiAgICAgIGZsZXg6IFwibm9uZVwiLFxuICAgICAgbGluZUhlaWdodDogMVxuICAgIH0sXG4gICAgdmlld0JveDogXCIwIDAgMzAgMzBcIixcbiAgICB3aWR0aDogXCIxZW1cIixcbiAgICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gIH0sIHByb3BzKSwgX3JlY3QgfHwgKF9yZWN0ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJyZWN0XCIsIHtcbiAgICB3aWR0aDogMzAsXG4gICAgaGVpZ2h0OiAzMCxcbiAgICBmaWxsOiBcIiNFN0Y4RkZcIixcbiAgICByeDogNlxuICB9KSksIF9nIHx8IChfZyA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZ1wiLCB7XG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgzIDMpXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkZWZzXCIsIG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwibGluZWFyR3JhZGllbnRcIiwge1xuICAgIGlkOiBcImdlbW1hX3N2Z19fYVwiLFxuICAgIHgxOiBcIjI0LjQxOSVcIixcbiAgICB4MjogXCI3NS4xOTQlXCIsXG4gICAgeTE6IFwiNzUuNTgxJVwiLFxuICAgIHkyOiBcIjI1LjE5NCVcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN0b3BcIiwge1xuICAgIG9mZnNldDogXCIwJVwiLFxuICAgIHN0b3BDb2xvcjogXCIjNDQ2RUZGXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3RvcFwiLCB7XG4gICAgb2Zmc2V0OiBcIjM2LjY2MSVcIixcbiAgICBzdG9wQ29sb3I6IFwiIzJFOTZGRlwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN0b3BcIiwge1xuICAgIG9mZnNldDogXCI4My4yMjElXCIsXG4gICAgc3RvcENvbG9yOiBcIiNCMUM1RkZcIlxuICB9KSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTEyLjM0IDUuOTUzYTguMjMzIDguMjMzIDAgMCAxLS4yNDctMS4xMjVWMy43MmE4LjI1IDguMjUgMCAwIDEgNS41NjIgMi4yMzJIMTIuMzR6bS0uNjkgMGE4LjAxIDguMDEgMCAwIDAgLjI1Ny0xLjE0NVYzLjcyYTguMjUgOC4yNSAwIDAgMC01LjU2MiAyLjIzMmg1LjMwNHptLTUuNDMzLjE4N2g1LjM3M2E3Ljk4IDcuOTggMCAwIDEtLjI2Ny42OTYgOC40MSA4LjQxIDAgMCAxLTEuNzYgMi42NUw2LjIxNiA2LjE0em0tLjI2NC0uMTg3SDIuOTc3di4xODdoMi45MTVhOC40MzYgOC40MzYgMCAwIDAtMi4zNTcgNS43NjdIMHYuMTg2aDMuNTM1YTguNDM2IDguNDM2IDAgMCAwIDIuMzU3IDUuNzY3SDIuOTc3di4xODZoMi45NzZ2Mi45NzdoLjE4N3YtMi45MTVhOC40MzYgOC40MzYgMCAwIDAgNS43NjcgMi4zNTdWMjRoLjE4NnYtMy41MzVhOC40MzYgOC40MzYgMCAwIDAgNS43NjctMi4zNTd2Mi45MTVoLjE4NnYtMi45NzdoMi45Nzd2LS4xODZoLTIuOTE1YTguNDM2IDguNDM2IDAgMCAwIDIuMzU3LTUuNzY3SDI0di0uMTg2aC0zLjUzNWE4LjQzNiA4LjQzNiAwIDAgMC0yLjM1Ny01Ljc2N2gyLjkxNXYtLjE4N2gtMi45NzdWMi45NzdoLS4xODZ2Mi45MTVhOC40MzYgOC40MzYgMCAwIDAtNS43NjctMi4zNTdWMGgtLjE4NnYzLjUzNUE4LjQzNiA4LjQzNiAwIDAgMCA2LjE0IDUuODkyVjIuOTc3aC0uMTg3djIuOTc2em02LjE0IDE0LjMyNmE4LjI1IDguMjUgMCAwIDAgNS41NjItMi4yMzNIMTIuMzRhOC4zMyA4LjMzIDAgMCAwLS4yNDcgMS4xMjZ2MS4xMDd6bS0uMTg2LTEuMDg3YTguMDE1IDguMDE1IDAgMCAwLS4yNTgtMS4xNDZINi4zNDVhOC4yNSA4LjI1IDAgMCAwIDUuNTYyIDIuMjMzdi0xLjA4N3ptLTguMTg2LTcuMjg1aDEuMTA3YTguMjMgOC4yMyAwIDAgMCAxLjEyNS0uMjQ3VjYuMzQ1YTguMjUgOC4yNSAwIDAgMC0yLjIzMiA1LjU2MnptMS4wODcuMTg2SDMuNzJhOC4yNSA4LjI1IDAgMCAwIDIuMjMyIDUuNTYydi01LjMwNGE4LjAxMiA4LjAxMiAwIDAgMC0xLjE0NS0uMjU4em0xNS40Ny0uMTg2YTguMjUgOC4yNSAwIDAgMC0yLjIzMi01LjU2MnY1LjMxNWMuMzY3LjEwOC43NDMuMTkgMS4xMjYuMjQ3aDEuMTA3em0tMS4wODYuMTg2Yy0uMzkuMDU4LS43NzIuMTQ0LTEuMTQ2LjI1OHY1LjMwNGE4LjI1IDguMjUgMCAwIDAgMi4yMzMtNS41NjJoLTEuMDg3em0tMS4zMzIgNS42OVYxMi40MWE3Ljk3IDcuOTcgMCAwIDAtLjY5Ni4yNjcgOC40MDkgOC40MDkgMCAwIDAtMi42NSAxLjc2bDMuMzQ2IDMuMzQ2em0wLTYuMTh2LTUuNDVsLS4wMTItLjAxM2gtNS40NTFjLjA3Ni4yMzUuMTYyLjQ2OC4yNi42OTZhOC42OTggOC42OTggMCAwIDAgMS44MTkgMi42ODggOC42OTggOC42OTggMCAwIDAgMi42ODggMS44MmMuMjI4LjA5Ny40Ni4xODMuNjk2LjI1OXpNNi4xNCAxNy44NDhWMTIuNDFjLjIzNS4wNzguNDY4LjE2Ny42OTYuMjY3YTguNDAzIDguNDAzIDAgMCAxIDIuNjg4IDEuNzk5IDguNDA0IDguNDA0IDAgMCAxIDEuNzk5IDIuNjg4Yy4xLjIyOC4xOS40Ni4yNjcuNjk2SDYuMTUybC0uMDEyLS4wMTJ6bTAtNi4yNDVWNi4zMjZsMy4yOSAzLjI5YTguNzE2IDguNzE2IDAgMCAxLTIuNTk0IDEuNzI4IDguMTQgOC4xNCAwIDAgMS0uNjk2LjI1OXptNi4yNTcgNi4yNTdoNS4yNzdsLTMuMjktMy4yOWE4LjcxNiA4LjcxNiAwIDAgMC0xLjcyOCAyLjU5NCA4LjEzNSA4LjEzNSAwIDAgMC0uMjU5LjY5NnptLTIuMzQ3LTcuODFhOS40MzUgOS40MzUgMCAwIDEtMi44OCAxLjk2IDkuMTQgOS4xNCAwIDAgMSAyLjg4IDEuOTQgOS4xNCA5LjE0IDAgMCAxIDEuOTQgMi44OCA5LjQzNSA5LjQzNSAwIDAgMSAxLjk2LTIuODggOS4xNCA5LjE0IDAgMCAxIDIuODgtMS45NCA5LjQzNSA5LjQzNSAwIDAgMS0yLjg4LTEuOTYgOS40MzQgOS40MzQgMCAwIDEtMS45Ni0yLjg4IDkuMTQgOS4xNCAwIDAgMS0xLjk0IDIuODh6XCIsXG4gICAgZmlsbDogXCJ1cmwoI2dlbW1hX3N2Z19fYSlcIixcbiAgICBmaWxsUnVsZTogXCJldmVub2RkXCJcbiAgfSkpKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgU3ZnR2VtbWE7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/llm-icons/gemma.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/llm-icons/grok.svg":
|
|
|
/*!**************************************!*\
|
|
|
!*** ./app/icons/llm-icons/grok.svg ***!
|
|
|
\**************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgGrok = function SvgGrok(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n fill: \"#333\",\n fillRule: \"evenodd\",\n height: \"1em\",\n style: {\n flex: \"none\",\n lineHeight: 1\n },\n viewBox: \"0 0 30 30\",\n width: \"1em\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _rect || (_rect = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"rect\", {\n width: 30,\n height: 30,\n fill: \"#E7F8FF\",\n rx: 6\n })), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M9.469 11.776 19.512 26h-4.464L5.005 11.776H9.47zm-.004 7.9 2.233 3.164L9.467 26H5l4.465-6.324zM25 5.582V26h-3.659V10.764L25 5.582zM25 4l-9.952 14.095-2.233-3.163L20.533 4H25z\"\n })));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgGrok);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvbGxtLWljb25zL2dyb2suc3ZnIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0Esc0JBQXNCLHNFQUFzRSxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjtBQUMzUTtBQUMvQjtBQUNBLHNCQUFzQixnREFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEdBQUcseUNBQXlDLGdEQUFtQjtBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsbUNBQW1DLGdEQUFtQjtBQUN6RDtBQUNBLEdBQUc7QUFDSDtBQUNBLGlFQUFlLE9BQU8iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9pY29ucy9sbG0taWNvbnMvZ3Jvay5zdmc/NmY3ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX3JlY3QsIF9wYXRoO1xuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiA/IE9iamVjdC5hc3NpZ24uYmluZCgpIDogZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbnZhciBTdmdHcm9rID0gZnVuY3Rpb24gU3ZnR3Jvayhwcm9wcykge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX2V4dGVuZHMoe1xuICAgIGZpbGw6IFwiIzMzM1wiLFxuICAgIGZpbGxSdWxlOiBcImV2ZW5vZGRcIixcbiAgICBoZWlnaHQ6IFwiMWVtXCIsXG4gICAgc3R5bGU6IHtcbiAgICAgIGZsZXg6IFwibm9uZVwiLFxuICAgICAgbGluZUhlaWdodDogMVxuICAgIH0sXG4gICAgdmlld0JveDogXCIwIDAgMzAgMzBcIixcbiAgICB3aWR0aDogXCIxZW1cIixcbiAgICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gIH0sIHByb3BzKSwgX3JlY3QgfHwgKF9yZWN0ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJyZWN0XCIsIHtcbiAgICB3aWR0aDogMzAsXG4gICAgaGVpZ2h0OiAzMCxcbiAgICBmaWxsOiBcIiNFN0Y4RkZcIixcbiAgICByeDogNlxuICB9KSksIF9wYXRoIHx8IChfcGF0aCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZDogXCJNOS40NjkgMTEuNzc2IDE5LjUxMiAyNmgtNC40NjRMNS4wMDUgMTEuNzc2SDkuNDd6bS0uMDA0IDcuOSAyLjIzMyAzLjE2NEw5LjQ2NyAyNkg1bDQuNDY1LTYuMzI0ek0yNSA1LjU4MlYyNmgtMy42NTlWMTAuNzY0TDI1IDUuNTgyek0yNSA0bC05Ljk1MiAxNC4wOTUtMi4yMzMtMy4xNjNMMjAuNTMzIDRIMjV6XCJcbiAgfSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBTdmdHcm9rOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/llm-icons/grok.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/llm-icons/hunyuan.svg":
|
|
|
/*!*****************************************!*\
|
|
|
!*** ./app/icons/llm-icons/hunyuan.svg ***!
|
|
|
\*****************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _rect, _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgHunyuan = function SvgHunyuan(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n height: \"1em\",\n style: {\n flex: \"none\",\n lineHeight: 1\n },\n viewBox: \"0 0 30 30\",\n width: \"1em\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _rect || (_rect = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"rect\", {\n width: 30,\n height: 30,\n fill: \"#E7F8FF\",\n rx: 6\n })), _g || (_g = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\",\n transform: \"translate(3 3)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"circle\", {\n cx: 12,\n cy: 12,\n fill: \"#0055E9\",\n r: 12\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M12 0c.518 0 1.028.033 1.528.096A6.188 6.188 0 0 1 12.12 12.28l-.12.001c-2.99 0-5.242 2.179-5.554 5.11-.223 2.086.353 4.412 2.242 6.146C3.672 22.1 0 17.479 0 12 0 5.373 5.373 0 12 0z\",\n fill: \"#A8DFF5\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M5.286 5a2.438 2.438 0 0 1 .682 3.38c-3.962 5.966-3.215 10.743 2.648 15.136C3.636 22.056 0 17.452 0 12c0-1.787.39-3.482 1.09-5.006.253-.435.525-.872.817-1.311A2.438 2.438 0 0 1 5.286 5z\",\n fill: \"#0055E9\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M12.98.04c.272.021.543.053.81.093.583.106 1.117.254 1.538.44 6.638 2.927 8.07 10.052 1.748 15.642a4.125 4.125 0 0 1-5.822-.358c-1.51-1.706-1.3-4.184.357-5.822.858-.848 3.108-1.223 4.045-2.441 1.257-1.634 2.122-6.009-2.523-7.506L12.98.039z\",\n fill: \"#00BCFF\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M13.528.096A6.187 6.187 0 0 1 12 12.281a5.75 5.75 0 0 0-1.71.255c.147-.905.595-1.784 1.321-2.501.858-.848 3.108-1.223 4.045-2.441 1.27-1.651 2.14-6.104-2.676-7.554.184.014.367.033.548.056z\",\n fill: \"#ECECEE\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgHunyuan);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvbGxtLWljb25zL2h1bnl1YW4uc3ZnIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0Esc0JBQXNCLHNFQUFzRSxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjtBQUMzUTtBQUMvQjtBQUNBLHNCQUFzQixnREFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsR0FBRyx5Q0FBeUMsZ0RBQW1CO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyw2QkFBNkIsZ0RBQW1CO0FBQ25EO0FBQ0E7QUFDQTtBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlFQUFlLFVBQVUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9pY29ucy9sbG0taWNvbnMvaHVueXVhbi5zdmc/NGNlZSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX3JlY3QsIF9nO1xuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiA/IE9iamVjdC5hc3NpZ24uYmluZCgpIDogZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbnZhciBTdmdIdW55dWFuID0gZnVuY3Rpb24gU3ZnSHVueXVhbihwcm9wcykge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX2V4dGVuZHMoe1xuICAgIGhlaWdodDogXCIxZW1cIixcbiAgICBzdHlsZToge1xuICAgICAgZmxleDogXCJub25lXCIsXG4gICAgICBsaW5lSGVpZ2h0OiAxXG4gICAgfSxcbiAgICB2aWV3Qm94OiBcIjAgMCAzMCAzMFwiLFxuICAgIHdpZHRoOiBcIjFlbVwiLFxuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgfSwgcHJvcHMpLCBfcmVjdCB8fCAoX3JlY3QgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInJlY3RcIiwge1xuICAgIHdpZHRoOiAzMCxcbiAgICBoZWlnaHQ6IDMwLFxuICAgIGZpbGw6IFwiI0U3RjhGRlwiLFxuICAgIHJ4OiA2XG4gIH0pKSwgX2cgfHwgKF9nID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICBmaWxsUnVsZTogXCJldmVub2RkXCIsXG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgzIDMpXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJjaXJjbGVcIiwge1xuICAgIGN4OiAxMixcbiAgICBjeTogMTIsXG4gICAgZmlsbDogXCIjMDA1NUU5XCIsXG4gICAgcjogMTJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZDogXCJNMTIgMGMuNTE4IDAgMS4wMjguMDMzIDEuNTI4LjA5NkE2LjE4OCA2LjE4OCAwIDAgMSAxMi4xMiAxMi4yOGwtLjEyLjAwMWMtMi45OSAwLTUuMjQyIDIuMTc5LTUuNTU0IDUuMTEtLjIyMyAyLjA4Ni4zNTMgNC40MTIgMi4yNDIgNi4xNDZDMy42NzIgMjIuMSAwIDE3LjQ3OSAwIDEyIDAgNS4zNzMgNS4zNzMgMCAxMiAwelwiLFxuICAgIGZpbGw6IFwiI0E4REZGNVwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTUuMjg2IDVhMi40MzggMi40MzggMCAwIDEgLjY4MiAzLjM4Yy0zLjk2MiA1Ljk2Ni0zLjIxNSAxMC43NDMgMi42NDggMTUuMTM2QzMuNjM2IDIyLjA1NiAwIDE3LjQ1MiAwIDEyYzAtMS43ODcuMzktMy40ODIgMS4wOS01LjAwNi4yNTMtLjQzNS41MjUtLjg3Mi44MTctMS4zMTFBMi40MzggMi40MzggMCAwIDEgNS4yODYgNXpcIixcbiAgICBmaWxsOiBcIiMwMDU1RTlcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk0xMi45OC4wNGMuMjcyLjAyMS41NDMuMDUzLjgxLjA5My41ODMuMTA2IDEuMTE3LjI1NCAxLjUzOC40NCA2LjYzOCAyLjkyNyA4LjA3IDEwLjA1MiAxLjc0OCAxNS42NDJhNC4xMjUgNC4xMjUgMCAwIDEtNS44MjItLjM1OGMtMS41MS0xLjcwNi0xLjMtNC4xODQuMzU3LTUuODIyLjg1OC0uODQ4IDMuMTA4LTEuMjIzIDQuMDQ1LTIuNDQxIDEuMjU3LTEuNjM0IDIuMTIyLTYuMDA5LTIuNTIzLTcuNTA2TDEyLjk4LjAzOXpcIixcbiAgICBmaWxsOiBcIiMwMEJDRkZcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk0xMy41MjguMDk2QTYuMTg3IDYuMTg3IDAgMCAxIDEyIDEyLjI4MWE1Ljc1IDUuNzUgMCAwIDAtMS43MS4yNTVjLjE0Ny0uOTA1LjU5NS0xLjc4NCAxLjMyMS0yLjUwMS44NTgtLjg0OCAzLjEwOC0xLjIyMyA0LjA0NS0yLjQ0MSAxLjI3LTEuNjUxIDIuMTQtNi4xMDQtMi42NzYtNy41NTQuMTg0LjAxNC4zNjcuMDMzLjU0OC4wNTZ6XCIsXG4gICAgZmlsbDogXCIjRUNFQ0VFXCJcbiAgfSkpKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgU3ZnSHVueXVhbjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/llm-icons/hunyuan.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/llm-icons/meta.svg":
|
|
|
/*!**************************************!*\
|
|
|
!*** ./app/icons/llm-icons/meta.svg ***!
|
|
|
\**************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _rect, _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgMeta = function SvgMeta(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n height: \"1em\",\n style: {\n flex: \"none\",\n lineHeight: 1\n },\n viewBox: \"0 0 30 30\",\n width: \"1em\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _rect || (_rect = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"rect\", {\n width: 30,\n height: 30,\n fill: \"#E7F8FF\",\n rx: 6\n })), _g || (_g = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n transform: \"translate(3 3)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"meta_svg__a\",\n x1: \"75.897%\",\n x2: \"26.312%\",\n y1: \"89.199%\",\n y2: \"12.194%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \".06%\",\n stopColor: \"#0867DF\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"45.39%\",\n stopColor: \"#0668E1\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"85.91%\",\n stopColor: \"#0064E0\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"meta_svg__b\",\n x1: \"21.67%\",\n x2: \"97.068%\",\n y1: \"75.874%\",\n y2: \"23.985%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"13.23%\",\n stopColor: \"#0064DF\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"99.88%\",\n stopColor: \"#0064E0\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"meta_svg__c\",\n x1: \"38.263%\",\n x2: \"60.895%\",\n y1: \"89.127%\",\n y2: \"16.131%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"1.47%\",\n stopColor: \"#0072EC\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"68.81%\",\n stopColor: \"#0064DF\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"meta_svg__d\",\n x1: \"47.032%\",\n x2: \"52.15%\",\n y1: \"90.19%\",\n y2: \"15.745%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"7.31%\",\n stopColor: \"#007CF6\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"99.43%\",\n stopColor: \"#0072EC\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"meta_svg__e\",\n x1: \"52.155%\",\n x2: \"47.591%\",\n y1: \"58.301%\",\n y2: \"37.004%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"7.31%\",\n stopColor: \"#007FF9\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"100%\",\n stopColor: \"#007CF6\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"meta_svg__f\",\n x1: \"37.689%\",\n x2: \"61.961%\",\n y1: \"12.502%\",\n y2: \"63.624%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"7.31%\",\n stopColor: \"#007FF9\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"100%\",\n stopColor: \"#0082FB\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"meta_svg__g\",\n x1: \"34.808%\",\n x2: \"62.313%\",\n y1: \"68.859%\",\n y2: \"23.174%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"27.99%\",\n stopColor: \"#007FF8\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"91.41%\",\n stopColor: \"#0082FB\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"meta_svg__h\",\n x1: \"43.762%\",\n x2: \"57.602%\",\n y1: \"6.235%\",\n y2: \"98.514%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"0%\",\n stopColor: \"#0082FB\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"99.95%\",\n stopColor: \"#0081FA\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"meta_svg__i\",\n x1: \"60.055%\",\n x2: \"39.88%\",\n y1: \"4.661%\",\n y2: \"69.077%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"6.19%\",\n stopColor: \"#0081FA\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"100%\",\n stopColor: \"#0080F9\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"meta_svg__j\",\n x1: \"30.282%\",\n x2: \"61.081%\",\n y1: \"59.32%\",\n y2: \"33.244%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"0%\",\n stopColor: \"#027AF3\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"100%\",\n stopColor: \"#0080F9\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"meta_svg__k\",\n x1: \"20.433%\",\n x2: \"82.112%\",\n y1: \"50.001%\",\n y2: \"50.001%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"0%\",\n stopColor: \"#0377EF\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"99.94%\",\n stopColor: \"#0279F1\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"meta_svg__l\",\n x1: \"40.303%\",\n x2: \"72.394%\",\n y1: \"35.298%\",\n y2: \"57.811%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \".19%\",\n stopColor: \"#0471E9\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"100%\",\n stopColor: \"#0377EF\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"meta_svg__m\",\n x1: \"32.254%\",\n x2: \"68.003%\",\n y1: \"19.719%\",\n y2: \"84.908%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"27.65%\",\n stopColor: \"#0867DF\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"100%\",\n stopColor: \"#0471E9\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n fill: \"none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M6.897 4h-.024l-.031 2.615h.022c1.715 0 3.046 1.357 5.94 6.246l.175.297.012.02 1.62-2.438-.012-.019a48.763 48.763 0 0 0-1.098-1.716 28.01 28.01 0 0 0-1.175-1.629C10.413 4.932 8.812 4 6.896 4z\",\n fill: \"url(#meta_svg__a)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M6.873 4C4.95 4.01 3.247 5.258 2.02 7.17a4.352 4.352 0 0 0-.01.017l2.254 1.231.011-.017c.718-1.083 1.61-1.774 2.568-1.785h.021L6.896 4h-.023z\",\n fill: \"url(#meta_svg__b)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"m2.019 7.17-.011.017C1.2 8.447.598 9.995.274 11.664l-.005.022 2.534.6.004-.022c.27-1.467.786-2.828 1.456-3.845l.011-.017L2.02 7.17z\",\n fill: \"url(#meta_svg__c)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"m2.807 12.264-2.533-.6-.005.022A14.885 14.885 0 0 0 0 14.472v.023l2.598.233v-.023a12.591 12.591 0 0 1 .21-2.44z\",\n fill: \"url(#meta_svg__d)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M2.677 15.537a5.462 5.462 0 0 1-.079-.813v-.022L0 14.468v.024a8.89 8.89 0 0 0 .146 1.652l2.535-.585a4.106 4.106 0 0 1-.004-.022z\",\n fill: \"url(#meta_svg__e)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M3.27 16.89c-.284-.31-.484-.756-.589-1.328l-.004-.021-2.535.585.004.021c.192 1.01.568 1.85 1.106 2.487l.014.017 2.018-1.745a2.106 2.106 0 0 1-.015-.016z\",\n fill: \"url(#meta_svg__f)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M10.78 9.654c-1.528 2.35-2.454 3.825-2.454 3.825-2.035 3.2-2.739 3.917-3.871 3.917a1.545 1.545 0 0 1-1.186-.508l-2.017 1.744.014.017C2.01 19.518 3.058 20 4.356 20c1.963 0 3.374-.928 5.884-5.33l1.766-3.13a41.283 41.283 0 0 0-1.227-1.886z\",\n fill: \"#0082FB\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"m13.502 5.946-.016.016c-.4.43-.786.908-1.16 1.416.378.483.768 1.024 1.175 1.63.48-.743.928-1.345 1.367-1.807l.016-.016-1.382-1.24z\",\n fill: \"url(#meta_svg__g)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M20.918 5.713C19.853 4.633 18.583 4 17.225 4c-1.432 0-2.637.787-3.723 1.944l-.016.016 1.382 1.24.016-.017c.715-.747 1.408-1.12 2.176-1.12.826 0 1.6.39 2.27 1.075l.015.016 1.589-1.425-.016-.016z\",\n fill: \"#0082FB\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M23.998 14.125c-.06-3.467-1.27-6.566-3.064-8.396l-.016-.016-1.588 1.424.015.016c1.35 1.392 2.277 3.98 2.361 6.971v.023h2.292v-.022z\",\n fill: \"url(#meta_svg__h)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M23.998 14.15v-.023h-2.292v.022c.004.14.006.282.006.424 0 .815-.121 1.474-.368 1.95l-.011.022 1.708 1.782.013-.02c.62-.96.946-2.293.946-3.91 0-.083 0-.165-.002-.247z\",\n fill: \"url(#meta_svg__i)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"m21.344 16.52-.011.02c-.214.402-.519.67-.917.787l.778 2.462a3.493 3.493 0 0 0 .438-.182 3.558 3.558 0 0 0 1.366-1.218l.044-.065.012-.02-1.71-1.784z\",\n fill: \"url(#meta_svg__j)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M19.92 17.393c-.262 0-.492-.039-.718-.14l-.798 2.522c.449.153.927.222 1.46.222a4.1 4.1 0 0 0 1.352-.215l-.78-2.462c-.167.05-.341.075-.517.073z\",\n fill: \"url(#meta_svg__k)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"m18.323 16.534-.014-.017-1.836 1.914.016.017c.637.682 1.246 1.105 1.937 1.337l.797-2.52c-.291-.125-.573-.353-.9-.731z\",\n fill: \"url(#meta_svg__l)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M18.309 16.515c-.55-.642-1.232-1.712-2.303-3.44l-1.396-2.336-.011-.02-1.62 2.438.012.02.989 1.668c.959 1.61 1.74 2.774 2.493 3.585l.016.016 1.834-1.914a2.353 2.353 0 0 1-.014-.017z\",\n fill: \"url(#meta_svg__m)\"\n })))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgMeta);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvbGxtLWljb25zL21ldGEuc3ZnIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0Esc0JBQXNCLHNFQUFzRSxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjtBQUMzUTtBQUMvQjtBQUNBLHNCQUFzQixnREFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsR0FBRyx5Q0FBeUMsZ0RBQW1CO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyw2QkFBNkIsZ0RBQW1CO0FBQ25EO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQiw0QkFBNEIsZ0RBQW1CO0FBQ3BGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CO0FBQ3JDO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0EsR0FBRyxpQkFBaUIsZ0RBQW1CO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CO0FBQ3JDO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBLEdBQUcsaUJBQWlCLGdEQUFtQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQSxHQUFHLGlCQUFpQixnREFBbUI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0EsR0FBRyxpQkFBaUIsZ0RBQW1CO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CO0FBQ3JDO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBLEdBQUcsaUJBQWlCLGdEQUFtQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQSxHQUFHLGlCQUFpQixnREFBbUI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0EsR0FBRyxpQkFBaUIsZ0RBQW1CO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CO0FBQ3JDO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBLEdBQUcsaUJBQWlCLGdEQUFtQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQSxHQUFHLGlCQUFpQixnREFBbUI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0EsR0FBRyxpQkFBaUIsZ0RBQW1CO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CO0FBQ3JDO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBLEdBQUcsaUJBQWlCLGdEQUFtQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQSxHQUFHLGlCQUFpQixnREFBbUI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0EsR0FBRyxrQkFBa0IsZ0RBQW1CO0FBQ3hDO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlFQUFlLE9BQU8iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9pY29ucy9sbG0taWNvbnMvbWV0YS5zdmc/NzU2MCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX3JlY3QsIF9nO1xuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiA/IE9iamVjdC5hc3NpZ24uYmluZCgpIDogZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbnZhciBTdmdNZXRhID0gZnVuY3Rpb24gU3ZnTWV0YShwcm9wcykge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX2V4dGVuZHMoe1xuICAgIGhlaWdodDogXCIxZW1cIixcbiAgICBzdHlsZToge1xuICAgICAgZmxleDogXCJub25lXCIsXG4gICAgICBsaW5lSGVpZ2h0OiAxXG4gICAgfSxcbiAgICB2aWV3Qm94OiBcIjAgMCAzMCAzMFwiLFxuICAgIHdpZHRoOiBcIjFlbVwiLFxuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgfSwgcHJvcHMpLCBfcmVjdCB8fCAoX3JlY3QgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInJlY3RcIiwge1xuICAgIHdpZHRoOiAzMCxcbiAgICBoZWlnaHQ6IDMwLFxuICAgIGZpbGw6IFwiI0U3RjhGRlwiLFxuICAgIHJ4OiA2XG4gIH0pKSwgX2cgfHwgKF9nID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDMgMylcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRlZnNcIiwgbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaW5lYXJHcmFkaWVudFwiLCB7XG4gICAgaWQ6IFwibWV0YV9zdmdfX2FcIixcbiAgICB4MTogXCI3NS44OTclXCIsXG4gICAgeDI6IFwiMjYuMzEyJVwiLFxuICAgIHkxOiBcIjg5LjE5OSVcIixcbiAgICB5MjogXCIxMi4xOTQlXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdG9wXCIsIHtcbiAgICBvZmZzZXQ6IFwiLjA2JVwiLFxuICAgIHN0b3BDb2xvcjogXCIjMDg2N0RGXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3RvcFwiLCB7XG4gICAgb2Zmc2V0OiBcIjQ1LjM5JVwiLFxuICAgIHN0b3BDb2xvcjogXCIjMDY2OEUxXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3RvcFwiLCB7XG4gICAgb2Zmc2V0OiBcIjg1LjkxJVwiLFxuICAgIHN0b3BDb2xvcjogXCIjMDA2NEUwXCJcbiAgfSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImxpbmVhckdyYWRpZW50XCIsIHtcbiAgICBpZDogXCJtZXRhX3N2Z19fYlwiLFxuICAgIHgxOiBcIjIxLjY3JVwiLFxuICAgIHgyOiBcIjk3LjA2OCVcIixcbiAgICB5MTogXCI3NS44NzQlXCIsXG4gICAgeTI6IFwiMjMuOTg1JVwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3RvcFwiLCB7XG4gICAgb2Zmc2V0OiBcIjEzLjIzJVwiLFxuICAgIHN0b3BDb2xvcjogXCIjMDA2NERGXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3RvcFwiLCB7XG4gICAgb2Zmc2V0OiBcIjk5Ljg4JVwiLFxuICAgIHN0b3BDb2xvcjogXCIjMDA2NEUwXCJcbiAgfSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImxpbmVhckdyYWRpZW50XCIsIHtcbiAgICBpZDogXCJtZXRhX3N2Z19fY1wiLFxuICAgIHgxOiBcIjM4LjI2MyVcIixcbiAgICB4MjogXCI2MC44OTUlXCIsXG4gICAgeTE6IFwiODkuMTI3JVwiLFxuICAgIHkyOiBcIjE2LjEzMSVcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN0b3BcIiwge1xuICAgIG9mZnNldDogXCIxLjQ3JVwiLFxuICAgIHN0b3BDb2xvcjogXCIjMDA3MkVDXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3RvcFwiLCB7XG4gICAgb2Zmc2V0OiBcIjY4LjgxJVwiLFxuICAgIHN0b3BDb2xvcjogXCIjMDA2NERGXCJcbiAgfSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImxpbmVhckdyYWRpZW50XCIsIHtcbiAgICBpZDogXCJtZXRhX3N2Z19fZFwiLFxuICAgIHgxOiBcIjQ3LjAzMiVcIixcbiAgICB4MjogXCI1Mi4xNSVcIixcbiAgICB5MTogXCI5MC4xOSVcIixcbiAgICB5MjogXCIxNS43NDUlXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdG9wXCIsIHtcbiAgICBvZmZzZXQ6IFwiNy4zMSVcIixcbiAgICBzdG9wQ29sb3I6IFwiIzAwN0NGNlwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN0b3BcIiwge1xuICAgIG9mZnNldDogXCI5OS40MyVcIixcbiAgICBzdG9wQ29sb3I6IFwiIzAwNzJFQ1wiXG4gIH0pKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaW5lYXJHcmFkaWVudFwiLCB7XG4gICAgaWQ6IFwibWV0YV9zdmdfX2VcIixcbiAgICB4MTogXCI1Mi4xNTUlXCIsXG4gICAgeDI6IFwiNDcuNTkxJVwiLFxuICAgIHkxOiBcIjU4LjMwMSVcIixcbiAgICB5MjogXCIzNy4wMDQlXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdG9wXCIsIHtcbiAgICBvZmZzZXQ6IFwiNy4zMSVcIixcbiAgICBzdG9wQ29sb3I6IFwiIzAwN0ZGOVwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN0b3BcIiwge1xuICAgIG9mZnNldDogXCIxMDAlXCIsXG4gICAgc3RvcENvbG9yOiBcIiMwMDdDRjZcIlxuICB9KSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwibGluZWFyR3JhZGllbnRcIiwge1xuICAgIGlkOiBcIm1ldGFfc3ZnX19mXCIsXG4gICAgeDE6IFwiMzcuNjg5JVwiLFxuICAgIHgyOiBcIjYxLjk2MSVcIixcbiAgICB5MTogXCIxMi41MDIlXCIsXG4gICAgeTI6IFwiNjMuNjI0JVwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3RvcFwiLCB7XG4gICAgb2Zmc2V0OiBcIjcuMzElXCIsXG4gICAgc3RvcENvbG9yOiBcIiMwMDdGRjlcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdG9wXCIsIHtcbiAgICBvZmZzZXQ6IFwiMTAwJVwiLFxuICAgIHN0b3BDb2xvcjogXCIjMDA4MkZCXCJcbiAgfSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImxpbmVhckdyYWRpZW50XCIsIHtcbiAgICBpZDogXCJtZXRhX3N2Z19fZ1wiLFxuICAgIHgxOiBcIjM0LjgwOCVcIixcbiAgICB4MjogXCI2Mi4zMTMlXCIsXG4gICAgeTE6IFwiNjguODU5JVwiLFxuICAgIHkyOiBcIjIzLjE3NCVcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN0b3BcIiwge1xuICAgIG9mZnNldDogXCIyNy45OSVcIixcbiAgICBzdG9wQ29sb3I6IFwiIzAwN0ZGOFwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN0b3BcIiwge1xuICAgIG9mZnNldDogXCI5MS40MSVcIixcbiAgICBzdG9wQ29sb3I6IFwiIzAwODJGQlwiXG4gIH0pKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaW5lYXJHcmFkaWVudFwiLCB7XG4gICAgaWQ6IFwibWV0YV9zdmdfX2hcIixcbiAgICB4MTogXCI0My43NjIlXCIsXG4gICAgeDI6IFwiNTcuNjAyJVwiLFxuICAgIHkxOiBcIjYuMjM1JVwiLFxuICAgIHkyOiBcIjk4LjUxNCVcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN0b3BcIiwge1xuICAgIG9mZnNldDogXCIwJVwiLFxuICAgIHN0b3BDb2xvcjogXCIjMDA4MkZCXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3RvcFwiLCB7XG4gICAgb2Zmc2V0OiBcIjk5Ljk1JVwiLFxuICAgIHN0b3BDb2xvcjogXCIjMDA4MUZBXCJcbiAgfSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImxpbmVhckdyYWRpZW50XCIsIHtcbiAgICBpZDogXCJtZXRhX3N2Z19faVwiLFxuICAgIHgxOiBcIjYwLjA1NSVcIixcbiAgICB4MjogXCIzOS44OCVcIixcbiAgICB5MTogXCI0LjY2MSVcIixcbiAgICB5MjogXCI2OS4wNzclXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdG9wXCIsIHtcbiAgICBvZmZzZXQ6IFwiNi4xOSVcIixcbiAgICBzdG9wQ29sb3I6IFwiIzAwODFGQVwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN0b3BcIiwge1xuICAgIG9mZnNldDogXCIxMDAlXCIsXG4gICAgc3RvcENvbG9yOiBcIiMwMDgwRjlcIlxuICB9KSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwibGluZWFyR3JhZGllbnRcIiwge1xuICAgIGlkOiBcIm1ldGFfc3ZnX19qXCIsXG4gICAgeDE6IFwiMzAuMjgyJVwiLFxuICAgIHgyOiBcIjYxLjA4MSVcIixcbiAgICB5MTogXCI1OS4zMiVcIixcbiAgICB5MjogXCIzMy4yNDQlXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdG9wXCIsIHtcbiAgICBvZmZzZXQ6IFwiMCVcIixcbiAgICBzdG9wQ29sb3I6IFwiIzAyN0FGM1wiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN0b3BcIiwge1xuICAgIG9mZnNldDogXCIxMDAlXCIsXG4gICAgc3RvcENvbG9yOiBcIiMwMDgwRjlcIlxuICB9KSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwibGluZWFyR3JhZGllbnRcIiwge1xuICAgIGlkOiBcIm1ldGFfc3ZnX19rXCIsXG4gICAgeDE6IFwiMjAuNDMzJVwiLFxuICAgIHgyOiBcIjgyLjExMiVcIixcbiAgICB5MTogXCI1MC4wMDElXCIsXG4gICAgeTI6IFwiNTAuMDAxJVwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3RvcFwiLCB7XG4gICAgb2Zmc2V0OiBcIjAlXCIsXG4gICAgc3RvcENvbG9yOiBcIiMwMzc3RUZcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdG9wXCIsIHtcbiAgICBvZmZzZXQ6IFwiOTkuOTQlXCIsXG4gICAgc3RvcENvbG9yOiBcIiMwMjc5RjFcIlxuICB9KSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwibGluZWFyR3JhZGllbnRcIiwge1xuICAgIGlkOiBcIm1ldGFfc3ZnX19sXCIsXG4gICAgeDE6IFwiNDAuMzAzJVwiLFxuICAgIHgyOiBcIjcyLjM5NCVcIixcbiAgICB5MTogXCIzNS4yOTglXCIsXG4gICAgeTI6IFwiNTcuODExJVwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3RvcFwiLCB7XG4gICAgb2Zmc2V0OiBcIi4xOSVcIixcbiAgICBzdG9wQ29sb3I6IFwiIzA0NzFFOVwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN0b3BcIiwge1xuICAgIG9mZnNldDogXCIxMDAlXCIsXG4gICAgc3RvcENvbG9yOiBcIiMwMzc3RUZcIlxuICB9KSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwibGluZWFyR3JhZGllbnRcIiwge1xuICAgIGlkOiBcIm1ldGFfc3ZnX19tXCIsXG4gICAgeDE6IFwiMzIuMjU0JVwiLFxuICAgIHgyOiBcIjY4LjAwMyVcIixcbiAgICB5MTogXCIxOS43MTklXCIsXG4gICAgeTI6IFwiODQuOTA4JVwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3RvcFwiLCB7XG4gICAgb2Zmc2V0OiBcIjI3LjY1JVwiLFxuICAgIHN0b3BDb2xvcjogXCIjMDg2N0RGXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3RvcFwiLCB7XG4gICAgb2Zmc2V0OiBcIjEwMCVcIixcbiAgICBzdG9wQ29sb3I6IFwiIzA0NzFFOVwiXG4gIH0pKSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZ1wiLCB7XG4gICAgZmlsbDogXCJub25lXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk02Ljg5NyA0aC0uMDI0bC0uMDMxIDIuNjE1aC4wMjJjMS43MTUgMCAzLjA0NiAxLjM1NyA1Ljk0IDYuMjQ2bC4xNzUuMjk3LjAxMi4wMiAxLjYyLTIuNDM4LS4wMTItLjAxOWE0OC43NjMgNDguNzYzIDAgMCAwLTEuMDk4LTEuNzE2IDI4LjAxIDI4LjAxIDAgMCAwLTEuMTc1LTEuNjI5QzEwLjQxMyA0LjkzMiA4LjgxMiA0IDYuODk2IDR6XCIsXG4gICAgZmlsbDogXCJ1cmwoI21ldGFfc3ZnX19hKVwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTYuODczIDRDNC45NSA0LjAxIDMuMjQ3IDUuMjU4IDIuMDIgNy4xN2E0LjM1MiA0LjM1MiAwIDAgMC0uMDEuMDE3bDIuMjU0IDEuMjMxLjAxMS0uMDE3Yy43MTgtMS4wODMgMS42MS0xLjc3NCAyLjU2OC0xLjc4NWguMDIxTDYuODk2IDRoLS4wMjN6XCIsXG4gICAgZmlsbDogXCJ1cmwoI21ldGFfc3ZnX19iKVwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwibTIuMDE5IDcuMTctLjAxMS4wMTdDMS4yIDguNDQ3LjU5OCA5Ljk5NS4yNzQgMTEuNjY0bC0uMDA1LjAyMiAyLjUzNC42LjAwNC0uMDIyYy4yNy0xLjQ2Ny43ODYtMi44MjggMS40NTYtMy44NDVsLjAxMS0uMDE3TDIuMDIgNy4xN3pcIixcbiAgICBmaWxsOiBcInVybCgjbWV0YV9zdmdfX2MpXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZDogXCJtMi44MDcgMTIuMjY0LTIuNTMzLS42LS4wMDUuMDIyQTE0Ljg4NSAxNC44ODUgMCAwIDAgMCAxNC40NzJ2LjAyM2wyLjU5OC4yMzN2LS4wMjNhMTIuNTkxIDEyLjU5MSAwIDAgMSAuMjEtMi40NHpcIixcbiAgICBmaWxsOiBcInVybCgjbWV0YV9zdmdfX2QpXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZDogXCJNMi42NzcgMTUuNTM3YTUuNDYyIDUuNDYyIDAgMCAxLS4wNzktLjgxM3YtLjAyMkwwIDE0LjQ2OHYuMDI0YTguODkgOC44OSAwIDAgMCAuMTQ2IDEuNjUybDIuNTM1LS41ODVhNC4xMDYgNC4xMDYgMCAwIDEtLjAwNC0uMDIyelwiLFxuICAgIGZpbGw6IFwidXJsKCNtZXRhX3N2Z19fZSlcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk0zLjI3IDE2Ljg5Yy0uMjg0LS4zMS0uNDg0LS43NTYtLjU4OS0xLjMyOGwtLjAwNC0uMDIxLTIuNTM1LjU4NS4wMDQuMDIxYy4xOTIgMS4wMS41NjggMS44NSAxLjEwNiAyLjQ4N2wuMDE0LjAxNyAyLjAxOC0xLjc0NWEyLjEwNiAyLjEwNiAwIDAgMS0uMDE1LS4wMTZ6XCIsXG4gICAgZmlsbDogXCJ1cmwoI21ldGFfc3ZnX19mKVwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTEwLjc4IDkuNjU0Yy0xLjUyOCAyLjM1LTIuNDU0IDMuODI1LTIuNDU0IDMuODI1LTIuMDM1IDMuMi0yLjczOSAzLjkxNy0zLjg3MSAzLjkxN2ExLjU0NSAxLjU0NSAwIDAgMS0xLjE4Ni0uNTA4bC0yLjAxNyAxLjc0NC4wMTQuMDE3QzIuMDEgMTkuNTE4IDMuMDU4IDIwIDQuMzU2IDIwYzEuOTYzIDAgMy4zNzQtLjkyOCA1Ljg4NC01LjMzbDEuNzY2LTMuMTNhNDEuMjgzIDQxLjI4MyAwIDAgMC0xLjIyNy0xLjg4NnpcIixcbiAgICBmaWxsOiBcIiMwMDgyRkJcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIm0xMy41MDIgNS45NDYtLjAxNi4wMTZjLS40LjQzLS43ODYuOTA4LTEuMTYgMS40MTYuMzc4LjQ4My43NjggMS4wMjQgMS4xNzUgMS42My40OC0uNzQzLjkyOC0xLjM0NSAxLjM2Ny0xLjgwN2wuMDE2LS4wMTYtMS4zODItMS4yNHpcIixcbiAgICBmaWxsOiBcInVybCgjbWV0YV9zdmdfX2cpXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZDogXCJNMjAuOTE4IDUuNzEzQzE5Ljg1MyA0LjYzMyAxOC41ODMgNCAxNy4yMjUgNGMtMS40MzIgMC0yLjYzNy43ODctMy43MjMgMS45NDRsLS4wMTYuMDE2IDEuMzgyIDEuMjQuMDE2LS4wMTdjLjcxNS0uNzQ3IDEuNDA4LTEuMTIgMi4xNzYtMS4xMi44MjYgMCAxLjYuMzkgMi4yNyAxLjA3NWwuMDE1LjAxNiAxLjU4OS0xLjQyNS0uMDE2LS4wMTZ6XCIsXG4gICAgZmlsbDogXCIjMDA4MkZCXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZDogXCJNMjMuOTk4IDE0LjEyNWMtLjA2LTMuNDY3LTEuMjctNi41NjYtMy4wNjQtOC4zOTZsLS4wMTYtLjAxNi0xLjU4OCAxLjQyNC4wMTUuMDE2YzEuMzUgMS4zOTIgMi4yNzcgMy45OCAyLjM2MSA2Ljk3MXYuMDIzaDIuMjkydi0uMDIyelwiLFxuICAgIGZpbGw6IFwidXJsKCNtZXRhX3N2Z19faClcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk0yMy45OTggMTQuMTV2LS4wMjNoLTIuMjkydi4wMjJjLjAwNC4xNC4wMDYuMjgyLjAwNi40MjQgMCAuODE1LS4xMjEgMS40NzQtLjM2OCAxLjk1bC0uMDExLjAyMiAxLjcwOCAxLjc4Mi4wMTMtLjAyYy42Mi0uOTYuOTQ2LTIuMjkzLjk0Ni0zLjkxIDAtLjA4MyAwLS4xNjUtLjAwMi0uMjQ3elwiLFxuICAgIGZpbGw6IFwidXJsKCNtZXRhX3N2Z19faSlcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIm0yMS4zNDQgMTYuNTItLjAxMS4wMmMtLjIxNC40MDItLjUxOS42Ny0uOTE3Ljc4N2wuNzc4IDIuNDYyYTMuNDkzIDMuNDkzIDAgMCAwIC40MzgtLjE4MiAzLjU1OCAzLjU1OCAwIDAgMCAxLjM2Ni0xLjIxOGwuMDQ0LS4wNjUuMDEyLS4wMi0xLjcxLTEuNzg0elwiLFxuICAgIGZpbGw6IFwidXJsKCNtZXRhX3N2Z19failcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk0xOS45MiAxNy4zOTNjLS4yNjIgMC0uNDkyLS4wMzktLjcxOC0uMTRsLS43OTggMi41MjJjLjQ0OS4xNTMuOTI3LjIyMiAxLjQ2LjIyMmE0LjEgNC4xIDAgMCAwIDEuMzUyLS4yMTVsLS43OC0yLjQ2MmMtLjE2Ny4wNS0uMzQxLjA3NS0uNTE3LjA3M3pcIixcbiAgICBmaWxsOiBcInVybCgjbWV0YV9zdmdfX2spXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZDogXCJtMTguMzIzIDE2LjUzNC0uMDE0LS4wMTctMS44MzYgMS45MTQuMDE2LjAxN2MuNjM3LjY4MiAxLjI0NiAxLjEwNSAxLjkzNyAxLjMzN2wuNzk3LTIuNTJjLS4yOTEtLjEyNS0uNTczLS4zNTMtLjktLjczMXpcIixcbiAgICBmaWxsOiBcInVybCgjbWV0YV9zdmdfX2wpXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZDogXCJNMTguMzA5IDE2LjUxNWMtLjU1LS42NDItMS4yMzItMS43MTItMi4zMDMtMy40NGwtMS4zOTYtMi4zMzYtLjAxMS0uMDItMS42MiAyLjQzOC4wMTIuMDIuOTg5IDEuNjY4Yy45NTkgMS42MSAxLjc0IDIuNzc0IDIuNDkzIDMuNTg1bC4wMTYuMDE2IDEuODM0LTEuOTE0YTIuMzUzIDIuMzUzIDAgMCAxLS4wMTQtLjAxN3pcIixcbiAgICBmaWxsOiBcInVybCgjbWV0YV9zdmdfX20pXCJcbiAgfSkpKSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IFN2Z01ldGE7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/llm-icons/meta.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/llm-icons/mistral.svg":
|
|
|
/*!*****************************************!*\
|
|
|
!*** ./app/icons/llm-icons/mistral.svg ***!
|
|
|
\*****************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _rect, _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgMistral = function SvgMistral(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n height: \"1em\",\n style: {\n flex: \"none\",\n lineHeight: 1\n },\n viewBox: \"0 0 30 30\",\n width: \"1em\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _rect || (_rect = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"rect\", {\n width: 30,\n height: 30,\n fill: \"#E7F8FF\",\n rx: 6\n })), _g || (_g = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n fill: \"none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M18 9v4h-2V9h2zm4-4v4h-2V5h2zM6 5H4h2zM4 5h2v20H4V5zm8 12h2v4h-2v-4zm8 0h2v8h-2v-8z\",\n fill: \"#000\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M22 5h4v4h-4V5zM6 5h4v4H6V5z\",\n fill: \"#F7D046\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M18 13V9h8v4h-8zM6 13V9h8v4H6z\",\n fill: \"#F2A73B\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M6 17v-4h20v4z\",\n fill: \"#EE792F\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M14 17h4v4h-4v-4zm8 0h4v4h-4v-4zM6 17h4v4H6v-4z\",\n fill: \"#EB5829\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M22 21h4v4h-4v-4zM6 21h4v4H6v-4z\",\n fill: \"#EA3326\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgMistral);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvbGxtLWljb25zL21pc3RyYWwuc3ZnIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0Esc0JBQXNCLHNFQUFzRSxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjtBQUMzUTtBQUMvQjtBQUNBLHNCQUFzQixnREFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsR0FBRyx5Q0FBeUMsZ0RBQW1CO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyw2QkFBNkIsZ0RBQW1CO0FBQ25EO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlFQUFlLFVBQVUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9pY29ucy9sbG0taWNvbnMvbWlzdHJhbC5zdmc/YmRiOCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX3JlY3QsIF9nO1xuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiA/IE9iamVjdC5hc3NpZ24uYmluZCgpIDogZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbnZhciBTdmdNaXN0cmFsID0gZnVuY3Rpb24gU3ZnTWlzdHJhbChwcm9wcykge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX2V4dGVuZHMoe1xuICAgIGhlaWdodDogXCIxZW1cIixcbiAgICBzdHlsZToge1xuICAgICAgZmxleDogXCJub25lXCIsXG4gICAgICBsaW5lSGVpZ2h0OiAxXG4gICAgfSxcbiAgICB2aWV3Qm94OiBcIjAgMCAzMCAzMFwiLFxuICAgIHdpZHRoOiBcIjFlbVwiLFxuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgfSwgcHJvcHMpLCBfcmVjdCB8fCAoX3JlY3QgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInJlY3RcIiwge1xuICAgIHdpZHRoOiAzMCxcbiAgICBoZWlnaHQ6IDMwLFxuICAgIGZpbGw6IFwiI0U3RjhGRlwiLFxuICAgIHJ4OiA2XG4gIH0pKSwgX2cgfHwgKF9nID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICBmaWxsOiBcIm5vbmVcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTE4IDl2NGgtMlY5aDJ6bTQtNHY0aC0yVjVoMnpNNiA1SDRoMnpNNCA1aDJ2MjBINFY1em04IDEyaDJ2NGgtMnYtNHptOCAwaDJ2OGgtMnYtOHpcIixcbiAgICBmaWxsOiBcIiMwMDBcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk0yMiA1aDR2NGgtNFY1ek02IDVoNHY0SDZWNXpcIixcbiAgICBmaWxsOiBcIiNGN0QwNDZcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk0xOCAxM1Y5aDh2NGgtOHpNNiAxM1Y5aDh2NEg2elwiLFxuICAgIGZpbGw6IFwiI0YyQTczQlwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTYgMTd2LTRoMjB2NHpcIixcbiAgICBmaWxsOiBcIiNFRTc5MkZcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk0xNCAxN2g0djRoLTR2LTR6bTggMGg0djRoLTR2LTR6TTYgMTdoNHY0SDZ2LTR6XCIsXG4gICAgZmlsbDogXCIjRUI1ODI5XCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZDogXCJNMjIgMjFoNHY0aC00di00ek02IDIxaDR2NEg2di00elwiLFxuICAgIGZpbGw6IFwiI0VBMzMyNlwiXG4gIH0pKSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IFN2Z01pc3RyYWw7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/llm-icons/mistral.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/llm-icons/moonshot.svg":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./app/icons/llm-icons/moonshot.svg ***!
|
|
|
\******************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgMoonshot = function SvgMoonshot(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n fill: \"#333\",\n fillRule: \"evenodd\",\n height: \"1em\",\n style: {\n flex: \"none\",\n lineHeight: 1\n },\n viewBox: \"0 0 30 30\",\n width: \"1em\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _rect || (_rect = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"rect\", {\n width: 30,\n height: 30,\n fill: \"#E7F8FF\",\n rx: 6\n })), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"m4.052 19.916 9.539 2.552a21.007 21.007 0 0 0 .06 2.033l5.956 1.593a11.997 11.997 0 0 1-5.586.865l-.18-.016-.044-.004-.084-.009-.094-.01a11.605 11.605 0 0 1-.157-.02l-.107-.014-.11-.016a11.962 11.962 0 0 1-.32-.051l-.042-.008-.075-.013-.107-.02-.07-.015-.093-.019-.075-.016-.095-.02-.097-.023-.094-.022-.068-.017-.088-.022-.09-.024-.095-.025-.082-.023-.109-.03-.062-.02-.084-.025-.093-.028-.105-.034-.058-.019-.08-.026-.09-.031-.066-.024a6.293 6.293 0 0 1-.044-.015l-.068-.025-.101-.037-.057-.022-.08-.03-.087-.035-.088-.035-.079-.032-.095-.04-.063-.028-.063-.027a5.655 5.655 0 0 1-.041-.018l-.066-.03-.103-.047-.052-.024-.096-.046-.062-.03-.084-.04-.086-.044-.093-.047-.052-.027-.103-.055-.057-.03-.058-.032a6.49 6.49 0 0 1-.046-.026l-.094-.053-.06-.034-.051-.03-.072-.041-.082-.05-.093-.056-.052-.032-.084-.053-.061-.039-.079-.05-.07-.047-.053-.035a7.785 7.785 0 0 1-.054-.036l-.044-.03-.044-.03a6.066 6.066 0 0 1-.04-.028l-.057-.04-.076-.054-.069-.05-.074-.054-.056-.042-.076-.057-.076-.059-.086-.067-.045-.035-.064-.052-.074-.06-.089-.073-.046-.039-.046-.039a7.516 7.516 0 0 1-.043-.037l-.045-.04-.061-.053-.07-.062-.068-.06-.062-.058-.067-.062-.053-.05-.088-.084a13.28 13.28 0 0 1-.099-.097l-.029-.028-.041-.042-.069-.07-.05-.051-.05-.053a6.457 6.457 0 0 1-.168-.179l-.08-.088-.062-.07-.071-.08-.042-.049-.053-.062-.058-.068-.046-.056a7.175 7.175 0 0 1-.027-.033l-.045-.055-.066-.082-.041-.052-.05-.064-.02-.025a11.99 11.99 0 0 1-1.44-2.402zm-1.02-5.794 11.353 3.037a20.468 20.468 0 0 0-.469 2.011l10.817 2.894a12.076 12.076 0 0 1-1.845 2.005L3.657 18.923l-.016-.046-.035-.104a11.965 11.965 0 0 1-.05-.153l-.007-.023a11.896 11.896 0 0 1-.207-.741l-.03-.126-.018-.08-.021-.097-.018-.081-.018-.09-.017-.084-.018-.094c-.026-.141-.05-.283-.071-.426l-.017-.118-.011-.083-.013-.102a12.01 12.01 0 0 1-.019-.161l-.005-.047a12.12 12.12 0 0 1-.034-2.145zm1.593-5.15 11.948 3.196a20.456 20.456 0 0 0-1.01 1.875l11.295 3.022c-.142.82-.368 1.612-.668 2.365l-11.55-3.09-11.516-3.08.015-.1.008-.049.01-.067.015-.087.018-.098c.026-.148.056-.295.088-.442l.028-.124.02-.085.024-.097c.022-.09.045-.18.07-.268l.028-.102.023-.083.03-.1.025-.082.03-.096.026-.082.031-.095a11.896 11.896 0 0 1 1.01-2.232zm4.442-4.4L20.352 7.59a20.77 20.77 0 0 0-1.688 1.721l7.823 2.093c.267.852.442 1.744.513 2.665L5.106 8.213l.045-.065.027-.04.04-.055.046-.065.055-.076.054-.072.064-.086.05-.065.057-.073.055-.07.06-.074.055-.069.065-.077.054-.066.066-.077.053-.06.072-.082.053-.06.067-.074.054-.058.073-.078.058-.06.063-.067.168-.17.1-.098.059-.056.076-.071a12.084 12.084 0 0 1 2.272-1.677zM15.017 3h.097l.082.001.069.001.054.002.068.002.046.001.076.003.047.002.06.003.054.002.087.005.105.007.144.011.088.007.044.004.077.008.082.008.047.005.102.012.05.006.108.014.081.01.042.006.065.01.207.032.07.012.065.011.14.026.092.018.11.022.046.01.075.016.041.01.062.013.042.01.065.015.049.012.071.017.096.024.112.03.113.03.113.032.05.015.07.02.078.024.073.023.05.016.05.016.076.025.099.033.102.036.048.017.064.023.093.034.11.041.116.045.1.04.047.02.06.024.041.018.063.026.04.018.057.025.11.048.1.046.074.035.075.036.06.028.092.046.091.045.102.052.053.028.049.026.046.024.06.033.041.022.052.029.088.05.106.06.087.051.057.034.053.032.096.059.088.055.098.062.036.024.064.041.084.056.04.027.062.042.062.043.023.017c.054.037.108.075.161.114l.083.06.065.048.056.043.086.065.082.064.04.03.05.041.086.069.079.065.085.071c.712.6 1.353 1.283 1.909 2.031L10.222 3.994l.062-.027.065-.028.081-.034.086-.035c.113-.045.227-.09.341-.131l.096-.035.093-.033.084-.03.096-.031a8.11 8.11 0 0 1 .264-.085l.091-.027.086-.025.102-.03.085-.023.1-.026.086-.024.09-.023.091-.022.095-.022.09-.02.098-.021.091-.02.095-.018.092-.018.1-.018.091-.016.098-.017.092-.014.097-.015.092-.013.102-.013.091-.012.105-.012.09-.01.105-.01c.093-.01.186-.018.28-.024l.106-.008.09-.005.11-.006.093-.004.1-.004.097-.002.099-.002.197-.002z\"\n })));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgMoonshot);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvbGxtLWljb25zL21vb25zaG90LnN2ZyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBLHNCQUFzQixzRUFBc0UsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQyxrQkFBa0I7QUFDM1E7QUFDL0I7QUFDQSxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxHQUFHLHlDQUF5QyxnREFBbUI7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLG1DQUFtQyxnREFBbUI7QUFDekQ7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpRUFBZSxXQUFXIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvaWNvbnMvbGxtLWljb25zL21vb25zaG90LnN2Zz9lNDJjIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfcmVjdCwgX3BhdGg7XG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xudmFyIFN2Z01vb25zaG90ID0gZnVuY3Rpb24gU3ZnTW9vbnNob3QocHJvcHMpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIF9leHRlbmRzKHtcbiAgICBmaWxsOiBcIiMzMzNcIixcbiAgICBmaWxsUnVsZTogXCJldmVub2RkXCIsXG4gICAgaGVpZ2h0OiBcIjFlbVwiLFxuICAgIHN0eWxlOiB7XG4gICAgICBmbGV4OiBcIm5vbmVcIixcbiAgICAgIGxpbmVIZWlnaHQ6IDFcbiAgICB9LFxuICAgIHZpZXdCb3g6IFwiMCAwIDMwIDMwXCIsXG4gICAgd2lkdGg6IFwiMWVtXCIsXG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICB9LCBwcm9wcyksIF9yZWN0IHx8IChfcmVjdCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicmVjdFwiLCB7XG4gICAgd2lkdGg6IDMwLFxuICAgIGhlaWdodDogMzAsXG4gICAgZmlsbDogXCIjRTdGOEZGXCIsXG4gICAgcng6IDZcbiAgfSkpLCBfcGF0aCB8fCAoX3BhdGggPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwibTQuMDUyIDE5LjkxNiA5LjUzOSAyLjU1MmEyMS4wMDcgMjEuMDA3IDAgMCAwIC4wNiAyLjAzM2w1Ljk1NiAxLjU5M2ExMS45OTcgMTEuOTk3IDAgMCAxLTUuNTg2Ljg2NWwtLjE4LS4wMTYtLjA0NC0uMDA0LS4wODQtLjAwOS0uMDk0LS4wMWExMS42MDUgMTEuNjA1IDAgMCAxLS4xNTctLjAybC0uMTA3LS4wMTQtLjExLS4wMTZhMTEuOTYyIDExLjk2MiAwIDAgMS0uMzItLjA1MWwtLjA0Mi0uMDA4LS4wNzUtLjAxMy0uMTA3LS4wMi0uMDctLjAxNS0uMDkzLS4wMTktLjA3NS0uMDE2LS4wOTUtLjAyLS4wOTctLjAyMy0uMDk0LS4wMjItLjA2OC0uMDE3LS4wODgtLjAyMi0uMDktLjAyNC0uMDk1LS4wMjUtLjA4Mi0uMDIzLS4xMDktLjAzLS4wNjItLjAyLS4wODQtLjAyNS0uMDkzLS4wMjgtLjEwNS0uMDM0LS4wNTgtLjAxOS0uMDgtLjAyNi0uMDktLjAzMS0uMDY2LS4wMjRhNi4yOTMgNi4yOTMgMCAwIDEtLjA0NC0uMDE1bC0uMDY4LS4wMjUtLjEwMS0uMDM3LS4wNTctLjAyMi0uMDgtLjAzLS4wODctLjAzNS0uMDg4LS4wMzUtLjA3OS0uMDMyLS4wOTUtLjA0LS4wNjMtLjAyOC0uMDYzLS4wMjdhNS42NTUgNS42NTUgMCAwIDEtLjA0MS0uMDE4bC0uMDY2LS4wMy0uMTAzLS4wNDctLjA1Mi0uMDI0LS4wOTYtLjA0Ni0uMDYyLS4wMy0uMDg0LS4wNC0uMDg2LS4wNDQtLjA5My0uMDQ3LS4wNTItLjAyNy0uMTAzLS4wNTUtLjA1Ny0uMDMtLjA1OC0uMDMyYTYuNDkgNi40OSAwIDAgMS0uMDQ2LS4wMjZsLS4wOTQtLjA1My0uMDYtLjAzNC0uMDUxLS4wMy0uMDcyLS4wNDEtLjA4Mi0uMDUtLjA5My0uMDU2LS4wNTItLjAzMi0uMDg0LS4wNTMtLjA2MS0uMDM5LS4wNzktLjA1LS4wNy0uMDQ3LS4wNTMtLjAzNWE3Ljc4NSA3Ljc4NSAwIDAgMS0uMDU0LS4wMzZsLS4wNDQtLjAzLS4wNDQtLjAzYTYuMDY2IDYuMDY2IDAgMCAxLS4wNC0uMDI4bC0uMDU3LS4wNC0uMDc2LS4wNTQtLjA2OS0uMDUtLjA3NC0uMDU0LS4wNTYtLjA0Mi0uMDc2LS4wNTctLjA3Ni0uMDU5LS4wODYtLjA2Ny0uMDQ1LS4wMzUtLjA2NC0uMDUyLS4wNzQtLjA2LS4wODktLjA3My0uMDQ2LS4wMzktLjA0Ni0uMDM5YTcuNTE2IDcuNTE2IDAgMCAxLS4wNDMtLjAzN2wtLjA0NS0uMDQtLjA2MS0uMDUzLS4wNy0uMDYyLS4wNjgtLjA2LS4wNjItLjA1OC0uMDY3LS4wNjItLjA1My0uMDUtLjA4OC0uMDg0YTEzLjI4IDEzLjI4IDAgMCAxLS4wOTktLjA5N2wtLjAyOS0uMDI4LS4wNDEtLjA0Mi0uMDY5LS4wNy0uMDUtLjA1MS0uMDUtLjA1M2E2LjQ1NyA2LjQ1NyAwIDAgMS0uMTY4LS4xNzlsLS4wOC0uMDg4LS4wNjItLjA3LS4wNzEtLjA4LS4wNDItLjA0OS0uMDUzLS4wNjItLjA1OC0uMDY4LS4wNDYtLjA1NmE3LjE3NSA3LjE3NSAwIDAgMS0uMDI3LS4wMzNsLS4wNDUtLjA1NS0uMDY2LS4wODItLjA0MS0uMDUyLS4wNS0uMDY0LS4wMi0uMDI1YTExLjk5IDExLjk5IDAgMCAxLTEuNDQtMi40MDJ6bS0xLjAyLTUuNzk0IDExLjM1MyAzLjAzN2EyMC40NjggMjAuNDY4IDAgMCAwLS40NjkgMi4wMTFsMTAuODE3IDIuODk0YTEyLjA3NiAxMi4wNzYgMCAwIDEtMS44NDUgMi4wMDVMMy42NTcgMTguOTIzbC0uMDE2LS4wNDYtLjAzNS0uMTA0YTExLjk2NSAxMS45NjUgMCAwIDEtLjA1LS4xNTNsLS4wMDctLjAyM2ExMS44OTYgMTEuODk2IDAgMCAxLS4yMDctLjc0MWwtLjAzLS4xMjYtLjAxOC0uMDgtLjAyMS0uMDk3LS4wMTgtLjA4MS0uMDE4LS4wOS0uMDE3LS4wODQtLjAxOC0uMDk0Yy0uMDI2LS4xNDEtLjA1LS4yODMtLjA3MS0uNDI2bC0uMDE3LS4xMTgtLjAxMS0uMDgzLS4wMTMtLjEwMmExMi4wMSAxMi4wMSAwIDAgMS0uMDE5LS4xNjFsLS4wMDUtLjA0N2ExMi4xMiAxMi4xMiAwIDAgMS0uMDM0LTIuMTQ1em0xLjU5My01LjE1IDExLjk0OCAzLjE5NmEyMC40NTYgMjAuNDU2IDAgMCAwLTEuMDEgMS44NzVsMTEuMjk1IDMuMDIyYy0uMTQyLjgyLS4zNjggMS42MTItLjY2OCAyLjM2NWwtMTEuNTUtMy4wOS0xMS41MTYtMy4wOC4wMTUtLjEuMDA4LS4wNDkuMDEtLjA2Ny4wMTUtLjA4Ny4wMTgtLjA5OGMuMDI2LS4xNDguMDU2LS4yOTUuMDg4LS40NDJsLjAyOC0uMTI0LjAyLS4wODUuMDI0LS4wOTdjLjAyMi0uMDkuMDQ1LS4xOC4wNy0uMjY4bC4wMjgtLjEwMi4wMjMtLjA4My4wMy0uMS4wMjUtLjA4Mi4wMy0uMDk2LjAyNi0uMDgyLjAzMS0uMDk1YTExLjg5NiAxMS44OTYgMCAwIDEgMS4wMS0yLjIzMnptNC40NDItNC40TDIwLjM1MiA3LjU5YTIwLjc3IDIwLjc3IDAgMCAwLTEuNjg4IDEuNzIxbDcuODIzIDIuMDkzYy4yNjcuODUyLjQ0MiAxLjc0NC41MTMgMi42NjVMNS4xMDYgOC4yMTNsLjA0NS0uMDY1LjAyNy0uMDQuMDQtLjA1NS4wNDYtLjA2NS4wNTUtLjA3Ni4wNTQtLjA3Mi4wNjQtLjA4Ni4wNS0uMDY1LjA1Ny0uMDczLjA1NS0uMDcuMDYtLjA3NC4wNTUtLjA2OS4wNjUtLjA3Ny4wNTQtLjA2Ni4wNjYtLjA3Ny4wNTMtLjA2LjA3Mi0uMDgyLjA1My0uMDYuMDY3LS4wNzQuMDU0LS4wNTguMDczLS4wNzguMDU4LS4wNi4wNjMtLjA2Ny4xNjgtLjE3LjEtLjA5OC4wNTktLjA1Ni4wNzYtLjA3MWExMi4wODQgMTIuMDg0IDAgMCAxIDIuMjcyLTEuNjc3ek0xNS4wMTcgM2guMDk3bC4wODIuMDAxLjA2OS4wMDEuMDU0LjAwMi4wNjguMDAyLjA0Ni4wMDEuMDc2LjAwMy4wNDcuMDAyLjA2LjAwMy4wNTQuMDAyLjA4Ny4wMDUuMTA1LjAwNy4xNDQuMDExLjA4OC4wMDcuMDQ0LjAwNC4wNzcuMDA4LjA4Mi4wMDguMDQ3LjAwNS4xMDIuMDEyLjA1LjAwNi4xMDguMDE0LjA4MS4wMS4wNDIuMDA2LjA2NS4wMS4yMDcuMDMyLjA3LjAxMi4wNjUuMDExLjE0LjAyNi4wOTIuMDE4LjExLjAyMi4wNDYuMDEuMDc1LjAxNi4wNDEuMDEuMDYyLjAxMy4wNDIuMDEuMDY1LjAxNS4wNDkuMDEyLjA3MS4wMTcuMDk2LjAyNC4xMTIuMDMuMTEzLjAzLjExMy4wMzIuMDUuMDE1LjA3LjAyLjA3OC4wMjQuMDczLjAyMy4wNS4wMTYuMDUuMDE2LjA3Ni4wMjUuMDk5LjAzMy4xMDIuMDM2LjA0OC4wMTcuMDY0LjAyMy4wOTMuMDM0LjExLjA0MS4xMTYuMDQ1LjEuMDQuMDQ3LjAyLjA2LjAyNC4wNDEuMDE4LjA2My4wMjYuMDQuMDE4LjA1Ny4wMjUuMTEuMDQ4LjEuMDQ2LjA3NC4wMzUuMDc1LjAzNi4wNi4wMjguMDkyLjA0Ni4wOTEuMDQ1LjEwMi4wNTIuMDUzLjAyOC4wNDkuMDI2LjA0Ni4wMjQuMDYuMDMzLjA0MS4wMjIuMDUyLjAyOS4wODguMDUuMTA2LjA2LjA4Ny4wNTEuMDU3LjAzNC4wNTMuMDMyLjA5Ni4wNTkuMDg4LjA1NS4wOTguMDYyLjAzNi4wMjQuMDY0LjA0MS4wODQuMDU2LjA0LjAyNy4wNjIuMDQyLjA2Mi4wNDMuMDIzLjAxN2MuMDU0LjAzNy4xMDguMDc1LjE2MS4xMTRsLjA4My4wNi4wNjUuMDQ4LjA1Ni4wNDMuMDg2LjA2NS4wODIuMDY0LjA0LjAzLjA1LjA0MS4wODYuMDY5LjA3OS4wNjUuMDg1LjA3MWMuNzEyLjYgMS4zNTMgMS4yODMgMS45MDkgMi4wMzFMMTAuMjIyIDMuOTk0bC4wNjItLjAyNy4wNjUtLjAyOC4wODEtLjAzNC4wODYtLjAzNWMuMTEzLS4wNDUuMjI3LS4wOS4zNDEtLjEzMWwuMDk2LS4wMzUuMDkzLS4wMzMuMDg0LS4wMy4wOTYtLjAzMWE4LjExIDguMTEgMCAwIDEgLjI2NC0uMDg1bC4wOTEtLjAyNy4wODYtLjAyNS4xMDItLjAzLjA4NS0uMDIzLjEtLjAyNi4wODYtLjAyNC4wOS0uMDIzLjA5MS0uMDIyLjA5NS0uMDIyLjA5LS4wMi4wOTgtLjAyMS4wOTEtLjAyLjA5NS0uMDE4LjA5Mi0uMDE4LjEtLjAxOC4wOTEtLjAxNi4wOTgtLjAxNy4wOTItLjAxNC4wOTctLjAxNS4wOTItLjAxMy4xMDItLjAxMy4wOTEtLjAxMi4xMDUtLjAxMi4wOS0uMDEuMTA1LS4wMWMuMDkzLS4wMS4xODYtLjAxOC4yOC0uMDI0bC4xMDYtLjAwOC4wOS0uMDA1LjExLS4wMDYuMDkzLS4wMDQuMS0uMDA0LjA5Ny0uMDAyLjA5OS0uMDAyLjE5Ny0uMDAyelwiXG4gIH0pKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgU3ZnTW9vbnNob3Q7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/llm-icons/moonshot.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/llm-icons/openai.svg":
|
|
|
/*!****************************************!*\
|
|
|
!*** ./app/icons/llm-icons/openai.svg ***!
|
|
|
\****************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgOpenai = function SvgOpenai(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n fill: \"#333\",\n fillRule: \"evenodd\",\n height: \"1em\",\n style: {\n flex: \"none\",\n lineHeight: 1\n },\n viewBox: \"0 0 30 30\",\n width: \"1em\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _rect || (_rect = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"rect\", {\n width: 30,\n height: 30,\n fill: \"#E7F8FF\",\n rx: 6\n })), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M24.55 13.004a5.416 5.416 0 0 0-.478-4.501c-1.217-2.09-3.662-3.166-6.05-2.66A5.59 5.59 0 0 0 13.831 4c-2.441-.005-4.607 1.546-5.358 3.838a5.553 5.553 0 0 0-3.713 2.658 5.487 5.487 0 0 0 .691 6.5 5.416 5.416 0 0 0 .477 4.502c1.217 2.09 3.662 3.165 6.05 2.66A5.586 5.586 0 0 0 16.168 26c2.443.006 4.61-1.546 5.361-3.84a5.553 5.553 0 0 0 3.715-2.66 5.488 5.488 0 0 0-.693-6.497v.001zm-8.381 11.558a4.199 4.199 0 0 1-2.675-.954c.034-.018.093-.05.132-.074l4.44-2.53a.71.71 0 0 0 .364-.623v-6.176l1.877 1.069c.02.01.033.029.036.05v5.115c-.003 2.274-1.87 4.118-4.174 4.123zM7.192 20.78a4.059 4.059 0 0 1-.498-2.763c.032.02.09.055.131.078l4.44 2.53c.225.13.504.13.73 0l5.42-3.088v2.138a.068.068 0 0 1-.027.057L12.9 22.288c-1.999 1.136-4.552.46-5.707-1.51h-.001zm-1.169-9.564A4.15 4.15 0 0 1 8.198 9.41l-.002.151v5.06a.711.711 0 0 0 .364.624l5.42 3.087-1.876 1.07a.067.067 0 0 1-.063.005l-4.489-2.559c-1.995-1.14-2.679-3.658-1.53-5.63h.001zm15.417 3.54-5.42-3.088 1.876-1.068a.067.067 0 0 1 .063-.006l4.489 2.557c1.998 1.14 2.683 3.662 1.529 5.633a4.163 4.163 0 0 1-2.174 1.807V15.38a.71.71 0 0 0-.363-.623zm1.867-2.773a6.04 6.04 0 0 0-.132-.078l-4.44-2.53a.731.731 0 0 0-.729 0l-5.42 3.088v-2.138a.068.068 0 0 1 .027-.057L17.1 7.713c2-1.137 4.555-.46 5.707 1.513.487.833.664 1.809.499 2.757h.001zm-11.741 3.81-1.877-1.068a.065.065 0 0 1-.036-.051V9.559c.001-2.277 1.873-4.122 4.181-4.12.976 0 1.92.338 2.671.954-.034.018-.092.05-.131.073l-4.44 2.53a.71.71 0 0 0-.365.623l-.003 6.173v.002zm1.02-2.168L15 12.25l2.414 1.375v2.75L15 17.75l-2.415-1.375v-2.75z\"\n })));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgOpenai);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvbGxtLWljb25zL29wZW5haS5zdmciLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQSxzQkFBc0Isc0VBQXNFLGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUMsa0JBQWtCO0FBQzNRO0FBQy9CO0FBQ0Esc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsR0FBRyx5Q0FBeUMsZ0RBQW1CO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxtQ0FBbUMsZ0RBQW1CO0FBQ3pEO0FBQ0EsR0FBRztBQUNIO0FBQ0EsaUVBQWUsU0FBUyIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2ljb25zL2xsbS1pY29ucy9vcGVuYWkuc3ZnPzAyYTEiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9yZWN0LCBfcGF0aDtcbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gPyBPYmplY3QuYXNzaWduLmJpbmQoKSA6IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG52YXIgU3ZnT3BlbmFpID0gZnVuY3Rpb24gU3ZnT3BlbmFpKHByb3BzKSB7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCBfZXh0ZW5kcyh7XG4gICAgZmlsbDogXCIjMzMzXCIsXG4gICAgZmlsbFJ1bGU6IFwiZXZlbm9kZFwiLFxuICAgIGhlaWdodDogXCIxZW1cIixcbiAgICBzdHlsZToge1xuICAgICAgZmxleDogXCJub25lXCIsXG4gICAgICBsaW5lSGVpZ2h0OiAxXG4gICAgfSxcbiAgICB2aWV3Qm94OiBcIjAgMCAzMCAzMFwiLFxuICAgIHdpZHRoOiBcIjFlbVwiLFxuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgfSwgcHJvcHMpLCBfcmVjdCB8fCAoX3JlY3QgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInJlY3RcIiwge1xuICAgIHdpZHRoOiAzMCxcbiAgICBoZWlnaHQ6IDMwLFxuICAgIGZpbGw6IFwiI0U3RjhGRlwiLFxuICAgIHJ4OiA2XG4gIH0pKSwgX3BhdGggfHwgKF9wYXRoID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk0yNC41NSAxMy4wMDRhNS40MTYgNS40MTYgMCAwIDAtLjQ3OC00LjUwMWMtMS4yMTctMi4wOS0zLjY2Mi0zLjE2Ni02LjA1LTIuNjZBNS41OSA1LjU5IDAgMCAwIDEzLjgzMSA0Yy0yLjQ0MS0uMDA1LTQuNjA3IDEuNTQ2LTUuMzU4IDMuODM4YTUuNTUzIDUuNTUzIDAgMCAwLTMuNzEzIDIuNjU4IDUuNDg3IDUuNDg3IDAgMCAwIC42OTEgNi41IDUuNDE2IDUuNDE2IDAgMCAwIC40NzcgNC41MDJjMS4yMTcgMi4wOSAzLjY2MiAzLjE2NSA2LjA1IDIuNjZBNS41ODYgNS41ODYgMCAwIDAgMTYuMTY4IDI2YzIuNDQzLjAwNiA0LjYxLTEuNTQ2IDUuMzYxLTMuODRhNS41NTMgNS41NTMgMCAwIDAgMy43MTUtMi42NiA1LjQ4OCA1LjQ4OCAwIDAgMC0uNjkzLTYuNDk3di4wMDF6bS04LjM4MSAxMS41NThhNC4xOTkgNC4xOTkgMCAwIDEtMi42NzUtLjk1NGMuMDM0LS4wMTguMDkzLS4wNS4xMzItLjA3NGw0LjQ0LTIuNTNhLjcxLjcxIDAgMCAwIC4zNjQtLjYyM3YtNi4xNzZsMS44NzcgMS4wNjljLjAyLjAxLjAzMy4wMjkuMDM2LjA1djUuMTE1Yy0uMDAzIDIuMjc0LTEuODcgNC4xMTgtNC4xNzQgNC4xMjN6TTcuMTkyIDIwLjc4YTQuMDU5IDQuMDU5IDAgMCAxLS40OTgtMi43NjNjLjAzMi4wMi4wOS4wNTUuMTMxLjA3OGw0LjQ0IDIuNTNjLjIyNS4xMy41MDQuMTMuNzMgMGw1LjQyLTMuMDg4djIuMTM4YS4wNjguMDY4IDAgMCAxLS4wMjcuMDU3TDEyLjkgMjIuMjg4Yy0xLjk5OSAxLjEzNi00LjU1Mi40Ni01LjcwNy0xLjUxaC0uMDAxem0tMS4xNjktOS41NjRBNC4xNSA0LjE1IDAgMCAxIDguMTk4IDkuNDFsLS4wMDIuMTUxdjUuMDZhLjcxMS43MTEgMCAwIDAgLjM2NC42MjRsNS40MiAzLjA4Ny0xLjg3NiAxLjA3YS4wNjcuMDY3IDAgMCAxLS4wNjMuMDA1bC00LjQ4OS0yLjU1OWMtMS45OTUtMS4xNC0yLjY3OS0zLjY1OC0xLjUzLTUuNjNoLjAwMXptMTUuNDE3IDMuNTQtNS40Mi0zLjA4OCAxLjg3Ni0xLjA2OGEuMDY3LjA2NyAwIDAgMSAuMDYzLS4wMDZsNC40ODkgMi41NTdjMS45OTggMS4xNCAyLjY4MyAzLjY2MiAxLjUyOSA1LjYzM2E0LjE2MyA0LjE2MyAwIDAgMS0yLjE3NCAxLjgwN1YxNS4zOGEuNzEuNzEgMCAwIDAtLjM2My0uNjIzem0xLjg2Ny0yLjc3M2E2LjA0IDYuMDQgMCAwIDAtLjEzMi0uMDc4bC00LjQ0LTIuNTNhLjczMS43MzEgMCAwIDAtLjcyOSAwbC01LjQyIDMuMDg4di0yLjEzOGEuMDY4LjA2OCAwIDAgMSAuMDI3LS4wNTdMMTcuMSA3LjcxM2MyLTEuMTM3IDQuNTU1LS40NiA1LjcwNyAxLjUxMy40ODcuODMzLjY2NCAxLjgwOS40OTkgMi43NTdoLjAwMXptLTExLjc0MSAzLjgxLTEuODc3LTEuMDY4YS4wNjUuMDY1IDAgMCAxLS4wMzYtLjA1MVY5LjU1OWMuMDAxLTIuMjc3IDEuODczLTQuMTIyIDQuMTgxLTQuMTIuOTc2IDAgMS45Mi4zMzggMi42NzEuOTU0LS4wMzQuMDE4LS4wOTIuMDUtLjEzMS4wNzNsLTQuNDQgMi41M2EuNzEuNzEgMCAwIDAtLjM2NS42MjNsLS4wMDMgNi4xNzN2LjAwMnptMS4wMi0yLjE2OEwxNSAxMi4yNWwyLjQxNCAxLjM3NXYyLjc1TDE1IDE3Ljc1bC0yLjQxNS0xLjM3NXYtMi43NXpcIlxuICB9KSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IFN2Z09wZW5haTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/llm-icons/openai.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/llm-icons/qwen.svg":
|
|
|
/*!**************************************!*\
|
|
|
!*** ./app/icons/llm-icons/qwen.svg ***!
|
|
|
\**************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _rect, _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgQwen = function SvgQwen(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n height: \"1em\",\n style: {\n flex: \"none\",\n lineHeight: 1\n },\n viewBox: \"0 0 30 30\",\n width: \"1em\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _rect || (_rect = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"rect\", {\n width: 30,\n height: 30,\n fill: \"#E7F8FF\",\n rx: 6\n })), _g || (_g = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n transform: \"translate(3 3)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"qwen_svg__a\",\n x1: \"0%\",\n x2: \"100%\",\n y1: \"0%\",\n y2: \"0%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"0%\",\n stopColor: \"#00055F\",\n stopOpacity: 0.84\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"100%\",\n stopColor: \"#6F69F7\",\n stopOpacity: 0.84\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M12.604 1.34c.393.69.784 1.382 1.174 2.075a.18.18 0 0 0 .157.091h5.552c.174 0 .322.11.446.327l1.454 2.57c.19.337.24.478.024.837-.26.43-.513.864-.76 1.3l-.367.658c-.106.196-.223.28-.04.512l2.652 4.637c.172.301.111.494-.043.77-.437.785-.882 1.564-1.335 2.34-.159.272-.352.375-.68.37a42.972 42.972 0 0 0-2.327.016.099.099 0 0 0-.081.05 575.097 575.097 0 0 1-2.705 4.74c-.169.293-.38.363-.725.364-.997.003-2.002.004-3.017.002a.537.537 0 0 1-.465-.271l-1.335-2.323a.09.09 0 0 0-.083-.049H4.982a1.788 1.788 0 0 1-.805-.092l-1.603-2.77a.543.543 0 0 1-.002-.54l1.207-2.12a.198.198 0 0 0 0-.197 550.951 550.951 0 0 1-1.875-3.272l-.79-1.395c-.16-.31-.173-.496.095-.965.465-.813.927-1.625 1.387-2.436.132-.234.304-.334.584-.335a338.3 338.3 0 0 1 2.589-.001.124.124 0 0 0 .107-.063l2.806-4.895a.488.488 0 0 1 .422-.246c.524-.001 1.053 0 1.583-.006L11.704 1c.341-.003.724.032.9.34zm-3.432.403a.06.06 0 0 0-.052.03L6.254 6.788a.157.157 0 0 1-.135.078H3.253c-.056 0-.07.025-.041.074l5.81 10.156c.025.042.013.062-.034.063l-2.795.015a.218.218 0 0 0-.2.116l-1.32 2.31c-.044.078-.021.118.068.118l5.716.008c.046 0 .08.02.104.061l1.403 2.454c.046.081.092.082.139 0l5.006-8.76.783-1.382a.055.055 0 0 1 .096 0l1.424 2.53a.122.122 0 0 0 .107.062l2.763-.02a.04.04 0 0 0 .035-.02.041.041 0 0 0 0-.04l-2.9-5.086a.108.108 0 0 1 0-.113l.293-.507 1.12-1.977c.024-.041.012-.062-.035-.062H9.2c-.059 0-.073-.026-.043-.077l1.434-2.505a.107.107 0 0 0 0-.114L9.225 1.774a.06.06 0 0 0-.053-.031zm6.29 8.02c.046 0 .058.02.034.06l-.832 1.465-2.613 4.585a.056.056 0 0 1-.05.029.058.058 0 0 1-.05-.029L8.498 9.841c-.02-.034-.01-.052.028-.054l.216-.012 6.722-.012z\",\n fill: \"url(#qwen_svg__a)\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgQwen);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvbGxtLWljb25zL3F3ZW4uc3ZnIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0Esc0JBQXNCLHNFQUFzRSxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjtBQUMzUTtBQUMvQjtBQUNBLHNCQUFzQixnREFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsR0FBRyx5Q0FBeUMsZ0RBQW1CO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyw2QkFBNkIsZ0RBQW1CO0FBQ25EO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQiw0QkFBNEIsZ0RBQW1CO0FBQ3BGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQSxHQUFHLGtCQUFrQixnREFBbUI7QUFDeEM7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlFQUFlLE9BQU8iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9pY29ucy9sbG0taWNvbnMvcXdlbi5zdmc/YTBiMCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX3JlY3QsIF9nO1xuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiA/IE9iamVjdC5hc3NpZ24uYmluZCgpIDogZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbnZhciBTdmdRd2VuID0gZnVuY3Rpb24gU3ZnUXdlbihwcm9wcykge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX2V4dGVuZHMoe1xuICAgIGhlaWdodDogXCIxZW1cIixcbiAgICBzdHlsZToge1xuICAgICAgZmxleDogXCJub25lXCIsXG4gICAgICBsaW5lSGVpZ2h0OiAxXG4gICAgfSxcbiAgICB2aWV3Qm94OiBcIjAgMCAzMCAzMFwiLFxuICAgIHdpZHRoOiBcIjFlbVwiLFxuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgfSwgcHJvcHMpLCBfcmVjdCB8fCAoX3JlY3QgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInJlY3RcIiwge1xuICAgIHdpZHRoOiAzMCxcbiAgICBoZWlnaHQ6IDMwLFxuICAgIGZpbGw6IFwiI0U3RjhGRlwiLFxuICAgIHJ4OiA2XG4gIH0pKSwgX2cgfHwgKF9nID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDMgMylcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRlZnNcIiwgbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaW5lYXJHcmFkaWVudFwiLCB7XG4gICAgaWQ6IFwicXdlbl9zdmdfX2FcIixcbiAgICB4MTogXCIwJVwiLFxuICAgIHgyOiBcIjEwMCVcIixcbiAgICB5MTogXCIwJVwiLFxuICAgIHkyOiBcIjAlXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdG9wXCIsIHtcbiAgICBvZmZzZXQ6IFwiMCVcIixcbiAgICBzdG9wQ29sb3I6IFwiIzAwMDU1RlwiLFxuICAgIHN0b3BPcGFjaXR5OiAwLjg0XG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN0b3BcIiwge1xuICAgIG9mZnNldDogXCIxMDAlXCIsXG4gICAgc3RvcENvbG9yOiBcIiM2RjY5RjdcIixcbiAgICBzdG9wT3BhY2l0eTogMC44NFxuICB9KSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTEyLjYwNCAxLjM0Yy4zOTMuNjkuNzg0IDEuMzgyIDEuMTc0IDIuMDc1YS4xOC4xOCAwIDAgMCAuMTU3LjA5MWg1LjU1MmMuMTc0IDAgLjMyMi4xMS40NDYuMzI3bDEuNDU0IDIuNTdjLjE5LjMzNy4yNC40NzguMDI0LjgzNy0uMjYuNDMtLjUxMy44NjQtLjc2IDEuM2wtLjM2Ny42NThjLS4xMDYuMTk2LS4yMjMuMjgtLjA0LjUxMmwyLjY1MiA0LjYzN2MuMTcyLjMwMS4xMTEuNDk0LS4wNDMuNzctLjQzNy43ODUtLjg4MiAxLjU2NC0xLjMzNSAyLjM0LS4xNTkuMjcyLS4zNTIuMzc1LS42OC4zN2E0Mi45NzIgNDIuOTcyIDAgMCAwLTIuMzI3LjAxNi4wOTkuMDk5IDAgMCAwLS4wODEuMDUgNTc1LjA5NyA1NzUuMDk3IDAgMCAxLTIuNzA1IDQuNzRjLS4xNjkuMjkzLS4zOC4zNjMtLjcyNS4zNjQtLjk5Ny4wMDMtMi4wMDIuMDA0LTMuMDE3LjAwMmEuNTM3LjUzNyAwIDAgMS0uNDY1LS4yNzFsLTEuMzM1LTIuMzIzYS4wOS4wOSAwIDAgMC0uMDgzLS4wNDlINC45ODJhMS43ODggMS43ODggMCAwIDEtLjgwNS0uMDkybC0xLjYwMy0yLjc3YS41NDMuNTQzIDAgMCAxLS4wMDItLjU0bDEuMjA3LTIuMTJhLjE5OC4xOTggMCAwIDAgMC0uMTk3IDU1MC45NTEgNTUwLjk1MSAwIDAgMS0xLjg3NS0zLjI3MmwtLjc5LTEuMzk1Yy0uMTYtLjMxLS4xNzMtLjQ5Ni4wOTUtLjk2NS40NjUtLjgxMy45MjctMS42MjUgMS4zODctMi40MzYuMTMyLS4yMzQuMzA0LS4zMzQuNTg0LS4zMzVhMzM4LjMgMzM4LjMgMCAwIDEgMi41ODktLjAwMS4xMjQuMTI0IDAgMCAwIC4xMDctLjA2M2wyLjgwNi00Ljg5NWEuNDg4LjQ4OCAwIDAgMSAuNDIyLS4yNDZjLjUyNC0uMDAxIDEuMDUzIDAgMS41ODMtLjAwNkwxMS43MDQgMWMuMzQxLS4wMDMuNzI0LjAzMi45LjM0em0tMy40MzIuNDAzYS4wNi4wNiAwIDAgMC0uMDUyLjAzTDYuMjU0IDYuNzg4YS4xNTcuMTU3IDAgMCAxLS4xMzUuMDc4SDMuMjUzYy0uMDU2IDAtLjA3LjAyNS0uMDQxLjA3NGw1LjgxIDEwLjE1NmMuMDI1LjA0Mi4wMTMuMDYyLS4wMzQuMDYzbC0yLjc5NS4wMTVhLjIxOC4yMTggMCAwIDAtLjIuMTE2bC0xLjMyIDIuMzFjLS4wNDQuMDc4LS4wMjEuMTE4LjA2OC4xMThsNS43MTYuMDA4Yy4wNDYgMCAuMDguMDIuMTA0LjA2MWwxLjQwMyAyLjQ1NGMuMDQ2LjA4MS4wOTIuMDgyLjEzOSAwbDUuMDA2LTguNzYuNzgzLTEuMzgyYS4wNTUuMDU1IDAgMCAxIC4wOTYgMGwxLjQyNCAyLjUzYS4xMjIuMTIyIDAgMCAwIC4xMDcuMDYybDIuNzYzLS4wMmEuMDQuMDQgMCAwIDAgLjAzNS0uMDIuMDQxLjA0MSAwIDAgMCAwLS4wNGwtMi45LTUuMDg2YS4xMDguMTA4IDAgMCAxIDAtLjExM2wuMjkzLS41MDcgMS4xMi0xLjk3N2MuMDI0LS4wNDEuMDEyLS4wNjItLjAzNS0uMDYySDkuMmMtLjA1OSAwLS4wNzMtLjAyNi0uMDQzLS4wNzdsMS40MzQtMi41MDVhLjEwNy4xMDcgMCAwIDAgMC0uMTE0TDkuMjI1IDEuNzc0YS4wNi4wNiAwIDAgMC0uMDUzLS4wMzF6bTYuMjkgOC4wMmMuMDQ2IDAgLjA1OC4wMi4wMzQuMDZsLS44MzIgMS40NjUtMi42MTMgNC41ODVhLjA1Ni4wNTYgMCAwIDEtLjA1LjAyOS4wNTguMDU4IDAgMCAxLS4wNS0uMDI5TDguNDk4IDkuODQxYy0uMDItLjAzNC0uMDEtLjA1Mi4wMjgtLjA1NGwuMjE2LS4wMTIgNi43MjItLjAxMnpcIixcbiAgICBmaWxsOiBcInVybCgjcXdlbl9zdmdfX2EpXCJcbiAgfSkpKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgU3ZnUXdlbjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/llm-icons/qwen.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/llm-icons/wenxin.svg":
|
|
|
/*!****************************************!*\
|
|
|
!*** ./app/icons/llm-icons/wenxin.svg ***!
|
|
|
\****************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _rect, _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgWenxin = function SvgWenxin(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n height: \"1em\",\n style: {\n flex: \"none\",\n lineHeight: 1\n },\n viewBox: \"0 0 30 30\",\n width: \"1em\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _rect || (_rect = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"rect\", {\n width: 30,\n height: 30,\n fill: \"#E7F8FF\",\n rx: 6\n })), _g || (_g = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n transform: \"translate(3 3)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"wenxin_svg__a\",\n x1: \"9.155%\",\n x2: \"90.531%\",\n y1: \"75.177%\",\n y2: \"25.028%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"0%\",\n stopColor: \"#0A51C3\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: \"100%\",\n stopColor: \"#23A4FB\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n fill: \"none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M11.32 1.176a1.4 1.4 0 0 1 1.36 0l8.64 4.843c.421.234.68.67.68 1.141v9.68c0 .472-.259.908-.68 1.143l-8.64 4.84a1.4 1.4 0 0 1-1.36 0l-8.64-4.84A1.31 1.31 0 0 1 2 16.84V7.159c0-.471.259-.907.68-1.142l8.64-4.84zm7.42 13.839V8.227L12.002 12 12 19.551l6.059-3.394a1.31 1.31 0 0 0 .68-1.142zM12.68 4.833a1.393 1.393 0 0 0-1.36 0L5.944 7.846a1.31 1.31 0 0 0-.68 1.142v6.027c0 .47.259.905.68 1.142l2.795 1.566V11.09a1.546 1.546 0 0 0 .221.79 1.527 1.527 0 0 1-.216-.834l.004-.094.02-.15.018-.084.017-.062.039-.117.062-.142.035-.065.081-.13.094-.122.084-.091.08-.075.125-.1.071-.048.134-.076 5.87-3.29-2.796-1.566z\",\n fill: \"url(#wenxin_svg__a)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M12 11.088c0-.875-.73-1.584-1.631-1.584a1.66 1.66 0 0 0-.855.237 1.555 1.555 0 0 0-.08.05 2.361 2.361 0 0 0-.123.093c-.022.02-.045.038-.066.059l-.048.045-.063.067c-.014.016-.028.031-.04.048a2.303 2.303 0 0 0-.094.125l-.042.069a1.7 1.7 0 0 0-.07.13l-.036.081a.764.764 0 0 0-.022.06c-.01.03-.02.058-.028.087l-.017.062a.883.883 0 0 0-.03.16c-.002.025-.007.05-.008.074a1.527 1.527 0 0 0 .213.929c.302.508.85.792 1.414.792.277 0 .558-.068.814-.212l.815-.457v-.914L12 11.088z\",\n fill: \"#012F8D\"\n })))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgWenxin);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvbGxtLWljb25zL3dlbnhpbi5zdmciLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQSxzQkFBc0Isc0VBQXNFLGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUMsa0JBQWtCO0FBQzNRO0FBQy9CO0FBQ0Esc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxHQUFHLHlDQUF5QyxnREFBbUI7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLDZCQUE2QixnREFBbUI7QUFDbkQ7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CLDRCQUE0QixnREFBbUI7QUFDcEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0EsR0FBRyxrQkFBa0IsZ0RBQW1CO0FBQ3hDO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpRUFBZSxTQUFTIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvaWNvbnMvbGxtLWljb25zL3dlbnhpbi5zdmc/MDY4MiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX3JlY3QsIF9nO1xuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiA/IE9iamVjdC5hc3NpZ24uYmluZCgpIDogZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbnZhciBTdmdXZW54aW4gPSBmdW5jdGlvbiBTdmdXZW54aW4ocHJvcHMpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIF9leHRlbmRzKHtcbiAgICBoZWlnaHQ6IFwiMWVtXCIsXG4gICAgc3R5bGU6IHtcbiAgICAgIGZsZXg6IFwibm9uZVwiLFxuICAgICAgbGluZUhlaWdodDogMVxuICAgIH0sXG4gICAgdmlld0JveDogXCIwIDAgMzAgMzBcIixcbiAgICB3aWR0aDogXCIxZW1cIixcbiAgICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gIH0sIHByb3BzKSwgX3JlY3QgfHwgKF9yZWN0ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJyZWN0XCIsIHtcbiAgICB3aWR0aDogMzAsXG4gICAgaGVpZ2h0OiAzMCxcbiAgICBmaWxsOiBcIiNFN0Y4RkZcIixcbiAgICByeDogNlxuICB9KSksIF9nIHx8IChfZyA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZ1wiLCB7XG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgzIDMpXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkZWZzXCIsIG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwibGluZWFyR3JhZGllbnRcIiwge1xuICAgIGlkOiBcIndlbnhpbl9zdmdfX2FcIixcbiAgICB4MTogXCI5LjE1NSVcIixcbiAgICB4MjogXCI5MC41MzElXCIsXG4gICAgeTE6IFwiNzUuMTc3JVwiLFxuICAgIHkyOiBcIjI1LjAyOCVcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN0b3BcIiwge1xuICAgIG9mZnNldDogXCIwJVwiLFxuICAgIHN0b3BDb2xvcjogXCIjMEE1MUMzXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3RvcFwiLCB7XG4gICAgb2Zmc2V0OiBcIjEwMCVcIixcbiAgICBzdG9wQ29sb3I6IFwiIzIzQTRGQlwiXG4gIH0pKSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZ1wiLCB7XG4gICAgZmlsbDogXCJub25lXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk0xMS4zMiAxLjE3NmExLjQgMS40IDAgMCAxIDEuMzYgMGw4LjY0IDQuODQzYy40MjEuMjM0LjY4LjY3LjY4IDEuMTQxdjkuNjhjMCAuNDcyLS4yNTkuOTA4LS42OCAxLjE0M2wtOC42NCA0Ljg0YTEuNCAxLjQgMCAwIDEtMS4zNiAwbC04LjY0LTQuODRBMS4zMSAxLjMxIDAgMCAxIDIgMTYuODRWNy4xNTljMC0uNDcxLjI1OS0uOTA3LjY4LTEuMTQybDguNjQtNC44NHptNy40MiAxMy44MzlWOC4yMjdMMTIuMDAyIDEyIDEyIDE5LjU1MWw2LjA1OS0zLjM5NGExLjMxIDEuMzEgMCAwIDAgLjY4LTEuMTQyek0xMi42OCA0LjgzM2ExLjM5MyAxLjM5MyAwIDAgMC0xLjM2IDBMNS45NDQgNy44NDZhMS4zMSAxLjMxIDAgMCAwLS42OCAxLjE0MnY2LjAyN2MwIC40Ny4yNTkuOTA1LjY4IDEuMTQybDIuNzk1IDEuNTY2VjExLjA5YTEuNTQ2IDEuNTQ2IDAgMCAwIC4yMjEuNzkgMS41MjcgMS41MjcgMCAwIDEtLjIxNi0uODM0bC4wMDQtLjA5NC4wMi0uMTUuMDE4LS4wODQuMDE3LS4wNjIuMDM5LS4xMTcuMDYyLS4xNDIuMDM1LS4wNjUuMDgxLS4xMy4wOTQtLjEyMi4wODQtLjA5MS4wOC0uMDc1LjEyNS0uMS4wNzEtLjA0OC4xMzQtLjA3NiA1Ljg3LTMuMjktMi43OTYtMS41NjZ6XCIsXG4gICAgZmlsbDogXCJ1cmwoI3dlbnhpbl9zdmdfX2EpXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZDogXCJNMTIgMTEuMDg4YzAtLjg3NS0uNzMtMS41ODQtMS42MzEtMS41ODRhMS42NiAxLjY2IDAgMCAwLS44NTUuMjM3IDEuNTU1IDEuNTU1IDAgMCAwLS4wOC4wNSAyLjM2MSAyLjM2MSAwIDAgMC0uMTIzLjA5M2MtLjAyMi4wMi0uMDQ1LjAzOC0uMDY2LjA1OWwtLjA0OC4wNDUtLjA2My4wNjdjLS4wMTQuMDE2LS4wMjguMDMxLS4wNC4wNDhhMi4zMDMgMi4zMDMgMCAwIDAtLjA5NC4xMjVsLS4wNDIuMDY5YTEuNyAxLjcgMCAwIDAtLjA3LjEzbC0uMDM2LjA4MWEuNzY0Ljc2NCAwIDAgMC0uMDIyLjA2Yy0uMDEuMDMtLjAyLjA1OC0uMDI4LjA4N2wtLjAxNy4wNjJhLjg4My44ODMgMCAwIDAtLjAzLjE2Yy0uMDAyLjAyNS0uMDA3LjA1LS4wMDguMDc0YTEuNTI3IDEuNTI3IDAgMCAwIC4yMTMuOTI5Yy4zMDIuNTA4Ljg1Ljc5MiAxLjQxNC43OTIuMjc3IDAgLjU1OC0uMDY4LjgxNC0uMjEybC44MTUtLjQ1N3YtLjkxNEwxMiAxMS4wODh6XCIsXG4gICAgZmlsbDogXCIjMDEyRjhEXCJcbiAgfSkpKSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IFN2Z1dlbnhpbjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/llm-icons/wenxin.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/logo.svg":
|
|
|
/*!****************************!*\
|
|
|
!*** ./app/icons/logo.svg ***!
|
|
|
\****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _rect, _path, _path2, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgLogo = function SvgLogo(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n width: 38.73,\n height: 42,\n viewBox: \"0 0 221 240\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _rect || (_rect = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"rect\", {\n x: 160.697,\n y: 38.125,\n width: 65.007,\n height: 145.932,\n rx: 32.503,\n transform: \"rotate(21.987 160.697 38.125)\",\n fill: \"url(#logo_svg__a)\"\n })), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"m48.642 79.125-25.92 71.213c-6.139 16.869 2.558 35.52 19.427 41.66 16.868 6.14 35.52-2.558 41.66-19.426L94.23 143.94l-36.658-37.439a32.42 32.42 0 0 1-9.244-23.497c.033-1.326.14-2.62.314-3.879Z\",\n fill: \"url(#logo_svg__b)\"\n })), _path2 || (_path2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n d: \"M172.578 132.787a32.765 32.765 0 0 1 8.981 24.238c-1.458 28.748-36.622 41.778-56.46 20.92l-67.644-71.122a32.763 32.763 0 0 1-8.981-24.238c1.457-28.748 36.622-41.778 56.46-20.92l67.644 71.122Z\",\n fill: \"url(#logo_svg__c)\",\n fillOpacity: 0.96\n })), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"logo_svg__a\",\n x1: 215.063,\n y1: 59.628,\n x2: 160.714,\n y2: 157.96,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n stopColor: \"#3EADFE\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#2A7AFF\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"logo_svg__b\",\n x1: 105.376,\n y1: 84.416,\n x2: 19.745,\n y2: 131.163,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n stopColor: \"#01B3FF\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#59ECFA\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"linearGradient\", {\n id: \"logo_svg__c\",\n x1: 102.734,\n y1: 136.396,\n x2: 192.577,\n y2: 155.859,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n stopColor: \"#023BFF\",\n stopOpacity: 0.82\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"stop\", {\n offset: 0.88,\n stopColor: \"#2D86FF\",\n stopOpacity: 0.76\n })))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgLogo);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvbG9nby5zdmciLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQSxzQkFBc0Isc0VBQXNFLGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUMsa0JBQWtCO0FBQzNRO0FBQy9CO0FBQ0Esc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyx5Q0FBeUMsZ0RBQW1CO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxtQ0FBbUMsZ0RBQW1CO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxxQ0FBcUMsZ0RBQW1CO0FBQzNEO0FBQ0E7QUFDQTtBQUNBLEdBQUcsbUNBQW1DLGdEQUFtQiw0QkFBNEIsZ0RBQW1CO0FBQ3hHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBLEdBQUcsaUJBQWlCLGdEQUFtQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CO0FBQ3JDO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQSxHQUFHLGlCQUFpQixnREFBbUI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlFQUFlLE9BQU8iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9pY29ucy9sb2dvLnN2Zz9kYzc4Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfcmVjdCwgX3BhdGgsIF9wYXRoMiwgX2RlZnM7XG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xudmFyIFN2Z0xvZ28gPSBmdW5jdGlvbiBTdmdMb2dvKHByb3BzKSB7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCBfZXh0ZW5kcyh7XG4gICAgd2lkdGg6IDM4LjczLFxuICAgIGhlaWdodDogNDIsXG4gICAgdmlld0JveDogXCIwIDAgMjIxIDI0MFwiLFxuICAgIGZpbGw6IFwibm9uZVwiLFxuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgfSwgcHJvcHMpLCBfcmVjdCB8fCAoX3JlY3QgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInJlY3RcIiwge1xuICAgIHg6IDE2MC42OTcsXG4gICAgeTogMzguMTI1LFxuICAgIHdpZHRoOiA2NS4wMDcsXG4gICAgaGVpZ2h0OiAxNDUuOTMyLFxuICAgIHJ4OiAzMi41MDMsXG4gICAgdHJhbnNmb3JtOiBcInJvdGF0ZSgyMS45ODcgMTYwLjY5NyAzOC4xMjUpXCIsXG4gICAgZmlsbDogXCJ1cmwoI2xvZ29fc3ZnX19hKVwiXG4gIH0pKSwgX3BhdGggfHwgKF9wYXRoID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBmaWxsUnVsZTogXCJldmVub2RkXCIsXG4gICAgY2xpcFJ1bGU6IFwiZXZlbm9kZFwiLFxuICAgIGQ6IFwibTQ4LjY0MiA3OS4xMjUtMjUuOTIgNzEuMjEzYy02LjEzOSAxNi44NjkgMi41NTggMzUuNTIgMTkuNDI3IDQxLjY2IDE2Ljg2OCA2LjE0IDM1LjUyLTIuNTU4IDQxLjY2LTE5LjQyNkw5NC4yMyAxNDMuOTRsLTM2LjY1OC0zNy40MzlhMzIuNDIgMzIuNDIgMCAwIDEtOS4yNDQtMjMuNDk3Yy4wMzMtMS4zMjYuMTQtMi42Mi4zMTQtMy44NzlaXCIsXG4gICAgZmlsbDogXCJ1cmwoI2xvZ29fc3ZnX19iKVwiXG4gIH0pKSwgX3BhdGgyIHx8IChfcGF0aDIgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTE3Mi41NzggMTMyLjc4N2EzMi43NjUgMzIuNzY1IDAgMCAxIDguOTgxIDI0LjIzOGMtMS40NTggMjguNzQ4LTM2LjYyMiA0MS43NzgtNTYuNDYgMjAuOTJsLTY3LjY0NC03MS4xMjJhMzIuNzYzIDMyLjc2MyAwIDAgMS04Ljk4MS0yNC4yMzhjMS40NTctMjguNzQ4IDM2LjYyMi00MS43NzggNTYuNDYtMjAuOTJsNjcuNjQ0IDcxLjEyMlpcIixcbiAgICBmaWxsOiBcInVybCgjbG9nb19zdmdfX2MpXCIsXG4gICAgZmlsbE9wYWNpdHk6IDAuOTZcbiAgfSkpLCBfZGVmcyB8fCAoX2RlZnMgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRlZnNcIiwgbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaW5lYXJHcmFkaWVudFwiLCB7XG4gICAgaWQ6IFwibG9nb19zdmdfX2FcIixcbiAgICB4MTogMjE1LjA2MyxcbiAgICB5MTogNTkuNjI4LFxuICAgIHgyOiAxNjAuNzE0LFxuICAgIHkyOiAxNTcuOTYsXG4gICAgZ3JhZGllbnRVbml0czogXCJ1c2VyU3BhY2VPblVzZVwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3RvcFwiLCB7XG4gICAgc3RvcENvbG9yOiBcIiMzRUFERkVcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdG9wXCIsIHtcbiAgICBvZmZzZXQ6IDEsXG4gICAgc3RvcENvbG9yOiBcIiMyQTdBRkZcIlxuICB9KSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwibGluZWFyR3JhZGllbnRcIiwge1xuICAgIGlkOiBcImxvZ29fc3ZnX19iXCIsXG4gICAgeDE6IDEwNS4zNzYsXG4gICAgeTE6IDg0LjQxNixcbiAgICB4MjogMTkuNzQ1LFxuICAgIHkyOiAxMzEuMTYzLFxuICAgIGdyYWRpZW50VW5pdHM6IFwidXNlclNwYWNlT25Vc2VcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN0b3BcIiwge1xuICAgIHN0b3BDb2xvcjogXCIjMDFCM0ZGXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3RvcFwiLCB7XG4gICAgb2Zmc2V0OiAxLFxuICAgIHN0b3BDb2xvcjogXCIjNTlFQ0ZBXCJcbiAgfSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImxpbmVhckdyYWRpZW50XCIsIHtcbiAgICBpZDogXCJsb2dvX3N2Z19fY1wiLFxuICAgIHgxOiAxMDIuNzM0LFxuICAgIHkxOiAxMzYuMzk2LFxuICAgIHgyOiAxOTIuNTc3LFxuICAgIHkyOiAxNTUuODU5LFxuICAgIGdyYWRpZW50VW5pdHM6IFwidXNlclNwYWNlT25Vc2VcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN0b3BcIiwge1xuICAgIHN0b3BDb2xvcjogXCIjMDIzQkZGXCIsXG4gICAgc3RvcE9wYWNpdHk6IDAuODJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3RvcFwiLCB7XG4gICAgb2Zmc2V0OiAwLjg4LFxuICAgIHN0b3BDb2xvcjogXCIjMkQ4NkZGXCIsXG4gICAgc3RvcE9wYWNpdHk6IDAuNzZcbiAgfSkpKSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IFN2Z0xvZ287Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/logo.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/mask.svg":
|
|
|
/*!****************************!*\
|
|
|
!*** ./app/icons/mask.svg ***!
|
|
|
\****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _defs, _mask;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgMask = function SvgMask(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 16,\n height: 16,\n fill: \"none\"\n }, props), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n id: \"mask_svg__a\",\n d: \"M0 0h16v16H0z\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", null, _mask || (_mask = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"mask\", {\n id: \"mask_svg__b\",\n fill: \"#fff\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"use\", {\n xlinkHref: \"#mask_svg__a\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n mask: \"url(#mask_svg__b)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M6 0C2.69 0 0 2.54 0 5.67s2.69 5.66 6 5.66 6-2.53 6-5.66C12 2.54 9.31 0 6 0Z\",\n transform: \"translate(2 3.333)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M1 0C.45 0 0 .6 0 1.33c0 .74.45 1.34 1 1.34s1-.6 1-1.34C2 .6 1.55 0 1 0Z\",\n transform: \"rotate(15 -22.183 22.313)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M1 0C.45 0 0 .6 0 1.33c0 .74.45 1.34 1 1.34s1-.6 1-1.34C2 .6 1.55 0 1 0Z\",\n transform: \"rotate(165 5.213 5.304)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M4 4.51c1.04-1.04 1.15-2.74.1-3.78C3.06-.32 1.04-.2 0 .84\",\n transform: \"translate(9.667 2.493)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M.84 4.51C-.2 3.47-.32 1.77.73.73 1.77-.32 3.8-.2 4.84.84\",\n transform: \"translate(1.493 2.493)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M0 0c.17.43.73 1.09 1.67.29.93.8 1.5.14 1.66-.29\",\n transform: \"translate(6.5 11.67)\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgMask);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvbWFzay5zdmciLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQSxzQkFBc0Isc0VBQXNFLGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUMsa0JBQWtCO0FBQzNRO0FBQy9CO0FBQ0Esc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyx5Q0FBeUMsZ0RBQW1CLDRCQUE0QixnREFBbUI7QUFDOUc7QUFDQTtBQUNBLEdBQUcsa0JBQWtCLGdEQUFtQiwyQ0FBMkMsZ0RBQW1CO0FBQ3RHO0FBQ0E7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CO0FBQ3JDO0FBQ0EsR0FBRyxrQkFBa0IsZ0RBQW1CO0FBQ3hDO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlFQUFlLE9BQU8iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9pY29ucy9tYXNrLnN2Zz80Y2Q0Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfZGVmcywgX21hc2s7XG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xudmFyIFN2Z01hc2sgPSBmdW5jdGlvbiBTdmdNYXNrKHByb3BzKSB7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCBfZXh0ZW5kcyh7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICB4bWxuc1hsaW5rOiBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIixcbiAgICB3aWR0aDogMTYsXG4gICAgaGVpZ2h0OiAxNixcbiAgICBmaWxsOiBcIm5vbmVcIlxuICB9LCBwcm9wcyksIF9kZWZzIHx8IChfZGVmcyA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGVmc1wiLCBudWxsLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGlkOiBcIm1hc2tfc3ZnX19hXCIsXG4gICAgZDogXCJNMCAwaDE2djE2SDB6XCJcbiAgfSkpKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIG51bGwsIF9tYXNrIHx8IChfbWFzayA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwibWFza1wiLCB7XG4gICAgaWQ6IFwibWFza19zdmdfX2JcIixcbiAgICBmaWxsOiBcIiNmZmZcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInVzZVwiLCB7XG4gICAgeGxpbmtIcmVmOiBcIiNtYXNrX3N2Z19fYVwiXG4gIH0pKSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZ1wiLCB7XG4gICAgbWFzazogXCJ1cmwoI21hc2tfc3ZnX19iKVwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIHN0cm9rZTogXCIjMzMzXCIsXG4gICAgICBzdHJva2VXaWR0aDogMS4zMzMzMzMzMzMzMzMzMzMzLFxuICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgIHN0cm9rZURhc2hhcnJheTogXCIwIDBcIlxuICAgIH0sXG4gICAgZDogXCJNNiAwQzIuNjkgMCAwIDIuNTQgMCA1LjY3czIuNjkgNS42NiA2IDUuNjYgNi0yLjUzIDYtNS42NkMxMiAyLjU0IDkuMzEgMCA2IDBaXCIsXG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgyIDMuMzMzKVwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIHN0eWxlOiB7XG4gICAgICBzdHJva2U6IFwiIzMzM1wiLFxuICAgICAgc3Ryb2tlV2lkdGg6IDEuMzMzMzMzMzMzMzMzMzMzMyxcbiAgICAgIHN0cm9rZU9wYWNpdHk6IDEsXG4gICAgICBzdHJva2VEYXNoYXJyYXk6IFwiMCAwXCJcbiAgICB9LFxuICAgIGQ6IFwiTTEgMEMuNDUgMCAwIC42IDAgMS4zM2MwIC43NC40NSAxLjM0IDEgMS4zNHMxLS42IDEtMS4zNEMyIC42IDEuNTUgMCAxIDBaXCIsXG4gICAgdHJhbnNmb3JtOiBcInJvdGF0ZSgxNSAtMjIuMTgzIDIyLjMxMylcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHlsZToge1xuICAgICAgc3Ryb2tlOiBcIiMzMzNcIixcbiAgICAgIHN0cm9rZVdpZHRoOiAxLjMzMzMzMzMzMzMzMzMzMzMsXG4gICAgICBzdHJva2VPcGFjaXR5OiAxLFxuICAgICAgc3Ryb2tlRGFzaGFycmF5OiBcIjAgMFwiXG4gICAgfSxcbiAgICBkOiBcIk0xIDBDLjQ1IDAgMCAuNiAwIDEuMzNjMCAuNzQuNDUgMS4zNCAxIDEuMzRzMS0uNiAxLTEuMzRDMiAuNiAxLjU1IDAgMSAwWlwiLFxuICAgIHRyYW5zZm9ybTogXCJyb3RhdGUoMTY1IDUuMjEzIDUuMzA0KVwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIHN0eWxlOiB7XG4gICAgICBzdHJva2U6IFwiIzMzM1wiLFxuICAgICAgc3Ryb2tlV2lkdGg6IDEuMzMzMzMzMzMzMzMzMzMzMyxcbiAgICAgIHN0cm9rZU9wYWNpdHk6IDEsXG4gICAgICBzdHJva2VEYXNoYXJyYXk6IFwiMCAwXCJcbiAgICB9LFxuICAgIGQ6IFwiTTQgNC41MWMxLjA0LTEuMDQgMS4xNS0yLjc0LjEtMy43OEMzLjA2LS4zMiAxLjA0LS4yIDAgLjg0XCIsXG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSg5LjY2NyAyLjQ5MylcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHlsZToge1xuICAgICAgc3Ryb2tlOiBcIiMzMzNcIixcbiAgICAgIHN0cm9rZVdpZHRoOiAxLjMzMzMzMzMzMzMzMzMzMzMsXG4gICAgICBzdHJva2VPcGFjaXR5OiAxLFxuICAgICAgc3Ryb2tlRGFzaGFycmF5OiBcIjAgMFwiXG4gICAgfSxcbiAgICBkOiBcIk0uODQgNC41MUMtLjIgMy40Ny0uMzIgMS43Ny43My43MyAxLjc3LS4zMiAzLjgtLjIgNC44NC44NFwiLFxuICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoMS40OTMgMi40OTMpXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIHN0cm9rZTogXCIjMzMzXCIsXG4gICAgICBzdHJva2VXaWR0aDogMS4zMzMzMzMzMzMzMzMzMzMzLFxuICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgIHN0cm9rZURhc2hhcnJheTogXCIwIDBcIlxuICAgIH0sXG4gICAgZDogXCJNMCAwYy4xNy40My43MyAxLjA5IDEuNjcuMjkuOTMuOCAxLjUuMTQgMS42Ni0uMjlcIixcbiAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDYuNSAxMS42NylcIlxuICB9KSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBTdmdNYXNrOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/mask.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/max.svg":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/icons/max.svg ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _defs, _mask;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgMax = function SvgMax(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 16,\n height: 16,\n fill: \"none\"\n }, props), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n id: \"max_svg__a\",\n d: \"M0 0h16v16H0z\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", null, _mask || (_mask = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"mask\", {\n id: \"max_svg__b\",\n fill: \"#fff\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"use\", {\n xlinkHref: \"#max_svg__a\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n mask: \"url(#max_svg__b)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"m0 0 3.33 3.3\",\n transform: \"translate(2 2)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M0 3.3 3.33 0\",\n transform: \"translate(2 10.667)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M3.3 3.3 0 0\",\n transform: \"translate(10.7 10.667)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M3.3 0 0 3.3\",\n transform: \"translate(10.667 2)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M0 0h3v3\",\n transform: \"translate(11 2)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M3 0v3H0\",\n transform: \"translate(11 11)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M3 3H0V0\",\n transform: \"translate(2 11)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M0 3V0h3\",\n transform: \"translate(2 2)\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgMax);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvbWF4LnN2ZyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBLHNCQUFzQixzRUFBc0UsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQyxrQkFBa0I7QUFDM1E7QUFDL0I7QUFDQSxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLHlDQUF5QyxnREFBbUIsNEJBQTRCLGdEQUFtQjtBQUM5RztBQUNBO0FBQ0EsR0FBRyxrQkFBa0IsZ0RBQW1CLDJDQUEyQyxnREFBbUI7QUFDdEc7QUFDQTtBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQSxHQUFHLGtCQUFrQixnREFBbUI7QUFDeEM7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpRUFBZSxNQUFNIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvaWNvbnMvbWF4LnN2Zz8xNjc3Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfZGVmcywgX21hc2s7XG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xudmFyIFN2Z01heCA9IGZ1bmN0aW9uIFN2Z01heChwcm9wcykge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX2V4dGVuZHMoe1xuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gICAgeG1sbnNYbGluazogXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXG4gICAgd2lkdGg6IDE2LFxuICAgIGhlaWdodDogMTYsXG4gICAgZmlsbDogXCJub25lXCJcbiAgfSwgcHJvcHMpLCBfZGVmcyB8fCAoX2RlZnMgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRlZnNcIiwgbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBpZDogXCJtYXhfc3ZnX19hXCIsXG4gICAgZDogXCJNMCAwaDE2djE2SDB6XCJcbiAgfSkpKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIG51bGwsIF9tYXNrIHx8IChfbWFzayA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwibWFza1wiLCB7XG4gICAgaWQ6IFwibWF4X3N2Z19fYlwiLFxuICAgIGZpbGw6IFwiI2ZmZlwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwidXNlXCIsIHtcbiAgICB4bGlua0hyZWY6IFwiI21heF9zdmdfX2FcIlxuICB9KSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImdcIiwge1xuICAgIG1hc2s6IFwidXJsKCNtYXhfc3ZnX19iKVwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIHN0cm9rZTogXCIjMzMzXCIsXG4gICAgICBzdHJva2VXaWR0aDogMS4zMzMzMzMzMzMzMzMzMzMzLFxuICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgIHN0cm9rZURhc2hhcnJheTogXCIwIDBcIlxuICAgIH0sXG4gICAgZDogXCJtMCAwIDMuMzMgMy4zXCIsXG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgyIDIpXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIHN0cm9rZTogXCIjMzMzXCIsXG4gICAgICBzdHJva2VXaWR0aDogMS4zMzMzMzMzMzMzMzMzMzMzLFxuICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgIHN0cm9rZURhc2hhcnJheTogXCIwIDBcIlxuICAgIH0sXG4gICAgZDogXCJNMCAzLjMgMy4zMyAwXCIsXG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgyIDEwLjY2NylcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHlsZToge1xuICAgICAgc3Ryb2tlOiBcIiMzMzNcIixcbiAgICAgIHN0cm9rZVdpZHRoOiAxLjMzMzMzMzMzMzMzMzMzMzMsXG4gICAgICBzdHJva2VPcGFjaXR5OiAxLFxuICAgICAgc3Ryb2tlRGFzaGFycmF5OiBcIjAgMFwiXG4gICAgfSxcbiAgICBkOiBcIk0zLjMgMy4zIDAgMFwiLFxuICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoMTAuNyAxMC42NjcpXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIHN0cm9rZTogXCIjMzMzXCIsXG4gICAgICBzdHJva2VXaWR0aDogMS4zMzMzMzMzMzMzMzMzMzMzLFxuICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgIHN0cm9rZURhc2hhcnJheTogXCIwIDBcIlxuICAgIH0sXG4gICAgZDogXCJNMy4zIDAgMCAzLjNcIixcbiAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDEwLjY2NyAyKVwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIHN0eWxlOiB7XG4gICAgICBzdHJva2U6IFwiIzMzM1wiLFxuICAgICAgc3Ryb2tlV2lkdGg6IDEuMzMzMzMzMzMzMzMzMzMzMyxcbiAgICAgIHN0cm9rZU9wYWNpdHk6IDEsXG4gICAgICBzdHJva2VEYXNoYXJyYXk6IFwiMCAwXCJcbiAgICB9LFxuICAgIGQ6IFwiTTAgMGgzdjNcIixcbiAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDExIDIpXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIHN0cm9rZTogXCIjMzMzXCIsXG4gICAgICBzdHJva2VXaWR0aDogMS4zMzMzMzMzMzMzMzMzMzMzLFxuICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgIHN0cm9rZURhc2hhcnJheTogXCIwIDBcIlxuICAgIH0sXG4gICAgZDogXCJNMyAwdjNIMFwiLFxuICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoMTEgMTEpXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIHN0cm9rZTogXCIjMzMzXCIsXG4gICAgICBzdHJva2VXaWR0aDogMS4zMzMzMzMzMzMzMzMzMzMzLFxuICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgIHN0cm9rZURhc2hhcnJheTogXCIwIDBcIlxuICAgIH0sXG4gICAgZDogXCJNMyAzSDBWMFwiLFxuICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoMiAxMSlcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHlsZToge1xuICAgICAgc3Ryb2tlOiBcIiMzMzNcIixcbiAgICAgIHN0cm9rZVdpZHRoOiAxLjMzMzMzMzMzMzMzMzMzMzMsXG4gICAgICBzdHJva2VPcGFjaXR5OiAxLFxuICAgICAgc3Ryb2tlRGFzaGFycmF5OiBcIjAgMFwiXG4gICAgfSxcbiAgICBkOiBcIk0wIDNWMGgzXCIsXG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgyIDIpXCJcbiAgfSkpKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgU3ZnTWF4OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/max.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/min.svg":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/icons/min.svg ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _defs, _mask;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgMin = function SvgMin(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 16,\n height: 16,\n fill: \"none\"\n }, props), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n id: \"min_svg__a\",\n d: \"M0 0h16v16H0z\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", null, _mask || (_mask = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"mask\", {\n id: \"min_svg__b\",\n fill: \"#fff\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"use\", {\n xlinkHref: \"#min_svg__a\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n mask: \"url(#min_svg__b)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"m0 0 3.33 3.3\",\n transform: \"translate(2 2)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M0 3.3 3.33 0\",\n transform: \"translate(2 10.667)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M3.3 3.3 0 0\",\n transform: \"translate(10.7 10.667)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M3.3 0 0 3.3\",\n transform: \"translate(10.667 2)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M0 0v3h3\",\n transform: \"translate(10.667 2.333)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M3 0v3H0\",\n transform: \"translate(2.333 2.333)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M3 3V0H0\",\n transform: \"translate(2.333 10.667)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M0 3V0h2.97\",\n transform: \"translate(10.667 10.667)\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgMin);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvbWluLnN2ZyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBLHNCQUFzQixzRUFBc0UsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQyxrQkFBa0I7QUFDM1E7QUFDL0I7QUFDQSxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLHlDQUF5QyxnREFBbUIsNEJBQTRCLGdEQUFtQjtBQUM5RztBQUNBO0FBQ0EsR0FBRyxrQkFBa0IsZ0RBQW1CLDJDQUEyQyxnREFBbUI7QUFDdEc7QUFDQTtBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQSxHQUFHLGtCQUFrQixnREFBbUI7QUFDeEM7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpRUFBZSxNQUFNIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvaWNvbnMvbWluLnN2Zz80ODQyIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfZGVmcywgX21hc2s7XG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xudmFyIFN2Z01pbiA9IGZ1bmN0aW9uIFN2Z01pbihwcm9wcykge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX2V4dGVuZHMoe1xuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gICAgeG1sbnNYbGluazogXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXG4gICAgd2lkdGg6IDE2LFxuICAgIGhlaWdodDogMTYsXG4gICAgZmlsbDogXCJub25lXCJcbiAgfSwgcHJvcHMpLCBfZGVmcyB8fCAoX2RlZnMgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRlZnNcIiwgbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBpZDogXCJtaW5fc3ZnX19hXCIsXG4gICAgZDogXCJNMCAwaDE2djE2SDB6XCJcbiAgfSkpKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIG51bGwsIF9tYXNrIHx8IChfbWFzayA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwibWFza1wiLCB7XG4gICAgaWQ6IFwibWluX3N2Z19fYlwiLFxuICAgIGZpbGw6IFwiI2ZmZlwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwidXNlXCIsIHtcbiAgICB4bGlua0hyZWY6IFwiI21pbl9zdmdfX2FcIlxuICB9KSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImdcIiwge1xuICAgIG1hc2s6IFwidXJsKCNtaW5fc3ZnX19iKVwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIHN0cm9rZTogXCIjMzMzXCIsXG4gICAgICBzdHJva2VXaWR0aDogMS4zMzMzMzMzMzMzMzMzMzMzLFxuICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgIHN0cm9rZURhc2hhcnJheTogXCIwIDBcIlxuICAgIH0sXG4gICAgZDogXCJtMCAwIDMuMzMgMy4zXCIsXG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgyIDIpXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIHN0cm9rZTogXCIjMzMzXCIsXG4gICAgICBzdHJva2VXaWR0aDogMS4zMzMzMzMzMzMzMzMzMzMzLFxuICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgIHN0cm9rZURhc2hhcnJheTogXCIwIDBcIlxuICAgIH0sXG4gICAgZDogXCJNMCAzLjMgMy4zMyAwXCIsXG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgyIDEwLjY2NylcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHlsZToge1xuICAgICAgc3Ryb2tlOiBcIiMzMzNcIixcbiAgICAgIHN0cm9rZVdpZHRoOiAxLjMzMzMzMzMzMzMzMzMzMzMsXG4gICAgICBzdHJva2VPcGFjaXR5OiAxLFxuICAgICAgc3Ryb2tlRGFzaGFycmF5OiBcIjAgMFwiXG4gICAgfSxcbiAgICBkOiBcIk0zLjMgMy4zIDAgMFwiLFxuICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoMTAuNyAxMC42NjcpXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIHN0cm9rZTogXCIjMzMzXCIsXG4gICAgICBzdHJva2VXaWR0aDogMS4zMzMzMzMzMzMzMzMzMzMzLFxuICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgIHN0cm9rZURhc2hhcnJheTogXCIwIDBcIlxuICAgIH0sXG4gICAgZDogXCJNMy4zIDAgMCAzLjNcIixcbiAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDEwLjY2NyAyKVwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIHN0eWxlOiB7XG4gICAgICBzdHJva2U6IFwiIzMzM1wiLFxuICAgICAgc3Ryb2tlV2lkdGg6IDEuMzMzMzMzMzMzMzMzMzMzMyxcbiAgICAgIHN0cm9rZU9wYWNpdHk6IDEsXG4gICAgICBzdHJva2VEYXNoYXJyYXk6IFwiMCAwXCJcbiAgICB9LFxuICAgIGQ6IFwiTTAgMHYzaDNcIixcbiAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDEwLjY2NyAyLjMzMylcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHlsZToge1xuICAgICAgc3Ryb2tlOiBcIiMzMzNcIixcbiAgICAgIHN0cm9rZVdpZHRoOiAxLjMzMzMzMzMzMzMzMzMzMzMsXG4gICAgICBzdHJva2VPcGFjaXR5OiAxLFxuICAgICAgc3Ryb2tlRGFzaGFycmF5OiBcIjAgMFwiXG4gICAgfSxcbiAgICBkOiBcIk0zIDB2M0gwXCIsXG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgyLjMzMyAyLjMzMylcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHlsZToge1xuICAgICAgc3Ryb2tlOiBcIiMzMzNcIixcbiAgICAgIHN0cm9rZVdpZHRoOiAxLjMzMzMzMzMzMzMzMzMzMzMsXG4gICAgICBzdHJva2VPcGFjaXR5OiAxLFxuICAgICAgc3Ryb2tlRGFzaGFycmF5OiBcIjAgMFwiXG4gICAgfSxcbiAgICBkOiBcIk0zIDNWMEgwXCIsXG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgyLjMzMyAxMC42NjcpXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIHN0cm9rZTogXCIjMzMzXCIsXG4gICAgICBzdHJva2VXaWR0aDogMS4zMzMzMzMzMzMzMzMzMzMzLFxuICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgIHN0cm9rZURhc2hhcnJheTogXCIwIDBcIlxuICAgIH0sXG4gICAgZDogXCJNMCAzVjBoMi45N1wiLFxuICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoMTAuNjY3IDEwLjY2NylcIlxuICB9KSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBTdmdNaW47Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/min.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/reload.svg":
|
|
|
/*!******************************!*\
|
|
|
!*** ./app/icons/reload.svg ***!
|
|
|
\******************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _defs, _mask;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgReload = function SvgReload(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 16,\n height: 16,\n fill: \"none\"\n }, props), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n id: \"reload_svg__a\",\n d: \"M0 0h16v16H0z\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", null, _mask || (_mask = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"mask\", {\n id: \"reload_svg__b\",\n fill: \"#fff\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"use\", {\n xlinkHref: \"#reload_svg__a\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n mask: \"url(#reload_svg__b)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M0 0v5.33\",\n transform: \"translate(14 2.667)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M0 0v5.33\",\n transform: \"translate(2 8)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M12.003 6a6.005 6.005 0 0 0-10.32-4.17M0 6a6.005 6.005 0 0 0 10.17 4.32\",\n transform: \"translate(2 2)\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgReload);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvcmVsb2FkLnN2ZyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBLHNCQUFzQixzRUFBc0UsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELGlDQUFpQyxrQkFBa0I7QUFDM1E7QUFDL0I7QUFDQSxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLHlDQUF5QyxnREFBbUIsNEJBQTRCLGdEQUFtQjtBQUM5RztBQUNBO0FBQ0EsR0FBRyxrQkFBa0IsZ0RBQW1CLDJDQUEyQyxnREFBbUI7QUFDdEc7QUFDQTtBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQSxHQUFHLGtCQUFrQixnREFBbUI7QUFDeEM7QUFDQSxHQUFHLGVBQWUsZ0RBQW1CO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHLGdCQUFnQixnREFBbUI7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsaUVBQWUsU0FBUyIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2ljb25zL3JlbG9hZC5zdmc/NTIxNCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX2RlZnMsIF9tYXNrO1xuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiA/IE9iamVjdC5hc3NpZ24uYmluZCgpIDogZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbnZhciBTdmdSZWxvYWQgPSBmdW5jdGlvbiBTdmdSZWxvYWQocHJvcHMpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIF9leHRlbmRzKHtcbiAgICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFxuICAgIHhtbG5zWGxpbms6IFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLFxuICAgIHdpZHRoOiAxNixcbiAgICBoZWlnaHQ6IDE2LFxuICAgIGZpbGw6IFwibm9uZVwiXG4gIH0sIHByb3BzKSwgX2RlZnMgfHwgKF9kZWZzID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkZWZzXCIsIG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgaWQ6IFwicmVsb2FkX3N2Z19fYVwiLFxuICAgIGQ6IFwiTTAgMGgxNnYxNkgwelwiXG4gIH0pKSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZ1wiLCBudWxsLCBfbWFzayB8fCAoX21hc2sgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcIm1hc2tcIiwge1xuICAgIGlkOiBcInJlbG9hZF9zdmdfX2JcIixcbiAgICBmaWxsOiBcIiNmZmZcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInVzZVwiLCB7XG4gICAgeGxpbmtIcmVmOiBcIiNyZWxvYWRfc3ZnX19hXCJcbiAgfSkpKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICBtYXNrOiBcInVybCgjcmVsb2FkX3N2Z19fYilcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIHN0eWxlOiB7XG4gICAgICBzdHJva2U6IFwiIzMzM1wiLFxuICAgICAgc3Ryb2tlV2lkdGg6IDEuMzMzMzMzMzMzMzMzMzMzMyxcbiAgICAgIHN0cm9rZU9wYWNpdHk6IDEsXG4gICAgICBzdHJva2VEYXNoYXJyYXk6IFwiMCAwXCJcbiAgICB9LFxuICAgIGQ6IFwiTTAgMHY1LjMzXCIsXG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgxNCAyLjY2NylcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHlsZToge1xuICAgICAgc3Ryb2tlOiBcIiMzMzNcIixcbiAgICAgIHN0cm9rZVdpZHRoOiAxLjMzMzMzMzMzMzMzMzMzMzMsXG4gICAgICBzdHJva2VPcGFjaXR5OiAxLFxuICAgICAgc3Ryb2tlRGFzaGFycmF5OiBcIjAgMFwiXG4gICAgfSxcbiAgICBkOiBcIk0wIDB2NS4zM1wiLFxuICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoMiA4KVwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIHN0eWxlOiB7XG4gICAgICBzdHJva2U6IFwiIzMzM1wiLFxuICAgICAgc3Ryb2tlV2lkdGg6IDEuMzMzLFxuICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgIHN0cm9rZURhc2hhcnJheTogXCIwIDBcIlxuICAgIH0sXG4gICAgZDogXCJNMTIuMDAzIDZhNi4wMDUgNi4wMDUgMCAwIDAtMTAuMzItNC4xN00wIDZhNi4wMDUgNi4wMDUgMCAwIDAgMTAuMTcgNC4zMlwiLFxuICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoMiAyKVwiXG4gIH0pKSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IFN2Z1JlbG9hZDsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/reload.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/settings.svg":
|
|
|
/*!********************************!*\
|
|
|
!*** ./app/icons/settings.svg ***!
|
|
|
\********************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _defs, _mask;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgSettings = function SvgSettings(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 16,\n height: 16,\n fill: \"none\"\n }, props), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n id: \"settings_svg__a\",\n d: \"M0 0h16v16H0z\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", null, _mask || (_mask = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"mask\", {\n id: \"settings_svg__b\",\n fill: \"#fff\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"use\", {\n xlinkHref: \"#settings_svg__a\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"g\", {\n mask: \"url(#settings_svg__b)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M13.33 5.67 10 0H3.33L0 5.67l3.33 5.66H10l3.33-5.66Z\",\n transform: \"translate(1.333 2.333)\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n style: {\n stroke: \"#333\",\n strokeWidth: 1.3333333333333333,\n strokeOpacity: 1,\n strokeDasharray: \"0 0\"\n },\n d: \"M3.33 1.67C3.33.75 2.59 0 1.67 0 .75 0 0 .75 0 1.67c0 .92.75 1.66 1.67 1.66.92 0 1.66-.74 1.66-1.66Z\",\n transform: \"translate(6.333 6.333)\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgSettings);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvc2V0dGluZ3Muc3ZnIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0Esc0JBQXNCLHNFQUFzRSxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsaUNBQWlDLGtCQUFrQjtBQUMzUTtBQUMvQjtBQUNBLHNCQUFzQixnREFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcseUNBQXlDLGdEQUFtQiw0QkFBNEIsZ0RBQW1CO0FBQzlHO0FBQ0E7QUFDQSxHQUFHLGtCQUFrQixnREFBbUIsMkNBQTJDLGdEQUFtQjtBQUN0RztBQUNBO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBLEdBQUcsa0JBQWtCLGdEQUFtQjtBQUN4QztBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlFQUFlLFdBQVciLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9pY29ucy9zZXR0aW5ncy5zdmc/ODVmNiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX2RlZnMsIF9tYXNrO1xuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiA/IE9iamVjdC5hc3NpZ24uYmluZCgpIDogZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbnZhciBTdmdTZXR0aW5ncyA9IGZ1bmN0aW9uIFN2Z1NldHRpbmdzKHByb3BzKSB7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCBfZXh0ZW5kcyh7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICB4bWxuc1hsaW5rOiBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIixcbiAgICB3aWR0aDogMTYsXG4gICAgaGVpZ2h0OiAxNixcbiAgICBmaWxsOiBcIm5vbmVcIlxuICB9LCBwcm9wcyksIF9kZWZzIHx8IChfZGVmcyA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGVmc1wiLCBudWxsLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGlkOiBcInNldHRpbmdzX3N2Z19fYVwiLFxuICAgIGQ6IFwiTTAgMGgxNnYxNkgwelwiXG4gIH0pKSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZ1wiLCBudWxsLCBfbWFzayB8fCAoX21hc2sgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcIm1hc2tcIiwge1xuICAgIGlkOiBcInNldHRpbmdzX3N2Z19fYlwiLFxuICAgIGZpbGw6IFwiI2ZmZlwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwidXNlXCIsIHtcbiAgICB4bGlua0hyZWY6IFwiI3NldHRpbmdzX3N2Z19fYVwiXG4gIH0pKSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZ1wiLCB7XG4gICAgbWFzazogXCJ1cmwoI3NldHRpbmdzX3N2Z19fYilcIlxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIHN0eWxlOiB7XG4gICAgICBzdHJva2U6IFwiIzMzM1wiLFxuICAgICAgc3Ryb2tlV2lkdGg6IDEuMzMzMzMzMzMzMzMzMzMzMyxcbiAgICAgIHN0cm9rZU9wYWNpdHk6IDEsXG4gICAgICBzdHJva2VEYXNoYXJyYXk6IFwiMCAwXCJcbiAgICB9LFxuICAgIGQ6IFwiTTEzLjMzIDUuNjcgMTAgMEgzLjMzTDAgNS42N2wzLjMzIDUuNjZIMTBsMy4zMy01LjY2WlwiLFxuICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoMS4zMzMgMi4zMzMpXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIHN0cm9rZTogXCIjMzMzXCIsXG4gICAgICBzdHJva2VXaWR0aDogMS4zMzMzMzMzMzMzMzMzMzMzLFxuICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgIHN0cm9rZURhc2hhcnJheTogXCIwIDBcIlxuICAgIH0sXG4gICAgZDogXCJNMy4zMyAxLjY3QzMuMzMuNzUgMi41OSAwIDEuNjcgMCAuNzUgMCAwIC43NSAwIDEuNjdjMCAuOTIuNzUgMS42NiAxLjY3IDEuNjYuOTIgMCAxLjY2LS43NCAxLjY2LTEuNjZaXCIsXG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSg2LjMzMyA2LjMzMylcIlxuICB9KSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBTdmdTZXR0aW5nczsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/settings.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/three-dots.svg":
|
|
|
/*!**********************************!*\
|
|
|
!*** ./app/icons/three-dots.svg ***!
|
|
|
\**********************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _circle, _circle2, _circle3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar SvgThreeDots = function SvgThreeDots(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 30,\n height: 14,\n fill: \"#fff\",\n viewBox: \"0 0 120 30\"\n }, props), _circle || (_circle = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"circle\", {\n cx: 15,\n cy: 15,\n r: 15,\n fill: \"var(--primary, red)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"0.8s\",\n from: 15,\n repeatCount: \"indefinite\",\n to: 15,\n values: \"15;9;15\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"0.8s\",\n from: 1,\n repeatCount: \"indefinite\",\n to: 1,\n values: \"1;.5;1\"\n }))), _circle2 || (_circle2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"circle\", {\n cx: 60,\n cy: 15,\n r: 9,\n fill: \"var(--primary, red)\",\n fillOpacity: 0.3\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"0.8s\",\n from: 9,\n repeatCount: \"indefinite\",\n to: 9,\n values: \"9;15;9\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"0.8s\",\n from: 0.5,\n repeatCount: \"indefinite\",\n to: 0.5,\n values: \".5;1;.5\"\n }))), _circle3 || (_circle3 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"circle\", {\n cx: 105,\n cy: 15,\n r: 15,\n fill: \"var(--primary, red)\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"0.8s\",\n from: 15,\n repeatCount: \"indefinite\",\n to: 15,\n values: \"15;9;15\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"0.8s\",\n from: 1,\n repeatCount: \"indefinite\",\n to: 1,\n values: \"1;.5;1\"\n }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgThreeDots);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvdGhyZWUtZG90cy5zdmciLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQSxzQkFBc0Isc0VBQXNFLGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCxpQ0FBaUMsa0JBQWtCO0FBQzNRO0FBQy9CO0FBQ0Esc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyw2Q0FBNkMsZ0RBQW1CO0FBQ25FO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixFQUFFO0FBQ2xCLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsR0FBRztBQUNsQixHQUFHLDBDQUEwQyxnREFBbUI7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsZUFBZSxnREFBbUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLEdBQUc7QUFDbEIsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLEVBQUU7QUFDbEIsR0FBRywwQ0FBMEMsZ0RBQW1CO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxlQUFlLGdEQUFtQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixFQUFFO0FBQ2xCLEdBQUcsZ0JBQWdCLGdEQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsR0FBRztBQUNsQixHQUFHO0FBQ0g7QUFDQSxpRUFBZSxZQUFZIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvaWNvbnMvdGhyZWUtZG90cy5zdmc/MDZjZiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX2NpcmNsZSwgX2NpcmNsZTIsIF9jaXJjbGUzO1xuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiA/IE9iamVjdC5hc3NpZ24uYmluZCgpIDogZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbnZhciBTdmdUaHJlZURvdHMgPSBmdW5jdGlvbiBTdmdUaHJlZURvdHMocHJvcHMpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIF9leHRlbmRzKHtcbiAgICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFxuICAgIHdpZHRoOiAzMCxcbiAgICBoZWlnaHQ6IDE0LFxuICAgIGZpbGw6IFwiI2ZmZlwiLFxuICAgIHZpZXdCb3g6IFwiMCAwIDEyMCAzMFwiXG4gIH0sIHByb3BzKSwgX2NpcmNsZSB8fCAoX2NpcmNsZSA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiY2lyY2xlXCIsIHtcbiAgICBjeDogMTUsXG4gICAgY3k6IDE1LFxuICAgIHI6IDE1LFxuICAgIGZpbGw6IFwidmFyKC0tcHJpbWFyeSwgcmVkKVwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiYW5pbWF0ZVwiLCB7XG4gICAgYXR0cmlidXRlTmFtZTogXCJyXCIsXG4gICAgYmVnaW46IFwiMHNcIixcbiAgICBjYWxjTW9kZTogXCJsaW5lYXJcIixcbiAgICBkdXI6IFwiMC44c1wiLFxuICAgIGZyb206IDE1LFxuICAgIHJlcGVhdENvdW50OiBcImluZGVmaW5pdGVcIixcbiAgICB0bzogMTUsXG4gICAgdmFsdWVzOiBcIjE1Ozk7MTVcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhbmltYXRlXCIsIHtcbiAgICBhdHRyaWJ1dGVOYW1lOiBcImZpbGwtb3BhY2l0eVwiLFxuICAgIGJlZ2luOiBcIjBzXCIsXG4gICAgY2FsY01vZGU6IFwibGluZWFyXCIsXG4gICAgZHVyOiBcIjAuOHNcIixcbiAgICBmcm9tOiAxLFxuICAgIHJlcGVhdENvdW50OiBcImluZGVmaW5pdGVcIixcbiAgICB0bzogMSxcbiAgICB2YWx1ZXM6IFwiMTsuNTsxXCJcbiAgfSkpKSwgX2NpcmNsZTIgfHwgKF9jaXJjbGUyID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJjaXJjbGVcIiwge1xuICAgIGN4OiA2MCxcbiAgICBjeTogMTUsXG4gICAgcjogOSxcbiAgICBmaWxsOiBcInZhcigtLXByaW1hcnksIHJlZClcIixcbiAgICBmaWxsT3BhY2l0eTogMC4zXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiYW5pbWF0ZVwiLCB7XG4gICAgYXR0cmlidXRlTmFtZTogXCJyXCIsXG4gICAgYmVnaW46IFwiMHNcIixcbiAgICBjYWxjTW9kZTogXCJsaW5lYXJcIixcbiAgICBkdXI6IFwiMC44c1wiLFxuICAgIGZyb206IDksXG4gICAgcmVwZWF0Q291bnQ6IFwiaW5kZWZpbml0ZVwiLFxuICAgIHRvOiA5LFxuICAgIHZhbHVlczogXCI5OzE1OzlcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhbmltYXRlXCIsIHtcbiAgICBhdHRyaWJ1dGVOYW1lOiBcImZpbGwtb3BhY2l0eVwiLFxuICAgIGJlZ2luOiBcIjBzXCIsXG4gICAgY2FsY01vZGU6IFwibGluZWFyXCIsXG4gICAgZHVyOiBcIjAuOHNcIixcbiAgICBmcm9tOiAwLjUsXG4gICAgcmVwZWF0Q291bnQ6IFwiaW5kZWZpbml0ZVwiLFxuICAgIHRvOiAwLjUsXG4gICAgdmFsdWVzOiBcIi41OzE7LjVcIlxuICB9KSkpLCBfY2lyY2xlMyB8fCAoX2NpcmNsZTMgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImNpcmNsZVwiLCB7XG4gICAgY3g6IDEwNSxcbiAgICBjeTogMTUsXG4gICAgcjogMTUsXG4gICAgZmlsbDogXCJ2YXIoLS1wcmltYXJ5LCByZWQpXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhbmltYXRlXCIsIHtcbiAgICBhdHRyaWJ1dGVOYW1lOiBcInJcIixcbiAgICBiZWdpbjogXCIwc1wiLFxuICAgIGNhbGNNb2RlOiBcImxpbmVhclwiLFxuICAgIGR1cjogXCIwLjhzXCIsXG4gICAgZnJvbTogMTUsXG4gICAgcmVwZWF0Q291bnQ6IFwiaW5kZWZpbml0ZVwiLFxuICAgIHRvOiAxNSxcbiAgICB2YWx1ZXM6IFwiMTU7OTsxNVwiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImFuaW1hdGVcIiwge1xuICAgIGF0dHJpYnV0ZU5hbWU6IFwiZmlsbC1vcGFjaXR5XCIsXG4gICAgYmVnaW46IFwiMHNcIixcbiAgICBjYWxjTW9kZTogXCJsaW5lYXJcIixcbiAgICBkdXI6IFwiMC44c1wiLFxuICAgIGZyb206IDEsXG4gICAgcmVwZWF0Q291bnQ6IFwiaW5kZWZpbml0ZVwiLFxuICAgIHRvOiAxLFxuICAgIHZhbHVlczogXCIxOy41OzFcIlxuICB9KSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBTdmdUaHJlZURvdHM7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/three-dots.svg\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=D%3A%5CNextChatCD%5Capp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=D%3A%5CNextChatCD&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=standalone&preferredRegion=&middlewareConfig=e30%3D!":
|
|
|
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
|
!*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=D%3A%5CNextChatCD%5Capp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=D%3A%5CNextChatCD&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=standalone&preferredRegion=&middlewareConfig=e30%3D! ***!
|
|
|
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GlobalError: () => (/* reexport default from dynamic */ next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default.a),\n/* harmony export */ __next_app__: () => (/* binding */ __next_app__),\n/* harmony export */ originalPathname: () => (/* binding */ originalPathname),\n/* harmony export */ pages: () => (/* binding */ pages),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ tree: () => (/* binding */ tree)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-page/module.compiled */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js?9d97\");\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/client/components/error-boundary */ \"(rsc)/./node_modules/next/dist/client/components/error-boundary.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/server/app-render/entry-base */ \"(rsc)/./node_modules/next/dist/server/app-render/entry-base.js\");\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__) if([\"default\",\"tree\",\"pages\",\"GlobalError\",\"originalPathname\",\"__next_app__\",\"routeModule\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\"TURBOPACK { transition: next-ssr }\";\n\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\nconst tree = {\n children: [\n '',\n {\n children: ['__PAGE__', {}, {\n page: [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/page.tsx */ \"(rsc)/./app/page.tsx\")), \"D:\\\\NextChatCD\\\\app\\\\page.tsx\"],\n \n }]\n },\n {\n 'layout': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/layout.tsx */ \"(rsc)/./app/layout.tsx\")), \"D:\\\\NextChatCD\\\\app\\\\layout.tsx\"],\n'not-found': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/not-found-error */ \"(rsc)/./node_modules/next/dist/client/components/not-found-error.js\", 23)), \"next/dist/client/components/not-found-error\"],\n \n }\n ]\n }.children;\nconst pages = [\"D:\\\\NextChatCD\\\\app\\\\page.tsx\"];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst originalPathname = \"/page\";\nconst __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__\n};\n\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n page: \"/page\",\n pathname: \"/\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\",\n appPaths: []\n },\n userland: {\n loaderTree: tree\n }\n});\n\n//# sourceMappingURL=app-page.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIuanM/bmFtZT1hcHAlMkZwYWdlJnBhZ2U9JTJGcGFnZSZhcHBQYXRocz0lMkZwYWdlJnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGcGFnZS50c3gmYXBwRGlyPUQlM0ElNUNOZXh0Q2hhdENEJTVDYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj1EJTNBJTVDTmV4dENoYXRDRCZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmJhc2VQYXRoPSZhc3NldFByZWZpeD0mbmV4dENvbmZpZ091dHB1dD1zdGFuZGFsb25lJnByZWZlcnJlZFJlZ2lvbj0mbWlkZGxld2FyZUNvbmZpZz1lMzAlM0QhIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxhQUFhLHNCQUFzQjtBQUNpRTtBQUNyQztBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakMsdUJBQXVCLHdJQUFrRTtBQUN6RjtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQSx5QkFBeUIsNElBQW9FO0FBQzdGLG9CQUFvQiwwTkFBZ0Y7QUFDcEc7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ3VCO0FBQzZEO0FBQ3BGLDZCQUE2QixtQkFBbUI7QUFDaEQ7QUFDTztBQUNBO0FBQ1A7QUFDQTtBQUNBO0FBQ3VEO0FBQ3ZEO0FBQ08sd0JBQXdCLDhHQUFrQjtBQUNqRDtBQUNBLGNBQWMseUVBQVM7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8/MGMyOCJdLCJzb3VyY2VzQ29udGVudCI6WyJcIlRVUkJPUEFDSyB7IHRyYW5zaXRpb246IG5leHQtc3NyIH1cIjtcbmltcG9ydCB7IEFwcFBhZ2VSb3V0ZU1vZHVsZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL21vZHVsZS5jb21waWxlZFwiO1xuaW1wb3J0IHsgUm91dGVLaW5kIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLWtpbmRcIjtcbi8vIFdlIGluamVjdCB0aGUgdHJlZSBhbmQgcGFnZXMgaGVyZSBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlbSBpbiB0aGUgcm91dGVcbi8vIG1vZHVsZS5cbmNvbnN0IHRyZWUgPSB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICcnLFxuICAgICAgICB7XG4gICAgICAgIGNoaWxkcmVuOiBbJ19fUEFHRV9fJywge30sIHtcbiAgICAgICAgICBwYWdlOiBbKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJEOlxcXFxOZXh0Q2hhdENEXFxcXGFwcFxcXFxwYWdlLnRzeFwiKSwgXCJEOlxcXFxOZXh0Q2hhdENEXFxcXGFwcFxcXFxwYWdlLnRzeFwiXSxcbiAgICAgICAgICBcbiAgICAgICAgfV1cbiAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgJ2xheW91dCc6IFsoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIkQ6XFxcXE5leHRDaGF0Q0RcXFxcYXBwXFxcXGxheW91dC50c3hcIiksIFwiRDpcXFxcTmV4dENoYXRDRFxcXFxhcHBcXFxcbGF5b3V0LnRzeFwiXSxcbidub3QtZm91bmQnOiBbKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLWVycm9yXCIpLCBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9ub3QtZm91bmQtZXJyb3JcIl0sXG4gICAgICAgIFxuICAgICAgfVxuICAgICAgXVxuICAgICAgfS5jaGlsZHJlbjtcbmNvbnN0IHBhZ2VzID0gW1wiRDpcXFxcTmV4dENoYXRDRFxcXFxhcHBcXFxccGFnZS50c3hcIl07XG5leHBvcnQgeyB0cmVlLCBwYWdlcyB9O1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHbG9iYWxFcnJvciB9IGZyb20gXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnlcIjtcbmNvbnN0IF9fbmV4dF9hcHBfcmVxdWlyZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfX1xuY29uc3QgX19uZXh0X2FwcF9sb2FkX2NodW5rX18gPSAoKSA9PiBQcm9taXNlLnJlc29sdmUoKVxuZXhwb3J0IGNvbnN0IG9yaWdpbmFsUGF0aG5hbWUgPSBcIi9wYWdlXCI7XG5leHBvcnQgY29uc3QgX19uZXh0X2FwcF9fID0ge1xuICAgIHJlcXVpcmU6IF9fbmV4dF9hcHBfcmVxdWlyZV9fLFxuICAgIGxvYWRDaHVuazogX19uZXh0X2FwcF9sb2FkX2NodW5rX19cbn07XG5leHBvcnQgKiBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2VudHJ5LWJhc2VcIjtcbi8vIENyZWF0ZSBhbmQgZXhwb3J0IHRoZSByb3V0ZSBtb2R1bGUgdGhhdCB3aWxsIGJlIGNvbnN1bWVkLlxuZXhwb3J0IGNvbnN0IHJvdXRlTW9kdWxlID0gbmV3IEFwcFBhZ2VSb3V0ZU1vZHVsZSh7XG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgICBraW5kOiBSb3V0ZUtpbmQuQVBQX1BBR0UsXG4gICAgICAgIHBhZ2U6IFwiL3BhZ2VcIixcbiAgICAgICAgcGF0aG5hbWU6IFwiL1wiLFxuICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGFyZW4ndCB1c2VkIGluIHByb2R1Y3Rpb24uXG4gICAgICAgIGJ1bmRsZVBhdGg6IFwiXCIsXG4gICAgICAgIGZpbGVuYW1lOiBcIlwiLFxuICAgICAgICBhcHBQYXRoczogW11cbiAgICB9LFxuICAgIHVzZXJsYW5kOiB7XG4gICAgICAgIGxvYWRlclRyZWU6IHRyZWVcbiAgICB9XG59KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBwLXBhZ2UuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=D%3A%5CNextChatCD%5Capp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=D%3A%5CNextChatCD&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=standalone&preferredRegion=&middlewareConfig=e30%3D!\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(action-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js?actions=%5B%5B%22D%3A%5C%5CNextChatCD%5C%5Capp%5C%5Cmcp%5C%5Cactions.ts%22%2C%5B%22pauseMcpServer%22%2C%22getAllTools%22%2C%22removeMcpServer%22%2C%22executeMcpAction%22%2C%22getClientsStatus%22%2C%22resumeMcpServer%22%2C%22restartAllClients%22%2C%22getClientTools%22%2C%22isMcpEnabled%22%2C%22addMcpServer%22%2C%22getMcpConfigFromFile%22%2C%22initializeMcpSystem%22%2C%22getAvailableClientsCount%22%5D%5D%5D&__client_imported__=true!":
|
|
|
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
|
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js?actions=%5B%5B%22D%3A%5C%5CNextChatCD%5C%5Capp%5C%5Cmcp%5C%5Cactions.ts%22%2C%5B%22pauseMcpServer%22%2C%22getAllTools%22%2C%22removeMcpServer%22%2C%22executeMcpAction%22%2C%22getClientsStatus%22%2C%22resumeMcpServer%22%2C%22restartAllClients%22%2C%22getClientTools%22%2C%22isMcpEnabled%22%2C%22addMcpServer%22%2C%22getMcpConfigFromFile%22%2C%22initializeMcpSystem%22%2C%22getAvailableClientsCount%22%5D%5D%5D&__client_imported__=true! ***!
|
|
|
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
|
|
|
|
eval("\nconst actions = {\n'0738121a4b6e945d4d7f19a0cf865a5a810ff059': () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/mcp/actions.ts */ \"(action-browser)/./app/mcp/actions.ts\")).then(mod => mod[\"pauseMcpServer\"]),\n'0cc1bb8b7fae04fc0bfe16559f3c71def9d3e202': () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/mcp/actions.ts */ \"(action-browser)/./app/mcp/actions.ts\")).then(mod => mod[\"getAllTools\"]),\n'12a02a0a1bb30f418eeb2f78145610a80751fddd': () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/mcp/actions.ts */ \"(action-browser)/./app/mcp/actions.ts\")).then(mod => mod[\"removeMcpServer\"]),\n'6a284ad1ba0aba80fa5c9a24b8d5668436584677': () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/mcp/actions.ts */ \"(action-browser)/./app/mcp/actions.ts\")).then(mod => mod[\"executeMcpAction\"]),\n'6bc662cc2c04a1f59a62824812c945b2b84b8ff2': () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/mcp/actions.ts */ \"(action-browser)/./app/mcp/actions.ts\")).then(mod => mod[\"getClientsStatus\"]),\n'83ae1d001e1c16ff855b009e3cffcdb234c9a926': () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/mcp/actions.ts */ \"(action-browser)/./app/mcp/actions.ts\")).then(mod => mod[\"resumeMcpServer\"]),\n'990a011258fb8dfa09437cad83b00c0996c82263': () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/mcp/actions.ts */ \"(action-browser)/./app/mcp/actions.ts\")).then(mod => mod[\"restartAllClients\"]),\n'abfb777b0108b39c6c56a81eb04ddd578f59d807': () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/mcp/actions.ts */ \"(action-browser)/./app/mcp/actions.ts\")).then(mod => mod[\"getClientTools\"]),\n'c547693e672eb51f34b4a980d1c3f04b3aae5f84': () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/mcp/actions.ts */ \"(action-browser)/./app/mcp/actions.ts\")).then(mod => mod[\"isMcpEnabled\"]),\n'cd172e1a35b3579639d863b253384632f568bab9': () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/mcp/actions.ts */ \"(action-browser)/./app/mcp/actions.ts\")).then(mod => mod[\"addMcpServer\"]),\n'dfb3d1712f775deceab516c90c44b67a4cf20ea8': () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/mcp/actions.ts */ \"(action-browser)/./app/mcp/actions.ts\")).then(mod => mod[\"getMcpConfigFromFile\"]),\n'e2f0b7ee2e57e1faf5bcc9de96b591a1968800b8': () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/mcp/actions.ts */ \"(action-browser)/./app/mcp/actions.ts\")).then(mod => mod[\"initializeMcpSystem\"]),\n'fbda293b3f26334f4c26878a53ae4c17bedab52e': () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/mcp/actions.ts */ \"(action-browser)/./app/mcp/actions.ts\")).then(mod => mod[\"getAvailableClientsCount\"]),\n}\n\nasync function endpoint(id, ...args) {\n const action = await actions[id]()\n return action.apply(null, args)\n}\n\n// Using CJS to avoid this to be tree-shaken away due to unused exports.\nmodule.exports = {\n '0738121a4b6e945d4d7f19a0cf865a5a810ff059': endpoint.bind(null, '0738121a4b6e945d4d7f19a0cf865a5a810ff059'),\n '0cc1bb8b7fae04fc0bfe16559f3c71def9d3e202': endpoint.bind(null, '0cc1bb8b7fae04fc0bfe16559f3c71def9d3e202'),\n '12a02a0a1bb30f418eeb2f78145610a80751fddd': endpoint.bind(null, '12a02a0a1bb30f418eeb2f78145610a80751fddd'),\n '6a284ad1ba0aba80fa5c9a24b8d5668436584677': endpoint.bind(null, '6a284ad1ba0aba80fa5c9a24b8d5668436584677'),\n '6bc662cc2c04a1f59a62824812c945b2b84b8ff2': endpoint.bind(null, '6bc662cc2c04a1f59a62824812c945b2b84b8ff2'),\n '83ae1d001e1c16ff855b009e3cffcdb234c9a926': endpoint.bind(null, '83ae1d001e1c16ff855b009e3cffcdb234c9a926'),\n '990a011258fb8dfa09437cad83b00c0996c82263': endpoint.bind(null, '990a011258fb8dfa09437cad83b00c0996c82263'),\n 'abfb777b0108b39c6c56a81eb04ddd578f59d807': endpoint.bind(null, 'abfb777b0108b39c6c56a81eb04ddd578f59d807'),\n 'c547693e672eb51f34b4a980d1c3f04b3aae5f84': endpoint.bind(null, 'c547693e672eb51f34b4a980d1c3f04b3aae5f84'),\n 'cd172e1a35b3579639d863b253384632f568bab9': endpoint.bind(null, 'cd172e1a35b3579639d863b253384632f568bab9'),\n 'dfb3d1712f775deceab516c90c44b67a4cf20ea8': endpoint.bind(null, 'dfb3d1712f775deceab516c90c44b67a4cf20ea8'),\n 'e2f0b7ee2e57e1faf5bcc9de96b591a1968800b8': endpoint.bind(null, 'e2f0b7ee2e57e1faf5bcc9de96b591a1968800b8'),\n 'fbda293b3f26334f4c26878a53ae4c17bedab52e': endpoint.bind(null, 'fbda293b3f26334f4c26878a53ae4c17bedab52e'),\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWFjdGlvbi1lbnRyeS1sb2FkZXIuanM/YWN0aW9ucz0lNUIlNUIlMjJEJTNBJTVDJTVDTmV4dENoYXRDRCU1QyU1Q2FwcCU1QyU1Q21jcCU1QyU1Q2FjdGlvbnMudHMlMjIlMkMlNUIlMjJwYXVzZU1jcFNlcnZlciUyMiUyQyUyMmdldEFsbFRvb2xzJTIyJTJDJTIycmVtb3ZlTWNwU2VydmVyJTIyJTJDJTIyZXhlY3V0ZU1jcEFjdGlvbiUyMiUyQyUyMmdldENsaWVudHNTdGF0dXMlMjIlMkMlMjJyZXN1bWVNY3BTZXJ2ZXIlMjIlMkMlMjJyZXN0YXJ0QWxsQ2xpZW50cyUyMiUyQyUyMmdldENsaWVudFRvb2xzJTIyJTJDJTIyaXNNY3BFbmFibGVkJTIyJTJDJTIyYWRkTWNwU2VydmVyJTIyJTJDJTIyZ2V0TWNwQ29uZmlnRnJvbUZpbGUlMjIlMkMlMjJpbml0aWFsaXplTWNwU3lzdGVtJTIyJTJDJTIyZ2V0QXZhaWxhYmxlQ2xpZW50c0NvdW50JTIyJTVEJTVEJTVEJl9fY2xpZW50X2ltcG9ydGVkX189dHJ1ZSEiLCJtYXBwaW5ncyI6IjtBQUNBO0FBQ0Esa0RBQWtELCtKQUF5RTtBQUMzSCxrREFBa0QsK0pBQXlFO0FBQzNILGtEQUFrRCwrSkFBeUU7QUFDM0gsa0RBQWtELCtKQUF5RTtBQUMzSCxrREFBa0QsK0pBQXlFO0FBQzNILGtEQUFrRCwrSkFBeUU7QUFDM0gsa0RBQWtELCtKQUF5RTtBQUMzSCxrREFBa0QsK0pBQXlFO0FBQzNILGtEQUFrRCwrSkFBeUU7QUFDM0gsa0RBQWtELCtKQUF5RTtBQUMzSCxrREFBa0QsK0pBQXlFO0FBQzNILGtEQUFrRCwrSkFBeUU7QUFDM0gsa0RBQWtELCtKQUF5RTtBQUMzSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Lz9mNDM5Il0sInNvdXJjZXNDb250ZW50IjpbIlxuY29uc3QgYWN0aW9ucyA9IHtcbicwNzM4MTIxYTRiNmU5NDVkNGQ3ZjE5YTBjZjg2NWE1YTgxMGZmMDU5JzogKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJEOlxcXFxOZXh0Q2hhdENEXFxcXGFwcFxcXFxtY3BcXFxcYWN0aW9ucy50c1wiKS50aGVuKG1vZCA9PiBtb2RbXCJwYXVzZU1jcFNlcnZlclwiXSksXG4nMGNjMWJiOGI3ZmFlMDRmYzBiZmUxNjU1OWYzYzcxZGVmOWQzZTIwMic6ICgpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiRDpcXFxcTmV4dENoYXRDRFxcXFxhcHBcXFxcbWNwXFxcXGFjdGlvbnMudHNcIikudGhlbihtb2QgPT4gbW9kW1wiZ2V0QWxsVG9vbHNcIl0pLFxuJzEyYTAyYTBhMWJiMzBmNDE4ZWViMmY3ODE0NTYxMGE4MDc1MWZkZGQnOiAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIkQ6XFxcXE5leHRDaGF0Q0RcXFxcYXBwXFxcXG1jcFxcXFxhY3Rpb25zLnRzXCIpLnRoZW4obW9kID0+IG1vZFtcInJlbW92ZU1jcFNlcnZlclwiXSksXG4nNmEyODRhZDFiYTBhYmE4MGZhNWM5YTI0YjhkNTY2ODQzNjU4NDY3Nyc6ICgpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiRDpcXFxcTmV4dENoYXRDRFxcXFxhcHBcXFxcbWNwXFxcXGFjdGlvbnMudHNcIikudGhlbihtb2QgPT4gbW9kW1wiZXhlY3V0ZU1jcEFjdGlvblwiXSksXG4nNmJjNjYyY2MyYzA0YTFmNTlhNjI4MjQ4MTJjOTQ1YjJiODRiOGZmMic6ICgpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiRDpcXFxcTmV4dENoYXRDRFxcXFxhcHBcXFxcbWNwXFxcXGFjdGlvbnMudHNcIikudGhlbihtb2QgPT4gbW9kW1wiZ2V0Q2xpZW50c1N0YXR1c1wiXSksXG4nODNhZTFkMDAxZTFjMTZmZjg1NWIwMDllM2NmZmNkYjIzNGM5YTkyNic6ICgpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiRDpcXFxcTmV4dENoYXRDRFxcXFxhcHBcXFxcbWNwXFxcXGFjdGlvbnMudHNcIikudGhlbihtb2QgPT4gbW9kW1wicmVzdW1lTWNwU2VydmVyXCJdKSxcbic5OTBhMDExMjU4ZmI4ZGZhMDk0MzdjYWQ4M2IwMGMwOTk2YzgyMjYzJzogKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJEOlxcXFxOZXh0Q2hhdENEXFxcXGFwcFxcXFxtY3BcXFxcYWN0aW9ucy50c1wiKS50aGVuKG1vZCA9PiBtb2RbXCJyZXN0YXJ0QWxsQ2xpZW50c1wiXSksXG4nYWJmYjc3N2IwMTA4YjM5YzZjNTZhODFlYjA0ZGRkNTc4ZjU5ZDgwNyc6ICgpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiRDpcXFxcTmV4dENoYXRDRFxcXFxhcHBcXFxcbWNwXFxcXGFjdGlvbnMudHNcIikudGhlbihtb2QgPT4gbW9kW1wiZ2V0Q2xpZW50VG9vbHNcIl0pLFxuJ2M1NDc2OTNlNjcyZWI1MWYzNGI0YTk4MGQxYzNmMDRiM2FhZTVmODQnOiAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIkQ6XFxcXE5leHRDaGF0Q0RcXFxcYXBwXFxcXG1jcFxcXFxhY3Rpb25zLnRzXCIpLnRoZW4obW9kID0+IG1vZFtcImlzTWNwRW5hYmxlZFwiXSksXG4nY2QxNzJlMWEzNWIzNTc5NjM5ZDg2M2IyNTMzODQ2MzJmNTY4YmFiOSc6ICgpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiRDpcXFxcTmV4dENoYXRDRFxcXFxhcHBcXFxcbWNwXFxcXGFjdGlvbnMudHNcIikudGhlbihtb2QgPT4gbW9kW1wiYWRkTWNwU2VydmVyXCJdKSxcbidkZmIzZDE3MTJmNzc1ZGVjZWFiNTE2YzkwYzQ0YjY3YTRjZjIwZWE4JzogKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJEOlxcXFxOZXh0Q2hhdENEXFxcXGFwcFxcXFxtY3BcXFxcYWN0aW9ucy50c1wiKS50aGVuKG1vZCA9PiBtb2RbXCJnZXRNY3BDb25maWdGcm9tRmlsZVwiXSksXG4nZTJmMGI3ZWUyZTU3ZTFmYWY1YmNjOWRlOTZiNTkxYTE5Njg4MDBiOCc6ICgpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiRDpcXFxcTmV4dENoYXRDRFxcXFxhcHBcXFxcbWNwXFxcXGFjdGlvbnMudHNcIikudGhlbihtb2QgPT4gbW9kW1wiaW5pdGlhbGl6ZU1jcFN5c3RlbVwiXSksXG4nZmJkYTI5M2IzZjI2MzM0ZjRjMjY4NzhhNTNhZTRjMTdiZWRhYjUyZSc6ICgpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiRDpcXFxcTmV4dENoYXRDRFxcXFxhcHBcXFxcbWNwXFxcXGFjdGlvbnMudHNcIikudGhlbihtb2QgPT4gbW9kW1wiZ2V0QXZhaWxhYmxlQ2xpZW50c0NvdW50XCJdKSxcbn1cblxuYXN5bmMgZnVuY3Rpb24gZW5kcG9pbnQoaWQsIC4uLmFyZ3MpIHtcbiAgY29uc3QgYWN0aW9uID0gYXdhaXQgYWN0aW9uc1tpZF0oKVxuICByZXR1cm4gYWN0aW9uLmFwcGx5KG51bGwsIGFyZ3MpXG59XG5cbi8vIFVzaW5nIENKUyB0byBhdm9pZCB0aGlzIHRvIGJlIHRyZWUtc2hha2VuIGF3YXkgZHVlIHRvIHVudXNlZCBleHBvcnRzLlxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICcwNzM4MTIxYTRiNmU5NDVkNGQ3ZjE5YTBjZjg2NWE1YTgxMGZmMDU5JzogZW5kcG9pbnQuYmluZChudWxsLCAnMDczODEyMWE0YjZlOTQ1ZDRkN2YxOWEwY2Y4NjVhNWE4MTBmZjA1OScpLFxuICAnMGNjMWJiOGI3ZmFlMDRmYzBiZmUxNjU1OWYzYzcxZGVmOWQzZTIwMic6IGVuZHBvaW50LmJpbmQobnVsbCwgJzBjYzFiYjhiN2ZhZTA0ZmMwYmZlMTY1NTlmM2M3MWRlZjlkM2UyMDInKSxcbiAgJzEyYTAyYTBhMWJiMzBmNDE4ZWViMmY3ODE0NTYxMGE4MDc1MWZkZGQnOiBlbmRwb2ludC5iaW5kKG51bGwsICcxMmEwMmEwYTFiYjMwZjQxOGVlYjJmNzgxNDU2MTBhODA3NTFmZGRkJyksXG4gICc2YTI4NGFkMWJhMGFiYTgwZmE1YzlhMjRiOGQ1NjY4NDM2NTg0Njc3JzogZW5kcG9pbnQuYmluZChudWxsLCAnNmEyODRhZDFiYTBhYmE4MGZhNWM5YTI0YjhkNTY2ODQzNjU4NDY3NycpLFxuICAnNmJjNjYyY2MyYzA0YTFmNTlhNjI4MjQ4MTJjOTQ1YjJiODRiOGZmMic6IGVuZHBvaW50LmJpbmQobnVsbCwgJzZiYzY2MmNjMmMwNGExZjU5YTYyODI0ODEyYzk0NWIyYjg0YjhmZjInKSxcbiAgJzgzYWUxZDAwMWUxYzE2ZmY4NTViMDA5ZTNjZmZjZGIyMzRjOWE5MjYnOiBlbmRwb2ludC5iaW5kKG51bGwsICc4M2FlMWQwMDFlMWMxNmZmODU1YjAwOWUzY2ZmY2RiMjM0YzlhOTI2JyksXG4gICc5OTBhMDExMjU4ZmI4ZGZhMDk0MzdjYWQ4M2IwMGMwOTk2YzgyMjYzJzogZW5kcG9pbnQuYmluZChudWxsLCAnOTkwYTAxMTI1OGZiOGRmYTA5NDM3Y2FkODNiMDBjMDk5NmM4MjI2MycpLFxuICAnYWJmYjc3N2IwMTA4YjM5YzZjNTZhODFlYjA0ZGRkNTc4ZjU5ZDgwNyc6IGVuZHBvaW50LmJpbmQobnVsbCwgJ2FiZmI3NzdiMDEwOGIzOWM2YzU2YTgxZWIwNGRkZDU3OGY1OWQ4MDcnKSxcbiAgJ2M1NDc2OTNlNjcyZWI1MWYzNGI0YTk4MGQxYzNmMDRiM2FhZTVmODQnOiBlbmRwb2ludC5iaW5kKG51bGwsICdjNTQ3NjkzZTY3MmViNTFmMzRiNGE5ODBkMWMzZjA0YjNhYWU1Zjg0JyksXG4gICdjZDE3MmUxYTM1YjM1Nzk2MzlkODYzYjI1MzM4NDYzMmY1NjhiYWI5JzogZW5kcG9pbnQuYmluZChudWxsLCAnY2QxNzJlMWEzNWIzNTc5NjM5ZDg2M2IyNTMzODQ2MzJmNTY4YmFiOScpLFxuICAnZGZiM2QxNzEyZjc3NWRlY2VhYjUxNmM5MGM0NGI2N2E0Y2YyMGVhOCc6IGVuZHBvaW50LmJpbmQobnVsbCwgJ2RmYjNkMTcxMmY3NzVkZWNlYWI1MTZjOTBjNDRiNjdhNGNmMjBlYTgnKSxcbiAgJ2UyZjBiN2VlMmU1N2UxZmFmNWJjYzlkZTk2YjU5MWExOTY4ODAwYjgnOiBlbmRwb2ludC5iaW5kKG51bGwsICdlMmYwYjdlZTJlNTdlMWZhZjViY2M5ZGU5NmI1OTFhMTk2ODgwMGI4JyksXG4gICdmYmRhMjkzYjNmMjYzMzRmNGMyNjg3OGE1M2FlNGMxN2JlZGFiNTJlJzogZW5kcG9pbnQuYmluZChudWxsLCAnZmJkYTI5M2IzZjI2MzM0ZjRjMjY4NzhhNTNhZTRjMTdiZWRhYjUyZScpLFxufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(action-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js?actions=%5B%5B%22D%3A%5C%5CNextChatCD%5C%5Capp%5C%5Cmcp%5C%5Cactions.ts%22%2C%5B%22pauseMcpServer%22%2C%22getAllTools%22%2C%22removeMcpServer%22%2C%22executeMcpAction%22%2C%22getClientsStatus%22%2C%22resumeMcpServer%22%2C%22restartAllClients%22%2C%22getClientTools%22%2C%22isMcpEnabled%22%2C%22addMcpServer%22%2C%22getMcpConfigFromFile%22%2C%22initializeMcpSystem%22%2C%22getAvailableClientsCount%22%5D%5D%5D&__client_imported__=true!\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=D%3A%5CNextChatCD%5Capp%5Ccomponents%5Chome.tsx&modules=D%3A%5CNextChatCD%5Cnode_modules%5C%40vercel%5Canalytics%5Cdist%5Creact%5Cindex.js&server=true!":
|
|
|
/*!*********************************************************************************************************************************************************************************************************************************************************!*\
|
|
|
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=D%3A%5CNextChatCD%5Capp%5Ccomponents%5Chome.tsx&modules=D%3A%5CNextChatCD%5Cnode_modules%5C%40vercel%5Canalytics%5Cdist%5Creact%5Cindex.js&server=true! ***!
|
|
|
\*********************************************************************************************************************************************************************************************************************************************************/
|
|
|
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
|
|
|
|
|
eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/components/home.tsx */ \"(ssr)/./app/components/home.tsx\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./node_modules/@vercel/analytics/dist/react/index.js */ \"(ssr)/./node_modules/@vercel/analytics/dist/react/index.js\"))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9RCUzQSU1Q05leHRDaGF0Q0QlNUNhcHAlNUNjb21wb25lbnRzJTVDaG9tZS50c3gmbW9kdWxlcz1EJTNBJTVDTmV4dENoYXRDRCU1Q25vZGVfbW9kdWxlcyU1QyU0MHZlcmNlbCU1Q2FuYWx5dGljcyU1Q2Rpc3QlNUNyZWFjdCU1Q2luZGV4LmpzJnNlcnZlcj10cnVlISIsIm1hcHBpbmdzIjoiQUFBQSw4SkFBOEU7QUFDOUUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8/MTNhMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIkQ6XFxcXE5leHRDaGF0Q0RcXFxcYXBwXFxcXGNvbXBvbmVudHNcXFxcaG9tZS50c3hcIik7XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIkQ6XFxcXE5leHRDaGF0Q0RcXFxcbm9kZV9tb2R1bGVzXFxcXEB2ZXJjZWxcXFxcYW5hbHl0aWNzXFxcXGRpc3RcXFxccmVhY3RcXFxcaW5kZXguanNcIikiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=D%3A%5CNextChatCD%5Capp%5Ccomponents%5Chome.tsx&modules=D%3A%5CNextChatCD%5Cnode_modules%5C%40vercel%5Canalytics%5Cdist%5Creact%5Cindex.js&server=true!\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=D%3A%5CNextChatCD%5Capp%5Cstyles%5Cglobals.scss&modules=D%3A%5CNextChatCD%5Capp%5Cstyles%5Cmarkdown.scss&modules=D%3A%5CNextChatCD%5Capp%5Cstyles%5Chighlight.scss&modules=D%3A%5CNextChatCD%5Cnode_modules%5C%40next%5Cthird-parties%5Cdist%5Cgoogle%5Cga.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5C%40next%5Cthird-parties%5Cdist%5Cgoogle%5Cgtm.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5C%40next%5Cthird-parties%5Cdist%5CThirdPartyScriptEmbed.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5C%40vercel%5Cspeed-insights%5Cdist%5Cnext%5Cindex.mjs&modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Cscript.js&server=true!":
|
|
|
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
|
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=D%3A%5CNextChatCD%5Capp%5Cstyles%5Cglobals.scss&modules=D%3A%5CNextChatCD%5Capp%5Cstyles%5Cmarkdown.scss&modules=D%3A%5CNextChatCD%5Capp%5Cstyles%5Chighlight.scss&modules=D%3A%5CNextChatCD%5Cnode_modules%5C%40next%5Cthird-parties%5Cdist%5Cgoogle%5Cga.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5C%40next%5Cthird-parties%5Cdist%5Cgoogle%5Cgtm.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5C%40next%5Cthird-parties%5Cdist%5CThirdPartyScriptEmbed.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5C%40vercel%5Cspeed-insights%5Cdist%5Cnext%5Cindex.mjs&modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Cscript.js&server=true! ***!
|
|
|
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
|
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
|
|
|
|
|
eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./node_modules/@next/third-parties/dist/google/ga.js */ \"(ssr)/./node_modules/@next/third-parties/dist/google/ga.js\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./node_modules/@next/third-parties/dist/google/gtm.js */ \"(ssr)/./node_modules/@next/third-parties/dist/google/gtm.js\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./node_modules/@next/third-parties/dist/ThirdPartyScriptEmbed.js */ \"(ssr)/./node_modules/@next/third-parties/dist/ThirdPartyScriptEmbed.js\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./node_modules/@vercel/speed-insights/dist/next/index.mjs */ \"(ssr)/./node_modules/@vercel/speed-insights/dist/next/index.mjs\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/script.js */ \"(ssr)/./node_modules/next/dist/client/script.js\", 23))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9RCUzQSU1Q05leHRDaGF0Q0QlNUNhcHAlNUNzdHlsZXMlNUNnbG9iYWxzLnNjc3MmbW9kdWxlcz1EJTNBJTVDTmV4dENoYXRDRCU1Q2FwcCU1Q3N0eWxlcyU1Q21hcmtkb3duLnNjc3MmbW9kdWxlcz1EJTNBJTVDTmV4dENoYXRDRCU1Q2FwcCU1Q3N0eWxlcyU1Q2hpZ2hsaWdodC5zY3NzJm1vZHVsZXM9RCUzQSU1Q05leHRDaGF0Q0QlNUNub2RlX21vZHVsZXMlNUMlNDBuZXh0JTVDdGhpcmQtcGFydGllcyU1Q2Rpc3QlNUNnb29nbGUlNUNnYS5qcyZtb2R1bGVzPUQlM0ElNUNOZXh0Q2hhdENEJTVDbm9kZV9tb2R1bGVzJTVDJTQwbmV4dCU1Q3RoaXJkLXBhcnRpZXMlNUNkaXN0JTVDZ29vZ2xlJTVDZ3RtLmpzJm1vZHVsZXM9RCUzQSU1Q05leHRDaGF0Q0QlNUNub2RlX21vZHVsZXMlNUMlNDBuZXh0JTVDdGhpcmQtcGFydGllcyU1Q2Rpc3QlNUNUaGlyZFBhcnR5U2NyaXB0RW1iZWQuanMmbW9kdWxlcz1EJTNBJTVDTmV4dENoYXRDRCU1Q25vZGVfbW9kdWxlcyU1QyU0MHZlcmNlbCU1Q3NwZWVkLWluc2lnaHRzJTVDZGlzdCU1Q25leHQlNUNpbmRleC5tanMmbW9kdWxlcz1EJTNBJTVDTmV4dENoYXRDRCU1Q25vZGVfbW9kdWxlcyU1Q25leHQlNUNkaXN0JTVDY2xpZW50JTVDc2NyaXB0LmpzJnNlcnZlcj10cnVlISIsIm1hcHBpbmdzIjoiQUFBQSxvTkFBNEc7QUFDNUcsc05BQTZHO0FBQzdHLDRPQUF1SDtBQUN2SCw4TkFBaUg7QUFDakgiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8/NmI1OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIkQ6XFxcXE5leHRDaGF0Q0RcXFxcbm9kZV9tb2R1bGVzXFxcXEBuZXh0XFxcXHRoaXJkLXBhcnRpZXNcXFxcZGlzdFxcXFxnb29nbGVcXFxcZ2EuanNcIik7XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIkQ6XFxcXE5leHRDaGF0Q0RcXFxcbm9kZV9tb2R1bGVzXFxcXEBuZXh0XFxcXHRoaXJkLXBhcnRpZXNcXFxcZGlzdFxcXFxnb29nbGVcXFxcZ3RtLmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJEOlxcXFxOZXh0Q2hhdENEXFxcXG5vZGVfbW9kdWxlc1xcXFxAbmV4dFxcXFx0aGlyZC1wYXJ0aWVzXFxcXGRpc3RcXFxcVGhpcmRQYXJ0eVNjcmlwdEVtYmVkLmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJEOlxcXFxOZXh0Q2hhdENEXFxcXG5vZGVfbW9kdWxlc1xcXFxAdmVyY2VsXFxcXHNwZWVkLWluc2lnaHRzXFxcXGRpc3RcXFxcbmV4dFxcXFxpbmRleC5tanNcIik7XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIkQ6XFxcXE5leHRDaGF0Q0RcXFxcbm9kZV9tb2R1bGVzXFxcXG5leHRcXFxcZGlzdFxcXFxjbGllbnRcXFxcc2NyaXB0LmpzXCIpIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=D%3A%5CNextChatCD%5Capp%5Cstyles%5Cglobals.scss&modules=D%3A%5CNextChatCD%5Capp%5Cstyles%5Cmarkdown.scss&modules=D%3A%5CNextChatCD%5Capp%5Cstyles%5Chighlight.scss&modules=D%3A%5CNextChatCD%5Cnode_modules%5C%40next%5Cthird-parties%5Cdist%5Cgoogle%5Cga.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5C%40next%5Cthird-parties%5Cdist%5Cgoogle%5Cgtm.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5C%40next%5Cthird-parties%5Cdist%5CThirdPartyScriptEmbed.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5C%40vercel%5Cspeed-insights%5Cdist%5Cnext%5Cindex.mjs&modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Cscript.js&server=true!\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Ccomponents%5Capp-router.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Ccomponents%5Cerror-boundary.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Ccomponents%5Clayout-router.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Ccomponents%5Cnot-found-boundary.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Ccomponents%5Crender-from-template-context.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Ccomponents%5Cstatic-generation-searchparams-bailout-provider.js&server=true!":
|
|
|
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
|
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Ccomponents%5Capp-router.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Ccomponents%5Cerror-boundary.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Ccomponents%5Clayout-router.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Ccomponents%5Cnot-found-boundary.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Ccomponents%5Crender-from-template-context.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Ccomponents%5Cstatic-generation-searchparams-bailout-provider.js&server=true! ***!
|
|
|
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
|
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
|
|
|
|
|
eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/app-router.js */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/error-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/error-boundary.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/layout-router.js */ \"(ssr)/./node_modules/next/dist/client/components/layout-router.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/not-found-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/render-from-template-context.js */ \"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js */ \"(ssr)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js\", 23))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9RCUzQSU1Q05leHRDaGF0Q0QlNUNub2RlX21vZHVsZXMlNUNuZXh0JTVDZGlzdCU1Q2NsaWVudCU1Q2NvbXBvbmVudHMlNUNhcHAtcm91dGVyLmpzJm1vZHVsZXM9RCUzQSU1Q05leHRDaGF0Q0QlNUNub2RlX21vZHVsZXMlNUNuZXh0JTVDZGlzdCU1Q2NsaWVudCU1Q2NvbXBvbmVudHMlNUNlcnJvci1ib3VuZGFyeS5qcyZtb2R1bGVzPUQlM0ElNUNOZXh0Q2hhdENEJTVDbm9kZV9tb2R1bGVzJTVDbmV4dCU1Q2Rpc3QlNUNjbGllbnQlNUNjb21wb25lbnRzJTVDbGF5b3V0LXJvdXRlci5qcyZtb2R1bGVzPUQlM0ElNUNOZXh0Q2hhdENEJTVDbm9kZV9tb2R1bGVzJTVDbmV4dCU1Q2Rpc3QlNUNjbGllbnQlNUNjb21wb25lbnRzJTVDbm90LWZvdW5kLWJvdW5kYXJ5LmpzJm1vZHVsZXM9RCUzQSU1Q05leHRDaGF0Q0QlNUNub2RlX21vZHVsZXMlNUNuZXh0JTVDZGlzdCU1Q2NsaWVudCU1Q2NvbXBvbmVudHMlNUNyZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzJm1vZHVsZXM9RCUzQSU1Q05leHRDaGF0Q0QlNUNub2RlX21vZHVsZXMlNUNuZXh0JTVDZGlzdCU1Q2NsaWVudCU1Q2NvbXBvbmVudHMlNUNzdGF0aWMtZ2VuZXJhdGlvbi1zZWFyY2hwYXJhbXMtYmFpbG91dC1wcm92aWRlci5qcyZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsa09BQWdIO0FBQ2hILDBPQUFvSDtBQUNwSCx3T0FBbUg7QUFDbkgsa1BBQXdIO0FBQ3hILHNRQUFrSTtBQUNsSSIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Lz80MmNhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiRDpcXFxcTmV4dENoYXRDRFxcXFxub2RlX21vZHVsZXNcXFxcbmV4dFxcXFxkaXN0XFxcXGNsaWVudFxcXFxjb21wb25lbnRzXFxcXGFwcC1yb3V0ZXIuanNcIik7XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIkQ6XFxcXE5leHRDaGF0Q0RcXFxcbm9kZV9tb2R1bGVzXFxcXG5leHRcXFxcZGlzdFxcXFxjbGllbnRcXFxcY29tcG9uZW50c1xcXFxlcnJvci1ib3VuZGFyeS5qc1wiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiRDpcXFxcTmV4dENoYXRDRFxcXFxub2RlX21vZHVsZXNcXFxcbmV4dFxcXFxkaXN0XFxcXGNsaWVudFxcXFxjb21wb25lbnRzXFxcXGxheW91dC1yb3V0ZXIuanNcIik7XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIkQ6XFxcXE5leHRDaGF0Q0RcXFxcbm9kZV9tb2R1bGVzXFxcXG5leHRcXFxcZGlzdFxcXFxjbGllbnRcXFxcY29tcG9uZW50c1xcXFxub3QtZm91bmQtYm91bmRhcnkuanNcIik7XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIkQ6XFxcXE5leHRDaGF0Q0RcXFxcbm9kZV9tb2R1bGVzXFxcXG5leHRcXFxcZGlzdFxcXFxjbGllbnRcXFxcY29tcG9uZW50c1xcXFxyZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJEOlxcXFxOZXh0Q2hhdENEXFxcXG5vZGVfbW9kdWxlc1xcXFxuZXh0XFxcXGRpc3RcXFxcY2xpZW50XFxcXGNvbXBvbmVudHNcXFxcc3RhdGljLWdlbmVyYXRpb24tc2VhcmNocGFyYW1zLWJhaWxvdXQtcHJvdmlkZXIuanNcIikiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Ccomponents%5Capp-router.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Ccomponents%5Cerror-boundary.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Ccomponents%5Clayout-router.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Ccomponents%5Cnot-found-boundary.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Ccomponents%5Crender-from-template-context.js&modules=D%3A%5CNextChatCD%5Cnode_modules%5Cnext%5Cdist%5Cclient%5Ccomponents%5Cstatic-generation-searchparams-bailout-provider.js&server=true!\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/client/api.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/client/api.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ClientApi: () => (/* binding */ ClientApi),\n/* harmony export */ LLMApi: () => (/* binding */ LLMApi),\n/* harmony export */ Models: () => (/* binding */ Models),\n/* harmony export */ ROLES: () => (/* binding */ ROLES),\n/* harmony export */ TTSModels: () => (/* binding */ TTSModels),\n/* harmony export */ getBearerToken: () => (/* binding */ getBearerToken),\n/* harmony export */ getClientApi: () => (/* binding */ getClientApi),\n/* harmony export */ getHeaders: () => (/* binding */ getHeaders),\n/* harmony export */ validString: () => (/* binding */ validString)\n/* harmony export */ });\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../store */ \"(ssr)/./app/store/index.ts\");\n/* harmony import */ var _platforms_openai__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./platforms/openai */ \"(ssr)/./app/client/platforms/openai.ts\");\n/* harmony import */ var _platforms_google__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./platforms/google */ \"(ssr)/./app/client/platforms/google.ts\");\n/* harmony import */ var _platforms_anthropic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./platforms/anthropic */ \"(ssr)/./app/client/platforms/anthropic.ts\");\n/* harmony import */ var _platforms_baidu__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./platforms/baidu */ \"(ssr)/./app/client/platforms/baidu.ts\");\n/* harmony import */ var _platforms_bytedance__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./platforms/bytedance */ \"(ssr)/./app/client/platforms/bytedance.ts\");\n/* harmony import */ var _platforms_alibaba__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./platforms/alibaba */ \"(ssr)/./app/client/platforms/alibaba.ts\");\n/* harmony import */ var _platforms_tencent__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./platforms/tencent */ \"(ssr)/./app/client/platforms/tencent.ts\");\n/* harmony import */ var _platforms_moonshot__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./platforms/moonshot */ \"(ssr)/./app/client/platforms/moonshot.ts\");\n/* harmony import */ var _platforms_iflytek__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./platforms/iflytek */ \"(ssr)/./app/client/platforms/iflytek.ts\");\n/* harmony import */ var _platforms_deepseek__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./platforms/deepseek */ \"(ssr)/./app/client/platforms/deepseek.ts\");\n/* harmony import */ var _platforms_xai__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./platforms/xai */ \"(ssr)/./app/client/platforms/xai.ts\");\n/* harmony import */ var _platforms_glm__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./platforms/glm */ \"(ssr)/./app/client/platforms/glm.ts\");\n/* harmony import */ var _platforms_siliconflow__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./platforms/siliconflow */ \"(ssr)/./app/client/platforms/siliconflow.ts\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst ROLES = [\n \"system\",\n \"user\",\n \"assistant\"\n];\nconst Models = [\n \"gpt-3.5-turbo\",\n \"gpt-4\"\n];\nconst TTSModels = [\n \"tts-1\",\n \"tts-1-hd\"\n];\nclass LLMApi {\n}\nclass ClientApi {\n constructor(provider = _constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.GPT){\n switch(provider){\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.GeminiPro:\n this.llm = new _platforms_google__WEBPACK_IMPORTED_MODULE_4__.GeminiProApi();\n break;\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.Claude:\n this.llm = new _platforms_anthropic__WEBPACK_IMPORTED_MODULE_5__.ClaudeApi();\n break;\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.Ernie:\n this.llm = new _platforms_baidu__WEBPACK_IMPORTED_MODULE_6__.ErnieApi();\n break;\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.Doubao:\n this.llm = new _platforms_bytedance__WEBPACK_IMPORTED_MODULE_7__.DoubaoApi();\n break;\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.Qwen:\n this.llm = new _platforms_alibaba__WEBPACK_IMPORTED_MODULE_8__.QwenApi();\n break;\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.Hunyuan:\n this.llm = new _platforms_tencent__WEBPACK_IMPORTED_MODULE_9__.HunyuanApi();\n break;\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.Moonshot:\n this.llm = new _platforms_moonshot__WEBPACK_IMPORTED_MODULE_10__.MoonshotApi();\n break;\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.Iflytek:\n this.llm = new _platforms_iflytek__WEBPACK_IMPORTED_MODULE_11__.SparkApi();\n break;\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.DeepSeek:\n this.llm = new _platforms_deepseek__WEBPACK_IMPORTED_MODULE_12__.DeepSeekApi();\n break;\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.XAI:\n this.llm = new _platforms_xai__WEBPACK_IMPORTED_MODULE_13__.XAIApi();\n break;\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.ChatGLM:\n this.llm = new _platforms_glm__WEBPACK_IMPORTED_MODULE_14__.ChatGLMApi();\n break;\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.SiliconFlow:\n this.llm = new _platforms_siliconflow__WEBPACK_IMPORTED_MODULE_15__.SiliconflowApi();\n break;\n default:\n this.llm = new _platforms_openai__WEBPACK_IMPORTED_MODULE_3__.ChatGPTApi();\n }\n }\n config() {}\n prompts() {}\n masks() {}\n async share(messages, avatarUrl = null) {\n const msgs = messages.map((m)=>({\n from: m.role === \"user\" ? \"human\" : \"gpt\",\n value: m.content\n })).concat([\n {\n from: \"human\",\n value: \"Share from [NextChat]: https://github.com/Yidadaa/ChatGPT-Next-Web\"\n }\n ]);\n // 敬告二开开发者们,为了开源大模型的发展,请不要修改上述消息,此消息用于后续数据清洗使用\n // Please do not modify this message\n console.log(\"[Share]\", messages, msgs);\n const clientConfig = (0,_config_client__WEBPACK_IMPORTED_MODULE_0__.getClientConfig)();\n const proxyUrl = \"/sharegpt\";\n const rawUrl = \"https://sharegpt.com/api/conversations\";\n const shareUrl = clientConfig?.isApp ? rawUrl : proxyUrl;\n const res = await fetch(shareUrl, {\n body: JSON.stringify({\n avatarUrl,\n items: msgs\n }),\n headers: {\n \"Content-Type\": \"application/json\"\n },\n method: \"POST\"\n });\n const resJson = await res.json();\n console.log(\"[Share]\", resJson);\n if (resJson.id) {\n return `https://shareg.pt/${resJson.id}`;\n }\n }\n}\nfunction getBearerToken(apiKey, noBearer = false) {\n return validString(apiKey) ? `${noBearer ? \"\" : \"Bearer \"}${apiKey.trim()}` : \"\";\n}\nfunction validString(x) {\n return x?.length > 0;\n}\nfunction getHeaders(ignoreHeaders = false) {\n const accessStore = _store__WEBPACK_IMPORTED_MODULE_2__.useAccessStore.getState();\n const chatStore = _store__WEBPACK_IMPORTED_MODULE_2__.useChatStore.getState();\n let headers = {};\n if (!ignoreHeaders) {\n headers = {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\"\n };\n }\n const clientConfig = (0,_config_client__WEBPACK_IMPORTED_MODULE_0__.getClientConfig)();\n function getConfig() {\n const modelConfig = chatStore.currentSession().mask.modelConfig;\n const isGoogle = modelConfig.providerName === _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.Google;\n const isAzure = modelConfig.providerName === _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.Azure;\n const isAnthropic = modelConfig.providerName === _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.Anthropic;\n const isBaidu = modelConfig.providerName == _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.Baidu;\n const isByteDance = modelConfig.providerName === _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.ByteDance;\n const isAlibaba = modelConfig.providerName === _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.Alibaba;\n const isMoonshot = modelConfig.providerName === _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.Moonshot;\n const isIflytek = modelConfig.providerName === _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.Iflytek;\n const isDeepSeek = modelConfig.providerName === _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.DeepSeek;\n const isXAI = modelConfig.providerName === _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.XAI;\n const isChatGLM = modelConfig.providerName === _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.ChatGLM;\n const isSiliconFlow = modelConfig.providerName === _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.SiliconFlow;\n const isEnabledAccessControl = accessStore.enabledAccessControl();\n const apiKey = isGoogle ? accessStore.googleApiKey : isAzure ? accessStore.azureApiKey : isAnthropic ? accessStore.anthropicApiKey : isByteDance ? accessStore.bytedanceApiKey : isAlibaba ? accessStore.alibabaApiKey : isMoonshot ? accessStore.moonshotApiKey : isXAI ? accessStore.xaiApiKey : isDeepSeek ? accessStore.deepseekApiKey : isChatGLM ? accessStore.chatglmApiKey : isSiliconFlow ? accessStore.siliconflowApiKey : isIflytek ? accessStore.iflytekApiKey && accessStore.iflytekApiSecret ? accessStore.iflytekApiKey + \":\" + accessStore.iflytekApiSecret : \"\" : accessStore.openaiApiKey;\n return {\n isGoogle,\n isAzure,\n isAnthropic,\n isBaidu,\n isByteDance,\n isAlibaba,\n isMoonshot,\n isIflytek,\n isDeepSeek,\n isXAI,\n isChatGLM,\n isSiliconFlow,\n apiKey,\n isEnabledAccessControl\n };\n }\n function getAuthHeader() {\n return isAzure ? \"api-key\" : isAnthropic ? \"x-api-key\" : isGoogle ? \"x-goog-api-key\" : \"Authorization\";\n }\n const { isGoogle, isAzure, isAnthropic, isBaidu, isByteDance, isAlibaba, isMoonshot, isIflytek, isDeepSeek, isXAI, isChatGLM, isSiliconFlow, apiKey, isEnabledAccessControl } = getConfig();\n // when using baidu api in app, not set auth header\n if (isBaidu && clientConfig?.isApp) return headers;\n const authHeader = getAuthHeader();\n const bearerToken = getBearerToken(apiKey, isAzure || isAnthropic || isGoogle);\n if (bearerToken) {\n headers[authHeader] = bearerToken;\n } else if (isEnabledAccessControl && validString(accessStore.accessCode)) {\n headers[\"Authorization\"] = getBearerToken(_constant__WEBPACK_IMPORTED_MODULE_1__.ACCESS_CODE_PREFIX + accessStore.accessCode);\n }\n return headers;\n}\nfunction getClientApi(provider) {\n switch(provider){\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.Google:\n return new ClientApi(_constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.GeminiPro);\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.Anthropic:\n return new ClientApi(_constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.Claude);\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.Baidu:\n return new ClientApi(_constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.Ernie);\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.ByteDance:\n return new ClientApi(_constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.Doubao);\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.Alibaba:\n return new ClientApi(_constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.Qwen);\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.Tencent:\n return new ClientApi(_constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.Hunyuan);\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.Moonshot:\n return new ClientApi(_constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.Moonshot);\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.Iflytek:\n return new ClientApi(_constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.Iflytek);\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.DeepSeek:\n return new ClientApi(_constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.DeepSeek);\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.XAI:\n return new ClientApi(_constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.XAI);\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.ChatGLM:\n return new ClientApi(_constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.ChatGLM);\n case _constant__WEBPACK_IMPORTED_MODULE_1__.ServiceProvider.SiliconFlow:\n return new ClientApi(_constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.SiliconFlow);\n default:\n return new ClientApi(_constant__WEBPACK_IMPORTED_MODULE_1__.ModelProvider.GPT);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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S0FBSzFCLHNEQUFlQSxDQUFDOEYsS0FBSztZQUN4QixPQUFPLElBQUkxRSxVQUFVckIsb0RBQWFBLENBQUM0QixLQUFLO1FBQzFDLEtBQUszQixzREFBZUEsQ0FBQ2dHLFNBQVM7WUFDNUIsT0FBTyxJQUFJNUUsVUFBVXJCLG9EQUFhQSxDQUFDNkIsTUFBTTtRQUMzQyxLQUFLNUIsc0RBQWVBLENBQUNrRyxPQUFPO1lBQzFCLE9BQU8sSUFBSTlFLFVBQVVyQixvREFBYUEsQ0FBQzhCLElBQUk7UUFDekMsS0FBSzdCLHNEQUFlQSxDQUFDNkgsT0FBTztZQUMxQixPQUFPLElBQUl6RyxVQUFVckIsb0RBQWFBLENBQUMrQixPQUFPO1FBQzVDLEtBQUs5QixzREFBZUEsQ0FBQytCLFFBQVE7WUFDM0IsT0FBTyxJQUFJWCxVQUFVckIsb0RBQWFBLENBQUNnQyxRQUFRO1FBQzdDLEtBQUsvQixzREFBZUEsQ0FBQ2dDLE9BQU87WUFDMUIsT0FBTyxJQUFJWixVQUFVckIsb0RBQWFBLENBQUNpQyxPQUFPO1FBQzVDLEtBQUtoQyxzREFBZUEsQ0FBQ2lDLFFBQVE7WUFDM0IsT0FBTyxJQUFJYixVQUFVckIsb0RBQWFBLENBQUNrQyxRQUFRO1FBQzdDLEtBQUtqQyxzREFBZUEsQ0FBQ2tDLEdBQUc7WUFDdEIsT0FBTyxJQUFJZCxVQUFVckIsb0RBQWFBLENBQUNtQyxHQUFHO1FBQ3hDLEtBQUtsQyxzREFBZUEsQ0FBQ21DLE9BQU87WUFDMUIsT0FBTyxJQUFJZixVQUFVckIsb0RBQWFBLENBQUNvQyxPQUFPO1FBQzVDLEtBQUtuQyxzREFBZUEsQ0FBQ29DLFdBQVc7WUFDOUIsT0FBTyxJQUFJaEIsVUFBVXJCLG9EQUFhQSxDQUFDcUMsV0FBVztRQUNoRDtZQUNFLE9BQU8sSUFBSWhCLFVBQVVyQixvREFBYUEsQ0FBQ3dCLEdBQUc7SUFDMUM7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2NsaWVudC9hcGkudHM/ZTdiZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRDbGllbnRDb25maWcgfSBmcm9tIFwiLi4vY29uZmlnL2NsaWVudFwiO1xyXG5pbXBvcnQge1xyXG4gIEFDQ0VTU19DT0RFX1BSRUZJWCxcclxuICBNb2RlbFByb3ZpZGVyLFxyXG4gIFNlcnZpY2VQcm92aWRlcixcclxufSBmcm9tIFwiLi4vY29uc3RhbnRcIjtcclxuaW1wb3J0IHtcclxuICBDaGF0TWVzc2FnZVRvb2wsXHJcbiAgQ2hhdE1lc3NhZ2UsXHJcbiAgTW9kZWxUeXBlLFxyXG4gIHVzZUFjY2Vzc1N0b3JlLFxyXG4gIHVzZUNoYXRTdG9yZSxcclxufSBmcm9tIFwiLi4vc3RvcmVcIjtcclxuaW1wb3J0IHsgQ2hhdEdQVEFwaSwgRGFsbGVSZXF1ZXN0UGF5bG9hZCB9IGZyb20gXCIuL3BsYXRmb3Jtcy9vcGVuYWlcIjtcclxuaW1wb3J0IHsgR2VtaW5pUHJvQXBpIH0gZnJvbSBcIi4vcGxhdGZvcm1zL2dvb2dsZVwiO1xyXG5pbXBvcnQgeyBDbGF1ZGVBcGkgfSBmcm9tIFwiLi9wbGF0Zm9ybXMvYW50aHJvcGljXCI7XHJcbmltcG9ydCB7IEVybmllQXBpIH0gZnJvbSBcIi4vcGxhdGZvcm1zL2JhaWR1XCI7XHJcbmltcG9ydCB7IERvdWJhb0FwaSB9IGZyb20gXCIuL3BsYXRmb3Jtcy9ieXRlZGFuY2VcIjtcclxuaW1wb3J0IHsgUXdlbkFwaSB9IGZyb20gXCIuL3BsYXRmb3Jtcy9hbGliYWJhXCI7XHJcbmltcG9ydCB7IEh1bnl1YW5BcGkgfSBmcm9tIFwiLi9wbGF0Zm9ybXMvdGVuY2VudFwiO1xyXG5pbXBvcnQgeyBNb29uc2hvdEFwaSB9IGZyb20gXCIuL3BsYXRmb3Jtcy9tb29uc2hvdFwiO1xyXG5pbXBvcnQgeyBTcGFya0FwaSB9IGZyb20gXCIuL3BsYXRmb3Jtcy9pZmx5dGVrXCI7XHJcbmltcG9ydCB7IERlZXBTZWVrQXBpIH0gZnJvbSBcIi4vcGxhdGZvcm1zL2RlZXBzZWVrXCI7XHJcbmltcG9ydCB7IFhBSUFwaSB9IGZyb20gXCIuL3BsYXRmb3Jtcy94YWlcIjtcclxuaW1wb3J0IHsgQ2hhdEdMTUFwaSB9IGZyb20gXCIuL3BsYXRmb3Jtcy9nbG1cIjtcclxuaW1wb3J0IHsgU2lsaWNvbmZsb3dBcGkgfSBmcm9tIFwiLi9wbGF0Zm9ybXMvc2lsaWNvbmZsb3dcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBST0xFUyA9IFtcInN5c3RlbVwiLCBcInVzZXJcIiwgXCJhc3Npc3RhbnRcIl0gYXMgY29uc3Q7XHJcbmV4cG9ydCB0eXBlIE1lc3NhZ2VSb2xlID0gKHR5cGVvZiBST0xFUylbbnVtYmVyXTtcclxuXHJcbmV4cG9ydCBjb25zdCBNb2RlbHMgPSBbXCJncHQtMy41LXR1cmJvXCIsIFwiZ3B0LTRcIl0gYXMgY29uc3Q7XHJcbmV4cG9ydCBjb25zdCBUVFNNb2RlbHMgPSBbXCJ0dHMtMVwiLCBcInR0cy0xLWhkXCJdIGFzIGNvbnN0O1xyXG5leHBvcnQgdHlwZSBDaGF0TW9kZWwgPSBNb2RlbFR5cGU7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE11bHRpbW9kYWxDb250ZW50IHtcclxuICB0eXBlOiBcInRleHRcIiB8IFwiaW1hZ2VfdXJsXCI7XHJcbiAgdGV4dD86IHN0cmluZztcclxuICBpbWFnZV91cmw/OiB7XHJcbiAgICB1cmw6IHN0cmluZztcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RNZXNzYWdlIHtcclxuICByb2xlOiBNZXNzYWdlUm9sZTtcclxuICBjb250ZW50OiBzdHJpbmcgfCBNdWx0aW1vZGFsQ29udGVudFtdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExMTUNvbmZpZyB7XHJcbiAgbW9kZWw6IHN0cmluZztcclxuICBwcm92aWRlck5hbWU/OiBzdHJpbmc7XHJcbiAgdGVtcGVyYXR1cmU/OiBudW1iZXI7XHJcbiAgdG9wX3A/OiBudW1iZXI7XHJcbiAgc3RyZWFtPzogYm9vbGVhbjtcclxuICBwcmVzZW5jZV9wZW5hbHR5PzogbnVtYmVyO1xyXG4gIGZyZXF1ZW5jeV9wZW5hbHR5PzogbnVtYmVyO1xyXG4gIHNpemU/OiBEYWxsZVJlcXVlc3RQYXlsb2FkW1wic2l6ZVwiXTtcclxuICBxdWFsaXR5PzogRGFsbGVSZXF1ZXN0UGF5bG9hZFtcInF1YWxpdHlcIl07XHJcbiAgc3R5bGU/OiBEYWxsZVJlcXVlc3RQYXlsb2FkW1wic3R5bGVcIl07XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3BlZWNoT3B0aW9ucyB7XHJcbiAgbW9kZWw6IHN0cmluZztcclxuICBpbnB1dDogc3RyaW5nO1xyXG4gIHZvaWNlOiBzdHJpbmc7XHJcbiAgcmVzcG9uc2VfZm9ybWF0Pzogc3RyaW5nO1xyXG4gIHNwZWVkPzogbnVtYmVyO1xyXG4gIG9uQ29udHJvbGxlcj86IChjb250cm9sbGVyOiBBYm9ydENvbnRyb2xsZXIpID0+IHZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdE9wdGlvbnMge1xyXG4gIG1lc3NhZ2VzOiBSZXF1ZXN0TWVzc2FnZVtdO1xyXG4gIGNvbmZpZzogTExNQ29uZmlnO1xyXG5cclxuICBvblVwZGF0ZT86IChtZXNzYWdlOiBzdHJpbmcsIGNodW5rOiBzdHJpbmcpID0+IHZvaWQ7XHJcbiAgb25GaW5pc2g6IChtZXNzYWdlOiBzdHJpbmcsIHJlc3BvbnNlUmVzOiBSZXNwb25zZSkgPT4gdm9pZDtcclxuICBvbkVycm9yPzogKGVycjogRXJyb3IpID0+IHZvaWQ7XHJcbiAgb25Db250cm9sbGVyPzogKGNvbnRyb2xsZXI6IEFib3J0Q29udHJvbGxlcikgPT4gdm9pZDtcclxuICBvbkJlZm9yZVRvb2w/OiAodG9vbDogQ2hhdE1lc3NhZ2VUb29sKSA9PiB2b2lkO1xyXG4gIG9uQWZ0ZXJUb29sPzogKHRvb2w6IENoYXRNZXNzYWdlVG9vbCkgPT4gdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMTE1Vc2FnZSB7XHJcbiAgdXNlZDogbnVtYmVyO1xyXG4gIHRvdGFsOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTExNTW9kZWwge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBkaXNwbGF5TmFtZT86IHN0cmluZztcclxuICBhdmFpbGFibGU6IGJvb2xlYW47XHJcbiAgcHJvdmlkZXI6IExMTU1vZGVsUHJvdmlkZXI7XHJcbiAgc29ydGVkOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTExNTW9kZWxQcm92aWRlciB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBwcm92aWRlck5hbWU6IHN0cmluZztcclxuICBwcm92aWRlclR5cGU6IHN0cmluZztcclxuICBzb3J0ZWQ6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExMTUFwaSB7XHJcbiAgYWJzdHJhY3QgY2hhdChvcHRpb25zOiBDaGF0T3B0aW9ucyk6IFByb21pc2U8dm9pZD47XHJcbiAgYWJzdHJhY3Qgc3BlZWNoKG9wdGlvbnM6IFNwZWVjaE9wdGlvbnMpOiBQcm9taXNlPEFycmF5QnVmZmVyPjtcclxuICBhYnN0cmFjdCB1c2FnZSgpOiBQcm9taXNlPExMTVVzYWdlPjtcclxuICBhYnN0cmFjdCBtb2RlbHMoKTogUHJvbWlzZTxMTE1Nb2RlbFtdPjtcclxufVxyXG5cclxudHlwZSBQcm92aWRlck5hbWUgPSBcIm9wZW5haVwiIHwgXCJhenVyZVwiIHwgXCJjbGF1ZGVcIiB8IFwicGFsbVwiO1xyXG5cclxuaW50ZXJmYWNlIE1vZGVsIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgcHJvdmlkZXI6IFByb3ZpZGVyTmFtZTtcclxuICBjdHhsZW46IG51bWJlcjtcclxufVxyXG5cclxuaW50ZXJmYWNlIENoYXRQcm92aWRlciB7XHJcbiAgbmFtZTogUHJvdmlkZXJOYW1lO1xyXG4gIGFwaUNvbmZpZzoge1xyXG4gICAgYmFzZVVybDogc3RyaW5nO1xyXG4gICAgYXBpS2V5OiBzdHJpbmc7XHJcbiAgICBzdW1tYXJ5TW9kZWw6IE1vZGVsO1xyXG4gIH07XHJcbiAgbW9kZWxzOiBNb2RlbFtdO1xyXG5cclxuICBjaGF0OiAoKSA9PiB2b2lkO1xyXG4gIHVzYWdlOiAoKSA9PiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2xpZW50QXBpIHtcclxuICBwdWJsaWMgbGxtOiBMTE1BcGk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3ZpZGVyOiBNb2RlbFByb3ZpZGVyID0gTW9kZWxQcm92aWRlci5HUFQpIHtcclxuICAgIHN3aXRjaCAocHJvdmlkZXIpIHtcclxuICAgICAgY2FzZSBNb2RlbFByb3ZpZGVyLkdlbWluaVBybzpcclxuICAgICAgICB0aGlzLmxsbSA9IG5ldyBHZW1pbmlQcm9BcGkoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNb2RlbFByb3ZpZGVyLkNsYXVkZTpcclxuICAgICAgICB0aGlzLmxsbSA9IG5ldyBDbGF1ZGVBcGkoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNb2RlbFByb3ZpZGVyLkVybmllOlxyXG4gICAgICAgIHRoaXMubGxtID0gbmV3IEVybmllQXBpKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTW9kZWxQcm92aWRlci5Eb3ViYW86XHJcbiAgICAgICAgdGhpcy5sbG0gPSBuZXcgRG91YmFvQXBpKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTW9kZWxQcm92aWRlci5Rd2VuOlxyXG4gICAgICAgIHRoaXMubGxtID0gbmV3IFF3ZW5BcGkoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNb2RlbFByb3ZpZGVyLkh1bnl1YW46XHJcbiAgICAgICAgdGhpcy5sbG0gPSBuZXcgSHVueXVhbkFwaSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1vZGVsUHJvdmlkZXIuTW9vbnNob3Q6XHJcbiAgICAgICAgdGhpcy5sbG0gPSBuZXcgTW9vbnNob3RBcGkoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNb2RlbFByb3ZpZGVyLklmbHl0ZWs6XHJcbiAgICAgICAgdGhpcy5sbG0gPSBuZXcgU3BhcmtBcGkoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNb2RlbFByb3ZpZGVyLkRlZXBTZWVrOlxyXG4gICAgICAgIHRoaXMubGxtID0gbmV3IERlZXBTZWVrQXBpKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTW9kZWxQcm92aWRlci5YQUk6XHJcbiAgICAgICAgdGhpcy5sbG0gPSBuZXcgWEFJQXBpKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTW9kZWxQcm92aWRlci5DaGF0R0xNOlxyXG4gICAgICAgIHRoaXMubGxtID0gbmV3IENoYXRHTE1BcGkoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNb2RlbFByb3ZpZGVyLlNpbGljb25GbG93OlxyXG4gICAgICAgIHRoaXMubGxtID0gbmV3IFNpbGljb25mbG93QXBpKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhpcy5sbG0gPSBuZXcgQ2hhdEdQVEFwaSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uZmlnKCkge31cclxuXHJcbiAgcHJvbXB0cygpIHt9XHJcblxyXG4gIG1hc2tzKCkge31cclxuXHJcbiAgYXN5bmMgc2hhcmUobWVzc2FnZXM6IENoYXRNZXNzYWdlW10sIGF2YXRhclVybDogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcclxuICAgIGNvbnN0IG1zZ3MgPSBtZXNzYWdlc1xyXG4gICAgICAubWFwKChtKSA9PiAoe1xyXG4gICAgICAgIGZyb206IG0ucm9sZSA9PT0gXCJ1c2VyXCIgPyBcImh1bWFuXCIgOiBcImdwdFwiLFxyXG4gICAgICAgIHZhbHVlOiBtLmNvbnRlbnQsXHJcbiAgICAgIH0pKVxyXG4gICAgICAuY29uY2F0KFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBmcm9tOiBcImh1bWFuXCIsXHJcbiAgICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgICAgXCJTaGFyZSBmcm9tIFtOZXh0Q2hhdF06IGh0dHBzOi8vZ2l0aHViLmNvbS9ZaWRhZGFhL0NoYXRHUFQtTmV4dC1XZWJcIixcclxuICAgICAgICB9LFxyXG4gICAgICBdKTtcclxuICAgIC8vIOaVrOWRiuS6jOW8gOW8gOWPkeiAheS7rO+8jOS4uuS6huW8gOa6kOWkp+aooeWei+eahOWPkeWxle+8jOivt+S4jeimgeS/ruaUueS4iui/sOa2iOaBr++8jOatpOa2iOaBr+eUqOS6juWQjue7reaVsOaNrua4hea0l+S9v+eUqFxyXG4gICAgLy8gUGxlYXNlIGRvIG5vdCBtb2RpZnkgdGhpcyBtZXNzYWdlXHJcblxyXG4gICAgY29uc29sZS5sb2coXCJbU2hhcmVdXCIsIG1lc3NhZ2VzLCBtc2dzKTtcclxuICAgIGNvbnN0IGNsaWVudENvbmZpZyA9IGdldENsaWVudENvbmZpZygpO1xyXG4gICAgY29uc3QgcHJveHlVcmwgPSBcIi9zaGFyZWdwdFwiO1xyXG4gICAgY29uc3QgcmF3VXJsID0gXCJodHRwczovL3NoYXJlZ3B0LmNvbS9hcGkvY29udmVyc2F0aW9uc1wiO1xyXG4gICAgY29uc3Qgc2hhcmVVcmwgPSBjbGllbnRDb25maWc/LmlzQXBwID8gcmF3VXJsIDogcHJveHlVcmw7XHJcbiAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChzaGFyZVVybCwge1xyXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgYXZhdGFyVXJsLFxyXG4gICAgICAgIGl0ZW1zOiBtc2dzLFxyXG4gICAgICB9KSxcclxuICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxyXG4gICAgICB9LFxyXG4gICAgICBtZXRob2Q6IFwiUE9TVFwiLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgcmVzSnNvbiA9IGF3YWl0IHJlcy5qc29uKCk7XHJcbiAgICBjb25zb2xlLmxvZyhcIltTaGFyZV1cIiwgcmVzSnNvbik7XHJcbiAgICBpZiAocmVzSnNvbi5pZCkge1xyXG4gICAgICByZXR1cm4gYGh0dHBzOi8vc2hhcmVnLnB0LyR7cmVzSnNvbi5pZH1gO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEJlYXJlclRva2VuKFxyXG4gIGFwaUtleTogc3RyaW5nLFxyXG4gIG5vQmVhcmVyOiBib29sZWFuID0gZmFsc2UsXHJcbik6IHN0cmluZyB7XHJcbiAgcmV0dXJuIHZhbGlkU3RyaW5nKGFwaUtleSlcclxuICAgID8gYCR7bm9CZWFyZXIgPyBcIlwiIDogXCJCZWFyZXIgXCJ9JHthcGlLZXkudHJpbSgpfWBcclxuICAgIDogXCJcIjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkU3RyaW5nKHg6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB4Py5sZW5ndGggPiAwO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVhZGVycyhpZ25vcmVIZWFkZXJzOiBib29sZWFuID0gZmFsc2UpIHtcclxuICBjb25zdCBhY2Nlc3NTdG9yZSA9IHVzZUFjY2Vzc1N0b3JlLmdldFN0YXRlKCk7XHJcbiAgY29uc3QgY2hhdFN0b3JlID0gdXNlQ2hhdFN0b3JlLmdldFN0YXRlKCk7XHJcbiAgbGV0IGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcclxuICBpZiAoIWlnbm9yZUhlYWRlcnMpIHtcclxuICAgIGhlYWRlcnMgPSB7XHJcbiAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxyXG4gICAgICBBY2NlcHQ6IFwiYXBwbGljYXRpb24vanNvblwiLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGNsaWVudENvbmZpZyA9IGdldENsaWVudENvbmZpZygpO1xyXG5cclxuICBmdW5jdGlvbiBnZXRDb25maWcoKSB7XHJcbiAgICBjb25zdCBtb2RlbENvbmZpZyA9IGNoYXRTdG9yZS5jdXJyZW50U2Vzc2lvbigpLm1hc2subW9kZWxDb25maWc7XHJcbiAgICBjb25zdCBpc0dvb2dsZSA9IG1vZGVsQ29uZmlnLnByb3ZpZGVyTmFtZSA9PT0gU2VydmljZVByb3ZpZGVyLkdvb2dsZTtcclxuICAgIGNvbnN0IGlzQXp1cmUgPSBtb2RlbENvbmZpZy5wcm92aWRlck5hbWUgPT09IFNlcnZpY2VQcm92aWRlci5BenVyZTtcclxuICAgIGNvbnN0IGlzQW50aHJvcGljID0gbW9kZWxDb25maWcucHJvdmlkZXJOYW1lID09PSBTZXJ2aWNlUHJvdmlkZXIuQW50aHJvcGljO1xyXG4gICAgY29uc3QgaXNCYWlkdSA9IG1vZGVsQ29uZmlnLnByb3ZpZGVyTmFtZSA9PSBTZXJ2aWNlUHJvdmlkZXIuQmFpZHU7XHJcbiAgICBjb25zdCBpc0J5dGVEYW5jZSA9IG1vZGVsQ29uZmlnLnByb3ZpZGVyTmFtZSA9PT0gU2VydmljZVByb3ZpZGVyLkJ5dGVEYW5jZTtcclxuICAgIGNvbnN0IGlzQWxpYmFiYSA9IG1vZGVsQ29uZmlnLnByb3ZpZGVyTmFtZSA9PT0gU2VydmljZVByb3ZpZGVyLkFsaWJhYmE7XHJcbiAgICBjb25zdCBpc01vb25zaG90ID0gbW9kZWxDb25maWcucHJvdmlkZXJOYW1lID09PSBTZXJ2aWNlUHJvdmlkZXIuTW9vbnNob3Q7XHJcbiAgICBjb25zdCBpc0lmbHl0ZWsgPSBtb2RlbENvbmZpZy5wcm92aWRlck5hbWUgPT09IFNlcnZpY2VQcm92aWRlci5JZmx5dGVrO1xyXG4gICAgY29uc3QgaXNEZWVwU2VlayA9IG1vZGVsQ29uZmlnLnByb3ZpZGVyTmFtZSA9PT0gU2VydmljZVByb3ZpZGVyLkRlZXBTZWVrO1xyXG4gICAgY29uc3QgaXNYQUkgPSBtb2RlbENvbmZpZy5wcm92aWRlck5hbWUgPT09IFNlcnZpY2VQcm92aWRlci5YQUk7XHJcbiAgICBjb25zdCBpc0NoYXRHTE0gPSBtb2RlbENvbmZpZy5wcm92aWRlck5hbWUgPT09IFNlcnZpY2VQcm92aWRlci5DaGF0R0xNO1xyXG4gICAgY29uc3QgaXNTaWxpY29uRmxvdyA9XHJcbiAgICAgIG1vZGVsQ29uZmlnLnByb3ZpZGVyTmFtZSA9PT0gU2VydmljZVByb3ZpZGVyLlNpbGljb25GbG93O1xyXG4gICAgY29uc3QgaXNFbmFibGVkQWNjZXNzQ29udHJvbCA9IGFjY2Vzc1N0b3JlLmVuYWJsZWRBY2Nlc3NDb250cm9sKCk7XHJcbiAgICBjb25zdCBhcGlLZXkgPSBpc0dvb2dsZVxyXG4gICAgICA/IGFjY2Vzc1N0b3JlLmdvb2dsZUFwaUtleVxyXG4gICAgICA6IGlzQXp1cmVcclxuICAgICAgPyBhY2Nlc3NTdG9yZS5henVyZUFwaUtleVxyXG4gICAgICA6IGlzQW50aHJvcGljXHJcbiAgICAgID8gYWNjZXNzU3RvcmUuYW50aHJvcGljQXBpS2V5XHJcbiAgICAgIDogaXNCeXRlRGFuY2VcclxuICAgICAgPyBhY2Nlc3NTdG9yZS5ieXRlZGFuY2VBcGlLZXlcclxuICAgICAgOiBpc0FsaWJhYmFcclxuICAgICAgPyBhY2Nlc3NTdG9yZS5hbGliYWJhQXBpS2V5XHJcbiAgICAgIDogaXNNb29uc2hvdFxyXG4gICAgICA/IGFjY2Vzc1N0b3JlLm1vb25zaG90QXBpS2V5XHJcbiAgICAgIDogaXNYQUlcclxuICAgICAgPyBhY2Nlc3NTdG9yZS54YWlBcGlLZXlcclxuICAgICAgOiBpc0RlZXBTZWVrXHJcbiAgICAgID8gYWNjZXNzU3RvcmUuZGVlcHNlZWtBcGlLZXlcclxuICAgICAgOiBpc0NoYXRHTE1cclxuICAgICAgPyBhY2Nlc3NTdG9yZS5jaGF0Z2xtQXBpS2V5XHJcbiAgICAgIDogaXNTaWxpY29uRmxvd1xyXG4gICAgICA/IGFjY2Vzc1N0b3JlLnNpbGljb25mbG93QXBpS2V5XHJcbiAgICAgIDogaXNJZmx5dGVrXHJcbiAgICAgID8gYWNjZXNzU3RvcmUuaWZseXRla0FwaUtleSAmJiBhY2Nlc3NTdG9yZS5pZmx5dGVrQXBpU2VjcmV0XHJcbiAgICAgICAgPyBhY2Nlc3NTdG9yZS5pZmx5dGVrQXBpS2V5ICsgXCI6XCIgKyBhY2Nlc3NTdG9yZS5pZmx5dGVrQXBpU2VjcmV0XHJcbiAgICAgICAgOiBcIlwiXHJcbiAgICAgIDogYWNjZXNzU3RvcmUub3BlbmFpQXBpS2V5O1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaXNHb29nbGUsXHJcbiAgICAgIGlzQXp1cmUsXHJcbiAgICAgIGlzQW50aHJvcGljLFxyXG4gICAgICBpc0JhaWR1LFxyXG4gICAgICBpc0J5dGVEYW5jZSxcclxuICAgICAgaXNBbGliYWJhLFxyXG4gICAgICBpc01vb25zaG90LFxyXG4gICAgICBpc0lmbHl0ZWssXHJcbiAgICAgIGlzRGVlcFNlZWssXHJcbiAgICAgIGlzWEFJLFxyXG4gICAgICBpc0NoYXRHTE0sXHJcbiAgICAgIGlzU2lsaWNvbkZsb3csXHJcbiAgICAgIGFwaUtleSxcclxuICAgICAgaXNFbmFibGVkQWNjZXNzQ29udHJvbCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBnZXRBdXRoSGVhZGVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gaXNBenVyZVxyXG4gICAgICA/IFwiYXBpLWtleVwiXHJcbiAgICAgIDogaXNBbnRocm9waWNcclxuICAgICAgPyBcIngtYXBpLWtleVwiXHJcbiAgICAgIDogaXNHb29nbGVcclxuICAgICAgPyBcIngtZ29vZy1hcGkta2V5XCJcclxuICAgICAgOiBcIkF1dGhvcml6YXRpb25cIjtcclxuICB9XHJcblxyXG4gIGNvbnN0IHtcclxuICAgIGlzR29vZ2xlLFxyXG4gICAgaXNBenVyZSxcclxuICAgIGlzQW50aHJvcGljLFxyXG4gICAgaXNCYWlkdSxcclxuICAgIGlzQnl0ZURhbmNlLFxyXG4gICAgaXNBbGliYWJhLFxyXG4gICAgaXNNb29uc2hvdCxcclxuICAgIGlzSWZseXRlayxcclxuICAgIGlzRGVlcFNlZWssXHJcbiAgICBpc1hBSSxcclxuICAgIGlzQ2hhdEdMTSxcclxuICAgIGlzU2lsaWNvbkZsb3csXHJcbiAgICBhcGlLZXksXHJcbiAgICBpc0VuYWJsZWRBY2Nlc3NDb250cm9sLFxyXG4gIH0gPSBnZXRDb25maWcoKTtcclxuICAvLyB3aGVuIHVzaW5nIGJhaWR1IGFwaSBpbiBhcHAsIG5vdCBzZXQgYXV0aCBoZWFkZXJcclxuICBpZiAoaXNCYWlkdSAmJiBjbGllbnRDb25maWc/LmlzQXBwKSByZXR1cm4gaGVhZGVycztcclxuXHJcbiAgY29uc3QgYXV0aEhlYWRlciA9IGdldEF1dGhIZWFkZXIoKTtcclxuXHJcbiAgY29uc3QgYmVhcmVyVG9rZW4gPSBnZXRCZWFyZXJUb2tlbihcclxuICAgIGFwaUtleSxcclxuICAgIGlzQXp1cmUgfHwgaXNBbnRocm9waWMgfHwgaXNHb29nbGUsXHJcbiAgKTtcclxuXHJcbiAgaWYgKGJlYXJlclRva2VuKSB7XHJcbiAgICBoZWFkZXJzW2F1dGhIZWFkZXJdID0gYmVhcmVyVG9rZW47XHJcbiAgfSBlbHNlIGlmIChpc0VuYWJsZWRBY2Nlc3NDb250cm9sICYmIHZhbGlkU3RyaW5nKGFjY2Vzc1N0b3JlLmFjY2Vzc0NvZGUpKSB7XHJcbiAgICBoZWFkZXJzW1wiQXV0aG9yaXphdGlvblwiXSA9IGdldEJlYXJlclRva2VuKFxyXG4gICAgICBBQ0NFU1NfQ09ERV9QUkVGSVggKyBhY2Nlc3NTdG9yZS5hY2Nlc3NDb2RlLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBoZWFkZXJzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xpZW50QXBpKHByb3ZpZGVyOiBTZXJ2aWNlUHJvdmlkZXIpOiBDbGllbnRBcGkge1xyXG4gIHN3aXRjaCAocHJvdmlkZXIpIHtcclxuICAgIGNhc2UgU2VydmljZVByb3ZpZGVyLkdvb2dsZTpcclxuICAgICAgcmV0dXJuIG5ldyBDbGllbnRBcGkoTW9kZWxQcm92aWRlci5HZW1pbmlQcm8pO1xyXG4gICAgY2FzZSBTZXJ2aWNlUHJvdmlkZXIuQW50aHJvcGljOlxyXG4gICAgICByZXR1cm4gbmV3IENsaWVudEFwaShNb2RlbFByb3ZpZGVyLkNsYXVkZSk7XHJcbiAgICBjYXNlIFNlcnZpY2VQcm92aWRlci5CYWlkdTpcclxuICAgICAgcmV0dXJuIG5ldyBDbGllbnRBcGkoTW9kZWxQcm92aWRlci5Fcm5pZSk7XHJcbiAgICBjYXNlIFNlcnZpY2VQcm92aWRlci5CeXRlRGFuY2U6XHJcbiAgICAgIHJldHVybiBuZXcgQ2xpZW50QXBpKE1vZGVsUHJvdmlkZXIuRG91YmFvKTtcclxuICAgIGNhc2UgU2VydmljZVByb3ZpZGVyLkFsaWJhYmE6XHJcbiAgICAgIHJldHVybiBuZXcgQ2xpZW50QXBpKE1vZGVsUHJvdmlkZXIuUXdlbik7XHJcbiAgICBjYXNlIFNlcnZpY2VQcm92aWRlci5UZW5jZW50OlxyXG4gICAgICByZXR1cm4gbmV3IENsaWVudEFwaShNb2RlbFByb3ZpZGVyLkh1bnl1YW4pO1xyXG4gICAgY2FzZSBTZXJ2aWNlUHJvdmlkZXIuTW9vbnNob3Q6XHJcbiAgICAgIHJldHVybiBuZXcgQ2xpZW50QXBpKE1vZGVsUHJvdmlkZXIuTW9vbnNob3QpO1xyXG4gICAgY2FzZSBTZXJ2aWNlUHJvdmlkZXIuSWZseXRlazpcclxuICAgICAgcmV0dXJuIG5ldyBDbGllbnRBcGkoTW9kZWxQcm92aWRlci5JZmx5dGVrKTtcclxuICAgIGNhc2UgU2VydmljZVByb3ZpZGVyLkRlZXBTZWVrOlxyXG4gICAgICByZXR1cm4gbmV3IENsaWVudEFwaShNb2RlbFByb3ZpZGVyLkRlZXBTZWVrKTtcclxuICAgIGNhc2UgU2VydmljZVByb3ZpZGVyLlhBSTpcclxuICAgICAgcmV0dXJuIG5ldyBDbGllbnRBcGkoTW9kZWxQcm92aWRlci5YQUkpO1xyXG4gICAgY2FzZSBTZXJ2aWNlUHJvdmlkZXIuQ2hhdEdMTTpcclxuICAgICAgcmV0dXJuIG5ldyBDbGllbnRBcGkoTW9kZWxQcm92aWRlci5DaGF0R0xNKTtcclxuICAgIGNhc2UgU2VydmljZVByb3ZpZGVyLlNpbGljb25GbG93OlxyXG4gICAgICByZXR1cm4gbmV3IENsaWVudEFwaShNb2RlbFByb3ZpZGVyLlNpbGljb25GbG93KTtcclxuICAgIGRlZmF1bHQ6XHJcbiAgICAgIHJldHVybiBuZXcgQ2xpZW50QXBpKE1vZGVsUHJvdmlkZXIuR1BUKTtcclxuICB9XHJcbn1cclxuIl0sIm5hbWVzIjpbImdldENsaWVudENvbmZpZyIsIkFDQ0VTU19DT0RFX1BSRUZJWCIsIk1vZGVsUHJvdmlkZXIiLCJTZXJ2aWNlUHJvdmlkZXIiLCJ1c2VBY2Nlc3NTdG9yZSIsInVzZUNoYXRTdG9yZSIsIkNoYXRHUFRBcGkiLCJHZW1pbmlQcm9BcGkiLCJDbGF1ZGVBcGkiLCJFcm5pZUFwaSIsIkRvdWJhb0FwaSIsIlF3ZW5BcGkiLCJIdW55dWFuQXBpIiwiTW9vbnNob3RBcGkiLCJTcGFya0FwaSIsIkRlZXBTZWVrQXBpIiwiWEFJQXBpIiwiQ2hhdEdMTUFwaSIsIlNpbGljb25mbG93QXBpIiwiUk9MRVMiLCJNb2RlbHMiLCJUVFNNb2RlbHMiLCJMTE1BcGkiLCJDbGllbnRBcGkiLCJjb25zdHJ1Y3RvciIsInByb3ZpZGVyIiwiR1BUIiwiR2VtaW5pUHJvIiwibGxtIiwiQ2xhdWRlIiwiRXJuaWUiLCJEb3ViYW8iLCJRd2VuIiwiSHVueXVhbiIsIk1vb25zaG90IiwiSWZseXRlayIsIkRlZXBTZWVrIiwiWEFJIiwiQ2hhdEdMTSIsIlNpbGljb25GbG93IiwiY29uZmlnIiwicHJvbXB0cyIsIm1hc2tzIiwic2hhcmUiLCJtZXNzYWdlcyIsImF2YXRhclVybCIsIm1zZ3MiLCJtYXAiLCJtIiwiZnJvbSIsInJvbGUiLCJ2YWx1ZSIsImNvbnRlbnQiLCJjb25jYXQiLCJjb25zb2xlIiwibG9nIiwiY2xpZW50Q29uZmlnIiwicHJveHlVcmwiLCJyYXdVcmwiLCJzaGFyZVVybCIsImlzQXBwIiwicmVzIiwiZmV0Y2giLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsIml0ZW1zIiwiaGVhZGVycyIsIm1ldGhvZCIsInJlc0pzb24iLCJqc29uIiwiaWQiLCJnZXRCZWFyZXJUb2tlbiIsImFwaUtleSIsIm5vQmVhcmVyIiwidmFsaWRTdHJpbmciLCJ0cmltIiwieCIsImxlbmd0aCIsImdldEhlYWRlcnMiLCJpZ25vcmVIZWFkZXJzIiwiYWNjZXNzU3RvcmUiLCJnZXRTdGF0ZSIsImNoYXRTdG9yZSIsIkFjY2VwdCIsImdldENvbmZpZyIsIm1vZGVsQ29uZmlnIiwiY3VycmVudFNlc3Npb24iLCJtYXNrIiwiaXNHb29nbGUiLCJwcm92aWRlck5hbWUiLCJHb29nbGUiLCJpc0F6dXJlIiwiQXp1cmUiLCJpc0FudGhyb3BpYyIsIkFudGhyb3BpYyIsImlzQmFpZHUiLCJCYWlkdSIsImlzQnl0ZURhbmNlIiwiQnl0ZURhbmNlIiwiaXNBbGliYWJhIiwiQWxpYmFiYSIsImlzTW9vbnNob3QiLCJpc0lmbHl0ZWsiLCJpc0RlZXBTZWVrIiwiaXNYQUkiLCJpc0NoYXRHTE0iLCJpc1NpbGljb25GbG93IiwiaXNFbmFibGVkQWNjZXNzQ29udHJvbCIsImVuYWJsZWRBY2Nlc3NDb250cm9sIiwiZ29vZ2xlQXBpS2V5IiwiYXp1cmVBcGlLZXkiLCJhbnRocm9waWNBcGlLZXkiLCJieXRlZGFuY2VBcGlLZXkiLCJhbGliYWJhQXBpS2V5IiwibW9vbnNob3RBcGlLZXkiLCJ4YWlBcGlLZXkiLCJkZWVwc2Vla0FwaUtleSIsImNoYXRnbG1BcGlLZXkiLCJzaWxpY29uZmxvd0FwaUtleSIsImlmbHl0ZWtBcGlLZXkiLCJpZmx5dGVrQXBpU2VjcmV0Iiwib3BlbmFpQXBpS2V5IiwiZ2V0QXV0aEhlYWRlciIsImF1dGhIZWFkZXIiLCJiZWFyZXJUb2tlbiIsImFjY2Vzc0NvZGUiLCJnZXRDbGllbnRBcGkiLCJUZW5jZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/client/api.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/client/controller.ts":
|
|
|
/*!**********************************!*\
|
|
|
!*** ./app/client/controller.ts ***!
|
|
|
\**********************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ChatControllerPool: () => (/* binding */ ChatControllerPool)\n/* harmony export */ });\n// To store message streaming controller\nconst ChatControllerPool = {\n controllers: {},\n addController (sessionId, messageId, controller) {\n const key = this.key(sessionId, messageId);\n this.controllers[key] = controller;\n return key;\n },\n stop (sessionId, messageId) {\n const key = this.key(sessionId, messageId);\n const controller = this.controllers[key];\n controller?.abort();\n },\n stopAll () {\n Object.values(this.controllers).forEach((v)=>v.abort());\n },\n hasPending () {\n return Object.values(this.controllers).length > 0;\n },\n remove (sessionId, messageId) {\n const key = this.key(sessionId, messageId);\n delete this.controllers[key];\n },\n key (sessionId, messageIndex) {\n return `${sessionId},${messageIndex}`;\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvY2xpZW50L2NvbnRyb2xsZXIudHMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHdDQUF3QztBQUNqQyxNQUFNQSxxQkFBcUI7SUFDaENDLGFBQWEsQ0FBQztJQUVkQyxlQUNFQyxTQUFpQixFQUNqQkMsU0FBaUIsRUFDakJDLFVBQTJCO1FBRTNCLE1BQU1DLE1BQU0sSUFBSSxDQUFDQSxHQUFHLENBQUNILFdBQVdDO1FBQ2hDLElBQUksQ0FBQ0gsV0FBVyxDQUFDSyxJQUFJLEdBQUdEO1FBQ3hCLE9BQU9DO0lBQ1Q7SUFFQUMsTUFBS0osU0FBaUIsRUFBRUMsU0FBaUI7UUFDdkMsTUFBTUUsTUFBTSxJQUFJLENBQUNBLEdBQUcsQ0FBQ0gsV0FBV0M7UUFDaEMsTUFBTUMsYUFBYSxJQUFJLENBQUNKLFdBQVcsQ0FBQ0ssSUFBSTtRQUN4Q0QsWUFBWUc7SUFDZDtJQUVBQztRQUNFQyxPQUFPQyxNQUFNLENBQUMsSUFBSSxDQUFDVixXQUFXLEVBQUVXLE9BQU8sQ0FBQyxDQUFDQyxJQUFNQSxFQUFFTCxLQUFLO0lBQ3hEO0lBRUFNO1FBQ0UsT0FBT0osT0FBT0MsTUFBTSxDQUFDLElBQUksQ0FBQ1YsV0FBVyxFQUFFYyxNQUFNLEdBQUc7SUFDbEQ7SUFFQUMsUUFBT2IsU0FBaUIsRUFBRUMsU0FBaUI7UUFDekMsTUFBTUUsTUFBTSxJQUFJLENBQUNBLEdBQUcsQ0FBQ0gsV0FBV0M7UUFDaEMsT0FBTyxJQUFJLENBQUNILFdBQVcsQ0FBQ0ssSUFBSTtJQUM5QjtJQUVBQSxLQUFJSCxTQUFpQixFQUFFYyxZQUFvQjtRQUN6QyxPQUFPLENBQUMsRUFBRWQsVUFBVSxDQUFDLEVBQUVjLGFBQWEsQ0FBQztJQUN2QztBQUNGLEVBQUUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9jbGllbnQvY29udHJvbGxlci50cz9hZTY5Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRvIHN0b3JlIG1lc3NhZ2Ugc3RyZWFtaW5nIGNvbnRyb2xsZXJcclxuZXhwb3J0IGNvbnN0IENoYXRDb250cm9sbGVyUG9vbCA9IHtcclxuICBjb250cm9sbGVyczoge30gYXMgUmVjb3JkPHN0cmluZywgQWJvcnRDb250cm9sbGVyPixcclxuXHJcbiAgYWRkQ29udHJvbGxlcihcclxuICAgIHNlc3Npb25JZDogc3RyaW5nLFxyXG4gICAgbWVzc2FnZUlkOiBzdHJpbmcsXHJcbiAgICBjb250cm9sbGVyOiBBYm9ydENvbnRyb2xsZXIsXHJcbiAgKSB7XHJcbiAgICBjb25zdCBrZXkgPSB0aGlzLmtleShzZXNzaW9uSWQsIG1lc3NhZ2VJZCk7XHJcbiAgICB0aGlzLmNvbnRyb2xsZXJzW2tleV0gPSBjb250cm9sbGVyO1xyXG4gICAgcmV0dXJuIGtleTtcclxuICB9LFxyXG5cclxuICBzdG9wKHNlc3Npb25JZDogc3RyaW5nLCBtZXNzYWdlSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3Qga2V5ID0gdGhpcy5rZXkoc2Vzc2lvbklkLCBtZXNzYWdlSWQpO1xyXG4gICAgY29uc3QgY29udHJvbGxlciA9IHRoaXMuY29udHJvbGxlcnNba2V5XTtcclxuICAgIGNvbnRyb2xsZXI/LmFib3J0KCk7XHJcbiAgfSxcclxuXHJcbiAgc3RvcEFsbCgpIHtcclxuICAgIE9iamVjdC52YWx1ZXModGhpcy5jb250cm9sbGVycykuZm9yRWFjaCgodikgPT4gdi5hYm9ydCgpKTtcclxuICB9LFxyXG5cclxuICBoYXNQZW5kaW5nKCkge1xyXG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5jb250cm9sbGVycykubGVuZ3RoID4gMDtcclxuICB9LFxyXG5cclxuICByZW1vdmUoc2Vzc2lvbklkOiBzdHJpbmcsIG1lc3NhZ2VJZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBrZXkgPSB0aGlzLmtleShzZXNzaW9uSWQsIG1lc3NhZ2VJZCk7XHJcbiAgICBkZWxldGUgdGhpcy5jb250cm9sbGVyc1trZXldO1xyXG4gIH0sXHJcblxyXG4gIGtleShzZXNzaW9uSWQ6IHN0cmluZywgbWVzc2FnZUluZGV4OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBgJHtzZXNzaW9uSWR9LCR7bWVzc2FnZUluZGV4fWA7XHJcbiAgfSxcclxufTtcclxuIl0sIm5hbWVzIjpbIkNoYXRDb250cm9sbGVyUG9vbCIsImNvbnRyb2xsZXJzIiwiYWRkQ29udHJvbGxlciIsInNlc3Npb25JZCIsIm1lc3NhZ2VJZCIsImNvbnRyb2xsZXIiLCJrZXkiLCJzdG9wIiwiYWJvcnQiLCJzdG9wQWxsIiwiT2JqZWN0IiwidmFsdWVzIiwiZm9yRWFjaCIsInYiLCJoYXNQZW5kaW5nIiwibGVuZ3RoIiwicmVtb3ZlIiwibWVzc2FnZUluZGV4Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/client/controller.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/client/platforms/alibaba.ts":
|
|
|
/*!*****************************************!*\
|
|
|
!*** ./app/client/platforms/alibaba.ts ***!
|
|
|
\*****************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Alibaba: () => (/* reexport safe */ _app_constant__WEBPACK_IMPORTED_MODULE_0__.Alibaba),\n/* harmony export */ QwenApi: () => (/* binding */ QwenApi)\n/* harmony export */ });\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _app_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/app/store */ \"(ssr)/./app/store/index.ts\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../api */ \"(ssr)/./app/client/api.ts\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../locales */ \"(ssr)/./app/locales/index.ts\");\n/* harmony import */ var _fortaine_fetch_event_source__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @fortaine/fetch-event-source */ \"(ssr)/./node_modules/@fortaine/fetch-event-source/lib/esm/fetch.js\");\n/* harmony import */ var _app_utils_format__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/app/utils/format */ \"(ssr)/./app/utils/format.ts\");\n/* harmony import */ var _app_config_client__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/app/config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/app/utils */ \"(ssr)/./app/utils.ts\");\n/* harmony import */ var _app_utils_stream__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/app/utils/stream */ \"(ssr)/./app/utils/stream.ts\");\n/* __next_internal_client_entry_do_not_use__ QwenApi,Alibaba auto */ \n\n\n\n\n\n\n\n\nclass QwenApi {\n path(path) {\n const accessStore = _app_store__WEBPACK_IMPORTED_MODULE_1__.useAccessStore.getState();\n let baseUrl = \"\";\n if (accessStore.useCustomConfig) {\n baseUrl = accessStore.alibabaUrl;\n }\n if (baseUrl.length === 0) {\n const isApp = !!(0,_app_config_client__WEBPACK_IMPORTED_MODULE_5__.getClientConfig)()?.isApp;\n baseUrl = isApp ? _app_constant__WEBPACK_IMPORTED_MODULE_0__.ALIBABA_BASE_URL : _app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Alibaba;\n }\n if (baseUrl.endsWith(\"/\")) {\n baseUrl = baseUrl.slice(0, baseUrl.length - 1);\n }\n if (!baseUrl.startsWith(\"http\") && !baseUrl.startsWith(_app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Alibaba)) {\n baseUrl = \"https://\" + baseUrl;\n }\n console.log(\"[Proxy Endpoint] \", baseUrl, path);\n return [\n baseUrl,\n path\n ].join(\"/\");\n }\n extractMessage(res) {\n return res?.output?.choices?.at(0)?.message?.content ?? \"\";\n }\n speech(options) {\n throw new Error(\"Method not implemented.\");\n }\n async chat(options) {\n const messages = options.messages.map((v)=>({\n role: v.role,\n content: (0,_app_utils__WEBPACK_IMPORTED_MODULE_6__.getMessageTextContent)(v)\n }));\n const modelConfig = {\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useAppConfig.getState().modelConfig,\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useChatStore.getState().currentSession().mask.modelConfig,\n ...{\n model: options.config.model\n }\n };\n const shouldStream = !!options.config.stream;\n const requestPayload = {\n model: modelConfig.model,\n input: {\n messages\n },\n parameters: {\n result_format: \"message\",\n incremental_output: shouldStream,\n temperature: modelConfig.temperature,\n // max_tokens: modelConfig.max_tokens,\n top_p: modelConfig.top_p === 1 ? 0.99 : modelConfig.top_p\n }\n };\n const controller = new AbortController();\n options.onController?.(controller);\n try {\n const chatPath = this.path(_app_constant__WEBPACK_IMPORTED_MODULE_0__.Alibaba.ChatPath);\n const chatPayload = {\n method: \"POST\",\n body: JSON.stringify(requestPayload),\n signal: controller.signal,\n headers: {\n ...(0,_api__WEBPACK_IMPORTED_MODULE_2__.getHeaders)(),\n \"X-DashScope-SSE\": shouldStream ? \"enable\" : \"disable\"\n }\n };\n // make a fetch request\n const requestTimeoutId = setTimeout(()=>controller.abort(), _app_constant__WEBPACK_IMPORTED_MODULE_0__.REQUEST_TIMEOUT_MS);\n if (shouldStream) {\n let responseText = \"\";\n let remainText = \"\";\n let finished = false;\n let responseRes;\n // animate response to make it looks smooth\n function animateResponseText() {\n if (finished || controller.signal.aborted) {\n responseText += remainText;\n console.log(\"[Response Animation] finished\");\n if (responseText?.length === 0) {\n options.onError?.(new Error(\"empty response from server\"));\n }\n return;\n }\n if (remainText.length > 0) {\n const fetchCount = Math.max(1, Math.round(remainText.length / 60));\n const fetchText = remainText.slice(0, fetchCount);\n responseText += fetchText;\n remainText = remainText.slice(fetchCount);\n options.onUpdate?.(responseText, fetchText);\n }\n requestAnimationFrame(animateResponseText);\n }\n // start animaion\n animateResponseText();\n const finish = ()=>{\n if (!finished) {\n finished = true;\n options.onFinish(responseText + remainText, responseRes);\n }\n };\n controller.signal.onabort = finish;\n (0,_fortaine_fetch_event_source__WEBPACK_IMPORTED_MODULE_8__.fetchEventSource)(chatPath, {\n fetch: _app_utils_stream__WEBPACK_IMPORTED_MODULE_7__.fetch,\n ...chatPayload,\n async onopen (res) {\n clearTimeout(requestTimeoutId);\n const contentType = res.headers.get(\"content-type\");\n console.log(\"[Alibaba] request response content type: \", contentType);\n responseRes = res;\n if (contentType?.startsWith(\"text/plain\")) {\n responseText = await res.clone().text();\n return finish();\n }\n if (!res.ok || !res.headers.get(\"content-type\")?.startsWith(_fortaine_fetch_event_source__WEBPACK_IMPORTED_MODULE_8__.EventStreamContentType) || res.status !== 200) {\n const responseTexts = [\n responseText\n ];\n let extraInfo = await res.clone().text();\n try {\n const resJson = await res.clone().json();\n extraInfo = (0,_app_utils_format__WEBPACK_IMPORTED_MODULE_4__.prettyObject)(resJson);\n } catch {}\n if (res.status === 401) {\n responseTexts.push(_locales__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Error.Unauthorized);\n }\n if (extraInfo) {\n responseTexts.push(extraInfo);\n }\n responseText = responseTexts.join(\"\\n\\n\");\n return finish();\n }\n },\n onmessage (msg) {\n if (msg.data === \"[DONE]\" || finished) {\n return finish();\n }\n const text = msg.data;\n try {\n const json = JSON.parse(text);\n const choices = json.output.choices;\n const delta = choices[0]?.message?.content;\n if (delta) {\n remainText += delta;\n }\n } catch (e) {\n console.error(\"[Request] parse error\", text, msg);\n }\n },\n onclose () {\n finish();\n },\n onerror (e) {\n options.onError?.(e);\n throw e;\n },\n openWhenHidden: true\n });\n } else {\n const res = await (0,_app_utils_stream__WEBPACK_IMPORTED_MODULE_7__.fetch)(chatPath, chatPayload);\n clearTimeout(requestTimeoutId);\n const resJson = await res.json();\n const message = this.extractMessage(resJson);\n options.onFinish(message, res);\n }\n } catch (e) {\n console.log(\"[Request] failed to make a chat request\", e);\n options.onError?.(e);\n }\n }\n async usage() {\n return {\n used: 0,\n total: 0\n };\n }\n async models() {\n return [];\n }\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFPQyxHQUFHOzRCQUNWbkYsUUFBUW9GLEtBQUssQ0FBQyx5QkFBeUJmLE1BQU1VO3dCQUMvQztvQkFDRjtvQkFDQU07d0JBQ0V4QjtvQkFDRjtvQkFDQXlCLFNBQVFILENBQUM7d0JBQ1B4RSxRQUFRMEMsT0FBTyxHQUFHOEI7d0JBQ2xCLE1BQU1BO29CQUNSO29CQUNBSSxnQkFBZ0I7Z0JBQ2xCO1lBQ0YsT0FBTztnQkFDTCxNQUFNbkYsTUFBTSxNQUFNakIsd0RBQUtBLENBQUNnRCxVQUFVRTtnQkFDbEM0QixhQUFhckI7Z0JBRWIsTUFBTThCLFVBQVUsTUFBTXRFLElBQUl1RSxJQUFJO2dCQUM5QixNQUFNbkUsVUFBVSxJQUFJLENBQUNMLGNBQWMsQ0FBQ3VFO2dCQUNwQy9ELFFBQVFtRCxRQUFRLENBQUN0RCxTQUFTSjtZQUM1QjtRQUNGLEVBQUUsT0FBTytFLEdBQUc7WUFDVm5GLFFBQVFDLEdBQUcsQ0FBQywyQ0FBMkNrRjtZQUN2RHhFLFFBQVEwQyxPQUFPLEdBQUc4QjtRQUNwQjtJQUNGO0lBQ0EsTUFBTUssUUFBUTtRQUNaLE9BQU87WUFDTEMsTUFBTTtZQUNOQyxPQUFPO1FBQ1Q7SUFDRjtJQUVBLE1BQU1DLFNBQThCO1FBQ2xDLE9BQU8sRUFBRTtJQUNYO0FBQ0Y7QUFDbUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9jbGllbnQvcGxhdGZvcm1zL2FsaWJhYmEudHM/MmNjYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcclxuaW1wb3J0IHtcclxuICBBcGlQYXRoLFxyXG4gIEFsaWJhYmEsXHJcbiAgQUxJQkFCQV9CQVNFX1VSTCxcclxuICBSRVFVRVNUX1RJTUVPVVRfTVMsXHJcbn0gZnJvbSBcIkAvYXBwL2NvbnN0YW50XCI7XHJcbmltcG9ydCB7IHVzZUFjY2Vzc1N0b3JlLCB1c2VBcHBDb25maWcsIHVzZUNoYXRTdG9yZSB9IGZyb20gXCJAL2FwcC9zdG9yZVwiO1xyXG5cclxuaW1wb3J0IHtcclxuICBDaGF0T3B0aW9ucyxcclxuICBnZXRIZWFkZXJzLFxyXG4gIExMTUFwaSxcclxuICBMTE1Nb2RlbCxcclxuICBTcGVlY2hPcHRpb25zLFxyXG4gIE11bHRpbW9kYWxDb250ZW50LFxyXG59IGZyb20gXCIuLi9hcGlcIjtcclxuaW1wb3J0IExvY2FsZSBmcm9tIFwiLi4vLi4vbG9jYWxlc1wiO1xyXG5pbXBvcnQge1xyXG4gIEV2ZW50U3RyZWFtQ29udGVudFR5cGUsXHJcbiAgZmV0Y2hFdmVudFNvdXJjZSxcclxufSBmcm9tIFwiQGZvcnRhaW5lL2ZldGNoLWV2ZW50LXNvdXJjZVwiO1xyXG5pbXBvcnQgeyBwcmV0dHlPYmplY3QgfSBmcm9tIFwiQC9hcHAvdXRpbHMvZm9ybWF0XCI7XHJcbmltcG9ydCB7IGdldENsaWVudENvbmZpZyB9IGZyb20gXCJAL2FwcC9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB7IGdldE1lc3NhZ2VUZXh0Q29udGVudCB9IGZyb20gXCJAL2FwcC91dGlsc1wiO1xyXG5pbXBvcnQgeyBmZXRjaCB9IGZyb20gXCJAL2FwcC91dGlscy9zdHJlYW1cIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkFJTGlzdE1vZGVsUmVzcG9uc2Uge1xyXG4gIG9iamVjdDogc3RyaW5nO1xyXG4gIGRhdGE6IEFycmF5PHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBvYmplY3Q6IHN0cmluZztcclxuICAgIHJvb3Q6IHN0cmluZztcclxuICB9PjtcclxufVxyXG5cclxuaW50ZXJmYWNlIFJlcXVlc3RJbnB1dCB7XHJcbiAgbWVzc2FnZXM6IHtcclxuICAgIHJvbGU6IFwic3lzdGVtXCIgfCBcInVzZXJcIiB8IFwiYXNzaXN0YW50XCI7XHJcbiAgICBjb250ZW50OiBzdHJpbmcgfCBNdWx0aW1vZGFsQ29udGVudFtdO1xyXG4gIH1bXTtcclxufVxyXG5pbnRlcmZhY2UgUmVxdWVzdFBhcmFtIHtcclxuICByZXN1bHRfZm9ybWF0OiBzdHJpbmc7XHJcbiAgaW5jcmVtZW50YWxfb3V0cHV0PzogYm9vbGVhbjtcclxuICB0ZW1wZXJhdHVyZTogbnVtYmVyO1xyXG4gIHJlcGV0aXRpb25fcGVuYWx0eT86IG51bWJlcjtcclxuICB0b3BfcDogbnVtYmVyO1xyXG4gIG1heF90b2tlbnM/OiBudW1iZXI7XHJcbn1cclxuaW50ZXJmYWNlIFJlcXVlc3RQYXlsb2FkIHtcclxuICBtb2RlbDogc3RyaW5nO1xyXG4gIGlucHV0OiBSZXF1ZXN0SW5wdXQ7XHJcbiAgcGFyYW1ldGVyczogUmVxdWVzdFBhcmFtO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUXdlbkFwaSBpbXBsZW1lbnRzIExMTUFwaSB7XHJcbiAgcGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYWNjZXNzU3RvcmUgPSB1c2VBY2Nlc3NTdG9yZS5nZXRTdGF0ZSgpO1xyXG5cclxuICAgIGxldCBiYXNlVXJsID0gXCJcIjtcclxuXHJcbiAgICBpZiAoYWNjZXNzU3RvcmUudXNlQ3VzdG9tQ29uZmlnKSB7XHJcbiAgICAgIGJhc2VVcmwgPSBhY2Nlc3NTdG9yZS5hbGliYWJhVXJsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChiYXNlVXJsLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBjb25zdCBpc0FwcCA9ICEhZ2V0Q2xpZW50Q29uZmlnKCk/LmlzQXBwO1xyXG4gICAgICBiYXNlVXJsID0gaXNBcHAgPyBBTElCQUJBX0JBU0VfVVJMIDogQXBpUGF0aC5BbGliYWJhO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChiYXNlVXJsLmVuZHNXaXRoKFwiL1wiKSkge1xyXG4gICAgICBiYXNlVXJsID0gYmFzZVVybC5zbGljZSgwLCBiYXNlVXJsLmxlbmd0aCAtIDEpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFiYXNlVXJsLnN0YXJ0c1dpdGgoXCJodHRwXCIpICYmICFiYXNlVXJsLnN0YXJ0c1dpdGgoQXBpUGF0aC5BbGliYWJhKSkge1xyXG4gICAgICBiYXNlVXJsID0gXCJodHRwczovL1wiICsgYmFzZVVybDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIltQcm94eSBFbmRwb2ludF0gXCIsIGJhc2VVcmwsIHBhdGgpO1xyXG5cclxuICAgIHJldHVybiBbYmFzZVVybCwgcGF0aF0uam9pbihcIi9cIik7XHJcbiAgfVxyXG5cclxuICBleHRyYWN0TWVzc2FnZShyZXM6IGFueSkge1xyXG4gICAgcmV0dXJuIHJlcz8ub3V0cHV0Py5jaG9pY2VzPy5hdCgwKT8ubWVzc2FnZT8uY29udGVudCA/PyBcIlwiO1xyXG4gIH1cclxuXHJcbiAgc3BlZWNoKG9wdGlvbnM6IFNwZWVjaE9wdGlvbnMpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGNoYXQob3B0aW9uczogQ2hhdE9wdGlvbnMpIHtcclxuICAgIGNvbnN0IG1lc3NhZ2VzID0gb3B0aW9ucy5tZXNzYWdlcy5tYXAoKHYpID0+ICh7XHJcbiAgICAgIHJvbGU6IHYucm9sZSxcclxuICAgICAgY29udGVudDogZ2V0TWVzc2FnZVRleHRDb250ZW50KHYpLFxyXG4gICAgfSkpO1xyXG5cclxuICAgIGNvbnN0IG1vZGVsQ29uZmlnID0ge1xyXG4gICAgICAuLi51c2VBcHBDb25maWcuZ2V0U3RhdGUoKS5tb2RlbENvbmZpZyxcclxuICAgICAgLi4udXNlQ2hhdFN0b3JlLmdldFN0YXRlKCkuY3VycmVudFNlc3Npb24oKS5tYXNrLm1vZGVsQ29uZmlnLFxyXG4gICAgICAuLi57XHJcbiAgICAgICAgbW9kZWw6IG9wdGlvbnMuY29uZmlnLm1vZGVsLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBzaG91bGRTdHJlYW0gPSAhIW9wdGlvbnMuY29uZmlnLnN0cmVhbTtcclxuICAgIGNvbnN0IHJlcXVlc3RQYXlsb2FkOiBSZXF1ZXN0UGF5bG9hZCA9IHtcclxuICAgICAgbW9kZWw6IG1vZGVsQ29uZmlnLm1vZGVsLFxyXG4gICAgICBpbnB1dDoge1xyXG4gICAgICAgIG1lc3NhZ2VzLFxyXG4gICAgICB9LFxyXG4gICAgICBwYXJhbWV0ZXJzOiB7XHJcbiAgICAgICAgcmVzdWx0X2Zvcm1hdDogXCJtZXNzYWdlXCIsXHJcbiAgICAgICAgaW5jcmVtZW50YWxfb3V0cHV0OiBzaG91bGRTdHJlYW0sXHJcbiAgICAgICAgdGVtcGVyYXR1cmU6IG1vZGVsQ29uZmlnLnRlbXBlcmF0dXJlLFxyXG4gICAgICAgIC8vIG1heF90b2tlbnM6IG1vZGVsQ29uZmlnLm1heF90b2tlbnMsXHJcbiAgICAgICAgdG9wX3A6IG1vZGVsQ29uZmlnLnRvcF9wID09PSAxID8gMC45OSA6IG1vZGVsQ29uZmlnLnRvcF9wLCAvLyBxd2VuIHRvcF9wIGlzIHNob3VsZCBiZSA8IDFcclxuICAgICAgfSxcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcclxuICAgIG9wdGlvbnMub25Db250cm9sbGVyPy4oY29udHJvbGxlcik7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgY2hhdFBhdGggPSB0aGlzLnBhdGgoQWxpYmFiYS5DaGF0UGF0aCk7XHJcbiAgICAgIGNvbnN0IGNoYXRQYXlsb2FkID0ge1xyXG4gICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXHJcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkocmVxdWVzdFBheWxvYWQpLFxyXG4gICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWwsXHJcbiAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgLi4uZ2V0SGVhZGVycygpLFxyXG4gICAgICAgICAgXCJYLURhc2hTY29wZS1TU0VcIjogc2hvdWxkU3RyZWFtID8gXCJlbmFibGVcIiA6IFwiZGlzYWJsZVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcblxyXG4gICAgICAvLyBtYWtlIGEgZmV0Y2ggcmVxdWVzdFxyXG4gICAgICBjb25zdCByZXF1ZXN0VGltZW91dElkID0gc2V0VGltZW91dChcclxuICAgICAgICAoKSA9PiBjb250cm9sbGVyLmFib3J0KCksXHJcbiAgICAgICAgUkVRVUVTVF9USU1FT1VUX01TLFxyXG4gICAgICApO1xyXG5cclxuICAgICAgaWYgKHNob3VsZFN0cmVhbSkge1xyXG4gICAgICAgIGxldCByZXNwb25zZVRleHQgPSBcIlwiO1xyXG4gICAgICAgIGxldCByZW1haW5UZXh0ID0gXCJcIjtcclxuICAgICAgICBsZXQgZmluaXNoZWQgPSBmYWxzZTtcclxuICAgICAgICBsZXQgcmVzcG9uc2VSZXM6IFJlc3BvbnNlO1xyXG5cclxuICAgICAgICAvLyBhbmltYXRlIHJlc3BvbnNlIHRvIG1ha2UgaXQgbG9va3Mgc21vb3RoXHJcbiAgICAgICAgZnVuY3Rpb24gYW5pbWF0ZVJlc3BvbnNlVGV4dCgpIHtcclxuICAgICAgICAgIGlmIChmaW5pc2hlZCB8fCBjb250cm9sbGVyLnNpZ25hbC5hYm9ydGVkKSB7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlVGV4dCArPSByZW1haW5UZXh0O1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIltSZXNwb25zZSBBbmltYXRpb25dIGZpbmlzaGVkXCIpO1xyXG4gICAgICAgICAgICBpZiAocmVzcG9uc2VUZXh0Py5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICBvcHRpb25zLm9uRXJyb3I/LihuZXcgRXJyb3IoXCJlbXB0eSByZXNwb25zZSBmcm9tIHNlcnZlclwiKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmIChyZW1haW5UZXh0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgZmV0Y2hDb3VudCA9IE1hdGgubWF4KDEsIE1hdGgucm91bmQocmVtYWluVGV4dC5sZW5ndGggLyA2MCkpO1xyXG4gICAgICAgICAgICBjb25zdCBmZXRjaFRleHQgPSByZW1haW5UZXh0LnNsaWNlKDAsIGZldGNoQ291bnQpO1xyXG4gICAgICAgICAgICByZXNwb25zZVRleHQgKz0gZmV0Y2hUZXh0O1xyXG4gICAgICAgICAgICByZW1haW5UZXh0ID0gcmVtYWluVGV4dC5zbGljZShmZXRjaENvdW50KTtcclxuICAgICAgICAgICAgb3B0aW9ucy5vblVwZGF0ZT8uKHJlc3BvbnNlVGV4dCwgZmV0Y2hUZXh0KTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYW5pbWF0ZVJlc3BvbnNlVGV4dCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBzdGFydCBhbmltYWlvblxyXG4gICAgICAgIGFuaW1hdGVSZXNwb25zZVRleHQoKTtcclxuXHJcbiAgICAgICAgY29uc3QgZmluaXNoID0gKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKCFmaW5pc2hlZCkge1xyXG4gICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIG9wdGlvbnMub25GaW5pc2gocmVzcG9uc2VUZXh0ICsgcmVtYWluVGV4dCwgcmVzcG9uc2VSZXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNvbnRyb2xsZXIuc2lnbmFsLm9uYWJvcnQgPSBmaW5pc2g7XHJcblxyXG4gICAgICAgIGZldGNoRXZlbnRTb3VyY2UoY2hhdFBhdGgsIHtcclxuICAgICAgICAgIGZldGNoOiBmZXRjaCBhcyBhbnksXHJcbiAgICAgICAgICAuLi5jaGF0UGF5bG9hZCxcclxuICAgICAgICAgIGFzeW5jIG9ub3BlbihyZXMpIHtcclxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHJlcXVlc3RUaW1lb3V0SWQpO1xyXG4gICAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IHJlcy5oZWFkZXJzLmdldChcImNvbnRlbnQtdHlwZVwiKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgICAgXCJbQWxpYmFiYV0gcmVxdWVzdCByZXNwb25zZSBjb250ZW50IHR5cGU6IFwiLFxyXG4gICAgICAgICAgICAgIGNvbnRlbnRUeXBlLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICByZXNwb25zZVJlcyA9IHJlcztcclxuXHJcbiAgICAgICAgICAgIGlmIChjb250ZW50VHlwZT8uc3RhcnRzV2l0aChcInRleHQvcGxhaW5cIikpIHtcclxuICAgICAgICAgICAgICByZXNwb25zZVRleHQgPSBhd2FpdCByZXMuY2xvbmUoKS50ZXh0KCk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGZpbmlzaCgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgIXJlcy5vayB8fFxyXG4gICAgICAgICAgICAgICFyZXMuaGVhZGVyc1xyXG4gICAgICAgICAgICAgICAgLmdldChcImNvbnRlbnQtdHlwZVwiKVxyXG4gICAgICAgICAgICAgICAgPy5zdGFydHNXaXRoKEV2ZW50U3RyZWFtQ29udGVudFR5cGUpIHx8XHJcbiAgICAgICAgICAgICAgcmVzLnN0YXR1cyAhPT0gMjAwXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlVGV4dHMgPSBbcmVzcG9uc2VUZXh0XTtcclxuICAgICAgICAgICAgICBsZXQgZXh0cmFJbmZvID0gYXdhaXQgcmVzLmNsb25lKCkudGV4dCgpO1xyXG4gICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZXNKc29uID0gYXdhaXQgcmVzLmNsb25lKCkuanNvbigpO1xyXG4gICAgICAgICAgICAgICAgZXh0cmFJbmZvID0gcHJldHR5T2JqZWN0KHJlc0pzb24pO1xyXG4gICAgICAgICAgICAgIH0gY2F0Y2gge31cclxuXHJcbiAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDQwMSkge1xyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUZXh0cy5wdXNoKExvY2FsZS5FcnJvci5VbmF1dGhvcml6ZWQpO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgaWYgKGV4dHJhSW5mbykge1xyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUZXh0cy5wdXNoKGV4dHJhSW5mbyk7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICByZXNwb25zZVRleHQgPSByZXNwb25zZVRleHRzLmpvaW4oXCJcXG5cXG5cIik7XHJcblxyXG4gICAgICAgICAgICAgIHJldHVybiBmaW5pc2goKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9ubWVzc2FnZShtc2cpIHtcclxuICAgICAgICAgICAgaWYgKG1zZy5kYXRhID09PSBcIltET05FXVwiIHx8IGZpbmlzaGVkKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGZpbmlzaCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSBtc2cuZGF0YTtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICBjb25zdCBqc29uID0gSlNPTi5wYXJzZSh0ZXh0KTtcclxuICAgICAgICAgICAgICBjb25zdCBjaG9pY2VzID0ganNvbi5vdXRwdXQuY2hvaWNlcyBhcyBBcnJheTx7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB7IGNvbnRlbnQ6IHN0cmluZyB9O1xyXG4gICAgICAgICAgICAgIH0+O1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRlbHRhID0gY2hvaWNlc1swXT8ubWVzc2FnZT8uY29udGVudDtcclxuICAgICAgICAgICAgICBpZiAoZGVsdGEpIHtcclxuICAgICAgICAgICAgICAgIHJlbWFpblRleHQgKz0gZGVsdGE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIltSZXF1ZXN0XSBwYXJzZSBlcnJvclwiLCB0ZXh0LCBtc2cpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb25jbG9zZSgpIHtcclxuICAgICAgICAgICAgZmluaXNoKCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb25lcnJvcihlKSB7XHJcbiAgICAgICAgICAgIG9wdGlvbnMub25FcnJvcj8uKGUpO1xyXG4gICAgICAgICAgICB0aHJvdyBlO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9wZW5XaGVuSGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKGNoYXRQYXRoLCBjaGF0UGF5bG9hZCk7XHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KHJlcXVlc3RUaW1lb3V0SWQpO1xyXG5cclxuICAgICAgICBjb25zdCByZXNKc29uID0gYXdhaXQgcmVzLmpzb24oKTtcclxuICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5leHRyYWN0TWVzc2FnZShyZXNKc29uKTtcclxuICAgICAgICBvcHRpb25zLm9uRmluaXNoKG1lc3NhZ2UsIHJlcyk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJbUmVxdWVzdF0gZmFpbGVkIHRvIG1ha2UgYSBjaGF0IHJlcXVlc3RcIiwgZSk7XHJcbiAgICAgIG9wdGlvbnMub25FcnJvcj8uKGUgYXMgRXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuICBhc3luYyB1c2FnZSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHVzZWQ6IDAsXHJcbiAgICAgIHRvdGFsOiAwLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG1vZGVscygpOiBQcm9taXNlPExMTU1vZGVsW10+IHtcclxuICAgIHJldHVybiBbXTtcclxuICB9XHJcbn1cclxuZXhwb3J0IHsgQWxpYmFiYSB9O1xyXG4iXSwibmFtZXMiOlsiQXBpUGF0aCIsIkFsaWJhYmEiLCJBTElCQUJBX0JBU0VfVVJMIiwiUkVRVUVTVF9USU1FT1VUX01TIiwidXNlQWNjZXNzU3RvcmUiLCJ1c2VBcHBDb25maWciLCJ1c2VDaGF0U3RvcmUiLCJnZXRIZWFkZXJzIiwiTG9jYWxlIiwiRXZlbnRTdHJlYW1Db250ZW50VHlwZSIsImZldGNoRXZlbnRTb3VyY2UiLCJwcmV0dHlPYmplY3QiLCJnZXRDbGllbnRDb25maWciLCJnZXRNZXNzYWdlVGV4dENvbnRlbnQiLCJmZXRjaCIsIlF3ZW5BcGkiLCJwYXRoIiwiYWNjZXNzU3RvcmUiLCJnZXRTdGF0ZSIsImJhc2VVcmwiLCJ1c2VDdXN0b21Db25maWciLCJhbGliYWJhVXJsIiwibGVuZ3RoIiwiaXNBcHAiLCJlbmRzV2l0aCIsInNsaWNlIiwic3RhcnRzV2l0aCIsImNvbnNvbGUiLCJsb2ciLCJqb2luIiwiZXh0cmFjdE1lc3NhZ2UiLCJyZXMiLCJvdXRwdXQiLCJjaG9pY2VzIiwiYXQiLCJtZXNzYWdlIiwiY29udGVudCIsInNwZWVjaCIsIm9wdGlvbnMiLCJFcnJvciIsImNoYXQiLCJtZXNzYWdlcyIsIm1hcCIsInYiLCJyb2xlIiwibW9kZWxDb25maWciLCJjdXJyZW50U2Vzc2lvbiIsIm1hc2siLCJtb2RlbCIsImNvbmZpZyIsInNob3VsZFN0cmVhbSIsInN0cmVhbSIsInJlcXVlc3RQYXlsb2FkIiwiaW5wdXQiLCJwYXJhbWV0ZXJzIiwicmVzdWx0X2Zvcm1hdCIsImluY3JlbWVudGFsX291dHB1dCIsInRlbXBlcmF0dXJlIiwidG9wX3AiLCJjb250cm9sbGVyIiwiQWJvcnRDb250cm9sbGVyIiwib25Db250cm9sbGVyIiwiY2hhdFBhdGgiLCJDaGF0UGF0aCIsImNoYXRQYXlsb2FkIiwibWV0aG9kIiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJzaWduYWwiLCJoZWFkZXJzIiwicmVxdWVzdFRpbWVvdXRJZCIsInNldFRpbWVvdXQiLCJhYm9ydCIsInJlc3BvbnNlVGV4dCIsInJlbWFpblRleHQiLCJmaW5pc2hlZCIsInJlc3BvbnNlUmVzIiwiYW5pbWF0ZVJlc3BvbnNlVGV4dCIsImFib3J0ZWQiLCJvbkVycm9yIiwiZmV0Y2hDb3VudCIsIk1hdGgiLCJtYXgiLCJyb3VuZCIsImZldGNoVGV4dCIsIm9uVXBkYXRlIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiZmluaXNoIiwib25GaW5pc2giLCJvbmFib3J0Iiwib25vcGVuIiwiY2xlYXJUaW1lb3V0IiwiY29udGVudFR5cGUiLCJnZXQiLCJjbG9uZSIsInRleHQiLCJvayIsInN0YXR1cyIsInJlc3BvbnNlVGV4dHMiLCJleHRyYUluZm8iLCJyZXNKc29uIiwianNvbiIsInB1c2giLCJVbmF1dGhvcml6ZWQiLCJvbm1lc3NhZ2UiLCJtc2ciLCJkYXRhIiwicGFyc2UiLCJkZWx0YSIsImUiLCJlcnJvciIsIm9uY2xvc2UiLCJvbmVycm9yIiwib3BlbldoZW5IaWRkZW4iLCJ1c2FnZSIsInVzZWQiLCJ0b3RhbCIsIm1vZGVscyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/client/platforms/alibaba.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/client/platforms/anthropic.ts":
|
|
|
/*!*******************************************!*\
|
|
|
!*** ./app/client/platforms/anthropic.ts ***!
|
|
|
\*******************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ClaudeApi: () => (/* binding */ ClaudeApi)\n/* harmony export */ });\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../api */ \"(ssr)/./app/client/api.ts\");\n/* harmony import */ var _app_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/store */ \"(ssr)/./app/store/index.ts\");\n/* harmony import */ var _app_config_client__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/app/config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/app/utils */ \"(ssr)/./app/utils.ts\");\n/* harmony import */ var _app_utils_chat__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/app/utils/chat */ \"(ssr)/./app/utils/chat.ts\");\n/* harmony import */ var _app_utils_cloudflare__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/app/utils/cloudflare */ \"(ssr)/./app/utils/cloudflare.ts\");\n/* harmony import */ var _app_utils_stream__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/app/utils/stream */ \"(ssr)/./app/utils/stream.ts\");\n\n\n\n\n\n\n\n\n\nconst ClaudeMapper = {\n assistant: \"assistant\",\n user: \"user\",\n system: \"user\"\n};\nconst keys = [\n \"claude-2, claude-instant-1\"\n];\nclass ClaudeApi {\n speech(options) {\n throw new Error(\"Method not implemented.\");\n }\n extractMessage(res) {\n console.log(\"[Response] claude response: \", res);\n return res?.content?.[0]?.text;\n }\n async chat(options) {\n const visionModel = (0,_app_utils__WEBPACK_IMPORTED_MODULE_4__.isVisionModel)(options.config.model);\n const accessStore = _app_store__WEBPACK_IMPORTED_MODULE_2__.useAccessStore.getState();\n const shouldStream = !!options.config.stream;\n const modelConfig = {\n ..._app_store__WEBPACK_IMPORTED_MODULE_2__.useAppConfig.getState().modelConfig,\n ..._app_store__WEBPACK_IMPORTED_MODULE_2__.useChatStore.getState().currentSession().mask.modelConfig,\n ...{\n model: options.config.model\n }\n };\n // try get base64image from local cache image_url\n const messages = [];\n for (const v of options.messages){\n const content = await (0,_app_utils_chat__WEBPACK_IMPORTED_MODULE_5__.preProcessImageContent)(v.content);\n messages.push({\n role: v.role,\n content\n });\n }\n const keys = [\n \"system\",\n \"user\"\n ];\n // roles must alternate between \"user\" and \"assistant\" in claude, so add a fake assistant message between two user messages\n for(let i = 0; i < messages.length - 1; i++){\n const message = messages[i];\n const nextMessage = messages[i + 1];\n if (keys.includes(message.role) && keys.includes(nextMessage.role)) {\n messages[i] = [\n message,\n {\n role: \"assistant\",\n content: \";\"\n }\n ];\n }\n }\n const prompt = messages.flat().filter((v)=>{\n if (!v.content) return false;\n if (typeof v.content === \"string\" && !v.content.trim()) return false;\n return true;\n }).map((v)=>{\n const { role, content } = v;\n const insideRole = ClaudeMapper[role] ?? \"user\";\n if (!visionModel || typeof content === \"string\") {\n return {\n role: insideRole,\n content: (0,_app_utils__WEBPACK_IMPORTED_MODULE_4__.getMessageTextContent)(v)\n };\n }\n return {\n role: insideRole,\n content: content.filter((v)=>v.image_url || v.text).map(({ type, text, image_url })=>{\n if (type === \"text\") {\n return {\n type,\n text: text\n };\n }\n const { url = \"\" } = image_url || {};\n const colonIndex = url.indexOf(\":\");\n const semicolonIndex = url.indexOf(\";\");\n const comma = url.indexOf(\",\");\n const mimeType = url.slice(colonIndex + 1, semicolonIndex);\n const encodeType = url.slice(semicolonIndex + 1, comma);\n const data = url.slice(comma + 1);\n return {\n type: \"image\",\n source: {\n type: encodeType,\n media_type: mimeType,\n data\n }\n };\n })\n };\n });\n if (prompt[0]?.role === \"assistant\") {\n prompt.unshift({\n role: \"user\",\n content: \";\"\n });\n }\n const requestBody = {\n messages: prompt,\n stream: shouldStream,\n model: modelConfig.model,\n max_tokens: modelConfig.max_tokens,\n temperature: modelConfig.temperature,\n top_p: modelConfig.top_p,\n // top_k: modelConfig.top_k,\n top_k: 5\n };\n const path = this.path(_app_constant__WEBPACK_IMPORTED_MODULE_0__.Anthropic.ChatPath);\n const controller = new AbortController();\n options.onController?.(controller);\n if (shouldStream) {\n let index = -1;\n const [tools, funcs] = _app_store__WEBPACK_IMPORTED_MODULE_2__.usePluginStore.getState().getAsTools(_app_store__WEBPACK_IMPORTED_MODULE_2__.useChatStore.getState().currentSession().mask?.plugin || []);\n return (0,_app_utils_chat__WEBPACK_IMPORTED_MODULE_5__.stream)(path, requestBody, {\n ...(0,_api__WEBPACK_IMPORTED_MODULE_1__.getHeaders)(),\n \"anthropic-version\": accessStore.anthropicApiVersion\n }, // @ts-ignore\n tools.map((tool)=>({\n name: tool?.function?.name,\n description: tool?.function?.description,\n input_schema: tool?.function?.parameters\n })), funcs, controller, // parseSSE\n (text, runTools)=>{\n // console.log(\"parseSSE\", text, runTools);\n let chunkJson;\n chunkJson = JSON.parse(text);\n if (chunkJson?.content_block?.type == \"tool_use\") {\n index += 1;\n const id = chunkJson?.content_block.id;\n const name = chunkJson?.content_block.name;\n runTools.push({\n id,\n type: \"function\",\n function: {\n name,\n arguments: \"\"\n }\n });\n }\n if (chunkJson?.delta?.type == \"input_json_delta\" && chunkJson?.delta?.partial_json) {\n // @ts-ignore\n runTools[index][\"function\"][\"arguments\"] += chunkJson?.delta?.partial_json;\n }\n return chunkJson?.delta?.text;\n }, // processToolMessage, include tool_calls message and tool call results\n (requestPayload, toolCallMessage, toolCallResult)=>{\n // reset index value\n index = -1;\n // @ts-ignore\n requestPayload?.messages?.splice(// @ts-ignore\n requestPayload?.messages?.length, 0, {\n role: \"assistant\",\n content: toolCallMessage.tool_calls.map((tool)=>({\n type: \"tool_use\",\n id: tool.id,\n name: tool?.function?.name,\n input: tool?.function?.arguments ? JSON.parse(tool?.function?.arguments) : {}\n }))\n }, // @ts-ignore\n ...toolCallResult.map((result)=>({\n role: \"user\",\n content: [\n {\n type: \"tool_result\",\n tool_use_id: result.tool_call_id,\n content: result.content\n }\n ]\n })));\n }, options);\n } else {\n const payload = {\n method: \"POST\",\n body: JSON.stringify(requestBody),\n signal: controller.signal,\n headers: {\n ...(0,_api__WEBPACK_IMPORTED_MODULE_1__.getHeaders)(),\n \"anthropic-version\": accessStore.anthropicApiVersion\n }\n };\n try {\n controller.signal.onabort = ()=>options.onFinish(\"\", new Response(null, {\n status: 400\n }));\n const res = await (0,_app_utils_stream__WEBPACK_IMPORTED_MODULE_7__.fetch)(path, payload);\n const resJson = await res.json();\n const message = this.extractMessage(resJson);\n options.onFinish(message, res);\n } catch (e) {\n console.error(\"failed to chat\", e);\n options.onError?.(e);\n }\n }\n }\n async usage() {\n return {\n used: 0,\n total: 0\n };\n }\n async models() {\n // const provider = {\n // id: \"anthropic\",\n // providerName: \"Anthropic\",\n // providerType: \"anthropic\",\n // };\n return [];\n }\n path(path) {\n const accessStore = _app_store__WEBPACK_IMPORTED_MODULE_2__.useAccessStore.getState();\n let baseUrl = \"\";\n if (accessStore.useCustomConfig) {\n baseUrl = accessStore.anthropicUrl;\n }\n // if endpoint is empty, use default endpoint\n if (baseUrl.trim().length === 0) {\n const isApp = !!(0,_app_config_client__WEBPACK_IMPORTED_MODULE_3__.getClientConfig)()?.isApp;\n baseUrl = isApp ? _app_constant__WEBPACK_IMPORTED_MODULE_0__.ANTHROPIC_BASE_URL : _app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Anthropic;\n }\n if (!baseUrl.startsWith(\"http\") && !baseUrl.startsWith(\"/api\")) {\n baseUrl = \"https://\" + baseUrl;\n }\n baseUrl = trimEnd(baseUrl, \"/\");\n // try rebuild url, when using cloudflare ai gateway in client\n return (0,_app_utils_cloudflare__WEBPACK_IMPORTED_MODULE_6__.cloudflareAIGatewayUrl)(`${baseUrl}/${path}`);\n }\n}\nfunction trimEnd(s, end = \" \") {\n if (end.length === 0) return s;\n while(s.endsWith(end)){\n s = s.slice(0, -end.length);\n }\n return s;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RUFBRUUsUUFBUSxDQUFDRCxLQUFNO1FBQ3RCRCxJQUFJQSxFQUFFdkUsS0FBSyxDQUFDLEdBQUcsQ0FBQ3dFLElBQUkxRixNQUFNO0lBQzVCO0lBRUEsT0FBT3lGO0FBQ1QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9jbGllbnQvcGxhdGZvcm1zL2FudGhyb3BpYy50cz8wYzM4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFudGhyb3BpYywgQXBpUGF0aCB9IGZyb20gXCJAL2FwcC9jb25zdGFudFwiO1xyXG5pbXBvcnQgeyBDaGF0T3B0aW9ucywgZ2V0SGVhZGVycywgTExNQXBpLCBTcGVlY2hPcHRpb25zIH0gZnJvbSBcIi4uL2FwaVwiO1xyXG5pbXBvcnQge1xyXG4gIHVzZUFjY2Vzc1N0b3JlLFxyXG4gIHVzZUFwcENvbmZpZyxcclxuICB1c2VDaGF0U3RvcmUsXHJcbiAgdXNlUGx1Z2luU3RvcmUsXHJcbiAgQ2hhdE1lc3NhZ2VUb29sLFxyXG59IGZyb20gXCJAL2FwcC9zdG9yZVwiO1xyXG5pbXBvcnQgeyBnZXRDbGllbnRDb25maWcgfSBmcm9tIFwiQC9hcHAvY29uZmlnL2NsaWVudFwiO1xyXG5pbXBvcnQgeyBBTlRIUk9QSUNfQkFTRV9VUkwgfSBmcm9tIFwiQC9hcHAvY29uc3RhbnRcIjtcclxuaW1wb3J0IHsgZ2V0TWVzc2FnZVRleHRDb250ZW50LCBpc1Zpc2lvbk1vZGVsIH0gZnJvbSBcIkAvYXBwL3V0aWxzXCI7XHJcbmltcG9ydCB7IHByZVByb2Nlc3NJbWFnZUNvbnRlbnQsIHN0cmVhbSB9IGZyb20gXCJAL2FwcC91dGlscy9jaGF0XCI7XHJcbmltcG9ydCB7IGNsb3VkZmxhcmVBSUdhdGV3YXlVcmwgfSBmcm9tIFwiQC9hcHAvdXRpbHMvY2xvdWRmbGFyZVwiO1xyXG5pbXBvcnQgeyBSZXF1ZXN0UGF5bG9hZCB9IGZyb20gXCIuL29wZW5haVwiO1xyXG5pbXBvcnQgeyBmZXRjaCB9IGZyb20gXCJAL2FwcC91dGlscy9zdHJlYW1cIjtcclxuXHJcbmV4cG9ydCB0eXBlIE11bHRpQmxvY2tDb250ZW50ID0ge1xyXG4gIHR5cGU6IFwiaW1hZ2VcIiB8IFwidGV4dFwiO1xyXG4gIHNvdXJjZT86IHtcclxuICAgIHR5cGU6IHN0cmluZztcclxuICAgIG1lZGlhX3R5cGU6IHN0cmluZztcclxuICAgIGRhdGE6IHN0cmluZztcclxuICB9O1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBBbnRocm9waWNNZXNzYWdlID0ge1xyXG4gIHJvbGU6ICh0eXBlb2YgQ2xhdWRlTWFwcGVyKVtrZXlvZiB0eXBlb2YgQ2xhdWRlTWFwcGVyXTtcclxuICBjb250ZW50OiBzdHJpbmcgfCBNdWx0aUJsb2NrQ29udGVudFtdO1xyXG59O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBbnRocm9waWNDaGF0UmVxdWVzdCB7XHJcbiAgbW9kZWw6IHN0cmluZzsgLy8gVGhlIG1vZGVsIHRoYXQgd2lsbCBjb21wbGV0ZSB5b3VyIHByb21wdC5cclxuICBtZXNzYWdlczogQW50aHJvcGljTWVzc2FnZVtdOyAvLyBUaGUgcHJvbXB0IHRoYXQgeW91IHdhbnQgQ2xhdWRlIHRvIGNvbXBsZXRlLlxyXG4gIG1heF90b2tlbnM6IG51bWJlcjsgLy8gVGhlIG1heGltdW0gbnVtYmVyIG9mIHRva2VucyB0byBnZW5lcmF0ZSBiZWZvcmUgc3RvcHBpbmcuXHJcbiAgc3RvcF9zZXF1ZW5jZXM/OiBzdHJpbmdbXTsgLy8gU2VxdWVuY2VzIHRoYXQgd2lsbCBjYXVzZSB0aGUgbW9kZWwgdG8gc3RvcCBnZW5lcmF0aW5nIGNvbXBsZXRpb24gdGV4dC5cclxuICB0ZW1wZXJhdHVyZT86IG51bWJlcjsgLy8gQW1vdW50IG9mIHJhbmRvbW5lc3MgaW5qZWN0ZWQgaW50byB0aGUgcmVzcG9uc2UuXHJcbiAgdG9wX3A/OiBudW1iZXI7IC8vIFVzZSBudWNsZXVzIHNhbXBsaW5nLlxyXG4gIHRvcF9rPzogbnVtYmVyOyAvLyBPbmx5IHNhbXBsZSBmcm9tIHRoZSB0b3AgSyBvcHRpb25zIGZvciBlYWNoIHN1YnNlcXVlbnQgdG9rZW4uXHJcbiAgbWV0YWRhdGE/OiBvYmplY3Q7IC8vIEFuIG9iamVjdCBkZXNjcmliaW5nIG1ldGFkYXRhIGFib3V0IHRoZSByZXF1ZXN0LlxyXG4gIHN0cmVhbT86IGJvb2xlYW47IC8vIFdoZXRoZXIgdG8gaW5jcmVtZW50YWxseSBzdHJlYW0gdGhlIHJlc3BvbnNlIHVzaW5nIHNlcnZlci1zZW50IGV2ZW50cy5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDaGF0UmVxdWVzdCB7XHJcbiAgbW9kZWw6IHN0cmluZzsgLy8gVGhlIG1vZGVsIHRoYXQgd2lsbCBjb21wbGV0ZSB5b3VyIHByb21wdC5cclxuICBwcm9tcHQ6IHN0cmluZzsgLy8gVGhlIHByb21wdCB0aGF0IHlvdSB3YW50IENsYXVkZSB0byBjb21wbGV0ZS5cclxuICBtYXhfdG9rZW5zX3RvX3NhbXBsZTogbnVtYmVyOyAvLyBUaGUgbWF4aW11bSBudW1iZXIgb2YgdG9rZW5zIHRvIGdlbmVyYXRlIGJlZm9yZSBzdG9wcGluZy5cclxuICBzdG9wX3NlcXVlbmNlcz86IHN0cmluZ1tdOyAvLyBTZXF1ZW5jZXMgdGhhdCB3aWxsIGNhdXNlIHRoZSBtb2RlbCB0byBzdG9wIGdlbmVyYXRpbmcgY29tcGxldGlvbiB0ZXh0LlxyXG4gIHRlbXBlcmF0dXJlPzogbnVtYmVyOyAvLyBBbW91bnQgb2YgcmFuZG9tbmVzcyBpbmplY3RlZCBpbnRvIHRoZSByZXNwb25zZS5cclxuICB0b3BfcD86IG51bWJlcjsgLy8gVXNlIG51Y2xldXMgc2FtcGxpbmcuXHJcbiAgdG9wX2s/OiBudW1iZXI7IC8vIE9ubHkgc2FtcGxlIGZyb20gdGhlIHRvcCBLIG9wdGlvbnMgZm9yIGVhY2ggc3Vic2VxdWVudCB0b2tlbi5cclxuICBtZXRhZGF0YT86IG9iamVjdDsgLy8gQW4gb2JqZWN0IGRlc2NyaWJpbmcgbWV0YWRhdGEgYWJvdXQgdGhlIHJlcXVlc3QuXHJcbiAgc3RyZWFtPzogYm9vbGVhbjsgLy8gV2hldGhlciB0byBpbmNyZW1lbnRhbGx5IHN0cmVhbSB0aGUgcmVzcG9uc2UgdXNpbmcgc2VydmVyLXNlbnQgZXZlbnRzLlxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENoYXRSZXNwb25zZSB7XHJcbiAgY29tcGxldGlvbjogc3RyaW5nO1xyXG4gIHN0b3BfcmVhc29uOiBcInN0b3Bfc2VxdWVuY2VcIiB8IFwibWF4X3Rva2Vuc1wiO1xyXG4gIG1vZGVsOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENoYXRTdHJlYW1SZXNwb25zZSA9IENoYXRSZXNwb25zZSAmIHtcclxuICBzdG9wPzogc3RyaW5nO1xyXG4gIGxvZ19pZDogc3RyaW5nO1xyXG59O1xyXG5cclxuY29uc3QgQ2xhdWRlTWFwcGVyID0ge1xyXG4gIGFzc2lzdGFudDogXCJhc3Npc3RhbnRcIixcclxuICB1c2VyOiBcInVzZXJcIixcclxuICBzeXN0ZW06IFwidXNlclwiLFxyXG59IGFzIGNvbnN0O1xyXG5cclxuY29uc3Qga2V5cyA9IFtcImNsYXVkZS0yLCBjbGF1ZGUtaW5zdGFudC0xXCJdO1xyXG5cclxuZXhwb3J0IGNsYXNzIENsYXVkZUFwaSBpbXBsZW1lbnRzIExMTUFwaSB7XHJcbiAgc3BlZWNoKG9wdGlvbnM6IFNwZWVjaE9wdGlvbnMpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcclxuICB9XHJcblxyXG4gIGV4dHJhY3RNZXNzYWdlKHJlczogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIltSZXNwb25zZV0gY2xhdWRlIHJlc3BvbnNlOiBcIiwgcmVzKTtcclxuXHJcbiAgICByZXR1cm4gcmVzPy5jb250ZW50Py5bMF0/LnRleHQ7XHJcbiAgfVxyXG4gIGFzeW5jIGNoYXQob3B0aW9uczogQ2hhdE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHZpc2lvbk1vZGVsID0gaXNWaXNpb25Nb2RlbChvcHRpb25zLmNvbmZpZy5tb2RlbCk7XHJcblxyXG4gICAgY29uc3QgYWNjZXNzU3RvcmUgPSB1c2VBY2Nlc3NTdG9yZS5nZXRTdGF0ZSgpO1xyXG5cclxuICAgIGNvbnN0IHNob3VsZFN0cmVhbSA9ICEhb3B0aW9ucy5jb25maWcuc3RyZWFtO1xyXG5cclxuICAgIGNvbnN0IG1vZGVsQ29uZmlnID0ge1xyXG4gICAgICAuLi51c2VBcHBDb25maWcuZ2V0U3RhdGUoKS5tb2RlbENvbmZpZyxcclxuICAgICAgLi4udXNlQ2hhdFN0b3JlLmdldFN0YXRlKCkuY3VycmVudFNlc3Npb24oKS5tYXNrLm1vZGVsQ29uZmlnLFxyXG4gICAgICAuLi57XHJcbiAgICAgICAgbW9kZWw6IG9wdGlvbnMuY29uZmlnLm1vZGVsLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuXHJcbiAgICAvLyB0cnkgZ2V0IGJhc2U2NGltYWdlIGZyb20gbG9jYWwgY2FjaGUgaW1hZ2VfdXJsXHJcbiAgICBjb25zdCBtZXNzYWdlczogQ2hhdE9wdGlvbnNbXCJtZXNzYWdlc1wiXSA9IFtdO1xyXG4gICAgZm9yIChjb25zdCB2IG9mIG9wdGlvbnMubWVzc2FnZXMpIHtcclxuICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IHByZVByb2Nlc3NJbWFnZUNvbnRlbnQodi5jb250ZW50KTtcclxuICAgICAgbWVzc2FnZXMucHVzaCh7IHJvbGU6IHYucm9sZSwgY29udGVudCB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBrZXlzID0gW1wic3lzdGVtXCIsIFwidXNlclwiXTtcclxuXHJcbiAgICAvLyByb2xlcyBtdXN0IGFsdGVybmF0ZSBiZXR3ZWVuIFwidXNlclwiIGFuZCBcImFzc2lzdGFudFwiIGluIGNsYXVkZSwgc28gYWRkIGEgZmFrZSBhc3Npc3RhbnQgbWVzc2FnZSBiZXR3ZWVuIHR3byB1c2VyIG1lc3NhZ2VzXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lc3NhZ2VzLmxlbmd0aCAtIDE7IGkrKykge1xyXG4gICAgICBjb25zdCBtZXNzYWdlID0gbWVzc2FnZXNbaV07XHJcbiAgICAgIGNvbnN0IG5leHRNZXNzYWdlID0gbWVzc2FnZXNbaSArIDFdO1xyXG5cclxuICAgICAgaWYgKGtleXMuaW5jbHVkZXMobWVzc2FnZS5yb2xlKSAmJiBrZXlzLmluY2x1ZGVzKG5leHRNZXNzYWdlLnJvbGUpKSB7XHJcbiAgICAgICAgbWVzc2FnZXNbaV0gPSBbXHJcbiAgICAgICAgICBtZXNzYWdlLFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICByb2xlOiBcImFzc2lzdGFudFwiLFxyXG4gICAgICAgICAgICBjb250ZW50OiBcIjtcIixcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXSBhcyBhbnk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwcm9tcHQgPSBtZXNzYWdlc1xyXG4gICAgICAuZmxhdCgpXHJcbiAgICAgIC5maWx0ZXIoKHYpID0+IHtcclxuICAgICAgICBpZiAoIXYuY29udGVudCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGlmICh0eXBlb2Ygdi5jb250ZW50ID09PSBcInN0cmluZ1wiICYmICF2LmNvbnRlbnQudHJpbSgpKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5tYXAoKHYpID0+IHtcclxuICAgICAgICBjb25zdCB7IHJvbGUsIGNvbnRlbnQgfSA9IHY7XHJcbiAgICAgICAgY29uc3QgaW5zaWRlUm9sZSA9IENsYXVkZU1hcHBlcltyb2xlXSA/PyBcInVzZXJcIjtcclxuXHJcbiAgICAgICAgaWYgKCF2aXNpb25Nb2RlbCB8fCB0eXBlb2YgY29udGVudCA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgcm9sZTogaW5zaWRlUm9sZSxcclxuICAgICAgICAgICAgY29udGVudDogZ2V0TWVzc2FnZVRleHRDb250ZW50KHYpLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIHJvbGU6IGluc2lkZVJvbGUsXHJcbiAgICAgICAgICBjb250ZW50OiBjb250ZW50XHJcbiAgICAgICAgICAgIC5maWx0ZXIoKHYpID0+IHYuaW1hZ2VfdXJsIHx8IHYudGV4dClcclxuICAgICAgICAgICAgLm1hcCgoeyB0eXBlLCB0ZXh0LCBpbWFnZV91cmwgfSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICh0eXBlID09PSBcInRleHRcIikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgdHlwZSxcclxuICAgICAgICAgICAgICAgICAgdGV4dDogdGV4dCEsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBjb25zdCB7IHVybCA9IFwiXCIgfSA9IGltYWdlX3VybCB8fCB7fTtcclxuICAgICAgICAgICAgICBjb25zdCBjb2xvbkluZGV4ID0gdXJsLmluZGV4T2YoXCI6XCIpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHNlbWljb2xvbkluZGV4ID0gdXJsLmluZGV4T2YoXCI7XCIpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGNvbW1hID0gdXJsLmluZGV4T2YoXCIsXCIpO1xyXG5cclxuICAgICAgICAgICAgICBjb25zdCBtaW1lVHlwZSA9IHVybC5zbGljZShjb2xvbkluZGV4ICsgMSwgc2VtaWNvbG9uSW5kZXgpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGVuY29kZVR5cGUgPSB1cmwuc2xpY2Uoc2VtaWNvbG9uSW5kZXggKyAxLCBjb21tYSk7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHVybC5zbGljZShjb21tYSArIDEpO1xyXG5cclxuICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJpbWFnZVwiIGFzIGNvbnN0LFxyXG4gICAgICAgICAgICAgICAgc291cmNlOiB7XHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IGVuY29kZVR5cGUsXHJcbiAgICAgICAgICAgICAgICAgIG1lZGlhX3R5cGU6IG1pbWVUeXBlLFxyXG4gICAgICAgICAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuXHJcbiAgICBpZiAocHJvbXB0WzBdPy5yb2xlID09PSBcImFzc2lzdGFudFwiKSB7XHJcbiAgICAgIHByb21wdC51bnNoaWZ0KHtcclxuICAgICAgICByb2xlOiBcInVzZXJcIixcclxuICAgICAgICBjb250ZW50OiBcIjtcIixcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdEJvZHk6IEFudGhyb3BpY0NoYXRSZXF1ZXN0ID0ge1xyXG4gICAgICBtZXNzYWdlczogcHJvbXB0LFxyXG4gICAgICBzdHJlYW06IHNob3VsZFN0cmVhbSxcclxuXHJcbiAgICAgIG1vZGVsOiBtb2RlbENvbmZpZy5tb2RlbCxcclxuICAgICAgbWF4X3Rva2VuczogbW9kZWxDb25maWcubWF4X3Rva2VucyxcclxuICAgICAgdGVtcGVyYXR1cmU6IG1vZGVsQ29uZmlnLnRlbXBlcmF0dXJlLFxyXG4gICAgICB0b3BfcDogbW9kZWxDb25maWcudG9wX3AsXHJcbiAgICAgIC8vIHRvcF9rOiBtb2RlbENvbmZpZy50b3BfayxcclxuICAgICAgdG9wX2s6IDUsXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHBhdGggPSB0aGlzLnBhdGgoQW50aHJvcGljLkNoYXRQYXRoKTtcclxuXHJcbiAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xyXG4gICAgb3B0aW9ucy5vbkNvbnRyb2xsZXI/Lihjb250cm9sbGVyKTtcclxuXHJcbiAgICBpZiAoc2hvdWxkU3RyZWFtKSB7XHJcbiAgICAgIGxldCBpbmRleCA9IC0xO1xyXG4gICAgICBjb25zdCBbdG9vbHMsIGZ1bmNzXSA9IHVzZVBsdWdpblN0b3JlXHJcbiAgICAgICAgLmdldFN0YXRlKClcclxuICAgICAgICAuZ2V0QXNUb29scyhcclxuICAgICAgICAgIHVzZUNoYXRTdG9yZS5nZXRTdGF0ZSgpLmN1cnJlbnRTZXNzaW9uKCkubWFzaz8ucGx1Z2luIHx8IFtdLFxyXG4gICAgICAgICk7XHJcbiAgICAgIHJldHVybiBzdHJlYW0oXHJcbiAgICAgICAgcGF0aCxcclxuICAgICAgICByZXF1ZXN0Qm9keSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAuLi5nZXRIZWFkZXJzKCksXHJcbiAgICAgICAgICBcImFudGhyb3BpYy12ZXJzaW9uXCI6IGFjY2Vzc1N0b3JlLmFudGhyb3BpY0FwaVZlcnNpb24sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgdG9vbHMubWFwKCh0b29sKSA9PiAoe1xyXG4gICAgICAgICAgbmFtZTogdG9vbD8uZnVuY3Rpb24/Lm5hbWUsXHJcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdG9vbD8uZnVuY3Rpb24/LmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgaW5wdXRfc2NoZW1hOiB0b29sPy5mdW5jdGlvbj8ucGFyYW1ldGVycyxcclxuICAgICAgICB9KSksXHJcbiAgICAgICAgZnVuY3MsXHJcbiAgICAgICAgY29udHJvbGxlcixcclxuICAgICAgICAvLyBwYXJzZVNTRVxyXG4gICAgICAgICh0ZXh0OiBzdHJpbmcsIHJ1blRvb2xzOiBDaGF0TWVzc2FnZVRvb2xbXSkgPT4ge1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coXCJwYXJzZVNTRVwiLCB0ZXh0LCBydW5Ub29scyk7XHJcbiAgICAgICAgICBsZXQgY2h1bmtKc29uOlxyXG4gICAgICAgICAgICB8IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICB8IHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwiY29udGVudF9ibG9ja19kZWx0YVwiIHwgXCJjb250ZW50X2Jsb2NrX3N0b3BcIjtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnRfYmxvY2s/OiB7XHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwidG9vbF91c2VcIjtcclxuICAgICAgICAgICAgICAgICAgaWQ6IHN0cmluZztcclxuICAgICAgICAgICAgICAgICAgbmFtZTogc3RyaW5nO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIGRlbHRhPzoge1xyXG4gICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRfZGVsdGFcIiB8IFwiaW5wdXRfanNvbl9kZWx0YVwiO1xyXG4gICAgICAgICAgICAgICAgICB0ZXh0Pzogc3RyaW5nO1xyXG4gICAgICAgICAgICAgICAgICBwYXJ0aWFsX2pzb24/OiBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgaW5kZXg6IG51bWJlcjtcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgY2h1bmtKc29uID0gSlNPTi5wYXJzZSh0ZXh0KTtcclxuXHJcbiAgICAgICAgICBpZiAoY2h1bmtKc29uPy5jb250ZW50X2Jsb2NrPy50eXBlID09IFwidG9vbF91c2VcIikge1xyXG4gICAgICAgICAgICBpbmRleCArPSAxO1xyXG4gICAgICAgICAgICBjb25zdCBpZCA9IGNodW5rSnNvbj8uY29udGVudF9ibG9jay5pZDtcclxuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGNodW5rSnNvbj8uY29udGVudF9ibG9jay5uYW1lO1xyXG4gICAgICAgICAgICBydW5Ub29scy5wdXNoKHtcclxuICAgICAgICAgICAgICBpZCxcclxuICAgICAgICAgICAgICB0eXBlOiBcImZ1bmN0aW9uXCIsXHJcbiAgICAgICAgICAgICAgZnVuY3Rpb246IHtcclxuICAgICAgICAgICAgICAgIG5hbWUsXHJcbiAgICAgICAgICAgICAgICBhcmd1bWVudHM6IFwiXCIsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGNodW5rSnNvbj8uZGVsdGE/LnR5cGUgPT0gXCJpbnB1dF9qc29uX2RlbHRhXCIgJiZcclxuICAgICAgICAgICAgY2h1bmtKc29uPy5kZWx0YT8ucGFydGlhbF9qc29uXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICBydW5Ub29sc1tpbmRleF1bXCJmdW5jdGlvblwiXVtcImFyZ3VtZW50c1wiXSArPVxyXG4gICAgICAgICAgICAgIGNodW5rSnNvbj8uZGVsdGE/LnBhcnRpYWxfanNvbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBjaHVua0pzb24/LmRlbHRhPy50ZXh0O1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gcHJvY2Vzc1Rvb2xNZXNzYWdlLCBpbmNsdWRlIHRvb2xfY2FsbHMgbWVzc2FnZSBhbmQgdG9vbCBjYWxsIHJlc3VsdHNcclxuICAgICAgICAoXHJcbiAgICAgICAgICByZXF1ZXN0UGF5bG9hZDogUmVxdWVzdFBheWxvYWQsXHJcbiAgICAgICAgICB0b29sQ2FsbE1lc3NhZ2U6IGFueSxcclxuICAgICAgICAgIHRvb2xDYWxsUmVzdWx0OiBhbnlbXSxcclxuICAgICAgICApID0+IHtcclxuICAgICAgICAgIC8vIHJlc2V0IGluZGV4IHZhbHVlXHJcbiAgICAgICAgICBpbmRleCA9IC0xO1xyXG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgcmVxdWVzdFBheWxvYWQ/Lm1lc3NhZ2VzPy5zcGxpY2UoXHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgcmVxdWVzdFBheWxvYWQ/Lm1lc3NhZ2VzPy5sZW5ndGgsXHJcbiAgICAgICAgICAgIDAsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICByb2xlOiBcImFzc2lzdGFudFwiLFxyXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHRvb2xDYWxsTWVzc2FnZS50b29sX2NhbGxzLm1hcChcclxuICAgICAgICAgICAgICAgICh0b29sOiBDaGF0TWVzc2FnZVRvb2wpID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwidG9vbF91c2VcIixcclxuICAgICAgICAgICAgICAgICAgaWQ6IHRvb2wuaWQsXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU6IHRvb2w/LmZ1bmN0aW9uPy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICBpbnB1dDogdG9vbD8uZnVuY3Rpb24/LmFyZ3VtZW50c1xyXG4gICAgICAgICAgICAgICAgICAgID8gSlNPTi5wYXJzZSh0b29sPy5mdW5jdGlvbj8uYXJndW1lbnRzKVxyXG4gICAgICAgICAgICAgICAgICAgIDoge30sXHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIC4uLnRvb2xDYWxsUmVzdWx0Lm1hcCgocmVzdWx0KSA9PiAoe1xyXG4gICAgICAgICAgICAgIHJvbGU6IFwidXNlclwiLFxyXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0b29sX3Jlc3VsdFwiLFxyXG4gICAgICAgICAgICAgICAgICB0b29sX3VzZV9pZDogcmVzdWx0LnRvb2xfY2FsbF9pZCxcclxuICAgICAgICAgICAgICAgICAgY29udGVudDogcmVzdWx0LmNvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIH0pKSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvcHRpb25zLFxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxyXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHJlcXVlc3RCb2R5KSxcclxuICAgICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsLFxyXG4gICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgIC4uLmdldEhlYWRlcnMoKSwgLy8gZ2V0IGNvbW1vbiBoZWFkZXJzXHJcbiAgICAgICAgICBcImFudGhyb3BpYy12ZXJzaW9uXCI6IGFjY2Vzc1N0b3JlLmFudGhyb3BpY0FwaVZlcnNpb24sXHJcbiAgICAgICAgICAvLyBkbyBub3Qgc2VuZCBgYW50aHJvcGljQXBpS2V5YCBpbiBicm93c2VyISEhXHJcbiAgICAgICAgICAvLyBBdXRob3JpemF0aW9uOiBnZXRBdXRoS2V5KGFjY2Vzc1N0b3JlLmFudGhyb3BpY0FwaUtleSksXHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29udHJvbGxlci5zaWduYWwub25hYm9ydCA9ICgpID0+XHJcbiAgICAgICAgICBvcHRpb25zLm9uRmluaXNoKFwiXCIsIG5ldyBSZXNwb25zZShudWxsLCB7IHN0YXR1czogNDAwIH0pKTtcclxuXHJcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2gocGF0aCwgcGF5bG9hZCk7XHJcbiAgICAgICAgY29uc3QgcmVzSnNvbiA9IGF3YWl0IHJlcy5qc29uKCk7XHJcblxyXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmV4dHJhY3RNZXNzYWdlKHJlc0pzb24pO1xyXG4gICAgICAgIG9wdGlvbnMub25GaW5pc2gobWVzc2FnZSwgcmVzKTtcclxuICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJmYWlsZWQgdG8gY2hhdFwiLCBlKTtcclxuICAgICAgICBvcHRpb25zLm9uRXJyb3I/LihlIGFzIEVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBhc3luYyB1c2FnZSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHVzZWQ6IDAsXHJcbiAgICAgIHRvdGFsOiAwLFxyXG4gICAgfTtcclxuICB9XHJcbiAgYXN5bmMgbW9kZWxzKCkge1xyXG4gICAgLy8gY29uc3QgcHJvdmlkZXIgPSB7XHJcbiAgICAvLyAgIGlkOiBcImFudGhyb3BpY1wiLFxyXG4gICAgLy8gICBwcm92aWRlck5hbWU6IFwiQW50aHJvcGljXCIsXHJcbiAgICAvLyAgIHByb3ZpZGVyVHlwZTogXCJhbnRocm9waWNcIixcclxuICAgIC8vIH07XHJcblxyXG4gICAgcmV0dXJuIFtcclxuICAgICAgLy8ge1xyXG4gICAgICAvLyAgIG5hbWU6IFwiY2xhdWRlLWluc3RhbnQtMS4yXCIsXHJcbiAgICAgIC8vICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgICAvLyAgIHByb3ZpZGVyLFxyXG4gICAgICAvLyB9LFxyXG4gICAgICAvLyB7XHJcbiAgICAgIC8vICAgbmFtZTogXCJjbGF1ZGUtMi4wXCIsXHJcbiAgICAgIC8vICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgICAvLyAgIHByb3ZpZGVyLFxyXG4gICAgICAvLyB9LFxyXG4gICAgICAvLyB7XHJcbiAgICAgIC8vICAgbmFtZTogXCJjbGF1ZGUtMi4xXCIsXHJcbiAgICAgIC8vICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgICAvLyAgIHByb3ZpZGVyLFxyXG4gICAgICAvLyB9LFxyXG4gICAgICAvLyB7XHJcbiAgICAgIC8vICAgbmFtZTogXCJjbGF1ZGUtMy1vcHVzLTIwMjQwMjI5XCIsXHJcbiAgICAgIC8vICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgICAvLyAgIHByb3ZpZGVyLFxyXG4gICAgICAvLyB9LFxyXG4gICAgICAvLyB7XHJcbiAgICAgIC8vICAgbmFtZTogXCJjbGF1ZGUtMy1zb25uZXQtMjAyNDAyMjlcIixcclxuICAgICAgLy8gICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICAgIC8vICAgcHJvdmlkZXIsXHJcbiAgICAgIC8vIH0sXHJcbiAgICAgIC8vIHtcclxuICAgICAgLy8gICBuYW1lOiBcImNsYXVkZS0zLWhhaWt1LTIwMjQwMzA3XCIsXHJcbiAgICAgIC8vICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgICAvLyAgIHByb3ZpZGVyLFxyXG4gICAgICAvLyB9LFxyXG4gICAgXTtcclxuICB9XHJcbiAgcGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYWNjZXNzU3RvcmUgPSB1c2VBY2Nlc3NTdG9yZS5nZXRTdGF0ZSgpO1xyXG5cclxuICAgIGxldCBiYXNlVXJsOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIGlmIChhY2Nlc3NTdG9yZS51c2VDdXN0b21Db25maWcpIHtcclxuICAgICAgYmFzZVVybCA9IGFjY2Vzc1N0b3JlLmFudGhyb3BpY1VybDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBpZiBlbmRwb2ludCBpcyBlbXB0eSwgdXNlIGRlZmF1bHQgZW5kcG9pbnRcclxuICAgIGlmIChiYXNlVXJsLnRyaW0oKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgY29uc3QgaXNBcHAgPSAhIWdldENsaWVudENvbmZpZygpPy5pc0FwcDtcclxuXHJcbiAgICAgIGJhc2VVcmwgPSBpc0FwcCA/IEFOVEhST1BJQ19CQVNFX1VSTCA6IEFwaVBhdGguQW50aHJvcGljO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghYmFzZVVybC5zdGFydHNXaXRoKFwiaHR0cFwiKSAmJiAhYmFzZVVybC5zdGFydHNXaXRoKFwiL2FwaVwiKSkge1xyXG4gICAgICBiYXNlVXJsID0gXCJodHRwczovL1wiICsgYmFzZVVybDtcclxuICAgIH1cclxuXHJcbiAgICBiYXNlVXJsID0gdHJpbUVuZChiYXNlVXJsLCBcIi9cIik7XHJcblxyXG4gICAgLy8gdHJ5IHJlYnVpbGQgdXJsLCB3aGVuIHVzaW5nIGNsb3VkZmxhcmUgYWkgZ2F0ZXdheSBpbiBjbGllbnRcclxuICAgIHJldHVybiBjbG91ZGZsYXJlQUlHYXRld2F5VXJsKGAke2Jhc2VVcmx9LyR7cGF0aH1gKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRyaW1FbmQoczogc3RyaW5nLCBlbmQgPSBcIiBcIikge1xyXG4gIGlmIChlbmQubGVuZ3RoID09PSAwKSByZXR1cm4gcztcclxuXHJcbiAgd2hpbGUgKHMuZW5kc1dpdGgoZW5kKSkge1xyXG4gICAgcyA9IHMuc2xpY2UoMCwgLWVuZC5sZW5ndGgpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHM7XHJcbn1cclxuIl0sIm5hbWVzIjpbIkFudGhyb3BpYyIsIkFwaVBhdGgiLCJnZXRIZWFkZXJzIiwidXNlQWNjZXNzU3RvcmUiLCJ1c2VBcHBDb25maWciLCJ1c2VDaGF0U3RvcmUiLCJ1c2VQbHVnaW5TdG9yZSIsImdldENsaWVudENvbmZpZyIsIkFOVEhST1BJQ19CQVNFX1VSTCIsImdldE1lc3NhZ2VUZXh0Q29udGVudCIsImlzVmlzaW9uTW9kZWwiLCJwcmVQcm9jZXNzSW1hZ2VDb250ZW50Iiwic3RyZWFtIiwiY2xvdWRmbGFyZUFJR2F0ZXdheVVybCIsImZldGNoIiwiQ2xhdWRlTWFwcGVyIiwiYXNzaXN0YW50IiwidXNlciIsInN5c3RlbSIsImtleXMiLCJDbGF1ZGVBcGkiLCJzcGVlY2giLCJvcHRpb25zIiwiRXJyb3IiLCJleHRyYWN0TWVzc2FnZSIsInJlcyIsImNvbnNvbGUiLCJsb2ciLCJjb250ZW50IiwidGV4dCIsImNoYXQiLCJ2aXNpb25Nb2RlbCIsImNvbmZpZyIsIm1vZGVsIiwiYWNjZXNzU3RvcmUiLCJnZXRTdGF0ZSIsInNob3VsZFN0cmVhbSIsIm1vZGVsQ29uZmlnIiwiY3VycmVudFNlc3Npb24iLCJtYXNrIiwibWVzc2FnZXMiLCJ2IiwicHVzaCIsInJvbGUiLCJpIiwibGVuZ3RoIiwibWVzc2FnZSIsIm5leHRNZXNzYWdlIiwiaW5jbHVkZXMiLCJwcm9tcHQiLCJmbGF0IiwiZmlsdGVyIiwidHJpbSIsIm1hcCIsImluc2lkZVJvbGUiLCJpbWFnZV91cmwiLCJ0eXBlIiwidXJsIiwiY29sb25JbmRleCIsImluZGV4T2YiLCJzZW1pY29sb25JbmRleCIsImNvbW1hIiwibWltZVR5cGUiLCJzbGljZSIsImVuY29kZVR5cGUiLCJkYXRhIiwic291cmNlIiwibWVkaWFfdHlwZSIsInVuc2hpZnQiLCJyZXF1ZXN0Qm9keSIsIm1heF90b2tlbnMiLCJ0ZW1wZXJhdHVyZSIsInRvcF9wIiwidG9wX2siLCJwYXRoIiwiQ2hhdFBhdGgiLCJjb250cm9sbGVyIiwiQWJvcnRDb250cm9sbGVyIiwib25Db250cm9sbGVyIiwiaW5kZXgiLCJ0b29scyIsImZ1bmNzIiwiZ2V0QXNUb29scyIsInBsdWdpbiIsImFudGhyb3BpY0FwaVZlcnNpb24iLCJ0b29sIiwibmFtZSIsImZ1bmN0aW9uIiwiZGVzY3JpcHRpb24iLCJpbnB1dF9zY2hlbWEiLCJwYXJhbWV0ZXJzIiwicnVuVG9vbHMiLCJjaHVua0pzb24iLCJKU09OIiwicGFyc2UiLCJjb250ZW50X2Jsb2NrIiwiaWQiLCJhcmd1bWVudHMiLCJkZWx0YSIsInBhcnRpYWxfanNvbiIsInJlcXVlc3RQYXlsb2FkIiwidG9vbENhbGxNZXNzYWdlIiwidG9vbENhbGxSZXN1bHQiLCJzcGxpY2UiLCJ0b29sX2NhbGxzIiwiaW5wdXQiLCJyZXN1bHQiLCJ0b29sX3VzZV9pZCIsInRvb2xfY2FsbF9pZCIsInBheWxvYWQiLCJtZXRob2QiLCJib2R5Iiwic3RyaW5naWZ5Iiwic2lnbmFsIiwiaGVhZGVycyIsIm9uYWJvcnQiLCJvbkZpbmlzaCIsIlJlc3BvbnNlIiwic3RhdHVzIiwicmVzSnNvbiIsImpzb24iLCJlIiwiZXJyb3IiLCJvbkVycm9yIiwidXNhZ2UiLCJ1c2VkIiwidG90YWwiLCJtb2RlbHMiLCJiYXNlVXJsIiwidXNlQ3VzdG9tQ29uZmlnIiwiYW50aHJvcGljVXJsIiwiaXNBcHAiLCJzdGFydHNXaXRoIiwidHJpbUVuZCIsInMiLCJlbmQiLCJlbmRzV2l0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/client/platforms/anthropic.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/client/platforms/baidu.ts":
|
|
|
/*!***************************************!*\
|
|
|
!*** ./app/client/platforms/baidu.ts ***!
|
|
|
\***************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Baidu: () => (/* reexport safe */ _app_constant__WEBPACK_IMPORTED_MODULE_0__.Baidu),\n/* harmony export */ ErnieApi: () => (/* binding */ ErnieApi)\n/* harmony export */ });\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _app_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/app/store */ \"(ssr)/./app/store/index.ts\");\n/* harmony import */ var _app_utils_baidu__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/utils/baidu */ \"(ssr)/./app/utils/baidu.ts\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../api */ \"(ssr)/./app/client/api.ts\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../locales */ \"(ssr)/./app/locales/index.ts\");\n/* harmony import */ var _fortaine_fetch_event_source__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @fortaine/fetch-event-source */ \"(ssr)/./node_modules/@fortaine/fetch-event-source/lib/esm/fetch.js\");\n/* harmony import */ var _app_utils_format__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/app/utils/format */ \"(ssr)/./app/utils/format.ts\");\n/* harmony import */ var _app_config_client__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/app/config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/app/utils */ \"(ssr)/./app/utils.ts\");\n/* harmony import */ var _app_utils_stream__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/app/utils/stream */ \"(ssr)/./app/utils/stream.ts\");\n/* __next_internal_client_entry_do_not_use__ ErnieApi,Baidu auto */ \n\n\n\n\n\n\n\n\n\nclass ErnieApi {\n path(path) {\n const accessStore = _app_store__WEBPACK_IMPORTED_MODULE_1__.useAccessStore.getState();\n let baseUrl = \"\";\n if (accessStore.useCustomConfig) {\n baseUrl = accessStore.baiduUrl;\n }\n if (baseUrl.length === 0) {\n const isApp = !!(0,_app_config_client__WEBPACK_IMPORTED_MODULE_6__.getClientConfig)()?.isApp;\n // do not use proxy for baidubce api\n baseUrl = isApp ? _app_constant__WEBPACK_IMPORTED_MODULE_0__.BAIDU_BASE_URL : _app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Baidu;\n }\n if (baseUrl.endsWith(\"/\")) {\n baseUrl = baseUrl.slice(0, baseUrl.length - 1);\n }\n if (!baseUrl.startsWith(\"http\") && !baseUrl.startsWith(_app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Baidu)) {\n baseUrl = \"https://\" + baseUrl;\n }\n console.log(\"[Proxy Endpoint] \", baseUrl, path);\n return [\n baseUrl,\n path\n ].join(\"/\");\n }\n speech(options) {\n throw new Error(\"Method not implemented.\");\n }\n async chat(options) {\n const messages = options.messages.map((v)=>({\n // \"error_code\": 336006, \"error_msg\": \"the role of message with even index in the messages must be user or function\",\n role: v.role === \"system\" ? \"user\" : v.role,\n content: (0,_app_utils__WEBPACK_IMPORTED_MODULE_7__.getMessageTextContent)(v)\n }));\n // \"error_code\": 336006, \"error_msg\": \"the length of messages must be an odd number\",\n if (messages.length % 2 === 0) {\n if (messages.at(0)?.role === \"user\") {\n messages.splice(1, 0, {\n role: \"assistant\",\n content: \" \"\n });\n } else {\n messages.unshift({\n role: \"user\",\n content: \" \"\n });\n }\n }\n const modelConfig = {\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useAppConfig.getState().modelConfig,\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useChatStore.getState().currentSession().mask.modelConfig,\n ...{\n model: options.config.model\n }\n };\n const shouldStream = !!options.config.stream;\n const requestPayload = {\n messages,\n stream: shouldStream,\n model: modelConfig.model,\n temperature: modelConfig.temperature,\n presence_penalty: modelConfig.presence_penalty,\n frequency_penalty: modelConfig.frequency_penalty,\n top_p: modelConfig.top_p\n };\n console.log(\"[Request] Baidu payload: \", requestPayload);\n const controller = new AbortController();\n options.onController?.(controller);\n try {\n let chatPath = this.path(_app_constant__WEBPACK_IMPORTED_MODULE_0__.Baidu.ChatPath(modelConfig.model));\n // getAccessToken can not run in browser, because cors error\n if (!!(0,_app_config_client__WEBPACK_IMPORTED_MODULE_6__.getClientConfig)()?.isApp) {\n const accessStore = _app_store__WEBPACK_IMPORTED_MODULE_1__.useAccessStore.getState();\n if (accessStore.useCustomConfig) {\n if (accessStore.isValidBaidu()) {\n const { access_token } = await (0,_app_utils_baidu__WEBPACK_IMPORTED_MODULE_2__.getAccessToken)(accessStore.baiduApiKey, accessStore.baiduSecretKey);\n chatPath = `${chatPath}${chatPath.includes(\"?\") ? \"&\" : \"?\"}access_token=${access_token}`;\n }\n }\n }\n const chatPayload = {\n method: \"POST\",\n body: JSON.stringify(requestPayload),\n signal: controller.signal,\n headers: (0,_api__WEBPACK_IMPORTED_MODULE_3__.getHeaders)()\n };\n // make a fetch request\n const requestTimeoutId = setTimeout(()=>controller.abort(), _app_constant__WEBPACK_IMPORTED_MODULE_0__.REQUEST_TIMEOUT_MS);\n if (shouldStream) {\n let responseText = \"\";\n let remainText = \"\";\n let finished = false;\n let responseRes;\n // animate response to make it looks smooth\n function animateResponseText() {\n if (finished || controller.signal.aborted) {\n responseText += remainText;\n console.log(\"[Response Animation] finished\");\n if (responseText?.length === 0) {\n options.onError?.(new Error(\"empty response from server\"));\n }\n return;\n }\n if (remainText.length > 0) {\n const fetchCount = Math.max(1, Math.round(remainText.length / 60));\n const fetchText = remainText.slice(0, fetchCount);\n responseText += fetchText;\n remainText = remainText.slice(fetchCount);\n options.onUpdate?.(responseText, fetchText);\n }\n requestAnimationFrame(animateResponseText);\n }\n // start animaion\n animateResponseText();\n const finish = ()=>{\n if (!finished) {\n finished = true;\n options.onFinish(responseText + remainText, responseRes);\n }\n };\n controller.signal.onabort = finish;\n (0,_fortaine_fetch_event_source__WEBPACK_IMPORTED_MODULE_9__.fetchEventSource)(chatPath, {\n fetch: _app_utils_stream__WEBPACK_IMPORTED_MODULE_8__.fetch,\n ...chatPayload,\n async onopen (res) {\n clearTimeout(requestTimeoutId);\n const contentType = res.headers.get(\"content-type\");\n console.log(\"[Baidu] request response content type: \", contentType);\n responseRes = res;\n if (contentType?.startsWith(\"text/plain\")) {\n responseText = await res.clone().text();\n return finish();\n }\n if (!res.ok || !res.headers.get(\"content-type\")?.startsWith(_fortaine_fetch_event_source__WEBPACK_IMPORTED_MODULE_9__.EventStreamContentType) || res.status !== 200) {\n const responseTexts = [\n responseText\n ];\n let extraInfo = await res.clone().text();\n try {\n const resJson = await res.clone().json();\n extraInfo = (0,_app_utils_format__WEBPACK_IMPORTED_MODULE_5__.prettyObject)(resJson);\n } catch {}\n if (res.status === 401) {\n responseTexts.push(_locales__WEBPACK_IMPORTED_MODULE_4__[\"default\"].Error.Unauthorized);\n }\n if (extraInfo) {\n responseTexts.push(extraInfo);\n }\n responseText = responseTexts.join(\"\\n\\n\");\n return finish();\n }\n },\n onmessage (msg) {\n if (msg.data === \"[DONE]\" || finished) {\n return finish();\n }\n const text = msg.data;\n try {\n const json = JSON.parse(text);\n const delta = json?.result;\n if (delta) {\n remainText += delta;\n }\n } catch (e) {\n console.error(\"[Request] parse error\", text, msg);\n }\n },\n onclose () {\n finish();\n },\n onerror (e) {\n options.onError?.(e);\n throw e;\n },\n openWhenHidden: true\n });\n } else {\n const res = await (0,_app_utils_stream__WEBPACK_IMPORTED_MODULE_8__.fetch)(chatPath, chatPayload);\n clearTimeout(requestTimeoutId);\n const resJson = await res.json();\n const message = resJson?.result;\n options.onFinish(message, res);\n }\n } catch (e) {\n console.log(\"[Request] failed to make a chat request\", e);\n options.onError?.(e);\n }\n }\n async usage() {\n return {\n used: 0,\n total: 0\n };\n }\n async models() {\n return [];\n }\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QU87WUFDTEMsTUFBTTtZQUNOQyxPQUFPO1FBQ1Q7SUFDRjtJQUVBLE1BQU1DLFNBQThCO1FBQ2xDLE9BQU8sRUFBRTtJQUNYO0FBQ0Y7QUFDaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9jbGllbnQvcGxhdGZvcm1zL2JhaWR1LnRzPzlkYzAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcbmltcG9ydCB7XHJcbiAgQXBpUGF0aCxcclxuICBCYWlkdSxcclxuICBCQUlEVV9CQVNFX1VSTCxcclxuICBSRVFVRVNUX1RJTUVPVVRfTVMsXHJcbn0gZnJvbSBcIkAvYXBwL2NvbnN0YW50XCI7XHJcbmltcG9ydCB7IHVzZUFjY2Vzc1N0b3JlLCB1c2VBcHBDb25maWcsIHVzZUNoYXRTdG9yZSB9IGZyb20gXCJAL2FwcC9zdG9yZVwiO1xyXG5pbXBvcnQgeyBnZXRBY2Nlc3NUb2tlbiB9IGZyb20gXCJAL2FwcC91dGlscy9iYWlkdVwiO1xyXG5cclxuaW1wb3J0IHtcclxuICBDaGF0T3B0aW9ucyxcclxuICBnZXRIZWFkZXJzLFxyXG4gIExMTUFwaSxcclxuICBMTE1Nb2RlbCxcclxuICBNdWx0aW1vZGFsQ29udGVudCxcclxuICBTcGVlY2hPcHRpb25zLFxyXG59IGZyb20gXCIuLi9hcGlcIjtcclxuaW1wb3J0IExvY2FsZSBmcm9tIFwiLi4vLi4vbG9jYWxlc1wiO1xyXG5pbXBvcnQge1xyXG4gIEV2ZW50U3RyZWFtQ29udGVudFR5cGUsXHJcbiAgZmV0Y2hFdmVudFNvdXJjZSxcclxufSBmcm9tIFwiQGZvcnRhaW5lL2ZldGNoLWV2ZW50LXNvdXJjZVwiO1xyXG5pbXBvcnQgeyBwcmV0dHlPYmplY3QgfSBmcm9tIFwiQC9hcHAvdXRpbHMvZm9ybWF0XCI7XHJcbmltcG9ydCB7IGdldENsaWVudENvbmZpZyB9IGZyb20gXCJAL2FwcC9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB7IGdldE1lc3NhZ2VUZXh0Q29udGVudCB9IGZyb20gXCJAL2FwcC91dGlsc1wiO1xyXG5pbXBvcnQgeyBmZXRjaCB9IGZyb20gXCJAL2FwcC91dGlscy9zdHJlYW1cIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkFJTGlzdE1vZGVsUmVzcG9uc2Uge1xyXG4gIG9iamVjdDogc3RyaW5nO1xyXG4gIGRhdGE6IEFycmF5PHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBvYmplY3Q6IHN0cmluZztcclxuICAgIHJvb3Q6IHN0cmluZztcclxuICB9PjtcclxufVxyXG5cclxuaW50ZXJmYWNlIFJlcXVlc3RQYXlsb2FkIHtcclxuICBtZXNzYWdlczoge1xyXG4gICAgcm9sZTogXCJzeXN0ZW1cIiB8IFwidXNlclwiIHwgXCJhc3Npc3RhbnRcIjtcclxuICAgIGNvbnRlbnQ6IHN0cmluZyB8IE11bHRpbW9kYWxDb250ZW50W107XHJcbiAgfVtdO1xyXG4gIHN0cmVhbT86IGJvb2xlYW47XHJcbiAgbW9kZWw6IHN0cmluZztcclxuICB0ZW1wZXJhdHVyZTogbnVtYmVyO1xyXG4gIHByZXNlbmNlX3BlbmFsdHk6IG51bWJlcjtcclxuICBmcmVxdWVuY3lfcGVuYWx0eTogbnVtYmVyO1xyXG4gIHRvcF9wOiBudW1iZXI7XHJcbiAgbWF4X3Rva2Vucz86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVybmllQXBpIGltcGxlbWVudHMgTExNQXBpIHtcclxuICBwYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBhY2Nlc3NTdG9yZSA9IHVzZUFjY2Vzc1N0b3JlLmdldFN0YXRlKCk7XHJcblxyXG4gICAgbGV0IGJhc2VVcmwgPSBcIlwiO1xyXG5cclxuICAgIGlmIChhY2Nlc3NTdG9yZS51c2VDdXN0b21Db25maWcpIHtcclxuICAgICAgYmFzZVVybCA9IGFjY2Vzc1N0b3JlLmJhaWR1VXJsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChiYXNlVXJsLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBjb25zdCBpc0FwcCA9ICEhZ2V0Q2xpZW50Q29uZmlnKCk/LmlzQXBwO1xyXG4gICAgICAvLyBkbyBub3QgdXNlIHByb3h5IGZvciBiYWlkdWJjZSBhcGlcclxuICAgICAgYmFzZVVybCA9IGlzQXBwID8gQkFJRFVfQkFTRV9VUkwgOiBBcGlQYXRoLkJhaWR1O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChiYXNlVXJsLmVuZHNXaXRoKFwiL1wiKSkge1xyXG4gICAgICBiYXNlVXJsID0gYmFzZVVybC5zbGljZSgwLCBiYXNlVXJsLmxlbmd0aCAtIDEpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFiYXNlVXJsLnN0YXJ0c1dpdGgoXCJodHRwXCIpICYmICFiYXNlVXJsLnN0YXJ0c1dpdGgoQXBpUGF0aC5CYWlkdSkpIHtcclxuICAgICAgYmFzZVVybCA9IFwiaHR0cHM6Ly9cIiArIGJhc2VVcmw7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJbUHJveHkgRW5kcG9pbnRdIFwiLCBiYXNlVXJsLCBwYXRoKTtcclxuXHJcbiAgICByZXR1cm4gW2Jhc2VVcmwsIHBhdGhdLmpvaW4oXCIvXCIpO1xyXG4gIH1cclxuXHJcbiAgc3BlZWNoKG9wdGlvbnM6IFNwZWVjaE9wdGlvbnMpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGNoYXQob3B0aW9uczogQ2hhdE9wdGlvbnMpIHtcclxuICAgIGNvbnN0IG1lc3NhZ2VzID0gb3B0aW9ucy5tZXNzYWdlcy5tYXAoKHYpID0+ICh7XHJcbiAgICAgIC8vIFwiZXJyb3JfY29kZVwiOiAzMzYwMDYsIFwiZXJyb3JfbXNnXCI6IFwidGhlIHJvbGUgb2YgbWVzc2FnZSB3aXRoIGV2ZW4gaW5kZXggaW4gdGhlIG1lc3NhZ2VzIG11c3QgYmUgdXNlciBvciBmdW5jdGlvblwiLFxyXG4gICAgICByb2xlOiB2LnJvbGUgPT09IFwic3lzdGVtXCIgPyBcInVzZXJcIiA6IHYucm9sZSxcclxuICAgICAgY29udGVudDogZ2V0TWVzc2FnZVRleHRDb250ZW50KHYpLFxyXG4gICAgfSkpO1xyXG5cclxuICAgIC8vIFwiZXJyb3JfY29kZVwiOiAzMzYwMDYsIFwiZXJyb3JfbXNnXCI6IFwidGhlIGxlbmd0aCBvZiBtZXNzYWdlcyBtdXN0IGJlIGFuIG9kZCBudW1iZXJcIixcclxuICAgIGlmIChtZXNzYWdlcy5sZW5ndGggJSAyID09PSAwKSB7XHJcbiAgICAgIGlmIChtZXNzYWdlcy5hdCgwKT8ucm9sZSA9PT0gXCJ1c2VyXCIpIHtcclxuICAgICAgICBtZXNzYWdlcy5zcGxpY2UoMSwgMCwge1xyXG4gICAgICAgICAgcm9sZTogXCJhc3Npc3RhbnRcIixcclxuICAgICAgICAgIGNvbnRlbnQ6IFwiIFwiLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG1lc3NhZ2VzLnVuc2hpZnQoe1xyXG4gICAgICAgICAgcm9sZTogXCJ1c2VyXCIsXHJcbiAgICAgICAgICBjb250ZW50OiBcIiBcIixcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1vZGVsQ29uZmlnID0ge1xyXG4gICAgICAuLi51c2VBcHBDb25maWcuZ2V0U3RhdGUoKS5tb2RlbENvbmZpZyxcclxuICAgICAgLi4udXNlQ2hhdFN0b3JlLmdldFN0YXRlKCkuY3VycmVudFNlc3Npb24oKS5tYXNrLm1vZGVsQ29uZmlnLFxyXG4gICAgICAuLi57XHJcbiAgICAgICAgbW9kZWw6IG9wdGlvbnMuY29uZmlnLm1vZGVsLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBzaG91bGRTdHJlYW0gPSAhIW9wdGlvbnMuY29uZmlnLnN0cmVhbTtcclxuICAgIGNvbnN0IHJlcXVlc3RQYXlsb2FkOiBSZXF1ZXN0UGF5bG9hZCA9IHtcclxuICAgICAgbWVzc2FnZXMsXHJcbiAgICAgIHN0cmVhbTogc2hvdWxkU3RyZWFtLFxyXG4gICAgICBtb2RlbDogbW9kZWxDb25maWcubW9kZWwsXHJcbiAgICAgIHRlbXBlcmF0dXJlOiBtb2RlbENvbmZpZy50ZW1wZXJhdHVyZSxcclxuICAgICAgcHJlc2VuY2VfcGVuYWx0eTogbW9kZWxDb25maWcucHJlc2VuY2VfcGVuYWx0eSxcclxuICAgICAgZnJlcXVlbmN5X3BlbmFsdHk6IG1vZGVsQ29uZmlnLmZyZXF1ZW5jeV9wZW5hbHR5LFxyXG4gICAgICB0b3BfcDogbW9kZWxDb25maWcudG9wX3AsXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwiW1JlcXVlc3RdIEJhaWR1IHBheWxvYWQ6IFwiLCByZXF1ZXN0UGF5bG9hZCk7XHJcblxyXG4gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcclxuICAgIG9wdGlvbnMub25Db250cm9sbGVyPy4oY29udHJvbGxlcik7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IGNoYXRQYXRoID0gdGhpcy5wYXRoKEJhaWR1LkNoYXRQYXRoKG1vZGVsQ29uZmlnLm1vZGVsKSk7XHJcblxyXG4gICAgICAvLyBnZXRBY2Nlc3NUb2tlbiBjYW4gbm90IHJ1biBpbiBicm93c2VyLCBiZWNhdXNlIGNvcnMgZXJyb3JcclxuICAgICAgaWYgKCEhZ2V0Q2xpZW50Q29uZmlnKCk/LmlzQXBwKSB7XHJcbiAgICAgICAgY29uc3QgYWNjZXNzU3RvcmUgPSB1c2VBY2Nlc3NTdG9yZS5nZXRTdGF0ZSgpO1xyXG4gICAgICAgIGlmIChhY2Nlc3NTdG9yZS51c2VDdXN0b21Db25maWcpIHtcclxuICAgICAgICAgIGlmIChhY2Nlc3NTdG9yZS5pc1ZhbGlkQmFpZHUoKSkge1xyXG4gICAgICAgICAgICBjb25zdCB7IGFjY2Vzc190b2tlbiB9ID0gYXdhaXQgZ2V0QWNjZXNzVG9rZW4oXHJcbiAgICAgICAgICAgICAgYWNjZXNzU3RvcmUuYmFpZHVBcGlLZXksXHJcbiAgICAgICAgICAgICAgYWNjZXNzU3RvcmUuYmFpZHVTZWNyZXRLZXksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGNoYXRQYXRoID0gYCR7Y2hhdFBhdGh9JHtcclxuICAgICAgICAgICAgICBjaGF0UGF0aC5pbmNsdWRlcyhcIj9cIikgPyBcIiZcIiA6IFwiP1wiXHJcbiAgICAgICAgICAgIH1hY2Nlc3NfdG9rZW49JHthY2Nlc3NfdG9rZW59YDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgY2hhdFBheWxvYWQgPSB7XHJcbiAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcclxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShyZXF1ZXN0UGF5bG9hZCksXHJcbiAgICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCxcclxuICAgICAgICBoZWFkZXJzOiBnZXRIZWFkZXJzKCksXHJcbiAgICAgIH07XHJcblxyXG4gICAgICAvLyBtYWtlIGEgZmV0Y2ggcmVxdWVzdFxyXG4gICAgICBjb25zdCByZXF1ZXN0VGltZW91dElkID0gc2V0VGltZW91dChcclxuICAgICAgICAoKSA9PiBjb250cm9sbGVyLmFib3J0KCksXHJcbiAgICAgICAgUkVRVUVTVF9USU1FT1VUX01TLFxyXG4gICAgICApO1xyXG5cclxuICAgICAgaWYgKHNob3VsZFN0cmVhbSkge1xyXG4gICAgICAgIGxldCByZXNwb25zZVRleHQgPSBcIlwiO1xyXG4gICAgICAgIGxldCByZW1haW5UZXh0ID0gXCJcIjtcclxuICAgICAgICBsZXQgZmluaXNoZWQgPSBmYWxzZTtcclxuICAgICAgICBsZXQgcmVzcG9uc2VSZXM6IFJlc3BvbnNlO1xyXG5cclxuICAgICAgICAvLyBhbmltYXRlIHJlc3BvbnNlIHRvIG1ha2UgaXQgbG9va3Mgc21vb3RoXHJcbiAgICAgICAgZnVuY3Rpb24gYW5pbWF0ZVJlc3BvbnNlVGV4dCgpIHtcclxuICAgICAgICAgIGlmIChmaW5pc2hlZCB8fCBjb250cm9sbGVyLnNpZ25hbC5hYm9ydGVkKSB7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlVGV4dCArPSByZW1haW5UZXh0O1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIltSZXNwb25zZSBBbmltYXRpb25dIGZpbmlzaGVkXCIpO1xyXG4gICAgICAgICAgICBpZiAocmVzcG9uc2VUZXh0Py5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICBvcHRpb25zLm9uRXJyb3I/LihuZXcgRXJyb3IoXCJlbXB0eSByZXNwb25zZSBmcm9tIHNlcnZlclwiKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmIChyZW1haW5UZXh0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgZmV0Y2hDb3VudCA9IE1hdGgubWF4KDEsIE1hdGgucm91bmQocmVtYWluVGV4dC5sZW5ndGggLyA2MCkpO1xyXG4gICAgICAgICAgICBjb25zdCBmZXRjaFRleHQgPSByZW1haW5UZXh0LnNsaWNlKDAsIGZldGNoQ291bnQpO1xyXG4gICAgICAgICAgICByZXNwb25zZVRleHQgKz0gZmV0Y2hUZXh0O1xyXG4gICAgICAgICAgICByZW1haW5UZXh0ID0gcmVtYWluVGV4dC5zbGljZShmZXRjaENvdW50KTtcclxuICAgICAgICAgICAgb3B0aW9ucy5vblVwZGF0ZT8uKHJlc3BvbnNlVGV4dCwgZmV0Y2hUZXh0KTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYW5pbWF0ZVJlc3BvbnNlVGV4dCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBzdGFydCBhbmltYWlvblxyXG4gICAgICAgIGFuaW1hdGVSZXNwb25zZVRleHQoKTtcclxuXHJcbiAgICAgICAgY29uc3QgZmluaXNoID0gKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKCFmaW5pc2hlZCkge1xyXG4gICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIG9wdGlvbnMub25GaW5pc2gocmVzcG9uc2VUZXh0ICsgcmVtYWluVGV4dCwgcmVzcG9uc2VSZXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNvbnRyb2xsZXIuc2lnbmFsLm9uYWJvcnQgPSBmaW5pc2g7XHJcblxyXG4gICAgICAgIGZldGNoRXZlbnRTb3VyY2UoY2hhdFBhdGgsIHtcclxuICAgICAgICAgIGZldGNoOiBmZXRjaCBhcyBhbnksXHJcbiAgICAgICAgICAuLi5jaGF0UGF5bG9hZCxcclxuICAgICAgICAgIGFzeW5jIG9ub3BlbihyZXMpIHtcclxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHJlcXVlc3RUaW1lb3V0SWQpO1xyXG4gICAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IHJlcy5oZWFkZXJzLmdldChcImNvbnRlbnQtdHlwZVwiKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJbQmFpZHVdIHJlcXVlc3QgcmVzcG9uc2UgY29udGVudCB0eXBlOiBcIiwgY29udGVudFR5cGUpO1xyXG4gICAgICAgICAgICByZXNwb25zZVJlcyA9IHJlcztcclxuICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlPy5zdGFydHNXaXRoKFwidGV4dC9wbGFpblwiKSkge1xyXG4gICAgICAgICAgICAgIHJlc3BvbnNlVGV4dCA9IGF3YWl0IHJlcy5jbG9uZSgpLnRleHQoKTtcclxuICAgICAgICAgICAgICByZXR1cm4gZmluaXNoKCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAhcmVzLm9rIHx8XHJcbiAgICAgICAgICAgICAgIXJlcy5oZWFkZXJzXHJcbiAgICAgICAgICAgICAgICAuZ2V0KFwiY29udGVudC10eXBlXCIpXHJcbiAgICAgICAgICAgICAgICA/LnN0YXJ0c1dpdGgoRXZlbnRTdHJlYW1Db250ZW50VHlwZSkgfHxcclxuICAgICAgICAgICAgICByZXMuc3RhdHVzICE9PSAyMDBcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2VUZXh0cyA9IFtyZXNwb25zZVRleHRdO1xyXG4gICAgICAgICAgICAgIGxldCBleHRyYUluZm8gPSBhd2FpdCByZXMuY2xvbmUoKS50ZXh0KCk7XHJcbiAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc0pzb24gPSBhd2FpdCByZXMuY2xvbmUoKS5qc29uKCk7XHJcbiAgICAgICAgICAgICAgICBleHRyYUluZm8gPSBwcmV0dHlPYmplY3QocmVzSnNvbik7XHJcbiAgICAgICAgICAgICAgfSBjYXRjaCB7fVxyXG5cclxuICAgICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gNDAxKSB7XHJcbiAgICAgICAgICAgICAgICByZXNwb25zZVRleHRzLnB1c2goTG9jYWxlLkVycm9yLlVuYXV0aG9yaXplZCk7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBpZiAoZXh0cmFJbmZvKSB7XHJcbiAgICAgICAgICAgICAgICByZXNwb25zZVRleHRzLnB1c2goZXh0cmFJbmZvKTtcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIHJlc3BvbnNlVGV4dCA9IHJlc3BvbnNlVGV4dHMuam9pbihcIlxcblxcblwiKTtcclxuXHJcbiAgICAgICAgICAgICAgcmV0dXJuIGZpbmlzaCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb25tZXNzYWdlKG1zZykge1xyXG4gICAgICAgICAgICBpZiAobXNnLmRhdGEgPT09IFwiW0RPTkVdXCIgfHwgZmluaXNoZWQpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gZmluaXNoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgdGV4dCA9IG1zZy5kYXRhO1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKHRleHQpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRlbHRhID0ganNvbj8ucmVzdWx0O1xyXG4gICAgICAgICAgICAgIGlmIChkZWx0YSkge1xyXG4gICAgICAgICAgICAgICAgcmVtYWluVGV4dCArPSBkZWx0YTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiW1JlcXVlc3RdIHBhcnNlIGVycm9yXCIsIHRleHQsIG1zZyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvbmNsb3NlKCkge1xyXG4gICAgICAgICAgICBmaW5pc2goKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvbmVycm9yKGUpIHtcclxuICAgICAgICAgICAgb3B0aW9ucy5vbkVycm9yPy4oZSk7XHJcbiAgICAgICAgICAgIHRocm93IGU7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb3BlbldoZW5IaWRkZW46IHRydWUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goY2hhdFBhdGgsIGNoYXRQYXlsb2FkKTtcclxuICAgICAgICBjbGVhclRpbWVvdXQocmVxdWVzdFRpbWVvdXRJZCk7XHJcblxyXG4gICAgICAgIGNvbnN0IHJlc0pzb24gPSBhd2FpdCByZXMuanNvbigpO1xyXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSByZXNKc29uPy5yZXN1bHQ7XHJcbiAgICAgICAgb3B0aW9ucy5vbkZpbmlzaChtZXNzYWdlLCByZXMpO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiW1JlcXVlc3RdIGZhaWxlZCB0byBtYWtlIGEgY2hhdCByZXF1ZXN0XCIsIGUpO1xyXG4gICAgICBvcHRpb25zLm9uRXJyb3I/LihlIGFzIEVycm9yKTtcclxuICAgIH1cclxuICB9XHJcbiAgYXN5bmMgdXNhZ2UoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB1c2VkOiAwLFxyXG4gICAgICB0b3RhbDogMCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBhc3luYyBtb2RlbHMoKTogUHJvbWlzZTxMTE1Nb2RlbFtdPiB7XHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG59XHJcbmV4cG9ydCB7IEJhaWR1IH07XHJcbiJdLCJuYW1lcyI6WyJBcGlQYXRoIiwiQmFpZHUiLCJCQUlEVV9CQVNFX1VSTCIsIlJFUVVFU1RfVElNRU9VVF9NUyIsInVzZUFjY2Vzc1N0b3JlIiwidXNlQXBwQ29uZmlnIiwidXNlQ2hhdFN0b3JlIiwiZ2V0QWNjZXNzVG9rZW4iLCJnZXRIZWFkZXJzIiwiTG9jYWxlIiwiRXZlbnRTdHJlYW1Db250ZW50VHlwZSIsImZldGNoRXZlbnRTb3VyY2UiLCJwcmV0dHlPYmplY3QiLCJnZXRDbGllbnRDb25maWciLCJnZXRNZXNzYWdlVGV4dENvbnRlbnQiLCJmZXRjaCIsIkVybmllQXBpIiwicGF0aCIsImFjY2Vzc1N0b3JlIiwiZ2V0U3RhdGUiLCJiYXNlVXJsIiwidXNlQ3VzdG9tQ29uZmlnIiwiYmFpZHVVcmwiLCJsZW5ndGgiLCJpc0FwcCIsImVuZHNXaXRoIiwic2xpY2UiLCJzdGFydHNXaXRoIiwiY29uc29sZSIsImxvZyIsImpvaW4iLCJzcGVlY2giLCJvcHRpb25zIiwiRXJyb3IiLCJjaGF0IiwibWVzc2FnZXMiLCJtYXAiLCJ2Iiwicm9sZSIsImNvbnRlbnQiLCJhdCIsInNwbGljZSIsInVuc2hpZnQiLCJtb2RlbENvbmZpZyIsImN1cnJlbnRTZXNzaW9uIiwibWFzayIsIm1vZGVsIiwiY29uZmlnIiwic2hvdWxkU3RyZWFtIiwic3RyZWFtIiwicmVxdWVzdFBheWxvYWQiLCJ0ZW1wZXJhdHVyZSIsInByZXNlbmNlX3BlbmFsdHkiLCJmcmVxdWVuY3lfcGVuYWx0eSIsInRvcF9wIiwiY29udHJvbGxlciIsIkFib3J0Q29udHJvbGxlciIsIm9uQ29udHJvbGxlciIsImNoYXRQYXRoIiwiQ2hhdFBhdGgiLCJpc1ZhbGlkQmFpZHUiLCJhY2Nlc3NfdG9rZW4iLCJiYWlkdUFwaUtleSIsImJhaWR1U2VjcmV0S2V5IiwiaW5jbHVkZXMiLCJjaGF0UGF5bG9hZCIsIm1ldGhvZCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5Iiwic2lnbmFsIiwiaGVhZGVycyIsInJlcXVlc3RUaW1lb3V0SWQiLCJzZXRUaW1lb3V0IiwiYWJvcnQiLCJyZXNwb25zZVRleHQiLCJyZW1haW5UZXh0IiwiZmluaXNoZWQiLCJyZXNwb25zZVJlcyIsImFuaW1hdGVSZXNwb25zZVRleHQiLCJhYm9ydGVkIiwib25FcnJvciIsImZldGNoQ291bnQiLCJNYXRoIiwibWF4Iiwicm91bmQiLCJmZXRjaFRleHQiLCJvblVwZGF0ZSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImZpbmlzaCIsIm9uRmluaXNoIiwib25hYm9ydCIsIm9ub3BlbiIsInJlcyIsImNsZWFyVGltZW91dCIsImNvbnRlbnRUeXBlIiwiZ2V0IiwiY2xvbmUiLCJ0ZXh0Iiwib2siLCJzdGF0dXMiLCJyZXNwb25zZVRleHRzIiwiZXh0cmFJbmZvIiwicmVzSnNvbiIsImpzb24iLCJwdXNoIiwiVW5hdXRob3JpemVkIiwib25tZXNzYWdlIiwibXNnIiwiZGF0YSIsInBhcnNlIiwiZGVsdGEiLCJyZXN1bHQiLCJlIiwiZXJyb3IiLCJvbmNsb3NlIiwib25lcnJvciIsIm9wZW5XaGVuSGlkZGVuIiwibWVzc2FnZSIsInVzYWdlIiwidXNlZCIsInRvdGFsIiwibW9kZWxzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/client/platforms/baidu.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/client/platforms/bytedance.ts":
|
|
|
/*!*******************************************!*\
|
|
|
!*** ./app/client/platforms/bytedance.ts ***!
|
|
|
\*******************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ByteDance: () => (/* reexport safe */ _app_constant__WEBPACK_IMPORTED_MODULE_0__.ByteDance),\n/* harmony export */ DoubaoApi: () => (/* binding */ DoubaoApi)\n/* harmony export */ });\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _app_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/app/store */ \"(ssr)/./app/store/index.ts\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../api */ \"(ssr)/./app/client/api.ts\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../locales */ \"(ssr)/./app/locales/index.ts\");\n/* harmony import */ var _fortaine_fetch_event_source__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @fortaine/fetch-event-source */ \"(ssr)/./node_modules/@fortaine/fetch-event-source/lib/esm/fetch.js\");\n/* harmony import */ var _app_utils_format__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/app/utils/format */ \"(ssr)/./app/utils/format.ts\");\n/* harmony import */ var _app_config_client__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/app/config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_utils_chat__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/app/utils/chat */ \"(ssr)/./app/utils/chat.ts\");\n/* harmony import */ var _app_utils_stream__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/app/utils/stream */ \"(ssr)/./app/utils/stream.ts\");\n/* __next_internal_client_entry_do_not_use__ DoubaoApi,ByteDance auto */ \n\n\n\n\n\n\n\n\nclass DoubaoApi {\n path(path) {\n const accessStore = _app_store__WEBPACK_IMPORTED_MODULE_1__.useAccessStore.getState();\n let baseUrl = \"\";\n if (accessStore.useCustomConfig) {\n baseUrl = accessStore.bytedanceUrl;\n }\n if (baseUrl.length === 0) {\n const isApp = !!(0,_app_config_client__WEBPACK_IMPORTED_MODULE_5__.getClientConfig)()?.isApp;\n baseUrl = isApp ? _app_constant__WEBPACK_IMPORTED_MODULE_0__.BYTEDANCE_BASE_URL : _app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.ByteDance;\n }\n if (baseUrl.endsWith(\"/\")) {\n baseUrl = baseUrl.slice(0, baseUrl.length - 1);\n }\n if (!baseUrl.startsWith(\"http\") && !baseUrl.startsWith(_app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.ByteDance)) {\n baseUrl = \"https://\" + baseUrl;\n }\n console.log(\"[Proxy Endpoint] \", baseUrl, path);\n return [\n baseUrl,\n path\n ].join(\"/\");\n }\n extractMessage(res) {\n return res.choices?.at(0)?.message?.content ?? \"\";\n }\n speech(options) {\n throw new Error(\"Method not implemented.\");\n }\n async chat(options) {\n const messages = [];\n for (const v of options.messages){\n const content = await (0,_app_utils_chat__WEBPACK_IMPORTED_MODULE_6__.preProcessImageContent)(v.content);\n messages.push({\n role: v.role,\n content\n });\n }\n const modelConfig = {\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useAppConfig.getState().modelConfig,\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useChatStore.getState().currentSession().mask.modelConfig,\n ...{\n model: options.config.model\n }\n };\n const shouldStream = !!options.config.stream;\n const requestPayload = {\n messages,\n stream: shouldStream,\n model: modelConfig.model,\n temperature: modelConfig.temperature,\n presence_penalty: modelConfig.presence_penalty,\n frequency_penalty: modelConfig.frequency_penalty,\n top_p: modelConfig.top_p\n };\n const controller = new AbortController();\n options.onController?.(controller);\n try {\n const chatPath = this.path(_app_constant__WEBPACK_IMPORTED_MODULE_0__.ByteDance.ChatPath);\n const chatPayload = {\n method: \"POST\",\n body: JSON.stringify(requestPayload),\n signal: controller.signal,\n headers: (0,_api__WEBPACK_IMPORTED_MODULE_2__.getHeaders)()\n };\n // make a fetch request\n const requestTimeoutId = setTimeout(()=>controller.abort(), _app_constant__WEBPACK_IMPORTED_MODULE_0__.REQUEST_TIMEOUT_MS);\n if (shouldStream) {\n let responseText = \"\";\n let remainText = \"\";\n let finished = false;\n let responseRes;\n // animate response to make it looks smooth\n function animateResponseText() {\n if (finished || controller.signal.aborted) {\n responseText += remainText;\n console.log(\"[Response Animation] finished\");\n if (responseText?.length === 0) {\n options.onError?.(new Error(\"empty response from server\"));\n }\n return;\n }\n if (remainText.length > 0) {\n const fetchCount = Math.max(1, Math.round(remainText.length / 60));\n const fetchText = remainText.slice(0, fetchCount);\n responseText += fetchText;\n remainText = remainText.slice(fetchCount);\n options.onUpdate?.(responseText, fetchText);\n }\n requestAnimationFrame(animateResponseText);\n }\n // start animaion\n animateResponseText();\n const finish = ()=>{\n if (!finished) {\n finished = true;\n options.onFinish(responseText + remainText, responseRes);\n }\n };\n controller.signal.onabort = finish;\n (0,_fortaine_fetch_event_source__WEBPACK_IMPORTED_MODULE_8__.fetchEventSource)(chatPath, {\n fetch: _app_utils_stream__WEBPACK_IMPORTED_MODULE_7__.fetch,\n ...chatPayload,\n async onopen (res) {\n clearTimeout(requestTimeoutId);\n const contentType = res.headers.get(\"content-type\");\n console.log(\"[ByteDance] request response content type: \", contentType);\n responseRes = res;\n if (contentType?.startsWith(\"text/plain\")) {\n responseText = await res.clone().text();\n return finish();\n }\n if (!res.ok || !res.headers.get(\"content-type\")?.startsWith(_fortaine_fetch_event_source__WEBPACK_IMPORTED_MODULE_8__.EventStreamContentType) || res.status !== 200) {\n const responseTexts = [\n responseText\n ];\n let extraInfo = await res.clone().text();\n try {\n const resJson = await res.clone().json();\n extraInfo = (0,_app_utils_format__WEBPACK_IMPORTED_MODULE_4__.prettyObject)(resJson);\n } catch {}\n if (res.status === 401) {\n responseTexts.push(_locales__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Error.Unauthorized);\n }\n if (extraInfo) {\n responseTexts.push(extraInfo);\n }\n responseText = responseTexts.join(\"\\n\\n\");\n return finish();\n }\n },\n onmessage (msg) {\n if (msg.data === \"[DONE]\" || finished) {\n return finish();\n }\n const text = msg.data;\n try {\n const json = JSON.parse(text);\n const choices = json.choices;\n const delta = choices[0]?.delta?.content;\n if (delta) {\n remainText += delta;\n }\n } catch (e) {\n console.error(\"[Request] parse error\", text, msg);\n }\n },\n onclose () {\n finish();\n },\n onerror (e) {\n options.onError?.(e);\n throw e;\n },\n openWhenHidden: true\n });\n } else {\n const res = await (0,_app_utils_stream__WEBPACK_IMPORTED_MODULE_7__.fetch)(chatPath, chatPayload);\n clearTimeout(requestTimeoutId);\n const resJson = await res.json();\n const message = this.extractMessage(resJson);\n options.onFinish(message, res);\n }\n } catch (e) {\n console.log(\"[Request] failed to make a chat request\", e);\n options.onError?.(e);\n }\n }\n async usage() {\n return {\n used: 0,\n total: 0\n };\n }\n async models() {\n return [];\n }\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0FBQyx5QkFBeUJkLE1BQU1TO3dCQUMvQztvQkFDRjtvQkFDQU07d0JBQ0V2QjtvQkFDRjtvQkFDQXdCLFNBQVFILENBQUM7d0JBQ1ByRSxRQUFRd0MsT0FBTyxHQUFHNkI7d0JBQ2xCLE1BQU1BO29CQUNSO29CQUNBSSxnQkFBZ0I7Z0JBQ2xCO1lBQ0YsT0FBTztnQkFDTCxNQUFNL0UsTUFBTSxNQUFNakIsd0RBQUtBLENBQUM2QyxVQUFVRTtnQkFDbEM0QixhQUFhckI7Z0JBRWIsTUFBTThCLFVBQVUsTUFBTW5FLElBQUlvRSxJQUFJO2dCQUM5QixNQUFNakUsVUFBVSxJQUFJLENBQUNKLGNBQWMsQ0FBQ29FO2dCQUNwQzdELFFBQVFpRCxRQUFRLENBQUNwRCxTQUFTSDtZQUM1QjtRQUNGLEVBQUUsT0FBTzJFLEdBQUc7WUFDVi9FLFFBQVFDLEdBQUcsQ0FBQywyQ0FBMkM4RTtZQUN2RHJFLFFBQVF3QyxPQUFPLEdBQUc2QjtRQUNwQjtJQUNGO0lBQ0EsTUFBTUssUUFBUTtRQUNaLE9BQU87WUFDTEMsTUFBTTtZQUNOQyxPQUFPO1FBQ1Q7SUFDRjtJQUVBLE1BQU1DLFNBQThCO1FBQ2xDLE9BQU8sRUFBRTtJQUNYO0FBQ0Y7QUFDcUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9jbGllbnQvcGxhdGZvcm1zL2J5dGVkYW5jZS50cz85M2JjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5pbXBvcnQge1xyXG4gIEFwaVBhdGgsXHJcbiAgQnl0ZURhbmNlLFxyXG4gIEJZVEVEQU5DRV9CQVNFX1VSTCxcclxuICBSRVFVRVNUX1RJTUVPVVRfTVMsXHJcbn0gZnJvbSBcIkAvYXBwL2NvbnN0YW50XCI7XHJcbmltcG9ydCB7IHVzZUFjY2Vzc1N0b3JlLCB1c2VBcHBDb25maWcsIHVzZUNoYXRTdG9yZSB9IGZyb20gXCJAL2FwcC9zdG9yZVwiO1xyXG5cclxuaW1wb3J0IHtcclxuICBDaGF0T3B0aW9ucyxcclxuICBnZXRIZWFkZXJzLFxyXG4gIExMTUFwaSxcclxuICBMTE1Nb2RlbCxcclxuICBNdWx0aW1vZGFsQ29udGVudCxcclxuICBTcGVlY2hPcHRpb25zLFxyXG59IGZyb20gXCIuLi9hcGlcIjtcclxuaW1wb3J0IExvY2FsZSBmcm9tIFwiLi4vLi4vbG9jYWxlc1wiO1xyXG5pbXBvcnQge1xyXG4gIEV2ZW50U3RyZWFtQ29udGVudFR5cGUsXHJcbiAgZmV0Y2hFdmVudFNvdXJjZSxcclxufSBmcm9tIFwiQGZvcnRhaW5lL2ZldGNoLWV2ZW50LXNvdXJjZVwiO1xyXG5pbXBvcnQgeyBwcmV0dHlPYmplY3QgfSBmcm9tIFwiQC9hcHAvdXRpbHMvZm9ybWF0XCI7XHJcbmltcG9ydCB7IGdldENsaWVudENvbmZpZyB9IGZyb20gXCJAL2FwcC9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB7IHByZVByb2Nlc3NJbWFnZUNvbnRlbnQgfSBmcm9tIFwiQC9hcHAvdXRpbHMvY2hhdFwiO1xyXG5pbXBvcnQgeyBmZXRjaCB9IGZyb20gXCJAL2FwcC91dGlscy9zdHJlYW1cIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkFJTGlzdE1vZGVsUmVzcG9uc2Uge1xyXG4gIG9iamVjdDogc3RyaW5nO1xyXG4gIGRhdGE6IEFycmF5PHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBvYmplY3Q6IHN0cmluZztcclxuICAgIHJvb3Q6IHN0cmluZztcclxuICB9PjtcclxufVxyXG5cclxuaW50ZXJmYWNlIFJlcXVlc3RQYXlsb2FkIHtcclxuICBtZXNzYWdlczoge1xyXG4gICAgcm9sZTogXCJzeXN0ZW1cIiB8IFwidXNlclwiIHwgXCJhc3Npc3RhbnRcIjtcclxuICAgIGNvbnRlbnQ6IHN0cmluZyB8IE11bHRpbW9kYWxDb250ZW50W107XHJcbiAgfVtdO1xyXG4gIHN0cmVhbT86IGJvb2xlYW47XHJcbiAgbW9kZWw6IHN0cmluZztcclxuICB0ZW1wZXJhdHVyZTogbnVtYmVyO1xyXG4gIHByZXNlbmNlX3BlbmFsdHk6IG51bWJlcjtcclxuICBmcmVxdWVuY3lfcGVuYWx0eTogbnVtYmVyO1xyXG4gIHRvcF9wOiBudW1iZXI7XHJcbiAgbWF4X3Rva2Vucz86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERvdWJhb0FwaSBpbXBsZW1lbnRzIExMTUFwaSB7XHJcbiAgcGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYWNjZXNzU3RvcmUgPSB1c2VBY2Nlc3NTdG9yZS5nZXRTdGF0ZSgpO1xyXG5cclxuICAgIGxldCBiYXNlVXJsID0gXCJcIjtcclxuXHJcbiAgICBpZiAoYWNjZXNzU3RvcmUudXNlQ3VzdG9tQ29uZmlnKSB7XHJcbiAgICAgIGJhc2VVcmwgPSBhY2Nlc3NTdG9yZS5ieXRlZGFuY2VVcmw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGJhc2VVcmwubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGNvbnN0IGlzQXBwID0gISFnZXRDbGllbnRDb25maWcoKT8uaXNBcHA7XHJcbiAgICAgIGJhc2VVcmwgPSBpc0FwcCA/IEJZVEVEQU5DRV9CQVNFX1VSTCA6IEFwaVBhdGguQnl0ZURhbmNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChiYXNlVXJsLmVuZHNXaXRoKFwiL1wiKSkge1xyXG4gICAgICBiYXNlVXJsID0gYmFzZVVybC5zbGljZSgwLCBiYXNlVXJsLmxlbmd0aCAtIDEpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFiYXNlVXJsLnN0YXJ0c1dpdGgoXCJodHRwXCIpICYmICFiYXNlVXJsLnN0YXJ0c1dpdGgoQXBpUGF0aC5CeXRlRGFuY2UpKSB7XHJcbiAgICAgIGJhc2VVcmwgPSBcImh0dHBzOi8vXCIgKyBiYXNlVXJsO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnNvbGUubG9nKFwiW1Byb3h5IEVuZHBvaW50XSBcIiwgYmFzZVVybCwgcGF0aCk7XHJcblxyXG4gICAgcmV0dXJuIFtiYXNlVXJsLCBwYXRoXS5qb2luKFwiL1wiKTtcclxuICB9XHJcblxyXG4gIGV4dHJhY3RNZXNzYWdlKHJlczogYW55KSB7XHJcbiAgICByZXR1cm4gcmVzLmNob2ljZXM/LmF0KDApPy5tZXNzYWdlPy5jb250ZW50ID8/IFwiXCI7XHJcbiAgfVxyXG5cclxuICBzcGVlY2gob3B0aW9uczogU3BlZWNoT3B0aW9ucyk6IFByb21pc2U8QXJyYXlCdWZmZXI+IHtcclxuICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgY2hhdChvcHRpb25zOiBDaGF0T3B0aW9ucykge1xyXG4gICAgY29uc3QgbWVzc2FnZXM6IENoYXRPcHRpb25zW1wibWVzc2FnZXNcIl0gPSBbXTtcclxuICAgIGZvciAoY29uc3QgdiBvZiBvcHRpb25zLm1lc3NhZ2VzKSB7XHJcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBwcmVQcm9jZXNzSW1hZ2VDb250ZW50KHYuY29udGVudCk7XHJcbiAgICAgIG1lc3NhZ2VzLnB1c2goeyByb2xlOiB2LnJvbGUsIGNvbnRlbnQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbW9kZWxDb25maWcgPSB7XHJcbiAgICAgIC4uLnVzZUFwcENvbmZpZy5nZXRTdGF0ZSgpLm1vZGVsQ29uZmlnLFxyXG4gICAgICAuLi51c2VDaGF0U3RvcmUuZ2V0U3RhdGUoKS5jdXJyZW50U2Vzc2lvbigpLm1hc2subW9kZWxDb25maWcsXHJcbiAgICAgIC4uLntcclxuICAgICAgICBtb2RlbDogb3B0aW9ucy5jb25maWcubW9kZWwsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHNob3VsZFN0cmVhbSA9ICEhb3B0aW9ucy5jb25maWcuc3RyZWFtO1xyXG4gICAgY29uc3QgcmVxdWVzdFBheWxvYWQ6IFJlcXVlc3RQYXlsb2FkID0ge1xyXG4gICAgICBtZXNzYWdlcyxcclxuICAgICAgc3RyZWFtOiBzaG91bGRTdHJlYW0sXHJcbiAgICAgIG1vZGVsOiBtb2RlbENvbmZpZy5tb2RlbCxcclxuICAgICAgdGVtcGVyYXR1cmU6IG1vZGVsQ29uZmlnLnRlbXBlcmF0dXJlLFxyXG4gICAgICBwcmVzZW5jZV9wZW5hbHR5OiBtb2RlbENvbmZpZy5wcmVzZW5jZV9wZW5hbHR5LFxyXG4gICAgICBmcmVxdWVuY3lfcGVuYWx0eTogbW9kZWxDb25maWcuZnJlcXVlbmN5X3BlbmFsdHksXHJcbiAgICAgIHRvcF9wOiBtb2RlbENvbmZpZy50b3BfcCxcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcclxuICAgIG9wdGlvbnMub25Db250cm9sbGVyPy4oY29udHJvbGxlcik7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgY2hhdFBhdGggPSB0aGlzLnBhdGgoQnl0ZURhbmNlLkNoYXRQYXRoKTtcclxuICAgICAgY29uc3QgY2hhdFBheWxvYWQgPSB7XHJcbiAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcclxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShyZXF1ZXN0UGF5bG9hZCksXHJcbiAgICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCxcclxuICAgICAgICBoZWFkZXJzOiBnZXRIZWFkZXJzKCksXHJcbiAgICAgIH07XHJcblxyXG4gICAgICAvLyBtYWtlIGEgZmV0Y2ggcmVxdWVzdFxyXG4gICAgICBjb25zdCByZXF1ZXN0VGltZW91dElkID0gc2V0VGltZW91dChcclxuICAgICAgICAoKSA9PiBjb250cm9sbGVyLmFib3J0KCksXHJcbiAgICAgICAgUkVRVUVTVF9USU1FT1VUX01TLFxyXG4gICAgICApO1xyXG5cclxuICAgICAgaWYgKHNob3VsZFN0cmVhbSkge1xyXG4gICAgICAgIGxldCByZXNwb25zZVRleHQgPSBcIlwiO1xyXG4gICAgICAgIGxldCByZW1haW5UZXh0ID0gXCJcIjtcclxuICAgICAgICBsZXQgZmluaXNoZWQgPSBmYWxzZTtcclxuICAgICAgICBsZXQgcmVzcG9uc2VSZXM6IFJlc3BvbnNlO1xyXG5cclxuICAgICAgICAvLyBhbmltYXRlIHJlc3BvbnNlIHRvIG1ha2UgaXQgbG9va3Mgc21vb3RoXHJcbiAgICAgICAgZnVuY3Rpb24gYW5pbWF0ZVJlc3BvbnNlVGV4dCgpIHtcclxuICAgICAgICAgIGlmIChmaW5pc2hlZCB8fCBjb250cm9sbGVyLnNpZ25hbC5hYm9ydGVkKSB7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlVGV4dCArPSByZW1haW5UZXh0O1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIltSZXNwb25zZSBBbmltYXRpb25dIGZpbmlzaGVkXCIpO1xyXG4gICAgICAgICAgICBpZiAocmVzcG9uc2VUZXh0Py5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICBvcHRpb25zLm9uRXJyb3I/LihuZXcgRXJyb3IoXCJlbXB0eSByZXNwb25zZSBmcm9tIHNlcnZlclwiKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmIChyZW1haW5UZXh0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgZmV0Y2hDb3VudCA9IE1hdGgubWF4KDEsIE1hdGgucm91bmQocmVtYWluVGV4dC5sZW5ndGggLyA2MCkpO1xyXG4gICAgICAgICAgICBjb25zdCBmZXRjaFRleHQgPSByZW1haW5UZXh0LnNsaWNlKDAsIGZldGNoQ291bnQpO1xyXG4gICAgICAgICAgICByZXNwb25zZVRleHQgKz0gZmV0Y2hUZXh0O1xyXG4gICAgICAgICAgICByZW1haW5UZXh0ID0gcmVtYWluVGV4dC5zbGljZShmZXRjaENvdW50KTtcclxuICAgICAgICAgICAgb3B0aW9ucy5vblVwZGF0ZT8uKHJlc3BvbnNlVGV4dCwgZmV0Y2hUZXh0KTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYW5pbWF0ZVJlc3BvbnNlVGV4dCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBzdGFydCBhbmltYWlvblxyXG4gICAgICAgIGFuaW1hdGVSZXNwb25zZVRleHQoKTtcclxuXHJcbiAgICAgICAgY29uc3QgZmluaXNoID0gKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKCFmaW5pc2hlZCkge1xyXG4gICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIG9wdGlvbnMub25GaW5pc2gocmVzcG9uc2VUZXh0ICsgcmVtYWluVGV4dCwgcmVzcG9uc2VSZXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNvbnRyb2xsZXIuc2lnbmFsLm9uYWJvcnQgPSBmaW5pc2g7XHJcblxyXG4gICAgICAgIGZldGNoRXZlbnRTb3VyY2UoY2hhdFBhdGgsIHtcclxuICAgICAgICAgIGZldGNoOiBmZXRjaCBhcyBhbnksXHJcbiAgICAgICAgICAuLi5jaGF0UGF5bG9hZCxcclxuICAgICAgICAgIGFzeW5jIG9ub3BlbihyZXMpIHtcclxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHJlcXVlc3RUaW1lb3V0SWQpO1xyXG4gICAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IHJlcy5oZWFkZXJzLmdldChcImNvbnRlbnQtdHlwZVwiKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgICAgXCJbQnl0ZURhbmNlXSByZXF1ZXN0IHJlc3BvbnNlIGNvbnRlbnQgdHlwZTogXCIsXHJcbiAgICAgICAgICAgICAgY29udGVudFR5cGUsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlUmVzID0gcmVzO1xyXG4gICAgICAgICAgICBpZiAoY29udGVudFR5cGU/LnN0YXJ0c1dpdGgoXCJ0ZXh0L3BsYWluXCIpKSB7XHJcbiAgICAgICAgICAgICAgcmVzcG9uc2VUZXh0ID0gYXdhaXQgcmVzLmNsb25lKCkudGV4dCgpO1xyXG4gICAgICAgICAgICAgIHJldHVybiBmaW5pc2goKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICFyZXMub2sgfHxcclxuICAgICAgICAgICAgICAhcmVzLmhlYWRlcnNcclxuICAgICAgICAgICAgICAgIC5nZXQoXCJjb250ZW50LXR5cGVcIilcclxuICAgICAgICAgICAgICAgID8uc3RhcnRzV2l0aChFdmVudFN0cmVhbUNvbnRlbnRUeXBlKSB8fFxyXG4gICAgICAgICAgICAgIHJlcy5zdGF0dXMgIT09IDIwMFxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICBjb25zdCByZXNwb25zZVRleHRzID0gW3Jlc3BvbnNlVGV4dF07XHJcbiAgICAgICAgICAgICAgbGV0IGV4dHJhSW5mbyA9IGF3YWl0IHJlcy5jbG9uZSgpLnRleHQoKTtcclxuICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzSnNvbiA9IGF3YWl0IHJlcy5jbG9uZSgpLmpzb24oKTtcclxuICAgICAgICAgICAgICAgIGV4dHJhSW5mbyA9IHByZXR0eU9iamVjdChyZXNKc29uKTtcclxuICAgICAgICAgICAgICB9IGNhdGNoIHt9XHJcblxyXG4gICAgICAgICAgICAgIGlmIChyZXMuc3RhdHVzID09PSA0MDEpIHtcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlVGV4dHMucHVzaChMb2NhbGUuRXJyb3IuVW5hdXRob3JpemVkKTtcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIGlmIChleHRyYUluZm8pIHtcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlVGV4dHMucHVzaChleHRyYUluZm8pO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgcmVzcG9uc2VUZXh0ID0gcmVzcG9uc2VUZXh0cy5qb2luKFwiXFxuXFxuXCIpO1xyXG5cclxuICAgICAgICAgICAgICByZXR1cm4gZmluaXNoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvbm1lc3NhZ2UobXNnKSB7XHJcbiAgICAgICAgICAgIGlmIChtc2cuZGF0YSA9PT0gXCJbRE9ORV1cIiB8fCBmaW5pc2hlZCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBmaW5pc2goKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gbXNnLmRhdGE7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgY29uc3QganNvbiA9IEpTT04ucGFyc2UodGV4dCk7XHJcbiAgICAgICAgICAgICAgY29uc3QgY2hvaWNlcyA9IGpzb24uY2hvaWNlcyBhcyBBcnJheTx7XHJcbiAgICAgICAgICAgICAgICBkZWx0YTogeyBjb250ZW50OiBzdHJpbmcgfTtcclxuICAgICAgICAgICAgICB9PjtcclxuICAgICAgICAgICAgICBjb25zdCBkZWx0YSA9IGNob2ljZXNbMF0/LmRlbHRhPy5jb250ZW50O1xyXG4gICAgICAgICAgICAgIGlmIChkZWx0YSkge1xyXG4gICAgICAgICAgICAgICAgcmVtYWluVGV4dCArPSBkZWx0YTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiW1JlcXVlc3RdIHBhcnNlIGVycm9yXCIsIHRleHQsIG1zZyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvbmNsb3NlKCkge1xyXG4gICAgICAgICAgICBmaW5pc2goKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvbmVycm9yKGUpIHtcclxuICAgICAgICAgICAgb3B0aW9ucy5vbkVycm9yPy4oZSk7XHJcbiAgICAgICAgICAgIHRocm93IGU7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb3BlbldoZW5IaWRkZW46IHRydWUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goY2hhdFBhdGgsIGNoYXRQYXlsb2FkKTtcclxuICAgICAgICBjbGVhclRpbWVvdXQocmVxdWVzdFRpbWVvdXRJZCk7XHJcblxyXG4gICAgICAgIGNvbnN0IHJlc0pzb24gPSBhd2FpdCByZXMuanNvbigpO1xyXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmV4dHJhY3RNZXNzYWdlKHJlc0pzb24pO1xyXG4gICAgICAgIG9wdGlvbnMub25GaW5pc2gobWVzc2FnZSwgcmVzKTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIltSZXF1ZXN0XSBmYWlsZWQgdG8gbWFrZSBhIGNoYXQgcmVxdWVzdFwiLCBlKTtcclxuICAgICAgb3B0aW9ucy5vbkVycm9yPy4oZSBhcyBFcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGFzeW5jIHVzYWdlKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdXNlZDogMCxcclxuICAgICAgdG90YWw6IDAsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbW9kZWxzKCk6IFByb21pc2U8TExNTW9kZWxbXT4ge1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxufVxyXG5leHBvcnQgeyBCeXRlRGFuY2UgfTtcclxuIl0sIm5hbWVzIjpbIkFwaVBhdGgiLCJCeXRlRGFuY2UiLCJCWVRFREFOQ0VfQkFTRV9VUkwiLCJSRVFVRVNUX1RJTUVPVVRfTVMiLCJ1c2VBY2Nlc3NTdG9yZSIsInVzZUFwcENvbmZpZyIsInVzZUNoYXRTdG9yZSIsImdldEhlYWRlcnMiLCJMb2NhbGUiLCJFdmVudFN0cmVhbUNvbnRlbnRUeXBlIiwiZmV0Y2hFdmVudFNvdXJjZSIsInByZXR0eU9iamVjdCIsImdldENsaWVudENvbmZpZyIsInByZVByb2Nlc3NJbWFnZUNvbnRlbnQiLCJmZXRjaCIsIkRvdWJhb0FwaSIsInBhdGgiLCJhY2Nlc3NTdG9yZSIsImdldFN0YXRlIiwiYmFzZVVybCIsInVzZUN1c3RvbUNvbmZpZyIsImJ5dGVkYW5jZVVybCIsImxlbmd0aCIsImlzQXBwIiwiZW5kc1dpdGgiLCJzbGljZSIsInN0YXJ0c1dpdGgiLCJjb25zb2xlIiwibG9nIiwiam9pbiIsImV4dHJhY3RNZXNzYWdlIiwicmVzIiwiY2hvaWNlcyIsImF0IiwibWVzc2FnZSIsImNvbnRlbnQiLCJzcGVlY2giLCJvcHRpb25zIiwiRXJyb3IiLCJjaGF0IiwibWVzc2FnZXMiLCJ2IiwicHVzaCIsInJvbGUiLCJtb2RlbENvbmZpZyIsImN1cnJlbnRTZXNzaW9uIiwibWFzayIsIm1vZGVsIiwiY29uZmlnIiwic2hvdWxkU3RyZWFtIiwic3RyZWFtIiwicmVxdWVzdFBheWxvYWQiLCJ0ZW1wZXJhdHVyZSIsInByZXNlbmNlX3BlbmFsdHkiLCJmcmVxdWVuY3lfcGVuYWx0eSIsInRvcF9wIiwiY29udHJvbGxlciIsIkFib3J0Q29udHJvbGxlciIsIm9uQ29udHJvbGxlciIsImNoYXRQYXRoIiwiQ2hhdFBhdGgiLCJjaGF0UGF5bG9hZCIsIm1ldGhvZCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5Iiwic2lnbmFsIiwiaGVhZGVycyIsInJlcXVlc3RUaW1lb3V0SWQiLCJzZXRUaW1lb3V0IiwiYWJvcnQiLCJyZXNwb25zZVRleHQiLCJyZW1haW5UZXh0IiwiZmluaXNoZWQiLCJyZXNwb25zZVJlcyIsImFuaW1hdGVSZXNwb25zZVRleHQiLCJhYm9ydGVkIiwib25FcnJvciIsImZldGNoQ291bnQiLCJNYXRoIiwibWF4Iiwicm91bmQiLCJmZXRjaFRleHQiLCJvblVwZGF0ZSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImZpbmlzaCIsIm9uRmluaXNoIiwib25hYm9ydCIsIm9ub3BlbiIsImNsZWFyVGltZW91dCIsImNvbnRlbnRUeXBlIiwiZ2V0IiwiY2xvbmUiLCJ0ZXh0Iiwib2siLCJzdGF0dXMiLCJyZXNwb25zZVRleHRzIiwiZXh0cmFJbmZvIiwicmVzSnNvbiIsImpzb24iLCJVbmF1dGhvcml6ZWQiLCJvbm1lc3NhZ2UiLCJtc2ciLCJkYXRhIiwicGFyc2UiLCJkZWx0YSIsImUiLCJlcnJvciIsIm9uY2xvc2UiLCJvbmVycm9yIiwib3BlbldoZW5IaWRkZW4iLCJ1c2FnZSIsInVzZWQiLCJ0b3RhbCIsIm1vZGVscyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/client/platforms/bytedance.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/client/platforms/deepseek.ts":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./app/client/platforms/deepseek.ts ***!
|
|
|
\******************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DeepSeekApi: () => (/* binding */ DeepSeekApi)\n/* harmony export */ });\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _app_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/app/store */ \"(ssr)/./app/store/index.ts\");\n/* harmony import */ var _app_utils_chat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/utils/chat */ \"(ssr)/./app/utils/chat.ts\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../api */ \"(ssr)/./app/client/api.ts\");\n/* harmony import */ var _app_config_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/app/config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/app/utils */ \"(ssr)/./app/utils.ts\");\n/* harmony import */ var _app_utils_stream__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/app/utils/stream */ \"(ssr)/./app/utils/stream.ts\");\n/* __next_internal_client_entry_do_not_use__ DeepSeekApi auto */ // azure and openai, using same models. so using same LLMApi.\n\n\n\n\n\n\n\nclass DeepSeekApi {\n path(path) {\n const accessStore = _app_store__WEBPACK_IMPORTED_MODULE_1__.useAccessStore.getState();\n let baseUrl = \"\";\n if (accessStore.useCustomConfig) {\n baseUrl = accessStore.deepseekUrl;\n }\n if (baseUrl.length === 0) {\n const isApp = !!(0,_app_config_client__WEBPACK_IMPORTED_MODULE_4__.getClientConfig)()?.isApp;\n const apiPath = _app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.DeepSeek;\n baseUrl = isApp ? _app_constant__WEBPACK_IMPORTED_MODULE_0__.DEEPSEEK_BASE_URL : apiPath;\n }\n if (baseUrl.endsWith(\"/\")) {\n baseUrl = baseUrl.slice(0, baseUrl.length - 1);\n }\n if (!baseUrl.startsWith(\"http\") && !baseUrl.startsWith(_app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.DeepSeek)) {\n baseUrl = \"https://\" + baseUrl;\n }\n console.log(\"[Proxy Endpoint] \", baseUrl, path);\n return [\n baseUrl,\n path\n ].join(\"/\");\n }\n extractMessage(res) {\n return res.choices?.at(0)?.message?.content ?? \"\";\n }\n speech(options) {\n throw new Error(\"Method not implemented.\");\n }\n async chat(options) {\n const messages = [];\n for (const v of options.messages){\n if (v.role === \"assistant\") {\n const content = (0,_app_utils__WEBPACK_IMPORTED_MODULE_5__.getMessageTextContentWithoutThinking)(v);\n messages.push({\n role: v.role,\n content\n });\n } else {\n const content = (0,_app_utils__WEBPACK_IMPORTED_MODULE_5__.getMessageTextContent)(v);\n messages.push({\n role: v.role,\n content\n });\n }\n }\n const modelConfig = {\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useAppConfig.getState().modelConfig,\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useChatStore.getState().currentSession().mask.modelConfig,\n ...{\n model: options.config.model,\n providerName: options.config.providerName\n }\n };\n const requestPayload = {\n messages,\n stream: options.config.stream,\n model: modelConfig.model,\n temperature: modelConfig.temperature,\n presence_penalty: modelConfig.presence_penalty,\n frequency_penalty: modelConfig.frequency_penalty,\n top_p: modelConfig.top_p\n };\n console.log(\"[Request] openai payload: \", requestPayload);\n const shouldStream = !!options.config.stream;\n const controller = new AbortController();\n options.onController?.(controller);\n try {\n const chatPath = this.path(_app_constant__WEBPACK_IMPORTED_MODULE_0__.DeepSeek.ChatPath);\n const chatPayload = {\n method: \"POST\",\n body: JSON.stringify(requestPayload),\n signal: controller.signal,\n headers: (0,_api__WEBPACK_IMPORTED_MODULE_3__.getHeaders)()\n };\n // console.log(chatPayload);\n const isR1 = options.config.model.endsWith(\"-reasoner\") || options.config.model.endsWith(\"-r1\");\n // make a fetch request\n const requestTimeoutId = setTimeout(()=>controller.abort(), isR1 ? _app_constant__WEBPACK_IMPORTED_MODULE_0__.REQUEST_TIMEOUT_MS_FOR_THINKING : _app_constant__WEBPACK_IMPORTED_MODULE_0__.REQUEST_TIMEOUT_MS);\n if (shouldStream) {\n const [tools, funcs] = _app_store__WEBPACK_IMPORTED_MODULE_1__.usePluginStore.getState().getAsTools(_app_store__WEBPACK_IMPORTED_MODULE_1__.useChatStore.getState().currentSession().mask?.plugin || []);\n return (0,_app_utils_chat__WEBPACK_IMPORTED_MODULE_2__.streamWithThink)(chatPath, requestPayload, (0,_api__WEBPACK_IMPORTED_MODULE_3__.getHeaders)(), tools, funcs, controller, // parseSSE\n (text, runTools)=>{\n // console.log(\"parseSSE\", text, runTools);\n const json = JSON.parse(text);\n const choices = json.choices;\n const tool_calls = choices[0]?.delta?.tool_calls;\n if (tool_calls?.length > 0) {\n const index = tool_calls[0]?.index;\n const id = tool_calls[0]?.id;\n const args = tool_calls[0]?.function?.arguments;\n if (id) {\n runTools.push({\n id,\n type: tool_calls[0]?.type,\n function: {\n name: tool_calls[0]?.function?.name,\n arguments: args\n }\n });\n } else {\n // @ts-ignore\n runTools[index][\"function\"][\"arguments\"] += args;\n }\n }\n const reasoning = choices[0]?.delta?.reasoning_content;\n const content = choices[0]?.delta?.content;\n // Skip if both content and reasoning_content are empty or null\n if ((!reasoning || reasoning.trim().length === 0) && (!content || content.trim().length === 0)) {\n return {\n isThinking: false,\n content: \"\"\n };\n }\n if (reasoning && reasoning.trim().length > 0) {\n return {\n isThinking: true,\n content: reasoning\n };\n } else if (content && content.trim().length > 0) {\n return {\n isThinking: false,\n content: content\n };\n }\n return {\n isThinking: false,\n content: \"\"\n };\n }, // processToolMessage, include tool_calls message and tool call results\n (requestPayload, toolCallMessage, toolCallResult)=>{\n // @ts-ignore\n requestPayload?.messages?.splice(// @ts-ignore\n requestPayload?.messages?.length, 0, toolCallMessage, ...toolCallResult);\n }, options);\n } else {\n const res = await (0,_app_utils_stream__WEBPACK_IMPORTED_MODULE_6__.fetch)(chatPath, chatPayload);\n clearTimeout(requestTimeoutId);\n const resJson = await res.json();\n const message = this.extractMessage(resJson);\n options.onFinish(message, res);\n }\n } catch (e) {\n console.log(\"[Request] failed to make a chat request\", e);\n options.onError?.(e);\n }\n }\n async usage() {\n return {\n used: 0,\n total: 0\n };\n }\n async models() {\n return [];\n }\n constructor(){\n this.disableListModels = true;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvY2xpZW50L3BsYXRmb3Jtcy9kZWVwc2Vlay50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztpRUFDQSw2REFBNkQ7QUFPckM7QUFPSDtBQUM4QjtBQU9uQztBQUNzQztBQUlqQztBQUVzQjtBQUVwQyxNQUFNZTtJQUdYQyxLQUFLQSxJQUFZLEVBQVU7UUFDekIsTUFBTUMsY0FBY1osc0RBQWNBLENBQUNhLFFBQVE7UUFFM0MsSUFBSUMsVUFBVTtRQUVkLElBQUlGLFlBQVlHLGVBQWUsRUFBRTtZQUMvQkQsVUFBVUYsWUFBWUksV0FBVztRQUNuQztRQUVBLElBQUlGLFFBQVFHLE1BQU0sS0FBSyxHQUFHO1lBQ3hCLE1BQU1DLFFBQVEsQ0FBQyxDQUFDWixtRUFBZUEsSUFBSVk7WUFDbkMsTUFBTUMsVUFBVXhCLGtEQUFPQSxDQUFDRSxRQUFRO1lBQ2hDaUIsVUFBVUksUUFBUXRCLDREQUFpQkEsR0FBR3VCO1FBQ3hDO1FBRUEsSUFBSUwsUUFBUU0sUUFBUSxDQUFDLE1BQU07WUFDekJOLFVBQVVBLFFBQVFPLEtBQUssQ0FBQyxHQUFHUCxRQUFRRyxNQUFNLEdBQUc7UUFDOUM7UUFDQSxJQUFJLENBQUNILFFBQVFRLFVBQVUsQ0FBQyxXQUFXLENBQUNSLFFBQVFRLFVBQVUsQ0FBQzNCLGtEQUFPQSxDQUFDRSxRQUFRLEdBQUc7WUFDeEVpQixVQUFVLGFBQWFBO1FBQ3pCO1FBRUFTLFFBQVFDLEdBQUcsQ0FBQyxxQkFBcUJWLFNBQVNIO1FBRTFDLE9BQU87WUFBQ0c7WUFBU0g7U0FBSyxDQUFDYyxJQUFJLENBQUM7SUFDOUI7SUFFQUMsZUFBZUMsR0FBUSxFQUFFO1FBQ3ZCLE9BQU9BLElBQUlDLE9BQU8sRUFBRUMsR0FBRyxJQUFJQyxTQUFTQyxXQUFXO0lBQ2pEO0lBRUFDLE9BQU9DLE9BQXNCLEVBQXdCO1FBQ25ELE1BQU0sSUFBSUMsTUFBTTtJQUNsQjtJQUVBLE1BQU1DLEtBQUtGLE9BQW9CLEVBQUU7UUFDL0IsTUFBTUcsV0FBb0MsRUFB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TU4sTUFBTSxNQUFNbEIsd0RBQUtBLENBQUMrQyxVQUFVRTtnQkFDbENtQyxhQUFhM0I7Z0JBRWIsTUFBTTRCLFVBQVUsTUFBTW5FLElBQUlnRCxJQUFJO2dCQUM5QixNQUFNN0MsVUFBVSxJQUFJLENBQUNKLGNBQWMsQ0FBQ29FO2dCQUNwQzdELFFBQVE4RCxRQUFRLENBQUNqRSxTQUFTSDtZQUM1QjtRQUNGLEVBQUUsT0FBT3FFLEdBQUc7WUFDVnpFLFFBQVFDLEdBQUcsQ0FBQywyQ0FBMkN3RTtZQUN2RC9ELFFBQVFnRSxPQUFPLEdBQUdEO1FBQ3BCO0lBQ0Y7SUFDQSxNQUFNRSxRQUFRO1FBQ1osT0FBTztZQUNMQyxNQUFNO1lBQ05DLE9BQU87UUFDVDtJQUNGO0lBRUEsTUFBTUMsU0FBOEI7UUFDbEMsT0FBTyxFQUFFO0lBQ1g7O2FBbE5RQyxvQkFBb0I7O0FBbU45QiIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2NsaWVudC9wbGF0Zm9ybXMvZGVlcHNlZWsudHM/MDg5ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcclxuLy8gYXp1cmUgYW5kIG9wZW5haSwgdXNpbmcgc2FtZSBtb2RlbHMuIHNvIHVzaW5nIHNhbWUgTExNQXBpLlxyXG5pbXBvcnQge1xyXG4gIEFwaVBhdGgsXHJcbiAgREVFUFNFRUtfQkFTRV9VUkwsXHJcbiAgRGVlcFNlZWssXHJcbiAgUkVRVUVTVF9USU1FT1VUX01TLFxyXG4gIFJFUVVFU1RfVElNRU9VVF9NU19GT1JfVEhJTktJTkcsXHJcbn0gZnJvbSBcIkAvYXBwL2NvbnN0YW50XCI7XHJcbmltcG9ydCB7XHJcbiAgdXNlQWNjZXNzU3RvcmUsXHJcbiAgdXNlQXBwQ29uZmlnLFxyXG4gIHVzZUNoYXRTdG9yZSxcclxuICBDaGF0TWVzc2FnZVRvb2wsXHJcbiAgdXNlUGx1Z2luU3RvcmUsXHJcbn0gZnJvbSBcIkAvYXBwL3N0b3JlXCI7XHJcbmltcG9ydCB7IHN0cmVhbVdpdGhUaGluayB9IGZyb20gXCJAL2FwcC91dGlscy9jaGF0XCI7XHJcbmltcG9ydCB7XHJcbiAgQ2hhdE9wdGlvbnMsXHJcbiAgZ2V0SGVhZGVycyxcclxuICBMTE1BcGksXHJcbiAgTExNTW9kZWwsXHJcbiAgU3BlZWNoT3B0aW9ucyxcclxufSBmcm9tIFwiLi4vYXBpXCI7XHJcbmltcG9ydCB7IGdldENsaWVudENvbmZpZyB9IGZyb20gXCJAL2FwcC9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB7XHJcbiAgZ2V0TWVzc2FnZVRleHRDb250ZW50LFxyXG4gIGdldE1lc3NhZ2VUZXh0Q29udGVudFdpdGhvdXRUaGlua2luZyxcclxufSBmcm9tIFwiQC9hcHAvdXRpbHNcIjtcclxuaW1wb3J0IHsgUmVxdWVzdFBheWxvYWQgfSBmcm9tIFwiLi9vcGVuYWlcIjtcclxuaW1wb3J0IHsgZmV0Y2ggfSBmcm9tIFwiQC9hcHAvdXRpbHMvc3RyZWFtXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRGVlcFNlZWtBcGkgaW1wbGVtZW50cyBMTE1BcGkge1xyXG4gIHByaXZhdGUgZGlzYWJsZUxpc3RNb2RlbHMgPSB0cnVlO1xyXG5cclxuICBwYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBhY2Nlc3NTdG9yZSA9IHVzZUFjY2Vzc1N0b3JlLmdldFN0YXRlKCk7XHJcblxyXG4gICAgbGV0IGJhc2VVcmwgPSBcIlwiO1xyXG5cclxuICAgIGlmIChhY2Nlc3NTdG9yZS51c2VDdXN0b21Db25maWcpIHtcclxuICAgICAgYmFzZVVybCA9IGFjY2Vzc1N0b3JlLmRlZXBzZWVrVXJsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChiYXNlVXJsLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBjb25zdCBpc0FwcCA9ICEhZ2V0Q2xpZW50Q29uZmlnKCk/LmlzQXBwO1xyXG4gICAgICBjb25zdCBhcGlQYXRoID0gQXBpUGF0aC5EZWVwU2VlaztcclxuICAgICAgYmFzZVVybCA9IGlzQXBwID8gREVFUFNFRUtfQkFTRV9VUkwgOiBhcGlQYXRoO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChiYXNlVXJsLmVuZHNXaXRoKFwiL1wiKSkge1xyXG4gICAgICBiYXNlVXJsID0gYmFzZVVybC5zbGljZSgwLCBiYXNlVXJsLmxlbmd0aCAtIDEpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFiYXNlVXJsLnN0YXJ0c1dpdGgoXCJodHRwXCIpICYmICFiYXNlVXJsLnN0YXJ0c1dpdGgoQXBpUGF0aC5EZWVwU2VlaykpIHtcclxuICAgICAgYmFzZVVybCA9IFwiaHR0cHM6Ly9cIiArIGJhc2VVcmw7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJbUHJveHkgRW5kcG9pbnRdIFwiLCBiYXNlVXJsLCBwYXRoKTtcclxuXHJcbiAgICByZXR1cm4gW2Jhc2VVcmwsIHBhdGhdLmpvaW4oXCIvXCIpO1xyXG4gIH1cclxuXHJcbiAgZXh0cmFjdE1lc3NhZ2UocmVzOiBhbnkpIHtcclxuICAgIHJldHVybiByZXMuY2hvaWNlcz8uYXQoMCk/Lm1lc3NhZ2U/LmNvbnRlbnQgPz8gXCJcIjtcclxuICB9XHJcblxyXG4gIHNwZWVjaChvcHRpb25zOiBTcGVlY2hPcHRpb25zKTogUHJvbWlzZTxBcnJheUJ1ZmZlcj4ge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XHJcbiAgfVxyXG5cclxuICBhc3luYyBjaGF0KG9wdGlvbnM6IENoYXRPcHRpb25zKSB7XHJcbiAgICBjb25zdCBtZXNzYWdlczogQ2hhdE9wdGlvbnNbXCJtZXNzYWdlc1wiXSA9IFtdO1xyXG4gICAgZm9yIChjb25zdCB2IG9mIG9wdGlvbnMubWVzc2FnZXMpIHtcclxuICAgICAgaWYgKHYucm9sZSA9PT0gXCJhc3Npc3RhbnRcIikge1xyXG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBnZXRNZXNzYWdlVGV4dENvbnRlbnRXaXRob3V0VGhpbmtpbmcodik7XHJcbiAgICAgICAgbWVzc2FnZXMucHVzaCh7IHJvbGU6IHYucm9sZSwgY29udGVudCB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBjb250ZW50ID0gZ2V0TWVzc2FnZVRleHRDb250ZW50KHYpO1xyXG4gICAgICAgIG1lc3NhZ2VzLnB1c2goeyByb2xlOiB2LnJvbGUsIGNvbnRlbnQgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtb2RlbENvbmZpZyA9IHtcclxuICAgICAgLi4udXNlQXBwQ29uZmlnLmdldFN0YXRlKCkubW9kZWxDb25maWcsXHJcbiAgICAgIC4uLnVzZUNoYXRTdG9yZS5nZXRTdGF0ZSgpLmN1cnJlbnRTZXNzaW9uKCkubWFzay5tb2RlbENvbmZpZyxcclxuICAgICAgLi4ue1xyXG4gICAgICAgIG1vZGVsOiBvcHRpb25zLmNvbmZpZy5tb2RlbCxcclxuICAgICAgICBwcm92aWRlck5hbWU6IG9wdGlvbnMuY29uZmlnLnByb3ZpZGVyTmFtZSxcclxuICAgICAgfSxcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdFBheWxvYWQ6IFJlcXVlc3RQYXlsb2FkID0ge1xyXG4gICAgICBtZXNzYWdlcyxcclxuICAgICAgc3RyZWFtOiBvcHRpb25zLmNvbmZpZy5zdHJlYW0sXHJcbiAgICAgIG1vZGVsOiBtb2RlbENvbmZpZy5tb2RlbCxcclxuICAgICAgdGVtcGVyYXR1cmU6IG1vZGVsQ29uZmlnLnRlbXBlcmF0dXJlLFxyXG4gICAgICBwcmVzZW5jZV9wZW5hbHR5OiBtb2RlbENvbmZpZy5wcmVzZW5jZV9wZW5hbHR5LFxyXG4gICAgICBmcmVxdWVuY3lfcGVuYWx0eTogbW9kZWxDb25maWcuZnJlcXVlbmN5X3BlbmFsdHksXHJcbiAgICAgIHRvcF9wOiBtb2RlbENvbmZpZy50b3BfcCxcclxuICAgICAgLy8gbWF4X3Rva2VuczogTWF0aC5tYXgobW9kZWxDb25maWcubWF4X3Rva2VucywgMTAyNCksXHJcbiAgICAgIC8vIFBsZWFzZSBkbyBub3QgYXNrIG1lIHdoeSBub3Qgc2VuZCBtYXhfdG9rZW5zLCBubyByZWFzb24sIHRoaXMgcGFyYW0gaXMganVzdCBzaGl0LCBJIGRvbnQgd2FudCB0byBleHBsYWluIGFueW1vcmUuXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwiW1JlcXVlc3RdIG9wZW5haSBwYXlsb2FkOiBcIiwgcmVxdWVzdFBheWxvYWQpO1xyXG5cclxuICAgIGNvbnN0IHNob3VsZFN0cmVhbSA9ICEhb3B0aW9ucy5jb25maWcuc3RyZWFtO1xyXG4gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcclxuICAgIG9wdGlvbnMub25Db250cm9sbGVyPy4oY29udHJvbGxlcik7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgY2hhdFBhdGggPSB0aGlzLnBhdGgoRGVlcFNlZWsuQ2hhdFBhdGgpO1xyXG4gICAgICBjb25zdCBjaGF0UGF5bG9hZCA9IHtcclxuICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxyXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHJlcXVlc3RQYXlsb2FkKSxcclxuICAgICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsLFxyXG4gICAgICAgIGhlYWRlcnM6IGdldEhlYWRlcnMoKSxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKGNoYXRQYXlsb2FkKTtcclxuXHJcbiAgICAgIGNvbnN0IGlzUjEgPVxyXG4gICAgICAgIG9wdGlvbnMuY29uZmlnLm1vZGVsLmVuZHNXaXRoKFwiLXJlYXNvbmVyXCIpIHx8XHJcbiAgICAgICAgb3B0aW9ucy5jb25maWcubW9kZWwuZW5kc1dpdGgoXCItcjFcIik7XHJcblxyXG4gICAgICAvLyBtYWtlIGEgZmV0Y2ggcmVxdWVzdFxyXG4gICAgICBjb25zdCByZXF1ZXN0VGltZW91dElkID0gc2V0VGltZW91dChcclxuICAgICAgICAoKSA9PiBjb250cm9sbGVyLmFib3J0KCksXHJcbiAgICAgICAgaXNSMSA/IFJFUVVFU1RfVElNRU9VVF9NU19GT1JfVEhJTktJTkcgOiBSRVFVRVNUX1RJTUVPVVRfTVMsXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBpZiAoc2hvdWxkU3RyZWFtKSB7XHJcbiAgICAgICAgY29uc3QgW3Rvb2xzLCBmdW5jc10gPSB1c2VQbHVnaW5TdG9yZVxyXG4gICAgICAgICAgLmdldFN0YXRlKClcclxuICAgICAgICAgIC5nZXRBc1Rvb2xzKFxyXG4gICAgICAgICAgICB1c2VDaGF0U3RvcmUuZ2V0U3RhdGUoKS5jdXJyZW50U2Vzc2lvbigpLm1hc2s/LnBsdWdpbiB8fCBbXSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIHN0cmVhbVdpdGhUaGluayhcclxuICAgICAgICAgIGNoYXRQYXRoLFxyXG4gICAgICAgICAgcmVxdWVzdFBheWxvYWQsXHJcbiAgICAgICAgICBnZXRIZWFkZXJzKCksXHJcbiAgICAgICAgICB0b29scyBhcyBhbnksXHJcbiAgICAgICAgICBmdW5jcyxcclxuICAgICAgICAgIGNvbnRyb2xsZXIsXHJcbiAgICAgICAgICAvLyBwYXJzZVNTRVxyXG4gICAgICAgICAgKHRleHQ6IHN0cmluZywgcnVuVG9vbHM6IENoYXRNZXNzYWdlVG9vbFtdKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwicGFyc2VTU0VcIiwgdGV4dCwgcnVuVG9vbHMpO1xyXG4gICAgICAgICAgICBjb25zdCBqc29uID0gSlNPTi5wYXJzZSh0ZXh0KTtcclxuICAgICAgICAgICAgY29uc3QgY2hvaWNlcyA9IGpzb24uY2hvaWNlcyBhcyBBcnJheTx7XHJcbiAgICAgICAgICAgICAgZGVsdGE6IHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHN0cmluZyB8IG51bGw7XHJcbiAgICAgICAgICAgICAgICB0b29sX2NhbGxzOiBDaGF0TWVzc2FnZVRvb2xbXTtcclxuICAgICAgICAgICAgICAgIHJlYXNvbmluZ19jb250ZW50OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0+O1xyXG4gICAgICAgICAgICBjb25zdCB0b29sX2NhbGxzID0gY2hvaWNlc1swXT8uZGVsdGE/LnRvb2xfY2FsbHM7XHJcbiAgICAgICAgICAgIGlmICh0b29sX2NhbGxzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0b29sX2NhbGxzWzBdPy5pbmRleDtcclxuICAgICAgICAgICAgICBjb25zdCBpZCA9IHRvb2xfY2FsbHNbMF0/LmlkO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGFyZ3MgPSB0b29sX2NhbGxzWzBdPy5mdW5jdGlvbj8uYXJndW1lbnRzO1xyXG4gICAgICAgICAgICAgIGlmIChpZCkge1xyXG4gICAgICAgICAgICAgICAgcnVuVG9vbHMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgIGlkLFxyXG4gICAgICAgICAgICAgICAgICB0eXBlOiB0b29sX2NhbGxzWzBdPy50eXBlLFxyXG4gICAgICAgICAgICAgICAgICBmdW5jdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHRvb2xfY2FsbHNbMF0/LmZ1bmN0aW9uPy5uYW1lIGFzIHN0cmluZyxcclxuICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHM6IGFyZ3MsXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgcnVuVG9vbHNbaW5kZXhdW1wiZnVuY3Rpb25cIl1bXCJhcmd1bWVudHNcIl0gKz0gYXJncztcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgcmVhc29uaW5nID0gY2hvaWNlc1swXT8uZGVsdGE/LnJlYXNvbmluZ19jb250ZW50O1xyXG4gICAgICAgICAgICBjb25zdCBjb250ZW50ID0gY2hvaWNlc1swXT8uZGVsdGE/LmNvbnRlbnQ7XHJcblxyXG4gICAgICAgICAgICAvLyBTa2lwIGlmIGJvdGggY29udGVudCBhbmQgcmVhc29uaW5nX2NvbnRlbnQgYXJlIGVtcHR5IG9yIG51bGxcclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICghcmVhc29uaW5nIHx8IHJlYXNvbmluZy50cmltKCkubGVuZ3RoID09PSAwKSAmJlxyXG4gICAgICAgICAgICAgICghY29udGVudCB8fCBjb250ZW50LnRyaW0oKS5sZW5ndGggPT09IDApXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBpc1RoaW5raW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCIsXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlYXNvbmluZyAmJiByZWFzb25pbmcudHJpbSgpLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgaXNUaGlua2luZzogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHJlYXNvbmluZyxcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRlbnQgJiYgY29udGVudC50cmltKCkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBpc1RoaW5raW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGNvbnRlbnQsXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICBpc1RoaW5raW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgICBjb250ZW50OiBcIlwiLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC8vIHByb2Nlc3NUb29sTWVzc2FnZSwgaW5jbHVkZSB0b29sX2NhbGxzIG1lc3NhZ2UgYW5kIHRvb2wgY2FsbCByZXN1bHRzXHJcbiAgICAgICAgICAoXHJcbiAgICAgICAgICAgIHJlcXVlc3RQYXlsb2FkOiBSZXF1ZXN0UGF5bG9hZCxcclxuICAgICAgICAgICAgdG9vbENhbGxNZXNzYWdlOiBhbnksXHJcbiAgICAgICAgICAgIHRvb2xDYWxsUmVzdWx0OiBhbnlbXSxcclxuICAgICAgICAgICkgPT4ge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHJlcXVlc3RQYXlsb2FkPy5tZXNzYWdlcz8uc3BsaWNlKFxyXG4gICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICByZXF1ZXN0UGF5bG9hZD8ubWVzc2FnZXM/Lmxlbmd0aCxcclxuICAgICAgICAgICAgICAwLFxyXG4gICAgICAgICAgICAgIHRvb2xDYWxsTWVzc2FnZSxcclxuICAgICAgICAgICAgICAuLi50b29sQ2FsbFJlc3VsdCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvcHRpb25zLFxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goY2hhdFBhdGgsIGNoYXRQYXlsb2FkKTtcclxuICAgICAgICBjbGVhclRpbWVvdXQocmVxdWVzdFRpbWVvdXRJZCk7XHJcblxyXG4gICAgICAgIGNvbnN0IHJlc0pzb24gPSBhd2FpdCByZXMuanNvbigpO1xyXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmV4dHJhY3RNZXNzYWdlKHJlc0pzb24pO1xyXG4gICAgICAgIG9wdGlvbnMub25GaW5pc2gobWVzc2FnZSwgcmVzKTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIltSZXF1ZXN0XSBmYWlsZWQgdG8gbWFrZSBhIGNoYXQgcmVxdWVzdFwiLCBlKTtcclxuICAgICAgb3B0aW9ucy5vbkVycm9yPy4oZSBhcyBFcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGFzeW5jIHVzYWdlKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdXNlZDogMCxcclxuICAgICAgdG90YWw6IDAsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbW9kZWxzKCk6IFByb21pc2U8TExNTW9kZWxbXT4ge1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxufVxyXG4iXSwibmFtZXMiOlsiQXBpUGF0aCIsIkRFRVBTRUVLX0JBU0VfVVJMIiwiRGVlcFNlZWsiLCJSRVFVRVNUX1RJTUVPVVRfTVMiLCJSRVFVRVNUX1RJTUVPVVRfTVNfRk9SX1RISU5LSU5HIiwidXNlQWNjZXNzU3RvcmUiLCJ1c2VBcHBDb25maWciLCJ1c2VDaGF0U3RvcmUiLCJ1c2VQbHVnaW5TdG9yZSIsInN0cmVhbVdpdGhUaGluayIsImdldEhlYWRlcnMiLCJnZXRDbGllbnRDb25maWciLCJnZXRNZXNzYWdlVGV4dENvbnRlbnQiLCJnZXRNZXNzYWdlVGV4dENvbnRlbnRXaXRob3V0VGhpbmtpbmciLCJmZXRjaCIsIkRlZXBTZWVrQXBpIiwicGF0aCIsImFjY2Vzc1N0b3JlIiwiZ2V0U3RhdGUiLCJiYXNlVXJsIiwidXNlQ3VzdG9tQ29uZmlnIiwiZGVlcHNlZWtVcmwiLCJsZW5ndGgiLCJpc0FwcCIsImFwaVBhdGgiLCJlbmRzV2l0aCIsInNsaWNlIiwic3RhcnRzV2l0aCIsImNvbnNvbGUiLCJsb2ciLCJqb2luIiwiZXh0cmFjdE1lc3NhZ2UiLCJyZXMiLCJjaG9pY2VzIiwiYXQiLCJtZXNzYWdlIiwiY29udGVudCIsInNwZWVjaCIsIm9wdGlvbnMiLCJFcnJvciIsImNoYXQiLCJtZXNzYWdlcyIsInYiLCJyb2xlIiwicHVzaCIsIm1vZGVsQ29uZmlnIiwiY3VycmVudFNlc3Npb24iLCJtYXNrIiwibW9kZWwiLCJjb25maWciLCJwcm92aWRlck5hbWUiLCJyZXF1ZXN0UGF5bG9hZCIsInN0cmVhbSIsInRlbXBlcmF0dXJlIiwicHJlc2VuY2VfcGVuYWx0eSIsImZyZXF1ZW5jeV9wZW5hbHR5IiwidG9wX3AiLCJzaG91bGRTdHJlYW0iLCJjb250cm9sbGVyIiwiQWJvcnRDb250cm9sbGVyIiwib25Db250cm9sbGVyIiwiY2hhdFBhdGgiLCJDaGF0UGF0aCIsImNoYXRQYXlsb2FkIiwibWV0aG9kIiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJzaWduYWwiLCJoZWFkZXJzIiwiaXNSMSIsInJlcXVlc3RUaW1lb3V0SWQiLCJzZXRUaW1lb3V0IiwiYWJvcnQiLCJ0b29scyIsImZ1bmNzIiwiZ2V0QXNUb29scyIsInBsdWdpbiIsInRleHQiLCJydW5Ub29scyIsImpzb24iLCJwYXJzZSIsInRvb2xfY2FsbHMiLCJkZWx0YSIsImluZGV4IiwiaWQiLCJhcmdzIiwiZnVuY3Rpb24iLCJhcmd1bWVudHMiLCJ0eXBlIiwibmFtZSIsInJlYXNvbmluZyIsInJlYXNvbmluZ19jb250ZW50IiwidHJpbSIsImlzVGhpbmtpbmciLCJ0b29sQ2FsbE1lc3NhZ2UiLCJ0b29sQ2FsbFJlc3VsdCIsInNwbGljZSIsImNsZWFyVGltZW91dCIsInJlc0pzb24iLCJvbkZpbmlzaCIsImUiLCJvbkVycm9yIiwidXNhZ2UiLCJ1c2VkIiwidG90YWwiLCJtb2RlbHMiLCJkaXNhYmxlTGlzdE1vZGVscyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/client/platforms/deepseek.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/client/platforms/glm.ts":
|
|
|
/*!*************************************!*\
|
|
|
!*** ./app/client/platforms/glm.ts ***!
|
|
|
\*************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ChatGLMApi: () => (/* binding */ ChatGLMApi)\n/* harmony export */ });\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _app_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/app/store */ \"(ssr)/./app/store/index.ts\");\n/* harmony import */ var _app_utils_chat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/utils/chat */ \"(ssr)/./app/utils/chat.ts\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../api */ \"(ssr)/./app/client/api.ts\");\n/* harmony import */ var _app_config_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/app/config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/app/utils */ \"(ssr)/./app/utils.ts\");\n/* harmony import */ var _app_utils_stream__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/app/utils/stream */ \"(ssr)/./app/utils/stream.ts\");\n/* __next_internal_client_entry_do_not_use__ ChatGLMApi auto */ \n\n\n\n\n\n\n\nclass ChatGLMApi {\n getModelType(model) {\n if (model.startsWith(\"cogview-\")) return \"image\";\n if (model.startsWith(\"cogvideo-\")) return \"video\";\n return \"chat\";\n }\n getModelPath(type) {\n switch(type){\n case \"image\":\n return _app_constant__WEBPACK_IMPORTED_MODULE_0__.ChatGLM.ImagePath;\n case \"video\":\n return _app_constant__WEBPACK_IMPORTED_MODULE_0__.ChatGLM.VideoPath;\n default:\n return _app_constant__WEBPACK_IMPORTED_MODULE_0__.ChatGLM.ChatPath;\n }\n }\n createPayload(messages, modelConfig, options) {\n const modelType = this.getModelType(modelConfig.model);\n const lastMessage = messages[messages.length - 1];\n const prompt = typeof lastMessage.content === \"string\" ? lastMessage.content : lastMessage.content.map((c)=>c.text).join(\"\\n\");\n switch(modelType){\n case \"image\":\n return {\n model: modelConfig.model,\n prompt,\n size: options.config.size\n };\n default:\n return {\n messages,\n stream: options.config.stream,\n model: modelConfig.model,\n temperature: modelConfig.temperature,\n presence_penalty: modelConfig.presence_penalty,\n frequency_penalty: modelConfig.frequency_penalty,\n top_p: modelConfig.top_p\n };\n }\n }\n parseResponse(modelType, json) {\n switch(modelType){\n case \"image\":\n {\n const imageUrl = json.data?.[0]?.url;\n return imageUrl ? `` : \"\";\n }\n case \"video\":\n {\n const videoUrl = json.data?.[0]?.url;\n return videoUrl ? `<video controls src=\"${videoUrl}\"></video>` : \"\";\n }\n default:\n return this.extractMessage(json);\n }\n }\n path(path) {\n const accessStore = _app_store__WEBPACK_IMPORTED_MODULE_1__.useAccessStore.getState();\n let baseUrl = \"\";\n if (accessStore.useCustomConfig) {\n baseUrl = accessStore.chatglmUrl;\n }\n if (baseUrl.length === 0) {\n const isApp = !!(0,_app_config_client__WEBPACK_IMPORTED_MODULE_4__.getClientConfig)()?.isApp;\n const apiPath = _app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.ChatGLM;\n baseUrl = isApp ? _app_constant__WEBPACK_IMPORTED_MODULE_0__.CHATGLM_BASE_URL : apiPath;\n }\n if (baseUrl.endsWith(\"/\")) {\n baseUrl = baseUrl.slice(0, baseUrl.length - 1);\n }\n if (!baseUrl.startsWith(\"http\") && !baseUrl.startsWith(_app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.ChatGLM)) {\n baseUrl = \"https://\" + baseUrl;\n }\n console.log(\"[Proxy Endpoint] \", baseUrl, path);\n return [\n baseUrl,\n path\n ].join(\"/\");\n }\n extractMessage(res) {\n return res.choices?.at(0)?.message?.content ?? \"\";\n }\n speech(options) {\n throw new Error(\"Method not implemented.\");\n }\n async chat(options) {\n const visionModel = (0,_app_utils__WEBPACK_IMPORTED_MODULE_5__.isVisionModel)(options.config.model);\n const messages = [];\n for (const v of options.messages){\n const content = visionModel ? await (0,_app_utils_chat__WEBPACK_IMPORTED_MODULE_2__.preProcessImageContent)(v.content) : (0,_app_utils__WEBPACK_IMPORTED_MODULE_5__.getMessageTextContent)(v);\n messages.push({\n role: v.role,\n content\n });\n }\n const modelConfig = {\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useAppConfig.getState().modelConfig,\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useChatStore.getState().currentSession().mask.modelConfig,\n ...{\n model: options.config.model,\n providerName: options.config.providerName\n }\n };\n const modelType = this.getModelType(modelConfig.model);\n const requestPayload = this.createPayload(messages, modelConfig, options);\n const path = this.path(this.getModelPath(modelType));\n console.log(`[Request] glm ${modelType} payload: `, requestPayload);\n const controller = new AbortController();\n options.onController?.(controller);\n try {\n const chatPayload = {\n method: \"POST\",\n body: JSON.stringify(requestPayload),\n signal: controller.signal,\n headers: (0,_api__WEBPACK_IMPORTED_MODULE_3__.getHeaders)()\n };\n const requestTimeoutId = setTimeout(()=>controller.abort(), _app_constant__WEBPACK_IMPORTED_MODULE_0__.REQUEST_TIMEOUT_MS);\n if (modelType === \"image\" || modelType === \"video\") {\n const res = await (0,_app_utils_stream__WEBPACK_IMPORTED_MODULE_6__.fetch)(path, chatPayload);\n clearTimeout(requestTimeoutId);\n const resJson = await res.json();\n console.log(`[Response] glm ${modelType}:`, resJson);\n const message = this.parseResponse(modelType, resJson);\n options.onFinish(message, res);\n return;\n }\n const shouldStream = !!options.config.stream;\n if (shouldStream) {\n const [tools, funcs] = _app_store__WEBPACK_IMPORTED_MODULE_1__.usePluginStore.getState().getAsTools(_app_store__WEBPACK_IMPORTED_MODULE_1__.useChatStore.getState().currentSession().mask?.plugin || []);\n return (0,_app_utils_chat__WEBPACK_IMPORTED_MODULE_2__.stream)(path, requestPayload, (0,_api__WEBPACK_IMPORTED_MODULE_3__.getHeaders)(), tools, funcs, controller, // parseSSE\n (text, runTools)=>{\n const json = JSON.parse(text);\n const choices = json.choices;\n const tool_calls = choices[0]?.delta?.tool_calls;\n if (tool_calls?.length > 0) {\n const index = tool_calls[0]?.index;\n const id = tool_calls[0]?.id;\n const args = tool_calls[0]?.function?.arguments;\n if (id) {\n runTools.push({\n id,\n type: tool_calls[0]?.type,\n function: {\n name: tool_calls[0]?.function?.name,\n arguments: args\n }\n });\n } else {\n // @ts-ignore\n runTools[index][\"function\"][\"arguments\"] += args;\n }\n }\n return choices[0]?.delta?.content;\n }, // processToolMessage\n (requestPayload, toolCallMessage, toolCallResult)=>{\n // @ts-ignore\n requestPayload?.messages?.splice(// @ts-ignore\n requestPayload?.messages?.length, 0, toolCallMessage, ...toolCallResult);\n }, options);\n } else {\n const res = await (0,_app_utils_stream__WEBPACK_IMPORTED_MODULE_6__.fetch)(path, chatPayload);\n clearTimeout(requestTimeoutId);\n const resJson = await res.json();\n const message = this.extractMessage(resJson);\n options.onFinish(message, res);\n }\n } catch (e) {\n console.log(\"[Request] failed to make a chat request\", e);\n options.onError?.(e);\n }\n }\n async usage() {\n return {\n used: 0,\n total: 0\n };\n }\n async models() {\n return [];\n }\n constructor(){\n this.disableListModels = true;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvY2xpZW50L3BsYXRmb3Jtcy9nbG0udHMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Z0VBTXdCO0FBT0g7QUFDcUI7QUFPMUI7QUFDc0M7QUFDYTtBQUV4QjtBQUNlO0FBOEJuRCxNQUFNZTtJQUdIQyxhQUFhQyxLQUFhLEVBQWE7UUFDN0MsSUFBSUEsTUFBTUMsVUFBVSxDQUFDLGFBQWEsT0FBTztRQUN6QyxJQUFJRCxNQUFNQyxVQUFVLENBQUMsY0FBYyxPQUFPO1FBQzFDLE9BQU87SUFDVDtJQUVRQyxhQUFhQyxJQUFlLEVBQVU7UUFDNUMsT0FBUUE7WUFDTixLQUFLO2dCQUNILE9BQU9sQixrREFBT0EsQ0FBQ21CLFNBQVM7WUFDMUIsS0FBSztnQkFDSCxPQUFPbkIsa0RBQU9BLENBQUNvQixTQUFTO1lBQzFCO2dCQUNFLE9BQU9wQixrREFBT0EsQ0FBQ3FCLFFBQVE7UUFDM0I7SUFDRjtJQUVRQyxjQUNOQyxRQUFpQyxFQUNqQ0MsV0FBZ0IsRUFDaEJDLE9BQW9CLEVBQ1A7UUFDYixNQUFNQyxZQUFZLElBQUksQ0FBQ1osWUFBWSxDQUFDVSxZQUFZVCxLQUFLO1FBQ3JELE1BQU1ZLGNBQWNKLFFBQVEsQ0FBQ0EsU0FBU0ssTUFBTSxHQUFHLEVBQUU7UUFDakQsTUFBTUMsU0FDSixPQUFPRixZQUFZRyxPQUFPLEtBQUssV0FDM0JILFlBQVlHLE9BQU8sR0FDbkJILFlBQVlHLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLENBQUNDLElBQU1BLEVBQUVDLElBQUksRUFBRUMsSUFBSSxDQUFDO1FBRWxELE9BQVFSO1lBQ04sS0FBSztnQkFDSCxPQUFPO29CQUNMWCxPQUFPUyxZQUFZVCxLQUFLO29CQUN4QmM7b0JBQ0FNLE1BQU1WLFFBQVFXLE1BQU0sQ0FBQ0QsSUFBSTtnQkFDM0I7WUFDRjtnQkFDRSxPQUFPO29CQUNMWjtvQkFDQWpCLFFBQVFtQixRQUFRVyxNQUFNLENBQUM5QixNQUFNO29CQUM3QlMsT0FBT1MsWUFBWVQsS0FBSztvQkFDeEJz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Z0JBQzlCLE1BQU1xQixVQUFVLElBQUksQ0FBQ2hCLGNBQWMsQ0FBQzBDO2dCQUNwQ2hFLFFBQVFpRSxRQUFRLENBQUMzQixTQUFTSDtZQUM1QjtRQUNGLEVBQUUsT0FBT2lELEdBQUc7WUFDVm5ELFFBQVFDLEdBQUcsQ0FBQywyQ0FBMkNrRDtZQUN2RHBGLFFBQVFxRixPQUFPLEdBQUdEO1FBQ3BCO0lBQ0Y7SUFFQSxNQUFNRSxRQUFRO1FBQ1osT0FBTztZQUNMQyxNQUFNO1lBQ05DLE9BQU87UUFDVDtJQUNGO0lBRUEsTUFBTUMsU0FBOEI7UUFDbEMsT0FBTyxFQUFFO0lBQ1g7O2FBMU9RQyxvQkFBb0I7O0FBMk85QiIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2NsaWVudC9wbGF0Zm9ybXMvZ2xtLnRzP2VjY2YiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcbmltcG9ydCB7XHJcbiAgQXBpUGF0aCxcclxuICBDSEFUR0xNX0JBU0VfVVJMLFxyXG4gIENoYXRHTE0sXHJcbiAgUkVRVUVTVF9USU1FT1VUX01TLFxyXG59IGZyb20gXCJAL2FwcC9jb25zdGFudFwiO1xyXG5pbXBvcnQge1xyXG4gIHVzZUFjY2Vzc1N0b3JlLFxyXG4gIHVzZUFwcENvbmZpZyxcclxuICB1c2VDaGF0U3RvcmUsXHJcbiAgQ2hhdE1lc3NhZ2VUb29sLFxyXG4gIHVzZVBsdWdpblN0b3JlLFxyXG59IGZyb20gXCJAL2FwcC9zdG9yZVwiO1xyXG5pbXBvcnQgeyBzdHJlYW0gfSBmcm9tIFwiQC9hcHAvdXRpbHMvY2hhdFwiO1xyXG5pbXBvcnQge1xyXG4gIENoYXRPcHRpb25zLFxyXG4gIGdldEhlYWRlcnMsXHJcbiAgTExNQXBpLFxyXG4gIExMTU1vZGVsLFxyXG4gIFNwZWVjaE9wdGlvbnMsXHJcbn0gZnJvbSBcIi4uL2FwaVwiO1xyXG5pbXBvcnQgeyBnZXRDbGllbnRDb25maWcgfSBmcm9tIFwiQC9hcHAvY29uZmlnL2NsaWVudFwiO1xyXG5pbXBvcnQgeyBnZXRNZXNzYWdlVGV4dENvbnRlbnQsIGlzVmlzaW9uTW9kZWwgfSBmcm9tIFwiQC9hcHAvdXRpbHNcIjtcclxuaW1wb3J0IHsgUmVxdWVzdFBheWxvYWQgfSBmcm9tIFwiLi9vcGVuYWlcIjtcclxuaW1wb3J0IHsgZmV0Y2ggfSBmcm9tIFwiQC9hcHAvdXRpbHMvc3RyZWFtXCI7XHJcbmltcG9ydCB7IHByZVByb2Nlc3NJbWFnZUNvbnRlbnQgfSBmcm9tIFwiQC9hcHAvdXRpbHMvY2hhdFwiO1xyXG5cclxuaW50ZXJmYWNlIEJhc2VQYXlsb2FkIHtcclxuICBtb2RlbDogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgQ2hhdFBheWxvYWQgZXh0ZW5kcyBCYXNlUGF5bG9hZCB7XHJcbiAgbWVzc2FnZXM6IENoYXRPcHRpb25zW1wibWVzc2FnZXNcIl07XHJcbiAgc3RyZWFtPzogYm9vbGVhbjtcclxuICB0ZW1wZXJhdHVyZT86IG51bWJlcjtcclxuICBwcmVzZW5jZV9wZW5hbHR5PzogbnVtYmVyO1xyXG4gIGZyZXF1ZW5jeV9wZW5hbHR5PzogbnVtYmVyO1xyXG4gIHRvcF9wPzogbnVtYmVyO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgSW1hZ2VHZW5lcmF0aW9uUGF5bG9hZCBleHRlbmRzIEJhc2VQYXlsb2FkIHtcclxuICBwcm9tcHQ6IHN0cmluZztcclxuICBzaXplPzogc3RyaW5nO1xyXG4gIHVzZXJfaWQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBWaWRlb0dlbmVyYXRpb25QYXlsb2FkIGV4dGVuZHMgQmFzZVBheWxvYWQge1xyXG4gIHByb21wdDogc3RyaW5nO1xyXG4gIGR1cmF0aW9uPzogbnVtYmVyO1xyXG4gIHJlc29sdXRpb24/OiBzdHJpbmc7XHJcbiAgdXNlcl9pZD86IHN0cmluZztcclxufVxyXG5cclxudHlwZSBNb2RlbFR5cGUgPSBcImNoYXRcIiB8IFwiaW1hZ2VcIiB8IFwidmlkZW9cIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBDaGF0R0xNQXBpIGltcGxlbWVudHMgTExNQXBpIHtcclxuICBwcml2YXRlIGRpc2FibGVMaXN0TW9kZWxzID0gdHJ1ZTtcclxuXHJcbiAgcHJpdmF0ZSBnZXRNb2RlbFR5cGUobW9kZWw6IHN0cmluZyk6IE1vZGVsVHlwZSB7XHJcbiAgICBpZiAobW9kZWwuc3RhcnRzV2l0aChcImNvZ3ZpZXctXCIpKSByZXR1cm4gXCJpbWFnZVwiO1xyXG4gICAgaWYgKG1vZGVsLnN0YXJ0c1dpdGgoXCJjb2d2aWRlby1cIikpIHJldHVybiBcInZpZGVvXCI7XHJcbiAgICByZXR1cm4gXCJjaGF0XCI7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE1vZGVsUGF0aCh0eXBlOiBNb2RlbFR5cGUpOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgXCJpbWFnZVwiOlxyXG4gICAgICAgIHJldHVybiBDaGF0R0xNLkltYWdlUGF0aDtcclxuICAgICAgY2FzZSBcInZpZGVvXCI6XHJcbiAgICAgICAgcmV0dXJuIENoYXRHTE0uVmlkZW9QYXRoO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBDaGF0R0xNLkNoYXRQYXRoO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVQYXlsb2FkKFxyXG4gICAgbWVzc2FnZXM6IENoYXRPcHRpb25zW1wibWVzc2FnZXNcIl0sXHJcbiAgICBtb2RlbENvbmZpZzogYW55LFxyXG4gICAgb3B0aW9uczogQ2hhdE9wdGlvbnMsXHJcbiAgKTogQmFzZVBheWxvYWQge1xyXG4gICAgY29uc3QgbW9kZWxUeXBlID0gdGhpcy5nZXRNb2RlbFR5cGUobW9kZWxDb25maWcubW9kZWwpO1xyXG4gICAgY29uc3QgbGFzdE1lc3NhZ2UgPSBtZXNzYWdlc1ttZXNzYWdlcy5sZW5ndGggLSAxXTtcclxuICAgIGNvbnN0IHByb21wdCA9XHJcbiAgICAgIHR5cGVvZiBsYXN0TWVzc2FnZS5jb250ZW50ID09PSBcInN0cmluZ1wiXHJcbiAgICAgICAgPyBsYXN0TWVzc2FnZS5jb250ZW50XHJcbiAgICAgICAgOiBsYXN0TWVzc2FnZS5jb250ZW50Lm1hcCgoYykgPT4gYy50ZXh0KS5qb2luKFwiXFxuXCIpO1xyXG5cclxuICAgIHN3aXRjaCAobW9kZWxUeXBlKSB7XHJcbiAgICAgIGNhc2UgXCJpbWFnZVwiOlxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBtb2RlbDogbW9kZWxDb25maWcubW9kZWwsXHJcbiAgICAgICAgICBwcm9tcHQsXHJcbiAgICAgICAgICBzaXplOiBvcHRpb25zLmNvbmZpZy5zaXplLFxyXG4gICAgICAgIH0gYXMgSW1hZ2VHZW5lcmF0aW9uUGF5bG9hZDtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgbWVzc2FnZXMsXHJcbiAgICAgICAgICBzdHJlYW06IG9wdGlvbnMuY29uZmlnLnN0cmVhbSxcclxuICAgICAgICAgIG1vZGVsOiBtb2RlbENvbmZpZy5tb2RlbCxcclxuICAgICAgICAgIHRlbXBlcmF0dXJlOiBtb2RlbENvbmZpZy50ZW1wZXJhdHVyZSxcclxuICAgICAgICAgIHByZXNlbmNlX3BlbmFsdHk6IG1vZGVsQ29uZmlnLnByZXNlbmNlX3BlbmFsdHksXHJcbiAgICAgICAgICBmcmVxdWVuY3lfcGVuYWx0eTogbW9kZWxDb25maWcuZnJlcXVlbmN5X3BlbmFsdHksXHJcbiAgICAgICAgICB0b3BfcDogbW9kZWxDb25maWcudG9wX3AsXHJcbiAgICAgICAgfSBhcyBDaGF0UGF5bG9hZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFyc2VSZXNwb25zZShtb2RlbFR5cGU6IE1vZGVsVHlwZSwganNvbjogYW55KTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAobW9kZWxUeXBlKSB7XHJcbiAgICAgIGNhc2UgXCJpbWFnZVwiOiB7XHJcbiAgICAgICAgY29uc3QgaW1hZ2VVcmwgPSBqc29uLmRhdGE/LlswXT8udXJsO1xyXG4gICAgICAgIHJldHVybiBpbWFnZVVybCA/IGAhW0dlbmVyYXRlZCBJbWFnZV0oJHtpbWFnZVVybH0pYCA6IFwiXCI7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSBcInZpZGVvXCI6IHtcclxuICAgICAgICBjb25zdCB2aWRlb1VybCA9IGpzb24uZGF0YT8uWzBdPy51cmw7XHJcbiAgICAgICAgcmV0dXJuIHZpZGVvVXJsID8gYDx2aWRlbyBjb250cm9scyBzcmM9XCIke3ZpZGVvVXJsfVwiPjwvdmlkZW8+YCA6IFwiXCI7XHJcbiAgICAgIH1cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gdGhpcy5leHRyYWN0TWVzc2FnZShqc29uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGFjY2Vzc1N0b3JlID0gdXNlQWNjZXNzU3RvcmUuZ2V0U3RhdGUoKTtcclxuICAgIGxldCBiYXNlVXJsID0gXCJcIjtcclxuXHJcbiAgICBpZiAoYWNjZXNzU3RvcmUudXNlQ3VzdG9tQ29uZmlnKSB7XHJcbiAgICAgIGJhc2VVcmwgPSBhY2Nlc3NTdG9yZS5jaGF0Z2xtVXJsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChiYXNlVXJsLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBjb25zdCBpc0FwcCA9ICEhZ2V0Q2xpZW50Q29uZmlnKCk/LmlzQXBwO1xyXG4gICAgICBjb25zdCBhcGlQYXRoID0gQXBpUGF0aC5DaGF0R0xNO1xyXG4gICAgICBiYXNlVXJsID0gaXNBcHAgPyBDSEFUR0xNX0JBU0VfVVJMIDogYXBpUGF0aDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYmFzZVVybC5lbmRzV2l0aChcIi9cIikpIHtcclxuICAgICAgYmFzZVVybCA9IGJhc2VVcmwuc2xpY2UoMCwgYmFzZVVybC5sZW5ndGggLSAxKTtcclxuICAgIH1cclxuICAgIGlmICghYmFzZVVybC5zdGFydHNXaXRoKFwiaHR0cFwiKSAmJiAhYmFzZVVybC5zdGFydHNXaXRoKEFwaVBhdGguQ2hhdEdMTSkpIHtcclxuICAgICAgYmFzZVVybCA9IFwiaHR0cHM6Ly9cIiArIGJhc2VVcmw7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJbUHJveHkgRW5kcG9pbnRdIFwiLCBiYXNlVXJsLCBwYXRoKTtcclxuICAgIHJldHVybiBbYmFzZVVybCwgcGF0aF0uam9pbihcIi9cIik7XHJcbiAgfVxyXG5cclxuICBleHRyYWN0TWVzc2FnZShyZXM6IGFueSkge1xyXG4gICAgcmV0dXJuIHJlcy5jaG9pY2VzPy5hdCgwKT8ubWVzc2FnZT8uY29udGVudCA/PyBcIlwiO1xyXG4gIH1cclxuXHJcbiAgc3BlZWNoKG9wdGlvbnM6IFNwZWVjaE9wdGlvbnMpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGNoYXQob3B0aW9uczogQ2hhdE9wdGlvbnMpIHtcclxuICAgIGNvbnN0IHZpc2lvbk1vZGVsID0gaXNWaXNpb25Nb2RlbChvcHRpb25zLmNvbmZpZy5tb2RlbCk7XHJcbiAgICBjb25zdCBtZXNzYWdlczogQ2hhdE9wdGlvbnNbXCJtZXNzYWdlc1wiXSA9IFtdO1xyXG4gICAgZm9yIChjb25zdCB2IG9mIG9wdGlvbnMubWVzc2FnZXMpIHtcclxuICAgICAgY29uc3QgY29udGVudCA9IHZpc2lvbk1vZGVsXHJcbiAgICAgICAgPyBhd2FpdCBwcmVQcm9jZXNzSW1hZ2VDb250ZW50KHYuY29udGVudClcclxuICAgICAgICA6IGdldE1lc3NhZ2VUZXh0Q29udGVudCh2KTtcclxuICAgICAgbWVzc2FnZXMucHVzaCh7IHJvbGU6IHYucm9sZSwgY29udGVudCB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtb2RlbENvbmZpZyA9IHtcclxuICAgICAgLi4udXNlQXBwQ29uZmlnLmdldFN0YXRlKCkubW9kZWxDb25maWcsXHJcbiAgICAgIC4uLnVzZUNoYXRTdG9yZS5nZXRTdGF0ZSgpLmN1cnJlbnRTZXNzaW9uKCkubWFzay5tb2RlbENvbmZpZyxcclxuICAgICAgLi4ue1xyXG4gICAgICAgIG1vZGVsOiBvcHRpb25zLmNvbmZpZy5tb2RlbCxcclxuICAgICAgICBwcm92aWRlck5hbWU6IG9wdGlvbnMuY29uZmlnLnByb3ZpZGVyTmFtZSxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICBjb25zdCBtb2RlbFR5cGUgPSB0aGlzLmdldE1vZGVsVHlwZShtb2RlbENvbmZpZy5tb2RlbCk7XHJcbiAgICBjb25zdCByZXF1ZXN0UGF5bG9hZCA9IHRoaXMuY3JlYXRlUGF5bG9hZChtZXNzYWdlcywgbW9kZWxDb25maWcsIG9wdGlvbnMpO1xyXG4gICAgY29uc3QgcGF0aCA9IHRoaXMucGF0aCh0aGlzLmdldE1vZGVsUGF0aChtb2RlbFR5cGUpKTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhgW1JlcXVlc3RdIGdsbSAke21vZGVsVHlwZX0gcGF5bG9hZDogYCwgcmVxdWVzdFBheWxvYWQpO1xyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XHJcbiAgICBvcHRpb25zLm9uQ29udHJvbGxlcj8uKGNvbnRyb2xsZXIpO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGNoYXRQYXlsb2FkID0ge1xyXG4gICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXHJcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkocmVxdWVzdFBheWxvYWQpLFxyXG4gICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWwsXHJcbiAgICAgICAgaGVhZGVyczogZ2V0SGVhZGVycygpLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgY29uc3QgcmVxdWVzdFRpbWVvdXRJZCA9IHNldFRpbWVvdXQoXHJcbiAgICAgICAgKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLFxyXG4gICAgICAgIFJFUVVFU1RfVElNRU9VVF9NUyxcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGlmIChtb2RlbFR5cGUgPT09IFwiaW1hZ2VcIiB8fCBtb2RlbFR5cGUgPT09IFwidmlkZW9cIikge1xyXG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKHBhdGgsIGNoYXRQYXlsb2FkKTtcclxuICAgICAgICBjbGVhclRpbWVvdXQocmVxdWVzdFRpbWVvdXRJZCk7XHJcblxyXG4gICAgICAgIGNvbnN0IHJlc0pzb24gPSBhd2FpdCByZXMuanNvbigpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGBbUmVzcG9uc2VdIGdsbSAke21vZGVsVHlwZX06YCwgcmVzSnNvbik7XHJcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMucGFyc2VSZXNwb25zZShtb2RlbFR5cGUsIHJlc0pzb24pO1xyXG4gICAgICAgIG9wdGlvbnMub25GaW5pc2gobWVzc2FnZSwgcmVzKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHNob3VsZFN0cmVhbSA9ICEhb3B0aW9ucy5jb25maWcuc3RyZWFtO1xyXG4gICAgICBpZiAoc2hvdWxkU3RyZWFtKSB7XHJcbiAgICAgICAgY29uc3QgW3Rvb2xzLCBmdW5jc10gPSB1c2VQbHVnaW5TdG9yZVxyXG4gICAgICAgICAgLmdldFN0YXRlKClcclxuICAgICAgICAgIC5nZXRBc1Rvb2xzKFxyXG4gICAgICAgICAgICB1c2VDaGF0U3RvcmUuZ2V0U3RhdGUoKS5jdXJyZW50U2Vzc2lvbigpLm1hc2s/LnBsdWdpbiB8fCBbXSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIHN0cmVhbShcclxuICAgICAgICAgIHBhdGgsXHJcbiAgICAgICAgICByZXF1ZXN0UGF5bG9hZCxcclxuICAgICAgICAgIGdldEhlYWRlcnMoKSxcclxuICAgICAgICAgIHRvb2xzIGFzIGFueSxcclxuICAgICAgICAgIGZ1bmNzLFxyXG4gICAgICAgICAgY29udHJvbGxlcixcclxuICAgICAgICAgIC8vIHBhcnNlU1NFXHJcbiAgICAgICAgICAodGV4dDogc3RyaW5nLCBydW5Ub29sczogQ2hhdE1lc3NhZ2VUb29sW10pID0+IHtcclxuICAgICAgICAgICAgY29uc3QganNvbiA9IEpTT04ucGFyc2UodGV4dCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGNob2ljZXMgPSBqc29uLmNob2ljZXMgYXMgQXJyYXk8e1xyXG4gICAgICAgICAgICAgIGRlbHRhOiB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgICB0b29sX2NhbGxzOiBDaGF0TWVzc2FnZVRvb2xbXTtcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9PjtcclxuICAgICAgICAgICAgY29uc3QgdG9vbF9jYWxscyA9IGNob2ljZXNbMF0/LmRlbHRhPy50b29sX2NhbGxzO1xyXG4gICAgICAgICAgICBpZiAodG9vbF9jYWxscz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdG9vbF9jYWxsc1swXT8uaW5kZXg7XHJcbiAgICAgICAgICAgICAgY29uc3QgaWQgPSB0b29sX2NhbGxzWzBdPy5pZDtcclxuICAgICAgICAgICAgICBjb25zdCBhcmdzID0gdG9vbF9jYWxsc1swXT8uZnVuY3Rpb24/LmFyZ3VtZW50cztcclxuICAgICAgICAgICAgICBpZiAoaWQpIHtcclxuICAgICAgICAgICAgICAgIHJ1blRvb2xzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICBpZCxcclxuICAgICAgICAgICAgICAgICAgdHlwZTogdG9vbF9jYWxsc1swXT8udHlwZSxcclxuICAgICAgICAgICAgICAgICAgZnVuY3Rpb246IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiB0b29sX2NhbGxzWzBdPy5mdW5jdGlvbj8ubmFtZSBhcyBzdHJpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzOiBhcmdzLFxyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHJ1blRvb2xzW2luZGV4XVtcImZ1bmN0aW9uXCJdW1wiYXJndW1lbnRzXCJdICs9IGFyZ3M7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBjaG9pY2VzWzBdPy5kZWx0YT8uY29udGVudDtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAvLyBwcm9jZXNzVG9vbE1lc3NhZ2VcclxuICAgICAgICAgIChcclxuICAgICAgICAgICAgcmVxdWVzdFBheWxvYWQ6IFJlcXVlc3RQYXlsb2FkLFxyXG4gICAgICAgICAgICB0b29sQ2FsbE1lc3NhZ2U6IGFueSxcclxuICAgICAgICAgICAgdG9vbENhbGxSZXN1bHQ6IGFueVtdLFxyXG4gICAgICAgICAgKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgcmVxdWVzdFBheWxvYWQ/Lm1lc3NhZ2VzPy5zcGxpY2UoXHJcbiAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgIHJlcXVlc3RQYXlsb2FkPy5tZXNzYWdlcz8ubGVuZ3RoLFxyXG4gICAgICAgICAgICAgIDAsXHJcbiAgICAgICAgICAgICAgdG9vbENhbGxNZXNzYWdlLFxyXG4gICAgICAgICAgICAgIC4uLnRvb2xDYWxsUmVzdWx0LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9wdGlvbnMsXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChwYXRoLCBjaGF0UGF5bG9hZCk7XHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KHJlcXVlc3RUaW1lb3V0SWQpO1xyXG5cclxuICAgICAgICBjb25zdCByZXNKc29uID0gYXdhaXQgcmVzLmpzb24oKTtcclxuICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5leHRyYWN0TWVzc2FnZShyZXNKc29uKTtcclxuICAgICAgICBvcHRpb25zLm9uRmluaXNoKG1lc3NhZ2UsIHJlcyk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJbUmVxdWVzdF0gZmFpbGVkIHRvIG1ha2UgYSBjaGF0IHJlcXVlc3RcIiwgZSk7XHJcbiAgICAgIG9wdGlvbnMub25FcnJvcj8uKGUgYXMgRXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgdXNhZ2UoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB1c2VkOiAwLFxyXG4gICAgICB0b3RhbDogMCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBhc3luYyBtb2RlbHMoKTogUHJvbWlzZTxMTE1Nb2RlbFtdPiB7XHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG59XHJcbiJdLCJuYW1lcyI6WyJBcGlQYXRoIiwiQ0hBVEdMTV9CQVNFX1VSTCIsIkNoYXRHTE0iLCJSRVFVRVNUX1RJTUVPVVRfTVMiLCJ1c2VBY2Nlc3NTdG9yZSIsInVzZUFwcENvbmZpZyIsInVzZUNoYXRTdG9yZSIsInVzZVBsdWdpblN0b3JlIiwic3RyZWFtIiwiZ2V0SGVhZGVycyIsImdldENsaWVudENvbmZpZyIsImdldE1lc3NhZ2VUZXh0Q29udGVudCIsImlzVmlzaW9uTW9kZWwiLCJmZXRjaCIsInByZVByb2Nlc3NJbWFnZUNvbnRlbnQiLCJDaGF0R0xNQXBpIiwiZ2V0TW9kZWxUeXBlIiwibW9kZWwiLCJzdGFydHNXaXRoIiwiZ2V0TW9kZWxQYXRoIiwidHlwZSIsIkltYWdlUGF0aCIsIlZpZGVvUGF0aCIsIkNoYXRQYXRoIiwiY3JlYXRlUGF5bG9hZCIsIm1lc3NhZ2VzIiwibW9kZWxDb25maWciLCJvcHRpb25zIiwibW9kZWxUeXBlIiwibGFzdE1lc3NhZ2UiLCJsZW5ndGgiLCJwcm9tcHQiLCJjb250ZW50IiwibWFwIiwiYyIsInRleHQiLCJqb2luIiwic2l6ZSIsImNvbmZpZyIsInRlbXBlcmF0dXJlIiwicHJlc2VuY2VfcGVuYWx0eSIsImZyZXF1ZW5jeV9wZW5hbHR5IiwidG9wX3AiLCJwYXJzZVJlc3BvbnNlIiwianNvbiIsImltYWdlVXJsIiwiZGF0YSIsInVybCIsInZpZGVvVXJsIiwiZXh0cmFjdE1lc3NhZ2UiLCJwYXRoIiwiYWNjZXNzU3RvcmUiLCJnZXRTdGF0ZSIsImJhc2VVcmwiLCJ1c2VDdXN0b21Db25maWciLCJjaGF0Z2xtVXJsIiwiaXNBcHAiLCJhcGlQYXRoIiwiZW5kc1dpdGgiLCJzbGljZSIsImNvbnNvbGUiLCJsb2ciLCJyZXMiLCJjaG9pY2VzIiwiYXQiLCJtZXNzYWdlIiwic3BlZWNoIiwiRXJyb3IiLCJjaGF0IiwidmlzaW9uTW9kZWwiLCJ2IiwicHVzaCIsInJvbGUiLCJjdXJyZW50U2Vzc2lvbiIsIm1hc2siLCJwcm92aWRlck5hbWUiLCJyZXF1ZXN0UGF5bG9hZCIsImNvbnRyb2xsZXIiLCJBYm9ydENvbnRyb2xsZXIiLCJvbkNvbnRyb2xsZXIiLCJjaGF0UGF5bG9hZCIsIm1ldGhvZCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5Iiwic2lnbmFsIiwiaGVhZGVycyIsInJlcXVlc3RUaW1lb3V0SWQiLCJzZXRUaW1lb3V0IiwiYWJvcnQiLCJjbGVhclRpbWVvdXQiLCJyZXNKc29uIiwib25GaW5pc2giLCJzaG91bGRTdHJlYW0iLCJ0b29scyIsImZ1bmNzIiwiZ2V0QXNUb29scyIsInBsdWdpbiIsInJ1blRvb2xzIiwicGFyc2UiLCJ0b29sX2NhbGxzIiwiZGVsdGEiLCJpbmRleCIsImlkIiwiYXJncyIsImZ1bmN0aW9uIiwiYXJndW1lbnRzIiwibmFtZSIsInRvb2xDYWxsTWVzc2FnZSIsInRvb2xDYWxsUmVzdWx0Iiwic3BsaWNlIiwiZSIsIm9uRXJyb3IiLCJ1c2FnZSIsInVzZWQiLCJ0b3RhbCIsIm1vZGVscyIsImRpc2FibGVMaXN0TW9kZWxzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/client/platforms/glm.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/client/platforms/google.ts":
|
|
|
/*!****************************************!*\
|
|
|
!*** ./app/client/platforms/google.ts ***!
|
|
|
\****************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GeminiProApi: () => (/* binding */ GeminiProApi)\n/* harmony export */ });\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../api */ \"(ssr)/./app/client/api.ts\");\n/* harmony import */ var _app_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/store */ \"(ssr)/./app/store/index.ts\");\n/* harmony import */ var _app_utils_chat__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/app/utils/chat */ \"(ssr)/./app/utils/chat.ts\");\n/* harmony import */ var _app_config_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/app/config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/app/utils */ \"(ssr)/./app/utils.ts\");\n/* harmony import */ var nanoid__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! nanoid */ \"(ssr)/./node_modules/nanoid/index.js\");\n/* harmony import */ var _app_utils_stream__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/app/utils/stream */ \"(ssr)/./app/utils/stream.ts\");\n\n\n\n\n\n\n\n\n\n\nclass GeminiProApi {\n path(path, shouldStream = false) {\n const accessStore = _app_store__WEBPACK_IMPORTED_MODULE_2__.useAccessStore.getState();\n let baseUrl = \"\";\n if (accessStore.useCustomConfig) {\n baseUrl = accessStore.googleUrl;\n }\n const isApp = !!(0,_app_config_client__WEBPACK_IMPORTED_MODULE_4__.getClientConfig)()?.isApp;\n if (baseUrl.length === 0) {\n baseUrl = isApp ? _app_constant__WEBPACK_IMPORTED_MODULE_0__.GEMINI_BASE_URL : _app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Google;\n }\n if (baseUrl.endsWith(\"/\")) {\n baseUrl = baseUrl.slice(0, baseUrl.length - 1);\n }\n if (!baseUrl.startsWith(\"http\") && !baseUrl.startsWith(_app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Google)) {\n baseUrl = \"https://\" + baseUrl;\n }\n console.log(\"[Proxy Endpoint] \", baseUrl, path);\n let chatPath = [\n baseUrl,\n path\n ].join(\"/\");\n if (shouldStream) {\n chatPath += chatPath.includes(\"?\") ? \"&alt=sse\" : \"?alt=sse\";\n }\n return chatPath;\n }\n extractMessage(res) {\n console.log(\"[Response] gemini-pro response: \", res);\n const getTextFromParts = (parts)=>{\n if (!Array.isArray(parts)) return \"\";\n return parts.map((part)=>part?.text || \"\").filter((text)=>text.trim() !== \"\").join(\"\\n\\n\");\n };\n let content = \"\";\n if (Array.isArray(res)) {\n res.map((item)=>{\n content += getTextFromParts(item?.candidates?.at(0)?.content?.parts);\n });\n }\n return getTextFromParts(res?.candidates?.at(0)?.content?.parts) || content || //getTextFromParts(res?.at(0)?.candidates?.at(0)?.content?.parts) ||\n res?.error?.message || \"\";\n }\n speech(options) {\n throw new Error(\"Method not implemented.\");\n }\n async chat(options) {\n const apiClient = this;\n let multimodal = false;\n // try get base64image from local cache image_url\n const _messages = [];\n for (const v of options.messages){\n const content = await (0,_app_utils_chat__WEBPACK_IMPORTED_MODULE_3__.preProcessImageContent)(v.content);\n _messages.push({\n role: v.role,\n content\n });\n }\n const messages = _messages.map((v)=>{\n let parts = [\n {\n text: (0,_app_utils__WEBPACK_IMPORTED_MODULE_5__.getMessageTextContent)(v)\n }\n ];\n if ((0,_app_utils__WEBPACK_IMPORTED_MODULE_5__.isVisionModel)(options.config.model)) {\n const images = (0,_app_utils__WEBPACK_IMPORTED_MODULE_5__.getMessageImages)(v);\n if (images.length > 0) {\n multimodal = true;\n parts = parts.concat(images.map((image)=>{\n const imageType = image.split(\";\")[0].split(\":\")[1];\n const imageData = image.split(\",\")[1];\n return {\n inline_data: {\n mime_type: imageType,\n data: imageData\n }\n };\n }));\n }\n }\n return {\n role: v.role.replace(\"assistant\", \"model\").replace(\"system\", \"user\"),\n parts: parts\n };\n });\n // google requires that role in neighboring messages must not be the same\n for(let i = 0; i < messages.length - 1;){\n // Check if current and next item both have the role \"model\"\n if (messages[i].role === messages[i + 1].role) {\n // Concatenate the 'parts' of the current and next item\n messages[i].parts = messages[i].parts.concat(messages[i + 1].parts);\n // Remove the next item\n messages.splice(i + 1, 1);\n } else {\n // Move to the next item\n i++;\n }\n }\n // if (visionModel && messages.length > 1) {\n // options.onError?.(new Error(\"Multiturn chat is not enabled for models/gemini-pro-vision\"));\n // }\n const accessStore = _app_store__WEBPACK_IMPORTED_MODULE_2__.useAccessStore.getState();\n const modelConfig = {\n ..._app_store__WEBPACK_IMPORTED_MODULE_2__.useAppConfig.getState().modelConfig,\n ..._app_store__WEBPACK_IMPORTED_MODULE_2__.useChatStore.getState().currentSession().mask.modelConfig,\n ...{\n model: options.config.model\n }\n };\n const requestPayload = {\n contents: messages,\n generationConfig: {\n // stopSequences: [\n // \"Title\"\n // ],\n temperature: modelConfig.temperature,\n maxOutputTokens: modelConfig.max_tokens,\n topP: modelConfig.top_p\n },\n safetySettings: [\n {\n category: \"HARM_CATEGORY_HARASSMENT\",\n threshold: accessStore.googleSafetySettings\n },\n {\n category: \"HARM_CATEGORY_HATE_SPEECH\",\n threshold: accessStore.googleSafetySettings\n },\n {\n category: \"HARM_CATEGORY_SEXUALLY_EXPLICIT\",\n threshold: accessStore.googleSafetySettings\n },\n {\n category: \"HARM_CATEGORY_DANGEROUS_CONTENT\",\n threshold: accessStore.googleSafetySettings\n }\n ]\n };\n let shouldStream = !!options.config.stream;\n const controller = new AbortController();\n options.onController?.(controller);\n try {\n // https://github.com/google-gemini/cookbook/blob/main/quickstarts/rest/Streaming_REST.ipynb\n const chatPath = this.path(_app_constant__WEBPACK_IMPORTED_MODULE_0__.Google.ChatPath(modelConfig.model), shouldStream);\n const chatPayload = {\n method: \"POST\",\n body: JSON.stringify(requestPayload),\n signal: controller.signal,\n headers: (0,_api__WEBPACK_IMPORTED_MODULE_1__.getHeaders)()\n };\n const isThinking = options.config.model.includes(\"-thinking\");\n // make a fetch request\n const requestTimeoutId = setTimeout(()=>controller.abort(), isThinking ? _app_constant__WEBPACK_IMPORTED_MODULE_0__.REQUEST_TIMEOUT_MS_FOR_THINKING : _app_constant__WEBPACK_IMPORTED_MODULE_0__.REQUEST_TIMEOUT_MS);\n if (shouldStream) {\n const [tools, funcs] = _app_store__WEBPACK_IMPORTED_MODULE_2__.usePluginStore.getState().getAsTools(_app_store__WEBPACK_IMPORTED_MODULE_2__.useChatStore.getState().currentSession().mask?.plugin || []);\n return (0,_app_utils_chat__WEBPACK_IMPORTED_MODULE_3__.stream)(chatPath, requestPayload, (0,_api__WEBPACK_IMPORTED_MODULE_1__.getHeaders)(), // @ts-ignore\n tools.length > 0 ? [\n {\n functionDeclarations: tools.map((tool)=>tool.function)\n }\n ] : [], funcs, controller, // parseSSE\n (text, runTools)=>{\n // console.log(\"parseSSE\", text, runTools);\n const chunkJson = JSON.parse(text);\n const functionCall = chunkJson?.candidates?.at(0)?.content.parts.at(0)?.functionCall;\n if (functionCall) {\n const { name, args } = functionCall;\n runTools.push({\n id: (0,nanoid__WEBPACK_IMPORTED_MODULE_7__.nanoid)(),\n type: \"function\",\n function: {\n name,\n arguments: JSON.stringify(args)\n }\n });\n }\n return chunkJson?.candidates?.at(0)?.content.parts?.map((part)=>part.text).join(\"\\n\\n\");\n }, // processToolMessage, include tool_calls message and tool call results\n (requestPayload, toolCallMessage, toolCallResult)=>{\n // @ts-ignore\n requestPayload?.contents?.splice(// @ts-ignore\n requestPayload?.contents?.length, 0, {\n role: \"model\",\n parts: toolCallMessage.tool_calls.map((tool)=>({\n functionCall: {\n name: tool?.function?.name,\n args: JSON.parse(tool?.function?.arguments)\n }\n }))\n }, // @ts-ignore\n ...toolCallResult.map((result)=>({\n role: \"function\",\n parts: [\n {\n functionResponse: {\n name: result.name,\n response: {\n name: result.name,\n content: result.content\n }\n }\n }\n ]\n })));\n }, options);\n } else {\n const res = await (0,_app_utils_stream__WEBPACK_IMPORTED_MODULE_6__.fetch)(chatPath, chatPayload);\n clearTimeout(requestTimeoutId);\n const resJson = await res.json();\n if (resJson?.promptFeedback?.blockReason) {\n // being blocked\n options.onError?.(new Error(\"Message is being blocked for reason: \" + resJson.promptFeedback.blockReason));\n }\n const message = apiClient.extractMessage(resJson);\n options.onFinish(message, res);\n }\n } catch (e) {\n console.log(\"[Request] failed to make a chat request\", e);\n options.onError?.(e);\n }\n }\n usage() {\n throw new Error(\"Method not implemented.\");\n }\n async models() {\n return [];\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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UWlGLE9BQU8sR0FBR0U7UUFDcEI7SUFDRjtJQUNBQyxRQUEyQjtRQUN6QixNQUFNLElBQUluRixNQUFNO0lBQ2xCO0lBQ0EsTUFBTW9GLFNBQThCO1FBQ2xDLE9BQU8sRUFBRTtJQUNYO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9jbGllbnQvcGxhdGZvcm1zL2dvb2dsZS50cz85NzY3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQXBpUGF0aCxcclxuICBHb29nbGUsXHJcbiAgUkVRVUVTVF9USU1FT1VUX01TLFxyXG4gIFJFUVVFU1RfVElNRU9VVF9NU19GT1JfVEhJTktJTkcsXHJcbn0gZnJvbSBcIkAvYXBwL2NvbnN0YW50XCI7XHJcbmltcG9ydCB7XHJcbiAgQ2hhdE9wdGlvbnMsXHJcbiAgZ2V0SGVhZGVycyxcclxuICBMTE1BcGksXHJcbiAgTExNTW9kZWwsXHJcbiAgTExNVXNhZ2UsXHJcbiAgU3BlZWNoT3B0aW9ucyxcclxufSBmcm9tIFwiLi4vYXBpXCI7XHJcbmltcG9ydCB7XHJcbiAgdXNlQWNjZXNzU3RvcmUsXHJcbiAgdXNlQXBwQ29uZmlnLFxyXG4gIHVzZUNoYXRTdG9yZSxcclxuICB1c2VQbHVnaW5TdG9yZSxcclxuICBDaGF0TWVzc2FnZVRvb2wsXHJcbn0gZnJvbSBcIkAvYXBwL3N0b3JlXCI7XHJcbmltcG9ydCB7IHN0cmVhbSB9IGZyb20gXCJAL2FwcC91dGlscy9jaGF0XCI7XHJcbmltcG9ydCB7IGdldENsaWVudENvbmZpZyB9IGZyb20gXCJAL2FwcC9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB7IEdFTUlOSV9CQVNFX1VSTCB9IGZyb20gXCJAL2FwcC9jb25zdGFudFwiO1xyXG5cclxuaW1wb3J0IHtcclxuICBnZXRNZXNzYWdlVGV4dENvbnRlbnQsXHJcbiAgZ2V0TWVzc2FnZUltYWdlcyxcclxuICBpc1Zpc2lvbk1vZGVsLFxyXG59IGZyb20gXCJAL2FwcC91dGlsc1wiO1xyXG5pbXBvcnQgeyBwcmVQcm9jZXNzSW1hZ2VDb250ZW50IH0gZnJvbSBcIkAvYXBwL3V0aWxzL2NoYXRcIjtcclxuaW1wb3J0IHsgbmFub2lkIH0gZnJvbSBcIm5hbm9pZFwiO1xyXG5pbXBvcnQgeyBSZXF1ZXN0UGF5bG9hZCB9IGZyb20gXCIuL29wZW5haVwiO1xyXG5pbXBvcnQgeyBmZXRjaCB9IGZyb20gXCJAL2FwcC91dGlscy9zdHJlYW1cIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBHZW1pbmlQcm9BcGkgaW1wbGVtZW50cyBMTE1BcGkge1xyXG4gIHBhdGgocGF0aDogc3RyaW5nLCBzaG91bGRTdHJlYW0gPSBmYWxzZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBhY2Nlc3NTdG9yZSA9IHVzZUFjY2Vzc1N0b3JlLmdldFN0YXRlKCk7XHJcblxyXG4gICAgbGV0IGJhc2VVcmwgPSBcIlwiO1xyXG4gICAgaWYgKGFjY2Vzc1N0b3JlLnVzZUN1c3RvbUNvbmZpZykge1xyXG4gICAgICBiYXNlVXJsID0gYWNjZXNzU3RvcmUuZ29vZ2xlVXJsO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGlzQXBwID0gISFnZXRDbGllbnRDb25maWcoKT8uaXNBcHA7XHJcbiAgICBpZiAoYmFzZVVybC5sZW5ndGggPT09IDApIHtcclxuICAgICAgYmFzZVVybCA9IGlzQXBwID8gR0VNSU5JX0JBU0VfVVJMIDogQXBpUGF0aC5Hb29nbGU7XHJcbiAgICB9XHJcbiAgICBpZiAoYmFzZVVybC5lbmRzV2l0aChcIi9cIikpIHtcclxuICAgICAgYmFzZVVybCA9IGJhc2VVcmwuc2xpY2UoMCwgYmFzZVVybC5sZW5ndGggLSAxKTtcclxuICAgIH1cclxuICAgIGlmICghYmFzZVVybC5zdGFydHNXaXRoKFwiaHR0cFwiKSAmJiAhYmFzZVVybC5zdGFydHNXaXRoKEFwaVBhdGguR29vZ2xlKSkge1xyXG4gICAgICBiYXNlVXJsID0gXCJodHRwczovL1wiICsgYmFzZVVybDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIltQcm94eSBFbmRwb2ludF0gXCIsIGJhc2VVcmwsIHBhdGgpO1xyXG5cclxuICAgIGxldCBjaGF0UGF0aCA9IFtiYXNlVXJsLCBwYXRoXS5qb2luKFwiL1wiKTtcclxuICAgIGlmIChzaG91bGRTdHJlYW0pIHtcclxuICAgICAgY2hhdFBhdGggKz0gY2hhdFBhdGguaW5jbHVkZXMoXCI/XCIpID8gXCImYWx0PXNzZVwiIDogXCI/YWx0PXNzZVwiO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjaGF0UGF0aDtcclxuICB9XHJcbiAgZXh0cmFjdE1lc3NhZ2UocmVzOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiW1Jlc3BvbnNlXSBnZW1pbmktcHJvIHJlc3BvbnNlOiBcIiwgcmVzKTtcclxuXHJcbiAgICBjb25zdCBnZXRUZXh0RnJvbVBhcnRzID0gKHBhcnRzOiBhbnlbXSkgPT4ge1xyXG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkocGFydHMpKSByZXR1cm4gXCJcIjtcclxuXHJcbiAgICAgIHJldHVybiBwYXJ0c1xyXG4gICAgICAgIC5tYXAoKHBhcnQpID0+IHBhcnQ/LnRleHQgfHwgXCJcIilcclxuICAgICAgICAuZmlsdGVyKCh0ZXh0KSA9PiB0ZXh0LnRyaW0oKSAhPT0gXCJcIilcclxuICAgICAgICAuam9pbihcIlxcblxcblwiKTtcclxuICAgIH07XHJcblxyXG4gICAgbGV0IGNvbnRlbnQgPSBcIlwiO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocmVzKSkge1xyXG4gICAgICByZXMubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgY29udGVudCArPSBnZXRUZXh0RnJvbVBhcnRzKGl0ZW0/LmNhbmRpZGF0ZXM/LmF0KDApPy5jb250ZW50Py5wYXJ0cyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgIGdldFRleHRGcm9tUGFydHMocmVzPy5jYW5kaWRhdGVzPy5hdCgwKT8uY29udGVudD8ucGFydHMpIHx8XHJcbiAgICAgIGNvbnRlbnQgfHwgLy9nZXRUZXh0RnJvbVBhcnRzKHJlcz8uYXQoMCk/LmNhbmRpZGF0ZXM/LmF0KDApPy5jb250ZW50Py5wYXJ0cykgfHxcclxuICAgICAgcmVzPy5lcnJvcj8ubWVzc2FnZSB8fFxyXG4gICAgICBcIlwiXHJcbiAgICApO1xyXG4gIH1cclxuICBzcGVlY2gob3B0aW9uczogU3BlZWNoT3B0aW9ucyk6IFByb21pc2U8QXJyYXlCdWZmZXI+IHtcclxuICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgY2hhdChvcHRpb25zOiBDaGF0T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgYXBpQ2xpZW50ID0gdGhpcztcclxuICAgIGxldCBtdWx0aW1vZGFsID0gZmFsc2U7XHJcblxyXG4gICAgLy8gdHJ5IGdldCBiYXNlNjRpbWFnZSBmcm9tIGxvY2FsIGNhY2hlIGltYWdlX3VybFxyXG4gICAgY29uc3QgX21lc3NhZ2VzOiBDaGF0T3B0aW9uc1tcIm1lc3NhZ2VzXCJdID0gW107XHJcbiAgICBmb3IgKGNvbnN0IHYgb2Ygb3B0aW9ucy5tZXNzYWdlcykge1xyXG4gICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcHJlUHJvY2Vzc0ltYWdlQ29udGVudCh2LmNvbnRlbnQpO1xyXG4gICAgICBfbWVzc2FnZXMucHVzaCh7IHJvbGU6IHYucm9sZSwgY29udGVudCB9KTtcclxuICAgIH1cclxuICAgIGNvbnN0IG1lc3NhZ2VzID0gX21lc3NhZ2VzLm1hcCgodikgPT4ge1xyXG4gICAgICBsZXQgcGFydHM6IGFueVtdID0gW3sgdGV4dDogZ2V0TWVzc2FnZVRleHRDb250ZW50KHYpIH1dO1xyXG4gICAgICBpZiAoaXNWaXNpb25Nb2RlbChvcHRpb25zLmNvbmZpZy5tb2RlbCkpIHtcclxuICAgICAgICBjb25zdCBpbWFnZXMgPSBnZXRNZXNzYWdlSW1hZ2VzKHYpO1xyXG4gICAgICAgIGlmIChpbWFnZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgbXVsdGltb2RhbCA9IHRydWU7XHJcbiAgICAgICAgICBwYXJ0cyA9IHBhcnRzLmNvbmNhdChcclxuICAgICAgICAgICAgaW1hZ2VzLm1hcCgoaW1hZ2UpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBpbWFnZVR5cGUgPSBpbWFnZS5zcGxpdChcIjtcIilbMF0uc3BsaXQoXCI6XCIpWzFdO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGltYWdlRGF0YSA9IGltYWdlLnNwbGl0KFwiLFwiKVsxXTtcclxuICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgaW5saW5lX2RhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgbWltZV90eXBlOiBpbWFnZVR5cGUsXHJcbiAgICAgICAgICAgICAgICAgIGRhdGE6IGltYWdlRGF0YSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHJvbGU6IHYucm9sZS5yZXBsYWNlKFwiYXNzaXN0YW50XCIsIFwibW9kZWxcIikucmVwbGFjZShcInN5c3RlbVwiLCBcInVzZXJcIiksXHJcbiAgICAgICAgcGFydHM6IHBhcnRzLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gZ29vZ2xlIHJlcXVpcmVzIHRoYXQgcm9sZSBpbiBuZWlnaGJvcmluZyBtZXNzYWdlcyBtdXN0IG5vdCBiZSB0aGUgc2FtZVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZXNzYWdlcy5sZW5ndGggLSAxOyApIHtcclxuICAgICAgLy8gQ2hlY2sgaWYgY3VycmVudCBhbmQgbmV4dCBpdGVtIGJvdGggaGF2ZSB0aGUgcm9sZSBcIm1vZGVsXCJcclxuICAgICAgaWYgKG1lc3NhZ2VzW2ldLnJvbGUgPT09IG1lc3NhZ2VzW2kgKyAxXS5yb2xlKSB7XHJcbiAgICAgICAgLy8gQ29uY2F0ZW5hdGUgdGhlICdwYXJ0cycgb2YgdGhlIGN1cnJlbnQgYW5kIG5leHQgaXRlbVxyXG4gICAgICAgIG1lc3NhZ2VzW2ldLnBhcnRzID0gbWVzc2FnZXNbaV0ucGFydHMuY29uY2F0KG1lc3NhZ2VzW2kgKyAxXS5wYXJ0cyk7XHJcbiAgICAgICAgLy8gUmVtb3ZlIHRoZSBuZXh0IGl0ZW1cclxuICAgICAgICBtZXNzYWdlcy5zcGxpY2UoaSArIDEsIDEpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIE1vdmUgdG8gdGhlIG5leHQgaXRlbVxyXG4gICAgICAgIGkrKztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gaWYgKHZpc2lvbk1vZGVsICYmIG1lc3NhZ2VzLmxlbmd0aCA+IDEpIHtcclxuICAgIC8vICAgb3B0aW9ucy5vbkVycm9yPy4obmV3IEVycm9yKFwiTXVsdGl0dXJuIGNoYXQgaXMgbm90IGVuYWJsZWQgZm9yIG1vZGVscy9nZW1pbmktcHJvLXZpc2lvblwiKSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgY29uc3QgYWNjZXNzU3RvcmUgPSB1c2VBY2Nlc3NTdG9yZS5nZXRTdGF0ZSgpO1xyXG5cclxuICAgIGNvbnN0IG1vZGVsQ29uZmlnID0ge1xyXG4gICAgICAuLi51c2VBcHBDb25maWcuZ2V0U3RhdGUoKS5tb2RlbENvbmZpZyxcclxuICAgICAgLi4udXNlQ2hhdFN0b3JlLmdldFN0YXRlKCkuY3VycmVudFNlc3Npb24oKS5tYXNrLm1vZGVsQ29uZmlnLFxyXG4gICAgICAuLi57XHJcbiAgICAgICAgbW9kZWw6IG9wdGlvbnMuY29uZmlnLm1vZGVsLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlcXVlc3RQYXlsb2FkID0ge1xyXG4gICAgICBjb250ZW50czogbWVzc2FnZXMsXHJcbiAgICAgIGdlbmVyYXRpb25Db25maWc6IHtcclxuICAgICAgICAvLyBzdG9wU2VxdWVuY2VzOiBbXHJcbiAgICAgICAgLy8gICBcIlRpdGxlXCJcclxuICAgICAgICAvLyBdLFxyXG4gICAgICAgIHRlbXBlcmF0dXJlOiBtb2RlbENvbmZpZy50ZW1wZXJhdHVyZSxcclxuICAgICAgICBtYXhPdXRwdXRUb2tlbnM6IG1vZGVsQ29uZmlnLm1heF90b2tlbnMsXHJcbiAgICAgICAgdG9wUDogbW9kZWxDb25maWcudG9wX3AsXHJcbiAgICAgICAgLy8gXCJ0b3BLXCI6IG1vZGVsQ29uZmlnLnRvcF9rLFxyXG4gICAgICB9LFxyXG4gICAgICBzYWZldHlTZXR0aW5nczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIGNhdGVnb3J5OiBcIkhBUk1fQ0FURUdPUllfSEFSQVNTTUVOVFwiLFxyXG4gICAgICAgICAgdGhyZXNob2xkOiBhY2Nlc3NTdG9yZS5nb29nbGVTYWZldHlTZXR0aW5ncyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGNhdGVnb3J5OiBcIkhBUk1fQ0FURUdPUllfSEFURV9TUEVFQ0hcIixcclxuICAgICAgICAgIHRocmVzaG9sZDogYWNjZXNzU3RvcmUuZ29vZ2xlU2FmZXR5U2V0dGluZ3MsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBjYXRlZ29yeTogXCJIQVJNX0NBVEVHT1JZX1NFWFVBTExZX0VYUExJQ0lUXCIsXHJcbiAgICAgICAgICB0aHJlc2hvbGQ6IGFjY2Vzc1N0b3JlLmdvb2dsZVNhZmV0eVNldHRpbmdzLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgY2F0ZWdvcnk6IFwiSEFSTV9DQVRFR09SWV9EQU5HRVJPVVNfQ09OVEVOVFwiLFxyXG4gICAgICAgICAgdGhyZXNob2xkOiBhY2Nlc3NTdG9yZS5nb29nbGVTYWZldHlTZXR0aW5ncyxcclxuICAgICAgICB9LFxyXG4gICAgICBdLFxyXG4gICAgfTtcclxuXHJcbiAgICBsZXQgc2hvdWxkU3RyZWFtID0gISFvcHRpb25zLmNvbmZpZy5zdHJlYW07XHJcbiAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xyXG4gICAgb3B0aW9ucy5vbkNvbnRyb2xsZXI/Lihjb250cm9sbGVyKTtcclxuICAgIHRyeSB7XHJcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUtZ2VtaW5pL2Nvb2tib29rL2Jsb2IvbWFpbi9xdWlja3N0YXJ0cy9yZXN0L1N0cmVhbWluZ19SRVNULmlweW5iXHJcbiAgICAgIGNvbnN0IGNoYXRQYXRoID0gdGhpcy5wYXRoKFxyXG4gICAgICAgIEdvb2dsZS5DaGF0UGF0aChtb2RlbENvbmZpZy5tb2RlbCksXHJcbiAgICAgICAgc2hvdWxkU3RyZWFtLFxyXG4gICAgICApO1xyXG5cclxuICAgICAgY29uc3QgY2hhdFBheWxvYWQgPSB7XHJcbiAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcclxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShyZXF1ZXN0UGF5bG9hZCksXHJcbiAgICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCxcclxuICAgICAgICBoZWFkZXJzOiBnZXRIZWFkZXJzKCksXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBjb25zdCBpc1RoaW5raW5nID0gb3B0aW9ucy5jb25maWcubW9kZWwuaW5jbHVkZXMoXCItdGhpbmtpbmdcIik7XHJcbiAgICAgIC8vIG1ha2UgYSBmZXRjaCByZXF1ZXN0XHJcbiAgICAgIGNvbnN0IHJlcXVlc3RUaW1lb3V0SWQgPSBzZXRUaW1lb3V0KFxyXG4gICAgICAgICgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKSxcclxuICAgICAgICBpc1RoaW5raW5nID8gUkVRVUVTVF9USU1FT1VUX01TX0ZPUl9USElOS0lORyA6IFJFUVVFU1RfVElNRU9VVF9NUyxcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGlmIChzaG91bGRTdHJlYW0pIHtcclxuICAgICAgICBjb25zdCBbdG9vbHMsIGZ1bmNzXSA9IHVzZVBsdWdpblN0b3JlXHJcbiAgICAgICAgICAuZ2V0U3RhdGUoKVxyXG4gICAgICAgICAgLmdldEFzVG9vbHMoXHJcbiAgICAgICAgICAgIHVzZUNoYXRTdG9yZS5nZXRTdGF0ZSgpLmN1cnJlbnRTZXNzaW9uKCkubWFzaz8ucGx1Z2luIHx8IFtdLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gc3RyZWFtKFxyXG4gICAgICAgICAgY2hhdFBhdGgsXHJcbiAgICAgICAgICByZXF1ZXN0UGF5bG9hZCxcclxuICAgICAgICAgIGdldEhlYWRlcnMoKSxcclxuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgIHRvb2xzLmxlbmd0aCA+IDBcclxuICAgICAgICAgICAgPyAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgW3sgZnVuY3Rpb25EZWNsYXJhdGlvbnM6IHRvb2xzLm1hcCgodG9vbCkgPT4gdG9vbC5mdW5jdGlvbikgfV1cclxuICAgICAgICAgICAgOiBbXSxcclxuICAgICAgICAgIGZ1bmNzLFxyXG4gICAgICAgICAgY29udHJvbGxlcixcclxuICAgICAgICAgIC8vIHBhcnNlU1NFXHJcbiAgICAgICAgICAodGV4dDogc3RyaW5nLCBydW5Ub29sczogQ2hhdE1lc3NhZ2VUb29sW10pID0+IHtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJwYXJzZVNTRVwiLCB0ZXh0LCBydW5Ub29scyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGNodW5rSnNvbiA9IEpTT04ucGFyc2UodGV4dCk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBmdW5jdGlvbkNhbGwgPSBjaHVua0pzb24/LmNhbmRpZGF0ZXNcclxuICAgICAgICAgICAgICA/LmF0KDApXHJcbiAgICAgICAgICAgICAgPy5jb250ZW50LnBhcnRzLmF0KDApPy5mdW5jdGlvbkNhbGw7XHJcbiAgICAgICAgICAgIGlmIChmdW5jdGlvbkNhbGwpIHtcclxuICAgICAgICAgICAgICBjb25zdCB7IG5hbWUsIGFyZ3MgfSA9IGZ1bmN0aW9uQ2FsbDtcclxuICAgICAgICAgICAgICBydW5Ub29scy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGlkOiBuYW5vaWQoKSxcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZnVuY3Rpb25cIixcclxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgIG5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIGFyZ3VtZW50czogSlNPTi5zdHJpbmdpZnkoYXJncyksIC8vIHV0aWxzLmNoYXQgY2FsbCBmdW5jdGlvbiwgdXNpbmcgSlNPTi5wYXJzZVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gY2h1bmtKc29uPy5jYW5kaWRhdGVzXHJcbiAgICAgICAgICAgICAgPy5hdCgwKVxyXG4gICAgICAgICAgICAgID8uY29udGVudC5wYXJ0cz8ubWFwKChwYXJ0OiB7IHRleHQ6IHN0cmluZyB9KSA9PiBwYXJ0LnRleHQpXHJcbiAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cXG5cIik7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLy8gcHJvY2Vzc1Rvb2xNZXNzYWdlLCBpbmNsdWRlIHRvb2xfY2FsbHMgbWVzc2FnZSBhbmQgdG9vbCBjYWxsIHJlc3VsdHNcclxuICAgICAgICAgIChcclxuICAgICAgICAgICAgcmVxdWVzdFBheWxvYWQ6IFJlcXVlc3RQYXlsb2FkLFxyXG4gICAgICAgICAgICB0b29sQ2FsbE1lc3NhZ2U6IGFueSxcclxuICAgICAgICAgICAgdG9vbENhbGxSZXN1bHQ6IGFueVtdLFxyXG4gICAgICAgICAgKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgcmVxdWVzdFBheWxvYWQ/LmNvbnRlbnRzPy5zcGxpY2UoXHJcbiAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgIHJlcXVlc3RQYXlsb2FkPy5jb250ZW50cz8ubGVuZ3RoLFxyXG4gICAgICAgICAgICAgIDAsXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcm9sZTogXCJtb2RlbFwiLFxyXG4gICAgICAgICAgICAgICAgcGFydHM6IHRvb2xDYWxsTWVzc2FnZS50b29sX2NhbGxzLm1hcChcclxuICAgICAgICAgICAgICAgICAgKHRvb2w6IENoYXRNZXNzYWdlVG9vbCkgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbkNhbGw6IHtcclxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHRvb2w/LmZ1bmN0aW9uPy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgYXJnczogSlNPTi5wYXJzZSh0b29sPy5mdW5jdGlvbj8uYXJndW1lbnRzIGFzIHN0cmluZyksXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgIC4uLnRvb2xDYWxsUmVzdWx0Lm1hcCgocmVzdWx0KSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgcm9sZTogXCJmdW5jdGlvblwiLFxyXG4gICAgICAgICAgICAgICAgcGFydHM6IFtcclxuICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uUmVzcG9uc2U6IHtcclxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHJlc3VsdC5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2U6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogcmVzdWx0Lm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHJlc3VsdC5jb250ZW50LCAvLyBUT0RPIGp1c3QgdGV4dCBjb250ZW50Li4uXHJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgIH0pKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvcHRpb25zLFxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goY2hhdFBhdGgsIGNoYXRQYXlsb2FkKTtcclxuICAgICAgICBjbGVhclRpbWVvdXQocmVxdWVzdFRpbWVvdXRJZCk7XHJcbiAgICAgICAgY29uc3QgcmVzSnNvbiA9IGF3YWl0IHJlcy5qc29uKCk7XHJcbiAgICAgICAgaWYgKHJlc0pzb24/LnByb21wdEZlZWRiYWNrPy5ibG9ja1JlYXNvbikge1xyXG4gICAgICAgICAgLy8gYmVpbmcgYmxvY2tlZFxyXG4gICAgICAgICAgb3B0aW9ucy5vbkVycm9yPy4oXHJcbiAgICAgICAgICAgIG5ldyBFcnJvcihcclxuICAgICAgICAgICAgICBcIk1lc3NhZ2UgaXMgYmVpbmcgYmxvY2tlZCBmb3IgcmVhc29uOiBcIiArXHJcbiAgICAgICAgICAgICAgICByZXNKc29uLnByb21wdEZlZWRiYWNrLmJsb2NrUmVhc29uLFxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGFwaUNsaWVudC5leHRyYWN0TWVzc2FnZShyZXNKc29uKTtcclxuICAgICAgICBvcHRpb25zLm9uRmluaXNoKG1lc3NhZ2UsIHJlcyk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJbUmVxdWVzdF0gZmFpbGVkIHRvIG1ha2UgYSBjaGF0IHJlcXVlc3RcIiwgZSk7XHJcbiAgICAgIG9wdGlvbnMub25FcnJvcj8uKGUgYXMgRXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuICB1c2FnZSgpOiBQcm9taXNlPExMTVVzYWdlPiB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcclxuICB9XHJcbiAgYXN5bmMgbW9kZWxzKCk6IFByb21pc2U8TExNTW9kZWxbXT4ge1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxufVxyXG4iXSwibmFtZXMiOlsiQXBpUGF0aCIsIkdvb2dsZSIsIlJFUVVFU1RfVElNRU9VVF9NUyIsIlJFUVVFU1RfVElNRU9VVF9NU19GT1JfVEhJTktJTkciLCJnZXRIZWFkZXJzIiwidXNlQWNjZXNzU3RvcmUiLCJ1c2VBcHBDb25maWciLCJ1c2VDaGF0U3RvcmUiLCJ1c2VQbHVnaW5TdG9yZSIsInN0cmVhbSIsImdldENsaWVudENvbmZpZyIsIkdFTUlOSV9CQVNFX1VSTCIsImdldE1lc3NhZ2VUZXh0Q29udGVudCIsImdldE1lc3NhZ2VJbWFnZXMiLCJpc1Zpc2lvbk1vZGVsIiwicHJlUHJvY2Vzc0ltYWdlQ29udGVudCIsIm5hbm9pZCIsImZldGNoIiwiR2VtaW5pUHJvQXBpIiwicGF0aCIsInNob3VsZFN0cmVhbSIsImFjY2Vzc1N0b3JlIiwiZ2V0U3RhdGUiLCJiYXNlVXJsIiwidXNlQ3VzdG9tQ29uZmlnIiwiZ29vZ2xlVXJsIiwiaXNBcHAiLCJsZW5ndGgiLCJlbmRzV2l0aCIsInNsaWNlIiwic3RhcnRzV2l0aCIsImNvbnNvbGUiLCJsb2ciLCJjaGF0UGF0aCIsImpvaW4iLCJpbmNsdWRlcyIsImV4dHJhY3RNZXNzYWdlIiwicmVzIiwiZ2V0VGV4dEZyb21QYXJ0cyIsInBhcnRzIiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwicGFydCIsInRleHQiLCJmaWx0ZXIiLCJ0cmltIiwiY29udGVudCIsIml0ZW0iLCJjYW5kaWRhdGVzIiwiYXQiLCJlcnJvciIsIm1lc3NhZ2UiLCJzcGVlY2giLCJvcHRpb25zIiwiRXJyb3IiLCJjaGF0IiwiYXBpQ2xpZW50IiwibXVsdGltb2RhbCIsIl9tZXNzYWdlcyIsInYiLCJtZXNzYWdlcyIsInB1c2giLCJyb2xlIiwiY29uZmlnIiwibW9kZWwiLCJpbWFnZXMiLCJjb25jYXQiLCJpbWFnZSIsImltYWdlVHlwZSIsInNwbGl0IiwiaW1hZ2VEYXRhIiwiaW5saW5lX2RhdGEiLCJtaW1lX3R5cGUiLCJkYXRhIiwicmVwbGFjZSIsImkiLCJzcGxpY2UiLCJtb2RlbENvbmZpZyIsImN1cnJlbnRTZXNzaW9uIiwibWFzayIsInJlcXVlc3RQYXlsb2FkIiwiY29udGVudHMiLCJnZW5lcmF0aW9uQ29uZmlnIiwidGVtcGVyYXR1cmUiLCJtYXhPdXRwdXRUb2tlbnMiLCJtYXhfdG9rZW5zIiwidG9wUCIsInRvcF9wIiwic2FmZXR5U2V0dGluZ3MiLCJjYXRlZ29yeSIsInRocmVzaG9sZCIsImdvb2dsZVNhZmV0eVNldHRpbmdzIiwiY29udHJvbGxlciIsIkFib3J0Q29udHJvbGxlciIsIm9uQ29udHJvbGxlciIsIkNoYXRQYXRoIiwiY2hhdFBheWxvYWQiLCJtZXRob2QiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsInNpZ25hbCIsImhlYWRlcnMiLCJpc1RoaW5raW5nIiwicmVxdWVzdFRpbWVvdXRJZCIsInNldFRpbWVvdXQiLCJhYm9ydCIsInRvb2xzIiwiZnVuY3MiLCJnZXRBc1Rvb2xzIiwicGx1Z2luIiwiZnVuY3Rpb25EZWNsYXJhdGlvbnMiLCJ0b29sIiwiZnVuY3Rpb24iLCJydW5Ub29scyIsImNodW5rSnNvbiIsInBhcnNlIiwiZnVuY3Rpb25DYWxsIiwibmFtZSIsImFyZ3MiLCJpZCIsInR5cGUiLCJhcmd1bWVudHMiLCJ0b29sQ2FsbE1lc3NhZ2UiLCJ0b29sQ2FsbFJlc3VsdCIsInRvb2xfY2FsbHMiLCJyZXN1bHQiLCJmdW5jdGlvblJlc3BvbnNlIiwicmVzcG9uc2UiLCJjbGVhclRpbWVvdXQiLCJyZXNKc29uIiwianNvbiIsInByb21wdEZlZWRiYWNrIiwiYmxvY2tSZWFzb24iLCJvbkVycm9yIiwib25GaW5pc2giLCJlIiwidXNhZ2UiLCJtb2RlbHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/client/platforms/google.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/client/platforms/iflytek.ts":
|
|
|
/*!*****************************************!*\
|
|
|
!*** ./app/client/platforms/iflytek.ts ***!
|
|
|
\*****************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SparkApi: () => (/* binding */ SparkApi)\n/* harmony export */ });\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _app_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/app/store */ \"(ssr)/./app/store/index.ts\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../api */ \"(ssr)/./app/client/api.ts\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../locales */ \"(ssr)/./app/locales/index.ts\");\n/* harmony import */ var _fortaine_fetch_event_source__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @fortaine/fetch-event-source */ \"(ssr)/./node_modules/@fortaine/fetch-event-source/lib/esm/fetch.js\");\n/* harmony import */ var _app_utils_format__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/app/utils/format */ \"(ssr)/./app/utils/format.ts\");\n/* harmony import */ var _app_config_client__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/app/config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/app/utils */ \"(ssr)/./app/utils.ts\");\n/* harmony import */ var _app_utils_stream__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/app/utils/stream */ \"(ssr)/./app/utils/stream.ts\");\n/* __next_internal_client_entry_do_not_use__ SparkApi auto */ \n\n\n\n\n\n\n\n\nclass SparkApi {\n path(path) {\n const accessStore = _app_store__WEBPACK_IMPORTED_MODULE_1__.useAccessStore.getState();\n let baseUrl = \"\";\n if (accessStore.useCustomConfig) {\n baseUrl = accessStore.iflytekUrl;\n }\n if (baseUrl.length === 0) {\n const isApp = !!(0,_app_config_client__WEBPACK_IMPORTED_MODULE_5__.getClientConfig)()?.isApp;\n const apiPath = _app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Iflytek;\n baseUrl = isApp ? _app_constant__WEBPACK_IMPORTED_MODULE_0__.IFLYTEK_BASE_URL : apiPath;\n }\n if (baseUrl.endsWith(\"/\")) {\n baseUrl = baseUrl.slice(0, baseUrl.length - 1);\n }\n if (!baseUrl.startsWith(\"http\") && !baseUrl.startsWith(_app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Iflytek)) {\n baseUrl = \"https://\" + baseUrl;\n }\n console.log(\"[Proxy Endpoint] \", baseUrl, path);\n return [\n baseUrl,\n path\n ].join(\"/\");\n }\n extractMessage(res) {\n return res.choices?.at(0)?.message?.content ?? \"\";\n }\n speech(options) {\n throw new Error(\"Method not implemented.\");\n }\n async chat(options) {\n const messages = [];\n for (const v of options.messages){\n const content = (0,_app_utils__WEBPACK_IMPORTED_MODULE_6__.getMessageTextContent)(v);\n messages.push({\n role: v.role,\n content\n });\n }\n const modelConfig = {\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useAppConfig.getState().modelConfig,\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useChatStore.getState().currentSession().mask.modelConfig,\n ...{\n model: options.config.model,\n providerName: options.config.providerName\n }\n };\n const requestPayload = {\n messages,\n stream: options.config.stream,\n model: modelConfig.model,\n temperature: modelConfig.temperature,\n presence_penalty: modelConfig.presence_penalty,\n frequency_penalty: modelConfig.frequency_penalty,\n top_p: modelConfig.top_p\n };\n console.log(\"[Request] Spark payload: \", requestPayload);\n const shouldStream = !!options.config.stream;\n const controller = new AbortController();\n options.onController?.(controller);\n try {\n const chatPath = this.path(_app_constant__WEBPACK_IMPORTED_MODULE_0__.Iflytek.ChatPath);\n const chatPayload = {\n method: \"POST\",\n body: JSON.stringify(requestPayload),\n signal: controller.signal,\n headers: (0,_api__WEBPACK_IMPORTED_MODULE_2__.getHeaders)()\n };\n // Make a fetch request\n const requestTimeoutId = setTimeout(()=>controller.abort(), _app_constant__WEBPACK_IMPORTED_MODULE_0__.REQUEST_TIMEOUT_MS);\n if (shouldStream) {\n let responseText = \"\";\n let remainText = \"\";\n let finished = false;\n let responseRes;\n // Animate response text to make it look smooth\n function animateResponseText() {\n if (finished || controller.signal.aborted) {\n responseText += remainText;\n console.log(\"[Response Animation] finished\");\n return;\n }\n if (remainText.length > 0) {\n const fetchCount = Math.max(1, Math.round(remainText.length / 60));\n const fetchText = remainText.slice(0, fetchCount);\n responseText += fetchText;\n remainText = remainText.slice(fetchCount);\n options.onUpdate?.(responseText, fetchText);\n }\n requestAnimationFrame(animateResponseText);\n }\n // Start animation\n animateResponseText();\n const finish = ()=>{\n if (!finished) {\n finished = true;\n options.onFinish(responseText + remainText, responseRes);\n }\n };\n controller.signal.onabort = finish;\n (0,_fortaine_fetch_event_source__WEBPACK_IMPORTED_MODULE_8__.fetchEventSource)(chatPath, {\n fetch: _app_utils_stream__WEBPACK_IMPORTED_MODULE_7__.fetch,\n ...chatPayload,\n async onopen (res) {\n clearTimeout(requestTimeoutId);\n const contentType = res.headers.get(\"content-type\");\n console.log(\"[Spark] request response content type: \", contentType);\n responseRes = res;\n if (contentType?.startsWith(\"text/plain\")) {\n responseText = await res.clone().text();\n return finish();\n }\n // Handle different error scenarios\n if (!res.ok || !res.headers.get(\"content-type\")?.startsWith(_fortaine_fetch_event_source__WEBPACK_IMPORTED_MODULE_8__.EventStreamContentType) || res.status !== 200) {\n let extraInfo = await res.clone().text();\n try {\n const resJson = await res.clone().json();\n extraInfo = (0,_app_utils_format__WEBPACK_IMPORTED_MODULE_4__.prettyObject)(resJson);\n } catch {}\n if (res.status === 401) {\n extraInfo = _locales__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Error.Unauthorized;\n }\n options.onError?.(new Error(`Request failed with status ${res.status}: ${extraInfo}`));\n return finish();\n }\n },\n onmessage (msg) {\n if (msg.data === \"[DONE]\" || finished) {\n return finish();\n }\n const text = msg.data;\n try {\n const json = JSON.parse(text);\n const choices = json.choices;\n const delta = choices[0]?.delta?.content;\n if (delta) {\n remainText += delta;\n }\n } catch (e) {\n console.error(\"[Request] parse error\", text);\n options.onError?.(new Error(`Failed to parse response: ${text}`));\n }\n },\n onclose () {\n finish();\n },\n onerror (e) {\n options.onError?.(e);\n throw e;\n },\n openWhenHidden: true\n });\n } else {\n const res = await (0,_app_utils_stream__WEBPACK_IMPORTED_MODULE_7__.fetch)(chatPath, chatPayload);\n clearTimeout(requestTimeoutId);\n if (!res.ok) {\n const errorText = await res.text();\n options.onError?.(new Error(`Request failed with status ${res.status}: ${errorText}`));\n return;\n }\n const resJson = await res.json();\n const message = this.extractMessage(resJson);\n options.onFinish(message, res);\n }\n } catch (e) {\n console.log(\"[Request] failed to make a chat request\", e);\n options.onError?.(e);\n }\n }\n async usage() {\n return {\n used: 0,\n total: 0\n };\n }\n async models() {\n return [];\n }\n constructor(){\n this.disableListModels = true;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDLHlCQUF5QmQ7NEJBQ3ZDeEQsUUFBUStELE9BQU8sR0FBRyxJQUFJOUQsTUFBTSxDQUFDLDBCQUEwQixFQUFFdUQsS0FBSyxDQUFDO3dCQUNqRTtvQkFDRjtvQkFDQWU7d0JBQ0V2QjtvQkFDRjtvQkFDQXdCLFNBQVFILENBQUM7d0JBQ1ByRSxRQUFRK0QsT0FBTyxHQUFHTTt3QkFDbEIsTUFBTUE7b0JBQ1I7b0JBQ0FJLGdCQUFnQjtnQkFDbEI7WUFDRixPQUFPO2dCQUNMLE1BQU0vRSxNQUFNLE1BQU1sQix3REFBS0EsQ0FBQytDLFVBQVVFO2dCQUNsQzJCLGFBQWFwQjtnQkFFYixJQUFJLENBQUN0QyxJQUFJK0QsRUFBRSxFQUFFO29CQUNYLE1BQU1pQixZQUFZLE1BQU1oRixJQUFJOEQsSUFBSTtvQkFDaEN4RCxRQUFRK0QsT0FBTyxHQUNiLElBQUk5RCxNQUFNLENBQUMsMkJBQTJCLEVBQUVQLElBQUlnRSxNQUFNLENBQUMsRUFBRSxFQUFFZ0IsVUFBVSxDQUFDO29CQUVwRTtnQkFDRjtnQkFFQSxNQUFNZCxVQUFVLE1BQU1sRSxJQUFJbUUsSUFBSTtnQkFDOUIsTUFBTWhFLFVBQVUsSUFBSSxDQUFDSixjQUFjLENBQUNtRTtnQkFDcEM1RCxRQUFRaUQsUUFBUSxDQUFDcEQsU0FBU0g7WUFDNUI7UUFDRixFQUFFLE9BQU8yRSxHQUFHO1lBQ1YvRSxRQUFRQyxHQUFHLENBQUMsMkNBQTJDOEU7WUFDdkRyRSxRQUFRK0QsT0FBTyxHQUFHTTtRQUNwQjtJQUNGO0lBRUEsTUFBTU0sUUFBUTtRQUNaLE9BQU87WUFDTEMsTUFBTTtZQUNOQyxPQUFPO1FBQ1Q7SUFDRjtJQUVBLE1BQU1DLFNBQThCO1FBQ2xDLE9BQU8sRUFBRTtJQUNYOzthQTlOUUMsb0JBQW9COztBQStOOUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9jbGllbnQvcGxhdGZvcm1zL2lmbHl0ZWsudHM/ODEwMyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcclxuaW1wb3J0IHtcclxuICBBcGlQYXRoLFxyXG4gIElGTFlURUtfQkFTRV9VUkwsXHJcbiAgSWZseXRlayxcclxuICBSRVFVRVNUX1RJTUVPVVRfTVMsXHJcbn0gZnJvbSBcIkAvYXBwL2NvbnN0YW50XCI7XHJcbmltcG9ydCB7IHVzZUFjY2Vzc1N0b3JlLCB1c2VBcHBDb25maWcsIHVzZUNoYXRTdG9yZSB9IGZyb20gXCJAL2FwcC9zdG9yZVwiO1xyXG5cclxuaW1wb3J0IHtcclxuICBDaGF0T3B0aW9ucyxcclxuICBnZXRIZWFkZXJzLFxyXG4gIExMTUFwaSxcclxuICBMTE1Nb2RlbCxcclxuICBTcGVlY2hPcHRpb25zLFxyXG59IGZyb20gXCIuLi9hcGlcIjtcclxuaW1wb3J0IExvY2FsZSBmcm9tIFwiLi4vLi4vbG9jYWxlc1wiO1xyXG5pbXBvcnQge1xyXG4gIEV2ZW50U3RyZWFtQ29udGVudFR5cGUsXHJcbiAgZmV0Y2hFdmVudFNvdXJjZSxcclxufSBmcm9tIFwiQGZvcnRhaW5lL2ZldGNoLWV2ZW50LXNvdXJjZVwiO1xyXG5pbXBvcnQgeyBwcmV0dHlPYmplY3QgfSBmcm9tIFwiQC9hcHAvdXRpbHMvZm9ybWF0XCI7XHJcbmltcG9ydCB7IGdldENsaWVudENvbmZpZyB9IGZyb20gXCJAL2FwcC9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB7IGdldE1lc3NhZ2VUZXh0Q29udGVudCB9IGZyb20gXCJAL2FwcC91dGlsc1wiO1xyXG5pbXBvcnQgeyBmZXRjaCB9IGZyb20gXCJAL2FwcC91dGlscy9zdHJlYW1cIjtcclxuXHJcbmltcG9ydCB7IFJlcXVlc3RQYXlsb2FkIH0gZnJvbSBcIi4vb3BlbmFpXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgU3BhcmtBcGkgaW1wbGVtZW50cyBMTE1BcGkge1xyXG4gIHByaXZhdGUgZGlzYWJsZUxpc3RNb2RlbHMgPSB0cnVlO1xyXG5cclxuICBwYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBhY2Nlc3NTdG9yZSA9IHVzZUFjY2Vzc1N0b3JlLmdldFN0YXRlKCk7XHJcblxyXG4gICAgbGV0IGJhc2VVcmwgPSBcIlwiO1xyXG5cclxuICAgIGlmIChhY2Nlc3NTdG9yZS51c2VDdXN0b21Db25maWcpIHtcclxuICAgICAgYmFzZVVybCA9IGFjY2Vzc1N0b3JlLmlmbHl0ZWtVcmw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGJhc2VVcmwubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGNvbnN0IGlzQXBwID0gISFnZXRDbGllbnRDb25maWcoKT8uaXNBcHA7XHJcbiAgICAgIGNvbnN0IGFwaVBhdGggPSBBcGlQYXRoLklmbHl0ZWs7XHJcbiAgICAgIGJhc2VVcmwgPSBpc0FwcCA/IElGTFlURUtfQkFTRV9VUkwgOiBhcGlQYXRoO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChiYXNlVXJsLmVuZHNXaXRoKFwiL1wiKSkge1xyXG4gICAgICBiYXNlVXJsID0gYmFzZVVybC5zbGljZSgwLCBiYXNlVXJsLmxlbmd0aCAtIDEpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFiYXNlVXJsLnN0YXJ0c1dpdGgoXCJodHRwXCIpICYmICFiYXNlVXJsLnN0YXJ0c1dpdGgoQXBpUGF0aC5JZmx5dGVrKSkge1xyXG4gICAgICBiYXNlVXJsID0gXCJodHRwczovL1wiICsgYmFzZVVybDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIltQcm94eSBFbmRwb2ludF0gXCIsIGJhc2VVcmwsIHBhdGgpO1xyXG5cclxuICAgIHJldHVybiBbYmFzZVVybCwgcGF0aF0uam9pbihcIi9cIik7XHJcbiAgfVxyXG5cclxuICBleHRyYWN0TWVzc2FnZShyZXM6IGFueSkge1xyXG4gICAgcmV0dXJuIHJlcy5jaG9pY2VzPy5hdCgwKT8ubWVzc2FnZT8uY29udGVudCA/PyBcIlwiO1xyXG4gIH1cclxuXHJcbiAgc3BlZWNoKG9wdGlvbnM6IFNwZWVjaE9wdGlvbnMpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGNoYXQob3B0aW9uczogQ2hhdE9wdGlvbnMpIHtcclxuICAgIGNvbnN0IG1lc3NhZ2VzOiBDaGF0T3B0aW9uc1tcIm1lc3NhZ2VzXCJdID0gW107XHJcbiAgICBmb3IgKGNvbnN0IHYgb2Ygb3B0aW9ucy5tZXNzYWdlcykge1xyXG4gICAgICBjb25zdCBjb250ZW50ID0gZ2V0TWVzc2FnZVRleHRDb250ZW50KHYpO1xyXG4gICAgICBtZXNzYWdlcy5wdXNoKHsgcm9sZTogdi5yb2xlLCBjb250ZW50IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1vZGVsQ29uZmlnID0ge1xyXG4gICAgICAuLi51c2VBcHBDb25maWcuZ2V0U3RhdGUoKS5tb2RlbENvbmZpZyxcclxuICAgICAgLi4udXNlQ2hhdFN0b3JlLmdldFN0YXRlKCkuY3VycmVudFNlc3Npb24oKS5tYXNrLm1vZGVsQ29uZmlnLFxyXG4gICAgICAuLi57XHJcbiAgICAgICAgbW9kZWw6IG9wdGlvbnMuY29uZmlnLm1vZGVsLFxyXG4gICAgICAgIHByb3ZpZGVyTmFtZTogb3B0aW9ucy5jb25maWcucHJvdmlkZXJOYW1lLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCByZXF1ZXN0UGF5bG9hZDogUmVxdWVzdFBheWxvYWQgPSB7XHJcbiAgICAgIG1lc3NhZ2VzLFxyXG4gICAgICBzdHJlYW06IG9wdGlvbnMuY29uZmlnLnN0cmVhbSxcclxuICAgICAgbW9kZWw6IG1vZGVsQ29uZmlnLm1vZGVsLFxyXG4gICAgICB0ZW1wZXJhdHVyZTogbW9kZWxDb25maWcudGVtcGVyYXR1cmUsXHJcbiAgICAgIHByZXNlbmNlX3BlbmFsdHk6IG1vZGVsQ29uZmlnLnByZXNlbmNlX3BlbmFsdHksXHJcbiAgICAgIGZyZXF1ZW5jeV9wZW5hbHR5OiBtb2RlbENvbmZpZy5mcmVxdWVuY3lfcGVuYWx0eSxcclxuICAgICAgdG9wX3A6IG1vZGVsQ29uZmlnLnRvcF9wLFxyXG4gICAgICAvLyBtYXhfdG9rZW5zOiBNYXRoLm1heChtb2RlbENvbmZpZy5tYXhfdG9rZW5zLCAxMDI0KSxcclxuICAgICAgLy8gUGxlYXNlIGRvIG5vdCBhc2sgbWUgd2h5IG5vdCBzZW5kIG1heF90b2tlbnMsIG5vIHJlYXNvbiwgdGhpcyBwYXJhbSBpcyBqdXN0IHNoaXQsIEkgZG9udCB3YW50IHRvIGV4cGxhaW4gYW55bW9yZS5cclxuICAgIH07XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJbUmVxdWVzdF0gU3BhcmsgcGF5bG9hZDogXCIsIHJlcXVlc3RQYXlsb2FkKTtcclxuXHJcbiAgICBjb25zdCBzaG91bGRTdHJlYW0gPSAhIW9wdGlvbnMuY29uZmlnLnN0cmVhbTtcclxuICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XHJcbiAgICBvcHRpb25zLm9uQ29udHJvbGxlcj8uKGNvbnRyb2xsZXIpO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGNoYXRQYXRoID0gdGhpcy5wYXRoKElmbHl0ZWsuQ2hhdFBhdGgpO1xyXG4gICAgICBjb25zdCBjaGF0UGF5bG9hZCA9IHtcclxuICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxyXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHJlcXVlc3RQYXlsb2FkKSxcclxuICAgICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsLFxyXG4gICAgICAgIGhlYWRlcnM6IGdldEhlYWRlcnMoKSxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vIE1ha2UgYSBmZXRjaCByZXF1ZXN0XHJcbiAgICAgIGNvbnN0IHJlcXVlc3RUaW1lb3V0SWQgPSBzZXRUaW1lb3V0KFxyXG4gICAgICAgICgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKSxcclxuICAgICAgICBSRVFVRVNUX1RJTUVPVVRfTVMsXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBpZiAoc2hvdWxkU3RyZWFtKSB7XHJcbiAgICAgICAgbGV0IHJlc3BvbnNlVGV4dCA9IFwiXCI7XHJcbiAgICAgICAgbGV0IHJlbWFpblRleHQgPSBcIlwiO1xyXG4gICAgICAgIGxldCBmaW5pc2hlZCA9IGZhbHNlO1xyXG4gICAgICAgIGxldCByZXNwb25zZVJlczogUmVzcG9uc2U7XHJcblxyXG4gICAgICAgIC8vIEFuaW1hdGUgcmVzcG9uc2UgdGV4dCB0byBtYWtlIGl0IGxvb2sgc21vb3RoXHJcbiAgICAgICAgZnVuY3Rpb24gYW5pbWF0ZVJlc3BvbnNlVGV4dCgpIHtcclxuICAgICAgICAgIGlmIChmaW5pc2hlZCB8fCBjb250cm9sbGVyLnNpZ25hbC5hYm9ydGVkKSB7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlVGV4dCArPSByZW1haW5UZXh0O1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIltSZXNwb25zZSBBbmltYXRpb25dIGZpbmlzaGVkXCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHJlbWFpblRleHQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBmZXRjaENvdW50ID0gTWF0aC5tYXgoMSwgTWF0aC5yb3VuZChyZW1haW5UZXh0Lmxlbmd0aCAvIDYwKSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGZldGNoVGV4dCA9IHJlbWFpblRleHQuc2xpY2UoMCwgZmV0Y2hDb3VudCk7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlVGV4dCArPSBmZXRjaFRleHQ7XHJcbiAgICAgICAgICAgIHJlbWFpblRleHQgPSByZW1haW5UZXh0LnNsaWNlKGZldGNoQ291bnQpO1xyXG4gICAgICAgICAgICBvcHRpb25zLm9uVXBkYXRlPy4ocmVzcG9uc2VUZXh0LCBmZXRjaFRleHQpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShhbmltYXRlUmVzcG9uc2VUZXh0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFN0YXJ0IGFuaW1hdGlvblxyXG4gICAgICAgIGFuaW1hdGVSZXNwb25zZVRleHQoKTtcclxuXHJcbiAgICAgICAgY29uc3QgZmluaXNoID0gKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKCFmaW5pc2hlZCkge1xyXG4gICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIG9wdGlvbnMub25GaW5pc2gocmVzcG9uc2VUZXh0ICsgcmVtYWluVGV4dCwgcmVzcG9uc2VSZXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNvbnRyb2xsZXIuc2lnbmFsLm9uYWJvcnQgPSBmaW5pc2g7XHJcblxyXG4gICAgICAgIGZldGNoRXZlbnRTb3VyY2UoY2hhdFBhdGgsIHtcclxuICAgICAgICAgIGZldGNoOiBmZXRjaCBhcyBhbnksXHJcbiAgICAgICAgICAuLi5jaGF0UGF5bG9hZCxcclxuICAgICAgICAgIGFzeW5jIG9ub3BlbihyZXMpIHtcclxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHJlcXVlc3RUaW1lb3V0SWQpO1xyXG4gICAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IHJlcy5oZWFkZXJzLmdldChcImNvbnRlbnQtdHlwZVwiKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJbU3BhcmtdIHJlcXVlc3QgcmVzcG9uc2UgY29udGVudCB0eXBlOiBcIiwgY29udGVudFR5cGUpO1xyXG4gICAgICAgICAgICByZXNwb25zZVJlcyA9IHJlcztcclxuICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlPy5zdGFydHNXaXRoKFwidGV4dC9wbGFpblwiKSkge1xyXG4gICAgICAgICAgICAgIHJlc3BvbnNlVGV4dCA9IGF3YWl0IHJlcy5jbG9uZSgpLnRleHQoKTtcclxuICAgICAgICAgICAgICByZXR1cm4gZmluaXNoKCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIEhhbmRsZSBkaWZmZXJlbnQgZXJyb3Igc2NlbmFyaW9zXHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAhcmVzLm9rIHx8XHJcbiAgICAgICAgICAgICAgIXJlcy5oZWFkZXJzXHJcbiAgICAgICAgICAgICAgICAuZ2V0KFwiY29udGVudC10eXBlXCIpXHJcbiAgICAgICAgICAgICAgICA/LnN0YXJ0c1dpdGgoRXZlbnRTdHJlYW1Db250ZW50VHlwZSkgfHxcclxuICAgICAgICAgICAgICByZXMuc3RhdHVzICE9PSAyMDBcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGV4dHJhSW5mbyA9IGF3YWl0IHJlcy5jbG9uZSgpLnRleHQoKTtcclxuICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzSnNvbiA9IGF3YWl0IHJlcy5jbG9uZSgpLmpzb24oKTtcclxuICAgICAgICAgICAgICAgIGV4dHJhSW5mbyA9IHByZXR0eU9iamVjdChyZXNKc29uKTtcclxuICAgICAgICAgICAgICB9IGNhdGNoIHt9XHJcblxyXG4gICAgICAgICAgICAgIGlmIChyZXMuc3RhdHVzID09PSA0MDEpIHtcclxuICAgICAgICAgICAgICAgIGV4dHJhSW5mbyA9IExvY2FsZS5FcnJvci5VbmF1dGhvcml6ZWQ7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBvcHRpb25zLm9uRXJyb3I/LihcclxuICAgICAgICAgICAgICAgIG5ldyBFcnJvcihcclxuICAgICAgICAgICAgICAgICAgYFJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzICR7cmVzLnN0YXR1c306ICR7ZXh0cmFJbmZvfWAsXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGZpbmlzaCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb25tZXNzYWdlKG1zZykge1xyXG4gICAgICAgICAgICBpZiAobXNnLmRhdGEgPT09IFwiW0RPTkVdXCIgfHwgZmluaXNoZWQpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gZmluaXNoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgdGV4dCA9IG1zZy5kYXRhO1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKHRleHQpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGNob2ljZXMgPSBqc29uLmNob2ljZXMgYXMgQXJyYXk8e1xyXG4gICAgICAgICAgICAgICAgZGVsdGE6IHsgY29udGVudDogc3RyaW5nIH07XHJcbiAgICAgICAgICAgICAgfT47XHJcbiAgICAgICAgICAgICAgY29uc3QgZGVsdGEgPSBjaG9pY2VzWzBdPy5kZWx0YT8uY29udGVudDtcclxuXHJcbiAgICAgICAgICAgICAgaWYgKGRlbHRhKSB7XHJcbiAgICAgICAgICAgICAgICByZW1haW5UZXh0ICs9IGRlbHRhO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJbUmVxdWVzdF0gcGFyc2UgZXJyb3JcIiwgdGV4dCk7XHJcbiAgICAgICAgICAgICAgb3B0aW9ucy5vbkVycm9yPy4obmV3IEVycm9yKGBGYWlsZWQgdG8gcGFyc2UgcmVzcG9uc2U6ICR7dGV4dH1gKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvbmNsb3NlKCkge1xyXG4gICAgICAgICAgICBmaW5pc2goKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvbmVycm9yKGUpIHtcclxuICAgICAgICAgICAgb3B0aW9ucy5vbkVycm9yPy4oZSk7XHJcbiAgICAgICAgICAgIHRocm93IGU7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb3BlbldoZW5IaWRkZW46IHRydWUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goY2hhdFBhdGgsIGNoYXRQYXlsb2FkKTtcclxuICAgICAgICBjbGVhclRpbWVvdXQocmVxdWVzdFRpbWVvdXRJZCk7XHJcblxyXG4gICAgICAgIGlmICghcmVzLm9rKSB7XHJcbiAgICAgICAgICBjb25zdCBlcnJvclRleHQgPSBhd2FpdCByZXMudGV4dCgpO1xyXG4gICAgICAgICAgb3B0aW9ucy5vbkVycm9yPy4oXHJcbiAgICAgICAgICAgIG5ldyBFcnJvcihgUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgJHtyZXMuc3RhdHVzfTogJHtlcnJvclRleHR9YCksXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcmVzSnNvbiA9IGF3YWl0IHJlcy5qc29uKCk7XHJcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMuZXh0cmFjdE1lc3NhZ2UocmVzSnNvbik7XHJcbiAgICAgICAgb3B0aW9ucy5vbkZpbmlzaChtZXNzYWdlLCByZXMpO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiW1JlcXVlc3RdIGZhaWxlZCB0byBtYWtlIGEgY2hhdCByZXF1ZXN0XCIsIGUpO1xyXG4gICAgICBvcHRpb25zLm9uRXJyb3I/LihlIGFzIEVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIHVzYWdlKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdXNlZDogMCxcclxuICAgICAgdG90YWw6IDAsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbW9kZWxzKCk6IFByb21pc2U8TExNTW9kZWxbXT4ge1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxufVxyXG4iXSwibmFtZXMiOlsiQXBpUGF0aCIsIklGTFlURUtfQkFTRV9VUkwiLCJJZmx5dGVrIiwiUkVRVUVTVF9USU1FT1VUX01TIiwidXNlQWNjZXNzU3RvcmUiLCJ1c2VBcHBDb25maWciLCJ1c2VDaGF0U3RvcmUiLCJnZXRIZWFkZXJzIiwiTG9jYWxlIiwiRXZlbnRTdHJlYW1Db250ZW50VHlwZSIsImZldGNoRXZlbnRTb3VyY2UiLCJwcmV0dHlPYmplY3QiLCJnZXRDbGllbnRDb25maWciLCJnZXRNZXNzYWdlVGV4dENvbnRlbnQiLCJmZXRjaCIsIlNwYXJrQXBpIiwicGF0aCIsImFjY2Vzc1N0b3JlIiwiZ2V0U3RhdGUiLCJiYXNlVXJsIiwidXNlQ3VzdG9tQ29uZmlnIiwiaWZseXRla1VybCIsImxlbmd0aCIsImlzQXBwIiwiYXBpUGF0aCIsImVuZHNXaXRoIiwic2xpY2UiLCJzdGFydHNXaXRoIiwiY29uc29sZSIsImxvZyIsImpvaW4iLCJleHRyYWN0TWVzc2FnZSIsInJlcyIsImNob2ljZXMiLCJhdCIsIm1lc3NhZ2UiLCJjb250ZW50Iiwic3BlZWNoIiwib3B0aW9ucyIsIkVycm9yIiwiY2hhdCIsIm1lc3NhZ2VzIiwidiIsInB1c2giLCJyb2xlIiwibW9kZWxDb25maWciLCJjdXJyZW50U2Vzc2lvbiIsIm1hc2siLCJtb2RlbCIsImNvbmZpZyIsInByb3ZpZGVyTmFtZSIsInJlcXVlc3RQYXlsb2FkIiwic3RyZWFtIiwidGVtcGVyYXR1cmUiLCJwcmVzZW5jZV9wZW5hbHR5IiwiZnJlcXVlbmN5X3BlbmFsdHkiLCJ0b3BfcCIsInNob3VsZFN0cmVhbSIsImNvbnRyb2xsZXIiLCJBYm9ydENvbnRyb2xsZXIiLCJvbkNvbnRyb2xsZXIiLCJjaGF0UGF0aCIsIkNoYXRQYXRoIiwiY2hhdFBheWxvYWQiLCJtZXRob2QiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsInNpZ25hbCIsImhlYWRlcnMiLCJyZXF1ZXN0VGltZW91dElkIiwic2V0VGltZW91dCIsImFib3J0IiwicmVzcG9uc2VUZXh0IiwicmVtYWluVGV4dCIsImZpbmlzaGVkIiwicmVzcG9uc2VSZXMiLCJhbmltYXRlUmVzcG9uc2VUZXh0IiwiYWJvcnRlZCIsImZldGNoQ291bnQiLCJNYXRoIiwibWF4Iiwicm91bmQiLCJmZXRjaFRleHQiLCJvblVwZGF0ZSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImZpbmlzaCIsIm9uRmluaXNoIiwib25hYm9ydCIsIm9ub3BlbiIsImNsZWFyVGltZW91dCIsImNvbnRlbnRUeXBlIiwiZ2V0IiwiY2xvbmUiLCJ0ZXh0Iiwib2siLCJzdGF0dXMiLCJleHRyYUluZm8iLCJyZXNKc29uIiwianNvbiIsIlVuYXV0aG9yaXplZCIsIm9uRXJyb3IiLCJvbm1lc3NhZ2UiLCJtc2ciLCJkYXRhIiwicGFyc2UiLCJkZWx0YSIsImUiLCJlcnJvciIsIm9uY2xvc2UiLCJvbmVycm9yIiwib3BlbldoZW5IaWRkZW4iLCJlcnJvclRleHQiLCJ1c2FnZSIsInVzZWQiLCJ0b3RhbCIsIm1vZGVscyIsImRpc2FibGVMaXN0TW9kZWxzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/client/platforms/iflytek.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/client/platforms/moonshot.ts":
|
|
|
/*!******************************************!*\
|
|
|
!*** ./app/client/platforms/moonshot.ts ***!
|
|
|
\******************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MoonshotApi: () => (/* binding */ MoonshotApi)\n/* harmony export */ });\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _app_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/app/store */ \"(ssr)/./app/store/index.ts\");\n/* harmony import */ var _app_utils_chat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/utils/chat */ \"(ssr)/./app/utils/chat.ts\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../api */ \"(ssr)/./app/client/api.ts\");\n/* harmony import */ var _app_config_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/app/config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/app/utils */ \"(ssr)/./app/utils.ts\");\n/* harmony import */ var _app_utils_stream__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/app/utils/stream */ \"(ssr)/./app/utils/stream.ts\");\n/* __next_internal_client_entry_do_not_use__ MoonshotApi auto */ // azure and openai, using same models. so using same LLMApi.\n\n\n\n\n\n\n\nclass MoonshotApi {\n path(path) {\n const accessStore = _app_store__WEBPACK_IMPORTED_MODULE_1__.useAccessStore.getState();\n let baseUrl = \"\";\n if (accessStore.useCustomConfig) {\n baseUrl = accessStore.moonshotUrl;\n }\n if (baseUrl.length === 0) {\n const isApp = !!(0,_app_config_client__WEBPACK_IMPORTED_MODULE_4__.getClientConfig)()?.isApp;\n const apiPath = _app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Moonshot;\n baseUrl = isApp ? _app_constant__WEBPACK_IMPORTED_MODULE_0__.MOONSHOT_BASE_URL : apiPath;\n }\n if (baseUrl.endsWith(\"/\")) {\n baseUrl = baseUrl.slice(0, baseUrl.length - 1);\n }\n if (!baseUrl.startsWith(\"http\") && !baseUrl.startsWith(_app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Moonshot)) {\n baseUrl = \"https://\" + baseUrl;\n }\n console.log(\"[Proxy Endpoint] \", baseUrl, path);\n return [\n baseUrl,\n path\n ].join(\"/\");\n }\n extractMessage(res) {\n return res.choices?.at(0)?.message?.content ?? \"\";\n }\n speech(options) {\n throw new Error(\"Method not implemented.\");\n }\n async chat(options) {\n const messages = [];\n for (const v of options.messages){\n const content = (0,_app_utils__WEBPACK_IMPORTED_MODULE_5__.getMessageTextContent)(v);\n messages.push({\n role: v.role,\n content\n });\n }\n const modelConfig = {\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useAppConfig.getState().modelConfig,\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useChatStore.getState().currentSession().mask.modelConfig,\n ...{\n model: options.config.model,\n providerName: options.config.providerName\n }\n };\n const requestPayload = {\n messages,\n stream: options.config.stream,\n model: modelConfig.model,\n temperature: modelConfig.temperature,\n presence_penalty: modelConfig.presence_penalty,\n frequency_penalty: modelConfig.frequency_penalty,\n top_p: modelConfig.top_p\n };\n console.log(\"[Request] openai payload: \", requestPayload);\n const shouldStream = !!options.config.stream;\n const controller = new AbortController();\n options.onController?.(controller);\n try {\n const chatPath = this.path(_app_constant__WEBPACK_IMPORTED_MODULE_0__.Moonshot.ChatPath);\n const chatPayload = {\n method: \"POST\",\n body: JSON.stringify(requestPayload),\n signal: controller.signal,\n headers: (0,_api__WEBPACK_IMPORTED_MODULE_3__.getHeaders)()\n };\n // make a fetch request\n const requestTimeoutId = setTimeout(()=>controller.abort(), _app_constant__WEBPACK_IMPORTED_MODULE_0__.REQUEST_TIMEOUT_MS);\n if (shouldStream) {\n const [tools, funcs] = _app_store__WEBPACK_IMPORTED_MODULE_1__.usePluginStore.getState().getAsTools(_app_store__WEBPACK_IMPORTED_MODULE_1__.useChatStore.getState().currentSession().mask?.plugin || []);\n return (0,_app_utils_chat__WEBPACK_IMPORTED_MODULE_2__.stream)(chatPath, requestPayload, (0,_api__WEBPACK_IMPORTED_MODULE_3__.getHeaders)(), tools, funcs, controller, // parseSSE\n (text, runTools)=>{\n // console.log(\"parseSSE\", text, runTools);\n const json = JSON.parse(text);\n const choices = json.choices;\n const tool_calls = choices[0]?.delta?.tool_calls;\n if (tool_calls?.length > 0) {\n const index = tool_calls[0]?.index;\n const id = tool_calls[0]?.id;\n const args = tool_calls[0]?.function?.arguments;\n if (id) {\n runTools.push({\n id,\n type: tool_calls[0]?.type,\n function: {\n name: tool_calls[0]?.function?.name,\n arguments: args\n }\n });\n } else {\n // @ts-ignore\n runTools[index][\"function\"][\"arguments\"] += args;\n }\n }\n return choices[0]?.delta?.content;\n }, // processToolMessage, include tool_calls message and tool call results\n (requestPayload, toolCallMessage, toolCallResult)=>{\n // @ts-ignore\n requestPayload?.messages?.splice(// @ts-ignore\n requestPayload?.messages?.length, 0, toolCallMessage, ...toolCallResult);\n }, options);\n } else {\n const res = await (0,_app_utils_stream__WEBPACK_IMPORTED_MODULE_6__.fetch)(chatPath, chatPayload);\n clearTimeout(requestTimeoutId);\n const resJson = await res.json();\n const message = this.extractMessage(resJson);\n options.onFinish(message, res);\n }\n } catch (e) {\n console.log(\"[Request] failed to make a chat request\", e);\n options.onError?.(e);\n }\n }\n async usage() {\n return {\n used: 0,\n total: 0\n };\n }\n async models() {\n return [];\n }\n constructor(){\n this.disableListModels = true;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvY2xpZW50L3BsYXRmb3Jtcy9tb29uc2hvdC50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztpRUFDQSw2REFBNkQ7QUFNckM7QUFPSDtBQUNxQjtBQU8xQjtBQUNzQztBQUNGO0FBRVQ7QUFFcEMsTUFBTWE7SUFHWEMsS0FBS0EsSUFBWSxFQUFVO1FBQ3pCLE1BQU1DLGNBQWNYLHNEQUFjQSxDQUFDWSxRQUFRO1FBRTNDLElBQUlDLFVBQVU7UUFFZCxJQUFJRixZQUFZRyxlQUFlLEVBQUU7WUFDL0JELFVBQVVGLFlBQVlJLFdBQVc7UUFDbkM7UUFFQSxJQUFJRixRQUFRRyxNQUFNLEtBQUssR0FBRztZQUN4QixNQUFNQyxRQUFRLENBQUMsQ0FBQ1gsbUVBQWVBLElBQUlXO1lBQ25DLE1BQU1DLFVBQVV0QixrREFBT0EsQ0FBQ0UsUUFBUTtZQUNoQ2UsVUFBVUksUUFBUXBCLDREQUFpQkEsR0FBR3FCO1FBQ3hDO1FBRUEsSUFBSUwsUUFBUU0sUUFBUSxDQUFDLE1BQU07WUFDekJOLFVBQVVBLFFBQVFPLEtBQUssQ0FBQyxHQUFHUCxRQUFRRyxNQUFNLEdBQUc7UUFDOUM7UUFDQSxJQUFJLENBQUNILFFBQVFRLFVBQVUsQ0FBQyxXQUFXLENBQUNSLFFBQVFRLFVBQVUsQ0FBQ3pCLGtEQUFPQSxDQUFDRSxRQUFRLEdBQUc7WUFDeEVlLFVBQVUsYUFBYUE7UUFDekI7UUFFQVMsUUFBUUMsR0FBRyxDQUFDLHFCQUFxQlYsU0FBU0g7UUFFMUMsT0FBTztZQUFDRztZQUFTSDtTQUFLLENBQUNjLElBQUksQ0FBQztJQUM5QjtJQUVBQyxlQUFlQyxHQUFRLEVBQUU7UUFDdkIsT0FBT0EsSUFBSUMsT0FBTyxFQUFFQyxHQUFHLElBQUlDLFNBQVNDLFdBQVc7SUFDakQ7SUFFQUMsT0FBT0MsT0FBc0IsRUFBd0I7UUFDbkQsTUFBTSxJQUFJQyxNQUFNO0lBQ2xCO0lBRUEsTUFBTUMsS0FBS0YsT0FBb0IsRUFBRTtRQUMvQixNQUFNRyxXQUFvQyxFQUFFO1FBQzVDLEtBQUssTUFBTUMsS0FBS0osUUFBUUcsUUFBUSxDQUFFO1lBQ2hDLE1BQU1MLFVBQVV2QixpRUFBcUJBLENBQUM2QjtZQUN0Q0QsU0FBU0UsSUFBSSxDQUFDO2dCQUFFQyxNQUFNRixFQUFFRSxJQUFJO2dCQUFFUjtZQUFRO1FBQ3hDO1FBRUEsTUFBTVMsY0FBYztZQUNsQixHQUFHdEMsb0RBQVlBLENBQUNXLFFBQVEsR0FBRzJCLFdBQVc7WUFDdEMsR0FBR3JDLG9EQUFZQSxDQUFDVSxRQUFRLEdBQUc0QixjQUFjLEdBQUdDLElBQUksQ0FBQ0YsV0FBVztZQUM1RCxHQUFHO2dCQUNERyxPQUFPVixRQUFRVyxNQUFNLENBQUNELEtBQUs7Z0JBQzNCRSxjQUFjWixRQUFRVyxNQUFNLENBQUNDLFlBQVk7WUFDM0MsQ0FBQztRQUNIO1FBRUEsTUFBTUMsaUJBQWlDO1lBQ3JDVjtZQUNBL0IsUUFBUTRCLFFBQVFXLE1BQU0sQ0FBQ3ZDLE1BQU07WUFDN0JzQyxPQUFPSCxZQUFZRyxLQUFLO1lBQ3hCSSxhQUFhUCxZQUFZTyxXQUFXO1lBQ3BDQyxrQkFBa0JSLFlBQVlRLGdCQUFnQjtZQUM5Q0MsbUJBQW1CVCxZQUFZUyxpQkFBaUI7WUFDaERDLE9BQU9WLFlBQVlVLEtBQUs7UUFHMUI7UUFFQTNCLFFBQVFDLEdBQUcsQ0FBQyw4QkFBOEJzQjtRQUUxQyxNQUFNSyxlQUFlLENBQUMsQ0FBQ2xCLFFBQVFXLE1BQU0sQ0FBQ3ZDLE1BQU07UUFDNUMsTUFBTStDLGFBQWEsSUFBSUM7UUFDdkJwQixRQUFRcUIsWUFBWSxHQUFHRjtRQUV2QixJQUFJO1lBQ0YsTUFBTUcsV0FBVyxJQUFJLENBQUM1QyxJQUFJLENBQUNaLG1EQUFRQSxDQUFDeUQsUUFBUTtZQUM1QyxNQUFNQyxjQUFjO2dCQUNsQkMsUUFBUTtnQkFDUkMsTUFBTUMsS0FBS0MsU0FBUyxDQUFDZjtnQkFDckJnQixRQUFRVixXQUFXVSxNQUFNO2dCQUN6QkMsU0FBU3pELGdEQUFVQTtZQUNyQjtZQUVBLHVCQUF1QjtZQUN2QixNQUFNMEQsbUJBQW1CQyxXQUN2QixJQUFNYixXQUFXYyxLQUFLLElBQ3RCbEUsNkRBQWtCQTtZQUdwQixJQUFJbUQsY0FBYztnQkFDaEIsTUFBTSxDQUFDZ0IsT0FBT0MsTUFBTSxHQUFHaEUsc0RBQWNBLENBQ2xDUyxRQUFRLEdBQ1J3RCxVQUFVLENBQ1RsRSxvREFBWUEsQ0FBQ1UsUUFBUSxHQUFHNEIsY0FBYyxHQUFHQyxJQUFJLEVBQUU0QixVQUFVLEVBQUU7Z0JBRS9ELE9BQU9qRSx1REFBTUEsQ0FDWGtELFVBQ0FULGdCQUNBeEMsZ0RBQVVBLElBQ1Y2RCxPQUNBQyxPQUNBaEIsWUFDQSxXQUFXO2dCQUNYLENBQUNtQixNQUFjQztvQkFDYiwyQ0FBMkM7b0JBQzNDLE1BQU1DLE9BQU9iLEtBQUtjLEtBQUssQ0FBQ0g7b0JBQ3hCLE1BQU0zQyxVQUFVNkMsS0FBSzdDLE9BQU87b0JBTTVCLE1BQU0rQyxhQUFhL0MsT0FBTyxDQUFDLEVBQUUsRUFBRWdELE9BQU9EO29CQUN0QyxJQUFJQSxZQUFZMUQsU0FBUyxHQUFHO3dCQUMxQixNQUFNNEQsUUFBUUYsVUFBVSxDQUFDLEVBQUUsRUFBRUU7d0JBQzdCLE1BQU1DLEtBQUtILFVBQVUsQ0FBQyxFQUFFLEVBQUVHO3dCQUMxQixNQUFNQyxPQUFPSixVQUFVLENBQUMsRUFBRSxFQUFFSyxVQUFVQzt3QkFDdEMsSUFBSUgsSUFBSTs0QkFDTk4sU0FBU2xDLElBQUksQ0FBQztnQ0FDWndDO2dDQUNBSSxNQUFNUCxVQUFVLENBQUMsRUFBRSxFQUFFTztnQ0FDckJGLFVBQVU7b0NBQ1JHLE1BQU1SLFVBQVUsQ0FBQyxFQUFFLEVBQUVLLFVBQVVHO29DQUMvQkYsV0FBV0Y7Z0NBQ2I7NEJBQ0Y7d0JBQ0YsT0FBTzs0QkFDTCxhQUFhOzRCQUNiUCxRQUFRLENBQUNLLE1BQU0sQ0FBQyxXQUFXLENBQUMsWUFBWSxJQUFJRTt3QkFDOUM7b0JBQ0Y7b0JBQ0EsT0FBT25ELE9BQU8sQ0FBQyxFQUFFLEVBQUVnRCxPQUFPN0M7Z0JBQzVCLEdBQ0EsdUVBQXVFO2dCQUN2RSxDQUNFZSxnQkFDQXNDLGlCQUNBQztvQkFFQSxhQUFhO29CQUNidkMsZ0JBQWdCVixVQUFVa0QsT0FDeEIsYUFBYTtvQkFDYnhDLGdCQUFnQlYsVUFBVW5CLFFBQzFCLEdBQ0FtRSxvQkFDR0M7Z0JBRVAsR0FDQXBEO1lBRUosT0FBTztnQkFDTCxNQUFNTixNQUFNLE1BQU1sQix3REFBS0EsQ0FBQzhDLFVBQVVFO2dCQUNsQzhCLGFBQWF2QjtnQkFFYixNQUFNd0IsVUFBVSxNQUFNN0QsSUFBSThDLElBQUk7Z0JBQzlCLE1BQU0zQyxVQUFVLElBQUksQ0FBQ0osY0FBYyxDQUFDOEQ7Z0JBQ3BDdkQsUUFBUXdELFFBQVEsQ0FBQzNELFNBQVNIO1lBQzVCO1FBQ0YsRUFBRSxPQUFPK0QsR0FBRztZQUNWbkUsUUFBUUMsR0FBRyxDQUFDLDJDQUEyQ2tFO1lBQ3ZEekQsUUFBUTBELE9BQU8sR0FBR0Q7UUFDcEI7SUFDRjtJQUNBLE1BQU1FLFFBQVE7UUFDWixPQUFPO1lBQ0xDLE1BQU07WUFDTkMsT0FBTztRQUNUO0lBQ0Y7SUFFQSxNQUFNQyxTQUE4QjtRQUNsQyxPQUFPLEVBQUU7SUFDWDs7YUF6S1FDLG9CQUFvQjs7QUEwSzlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvY2xpZW50L3BsYXRmb3Jtcy9tb29uc2hvdC50cz81M2QyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG4vLyBhenVyZSBhbmQgb3BlbmFpLCB1c2luZyBzYW1lIG1vZGVscy4gc28gdXNpbmcgc2FtZSBMTE1BcGkuXHJcbmltcG9ydCB7XHJcbiAgQXBpUGF0aCxcclxuICBNT09OU0hPVF9CQVNFX1VSTCxcclxuICBNb29uc2hvdCxcclxuICBSRVFVRVNUX1RJTUVPVVRfTVMsXHJcbn0gZnJvbSBcIkAvYXBwL2NvbnN0YW50XCI7XHJcbmltcG9ydCB7XHJcbiAgdXNlQWNjZXNzU3RvcmUsXHJcbiAgdXNlQXBwQ29uZmlnLFxyXG4gIHVzZUNoYXRTdG9yZSxcclxuICBDaGF0TWVzc2FnZVRvb2wsXHJcbiAgdXNlUGx1Z2luU3RvcmUsXHJcbn0gZnJvbSBcIkAvYXBwL3N0b3JlXCI7XHJcbmltcG9ydCB7IHN0cmVhbSB9IGZyb20gXCJAL2FwcC91dGlscy9jaGF0XCI7XHJcbmltcG9ydCB7XHJcbiAgQ2hhdE9wdGlvbnMsXHJcbiAgZ2V0SGVhZGVycyxcclxuICBMTE1BcGksXHJcbiAgTExNTW9kZWwsXHJcbiAgU3BlZWNoT3B0aW9ucyxcclxufSBmcm9tIFwiLi4vYXBpXCI7XHJcbmltcG9ydCB7IGdldENsaWVudENvbmZpZyB9IGZyb20gXCJAL2FwcC9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB7IGdldE1lc3NhZ2VUZXh0Q29udGVudCB9IGZyb20gXCJAL2FwcC91dGlsc1wiO1xyXG5pbXBvcnQgeyBSZXF1ZXN0UGF5bG9hZCB9IGZyb20gXCIuL29wZW5haVwiO1xyXG5pbXBvcnQgeyBmZXRjaCB9IGZyb20gXCJAL2FwcC91dGlscy9zdHJlYW1cIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBNb29uc2hvdEFwaSBpbXBsZW1lbnRzIExMTUFwaSB7XHJcbiAgcHJpdmF0ZSBkaXNhYmxlTGlzdE1vZGVscyA9IHRydWU7XHJcblxyXG4gIHBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGFjY2Vzc1N0b3JlID0gdXNlQWNjZXNzU3RvcmUuZ2V0U3RhdGUoKTtcclxuXHJcbiAgICBsZXQgYmFzZVVybCA9IFwiXCI7XHJcblxyXG4gICAgaWYgKGFjY2Vzc1N0b3JlLnVzZUN1c3RvbUNvbmZpZykge1xyXG4gICAgICBiYXNlVXJsID0gYWNjZXNzU3RvcmUubW9vbnNob3RVcmw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGJhc2VVcmwubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGNvbnN0IGlzQXBwID0gISFnZXRDbGllbnRDb25maWcoKT8uaXNBcHA7XHJcbiAgICAgIGNvbnN0IGFwaVBhdGggPSBBcGlQYXRoLk1vb25zaG90O1xyXG4gICAgICBiYXNlVXJsID0gaXNBcHAgPyBNT09OU0hPVF9CQVNFX1VSTCA6IGFwaVBhdGg7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGJhc2VVcmwuZW5kc1dpdGgoXCIvXCIpKSB7XHJcbiAgICAgIGJhc2VVcmwgPSBiYXNlVXJsLnNsaWNlKDAsIGJhc2VVcmwubGVuZ3RoIC0gMSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWJhc2VVcmwuc3RhcnRzV2l0aChcImh0dHBcIikgJiYgIWJhc2VVcmwuc3RhcnRzV2l0aChBcGlQYXRoLk1vb25zaG90KSkge1xyXG4gICAgICBiYXNlVXJsID0gXCJodHRwczovL1wiICsgYmFzZVVybDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIltQcm94eSBFbmRwb2ludF0gXCIsIGJhc2VVcmwsIHBhdGgpO1xyXG5cclxuICAgIHJldHVybiBbYmFzZVVybCwgcGF0aF0uam9pbihcIi9cIik7XHJcbiAgfVxyXG5cclxuICBleHRyYWN0TWVzc2FnZShyZXM6IGFueSkge1xyXG4gICAgcmV0dXJuIHJlcy5jaG9pY2VzPy5hdCgwKT8ubWVzc2FnZT8uY29udGVudCA/PyBcIlwiO1xyXG4gIH1cclxuXHJcbiAgc3BlZWNoKG9wdGlvbnM6IFNwZWVjaE9wdGlvbnMpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGNoYXQob3B0aW9uczogQ2hhdE9wdGlvbnMpIHtcclxuICAgIGNvbnN0IG1lc3NhZ2VzOiBDaGF0T3B0aW9uc1tcIm1lc3NhZ2VzXCJdID0gW107XHJcbiAgICBmb3IgKGNvbnN0IHYgb2Ygb3B0aW9ucy5tZXNzYWdlcykge1xyXG4gICAgICBjb25zdCBjb250ZW50ID0gZ2V0TWVzc2FnZVRleHRDb250ZW50KHYpO1xyXG4gICAgICBtZXNzYWdlcy5wdXNoKHsgcm9sZTogdi5yb2xlLCBjb250ZW50IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1vZGVsQ29uZmlnID0ge1xyXG4gICAgICAuLi51c2VBcHBDb25maWcuZ2V0U3RhdGUoKS5tb2RlbENvbmZpZyxcclxuICAgICAgLi4udXNlQ2hhdFN0b3JlLmdldFN0YXRlKCkuY3VycmVudFNlc3Npb24oKS5tYXNrLm1vZGVsQ29uZmlnLFxyXG4gICAgICAuLi57XHJcbiAgICAgICAgbW9kZWw6IG9wdGlvbnMuY29uZmlnLm1vZGVsLFxyXG4gICAgICAgIHByb3ZpZGVyTmFtZTogb3B0aW9ucy5jb25maWcucHJvdmlkZXJOYW1lLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCByZXF1ZXN0UGF5bG9hZDogUmVxdWVzdFBheWxvYWQgPSB7XHJcbiAgICAgIG1lc3NhZ2VzLFxyXG4gICAgICBzdHJlYW06IG9wdGlvbnMuY29uZmlnLnN0cmVhbSxcclxuICAgICAgbW9kZWw6IG1vZGVsQ29uZmlnLm1vZGVsLFxyXG4gICAgICB0ZW1wZXJhdHVyZTogbW9kZWxDb25maWcudGVtcGVyYXR1cmUsXHJcbiAgICAgIHByZXNlbmNlX3BlbmFsdHk6IG1vZGVsQ29uZmlnLnByZXNlbmNlX3BlbmFsdHksXHJcbiAgICAgIGZyZXF1ZW5jeV9wZW5hbHR5OiBtb2RlbENvbmZpZy5mcmVxdWVuY3lfcGVuYWx0eSxcclxuICAgICAgdG9wX3A6IG1vZGVsQ29uZmlnLnRvcF9wLFxyXG4gICAgICAvLyBtYXhfdG9rZW5zOiBNYXRoLm1heChtb2RlbENvbmZpZy5tYXhfdG9rZW5zLCAxMDI0KSxcclxuICAgICAgLy8gUGxlYXNlIGRvIG5vdCBhc2sgbWUgd2h5IG5vdCBzZW5kIG1heF90b2tlbnMsIG5vIHJlYXNvbiwgdGhpcyBwYXJhbSBpcyBqdXN0IHNoaXQsIEkgZG9udCB3YW50IHRvIGV4cGxhaW4gYW55bW9yZS5cclxuICAgIH07XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJbUmVxdWVzdF0gb3BlbmFpIHBheWxvYWQ6IFwiLCByZXF1ZXN0UGF5bG9hZCk7XHJcblxyXG4gICAgY29uc3Qgc2hvdWxkU3RyZWFtID0gISFvcHRpb25zLmNvbmZpZy5zdHJlYW07XHJcbiAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xyXG4gICAgb3B0aW9ucy5vbkNvbnRyb2xsZXI/Lihjb250cm9sbGVyKTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBjaGF0UGF0aCA9IHRoaXMucGF0aChNb29uc2hvdC5DaGF0UGF0aCk7XHJcbiAgICAgIGNvbnN0IGNoYXRQYXlsb2FkID0ge1xyXG4gICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXHJcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkocmVxdWVzdFBheWxvYWQpLFxyXG4gICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWwsXHJcbiAgICAgICAgaGVhZGVyczogZ2V0SGVhZGVycygpLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy8gbWFrZSBhIGZldGNoIHJlcXVlc3RcclxuICAgICAgY29uc3QgcmVxdWVzdFRpbWVvdXRJZCA9IHNldFRpbWVvdXQoXHJcbiAgICAgICAgKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLFxyXG4gICAgICAgIFJFUVVFU1RfVElNRU9VVF9NUyxcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGlmIChzaG91bGRTdHJlYW0pIHtcclxuICAgICAgICBjb25zdCBbdG9vbHMsIGZ1bmNzXSA9IHVzZVBsdWdpblN0b3JlXHJcbiAgICAgICAgICAuZ2V0U3RhdGUoKVxyXG4gICAgICAgICAgLmdldEFzVG9vbHMoXHJcbiAgICAgICAgICAgIHVzZUNoYXRTdG9yZS5nZXRTdGF0ZSgpLmN1cnJlbnRTZXNzaW9uKCkubWFzaz8ucGx1Z2luIHx8IFtdLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gc3RyZWFtKFxyXG4gICAgICAgICAgY2hhdFBhdGgsXHJcbiAgICAgICAgICByZXF1ZXN0UGF5bG9hZCxcclxuICAgICAgICAgIGdldEhlYWRlcnMoKSxcclxuICAgICAgICAgIHRvb2xzIGFzIGFueSxcclxuICAgICAgICAgIGZ1bmNzLFxyXG4gICAgICAgICAgY29udHJvbGxlcixcclxuICAgICAgICAgIC8vIHBhcnNlU1NFXHJcbiAgICAgICAgICAodGV4dDogc3RyaW5nLCBydW5Ub29sczogQ2hhdE1lc3NhZ2VUb29sW10pID0+IHtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJwYXJzZVNTRVwiLCB0ZXh0LCBydW5Ub29scyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKHRleHQpO1xyXG4gICAgICAgICAgICBjb25zdCBjaG9pY2VzID0ganNvbi5jaG9pY2VzIGFzIEFycmF5PHtcclxuICAgICAgICAgICAgICBkZWx0YToge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogc3RyaW5nO1xyXG4gICAgICAgICAgICAgICAgdG9vbF9jYWxsczogQ2hhdE1lc3NhZ2VUb29sW107XHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfT47XHJcbiAgICAgICAgICAgIGNvbnN0IHRvb2xfY2FsbHMgPSBjaG9pY2VzWzBdPy5kZWx0YT8udG9vbF9jYWxscztcclxuICAgICAgICAgICAgaWYgKHRvb2xfY2FsbHM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRvb2xfY2FsbHNbMF0/LmluZGV4O1xyXG4gICAgICAgICAgICAgIGNvbnN0IGlkID0gdG9vbF9jYWxsc1swXT8uaWQ7XHJcbiAgICAgICAgICAgICAgY29uc3QgYXJncyA9IHRvb2xfY2FsbHNbMF0/LmZ1bmN0aW9uPy5hcmd1bWVudHM7XHJcbiAgICAgICAgICAgICAgaWYgKGlkKSB7XHJcbiAgICAgICAgICAgICAgICBydW5Ub29scy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgaWQsXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IHRvb2xfY2FsbHNbMF0/LnR5cGUsXHJcbiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdG9vbF9jYWxsc1swXT8uZnVuY3Rpb24/Lm5hbWUgYXMgc3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50czogYXJncyxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICBydW5Ub29sc1tpbmRleF1bXCJmdW5jdGlvblwiXVtcImFyZ3VtZW50c1wiXSArPSBhcmdzO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gY2hvaWNlc1swXT8uZGVsdGE/LmNvbnRlbnQ7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLy8gcHJvY2Vzc1Rvb2xNZXNzYWdlLCBpbmNsdWRlIHRvb2xfY2FsbHMgbWVzc2FnZSBhbmQgdG9vbCBjYWxsIHJlc3VsdHNcclxuICAgICAgICAgIChcclxuICAgICAgICAgICAgcmVxdWVzdFBheWxvYWQ6IFJlcXVlc3RQYXlsb2FkLFxyXG4gICAgICAgICAgICB0b29sQ2FsbE1lc3NhZ2U6IGFueSxcclxuICAgICAgICAgICAgdG9vbENhbGxSZXN1bHQ6IGFueVtdLFxyXG4gICAgICAgICAgKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgcmVxdWVzdFBheWxvYWQ/Lm1lc3NhZ2VzPy5zcGxpY2UoXHJcbiAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgIHJlcXVlc3RQYXlsb2FkPy5tZXNzYWdlcz8ubGVuZ3RoLFxyXG4gICAgICAgICAgICAgIDAsXHJcbiAgICAgICAgICAgICAgdG9vbENhbGxNZXNzYWdlLFxyXG4gICAgICAgICAgICAgIC4uLnRvb2xDYWxsUmVzdWx0LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9wdGlvbnMsXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChjaGF0UGF0aCwgY2hhdFBheWxvYWQpO1xyXG4gICAgICAgIGNsZWFyVGltZW91dChyZXF1ZXN0VGltZW91dElkKTtcclxuXHJcbiAgICAgICAgY29uc3QgcmVzSnNvbiA9IGF3YWl0IHJlcy5qc29uKCk7XHJcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMuZXh0cmFjdE1lc3NhZ2UocmVzSnNvbik7XHJcbiAgICAgICAgb3B0aW9ucy5vbkZpbmlzaChtZXNzYWdlLCByZXMpO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiW1JlcXVlc3RdIGZhaWxlZCB0byBtYWtlIGEgY2hhdCByZXF1ZXN0XCIsIGUpO1xyXG4gICAgICBvcHRpb25zLm9uRXJyb3I/LihlIGFzIEVycm9yKTtcclxuICAgIH1cclxuICB9XHJcbiAgYXN5bmMgdXNhZ2UoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB1c2VkOiAwLFxyXG4gICAgICB0b3RhbDogMCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBhc3luYyBtb2RlbHMoKTogUHJvbWlzZTxMTE1Nb2RlbFtdPiB7XHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG59XHJcbiJdLCJuYW1lcyI6WyJBcGlQYXRoIiwiTU9PTlNIT1RfQkFTRV9VUkwiLCJNb29uc2hvdCIsIlJFUVVFU1RfVElNRU9VVF9NUyIsInVzZUFjY2Vzc1N0b3JlIiwidXNlQXBwQ29uZmlnIiwidXNlQ2hhdFN0b3JlIiwidXNlUGx1Z2luU3RvcmUiLCJzdHJlYW0iLCJnZXRIZWFkZXJzIiwiZ2V0Q2xpZW50Q29uZmlnIiwiZ2V0TWVzc2FnZVRleHRDb250ZW50IiwiZmV0Y2giLCJNb29uc2hvdEFwaSIsInBhdGgiLCJhY2Nlc3NTdG9yZSIsImdldFN0YXRlIiwiYmFzZVVybCIsInVzZUN1c3RvbUNvbmZpZyIsIm1vb25zaG90VXJsIiwibGVuZ3RoIiwiaXNBcHAiLCJhcGlQYXRoIiwiZW5kc1dpdGgiLCJzbGljZSIsInN0YXJ0c1dpdGgiLCJjb25zb2xlIiwibG9nIiwiam9pbiIsImV4dHJhY3RNZXNzYWdlIiwicmVzIiwiY2hvaWNlcyIsImF0IiwibWVzc2FnZSIsImNvbnRlbnQiLCJzcGVlY2giLCJvcHRpb25zIiwiRXJyb3IiLCJjaGF0IiwibWVzc2FnZXMiLCJ2IiwicHVzaCIsInJvbGUiLCJtb2RlbENvbmZpZyIsImN1cnJlbnRTZXNzaW9uIiwibWFzayIsIm1vZGVsIiwiY29uZmlnIiwicHJvdmlkZXJOYW1lIiwicmVxdWVzdFBheWxvYWQiLCJ0ZW1wZXJhdHVyZSIsInByZXNlbmNlX3BlbmFsdHkiLCJmcmVxdWVuY3lfcGVuYWx0eSIsInRvcF9wIiwic2hvdWxkU3RyZWFtIiwiY29udHJvbGxlciIsIkFib3J0Q29udHJvbGxlciIsIm9uQ29udHJvbGxlciIsImNoYXRQYXRoIiwiQ2hhdFBhdGgiLCJjaGF0UGF5bG9hZCIsIm1ldGhvZCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5Iiwic2lnbmFsIiwiaGVhZGVycyIsInJlcXVlc3RUaW1lb3V0SWQiLCJzZXRUaW1lb3V0IiwiYWJvcnQiLCJ0b29scyIsImZ1bmNzIiwiZ2V0QXNUb29scyIsInBsdWdpbiIsInRleHQiLCJydW5Ub29scyIsImpzb24iLCJwYXJzZSIsInRvb2xfY2FsbHMiLCJkZWx0YSIsImluZGV4IiwiaWQiLCJhcmdzIiwiZnVuY3Rpb24iLCJhcmd1bWVudHMiLCJ0eXBlIiwibmFtZSIsInRvb2xDYWxsTWVzc2FnZSIsInRvb2xDYWxsUmVzdWx0Iiwic3BsaWNlIiwiY2xlYXJUaW1lb3V0IiwicmVzSnNvbiIsIm9uRmluaXNoIiwiZSIsIm9uRXJyb3IiLCJ1c2FnZSIsInVzZWQiLCJ0b3RhbCIsIm1vZGVscyIsImRpc2FibGVMaXN0TW9kZWxzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/client/platforms/moonshot.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/client/platforms/openai.ts":
|
|
|
/*!****************************************!*\
|
|
|
!*** ./app/client/platforms/openai.ts ***!
|
|
|
\****************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ChatGPTApi: () => (/* binding */ ChatGPTApi),\n/* harmony export */ OpenaiPath: () => (/* reexport safe */ _app_constant__WEBPACK_IMPORTED_MODULE_0__.OpenaiPath)\n/* harmony export */ });\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _app_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/app/store */ \"(ssr)/./app/store/index.ts\");\n/* harmony import */ var _app_utils_model__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/utils/model */ \"(ssr)/./app/utils/model.ts\");\n/* harmony import */ var _app_utils_chat__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/app/utils/chat */ \"(ssr)/./app/utils/chat.ts\");\n/* harmony import */ var _app_utils_cloudflare__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/app/utils/cloudflare */ \"(ssr)/./app/utils/cloudflare.ts\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../api */ \"(ssr)/./app/client/api.ts\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../locales */ \"(ssr)/./app/locales/index.ts\");\n/* harmony import */ var _app_config_client__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/app/config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/app/utils */ \"(ssr)/./app/utils.ts\");\n/* harmony import */ var _app_utils_stream__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/app/utils/stream */ \"(ssr)/./app/utils/stream.ts\");\n/* __next_internal_client_entry_do_not_use__ ChatGPTApi,OpenaiPath auto */ // azure and openai, using same models. so using same LLMApi.\n\n\n\n\n\n\n\n\n\n\nclass ChatGPTApi {\n path(path) {\n const accessStore = _app_store__WEBPACK_IMPORTED_MODULE_1__.useAccessStore.getState();\n let baseUrl = \"\";\n const isAzure = path.includes(\"deployments\");\n if (accessStore.useCustomConfig) {\n if (isAzure && !accessStore.isValidAzure()) {\n throw Error(\"incomplete azure config, please check it in your settings page\");\n }\n baseUrl = isAzure ? accessStore.azureUrl : accessStore.openaiUrl;\n }\n if (baseUrl.length === 0) {\n const isApp = !!(0,_app_config_client__WEBPACK_IMPORTED_MODULE_7__.getClientConfig)()?.isApp;\n const apiPath = isAzure ? _app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Azure : _app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.OpenAI;\n baseUrl = isApp ? _app_constant__WEBPACK_IMPORTED_MODULE_0__.OPENAI_BASE_URL : apiPath;\n }\n if (baseUrl.endsWith(\"/\")) {\n baseUrl = baseUrl.slice(0, baseUrl.length - 1);\n }\n if (!baseUrl.startsWith(\"http\") && !isAzure && !baseUrl.startsWith(_app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.OpenAI)) {\n baseUrl = \"https://\" + baseUrl;\n }\n console.log(\"[Proxy Endpoint] \", baseUrl, path);\n // try rebuild url, when using cloudflare ai gateway in client\n return (0,_app_utils_cloudflare__WEBPACK_IMPORTED_MODULE_4__.cloudflareAIGatewayUrl)([\n baseUrl,\n path\n ].join(\"/\"));\n }\n async extractMessage(res) {\n if (res.error) {\n return \"```\\n\" + JSON.stringify(res, null, 4) + \"\\n```\";\n }\n // dalle3 model return url, using url create image message\n if (res.data) {\n let url = res.data?.at(0)?.url ?? \"\";\n const b64_json = res.data?.at(0)?.b64_json ?? \"\";\n if (!url && b64_json) {\n // uploadImage\n url = await (0,_app_utils_chat__WEBPACK_IMPORTED_MODULE_3__.uploadImage)((0,_app_utils_chat__WEBPACK_IMPORTED_MODULE_3__.base64Image2Blob)(b64_json, \"image/png\"));\n }\n return [\n {\n type: \"image_url\",\n image_url: {\n url\n }\n }\n ];\n }\n return res.choices?.at(0)?.message?.content ?? res;\n }\n async speech(options) {\n const requestPayload = {\n model: options.model,\n input: options.input,\n voice: options.voice,\n response_format: options.response_format,\n speed: options.speed\n };\n console.log(\"[Request] openai speech payload: \", requestPayload);\n const controller = new AbortController();\n options.onController?.(controller);\n try {\n const speechPath = this.path(_app_constant__WEBPACK_IMPORTED_MODULE_0__.OpenaiPath.SpeechPath);\n const speechPayload = {\n method: \"POST\",\n body: JSON.stringify(requestPayload),\n signal: controller.signal,\n headers: (0,_api__WEBPACK_IMPORTED_MODULE_5__.getHeaders)()\n };\n // make a fetch request\n const requestTimeoutId = setTimeout(()=>controller.abort(), _app_constant__WEBPACK_IMPORTED_MODULE_0__.REQUEST_TIMEOUT_MS);\n const res = await (0,_app_utils_stream__WEBPACK_IMPORTED_MODULE_9__.fetch)(speechPath, speechPayload);\n clearTimeout(requestTimeoutId);\n return await res.arrayBuffer();\n } catch (e) {\n console.log(\"[Request] failed to make a speech request\", e);\n throw e;\n }\n }\n async chat(options) {\n const modelConfig = {\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useAppConfig.getState().modelConfig,\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useChatStore.getState().currentSession().mask.modelConfig,\n ...{\n model: options.config.model,\n providerName: options.config.providerName\n }\n };\n let requestPayload;\n const isDalle3 = (0,_app_utils__WEBPACK_IMPORTED_MODULE_8__.isDalle3)(options.config.model);\n const isO1OrO3 = options.config.model.startsWith(\"o1\") || options.config.model.startsWith(\"o3\");\n if (isDalle3) {\n const prompt = (0,_app_utils__WEBPACK_IMPORTED_MODULE_8__.getMessageTextContent)(options.messages.slice(-1)?.pop());\n requestPayload = {\n model: options.config.model,\n prompt,\n // URLs are only valid for 60 minutes after the image has been generated.\n response_format: \"b64_json\",\n n: 1,\n size: options.config?.size ?? \"1024x1024\",\n quality: options.config?.quality ?? \"standard\",\n style: options.config?.style ?? \"vivid\"\n };\n } else {\n const visionModel = (0,_app_utils__WEBPACK_IMPORTED_MODULE_8__.isVisionModel)(options.config.model);\n const messages = [];\n for (const v of options.messages){\n const content = visionModel ? await (0,_app_utils_chat__WEBPACK_IMPORTED_MODULE_3__.preProcessImageContent)(v.content) : (0,_app_utils__WEBPACK_IMPORTED_MODULE_8__.getMessageTextContent)(v);\n if (!(isO1OrO3 && v.role === \"system\")) messages.push({\n role: v.role,\n content\n });\n }\n // O1 not support image, tools (plugin in ChatGPTNextWeb) and system, stream, logprobs, temperature, top_p, n, presence_penalty, frequency_penalty yet.\n requestPayload = {\n messages,\n stream: options.config.stream,\n model: modelConfig.model,\n temperature: !isO1OrO3 ? modelConfig.temperature : 1,\n presence_penalty: !isO1OrO3 ? modelConfig.presence_penalty : 0,\n frequency_penalty: !isO1OrO3 ? modelConfig.frequency_penalty : 0,\n top_p: !isO1OrO3 ? modelConfig.top_p : 1\n };\n // O1 使用 max_completion_tokens 控制token数 (https://platform.openai.com/docs/guides/reasoning#controlling-costs)\n if (isO1OrO3) {\n requestPayload[\"max_completion_tokens\"] = modelConfig.max_tokens;\n }\n // add max_tokens to vision model\n if (visionModel) {\n requestPayload[\"max_tokens\"] = Math.max(modelConfig.max_tokens, 4000);\n }\n }\n console.log(\"[Request] openai payload: \", requestPayload);\n const shouldStream = !isDalle3 && !!options.config.stream;\n const controller = new AbortController();\n options.onController?.(controller);\n try {\n let chatPath = \"\";\n if (modelConfig.providerName === _app_constant__WEBPACK_IMPORTED_MODULE_0__.ServiceProvider.Azure) {\n // find model, and get displayName as deployName\n const { models: configModels, customModels: configCustomModels } = _app_store__WEBPACK_IMPORTED_MODULE_1__.useAppConfig.getState();\n const { defaultModel, customModels: accessCustomModels, useCustomConfig } = _app_store__WEBPACK_IMPORTED_MODULE_1__.useAccessStore.getState();\n const models = (0,_app_utils_model__WEBPACK_IMPORTED_MODULE_2__.collectModelsWithDefaultModel)(configModels, [\n configCustomModels,\n accessCustomModels\n ].join(\",\"), defaultModel);\n const model = models.find((model)=>model.name === modelConfig.model && model?.provider?.providerName === _app_constant__WEBPACK_IMPORTED_MODULE_0__.ServiceProvider.Azure);\n chatPath = this.path((isDalle3 ? _app_constant__WEBPACK_IMPORTED_MODULE_0__.Azure.ImagePath : _app_constant__WEBPACK_IMPORTED_MODULE_0__.Azure.ChatPath)(model?.displayName ?? model?.name, useCustomConfig ? _app_store__WEBPACK_IMPORTED_MODULE_1__.useAccessStore.getState().azureApiVersion : \"\"));\n } else {\n chatPath = this.path(isDalle3 ? _app_constant__WEBPACK_IMPORTED_MODULE_0__.OpenaiPath.ImagePath : _app_constant__WEBPACK_IMPORTED_MODULE_0__.OpenaiPath.ChatPath);\n }\n if (shouldStream) {\n let index = -1;\n const [tools, funcs] = _app_store__WEBPACK_IMPORTED_MODULE_1__.usePluginStore.getState().getAsTools(_app_store__WEBPACK_IMPORTED_MODULE_1__.useChatStore.getState().currentSession().mask?.plugin || []);\n // console.log(\"getAsTools\", tools, funcs);\n (0,_app_utils_chat__WEBPACK_IMPORTED_MODULE_3__.stream)(chatPath, requestPayload, (0,_api__WEBPACK_IMPORTED_MODULE_5__.getHeaders)(), tools, funcs, controller, // parseSSE\n (text, runTools)=>{\n // console.log(\"parseSSE\", text, runTools);\n const json = JSON.parse(text);\n const choices = json.choices;\n const tool_calls = choices[0]?.delta?.tool_calls;\n if (tool_calls?.length > 0) {\n const id = tool_calls[0]?.id;\n const args = tool_calls[0]?.function?.arguments;\n if (id) {\n index += 1;\n runTools.push({\n id,\n type: tool_calls[0]?.type,\n function: {\n name: tool_calls[0]?.function?.name,\n arguments: args\n }\n });\n } else {\n // @ts-ignore\n runTools[index][\"function\"][\"arguments\"] += args;\n }\n }\n return choices[0]?.delta?.content;\n }, // processToolMessage, include tool_calls message and tool call results\n (requestPayload, toolCallMessage, toolCallResult)=>{\n // reset index value\n index = -1;\n // @ts-ignore\n requestPayload?.messages?.splice(// @ts-ignore\n requestPayload?.messages?.length, 0, toolCallMessage, ...toolCallResult);\n }, options);\n } else {\n const chatPayload = {\n method: \"POST\",\n body: JSON.stringify(requestPayload),\n signal: controller.signal,\n headers: (0,_api__WEBPACK_IMPORTED_MODULE_5__.getHeaders)()\n };\n // make a fetch request\n const requestTimeoutId = setTimeout(()=>controller.abort(), isDalle3 || isO1OrO3 ? _app_constant__WEBPACK_IMPORTED_MODULE_0__.REQUEST_TIMEOUT_MS_FOR_THINKING : _app_constant__WEBPACK_IMPORTED_MODULE_0__.REQUEST_TIMEOUT_MS);\n const res = await (0,_app_utils_stream__WEBPACK_IMPORTED_MODULE_9__.fetch)(chatPath, chatPayload);\n clearTimeout(requestTimeoutId);\n const resJson = await res.json();\n const message = await this.extractMessage(resJson);\n options.onFinish(message, res);\n }\n } catch (e) {\n console.log(\"[Request] failed to make a chat request\", e);\n options.onError?.(e);\n }\n }\n async usage() {\n const formatDate = (d)=>`${d.getFullYear()}-${(d.getMonth() + 1).toString().padStart(2, \"0\")}-${d.getDate().toString().padStart(2, \"0\")}`;\n const ONE_DAY = 1 * 24 * 60 * 60 * 1000;\n const now = new Date();\n const startOfMonth = new Date(now.getFullYear(), now.getMonth(), 1);\n const startDate = formatDate(startOfMonth);\n const endDate = formatDate(new Date(Date.now() + ONE_DAY));\n const [used, subs] = await Promise.all([\n (0,_app_utils_stream__WEBPACK_IMPORTED_MODULE_9__.fetch)(this.path(`${_app_constant__WEBPACK_IMPORTED_MODULE_0__.OpenaiPath.UsagePath}?start_date=${startDate}&end_date=${endDate}`), {\n method: \"GET\",\n headers: (0,_api__WEBPACK_IMPORTED_MODULE_5__.getHeaders)()\n }),\n (0,_app_utils_stream__WEBPACK_IMPORTED_MODULE_9__.fetch)(this.path(_app_constant__WEBPACK_IMPORTED_MODULE_0__.OpenaiPath.SubsPath), {\n method: \"GET\",\n headers: (0,_api__WEBPACK_IMPORTED_MODULE_5__.getHeaders)()\n })\n ]);\n if (used.status === 401) {\n throw new Error(_locales__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Error.Unauthorized);\n }\n if (!used.ok || !subs.ok) {\n throw new Error(\"Failed to query usage from openai\");\n }\n const response = await used.json();\n const total = await subs.json();\n if (response.error && response.error.type) {\n throw Error(response.error.message);\n }\n if (response.total_usage) {\n response.total_usage = Math.round(response.total_usage) / 100;\n }\n if (total.hard_limit_usd) {\n total.hard_limit_usd = Math.round(total.hard_limit_usd * 100) / 100;\n }\n return {\n used: response.total_usage,\n total: total.hard_limit_usd\n };\n }\n async models() {\n if (this.disableListModels) {\n return _app_constant__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_MODELS.slice();\n }\n const res = await (0,_app_utils_stream__WEBPACK_IMPORTED_MODULE_9__.fetch)(this.path(_app_constant__WEBPACK_IMPORTED_MODULE_0__.OpenaiPath.ListModelPath), {\n method: \"GET\",\n headers: {\n ...(0,_api__WEBPACK_IMPORTED_MODULE_5__.getHeaders)()\n }\n });\n const resJson = await res.json();\n const chatModels = resJson.data?.filter((m)=>m.id.startsWith(\"gpt-\") || m.id.startsWith(\"chatgpt-\"));\n console.log(\"[Models]\", chatModels);\n if (!chatModels) {\n return [];\n }\n //由于目前 OpenAI 的 disableListModels 默认为 true,所以当前实际不会运行到这场\n let seq = 1000; //同 Constant.ts 中的排序保持一致\n return chatModels.map((m)=>({\n name: m.id,\n available: true,\n sorted: seq++,\n provider: {\n id: \"openai\",\n providerName: \"OpenAI\",\n providerType: \"openai\",\n sorted: 1\n }\n }));\n }\n constructor(){\n this.disableListModels = true;\n }\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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OzthQWhaUVIsb0JBQW9COztBQWlaOUI7QUFDc0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9jbGllbnQvcGxhdGZvcm1zL29wZW5haS50cz9hZGZhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG4vLyBhenVyZSBhbmQgb3BlbmFpLCB1c2luZyBzYW1lIG1vZGVscy4gc28gdXNpbmcgc2FtZSBMTE1BcGkuXHJcbmltcG9ydCB7XHJcbiAgQXBpUGF0aCxcclxuICBPUEVOQUlfQkFTRV9VUkwsXHJcbiAgREVGQVVMVF9NT0RFTFMsXHJcbiAgT3BlbmFpUGF0aCxcclxuICBBenVyZSxcclxuICBSRVFVRVNUX1RJTUVPVVRfTVMsXHJcbiAgU2VydmljZVByb3ZpZGVyLFxyXG4gIFJFUVVFU1RfVElNRU9VVF9NU19GT1JfVEhJTktJTkcsXHJcbn0gZnJvbSBcIkAvYXBwL2NvbnN0YW50XCI7XHJcbmltcG9ydCB7XHJcbiAgQ2hhdE1lc3NhZ2VUb29sLFxyXG4gIHVzZUFjY2Vzc1N0b3JlLFxyXG4gIHVzZUFwcENvbmZpZyxcclxuICB1c2VDaGF0U3RvcmUsXHJcbiAgdXNlUGx1Z2luU3RvcmUsXHJcbn0gZnJvbSBcIkAvYXBwL3N0b3JlXCI7XHJcbmltcG9ydCB7IGNvbGxlY3RNb2RlbHNXaXRoRGVmYXVsdE1vZGVsIH0gZnJvbSBcIkAvYXBwL3V0aWxzL21vZGVsXCI7XHJcbmltcG9ydCB7XHJcbiAgcHJlUHJvY2Vzc0ltYWdlQ29udGVudCxcclxuICB1cGxvYWRJbWFnZSxcclxuICBiYXNlNjRJbWFnZTJCbG9iLFxyXG4gIHN0cmVhbSxcclxufSBmcm9tIFwiQC9hcHAvdXRpbHMvY2hhdFwiO1xyXG5pbXBvcnQgeyBjbG91ZGZsYXJlQUlHYXRld2F5VXJsIH0gZnJvbSBcIkAvYXBwL3V0aWxzL2Nsb3VkZmxhcmVcIjtcclxuaW1wb3J0IHsgTW9kZWxTaXplLCBEYWxsZVF1YWxpdHksIERhbGxlU3R5bGUgfSBmcm9tIFwiQC9hcHAvdHlwaW5nXCI7XHJcblxyXG5pbXBvcnQge1xyXG4gIENoYXRPcHRpb25zLFxyXG4gIGdldEhlYWRlcnMsXHJcbiAgTExNQXBpLFxyXG4gIExMTU1vZGVsLFxyXG4gIExMTVVzYWdlLFxyXG4gIE11bHRpbW9kYWxDb250ZW50LFxyXG4gIFNwZWVjaE9wdGlvbnMsXHJcbn0gZnJvbSBcIi4uL2FwaVwiO1xyXG5pbXBvcnQgTG9jYWxlIGZyb20gXCIuLi8uLi9sb2NhbGVzXCI7XHJcbmltcG9ydCB7IGdldENsaWVudENvbmZpZyB9IGZyb20gXCJAL2FwcC9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB7XHJcbiAgZ2V0TWVzc2FnZVRleHRDb250ZW50LFxyXG4gIGlzVmlzaW9uTW9kZWwsXHJcbiAgaXNEYWxsZTMgYXMgX2lzRGFsbGUzLFxyXG59IGZyb20gXCJAL2FwcC91dGlsc1wiO1xyXG5pbXBvcnQgeyBmZXRjaCB9IGZyb20gXCJAL2FwcC91dGlscy9zdHJlYW1cIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkFJTGlzdE1vZGVsUmVzcG9uc2Uge1xyXG4gIG9iamVjdDogc3RyaW5nO1xyXG4gIGRhdGE6IEFycmF5PHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBvYmplY3Q6IHN0cmluZztcclxuICAgIHJvb3Q6IHN0cmluZztcclxuICB9PjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0UGF5bG9hZCB7XHJcbiAgbWVzc2FnZXM6IHtcclxuICAgIHJvbGU6IFwic3lzdGVtXCIgfCBcInVzZXJcIiB8IFwiYXNzaXN0YW50XCI7XHJcbiAgICBjb250ZW50OiBzdHJpbmcgfCBNdWx0aW1vZGFsQ29udGVudFtdO1xyXG4gIH1bXTtcclxuICBzdHJlYW0/OiBib29sZWFuO1xyXG4gIG1vZGVsOiBzdHJpbmc7XHJcbiAgdGVtcGVyYXR1cmU6IG51bWJlcjtcclxuICBwcmVzZW5jZV9wZW5hbHR5OiBudW1iZXI7XHJcbiAgZnJlcXVlbmN5X3BlbmFsdHk6IG51bWJlcjtcclxuICB0b3BfcDogbnVtYmVyO1xyXG4gIG1heF90b2tlbnM/OiBudW1iZXI7XHJcbiAgbWF4X2NvbXBsZXRpb25fdG9rZW5zPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERhbGxlUmVxdWVzdFBheWxvYWQge1xyXG4gIG1vZGVsOiBzdHJpbmc7XHJcbiAgcHJvbXB0OiBzdHJpbmc7XHJcbiAgcmVzcG9uc2VfZm9ybWF0OiBcInVybFwiIHwgXCJiNjRfanNvblwiO1xyXG4gIG46IG51bWJlcjtcclxuICBzaXplOiBNb2RlbFNpemU7XHJcbiAgcXVhbGl0eTogRGFsbGVRdWFsaXR5O1xyXG4gIHN0eWxlOiBEYWxsZVN0eWxlO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2hhdEdQVEFwaSBpbXBsZW1lbnRzIExMTUFwaSB7XHJcbiAgcHJpdmF0ZSBkaXNhYmxlTGlzdE1vZGVscyA9IHRydWU7XHJcblxyXG4gIHBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGFjY2Vzc1N0b3JlID0gdXNlQWNjZXNzU3RvcmUuZ2V0U3RhdGUoKTtcclxuXHJcbiAgICBsZXQgYmFzZVVybCA9IFwiXCI7XHJcblxyXG4gICAgY29uc3QgaXNBenVyZSA9IHBhdGguaW5jbHVkZXMoXCJkZXBsb3ltZW50c1wiKTtcclxuICAgIGlmIChhY2Nlc3NTdG9yZS51c2VDdXN0b21Db25maWcpIHtcclxuICAgICAgaWYgKGlzQXp1cmUgJiYgIWFjY2Vzc1N0b3JlLmlzVmFsaWRBenVyZSgpKSB7XHJcbiAgICAgICAgdGhyb3cgRXJyb3IoXHJcbiAgICAgICAgICBcImluY29tcGxldGUgYXp1cmUgY29uZmlnLCBwbGVhc2UgY2hlY2sgaXQgaW4geW91ciBzZXR0aW5ncyBwYWdlXCIsXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgYmFzZVVybCA9IGlzQXp1cmUgPyBhY2Nlc3NTdG9yZS5henVyZVVybCA6IGFjY2Vzc1N0b3JlLm9wZW5haVVybDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYmFzZVVybC5sZW5ndGggPT09IDApIHtcclxuICAgICAgY29uc3QgaXNBcHAgPSAhIWdldENsaWVudENvbmZpZygpPy5pc0FwcDtcclxuICAgICAgY29uc3QgYXBpUGF0aCA9IGlzQXp1cmUgPyBBcGlQYXRoLkF6dXJlIDogQXBpUGF0aC5PcGVuQUk7XHJcbiAgICAgIGJhc2VVcmwgPSBpc0FwcCA/IE9QRU5BSV9CQVNFX1VSTCA6IGFwaVBhdGg7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGJhc2VVcmwuZW5kc1dpdGgoXCIvXCIpKSB7XHJcbiAgICAgIGJhc2VVcmwgPSBiYXNlVXJsLnNsaWNlKDAsIGJhc2VVcmwubGVuZ3RoIC0gMSk7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgICFiYXNlVXJsLnN0YXJ0c1dpdGgoXCJodHRwXCIpICYmXHJcbiAgICAgICFpc0F6dXJlICYmXHJcbiAgICAgICFiYXNlVXJsLnN0YXJ0c1dpdGgoQXBpUGF0aC5PcGVuQUkpXHJcbiAgICApIHtcclxuICAgICAgYmFzZVVybCA9IFwiaHR0cHM6Ly9cIiArIGJhc2VVcmw7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJbUHJveHkgRW5kcG9pbnRdIFwiLCBiYXNlVXJsLCBwYXRoKTtcclxuXHJcbiAgICAvLyB0cnkgcmVidWlsZCB1cmwsIHdoZW4gdXNpbmcgY2xvdWRmbGFyZSBhaSBnYXRld2F5IGluIGNsaWVudFxyXG4gICAgcmV0dXJuIGNsb3VkZmxhcmVBSUdhdGV3YXlVcmwoW2Jhc2VVcmwsIHBhdGhdLmpvaW4oXCIvXCIpKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGV4dHJhY3RNZXNzYWdlKHJlczogYW55KSB7XHJcbiAgICBpZiAocmVzLmVycm9yKSB7XHJcbiAgICAgIHJldHVybiBcImBgYFxcblwiICsgSlNPTi5zdHJpbmdpZnkocmVzLCBudWxsLCA0KSArIFwiXFxuYGBgXCI7XHJcbiAgICB9XHJcbiAgICAvLyBkYWxsZTMgbW9kZWwgcmV0dXJuIHVybCwgdXNpbmcgdXJsIGNyZWF0ZSBpbWFnZSBtZXNzYWdlXHJcbiAgICBpZiAocmVzLmRhdGEpIHtcclxuICAgICAgbGV0IHVybCA9IHJlcy5kYXRhPy5hdCgwKT8udXJsID8/IFwiXCI7XHJcbiAgICAgIGNvbnN0IGI2NF9qc29uID0gcmVzLmRhdGE/LmF0KDApPy5iNjRfanNvbiA/PyBcIlwiO1xyXG4gICAgICBpZiAoIXVybCAmJiBiNjRfanNvbikge1xyXG4gICAgICAgIC8vIHVwbG9hZEltYWdlXHJcbiAgICAgICAgdXJsID0gYXdhaXQgdXBsb2FkSW1hZ2UoYmFzZTY0SW1hZ2UyQmxvYihiNjRfanNvbiwgXCJpbWFnZS9wbmdcIikpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdHlwZTogXCJpbWFnZV91cmxcIixcclxuICAgICAgICAgIGltYWdlX3VybDoge1xyXG4gICAgICAgICAgICB1cmwsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzLmNob2ljZXM/LmF0KDApPy5tZXNzYWdlPy5jb250ZW50ID8/IHJlcztcclxuICB9XHJcblxyXG4gIGFzeW5jIHNwZWVjaChvcHRpb25zOiBTcGVlY2hPcHRpb25zKTogUHJvbWlzZTxBcnJheUJ1ZmZlcj4ge1xyXG4gICAgY29uc3QgcmVxdWVzdFBheWxvYWQgPSB7XHJcbiAgICAgIG1vZGVsOiBvcHRpb25zLm1vZGVsLFxyXG4gICAgICBpbnB1dDogb3B0aW9ucy5pbnB1dCxcclxuICAgICAgdm9pY2U6IG9wdGlvbnMudm9pY2UsXHJcbiAgICAgIHJlc3BvbnNlX2Zvcm1hdDogb3B0aW9ucy5yZXNwb25zZV9mb3JtYXQsXHJcbiAgICAgIHNwZWVkOiBvcHRpb25zLnNwZWVkLFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIltSZXF1ZXN0XSBvcGVuYWkgc3BlZWNoIHBheWxvYWQ6IFwiLCByZXF1ZXN0UGF5bG9hZCk7XHJcblxyXG4gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcclxuICAgIG9wdGlvbnMub25Db250cm9sbGVyPy4oY29udHJvbGxlcik7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3Qgc3BlZWNoUGF0aCA9IHRoaXMucGF0aChPcGVuYWlQYXRoLlNwZWVjaFBhdGgpO1xyXG4gICAgICBjb25zdCBzcGVlY2hQYXlsb2FkID0ge1xyXG4gICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXHJcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkocmVxdWVzdFBheWxvYWQpLFxyXG4gICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWwsXHJcbiAgICAgICAgaGVhZGVyczogZ2V0SGVhZGVycygpLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy8gbWFrZSBhIGZldGNoIHJlcXVlc3RcclxuICAgICAgY29uc3QgcmVxdWVzdFRpbWVvdXRJZCA9IHNldFRpbWVvdXQoXHJcbiAgICAgICAgKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLFxyXG4gICAgICAgIFJFUVVFU1RfVElNRU9VVF9NUyxcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKHNwZWVjaFBhdGgsIHNwZWVjaFBheWxvYWQpO1xyXG4gICAgICBjbGVhclRpbWVvdXQocmVxdWVzdFRpbWVvdXRJZCk7XHJcbiAgICAgIHJldHVybiBhd2FpdCByZXMuYXJyYXlCdWZmZXIoKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJbUmVxdWVzdF0gZmFpbGVkIHRvIG1ha2UgYSBzcGVlY2ggcmVxdWVzdFwiLCBlKTtcclxuICAgICAgdGhyb3cgZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIGNoYXQob3B0aW9uczogQ2hhdE9wdGlvbnMpIHtcclxuICAgIGNvbnN0IG1vZGVsQ29uZmlnID0ge1xyXG4gICAgICAuLi51c2VBcHBDb25maWcuZ2V0U3RhdGUoKS5tb2RlbENvbmZpZyxcclxuICAgICAgLi4udXNlQ2hhdFN0b3JlLmdldFN0YXRlKCkuY3VycmVudFNlc3Npb24oKS5tYXNrLm1vZGVsQ29uZmlnLFxyXG4gICAgICAuLi57XHJcbiAgICAgICAgbW9kZWw6IG9wdGlvbnMuY29uZmlnLm1vZGVsLFxyXG4gICAgICAgIHByb3ZpZGVyTmFtZTogb3B0aW9ucy5jb25maWcucHJvdmlkZXJOYW1lLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuXHJcbiAgICBsZXQgcmVxdWVzdFBheWxvYWQ6IFJlcXVlc3RQYXlsb2FkIHwgRGFsbGVSZXF1ZXN0UGF5bG9hZDtcclxuXHJcbiAgICBjb25zdCBpc0RhbGxlMyA9IF9pc0RhbGxlMyhvcHRpb25zLmNvbmZpZy5tb2RlbCk7XHJcbiAgICBjb25zdCBpc08xT3JPMyA9XHJcbiAgICAgIG9wdGlvbnMuY29uZmlnLm1vZGVsLnN0YXJ0c1dpdGgoXCJvMVwiKSB8fFxyXG4gICAgICBvcHRpb25zLmNvbmZpZy5tb2RlbC5zdGFydHNXaXRoKFwibzNcIik7XHJcbiAgICBpZiAoaXNEYWxsZTMpIHtcclxuICAgICAgY29uc3QgcHJvbXB0ID0gZ2V0TWVzc2FnZVRleHRDb250ZW50KFxyXG4gICAgICAgIG9wdGlvbnMubWVzc2FnZXMuc2xpY2UoLTEpPy5wb3AoKSBhcyBhbnksXHJcbiAgICAgICk7XHJcbiAgICAgIHJlcXVlc3RQYXlsb2FkID0ge1xyXG4gICAgICAgIG1vZGVsOiBvcHRpb25zLmNvbmZpZy5tb2RlbCxcclxuICAgICAgICBwcm9tcHQsXHJcbiAgICAgICAgLy8gVVJMcyBhcmUgb25seSB2YWxpZCBmb3IgNjAgbWludXRlcyBhZnRlciB0aGUgaW1hZ2UgaGFzIGJlZW4gZ2VuZXJhdGVkLlxyXG4gICAgICAgIHJlc3BvbnNlX2Zvcm1hdDogXCJiNjRfanNvblwiLCAvLyB1c2luZyBiNjRfanNvbiwgYW5kIHNhdmUgaW1hZ2UgaW4gQ2FjaGVTdG9yYWdlXHJcbiAgICAgICAgbjogMSxcclxuICAgICAgICBzaXplOiBvcHRpb25zLmNvbmZpZz8uc2l6ZSA/PyBcIjEwMjR4MTAyNFwiLFxyXG4gICAgICAgIHF1YWxpdHk6IG9wdGlvbnMuY29uZmlnPy5xdWFsaXR5ID8/IFwic3RhbmRhcmRcIixcclxuICAgICAgICBzdHlsZTogb3B0aW9ucy5jb25maWc/LnN0eWxlID8/IFwidml2aWRcIixcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHZpc2lvbk1vZGVsID0gaXNWaXNpb25Nb2RlbChvcHRpb25zLmNvbmZpZy5tb2RlbCk7XHJcbiAgICAgIGNvbnN0IG1lc3NhZ2VzOiBDaGF0T3B0aW9uc1tcIm1lc3NhZ2VzXCJdID0gW107XHJcbiAgICAgIGZvciAoY29uc3QgdiBvZiBvcHRpb25zLm1lc3NhZ2VzKSB7XHJcbiAgICAgICAgY29uc3QgY29udGVudCA9IHZpc2lvbk1vZGVsXHJcbiAgICAgICAgICA/IGF3YWl0IHByZVByb2Nlc3NJbWFnZUNvbnRlbnQodi5jb250ZW50KVxyXG4gICAgICAgICAgOiBnZXRNZXNzYWdlVGV4dENvbnRlbnQodik7XHJcbiAgICAgICAgaWYgKCEoaXNPMU9yTzMgJiYgdi5yb2xlID09PSBcInN5c3RlbVwiKSlcclxuICAgICAgICAgIG1lc3NhZ2VzLnB1c2goeyByb2xlOiB2LnJvbGUsIGNvbnRlbnQgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIE8xIG5vdCBzdXBwb3J0IGltYWdlLCB0b29scyAocGx1Z2luIGluIENoYXRHUFROZXh0V2ViKSBhbmQgc3lzdGVtLCBzdHJlYW0sIGxvZ3Byb2JzLCB0ZW1wZXJhdHVyZSwgdG9wX3AsIG4sIHByZXNlbmNlX3BlbmFsdHksIGZyZXF1ZW5jeV9wZW5hbHR5IHlldC5cclxuICAgICAgcmVxdWVzdFBheWxvYWQgPSB7XHJcbiAgICAgICAgbWVzc2FnZXMsXHJcbiAgICAgICAgc3RyZWFtOiBvcHRpb25zLmNvbmZpZy5zdHJlYW0sXHJcbiAgICAgICAgbW9kZWw6IG1vZGVsQ29uZmlnLm1vZGVsLFxyXG4gICAgICAgIHRlbXBlcmF0dXJlOiAhaXNPMU9yTzMgPyBtb2RlbENvbmZpZy50ZW1wZXJhdHVyZSA6IDEsXHJcbiAgICAgICAgcHJlc2VuY2VfcGVuYWx0eTogIWlzTzFPck8zID8gbW9kZWxDb25maWcucHJlc2VuY2VfcGVuYWx0eSA6IDAsXHJcbiAgICAgICAgZnJlcXVlbmN5X3BlbmFsdHk6ICFpc08xT3JPMyA/IG1vZGVsQ29uZmlnLmZyZXF1ZW5jeV9wZW5hbHR5IDogMCxcclxuICAgICAgICB0b3BfcDogIWlzTzFPck8zID8gbW9kZWxDb25maWcudG9wX3AgOiAxLFxyXG4gICAgICAgIC8vIG1heF90b2tlbnM6IE1hdGgubWF4KG1vZGVsQ29uZmlnLm1heF90b2tlbnMsIDEwMjQpLFxyXG4gICAgICAgIC8vIFBsZWFzZSBkbyBub3QgYXNrIG1lIHdoeSBub3Qgc2VuZCBtYXhfdG9rZW5zLCBubyByZWFzb24sIHRoaXMgcGFyYW0gaXMganVzdCBzaGl0LCBJIGRvbnQgd2FudCB0byBleHBsYWluIGFueW1vcmUuXHJcbiAgICAgIH07XHJcblxyXG4gICAgICAvLyBPMSDkvb/nlKggbWF4X2NvbXBsZXRpb25fdG9rZW5zIOaOp+WItnRva2Vu5pWwIChodHRwczovL3BsYXRmb3JtLm9wZW5haS5jb20vZG9jcy9ndWlkZXMvcmVhc29uaW5nI2NvbnRyb2xsaW5nLWNvc3RzKVxyXG4gICAgICBpZiAoaXNPMU9yTzMpIHtcclxuICAgICAgICByZXF1ZXN0UGF5bG9hZFtcIm1heF9jb21wbGV0aW9uX3Rva2Vuc1wiXSA9IG1vZGVsQ29uZmlnLm1heF90b2tlbnM7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGFkZCBtYXhfdG9rZW5zIHRvIHZpc2lvbiBtb2RlbFxyXG4gICAgICBpZiAodmlzaW9uTW9kZWwpIHtcclxuICAgICAgICByZXF1ZXN0UGF5bG9hZFtcIm1heF90b2tlbnNcIl0gPSBNYXRoLm1heChtb2RlbENvbmZpZy5tYXhfdG9rZW5zLCA0MDAwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnNvbGUubG9nKFwiW1JlcXVlc3RdIG9wZW5haSBwYXlsb2FkOiBcIiwgcmVxdWVzdFBheWxvYWQpO1xyXG5cclxuICAgIGNvbnN0IHNob3VsZFN0cmVhbSA9ICFpc0RhbGxlMyAmJiAhIW9wdGlvbnMuY29uZmlnLnN0cmVhbTtcclxuICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XHJcbiAgICBvcHRpb25zLm9uQ29udHJvbGxlcj8uKGNvbnRyb2xsZXIpO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGxldCBjaGF0UGF0aCA9IFwiXCI7XHJcbiAgICAgIGlmIChtb2RlbENvbmZpZy5wcm92aWRlck5hbWUgPT09IFNlcnZpY2VQcm92aWRlci5BenVyZSkge1xyXG4gICAgICAgIC8vIGZpbmQgbW9kZWwsIGFuZCBnZXQgZGlzcGxheU5hbWUgYXMgZGVwbG95TmFtZVxyXG4gICAgICAgIGNvbnN0IHsgbW9kZWxzOiBjb25maWdNb2RlbHMsIGN1c3RvbU1vZGVsczogY29uZmlnQ3VzdG9tTW9kZWxzIH0gPVxyXG4gICAgICAgICAgdXNlQXBwQ29uZmlnLmdldFN0YXRlKCk7XHJcbiAgICAgICAgY29uc3Qge1xyXG4gICAgICAgICAgZGVmYXVsdE1vZGVsLFxyXG4gICAgICAgICAgY3VzdG9tTW9kZWxzOiBhY2Nlc3NDdXN0b21Nb2RlbHMsXHJcbiAgICAgICAgICB1c2VDdXN0b21Db25maWcsXHJcbiAgICAgICAgfSA9IHVzZUFjY2Vzc1N0b3JlLmdldFN0YXRlKCk7XHJcbiAgICAgICAgY29uc3QgbW9kZWxzID0gY29sbGVjdE1vZGVsc1dpdGhEZWZhdWx0TW9kZWwoXHJcbiAgICAgICAgICBjb25maWdNb2RlbHMsXHJcbiAgICAgICAgICBbY29uZmlnQ3VzdG9tTW9kZWxzLCBhY2Nlc3NDdXN0b21Nb2RlbHNdLmpvaW4oXCIsXCIpLFxyXG4gICAgICAgICAgZGVmYXVsdE1vZGVsLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgbW9kZWwgPSBtb2RlbHMuZmluZChcclxuICAgICAgICAgIChtb2RlbCkgPT5cclxuICAgICAgICAgICAgbW9kZWwubmFtZSA9PT0gbW9kZWxDb25maWcubW9kZWwgJiZcclxuICAgICAgICAgICAgbW9kZWw/LnByb3ZpZGVyPy5wcm92aWRlck5hbWUgPT09IFNlcnZpY2VQcm92aWRlci5BenVyZSxcclxuICAgICAgICApO1xyXG4gICAgICAgIGNoYXRQYXRoID0gdGhpcy5wYXRoKFxyXG4gICAgICAgICAgKGlzRGFsbGUzID8gQXp1cmUuSW1hZ2VQYXRoIDogQXp1cmUuQ2hhdFBhdGgpKFxyXG4gICAgICAgICAgICAobW9kZWw/LmRpc3BsYXlOYW1lID8/IG1vZGVsPy5uYW1lKSBhcyBzdHJpbmcsXHJcbiAgICAgICAgICAgIHVzZUN1c3RvbUNvbmZpZyA/IHVzZUFjY2Vzc1N0b3JlLmdldFN0YXRlKCkuYXp1cmVBcGlWZXJzaW9uIDogXCJcIixcclxuICAgICAgICAgICksXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjaGF0UGF0aCA9IHRoaXMucGF0aChcclxuICAgICAgICAgIGlzRGFsbGUzID8gT3BlbmFpUGF0aC5JbWFnZVBhdGggOiBPcGVuYWlQYXRoLkNoYXRQYXRoLFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHNob3VsZFN0cmVhbSkge1xyXG4gICAgICAgIGxldCBpbmRleCA9IC0xO1xyXG4gICAgICAgIGNvbnN0IFt0b29scywgZnVuY3NdID0gdXNlUGx1Z2luU3RvcmVcclxuICAgICAgICAgIC5nZXRTdGF0ZSgpXHJcbiAgICAgICAgICAuZ2V0QXNUb29scyhcclxuICAgICAgICAgICAgdXNlQ2hhdFN0b3JlLmdldFN0YXRlKCkuY3VycmVudFNlc3Npb24oKS5tYXNrPy5wbHVnaW4gfHwgW10sXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiZ2V0QXNUb29sc1wiLCB0b29scywgZnVuY3MpO1xyXG4gICAgICAgIHN0cmVhbShcclxuICAgICAgICAgIGNoYXRQYXRoLFxyXG4gICAgICAgICAgcmVxdWVzdFBheWxvYWQsXHJcbiAgICAgICAgICBnZXRIZWFkZXJzKCksXHJcbiAgICAgICAgICB0b29scyBhcyBhbnksXHJcbiAgICAgICAgICBmdW5jcyxcclxuICAgICAgICAgIGNvbnRyb2xsZXIsXHJcbiAgICAgICAgICAvLyBwYXJzZVNTRVxyXG4gICAgICAgICAgKHRleHQ6IHN0cmluZywgcnVuVG9vbHM6IENoYXRNZXNzYWdlVG9vbFtdKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwicGFyc2VTU0VcIiwgdGV4dCwgcnVuVG9vbHMpO1xyXG4gICAgICAgICAgICBjb25zdCBqc29uID0gSlNPTi5wYXJzZSh0ZXh0KTtcclxuICAgICAgICAgICAgY29uc3QgY2hvaWNlcyA9IGpzb24uY2hvaWNlcyBhcyBBcnJheTx7XHJcbiAgICAgICAgICAgICAgZGVsdGE6IHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHN0cmluZztcclxuICAgICAgICAgICAgICAgIHRvb2xfY2FsbHM6IENoYXRNZXNzYWdlVG9vbFtdO1xyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0+O1xyXG4gICAgICAgICAgICBjb25zdCB0b29sX2NhbGxzID0gY2hvaWNlc1swXT8uZGVsdGE/LnRvb2xfY2FsbHM7XHJcbiAgICAgICAgICAgIGlmICh0b29sX2NhbGxzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgaWQgPSB0b29sX2NhbGxzWzBdPy5pZDtcclxuICAgICAgICAgICAgICBjb25zdCBhcmdzID0gdG9vbF9jYWxsc1swXT8uZnVuY3Rpb24/LmFyZ3VtZW50cztcclxuICAgICAgICAgICAgICBpZiAoaWQpIHtcclxuICAgICAgICAgICAgICAgIGluZGV4ICs9IDE7XHJcbiAgICAgICAgICAgICAgICBydW5Ub29scy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgaWQsXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IHRvb2xfY2FsbHNbMF0/LnR5cGUsXHJcbiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdG9vbF9jYWxsc1swXT8uZnVuY3Rpb24/Lm5hbWUgYXMgc3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50czogYXJncyxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICBydW5Ub29sc1tpbmRleF1bXCJmdW5jdGlvblwiXVtcImFyZ3VtZW50c1wiXSArPSBhcmdzO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gY2hvaWNlc1swXT8uZGVsdGE/LmNvbnRlbnQ7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLy8gcHJvY2Vzc1Rvb2xNZXNzYWdlLCBpbmNsdWRlIHRvb2xfY2FsbHMgbWVzc2FnZSBhbmQgdG9vbCBjYWxsIHJlc3VsdHNcclxuICAgICAgICAgIChcclxuICAgICAgICAgICAgcmVxdWVzdFBheWxvYWQ6IFJlcXVlc3RQYXlsb2FkLFxyXG4gICAgICAgICAgICB0b29sQ2FsbE1lc3NhZ2U6IGFueSxcclxuICAgICAgICAgICAgdG9vbENhbGxSZXN1bHQ6IGFueVtdLFxyXG4gICAgICAgICAgKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIHJlc2V0IGluZGV4IHZhbHVlXHJcbiAgICAgICAgICAgIGluZGV4ID0gLTE7XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgcmVxdWVzdFBheWxvYWQ/Lm1lc3NhZ2VzPy5zcGxpY2UoXHJcbiAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgIHJlcXVlc3RQYXlsb2FkPy5tZXNzYWdlcz8ubGVuZ3RoLFxyXG4gICAgICAgICAgICAgIDAsXHJcbiAgICAgICAgICAgICAgdG9vbENhbGxNZXNzYWdlLFxyXG4gICAgICAgICAgICAgIC4uLnRvb2xDYWxsUmVzdWx0LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9wdGlvbnMsXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBjaGF0UGF5bG9hZCA9IHtcclxuICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXHJcbiAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShyZXF1ZXN0UGF5bG9hZCksXHJcbiAgICAgICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsLFxyXG4gICAgICAgICAgaGVhZGVyczogZ2V0SGVhZGVycygpLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIC8vIG1ha2UgYSBmZXRjaCByZXF1ZXN0XHJcbiAgICAgICAgY29uc3QgcmVxdWVzdFRpbWVvdXRJZCA9IHNldFRpbWVvdXQoXHJcbiAgICAgICAgICAoKSA9PiBjb250cm9sbGVyLmFib3J0KCksXHJcbiAgICAgICAgICBpc0RhbGxlMyB8fCBpc08xT3JPM1xyXG4gICAgICAgICAgICA/IFJFUVVFU1RfVElNRU9VVF9NU19GT1JfVEhJTktJTkdcclxuICAgICAgICAgICAgOiBSRVFVRVNUX1RJTUVPVVRfTVMsIC8vIGRhbGxlMyB1c2luZyBiNjRfanNvbiBpcyBzbG93LlxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKGNoYXRQYXRoLCBjaGF0UGF5bG9hZCk7XHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KHJlcXVlc3RUaW1lb3V0SWQpO1xyXG5cclxuICAgICAgICBjb25zdCByZXNKc29uID0gYXdhaXQgcmVzLmpzb24oKTtcclxuICAgICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgdGhpcy5leHRyYWN0TWVzc2FnZShyZXNKc29uKTtcclxuICAgICAgICBvcHRpb25zLm9uRmluaXNoKG1lc3NhZ2UsIHJlcyk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJbUmVxdWVzdF0gZmFpbGVkIHRvIG1ha2UgYSBjaGF0IHJlcXVlc3RcIiwgZSk7XHJcbiAgICAgIG9wdGlvbnMub25FcnJvcj8uKGUgYXMgRXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuICBhc3luYyB1c2FnZSgpIHtcclxuICAgIGNvbnN0IGZvcm1hdERhdGUgPSAoZDogRGF0ZSkgPT5cclxuICAgICAgYCR7ZC5nZXRGdWxsWWVhcigpfS0keyhkLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIFwiMFwiKX0tJHtkXHJcbiAgICAgICAgLmdldERhdGUoKVxyXG4gICAgICAgIC50b1N0cmluZygpXHJcbiAgICAgICAgLnBhZFN0YXJ0KDIsIFwiMFwiKX1gO1xyXG4gICAgY29uc3QgT05FX0RBWSA9IDEgKiAyNCAqIDYwICogNjAgKiAxMDAwO1xyXG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcclxuICAgIGNvbnN0IHN0YXJ0T2ZNb250aCA9IG5ldyBEYXRlKG5vdy5nZXRGdWxsWWVhcigpLCBub3cuZ2V0TW9udGgoKSwgMSk7XHJcbiAgICBjb25zdCBzdGFydERhdGUgPSBmb3JtYXREYXRlKHN0YXJ0T2ZNb250aCk7XHJcbiAgICBjb25zdCBlbmREYXRlID0gZm9ybWF0RGF0ZShuZXcgRGF0ZShEYXRlLm5vdygpICsgT05FX0RBWSkpO1xyXG5cclxuICAgIGNvbnN0IFt1c2VkLCBzdWJzXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcclxuICAgICAgZmV0Y2goXHJcbiAgICAgICAgdGhpcy5wYXRoKFxyXG4gICAgICAgICAgYCR7T3BlbmFpUGF0aC5Vc2FnZVBhdGh9P3N0YXJ0X2RhdGU9JHtzdGFydERhdGV9JmVuZF9kYXRlPSR7ZW5kRGF0ZX1gLFxyXG4gICAgICAgICksXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbWV0aG9kOiBcIkdFVFwiLFxyXG4gICAgICAgICAgaGVhZGVyczogZ2V0SGVhZGVycygpLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICksXHJcbiAgICAgIGZldGNoKHRoaXMucGF0aChPcGVuYWlQYXRoLlN1YnNQYXRoKSwge1xyXG4gICAgICAgIG1ldGhvZDogXCJHRVRcIixcclxuICAgICAgICBoZWFkZXJzOiBnZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pLFxyXG4gICAgXSk7XHJcblxyXG4gICAgaWYgKHVzZWQuc3RhdHVzID09PSA0MDEpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKExvY2FsZS5FcnJvci5VbmF1dGhvcml6ZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdXNlZC5vayB8fCAhc3Vicy5vaykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJGYWlsZWQgdG8gcXVlcnkgdXNhZ2UgZnJvbSBvcGVuYWlcIik7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVzcG9uc2UgPSAoYXdhaXQgdXNlZC5qc29uKCkpIGFzIHtcclxuICAgICAgdG90YWxfdXNhZ2U/OiBudW1iZXI7XHJcbiAgICAgIGVycm9yPzoge1xyXG4gICAgICAgIHR5cGU6IHN0cmluZztcclxuICAgICAgICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgICAgIH07XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHRvdGFsID0gKGF3YWl0IHN1YnMuanNvbigpKSBhcyB7XHJcbiAgICAgIGhhcmRfbGltaXRfdXNkPzogbnVtYmVyO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAocmVzcG9uc2UuZXJyb3IgJiYgcmVzcG9uc2UuZXJyb3IudHlwZSkge1xyXG4gICAgICB0aHJvdyBFcnJvcihyZXNwb25zZS5lcnJvci5tZXNzYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocmVzcG9uc2UudG90YWxfdXNhZ2UpIHtcclxuICAgICAgcmVzcG9uc2UudG90YWxfdXNhZ2UgPSBNYXRoLnJvdW5kKHJlc3BvbnNlLnRvdGFsX3VzYWdlKSAvIDEwMDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodG90YWwuaGFyZF9saW1pdF91c2QpIHtcclxuICAgICAgdG90YWwuaGFyZF9saW1pdF91c2QgPSBNYXRoLnJvdW5kKHRvdGFsLmhhcmRfbGltaXRfdXNkICogMTAwKSAvIDEwMDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB1c2VkOiByZXNwb25zZS50b3RhbF91c2FnZSxcclxuICAgICAgdG90YWw6IHRvdGFsLmhhcmRfbGltaXRfdXNkLFxyXG4gICAgfSBhcyBMTE1Vc2FnZTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG1vZGVscygpOiBQcm9taXNlPExMTU1vZGVsW10+IHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVMaXN0TW9kZWxzKSB7XHJcbiAgICAgIHJldHVybiBERUZBVUxUX01PREVMUy5zbGljZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKHRoaXMucGF0aChPcGVuYWlQYXRoLkxpc3RNb2RlbFBhdGgpLCB7XHJcbiAgICAgIG1ldGhvZDogXCJHRVRcIixcclxuICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgIC4uLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IHJlc0pzb24gPSAoYXdhaXQgcmVzLmpzb24oKSkgYXMgT3BlbkFJTGlzdE1vZGVsUmVzcG9uc2U7XHJcbiAgICBjb25zdCBjaGF0TW9kZWxzID0gcmVzSnNvbi5kYXRhPy5maWx0ZXIoXHJcbiAgICAgIChtKSA9PiBtLmlkLnN0YXJ0c1dpdGgoXCJncHQtXCIpIHx8IG0uaWQuc3RhcnRzV2l0aChcImNoYXRncHQtXCIpLFxyXG4gICAgKTtcclxuICAgIGNvbnNvbGUubG9nKFwiW01vZGVsc11cIiwgY2hhdE1vZGVscyk7XHJcblxyXG4gICAgaWYgKCFjaGF0TW9kZWxzKSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuXHJcbiAgICAvL+eUseS6juebruWJjSBPcGVuQUkg55qEIGRpc2FibGVMaXN0TW9kZWxzIOm7mOiupOS4uiB0cnVl77yM5omA5Lul5b2T5YmN5a6e6ZmF5LiN5Lya6L+Q6KGM5Yiw6L+Z5Zy6XHJcbiAgICBsZXQgc2VxID0gMTAwMDsgLy/lkIwgQ29uc3RhbnQudHMg5Lit55qE5o6S5bqP5L+d5oyB5LiA6Ie0XHJcbiAgICByZXR1cm4gY2hhdE1vZGVscy5tYXAoKG0pID0+ICh7XHJcbiAgICAgIG5hbWU6IG0uaWQsXHJcbiAgICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgICAgc29ydGVkOiBzZXErKyxcclxuICAgICAgcHJvdmlkZXI6IHtcclxuICAgICAgICBpZDogXCJvcGVuYWlcIixcclxuICAgICAgICBwcm92aWRlck5hbWU6IFwiT3BlbkFJXCIsXHJcbiAgICAgICAgcHJvdmlkZXJUeXBlOiBcIm9wZW5haVwiLFxyXG4gICAgICAgIHNvcnRlZDogMSxcclxuICAgICAgfSxcclxuICAgIH0pKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IHsgT3BlbmFpUGF0aCB9O1xyXG4iXSwibmFtZXMiOlsiQXBpUGF0aCIsIk9QRU5BSV9CQVNFX1VSTCIsIkRFRkFVTFRfTU9ERUxTIiwiT3BlbmFpUGF0aCIsIkF6dXJlIiwiUkVRVUVTVF9USU1FT1VUX01TIiwiU2VydmljZVByb3ZpZGVyIiwiUkVRVUVTVF9USU1FT1VUX01TX0ZPUl9USElOS0lORyIsInVzZUFjY2Vzc1N0b3JlIiwidXNlQXBwQ29uZmlnIiwidXNlQ2hhdFN0b3JlIiwidXNlUGx1Z2luU3RvcmUiLCJjb2xsZWN0TW9kZWxzV2l0aERlZmF1bHRNb2RlbCIsInByZVByb2Nlc3NJbWFnZUNvbnRlbnQiLCJ1cGxvYWRJbWFnZSIsImJhc2U2NEltYWdlMkJsb2IiLCJzdHJlYW0iLCJjbG91ZGZsYXJlQUlHYXRld2F5VXJsIiwiZ2V0SGVhZGVycyIsIkxvY2FsZSIsImdldENsaWVudENvbmZpZyIsImdldE1lc3NhZ2VUZXh0Q29udGVudCIsImlzVmlzaW9uTW9kZWwiLCJpc0RhbGxlMyIsIl9pc0RhbGxlMyIsImZldGNoIiwiQ2hhdEdQVEFwaSIsInBhdGgiLCJhY2Nlc3NTdG9yZSIsImdldFN0YXRlIiwiYmFzZVVybCIsImlzQXp1cmUiLCJpbmNsdWRlcyIsInVzZUN1c3RvbUNvbmZpZyIsImlzVmFsaWRBenVyZSIsIkVycm9yIiwiYXp1cmVVcmwiLCJvcGVuYWlVcmwiLCJsZW5ndGgiLCJpc0FwcCIsImFwaVBhdGgiLCJPcGVuQUkiLCJlbmRzV2l0aCIsInNsaWNlIiwic3RhcnRzV2l0aCIsImNvbnNvbGUiLCJsb2ciLCJqb2luIiwiZXh0cmFjdE1lc3NhZ2UiLCJyZXMiLCJlcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJkYXRhIiwidXJsIiwiYXQiLCJiNjRfanNvbiIsInR5cGUiLCJpbWFnZV91cmwiLCJjaG9pY2VzIiwibWVzc2FnZSIsImNvbnRlbnQiLCJzcGVlY2giLCJvcHRpb25zIiwicmVxdWVzdFBheWxvYWQiLCJtb2RlbCIsImlucHV0Iiwidm9pY2UiLCJyZXNwb25zZV9mb3JtYXQiLCJzcGVlZCIsImNvbnRyb2xsZXIiLCJBYm9ydENvbnRyb2xsZXIiLCJvbkNvbnRyb2xsZXIiLCJzcGVlY2hQYXRoIiwiU3BlZWNoUGF0aCIsInNwZWVjaFBheWxvYWQiLCJtZXRob2QiLCJib2R5Iiwic2lnbmFsIiwiaGVhZGVycyIsInJlcXVlc3RUaW1lb3V0SWQiLCJzZXRUaW1lb3V0IiwiYWJvcnQiLCJjbGVhclRpbWVvdXQiLCJhcnJheUJ1ZmZlciIsImUiLCJjaGF0IiwibW9kZWxDb25maWciLCJjdXJyZW50U2Vzc2lvbiIsIm1hc2siLCJjb25maWciLCJwcm92aWRlck5hbWUiLCJpc08xT3JPMyIsInByb21wdCIsIm1lc3NhZ2VzIiwicG9wIiwibiIsInNpemUiLCJxdWFsaXR5Iiwic3R5bGUiLCJ2aXNpb25Nb2RlbCIsInYiLCJyb2xlIiwicHVzaCIsInRlbXBlcmF0dXJlIiwicHJlc2VuY2VfcGVuYWx0eSIsImZyZXF1ZW5jeV9wZW5hbHR5IiwidG9wX3AiLCJtYXhfdG9rZW5zIiwiTWF0aCIsIm1heCIsInNob3VsZFN0cmVhbSIsImNoYXRQYXRoIiwibW9kZWxzIiwiY29uZmlnTW9kZWxzIiwiY3VzdG9tTW9kZWxzIiwiY29uZmlnQ3VzdG9tTW9kZWxzIiwiZGVmYXVsdE1vZGVsIiwiYWNjZXNzQ3VzdG9tTW9kZWxzIiwiZmluZCIsIm5hbWUiLCJwcm92aWRlciIsIkltYWdlUGF0aCIsIkNoYXRQYXRoIiwiZGlzcGxheU5hbWUiLCJhenVyZUFwaVZlcnNpb24iLCJpbmRleCIsInRvb2xzIiwiZnVuY3MiLCJnZXRBc1Rvb2xzIiwicGx1Z2luIiwidGV4dCIsInJ1blRvb2xzIiwianNvbiIsInBhcnNlIiwidG9vbF9jYWxscyIsImRlbHRhIiwiaWQiLCJhcmdzIiwiZnVuY3Rpb24iLCJhcmd1bWVudHMiLCJ0b29sQ2FsbE1lc3NhZ2UiLCJ0b29sQ2FsbFJlc3VsdCIsInNwbGljZSIsImNoYXRQYXlsb2FkIiwicmVzSnNvbiIsIm9uRmluaXNoIiwib25FcnJvciIsInVzYWdlIiwiZm9ybWF0RGF0ZSIsImQiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwidG9TdHJpbmciLCJwYWRTdGFydCIsImdldERhdGUiLCJPTkVfREFZIiwibm93IiwiRGF0ZSIsInN0YXJ0T2ZNb250aCIsInN0YXJ0RGF0ZSIsImVuZERhdGUiLCJ1c2VkIiwic3VicyIsIlByb21pc2UiLCJhbGwiLCJVc2FnZVBhdGgiLCJTdWJzUGF0aCIsInN0YXR1cyIsIlVuYXV0aG9yaXplZCIsIm9rIiwicmVzcG9uc2UiLCJ0b3RhbCIsInRvdGFsX3VzYWdlIiwicm91bmQiLCJoYXJkX2xpbWl0X3VzZCIsImRpc2FibGVMaXN0TW9kZWxzIiwiTGlzdE1vZGVsUGF0aCIsImNoYXRNb2RlbHMiLCJmaWx0ZXIiLCJtIiwic2VxIiwibWFwIiwiYXZhaWxhYmxlIiwic29ydGVkIiwicHJvdmlkZXJUeXBlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/client/platforms/openai.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/client/platforms/siliconflow.ts":
|
|
|
/*!*********************************************!*\
|
|
|
!*** ./app/client/platforms/siliconflow.ts ***!
|
|
|
\*********************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SiliconflowApi: () => (/* binding */ SiliconflowApi)\n/* harmony export */ });\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _app_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/app/store */ \"(ssr)/./app/store/index.ts\");\n/* harmony import */ var _app_utils_chat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/utils/chat */ \"(ssr)/./app/utils/chat.ts\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../api */ \"(ssr)/./app/client/api.ts\");\n/* harmony import */ var _app_config_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/app/config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/app/utils */ \"(ssr)/./app/utils.ts\");\n/* harmony import */ var _app_utils_stream__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/app/utils/stream */ \"(ssr)/./app/utils/stream.ts\");\n/* __next_internal_client_entry_do_not_use__ SiliconflowApi auto */ // azure and openai, using same models. so using same LLMApi.\n\n\n\n\n\n\n\nclass SiliconflowApi {\n path(path) {\n const accessStore = _app_store__WEBPACK_IMPORTED_MODULE_1__.useAccessStore.getState();\n let baseUrl = \"\";\n if (accessStore.useCustomConfig) {\n baseUrl = accessStore.siliconflowUrl;\n }\n if (baseUrl.length === 0) {\n const isApp = !!(0,_app_config_client__WEBPACK_IMPORTED_MODULE_4__.getClientConfig)()?.isApp;\n const apiPath = _app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.SiliconFlow;\n baseUrl = isApp ? _app_constant__WEBPACK_IMPORTED_MODULE_0__.SILICONFLOW_BASE_URL : apiPath;\n }\n if (baseUrl.endsWith(\"/\")) {\n baseUrl = baseUrl.slice(0, baseUrl.length - 1);\n }\n if (!baseUrl.startsWith(\"http\") && !baseUrl.startsWith(_app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.SiliconFlow)) {\n baseUrl = \"https://\" + baseUrl;\n }\n console.log(\"[Proxy Endpoint] \", baseUrl, path);\n return [\n baseUrl,\n path\n ].join(\"/\");\n }\n extractMessage(res) {\n return res.choices?.at(0)?.message?.content ?? \"\";\n }\n speech(options) {\n throw new Error(\"Method not implemented.\");\n }\n async chat(options) {\n const messages = [];\n for (const v of options.messages){\n if (v.role === \"assistant\") {\n const content = (0,_app_utils__WEBPACK_IMPORTED_MODULE_5__.getMessageTextContentWithoutThinking)(v);\n messages.push({\n role: v.role,\n content\n });\n } else {\n const content = (0,_app_utils__WEBPACK_IMPORTED_MODULE_5__.getMessageTextContent)(v);\n messages.push({\n role: v.role,\n content\n });\n }\n }\n const modelConfig = {\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useAppConfig.getState().modelConfig,\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useChatStore.getState().currentSession().mask.modelConfig,\n ...{\n model: options.config.model,\n providerName: options.config.providerName\n }\n };\n const requestPayload = {\n messages,\n stream: options.config.stream,\n model: modelConfig.model,\n temperature: modelConfig.temperature,\n presence_penalty: modelConfig.presence_penalty,\n frequency_penalty: modelConfig.frequency_penalty,\n top_p: modelConfig.top_p\n };\n console.log(\"[Request] openai payload: \", requestPayload);\n const shouldStream = !!options.config.stream;\n const controller = new AbortController();\n options.onController?.(controller);\n try {\n const chatPath = this.path(_app_constant__WEBPACK_IMPORTED_MODULE_0__.SiliconFlow.ChatPath);\n const chatPayload = {\n method: \"POST\",\n body: JSON.stringify(requestPayload),\n signal: controller.signal,\n headers: (0,_api__WEBPACK_IMPORTED_MODULE_3__.getHeaders)()\n };\n // console.log(chatPayload);\n // Use extended timeout for thinking models as they typically require more processing time\n const requestTimeoutId = setTimeout(()=>controller.abort(), _app_constant__WEBPACK_IMPORTED_MODULE_0__.REQUEST_TIMEOUT_MS_FOR_THINKING);\n if (shouldStream) {\n const [tools, funcs] = _app_store__WEBPACK_IMPORTED_MODULE_1__.usePluginStore.getState().getAsTools(_app_store__WEBPACK_IMPORTED_MODULE_1__.useChatStore.getState().currentSession().mask?.plugin || []);\n return (0,_app_utils_chat__WEBPACK_IMPORTED_MODULE_2__.streamWithThink)(chatPath, requestPayload, (0,_api__WEBPACK_IMPORTED_MODULE_3__.getHeaders)(), tools, funcs, controller, // parseSSE\n (text, runTools)=>{\n // console.log(\"parseSSE\", text, runTools);\n const json = JSON.parse(text);\n const choices = json.choices;\n const tool_calls = choices[0]?.delta?.tool_calls;\n if (tool_calls?.length > 0) {\n const index = tool_calls[0]?.index;\n const id = tool_calls[0]?.id;\n const args = tool_calls[0]?.function?.arguments;\n if (id) {\n runTools.push({\n id,\n type: tool_calls[0]?.type,\n function: {\n name: tool_calls[0]?.function?.name,\n arguments: args\n }\n });\n } else {\n // @ts-ignore\n runTools[index][\"function\"][\"arguments\"] += args;\n }\n }\n const reasoning = choices[0]?.delta?.reasoning_content;\n const content = choices[0]?.delta?.content;\n // Skip if both content and reasoning_content are empty or null\n if ((!reasoning || reasoning.length === 0) && (!content || content.length === 0)) {\n return {\n isThinking: false,\n content: \"\"\n };\n }\n if (reasoning && reasoning.length > 0) {\n return {\n isThinking: true,\n content: reasoning\n };\n } else if (content && content.length > 0) {\n return {\n isThinking: false,\n content: content\n };\n }\n return {\n isThinking: false,\n content: \"\"\n };\n }, // processToolMessage, include tool_calls message and tool call results\n (requestPayload, toolCallMessage, toolCallResult)=>{\n // @ts-ignore\n requestPayload?.messages?.splice(// @ts-ignore\n requestPayload?.messages?.length, 0, toolCallMessage, ...toolCallResult);\n }, options);\n } else {\n const res = await (0,_app_utils_stream__WEBPACK_IMPORTED_MODULE_6__.fetch)(chatPath, chatPayload);\n clearTimeout(requestTimeoutId);\n const resJson = await res.json();\n const message = this.extractMessage(resJson);\n options.onFinish(message, res);\n }\n } catch (e) {\n console.log(\"[Request] failed to make a chat request\", e);\n options.onError?.(e);\n }\n }\n async usage() {\n return {\n used: 0,\n total: 0\n };\n }\n async models() {\n return [];\n }\n constructor(){\n this.disableListModels = true;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvY2xpZW50L3BsYXRmb3Jtcy9zaWxpY29uZmxvdy50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztvRUFDQSw2REFBNkQ7QUFNckM7QUFPSDtBQUM4QjtBQU9uQztBQUNzQztBQUlqQztBQUVzQjtBQUVwQyxNQUFNYztJQUdYQyxLQUFLQSxJQUFZLEVBQVU7UUFDekIsTUFBTUMsY0FBY1osc0RBQWNBLENBQUNhLFFBQVE7UUFFM0MsSUFBSUMsVUFBVTtRQUVkLElBQUlGLFlBQVlHLGVBQWUsRUFBRTtZQUMvQkQsVUFBVUYsWUFBWUksY0FBYztRQUN0QztRQUVBLElBQUlGLFFBQVFHLE1BQU0sS0FBSyxHQUFHO1lBQ3hCLE1BQU1DLFFBQVEsQ0FBQyxDQUFDWixtRUFBZUEsSUFBSVk7WUFDbkMsTUFBTUMsVUFBVXZCLGtEQUFPQSxDQUFDRSxXQUFXO1lBQ25DZ0IsVUFBVUksUUFBUXJCLCtEQUFvQkEsR0FBR3NCO1FBQzNDO1FBRUEsSUFBSUwsUUFBUU0sUUFBUSxDQUFDLE1BQU07WUFDekJOLFVBQVVBLFFBQVFPLEtBQUssQ0FBQyxHQUFHUCxRQUFRRyxNQUFNLEdBQUc7UUFDOUM7UUFDQSxJQUNFLENBQUNILFFBQVFRLFVBQVUsQ0FBQyxXQUNwQixDQUFDUixRQUFRUSxVQUFVLENBQUMxQixrREFBT0EsQ0FBQ0UsV0FBVyxHQUN2QztZQUNBZ0IsVUFBVSxhQUFhQTtRQUN6QjtRQUVBUyxRQUFRQyxHQUFHLENBQUMscUJBQXFCVixTQUFTSDtRQUUxQyxPQUFPO1lBQUNHO1lBQVNIO1NBQUssQ0FBQ2MsSUFBSSxDQUFDO0lBQzlCO0lBRUFDLGVBQWVDLEdBQVEsRUFBRTtRQUN2QixPQUFPQSxJQUFJQyxPQUFPLEVBQUVDLEdBQUcsSUFBSUMsU0FBU0MsV0FBVztJQUNqRDtJQUVBQyxPQUFPQyxPQUFzQixFQUF3QjtRQUNuRCxNQUFNLElBQUlDLE1BQU07SUFDbEI7SUFFQSxNQUFNQyxLQUFLRixPQUFvQixFQUFFO1FBQy9CLE1BQU1HLFdBQW9D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UUFDRixFQUFFLE9BQU9tRSxHQUFHO1lBQ1Z2RSxRQUFRQyxHQUFHLENBQUMsMkNBQTJDc0U7WUFDdkQ3RCxRQUFROEQsT0FBTyxHQUFHRDtRQUNwQjtJQUNGO0lBQ0EsTUFBTUUsUUFBUTtRQUNaLE9BQU87WUFDTEMsTUFBTTtZQUNOQyxPQUFPO1FBQ1Q7SUFDRjtJQUVBLE1BQU1DLFNBQThCO1FBQ2xDLE9BQU8sRUFBRTtJQUNYOzthQWpOUUMsb0JBQW9COztBQWtOOUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9jbGllbnQvcGxhdGZvcm1zL3NpbGljb25mbG93LnRzPzY0ZjgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcbi8vIGF6dXJlIGFuZCBvcGVuYWksIHVzaW5nIHNhbWUgbW9kZWxzLiBzbyB1c2luZyBzYW1lIExMTUFwaS5cclxuaW1wb3J0IHtcclxuICBBcGlQYXRoLFxyXG4gIFNJTElDT05GTE9XX0JBU0VfVVJMLFxyXG4gIFNpbGljb25GbG93LFxyXG4gIFJFUVVFU1RfVElNRU9VVF9NU19GT1JfVEhJTktJTkcsXHJcbn0gZnJvbSBcIkAvYXBwL2NvbnN0YW50XCI7XHJcbmltcG9ydCB7XHJcbiAgdXNlQWNjZXNzU3RvcmUsXHJcbiAgdXNlQXBwQ29uZmlnLFxyXG4gIHVzZUNoYXRTdG9yZSxcclxuICBDaGF0TWVzc2FnZVRvb2wsXHJcbiAgdXNlUGx1Z2luU3RvcmUsXHJcbn0gZnJvbSBcIkAvYXBwL3N0b3JlXCI7XHJcbmltcG9ydCB7IHN0cmVhbVdpdGhUaGluayB9IGZyb20gXCJAL2FwcC91dGlscy9jaGF0XCI7XHJcbmltcG9ydCB7XHJcbiAgQ2hhdE9wdGlvbnMsXHJcbiAgZ2V0SGVhZGVycyxcclxuICBMTE1BcGksXHJcbiAgTExNTW9kZWwsXHJcbiAgU3BlZWNoT3B0aW9ucyxcclxufSBmcm9tIFwiLi4vYXBpXCI7XHJcbmltcG9ydCB7IGdldENsaWVudENvbmZpZyB9IGZyb20gXCJAL2FwcC9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB7XHJcbiAgZ2V0TWVzc2FnZVRleHRDb250ZW50LFxyXG4gIGdldE1lc3NhZ2VUZXh0Q29udGVudFdpdGhvdXRUaGlua2luZyxcclxufSBmcm9tIFwiQC9hcHAvdXRpbHNcIjtcclxuaW1wb3J0IHsgUmVxdWVzdFBheWxvYWQgfSBmcm9tIFwiLi9vcGVuYWlcIjtcclxuaW1wb3J0IHsgZmV0Y2ggfSBmcm9tIFwiQC9hcHAvdXRpbHMvc3RyZWFtXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgU2lsaWNvbmZsb3dBcGkgaW1wbGVtZW50cyBMTE1BcGkge1xyXG4gIHByaXZhdGUgZGlzYWJsZUxpc3RNb2RlbHMgPSB0cnVlO1xyXG5cclxuICBwYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBhY2Nlc3NTdG9yZSA9IHVzZUFjY2Vzc1N0b3JlLmdldFN0YXRlKCk7XHJcblxyXG4gICAgbGV0IGJhc2VVcmwgPSBcIlwiO1xyXG5cclxuICAgIGlmIChhY2Nlc3NTdG9yZS51c2VDdXN0b21Db25maWcpIHtcclxuICAgICAgYmFzZVVybCA9IGFjY2Vzc1N0b3JlLnNpbGljb25mbG93VXJsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChiYXNlVXJsLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBjb25zdCBpc0FwcCA9ICEhZ2V0Q2xpZW50Q29uZmlnKCk/LmlzQXBwO1xyXG4gICAgICBjb25zdCBhcGlQYXRoID0gQXBpUGF0aC5TaWxpY29uRmxvdztcclxuICAgICAgYmFzZVVybCA9IGlzQXBwID8gU0lMSUNPTkZMT1dfQkFTRV9VUkwgOiBhcGlQYXRoO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChiYXNlVXJsLmVuZHNXaXRoKFwiL1wiKSkge1xyXG4gICAgICBiYXNlVXJsID0gYmFzZVVybC5zbGljZSgwLCBiYXNlVXJsLmxlbmd0aCAtIDEpO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICAhYmFzZVVybC5zdGFydHNXaXRoKFwiaHR0cFwiKSAmJlxyXG4gICAgICAhYmFzZVVybC5zdGFydHNXaXRoKEFwaVBhdGguU2lsaWNvbkZsb3cpXHJcbiAgICApIHtcclxuICAgICAgYmFzZVVybCA9IFwiaHR0cHM6Ly9cIiArIGJhc2VVcmw7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJbUHJveHkgRW5kcG9pbnRdIFwiLCBiYXNlVXJsLCBwYXRoKTtcclxuXHJcbiAgICByZXR1cm4gW2Jhc2VVcmwsIHBhdGhdLmpvaW4oXCIvXCIpO1xyXG4gIH1cclxuXHJcbiAgZXh0cmFjdE1lc3NhZ2UocmVzOiBhbnkpIHtcclxuICAgIHJldHVybiByZXMuY2hvaWNlcz8uYXQoMCk/Lm1lc3NhZ2U/LmNvbnRlbnQgPz8gXCJcIjtcclxuICB9XHJcblxyXG4gIHNwZWVjaChvcHRpb25zOiBTcGVlY2hPcHRpb25zKTogUHJvbWlzZTxBcnJheUJ1ZmZlcj4ge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XHJcbiAgfVxyXG5cclxuICBhc3luYyBjaGF0KG9wdGlvbnM6IENoYXRPcHRpb25zKSB7XHJcbiAgICBjb25zdCBtZXNzYWdlczogQ2hhdE9wdGlvbnNbXCJtZXNzYWdlc1wiXSA9IFtdO1xyXG4gICAgZm9yIChjb25zdCB2IG9mIG9wdGlvbnMubWVzc2FnZXMpIHtcclxuICAgICAgaWYgKHYucm9sZSA9PT0gXCJhc3Npc3RhbnRcIikge1xyXG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBnZXRNZXNzYWdlVGV4dENvbnRlbnRXaXRob3V0VGhpbmtpbmcodik7XHJcbiAgICAgICAgbWVzc2FnZXMucHVzaCh7IHJvbGU6IHYucm9sZSwgY29udGVudCB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBjb250ZW50ID0gZ2V0TWVzc2FnZVRleHRDb250ZW50KHYpO1xyXG4gICAgICAgIG1lc3NhZ2VzLnB1c2goeyByb2xlOiB2LnJvbGUsIGNvbnRlbnQgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtb2RlbENvbmZpZyA9IHtcclxuICAgICAgLi4udXNlQXBwQ29uZmlnLmdldFN0YXRlKCkubW9kZWxDb25maWcsXHJcbiAgICAgIC4uLnVzZUNoYXRTdG9yZS5nZXRTdGF0ZSgpLmN1cnJlbnRTZXNzaW9uKCkubWFzay5tb2RlbENvbmZpZyxcclxuICAgICAgLi4ue1xyXG4gICAgICAgIG1vZGVsOiBvcHRpb25zLmNvbmZpZy5tb2RlbCxcclxuICAgICAgICBwcm92aWRlck5hbWU6IG9wdGlvbnMuY29uZmlnLnByb3ZpZGVyTmFtZSxcclxuICAgICAgfSxcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdFBheWxvYWQ6IFJlcXVlc3RQYXlsb2FkID0ge1xyXG4gICAgICBtZXNzYWdlcyxcclxuICAgICAgc3RyZWFtOiBvcHRpb25zLmNvbmZpZy5zdHJlYW0sXHJcbiAgICAgIG1vZGVsOiBtb2RlbENvbmZpZy5tb2RlbCxcclxuICAgICAgdGVtcGVyYXR1cmU6IG1vZGVsQ29uZmlnLnRlbXBlcmF0dXJlLFxyXG4gICAgICBwcmVzZW5jZV9wZW5hbHR5OiBtb2RlbENvbmZpZy5wcmVzZW5jZV9wZW5hbHR5LFxyXG4gICAgICBmcmVxdWVuY3lfcGVuYWx0eTogbW9kZWxDb25maWcuZnJlcXVlbmN5X3BlbmFsdHksXHJcbiAgICAgIHRvcF9wOiBtb2RlbENvbmZpZy50b3BfcCxcclxuICAgICAgLy8gbWF4X3Rva2VuczogTWF0aC5tYXgobW9kZWxDb25maWcubWF4X3Rva2VucywgMTAyNCksXHJcbiAgICAgIC8vIFBsZWFzZSBkbyBub3QgYXNrIG1lIHdoeSBub3Qgc2VuZCBtYXhfdG9rZW5zLCBubyByZWFzb24sIHRoaXMgcGFyYW0gaXMganVzdCBzaGl0LCBJIGRvbnQgd2FudCB0byBleHBsYWluIGFueW1vcmUuXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwiW1JlcXVlc3RdIG9wZW5haSBwYXlsb2FkOiBcIiwgcmVxdWVzdFBheWxvYWQpO1xyXG5cclxuICAgIGNvbnN0IHNob3VsZFN0cmVhbSA9ICEhb3B0aW9ucy5jb25maWcuc3RyZWFtO1xyXG4gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcclxuICAgIG9wdGlvbnMub25Db250cm9sbGVyPy4oY29udHJvbGxlcik7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgY2hhdFBhdGggPSB0aGlzLnBhdGgoU2lsaWNvbkZsb3cuQ2hhdFBhdGgpO1xyXG4gICAgICBjb25zdCBjaGF0UGF5bG9hZCA9IHtcclxuICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxyXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHJlcXVlc3RQYXlsb2FkKSxcclxuICAgICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsLFxyXG4gICAgICAgIGhlYWRlcnM6IGdldEhlYWRlcnMoKSxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKGNoYXRQYXlsb2FkKTtcclxuXHJcbiAgICAgIC8vIFVzZSBleHRlbmRlZCB0aW1lb3V0IGZvciB0aGlua2luZyBtb2RlbHMgYXMgdGhleSB0eXBpY2FsbHkgcmVxdWlyZSBtb3JlIHByb2Nlc3NpbmcgdGltZVxyXG4gICAgICBjb25zdCByZXF1ZXN0VGltZW91dElkID0gc2V0VGltZW91dChcclxuICAgICAgICAoKSA9PiBjb250cm9sbGVyLmFib3J0KCksXHJcbiAgICAgICAgUkVRVUVTVF9USU1FT1VUX01TX0ZPUl9USElOS0lORyxcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGlmIChzaG91bGRTdHJlYW0pIHtcclxuICAgICAgICBjb25zdCBbdG9vbHMsIGZ1bmNzXSA9IHVzZVBsdWdpblN0b3JlXHJcbiAgICAgICAgICAuZ2V0U3RhdGUoKVxyXG4gICAgICAgICAgLmdldEFzVG9vbHMoXHJcbiAgICAgICAgICAgIHVzZUNoYXRTdG9yZS5nZXRTdGF0ZSgpLmN1cnJlbnRTZXNzaW9uKCkubWFzaz8ucGx1Z2luIHx8IFtdLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gc3RyZWFtV2l0aFRoaW5rKFxyXG4gICAgICAgICAgY2hhdFBhdGgsXHJcbiAgICAgICAgICByZXF1ZXN0UGF5bG9hZCxcclxuICAgICAgICAgIGdldEhlYWRlcnMoKSxcclxuICAgICAgICAgIHRvb2xzIGFzIGFueSxcclxuICAgICAgICAgIGZ1bmNzLFxyXG4gICAgICAgICAgY29udHJvbGxlcixcclxuICAgICAgICAgIC8vIHBhcnNlU1NFXHJcbiAgICAgICAgICAodGV4dDogc3RyaW5nLCBydW5Ub29sczogQ2hhdE1lc3NhZ2VUb29sW10pID0+IHtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJwYXJzZVNTRVwiLCB0ZXh0LCBydW5Ub29scyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKHRleHQpO1xyXG4gICAgICAgICAgICBjb25zdCBjaG9pY2VzID0ganNvbi5jaG9pY2VzIGFzIEFycmF5PHtcclxuICAgICAgICAgICAgICBkZWx0YToge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogc3RyaW5nIHwgbnVsbDtcclxuICAgICAgICAgICAgICAgIHRvb2xfY2FsbHM6IENoYXRNZXNzYWdlVG9vbFtdO1xyXG4gICAgICAgICAgICAgICAgcmVhc29uaW5nX2NvbnRlbnQ6IHN0cmluZyB8IG51bGw7XHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfT47XHJcbiAgICAgICAgICAgIGNvbnN0IHRvb2xfY2FsbHMgPSBjaG9pY2VzWzBdPy5kZWx0YT8udG9vbF9jYWxscztcclxuICAgICAgICAgICAgaWYgKHRvb2xfY2FsbHM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRvb2xfY2FsbHNbMF0/LmluZGV4O1xyXG4gICAgICAgICAgICAgIGNvbnN0IGlkID0gdG9vbF9jYWxsc1swXT8uaWQ7XHJcbiAgICAgICAgICAgICAgY29uc3QgYXJncyA9IHRvb2xfY2FsbHNbMF0/LmZ1bmN0aW9uPy5hcmd1bWVudHM7XHJcbiAgICAgICAgICAgICAgaWYgKGlkKSB7XHJcbiAgICAgICAgICAgICAgICBydW5Ub29scy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgaWQsXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IHRvb2xfY2FsbHNbMF0/LnR5cGUsXHJcbiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdG9vbF9jYWxsc1swXT8uZnVuY3Rpb24/Lm5hbWUgYXMgc3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50czogYXJncyxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICBydW5Ub29sc1tpbmRleF1bXCJmdW5jdGlvblwiXVtcImFyZ3VtZW50c1wiXSArPSBhcmdzO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCByZWFzb25pbmcgPSBjaG9pY2VzWzBdPy5kZWx0YT8ucmVhc29uaW5nX2NvbnRlbnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBjaG9pY2VzWzBdPy5kZWx0YT8uY29udGVudDtcclxuXHJcbiAgICAgICAgICAgIC8vIFNraXAgaWYgYm90aCBjb250ZW50IGFuZCByZWFzb25pbmdfY29udGVudCBhcmUgZW1wdHkgb3IgbnVsbFxyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgKCFyZWFzb25pbmcgfHwgcmVhc29uaW5nLmxlbmd0aCA9PT0gMCkgJiZcclxuICAgICAgICAgICAgICAoIWNvbnRlbnQgfHwgY29udGVudC5sZW5ndGggPT09IDApXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBpc1RoaW5raW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCIsXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlYXNvbmluZyAmJiByZWFzb25pbmcubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBpc1RoaW5raW5nOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY29udGVudDogcmVhc29uaW5nLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udGVudCAmJiBjb250ZW50Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgaXNUaGlua2luZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBjb250ZW50LFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgaXNUaGlua2luZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgY29udGVudDogXCJcIixcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAvLyBwcm9jZXNzVG9vbE1lc3NhZ2UsIGluY2x1ZGUgdG9vbF9jYWxscyBtZXNzYWdlIGFuZCB0b29sIGNhbGwgcmVzdWx0c1xyXG4gICAgICAgICAgKFxyXG4gICAgICAgICAgICByZXF1ZXN0UGF5bG9hZDogUmVxdWVzdFBheWxvYWQsXHJcbiAgICAgICAgICAgIHRvb2xDYWxsTWVzc2FnZTogYW55LFxyXG4gICAgICAgICAgICB0b29sQ2FsbFJlc3VsdDogYW55W10sXHJcbiAgICAgICAgICApID0+IHtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICByZXF1ZXN0UGF5bG9hZD8ubWVzc2FnZXM/LnNwbGljZShcclxuICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgcmVxdWVzdFBheWxvYWQ/Lm1lc3NhZ2VzPy5sZW5ndGgsXHJcbiAgICAgICAgICAgICAgMCxcclxuICAgICAgICAgICAgICB0b29sQ2FsbE1lc3NhZ2UsXHJcbiAgICAgICAgICAgICAgLi4udG9vbENhbGxSZXN1bHQsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb3B0aW9ucyxcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKGNoYXRQYXRoLCBjaGF0UGF5bG9hZCk7XHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KHJlcXVlc3RUaW1lb3V0SWQpO1xyXG5cclxuICAgICAgICBjb25zdCByZXNKc29uID0gYXdhaXQgcmVzLmpzb24oKTtcclxuICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5leHRyYWN0TWVzc2FnZShyZXNKc29uKTtcclxuICAgICAgICBvcHRpb25zLm9uRmluaXNoKG1lc3NhZ2UsIHJlcyk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJbUmVxdWVzdF0gZmFpbGVkIHRvIG1ha2UgYSBjaGF0IHJlcXVlc3RcIiwgZSk7XHJcbiAgICAgIG9wdGlvbnMub25FcnJvcj8uKGUgYXMgRXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuICBhc3luYyB1c2FnZSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHVzZWQ6IDAsXHJcbiAgICAgIHRvdGFsOiAwLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG1vZGVscygpOiBQcm9taXNlPExMTU1vZGVsW10+IHtcclxuICAgIHJldHVybiBbXTtcclxuICB9XHJcbn1cclxuIl0sIm5hbWVzIjpbIkFwaVBhdGgiLCJTSUxJQ09ORkxPV19CQVNFX1VSTCIsIlNpbGljb25GbG93IiwiUkVRVUVTVF9USU1FT1VUX01TX0ZPUl9USElOS0lORyIsInVzZUFjY2Vzc1N0b3JlIiwidXNlQXBwQ29uZmlnIiwidXNlQ2hhdFN0b3JlIiwidXNlUGx1Z2luU3RvcmUiLCJzdHJlYW1XaXRoVGhpbmsiLCJnZXRIZWFkZXJzIiwiZ2V0Q2xpZW50Q29uZmlnIiwiZ2V0TWVzc2FnZVRleHRDb250ZW50IiwiZ2V0TWVzc2FnZVRleHRDb250ZW50V2l0aG91dFRoaW5raW5nIiwiZmV0Y2giLCJTaWxpY29uZmxvd0FwaSIsInBhdGgiLCJhY2Nlc3NTdG9yZSIsImdldFN0YXRlIiwiYmFzZVVybCIsInVzZUN1c3RvbUNvbmZpZyIsInNpbGljb25mbG93VXJsIiwibGVuZ3RoIiwiaXNBcHAiLCJhcGlQYXRoIiwiZW5kc1dpdGgiLCJzbGljZSIsInN0YXJ0c1dpdGgiLCJjb25zb2xlIiwibG9nIiwiam9pbiIsImV4dHJhY3RNZXNzYWdlIiwicmVzIiwiY2hvaWNlcyIsImF0IiwibWVzc2FnZSIsImNvbnRlbnQiLCJzcGVlY2giLCJvcHRpb25zIiwiRXJyb3IiLCJjaGF0IiwibWVzc2FnZXMiLCJ2Iiwicm9sZSIsInB1c2giLCJtb2RlbENvbmZpZyIsImN1cnJlbnRTZXNzaW9uIiwibWFzayIsIm1vZGVsIiwiY29uZmlnIiwicHJvdmlkZXJOYW1lIiwicmVxdWVzdFBheWxvYWQiLCJzdHJlYW0iLCJ0ZW1wZXJhdHVyZSIsInByZXNlbmNlX3BlbmFsdHkiLCJmcmVxdWVuY3lfcGVuYWx0eSIsInRvcF9wIiwic2hvdWxkU3RyZWFtIiwiY29udHJvbGxlciIsIkFib3J0Q29udHJvbGxlciIsIm9uQ29udHJvbGxlciIsImNoYXRQYXRoIiwiQ2hhdFBhdGgiLCJjaGF0UGF5bG9hZCIsIm1ldGhvZCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5Iiwic2lnbmFsIiwiaGVhZGVycyIsInJlcXVlc3RUaW1lb3V0SWQiLCJzZXRUaW1lb3V0IiwiYWJvcnQiLCJ0b29scyIsImZ1bmNzIiwiZ2V0QXNUb29scyIsInBsdWdpbiIsInRleHQiLCJydW5Ub29scyIsImpzb24iLCJwYXJzZSIsInRvb2xfY2FsbHMiLCJkZWx0YSIsImluZGV4IiwiaWQiLCJhcmdzIiwiZnVuY3Rpb24iLCJhcmd1bWVudHMiLCJ0eXBlIiwibmFtZSIsInJlYXNvbmluZyIsInJlYXNvbmluZ19jb250ZW50IiwiaXNUaGlua2luZyIsInRvb2xDYWxsTWVzc2FnZSIsInRvb2xDYWxsUmVzdWx0Iiwic3BsaWNlIiwiY2xlYXJUaW1lb3V0IiwicmVzSnNvbiIsIm9uRmluaXNoIiwiZSIsIm9uRXJyb3IiLCJ1c2FnZSIsInVzZWQiLCJ0b3RhbCIsIm1vZGVscyIsImRpc2FibGVMaXN0TW9kZWxzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/client/platforms/siliconflow.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/client/platforms/tencent.ts":
|
|
|
/*!*****************************************!*\
|
|
|
!*** ./app/client/platforms/tencent.ts ***!
|
|
|
\*****************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HunyuanApi: () => (/* binding */ HunyuanApi)\n/* harmony export */ });\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _app_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/app/store */ \"(ssr)/./app/store/index.ts\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../api */ \"(ssr)/./app/client/api.ts\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../locales */ \"(ssr)/./app/locales/index.ts\");\n/* harmony import */ var _fortaine_fetch_event_source__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @fortaine/fetch-event-source */ \"(ssr)/./node_modules/@fortaine/fetch-event-source/lib/esm/fetch.js\");\n/* harmony import */ var _app_utils_format__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/app/utils/format */ \"(ssr)/./app/utils/format.ts\");\n/* harmony import */ var _app_config_client__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/app/config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/app/utils */ \"(ssr)/./app/utils.ts\");\n/* harmony import */ var lodash_es_mapKeys__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! lodash-es/mapKeys */ \"(ssr)/./node_modules/lodash-es/mapKeys.js\");\n/* harmony import */ var lodash_es_mapValues__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! lodash-es/mapValues */ \"(ssr)/./node_modules/lodash-es/mapValues.js\");\n/* harmony import */ var lodash_es_isArray__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash-es/isArray */ \"(ssr)/./node_modules/lodash-es/isArray.js\");\n/* harmony import */ var lodash_es_isObject__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! lodash-es/isObject */ \"(ssr)/./node_modules/lodash-es/isObject.js\");\n/* harmony import */ var _app_utils_stream__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/app/utils/stream */ \"(ssr)/./app/utils/stream.ts\");\n/* __next_internal_client_entry_do_not_use__ HunyuanApi auto */ \n\n\n\n\n\n\n\n\n\n\n\n\nfunction capitalizeKeys(obj) {\n if ((0,lodash_es_isArray__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(obj)) {\n return obj.map(capitalizeKeys);\n } else if ((0,lodash_es_isObject__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(obj)) {\n return (0,lodash_es_mapValues__WEBPACK_IMPORTED_MODULE_10__[\"default\"])((0,lodash_es_mapKeys__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(obj, (value, key)=>key.replace(/(^|_)(\\w)/g, (m, $1, $2)=>$2.toUpperCase())), capitalizeKeys);\n } else {\n return obj;\n }\n}\nclass HunyuanApi {\n path() {\n const accessStore = _app_store__WEBPACK_IMPORTED_MODULE_1__.useAccessStore.getState();\n let baseUrl = \"\";\n if (accessStore.useCustomConfig) {\n baseUrl = accessStore.tencentUrl;\n }\n if (baseUrl.length === 0) {\n const isApp = !!(0,_app_config_client__WEBPACK_IMPORTED_MODULE_5__.getClientConfig)()?.isApp;\n baseUrl = isApp ? _app_constant__WEBPACK_IMPORTED_MODULE_0__.TENCENT_BASE_URL : _app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Tencent;\n }\n if (baseUrl.endsWith(\"/\")) {\n baseUrl = baseUrl.slice(0, baseUrl.length - 1);\n }\n if (!baseUrl.startsWith(\"http\") && !baseUrl.startsWith(_app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Tencent)) {\n baseUrl = \"https://\" + baseUrl;\n }\n console.log(\"[Proxy Endpoint] \", baseUrl);\n return baseUrl;\n }\n extractMessage(res) {\n return res.Choices?.at(0)?.Message?.Content ?? \"\";\n }\n speech(options) {\n throw new Error(\"Method not implemented.\");\n }\n async chat(options) {\n const visionModel = (0,_app_utils__WEBPACK_IMPORTED_MODULE_6__.isVisionModel)(options.config.model);\n const messages = options.messages.map((v, index)=>({\n // \"Messages 中 system 角色必须位于列表的最开始\"\n role: index !== 0 && v.role === \"system\" ? \"user\" : v.role,\n content: visionModel ? v.content : (0,_app_utils__WEBPACK_IMPORTED_MODULE_6__.getMessageTextContent)(v)\n }));\n const modelConfig = {\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useAppConfig.getState().modelConfig,\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useChatStore.getState().currentSession().mask.modelConfig,\n ...{\n model: options.config.model\n }\n };\n const requestPayload = capitalizeKeys({\n model: modelConfig.model,\n messages,\n temperature: modelConfig.temperature,\n top_p: modelConfig.top_p,\n stream: options.config.stream\n });\n console.log(\"[Request] Tencent payload: \", requestPayload);\n const shouldStream = !!options.config.stream;\n const controller = new AbortController();\n options.onController?.(controller);\n try {\n const chatPath = this.path();\n const chatPayload = {\n method: \"POST\",\n body: JSON.stringify(requestPayload),\n signal: controller.signal,\n headers: (0,_api__WEBPACK_IMPORTED_MODULE_2__.getHeaders)()\n };\n // make a fetch request\n const requestTimeoutId = setTimeout(()=>controller.abort(), _app_constant__WEBPACK_IMPORTED_MODULE_0__.REQUEST_TIMEOUT_MS);\n if (shouldStream) {\n let responseText = \"\";\n let remainText = \"\";\n let finished = false;\n let responseRes;\n // animate response to make it looks smooth\n function animateResponseText() {\n if (finished || controller.signal.aborted) {\n responseText += remainText;\n console.log(\"[Response Animation] finished\");\n if (responseText?.length === 0) {\n options.onError?.(new Error(\"empty response from server\"));\n }\n return;\n }\n if (remainText.length > 0) {\n const fetchCount = Math.max(1, Math.round(remainText.length / 60));\n const fetchText = remainText.slice(0, fetchCount);\n responseText += fetchText;\n remainText = remainText.slice(fetchCount);\n options.onUpdate?.(responseText, fetchText);\n }\n requestAnimationFrame(animateResponseText);\n }\n // start animaion\n animateResponseText();\n const finish = ()=>{\n if (!finished) {\n finished = true;\n options.onFinish(responseText + remainText, responseRes);\n }\n };\n controller.signal.onabort = finish;\n (0,_fortaine_fetch_event_source__WEBPACK_IMPORTED_MODULE_12__.fetchEventSource)(chatPath, {\n fetch: _app_utils_stream__WEBPACK_IMPORTED_MODULE_7__.fetch,\n ...chatPayload,\n async onopen (res) {\n clearTimeout(requestTimeoutId);\n const contentType = res.headers.get(\"content-type\");\n console.log(\"[Tencent] request response content type: \", contentType);\n responseRes = res;\n if (contentType?.startsWith(\"text/plain\")) {\n responseText = await res.clone().text();\n return finish();\n }\n if (!res.ok || !res.headers.get(\"content-type\")?.startsWith(_fortaine_fetch_event_source__WEBPACK_IMPORTED_MODULE_12__.EventStreamContentType) || res.status !== 200) {\n const responseTexts = [\n responseText\n ];\n let extraInfo = await res.clone().text();\n try {\n const resJson = await res.clone().json();\n extraInfo = (0,_app_utils_format__WEBPACK_IMPORTED_MODULE_4__.prettyObject)(resJson);\n } catch {}\n if (res.status === 401) {\n responseTexts.push(_locales__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Error.Unauthorized);\n }\n if (extraInfo) {\n responseTexts.push(extraInfo);\n }\n responseText = responseTexts.join(\"\\n\\n\");\n return finish();\n }\n },\n onmessage (msg) {\n if (msg.data === \"[DONE]\" || finished) {\n return finish();\n }\n const text = msg.data;\n try {\n const json = JSON.parse(text);\n const choices = json.Choices;\n const delta = choices[0]?.Delta?.Content;\n if (delta) {\n remainText += delta;\n }\n } catch (e) {\n console.error(\"[Request] parse error\", text, msg);\n }\n },\n onclose () {\n finish();\n },\n onerror (e) {\n options.onError?.(e);\n throw e;\n },\n openWhenHidden: true\n });\n } else {\n const res = await (0,_app_utils_stream__WEBPACK_IMPORTED_MODULE_7__.fetch)(chatPath, chatPayload);\n clearTimeout(requestTimeoutId);\n const resJson = await res.json();\n const message = this.extractMessage(resJson);\n options.onFinish(message, res);\n }\n } catch (e) {\n console.log(\"[Request] failed to make a chat request\", e);\n options.onError?.(e);\n }\n }\n async usage() {\n return {\n used: 0,\n total: 0\n };\n }\n async models() {\n return [];\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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XSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcbmltcG9ydCB7IEFwaVBhdGgsIFRFTkNFTlRfQkFTRV9VUkwsIFJFUVVFU1RfVElNRU9VVF9NUyB9IGZyb20gXCJAL2FwcC9jb25zdGFudFwiO1xyXG5pbXBvcnQgeyB1c2VBY2Nlc3NTdG9yZSwgdXNlQXBwQ29uZmlnLCB1c2VDaGF0U3RvcmUgfSBmcm9tIFwiQC9hcHAvc3RvcmVcIjtcclxuXHJcbmltcG9ydCB7XHJcbiAgQ2hhdE9wdGlvbnMsXHJcbiAgZ2V0SGVhZGVycyxcclxuICBMTE1BcGksXHJcbiAgTExNTW9kZWwsXHJcbiAgTXVsdGltb2RhbENvbnRlbnQsXHJcbiAgU3BlZWNoT3B0aW9ucyxcclxufSBmcm9tIFwiLi4vYXBpXCI7XHJcbmltcG9ydCBMb2NhbGUgZnJvbSBcIi4uLy4uL2xvY2FsZXNcIjtcclxuaW1wb3J0IHtcclxuICBFdmVudFN0cmVhbUNvbnRlbnRUeXBlLFxyXG4gIGZldGNoRXZlbnRTb3VyY2UsXHJcbn0gZnJvbSBcIkBmb3J0YWluZS9mZXRjaC1ldmVudC1zb3VyY2VcIjtcclxuaW1wb3J0IHsgcHJldHR5T2JqZWN0IH0gZnJvbSBcIkAvYXBwL3V0aWxzL2Zvcm1hdFwiO1xyXG5pbXBvcnQgeyBnZXRDbGllbnRDb25maWcgfSBmcm9tIFwiQC9hcHAvY29uZmlnL2NsaWVudFwiO1xyXG5pbXBvcnQgeyBnZXRNZXNzYWdlVGV4dENvbnRlbnQsIGlzVmlzaW9uTW9kZWwgfSBmcm9tIFwiQC9hcHAvdXRpbHNcIjtcclxuaW1wb3J0IG1hcEtleXMgZnJvbSBcImxvZGFzaC1lcy9tYXBLZXlzXCI7XHJcbmltcG9ydCBtYXBWYWx1ZXMgZnJvbSBcImxvZGFzaC1lcy9tYXBWYWx1ZXNcIjtcclxuaW1wb3J0IGlzQXJyYXkgZnJvbSBcImxvZGFzaC1lcy9pc0FycmF5XCI7XHJcbmltcG9ydCBpc09iamVjdCBmcm9tIFwibG9kYXNoLWVzL2lzT2JqZWN0XCI7XHJcbmltcG9ydCB7IGZldGNoIH0gZnJvbSBcIkAvYXBwL3V0aWxzL3N0cmVhbVwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPcGVuQUlMaXN0TW9kZWxSZXNwb25zZSB7XHJcbiAgb2JqZWN0OiBzdHJpbmc7XHJcbiAgZGF0YTogQXJyYXk8e1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIG9iamVjdDogc3RyaW5nO1xyXG4gICAgcm9vdDogc3RyaW5nO1xyXG4gIH0+O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgUmVxdWVzdFBheWxvYWQge1xyXG4gIE1lc3NhZ2VzOiB7XHJcbiAgICBSb2xlOiBcInN5c3RlbVwiIHwgXCJ1c2VyXCIgfCBcImFzc2lzdGFudFwiO1xyXG4gICAgQ29udGVudDogc3RyaW5nIHwgTXVsdGltb2RhbENvbnRlbnRbXTtcclxuICB9W107XHJcbiAgU3RyZWFtPzogYm9vbGVhbjtcclxuICBNb2RlbDogc3RyaW5nO1xyXG4gIFRlbXBlcmF0dXJlOiBudW1iZXI7XHJcbiAgVG9wUDogbnVtYmVyO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYXBpdGFsaXplS2V5cyhvYmo6IGFueSk6IGFueSB7XHJcbiAgaWYgKGlzQXJyYXkob2JqKSkge1xyXG4gICAgcmV0dXJuIG9iai5tYXAoY2FwaXRhbGl6ZUtleXMpO1xyXG4gIH0gZWxzZSBpZiAoaXNPYmplY3Qob2JqKSkge1xyXG4gICAgcmV0dXJuIG1hcFZhbHVlcyhcclxuICAgICAgbWFwS2V5cyhvYmosICh2YWx1ZTogYW55LCBrZXk6IHN0cmluZykgPT5cclxuICAgICAgICBrZXkucmVwbGFjZSgvKF58XykoXFx3KS9nLCAobSwgJDEsICQyKSA9PiAkMi50b1VwcGVyQ2FzZSgpKSxcclxuICAgICAgKSxcclxuICAgICAgY2FwaXRhbGl6ZUtleXMsXHJcbiAgICApO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEh1bnl1YW5BcGkgaW1wbGVtZW50cyBMTE1BcGkge1xyXG4gIHBhdGgoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGFjY2Vzc1N0b3JlID0gdXNlQWNjZXNzU3RvcmUuZ2V0U3RhdGUoKTtcclxuXHJcbiAgICBsZXQgYmFzZVVybCA9IFwiXCI7XHJcblxyXG4gICAgaWYgKGFjY2Vzc1N0b3JlLnVzZUN1c3RvbUNvbmZpZykge1xyXG4gICAgICBiYXNlVXJsID0gYWNjZXNzU3RvcmUudGVuY2VudFVybDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYmFzZVVybC5sZW5ndGggPT09IDApIHtcclxuICAgICAgY29uc3QgaXNBcHAgPSAhIWdldENsaWVudENvbmZpZygpPy5pc0FwcDtcclxuICAgICAgYmFzZVVybCA9IGlzQXBwID8gVEVOQ0VOVF9CQVNFX1VSTCA6IEFwaVBhdGguVGVuY2VudDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYmFzZVVybC5lbmRzV2l0aChcIi9cIikpIHtcclxuICAgICAgYmFzZVVybCA9IGJhc2VVcmwuc2xpY2UoMCwgYmFzZVVybC5sZW5ndGggLSAxKTtcclxuICAgIH1cclxuICAgIGlmICghYmFzZVVybC5zdGFydHNXaXRoKFwiaHR0cFwiKSAmJiAhYmFzZVVybC5zdGFydHNXaXRoKEFwaVBhdGguVGVuY2VudCkpIHtcclxuICAgICAgYmFzZVVybCA9IFwiaHR0cHM6Ly9cIiArIGJhc2VVcmw7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJbUHJveHkgRW5kcG9pbnRdIFwiLCBiYXNlVXJsKTtcclxuICAgIHJldHVybiBiYXNlVXJsO1xyXG4gIH1cclxuXHJcbiAgZXh0cmFjdE1lc3NhZ2UocmVzOiBhbnkpIHtcclxuICAgIHJldHVybiByZXMuQ2hvaWNlcz8uYXQoMCk/Lk1lc3NhZ2U/LkNvbnRlbnQgPz8gXCJcIjtcclxuICB9XHJcblxyXG4gIHNwZWVjaChvcHRpb25zOiBTcGVlY2hPcHRpb25zKTogUHJvbWlzZTxBcnJheUJ1ZmZlcj4ge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XHJcbiAgfVxyXG5cclxuICBhc3luYyBjaGF0KG9wdGlvbnM6IENoYXRPcHRpb25zKSB7XHJcbiAgICBjb25zdCB2aXNpb25Nb2RlbCA9IGlzVmlzaW9uTW9kZWwob3B0aW9ucy5jb25maWcubW9kZWwpO1xyXG4gICAgY29uc3QgbWVzc2FnZXMgPSBvcHRpb25zLm1lc3NhZ2VzLm1hcCgodiwgaW5kZXgpID0+ICh7XHJcbiAgICAgIC8vIFwiTWVzc2FnZXMg5LitIHN5c3RlbSDop5LoibLlv4XpobvkvY3kuo7liJfooajnmoTmnIDlvIDlp4tcIlxyXG4gICAgICByb2xlOiBpbmRleCAhPT0gMCAmJiB2LnJvbGUgPT09IFwic3lzdGVtXCIgPyBcInVzZXJcIiA6IHYucm9sZSxcclxuICAgICAgY29udGVudDogdmlzaW9uTW9kZWwgPyB2LmNvbnRlbnQgOiBnZXRNZXNzYWdlVGV4dENvbnRlbnQodiksXHJcbiAgICB9KSk7XHJcblxyXG4gICAgY29uc3QgbW9kZWxDb25maWcgPSB7XHJcbiAgICAgIC4uLnVzZUFwcENvbmZpZy5nZXRTdGF0ZSgpLm1vZGVsQ29uZmlnLFxyXG4gICAgICAuLi51c2VDaGF0U3RvcmUuZ2V0U3RhdGUoKS5jdXJyZW50U2Vzc2lvbigpLm1hc2subW9kZWxDb25maWcsXHJcbiAgICAgIC4uLntcclxuICAgICAgICBtb2RlbDogb3B0aW9ucy5jb25maWcubW9kZWwsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHJlcXVlc3RQYXlsb2FkOiBSZXF1ZXN0UGF5bG9hZCA9IGNhcGl0YWxpemVLZXlzKHtcclxuICAgICAgbW9kZWw6IG1vZGVsQ29uZmlnLm1vZGVsLFxyXG4gICAgICBtZXNzYWdlcyxcclxuICAgICAgdGVtcGVyYXR1cmU6IG1vZGVsQ29uZmlnLnRlbXBlcmF0dXJlLFxyXG4gICAgICB0b3BfcDogbW9kZWxDb25maWcudG9wX3AsXHJcbiAgICAgIHN0cmVhbTogb3B0aW9ucy5jb25maWcuc3RyZWFtLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJbUmVxdWVzdF0gVGVuY2VudCBwYXlsb2FkOiBcIiwgcmVxdWVzdFBheWxvYWQpO1xyXG5cclxuICAgIGNvbnN0IHNob3VsZFN0cmVhbSA9ICEhb3B0aW9ucy5jb25maWcuc3RyZWFtO1xyXG4gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcclxuICAgIG9wdGlvbnMub25Db250cm9sbGVyPy4oY29udHJvbGxlcik7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgY2hhdFBhdGggPSB0aGlzLnBhdGgoKTtcclxuICAgICAgY29uc3QgY2hhdFBheWxvYWQgPSB7XHJcbiAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcclxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShyZXF1ZXN0UGF5bG9hZCksXHJcbiAgICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCxcclxuICAgICAgICBoZWFkZXJzOiBnZXRIZWFkZXJzKCksXHJcbiAgICAgIH07XHJcblxyXG4gICAgICAvLyBtYWtlIGEgZmV0Y2ggcmVxdWVzdFxyXG4gICAgICBjb25zdCByZXF1ZXN0VGltZW91dElkID0gc2V0VGltZW91dChcclxuICAgICAgICAoKSA9PiBjb250cm9sbGVyLmFib3J0KCksXHJcbiAgICAgICAgUkVRVUVTVF9USU1FT1VUX01TLFxyXG4gICAgICApO1xyXG5cclxuICAgICAgaWYgKHNob3VsZFN0cmVhbSkge1xyXG4gICAgICAgIGxldCByZXNwb25zZVRleHQgPSBcIlwiO1xyXG4gICAgICAgIGxldCByZW1haW5UZXh0ID0gXCJcIjtcclxuICAgICAgICBsZXQgZmluaXNoZWQgPSBmYWxzZTtcclxuICAgICAgICBsZXQgcmVzcG9uc2VSZXM6IFJlc3BvbnNlO1xyXG5cclxuICAgICAgICAvLyBhbmltYXRlIHJlc3BvbnNlIHRvIG1ha2UgaXQgbG9va3Mgc21vb3RoXHJcbiAgICAgICAgZnVuY3Rpb24gYW5pbWF0ZVJlc3BvbnNlVGV4dCgpIHtcclxuICAgICAgICAgIGlmIChmaW5pc2hlZCB8fCBjb250cm9sbGVyLnNpZ25hbC5hYm9ydGVkKSB7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlVGV4dCArPSByZW1haW5UZXh0O1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIltSZXNwb25zZSBBbmltYXRpb25dIGZpbmlzaGVkXCIpO1xyXG4gICAgICAgICAgICBpZiAocmVzcG9uc2VUZXh0Py5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICBvcHRpb25zLm9uRXJyb3I/LihuZXcgRXJyb3IoXCJlbXB0eSByZXNwb25zZSBmcm9tIHNlcnZlclwiKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmIChyZW1haW5UZXh0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgZmV0Y2hDb3VudCA9IE1hdGgubWF4KDEsIE1hdGgucm91bmQocmVtYWluVGV4dC5sZW5ndGggLyA2MCkpO1xyXG4gICAgICAgICAgICBjb25zdCBmZXRjaFRleHQgPSByZW1haW5UZXh0LnNsaWNlKDAsIGZldGNoQ291bnQpO1xyXG4gICAgICAgICAgICByZXNwb25zZVRleHQgKz0gZmV0Y2hUZXh0O1xyXG4gICAgICAgICAgICByZW1haW5UZXh0ID0gcmVtYWluVGV4dC5zbGljZShmZXRjaENvdW50KTtcclxuICAgICAgICAgICAgb3B0aW9ucy5vblVwZGF0ZT8uKHJlc3BvbnNlVGV4dCwgZmV0Y2hUZXh0KTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYW5pbWF0ZVJlc3BvbnNlVGV4dCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBzdGFydCBhbmltYWlvblxyXG4gICAgICAgIGFuaW1hdGVSZXNwb25zZVRleHQoKTtcclxuXHJcbiAgICAgICAgY29uc3QgZmluaXNoID0gKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKCFmaW5pc2hlZCkge1xyXG4gICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIG9wdGlvbnMub25GaW5pc2gocmVzcG9uc2VUZXh0ICsgcmVtYWluVGV4dCwgcmVzcG9uc2VSZXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNvbnRyb2xsZXIuc2lnbmFsLm9uYWJvcnQgPSBmaW5pc2g7XHJcblxyXG4gICAgICAgIGZldGNoRXZlbnRTb3VyY2UoY2hhdFBhdGgsIHtcclxuICAgICAgICAgIGZldGNoOiBmZXRjaCBhcyBhbnksXHJcbiAgICAgICAgICAuLi5jaGF0UGF5bG9hZCxcclxuICAgICAgICAgIGFzeW5jIG9ub3BlbihyZXMpIHtcclxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHJlcXVlc3RUaW1lb3V0SWQpO1xyXG4gICAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IHJlcy5oZWFkZXJzLmdldChcImNvbnRlbnQtdHlwZVwiKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgICAgXCJbVGVuY2VudF0gcmVxdWVzdCByZXNwb25zZSBjb250ZW50IHR5cGU6IFwiLFxyXG4gICAgICAgICAgICAgIGNvbnRlbnRUeXBlLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICByZXNwb25zZVJlcyA9IHJlcztcclxuICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlPy5zdGFydHNXaXRoKFwidGV4dC9wbGFpblwiKSkge1xyXG4gICAgICAgICAgICAgIHJlc3BvbnNlVGV4dCA9IGF3YWl0IHJlcy5jbG9uZSgpLnRleHQoKTtcclxuICAgICAgICAgICAgICByZXR1cm4gZmluaXNoKCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAhcmVzLm9rIHx8XHJcbiAgICAgICAgICAgICAgIXJlcy5oZWFkZXJzXHJcbiAgICAgICAgICAgICAgICAuZ2V0KFwiY29udGVudC10eXBlXCIpXHJcbiAgICAgICAgICAgICAgICA/LnN0YXJ0c1dpdGgoRXZlbnRTdHJlYW1Db250ZW50VHlwZSkgfHxcclxuICAgICAgICAgICAgICByZXMuc3RhdHVzICE9PSAyMDBcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2VUZXh0cyA9IFtyZXNwb25zZVRleHRdO1xyXG4gICAgICAgICAgICAgIGxldCBleHRyYUluZm8gPSBhd2FpdCByZXMuY2xvbmUoKS50ZXh0KCk7XHJcbiAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc0pzb24gPSBhd2FpdCByZXMuY2xvbmUoKS5qc29uKCk7XHJcbiAgICAgICAgICAgICAgICBleHRyYUluZm8gPSBwcmV0dHlPYmplY3QocmVzSnNvbik7XHJcbiAgICAgICAgICAgICAgfSBjYXRjaCB7fVxyXG5cclxuICAgICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gNDAxKSB7XHJcbiAgICAgICAgICAgICAgICByZXNwb25zZVRleHRzLnB1c2goTG9jYWxlLkVycm9yLlVuYXV0aG9yaXplZCk7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBpZiAoZXh0cmFJbmZvKSB7XHJcbiAgICAgICAgICAgICAgICByZXNwb25zZVRleHRzLnB1c2goZXh0cmFJbmZvKTtcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIHJlc3BvbnNlVGV4dCA9IHJlc3BvbnNlVGV4dHMuam9pbihcIlxcblxcblwiKTtcclxuXHJcbiAgICAgICAgICAgICAgcmV0dXJuIGZpbmlzaCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb25tZXNzYWdlKG1zZykge1xyXG4gICAgICAgICAgICBpZiAobXNnLmRhdGEgPT09IFwiW0RPTkVdXCIgfHwgZmluaXNoZWQpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gZmluaXNoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgdGV4dCA9IG1zZy5kYXRhO1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKHRleHQpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGNob2ljZXMgPSBqc29uLkNob2ljZXMgYXMgQXJyYXk8e1xyXG4gICAgICAgICAgICAgICAgRGVsdGE6IHsgQ29udGVudDogc3RyaW5nIH07XHJcbiAgICAgICAgICAgICAgfT47XHJcbiAgICAgICAgICAgICAgY29uc3QgZGVsdGEgPSBjaG9pY2VzWzBdPy5EZWx0YT8uQ29udGVudDtcclxuICAgICAgICAgICAgICBpZiAoZGVsdGEpIHtcclxuICAgICAgICAgICAgICAgIHJlbWFpblRleHQgKz0gZGVsdGE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIltSZXF1ZXN0XSBwYXJzZSBlcnJvclwiLCB0ZXh0LCBtc2cpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb25jbG9zZSgpIHtcclxuICAgICAgICAgICAgZmluaXNoKCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb25lcnJvcihlKSB7XHJcbiAgICAgICAgICAgIG9wdGlvbnMub25FcnJvcj8uKGUpO1xyXG4gICAgICAgICAgICB0aHJvdyBlO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9wZW5XaGVuSGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKGNoYXRQYXRoLCBjaGF0UGF5bG9hZCk7XHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KHJlcXVlc3RUaW1lb3V0SWQpO1xyXG5cclxuICAgICAgICBjb25zdCByZXNKc29uID0gYXdhaXQgcmVzLmpzb24oKTtcclxuICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5leHRyYWN0TWVzc2FnZShyZXNKc29uKTtcclxuICAgICAgICBvcHRpb25zLm9uRmluaXNoKG1lc3NhZ2UsIHJlcyk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJbUmVxdWVzdF0gZmFpbGVkIHRvIG1ha2UgYSBjaGF0IHJlcXVlc3RcIiwgZSk7XHJcbiAgICAgIG9wdGlvbnMub25FcnJvcj8uKGUgYXMgRXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuICBhc3luYyB1c2FnZSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHVzZWQ6IDAsXHJcbiAgICAgIHRvdGFsOiAwLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG1vZGVscygpOiBQcm9taXNlPExMTU1vZGVsW10+IHtcclxuICAgIHJldHVybiBbXTtcclxuICB9XHJcbn1cclxuIl0sIm5hbWVzIjpbIkFwaVBhdGgiLCJURU5DRU5UX0JBU0VfVVJMIiwiUkVRVUVTVF9USU1FT1VUX01TIiwidXNlQWNjZXNzU3RvcmUiLCJ1c2VBcHBDb25maWciLCJ1c2VDaGF0U3RvcmUiLCJnZXRIZWFkZXJzIiwiTG9jYWxlIiwiRXZlbnRTdHJlYW1Db250ZW50VHlwZSIsImZldGNoRXZlbnRTb3VyY2UiLCJwcmV0dHlPYmplY3QiLCJnZXRDbGllbnRDb25maWciLCJnZXRNZXNzYWdlVGV4dENvbnRlbnQiLCJpc1Zpc2lvbk1vZGVsIiwibWFwS2V5cyIsIm1hcFZhbHVlcyIsImlzQXJyYXkiLCJpc09iamVjdCIsImZldGNoIiwiY2FwaXRhbGl6ZUtleXMiLCJvYmoiLCJtYXAiLCJ2YWx1ZSIsImtleSIsInJlcGxhY2UiLCJtIiwiJDEiLCIkMiIsInRvVXBwZXJDYXNlIiwiSHVueXVhbkFwaSIsInBhdGgiLCJhY2Nlc3NTdG9yZSIsImdldFN0YXRlIiwiYmFzZVVybCIsInVzZUN1c3RvbUNvbmZpZyIsInRlbmNlbnRVcmwiLCJsZW5ndGgiLCJpc0FwcCIsIlRlbmNlbnQiLCJlbmRzV2l0aCIsInNsaWNlIiwic3RhcnRzV2l0aCIsImNvbnNvbGUiLCJsb2ciLCJleHRyYWN0TWVzc2FnZSIsInJlcyIsIkNob2ljZXMiLCJhdCIsIk1lc3NhZ2UiLCJDb250ZW50Iiwic3BlZWNoIiwib3B0aW9ucyIsIkVycm9yIiwiY2hhdCIsInZpc2lvbk1vZGVsIiwiY29uZmlnIiwibW9kZWwiLCJtZXNzYWdlcyIsInYiLCJpbmRleCIsInJvbGUiLCJjb250ZW50IiwibW9kZWxDb25maWciLCJjdXJyZW50U2Vzc2lvbiIsIm1hc2siLCJyZXF1ZXN0UGF5bG9hZCIsInRlbXBlcmF0dXJlIiwidG9wX3AiLCJzdHJlYW0iLCJzaG91bGRTdHJlYW0iLCJjb250cm9sbGVyIiwiQWJvcnRDb250cm9sbGVyIiwib25Db250cm9sbGVyIiwiY2hhdFBhdGgiLCJjaGF0UGF5bG9hZCIsIm1ldGhvZCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5Iiwic2lnbmFsIiwiaGVhZGVycyIsInJlcXVlc3RUaW1lb3V0SWQiLCJzZXRUaW1lb3V0IiwiYWJvcnQiLCJyZXNwb25zZVRleHQiLCJyZW1haW5UZXh0IiwiZmluaXNoZWQiLCJyZXNwb25zZVJlcyIsImFuaW1hdGVSZXNwb25zZVRleHQiLCJhYm9ydGVkIiwib25FcnJvciIsImZldGNoQ291bnQiLCJNYXRoIiwibWF4Iiwicm91bmQiLCJmZXRjaFRleHQiLCJvblVwZGF0ZSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImZpbmlzaCIsIm9uRmluaXNoIiwib25hYm9ydCIsIm9ub3BlbiIsImNsZWFyVGltZW91dCIsImNvbnRlbnRUeXBlIiwiZ2V0IiwiY2xvbmUiLCJ0ZXh0Iiwib2siLCJzdGF0dXMiLCJyZXNwb25zZVRleHRzIiwiZXh0cmFJbmZvIiwicmVzSnNvbiIsImpzb24iLCJwdXNoIiwiVW5hdXRob3JpemVkIiwiam9pbiIsIm9ubWVzc2FnZSIsIm1zZyIsImRhdGEiLCJwYXJzZSIsImNob2ljZXMiLCJkZWx0YSIsIkRlbHRhIiwiZSIsImVycm9yIiwib25jbG9zZSIsIm9uZXJyb3IiLCJvcGVuV2hlbkhpZGRlbiIsIm1lc3NhZ2UiLCJ1c2FnZSIsInVzZWQiLCJ0b3RhbCIsIm1vZGVscyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/client/platforms/tencent.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/client/platforms/xai.ts":
|
|
|
/*!*************************************!*\
|
|
|
!*** ./app/client/platforms/xai.ts ***!
|
|
|
\*************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ XAIApi: () => (/* binding */ XAIApi)\n/* harmony export */ });\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _app_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/app/store */ \"(ssr)/./app/store/index.ts\");\n/* harmony import */ var _app_utils_chat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/utils/chat */ \"(ssr)/./app/utils/chat.ts\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../api */ \"(ssr)/./app/client/api.ts\");\n/* harmony import */ var _app_config_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/app/config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_utils_stream__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/app/utils/stream */ \"(ssr)/./app/utils/stream.ts\");\n/* __next_internal_client_entry_do_not_use__ XAIApi auto */ // azure and openai, using same models. so using same LLMApi.\n\n\n\n\n\n\n\nclass XAIApi {\n path(path) {\n const accessStore = _app_store__WEBPACK_IMPORTED_MODULE_1__.useAccessStore.getState();\n let baseUrl = \"\";\n if (accessStore.useCustomConfig) {\n baseUrl = accessStore.xaiUrl;\n }\n if (baseUrl.length === 0) {\n const isApp = !!(0,_app_config_client__WEBPACK_IMPORTED_MODULE_4__.getClientConfig)()?.isApp;\n const apiPath = _app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.XAI;\n baseUrl = isApp ? _app_constant__WEBPACK_IMPORTED_MODULE_0__.XAI_BASE_URL : apiPath;\n }\n if (baseUrl.endsWith(\"/\")) {\n baseUrl = baseUrl.slice(0, baseUrl.length - 1);\n }\n if (!baseUrl.startsWith(\"http\") && !baseUrl.startsWith(_app_constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.XAI)) {\n baseUrl = \"https://\" + baseUrl;\n }\n console.log(\"[Proxy Endpoint] \", baseUrl, path);\n return [\n baseUrl,\n path\n ].join(\"/\");\n }\n extractMessage(res) {\n return res.choices?.at(0)?.message?.content ?? \"\";\n }\n speech(options) {\n throw new Error(\"Method not implemented.\");\n }\n async chat(options) {\n const messages = [];\n for (const v of options.messages){\n const content = await (0,_app_utils_chat__WEBPACK_IMPORTED_MODULE_2__.preProcessImageContent)(v.content);\n messages.push({\n role: v.role,\n content\n });\n }\n const modelConfig = {\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useAppConfig.getState().modelConfig,\n ..._app_store__WEBPACK_IMPORTED_MODULE_1__.useChatStore.getState().currentSession().mask.modelConfig,\n ...{\n model: options.config.model,\n providerName: options.config.providerName\n }\n };\n const requestPayload = {\n messages,\n stream: options.config.stream,\n model: modelConfig.model,\n temperature: modelConfig.temperature,\n presence_penalty: modelConfig.presence_penalty,\n frequency_penalty: modelConfig.frequency_penalty,\n top_p: modelConfig.top_p\n };\n console.log(\"[Request] xai payload: \", requestPayload);\n const shouldStream = !!options.config.stream;\n const controller = new AbortController();\n options.onController?.(controller);\n try {\n const chatPath = this.path(_app_constant__WEBPACK_IMPORTED_MODULE_0__.XAI.ChatPath);\n const chatPayload = {\n method: \"POST\",\n body: JSON.stringify(requestPayload),\n signal: controller.signal,\n headers: (0,_api__WEBPACK_IMPORTED_MODULE_3__.getHeaders)()\n };\n // make a fetch request\n const requestTimeoutId = setTimeout(()=>controller.abort(), _app_constant__WEBPACK_IMPORTED_MODULE_0__.REQUEST_TIMEOUT_MS);\n if (shouldStream) {\n const [tools, funcs] = _app_store__WEBPACK_IMPORTED_MODULE_1__.usePluginStore.getState().getAsTools(_app_store__WEBPACK_IMPORTED_MODULE_1__.useChatStore.getState().currentSession().mask?.plugin || []);\n return (0,_app_utils_chat__WEBPACK_IMPORTED_MODULE_2__.stream)(chatPath, requestPayload, (0,_api__WEBPACK_IMPORTED_MODULE_3__.getHeaders)(), tools, funcs, controller, // parseSSE\n (text, runTools)=>{\n // console.log(\"parseSSE\", text, runTools);\n const json = JSON.parse(text);\n const choices = json.choices;\n const tool_calls = choices[0]?.delta?.tool_calls;\n if (tool_calls?.length > 0) {\n const index = tool_calls[0]?.index;\n const id = tool_calls[0]?.id;\n const args = tool_calls[0]?.function?.arguments;\n if (id) {\n runTools.push({\n id,\n type: tool_calls[0]?.type,\n function: {\n name: tool_calls[0]?.function?.name,\n arguments: args\n }\n });\n } else {\n // @ts-ignore\n runTools[index][\"function\"][\"arguments\"] += args;\n }\n }\n return choices[0]?.delta?.content;\n }, // processToolMessage, include tool_calls message and tool call results\n (requestPayload, toolCallMessage, toolCallResult)=>{\n // @ts-ignore\n requestPayload?.messages?.splice(// @ts-ignore\n requestPayload?.messages?.length, 0, toolCallMessage, ...toolCallResult);\n }, options);\n } else {\n const res = await (0,_app_utils_stream__WEBPACK_IMPORTED_MODULE_5__.fetch)(chatPath, chatPayload);\n clearTimeout(requestTimeoutId);\n const resJson = await res.json();\n const message = this.extractMessage(resJson);\n options.onFinish(message, res);\n }\n } catch (e) {\n console.log(\"[Request] failed to make a chat request\", e);\n options.onError?.(e);\n }\n }\n async usage() {\n return {\n used: 0,\n total: 0\n };\n }\n async models() {\n return [];\n }\n constructor(){\n this.disableListModels = true;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvY2xpZW50L3BsYXRmb3Jtcy94YWkudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs0REFDQSw2REFBNkQ7QUFDbUI7QUFPM0Q7QUFDcUI7QUFPMUI7QUFDc0M7QUFDSTtBQUVmO0FBRXBDLE1BQU1hO0lBR1hDLEtBQUtBLElBQVksRUFBVTtRQUN6QixNQUFNQyxjQUFjWCxzREFBY0EsQ0FBQ1ksUUFBUTtRQUUzQyxJQUFJQyxVQUFVO1FBRWQsSUFBSUYsWUFBWUcsZUFBZSxFQUFFO1lBQy9CRCxVQUFVRixZQUFZSSxNQUFNO1FBQzlCO1FBRUEsSUFBSUYsUUFBUUcsTUFBTSxLQUFLLEdBQUc7WUFDeEIsTUFBTUMsUUFBUSxDQUFDLENBQUNYLG1FQUFlQSxJQUFJVztZQUNuQyxNQUFNQyxVQUFVdEIsa0RBQU9BLENBQUNFLEdBQUc7WUFDM0JlLFVBQVVJLFFBQVFwQix1REFBWUEsR0FBR3FCO1FBQ25DO1FBRUEsSUFBSUwsUUFBUU0sUUFBUSxDQUFDLE1BQU07WUFDekJOLFVBQVVBLFFBQVFPLEtBQUssQ0FBQyxHQUFHUCxRQUFRRyxNQUFNLEdBQUc7UUFDOUM7UUFDQSxJQUFJLENBQUNILFFBQVFRLFVBQVUsQ0FBQyxXQUFXLENBQUNSLFFBQVFRLFVBQVUsQ0FBQ3pCLGtEQUFPQSxDQUFDRSxHQUFHLEdBQUc7WUFDbkVlLFVBQVUsYUFBYUE7UUFDekI7UUFFQVMsUUFBUUMsR0FBRyxDQUFDLHFCQUFxQlYsU0FBU0g7UUFFMUMsT0FBTztZQUFDRztZQUFTSDtTQUFLLENBQUNjLElBQUksQ0FBQztJQUM5QjtJQUVBQyxlQUFlQyxHQUFRLEVBQUU7UUFDdkIsT0FBT0EsSUFBSUMsT0FBTyxFQUFFQyxHQUFHLElBQUlDLFNBQVNDLFdBQVc7SUFDakQ7SUFFQUMsT0FBT0MsT0FBc0IsRUFBd0I7UUFDbkQsTUFBTSxJQUFJQyxNQUFNO0lBQ2xCO0lBRUEsTUFBTUMsS0FBS0YsT0FBb0IsRUFBRTtRQUMvQixNQUFNRyxXQUFvQyxFQUFFO1FBQzVDLEtBQUssTUFBTUMsS0FBS0osUUFBUUcsUUFBUSxDQUFFO1lBQ2hDLE1BQU1MLFVBQVUsTUFBTXZCLHVFQUFzQkEsQ0FBQzZCLEVBQUVOLE9BQU87WUFDdERLLFNBQVNFLElBQUksQ0FBQztnQkFBRUMsTUFBTUYsRUFBRUUsSUFBSTtnQkFBRVI7WUFBUTtRQUN4QztRQUVBLE1BQU1TLGNBQWM7WUFDbEIsR0FBR3RDLG9EQUFZQSxDQUFDVyxRQUFRLEdBQUcyQixXQUFXO1lBQ3RDLEdBQUdyQyxvREFBWUEsQ0FBQ1UsUUFBUSxHQUFHNEIsY0FBYyxHQUFHQyxJQUFJLENBQUNGLFdBQVc7WUFDNUQsR0FBRztnQkFDREcsT0FBT1YsUUFBUVcsTUFBTSxDQUFDRCxLQUFLO2dCQUMzQkUsY0FBY1osUUFBUVcsTUFBTSxDQUFDQyxZQUFZO1lBQzNDLENBQUM7UUFDSDtRQUVBLE1BQU1DLGlCQUFpQztZQUNyQ1Y7WUFDQS9CLFFBQVE0QixRQUFRVyxNQUFNLENBQUN2QyxNQUFNO1lBQzdCc0MsT0FBT0gsWUFBWUcsS0FBSztZQUN4QkksYUFBYVAsWUFBWU8sV0FBVztZQUNwQ0Msa0JBQWtCUixZQUFZUSxnQkFBZ0I7WUFDOUNDLG1CQUFtQlQsWUFBWVMsaUJBQWlCO1lBQ2hEQyxPQUFPVixZQUFZVSxLQUFLO1FBQzFCO1FBRUEzQixRQUFRQyxHQUFHLENBQUMsMkJBQTJCc0I7UUFFdkMsTUFBTUssZUFBZSxDQUFDLENBQUNsQixRQUFRVyxNQUFNLENBQUN2QyxNQUFNO1FBQzVDLE1BQU0rQyxhQUFhLElBQUlDO1FBQ3ZCcEIsUUFBUXFCLFlBQVksR0FBR0Y7UUFFdkIsSUFBSTtZQUNGLE1BQU1HLFdBQVcsSUFBSSxDQUFDNUMsSUFBSSxDQUFDWiw4Q0FBR0EsQ0FBQ3lELFFBQVE7WUFDdkMsTUFBTUMsY0FBYztnQkFDbEJDLFFBQVE7Z0JBQ1JDLE1BQU1DLEtBQUtDLFNBQVMsQ0FBQ2Y7Z0JBQ3JCZ0IsUUFBUVYsV0FBV1UsTUFBTTtnQkFDekJDLFNBQVN6RCxnREFBVUE7WUFDckI7WUFFQSx1QkFBdUI7WUFDdkIsTUFBTTBELG1CQUFtQkMsV0FDdkIsSUFBTWIsV0FBV2MsS0FBSyxJQUN0QmxFLDZEQUFrQkE7WUFHcEIsSUFBSW1ELGNBQWM7Z0JBQ2hCLE1BQU0sQ0FBQ2dCLE9BQU9DLE1BQU0sR0FBR2hFLHNEQUFjQSxDQUNsQ1MsUUFBUSxHQUNSd0QsVUFBVSxDQUNUbEUsb0RBQVlBLENBQUNVLFFBQVEsR0FBRzRCLGNBQWMsR0FBR0MsSUFBSSxFQUFFNEIsVUFBVSxFQUFFO2dCQUUvRCxPQUFPakUsdURBQU1BLENBQ1hrRCxVQUNBVCxnQkFDQXhDLGdEQUFVQSxJQUNWNkQsT0FDQUMsT0FDQWhCLFlBQ0EsV0FBVztnQkFDWCxDQUFDbUIsTUFBY0M7b0JBQ2IsMkNBQTJDO29CQUMzQyxNQUFNQyxPQUFPYixLQUFLYyxLQUFLLENBQUNIO29CQUN4QixNQUFNM0MsVUFBVTZDLEtBQUs3QyxPQUFPO29CQU01QixNQUFNK0MsYUFBYS9DLE9BQU8sQ0FBQyxFQUFFLEVBQUVnRCxPQUFPRDtvQkFDdEMsSUFBSUEsWUFBWTFELFNBQVMsR0FBRzt3QkFDMUIsTUFBTTRELFFBQVFGLFVBQVUsQ0FBQyxFQUFFLEVBQUVFO3dCQUM3QixNQUFNQyxLQUFLSCxVQUFVLENBQUMsRUFBRSxFQUFFRzt3QkFDMUIsTUFBTUMsT0FBT0osVUFBVSxDQUFDLEVBQUUsRUFBRUssVUFBVUM7d0JBQ3RDLElBQUlILElBQUk7NEJBQ05OLFNBQVNsQyxJQUFJLENBQUM7Z0NBQ1p3QztnQ0FDQUksTUFBTVAsVUFBVSxDQUFDLEVBQUUsRUFBRU87Z0NBQ3JCRixVQUFVO29DQUNSRyxNQUFNUixVQUFVLENBQUMsRUFBRSxFQUFFSyxVQUFVRztvQ0FDL0JGLFdBQVdGO2dDQUNiOzRCQUNGO3dCQUNGLE9BQU87NEJBQ0wsYUFBYTs0QkFDYlAsUUFBUSxDQUFDSyxNQUFNLENBQUMsV0FBVyxDQUFDLFlBQVksSUFBSUU7d0JBQzlDO29CQUNGO29CQUNBLE9BQU9uRCxPQUFPLENBQUMsRUFBRSxFQUFFZ0QsT0FBTzdDO2dCQUM1QixHQUNBLHVFQUF1RTtnQkFDdkUsQ0FDRWUsZ0JBQ0FzQyxpQkFDQUM7b0JBRUEsYUFBYTtvQkFDYnZDLGdCQUFnQlYsVUFBVWtELE9BQ3hCLGFBQWE7b0JBQ2J4QyxnQkFBZ0JWLFVBQVVuQixRQUMxQixHQUNBbUUsb0JBQ0dDO2dCQUVQLEdBQ0FwRDtZQUVKLE9BQU87Z0JBQ0wsTUFBTU4sTUFBTSxNQUFNbEIsd0RBQUtBLENBQUM4QyxVQUFVRTtnQkFDbEM4QixhQUFhdkI7Z0JBRWIsTUFBTXdCLFVBQVUsTUFBTTdELElBQUk4QyxJQUFJO2dCQUM5QixNQUFNM0MsVUFBVSxJQUFJLENBQUNKLGNBQWMsQ0FBQzhEO2dCQUNwQ3ZELFFBQVF3RCxRQUFRLENBQUMzRCxTQUFTSDtZQUM1QjtRQUNGLEVBQUUsT0FBTytELEdBQUc7WUFDVm5FLFFBQVFDLEdBQUcsQ0FBQywyQ0FBMkNrRTtZQUN2RHpELFFBQVEwRCxPQUFPLEdBQUdEO1FBQ3BCO0lBQ0Y7SUFDQSxNQUFNRSxRQUFRO1FBQ1osT0FBTztZQUNMQyxNQUFNO1lBQ05DLE9BQU87UUFDVDtJQUNGO0lBRUEsTUFBTUMsU0FBOEI7UUFDbEMsT0FBTyxFQUFFO0lBQ1g7O2FBdktRQyxvQkFBb0I7O0FBd0s5QiIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2NsaWVudC9wbGF0Zm9ybXMveGFpLnRzPzUzOTEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XHJcbi8vIGF6dXJlIGFuZCBvcGVuYWksIHVzaW5nIHNhbWUgbW9kZWxzLiBzbyB1c2luZyBzYW1lIExMTUFwaS5cclxuaW1wb3J0IHsgQXBpUGF0aCwgWEFJX0JBU0VfVVJMLCBYQUksIFJFUVVFU1RfVElNRU9VVF9NUyB9IGZyb20gXCJAL2FwcC9jb25zdGFudFwiO1xyXG5pbXBvcnQge1xyXG4gIHVzZUFjY2Vzc1N0b3JlLFxyXG4gIHVzZUFwcENvbmZpZyxcclxuICB1c2VDaGF0U3RvcmUsXHJcbiAgQ2hhdE1lc3NhZ2VUb29sLFxyXG4gIHVzZVBsdWdpblN0b3JlLFxyXG59IGZyb20gXCJAL2FwcC9zdG9yZVwiO1xyXG5pbXBvcnQgeyBzdHJlYW0gfSBmcm9tIFwiQC9hcHAvdXRpbHMvY2hhdFwiO1xyXG5pbXBvcnQge1xyXG4gIENoYXRPcHRpb25zLFxyXG4gIGdldEhlYWRlcnMsXHJcbiAgTExNQXBpLFxyXG4gIExMTU1vZGVsLFxyXG4gIFNwZWVjaE9wdGlvbnMsXHJcbn0gZnJvbSBcIi4uL2FwaVwiO1xyXG5pbXBvcnQgeyBnZXRDbGllbnRDb25maWcgfSBmcm9tIFwiQC9hcHAvY29uZmlnL2NsaWVudFwiO1xyXG5pbXBvcnQgeyBwcmVQcm9jZXNzSW1hZ2VDb250ZW50IH0gZnJvbSBcIkAvYXBwL3V0aWxzL2NoYXRcIjtcclxuaW1wb3J0IHsgUmVxdWVzdFBheWxvYWQgfSBmcm9tIFwiLi9vcGVuYWlcIjtcclxuaW1wb3J0IHsgZmV0Y2ggfSBmcm9tIFwiQC9hcHAvdXRpbHMvc3RyZWFtXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgWEFJQXBpIGltcGxlbWVudHMgTExNQXBpIHtcclxuICBwcml2YXRlIGRpc2FibGVMaXN0TW9kZWxzID0gdHJ1ZTtcclxuXHJcbiAgcGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYWNjZXNzU3RvcmUgPSB1c2VBY2Nlc3NTdG9yZS5nZXRTdGF0ZSgpO1xyXG5cclxuICAgIGxldCBiYXNlVXJsID0gXCJcIjtcclxuXHJcbiAgICBpZiAoYWNjZXNzU3RvcmUudXNlQ3VzdG9tQ29uZmlnKSB7XHJcbiAgICAgIGJhc2VVcmwgPSBhY2Nlc3NTdG9yZS54YWlVcmw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGJhc2VVcmwubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGNvbnN0IGlzQXBwID0gISFnZXRDbGllbnRDb25maWcoKT8uaXNBcHA7XHJcbiAgICAgIGNvbnN0IGFwaVBhdGggPSBBcGlQYXRoLlhBSTtcclxuICAgICAgYmFzZVVybCA9IGlzQXBwID8gWEFJX0JBU0VfVVJMIDogYXBpUGF0aDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYmFzZVVybC5lbmRzV2l0aChcIi9cIikpIHtcclxuICAgICAgYmFzZVVybCA9IGJhc2VVcmwuc2xpY2UoMCwgYmFzZVVybC5sZW5ndGggLSAxKTtcclxuICAgIH1cclxuICAgIGlmICghYmFzZVVybC5zdGFydHNXaXRoKFwiaHR0cFwiKSAmJiAhYmFzZVVybC5zdGFydHNXaXRoKEFwaVBhdGguWEFJKSkge1xyXG4gICAgICBiYXNlVXJsID0gXCJodHRwczovL1wiICsgYmFzZVVybDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIltQcm94eSBFbmRwb2ludF0gXCIsIGJhc2VVcmwsIHBhdGgpO1xyXG5cclxuICAgIHJldHVybiBbYmFzZVVybCwgcGF0aF0uam9pbihcIi9cIik7XHJcbiAgfVxyXG5cclxuICBleHRyYWN0TWVzc2FnZShyZXM6IGFueSkge1xyXG4gICAgcmV0dXJuIHJlcy5jaG9pY2VzPy5hdCgwKT8ubWVzc2FnZT8uY29udGVudCA/PyBcIlwiO1xyXG4gIH1cclxuXHJcbiAgc3BlZWNoKG9wdGlvbnM6IFNwZWVjaE9wdGlvbnMpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGNoYXQob3B0aW9uczogQ2hhdE9wdGlvbnMpIHtcclxuICAgIGNvbnN0IG1lc3NhZ2VzOiBDaGF0T3B0aW9uc1tcIm1lc3NhZ2VzXCJdID0gW107XHJcbiAgICBmb3IgKGNvbnN0IHYgb2Ygb3B0aW9ucy5tZXNzYWdlcykge1xyXG4gICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcHJlUHJvY2Vzc0ltYWdlQ29udGVudCh2LmNvbnRlbnQpO1xyXG4gICAgICBtZXNzYWdlcy5wdXNoKHsgcm9sZTogdi5yb2xlLCBjb250ZW50IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1vZGVsQ29uZmlnID0ge1xyXG4gICAgICAuLi51c2VBcHBDb25maWcuZ2V0U3RhdGUoKS5tb2RlbENvbmZpZyxcclxuICAgICAgLi4udXNlQ2hhdFN0b3JlLmdldFN0YXRlKCkuY3VycmVudFNlc3Npb24oKS5tYXNrLm1vZGVsQ29uZmlnLFxyXG4gICAgICAuLi57XHJcbiAgICAgICAgbW9kZWw6IG9wdGlvbnMuY29uZmlnLm1vZGVsLFxyXG4gICAgICAgIHByb3ZpZGVyTmFtZTogb3B0aW9ucy5jb25maWcucHJvdmlkZXJOYW1lLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCByZXF1ZXN0UGF5bG9hZDogUmVxdWVzdFBheWxvYWQgPSB7XHJcbiAgICAgIG1lc3NhZ2VzLFxyXG4gICAgICBzdHJlYW06IG9wdGlvbnMuY29uZmlnLnN0cmVhbSxcclxuICAgICAgbW9kZWw6IG1vZGVsQ29uZmlnLm1vZGVsLFxyXG4gICAgICB0ZW1wZXJhdHVyZTogbW9kZWxDb25maWcudGVtcGVyYXR1cmUsXHJcbiAgICAgIHByZXNlbmNlX3BlbmFsdHk6IG1vZGVsQ29uZmlnLnByZXNlbmNlX3BlbmFsdHksXHJcbiAgICAgIGZyZXF1ZW5jeV9wZW5hbHR5OiBtb2RlbENvbmZpZy5mcmVxdWVuY3lfcGVuYWx0eSxcclxuICAgICAgdG9wX3A6IG1vZGVsQ29uZmlnLnRvcF9wLFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIltSZXF1ZXN0XSB4YWkgcGF5bG9hZDogXCIsIHJlcXVlc3RQYXlsb2FkKTtcclxuXHJcbiAgICBjb25zdCBzaG91bGRTdHJlYW0gPSAhIW9wdGlvbnMuY29uZmlnLnN0cmVhbTtcclxuICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XHJcbiAgICBvcHRpb25zLm9uQ29udHJvbGxlcj8uKGNvbnRyb2xsZXIpO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGNoYXRQYXRoID0gdGhpcy5wYXRoKFhBSS5DaGF0UGF0aCk7XHJcbiAgICAgIGNvbnN0IGNoYXRQYXlsb2FkID0ge1xyXG4gICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXHJcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkocmVxdWVzdFBheWxvYWQpLFxyXG4gICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWwsXHJcbiAgICAgICAgaGVhZGVyczogZ2V0SGVhZGVycygpLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy8gbWFrZSBhIGZldGNoIHJlcXVlc3RcclxuICAgICAgY29uc3QgcmVxdWVzdFRpbWVvdXRJZCA9IHNldFRpbWVvdXQoXHJcbiAgICAgICAgKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLFxyXG4gICAgICAgIFJFUVVFU1RfVElNRU9VVF9NUyxcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGlmIChzaG91bGRTdHJlYW0pIHtcclxuICAgICAgICBjb25zdCBbdG9vbHMsIGZ1bmNzXSA9IHVzZVBsdWdpblN0b3JlXHJcbiAgICAgICAgICAuZ2V0U3RhdGUoKVxyXG4gICAgICAgICAgLmdldEFzVG9vbHMoXHJcbiAgICAgICAgICAgIHVzZUNoYXRTdG9yZS5nZXRTdGF0ZSgpLmN1cnJlbnRTZXNzaW9uKCkubWFzaz8ucGx1Z2luIHx8IFtdLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gc3RyZWFtKFxyXG4gICAgICAgICAgY2hhdFBhdGgsXHJcbiAgICAgICAgICByZXF1ZXN0UGF5bG9hZCxcclxuICAgICAgICAgIGdldEhlYWRlcnMoKSxcclxuICAgICAgICAgIHRvb2xzIGFzIGFueSxcclxuICAgICAgICAgIGZ1bmNzLFxyXG4gICAgICAgICAgY29udHJvbGxlcixcclxuICAgICAgICAgIC8vIHBhcnNlU1NFXHJcbiAgICAgICAgICAodGV4dDogc3RyaW5nLCBydW5Ub29sczogQ2hhdE1lc3NhZ2VUb29sW10pID0+IHtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJwYXJzZVNTRVwiLCB0ZXh0LCBydW5Ub29scyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKHRleHQpO1xyXG4gICAgICAgICAgICBjb25zdCBjaG9pY2VzID0ganNvbi5jaG9pY2VzIGFzIEFycmF5PHtcclxuICAgICAgICAgICAgICBkZWx0YToge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogc3RyaW5nO1xyXG4gICAgICAgICAgICAgICAgdG9vbF9jYWxsczogQ2hhdE1lc3NhZ2VUb29sW107XHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfT47XHJcbiAgICAgICAgICAgIGNvbnN0IHRvb2xfY2FsbHMgPSBjaG9pY2VzWzBdPy5kZWx0YT8udG9vbF9jYWxscztcclxuICAgICAgICAgICAgaWYgKHRvb2xfY2FsbHM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRvb2xfY2FsbHNbMF0/LmluZGV4O1xyXG4gICAgICAgICAgICAgIGNvbnN0IGlkID0gdG9vbF9jYWxsc1swXT8uaWQ7XHJcbiAgICAgICAgICAgICAgY29uc3QgYXJncyA9IHRvb2xfY2FsbHNbMF0/LmZ1bmN0aW9uPy5hcmd1bWVudHM7XHJcbiAgICAgICAgICAgICAgaWYgKGlkKSB7XHJcbiAgICAgICAgICAgICAgICBydW5Ub29scy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgaWQsXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IHRvb2xfY2FsbHNbMF0/LnR5cGUsXHJcbiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdG9vbF9jYWxsc1swXT8uZnVuY3Rpb24/Lm5hbWUgYXMgc3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50czogYXJncyxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICBydW5Ub29sc1tpbmRleF1bXCJmdW5jdGlvblwiXVtcImFyZ3VtZW50c1wiXSArPSBhcmdzO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gY2hvaWNlc1swXT8uZGVsdGE/LmNvbnRlbnQ7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLy8gcHJvY2Vzc1Rvb2xNZXNzYWdlLCBpbmNsdWRlIHRvb2xfY2FsbHMgbWVzc2FnZSBhbmQgdG9vbCBjYWxsIHJlc3VsdHNcclxuICAgICAgICAgIChcclxuICAgICAgICAgICAgcmVxdWVzdFBheWxvYWQ6IFJlcXVlc3RQYXlsb2FkLFxyXG4gICAgICAgICAgICB0b29sQ2FsbE1lc3NhZ2U6IGFueSxcclxuICAgICAgICAgICAgdG9vbENhbGxSZXN1bHQ6IGFueVtdLFxyXG4gICAgICAgICAgKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgcmVxdWVzdFBheWxvYWQ/Lm1lc3NhZ2VzPy5zcGxpY2UoXHJcbiAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgIHJlcXVlc3RQYXlsb2FkPy5tZXNzYWdlcz8ubGVuZ3RoLFxyXG4gICAgICAgICAgICAgIDAsXHJcbiAgICAgICAgICAgICAgdG9vbENhbGxNZXNzYWdlLFxyXG4gICAgICAgICAgICAgIC4uLnRvb2xDYWxsUmVzdWx0LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9wdGlvbnMsXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChjaGF0UGF0aCwgY2hhdFBheWxvYWQpO1xyXG4gICAgICAgIGNsZWFyVGltZW91dChyZXF1ZXN0VGltZW91dElkKTtcclxuXHJcbiAgICAgICAgY29uc3QgcmVzSnNvbiA9IGF3YWl0IHJlcy5qc29uKCk7XHJcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMuZXh0cmFjdE1lc3NhZ2UocmVzSnNvbik7XHJcbiAgICAgICAgb3B0aW9ucy5vbkZpbmlzaChtZXNzYWdlLCByZXMpO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiW1JlcXVlc3RdIGZhaWxlZCB0byBtYWtlIGEgY2hhdCByZXF1ZXN0XCIsIGUpO1xyXG4gICAgICBvcHRpb25zLm9uRXJyb3I/LihlIGFzIEVycm9yKTtcclxuICAgIH1cclxuICB9XHJcbiAgYXN5bmMgdXNhZ2UoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB1c2VkOiAwLFxyXG4gICAgICB0b3RhbDogMCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBhc3luYyBtb2RlbHMoKTogUHJvbWlzZTxMTE1Nb2RlbFtdPiB7XHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG59XHJcbiJdLCJuYW1lcyI6WyJBcGlQYXRoIiwiWEFJX0JBU0VfVVJMIiwiWEFJIiwiUkVRVUVTVF9USU1FT1VUX01TIiwidXNlQWNjZXNzU3RvcmUiLCJ1c2VBcHBDb25maWciLCJ1c2VDaGF0U3RvcmUiLCJ1c2VQbHVnaW5TdG9yZSIsInN0cmVhbSIsImdldEhlYWRlcnMiLCJnZXRDbGllbnRDb25maWciLCJwcmVQcm9jZXNzSW1hZ2VDb250ZW50IiwiZmV0Y2giLCJYQUlBcGkiLCJwYXRoIiwiYWNjZXNzU3RvcmUiLCJnZXRTdGF0ZSIsImJhc2VVcmwiLCJ1c2VDdXN0b21Db25maWciLCJ4YWlVcmwiLCJsZW5ndGgiLCJpc0FwcCIsImFwaVBhdGgiLCJlbmRzV2l0aCIsInNsaWNlIiwic3RhcnRzV2l0aCIsImNvbnNvbGUiLCJsb2ciLCJqb2luIiwiZXh0cmFjdE1lc3NhZ2UiLCJyZXMiLCJjaG9pY2VzIiwiYXQiLCJtZXNzYWdlIiwiY29udGVudCIsInNwZWVjaCIsIm9wdGlvbnMiLCJFcnJvciIsImNoYXQiLCJtZXNzYWdlcyIsInYiLCJwdXNoIiwicm9sZSIsIm1vZGVsQ29uZmlnIiwiY3VycmVudFNlc3Npb24iLCJtYXNrIiwibW9kZWwiLCJjb25maWciLCJwcm92aWRlck5hbWUiLCJyZXF1ZXN0UGF5bG9hZCIsInRlbXBlcmF0dXJlIiwicHJlc2VuY2VfcGVuYWx0eSIsImZyZXF1ZW5jeV9wZW5hbHR5IiwidG9wX3AiLCJzaG91bGRTdHJlYW0iLCJjb250cm9sbGVyIiwiQWJvcnRDb250cm9sbGVyIiwib25Db250cm9sbGVyIiwiY2hhdFBhdGgiLCJDaGF0UGF0aCIsImNoYXRQYXlsb2FkIiwibWV0aG9kIiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJzaWduYWwiLCJoZWFkZXJzIiwicmVxdWVzdFRpbWVvdXRJZCIsInNldFRpbWVvdXQiLCJhYm9ydCIsInRvb2xzIiwiZnVuY3MiLCJnZXRBc1Rvb2xzIiwicGx1Z2luIiwidGV4dCIsInJ1blRvb2xzIiwianNvbiIsInBhcnNlIiwidG9vbF9jYWxscyIsImRlbHRhIiwiaW5kZXgiLCJpZCIsImFyZ3MiLCJmdW5jdGlvbiIsImFyZ3VtZW50cyIsInR5cGUiLCJuYW1lIiwidG9vbENhbGxNZXNzYWdlIiwidG9vbENhbGxSZXN1bHQiLCJzcGxpY2UiLCJjbGVhclRpbWVvdXQiLCJyZXNKc29uIiwib25GaW5pc2giLCJlIiwib25FcnJvciIsInVzYWdlIiwidXNlZCIsInRvdGFsIiwibW9kZWxzIiwiZGlzYWJsZUxpc3RNb2RlbHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/client/platforms/xai.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/components/auth.tsx":
|
|
|
/*!*********************************!*\
|
|
|
!*** ./app/components/auth.tsx ***!
|
|
|
\*********************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AuthPage: () => (/* binding */ AuthPage)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _auth_module_scss__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./auth.module.scss */ \"(ssr)/./app/components/auth.module.scss\");\n/* harmony import */ var _auth_module_scss__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_auth_module_scss__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var _button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./button */ \"(ssr)/./app/components/button.tsx\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! react-router-dom */ \"(ssr)/./node_modules/react-router/dist/index.js\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../store */ \"(ssr)/./app/store/index.ts\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../locales */ \"(ssr)/./app/locales/index.ts\");\n/* harmony import */ var _icons_close_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../icons/close.svg */ \"(ssr)/./app/icons/close.svg\");\n/* harmony import */ var _icons_arrow_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../icons/arrow.svg */ \"(ssr)/./app/icons/arrow.svg\");\n/* harmony import */ var _icons_logo_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../icons/logo.svg */ \"(ssr)/./app/icons/logo.svg\");\n/* harmony import */ var _app_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/app/utils */ \"(ssr)/./app/utils.ts\");\n/* harmony import */ var _icons_bot_svg__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../icons/bot.svg */ \"(ssr)/./app/icons/bot.svg\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _ui_lib__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ui-lib */ \"(ssr)/./app/components/ui-lib.tsx\");\n/* harmony import */ var _app_icons_left_svg__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/app/icons/left.svg */ \"(ssr)/./app/icons/left.svg\");\n/* harmony import */ var _utils_auth_settings_events__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/auth-settings-events */ \"(ssr)/./app/utils/auth-settings-events.ts\");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! clsx */ \"(ssr)/./node_modules/clsx/dist/clsx.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst storage = (0,_app_utils__WEBPACK_IMPORTED_MODULE_9__.safeLocalStorage)();\nfunction AuthPage() {\n const navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_16__.useNavigate)();\n const accessStore = (0,_store__WEBPACK_IMPORTED_MODULE_4__.useAccessStore)();\n const goHome = ()=>navigate(_constant__WEBPACK_IMPORTED_MODULE_3__.Path.Home);\n const goChat = ()=>navigate(_constant__WEBPACK_IMPORTED_MODULE_3__.Path.Chat);\n const goSaas = ()=>{\n (0,_utils_auth_settings_events__WEBPACK_IMPORTED_MODULE_14__.trackAuthorizationPageButtonToCPaymentClick)();\n window.location.href = _constant__WEBPACK_IMPORTED_MODULE_3__.SAAS_CHAT_URL;\n };\n const resetAccessCode = ()=>{\n accessStore.update((access)=>{\n access.openaiApiKey = \"\";\n access.accessCode = \"\";\n });\n }; // Reset access code to empty string\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(()=>{\n if ((0,_config_client__WEBPACK_IMPORTED_MODULE_11__.getClientConfig)()?.isApp) {\n navigate(_constant__WEBPACK_IMPORTED_MODULE_3__.Path.Settings);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_auth_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"auth-page\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(TopBanner, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 51,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_auth_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"auth-header\"]),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_1__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_app_icons_left_svg__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 54,\n columnNumber: 17\n }, void 0),\n text: _locales__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Auth.Return,\n onClick: ()=>navigate(_constant__WEBPACK_IMPORTED_MODULE_3__.Path.Home)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 53,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 52,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_15__[\"default\"])(\"no-dark\", (_auth_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"auth-logo\"])),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_bot_svg__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 60,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 59,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_auth_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"auth-title\"]),\n children: _locales__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Auth.Title\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 63,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_auth_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"auth-tips\"]),\n children: _locales__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Auth.Tips\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 64,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_12__.PasswordInput, {\n style: {\n marginTop: \"3vh\",\n marginBottom: \"3vh\"\n },\n aria: _locales__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Settings.ShowPassword,\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Auth.Input,\n value: accessStore.accessCode,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Auth.Input,\n onChange: (e)=>{\n accessStore.update((access)=>access.accessCode = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 66,\n columnNumber: 7\n }, this),\n !accessStore.hideUserApiKey ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_auth_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"auth-tips\"]),\n children: _locales__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Auth.SubTips\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 82,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_12__.PasswordInput, {\n style: {\n marginTop: \"3vh\",\n marginBottom: \"3vh\"\n },\n aria: _locales__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Settings.ShowPassword,\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Settings.Access.OpenAI.ApiKey.Placeholder,\n value: accessStore.openaiApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Settings.Access.OpenAI.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.openaiApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 83,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_12__.PasswordInput, {\n style: {\n marginTop: \"3vh\",\n marginBottom: \"3vh\"\n },\n aria: _locales__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Settings.ShowPassword,\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Settings.Access.Google.ApiKey.Placeholder,\n value: accessStore.googleApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Settings.Access.Google.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.googleApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 96,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true) : null,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_auth_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"auth-actions\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_1__.IconButton, {\n text: _locales__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Auth.Confirm,\n type: \"primary\",\n onClick: goChat\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 113,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_1__.IconButton, {\n text: _locales__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Auth.SaasTips,\n onClick: ()=>{\n goSaas();\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 118,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 112,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 50,\n columnNumber: 5\n }, this);\n}\nfunction TopBanner() {\n const [isHovered, setIsHovered] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n const [isVisible, setIsVisible] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(true);\n const isMobile = (0,_app_utils__WEBPACK_IMPORTED_MODULE_9__.useMobileScreen)();\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(()=>{\n // 检查 localStorage 中是否有标记\n const bannerDismissed = storage.getItem(\"bannerDismissed\");\n // 如果标记不存在,存储默认值并显示横幅\n if (!bannerDismissed) {\n storage.setItem(\"bannerDismissed\", \"false\");\n setIsVisible(true); // 显示横幅\n } else if (bannerDismissed === \"true\") {\n // 如果标记为 \"true\",则隐藏横幅\n setIsVisible(false);\n }\n }, []);\n const handleMouseEnter = ()=>{\n setIsHovered(true);\n };\n const handleMouseLeave = ()=>{\n setIsHovered(false);\n };\n const handleClose = ()=>{\n setIsVisible(false);\n storage.setItem(\"bannerDismissed\", \"true\");\n };\n if (!isVisible) {\n return null;\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_auth_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"top-banner\"]),\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_15__[\"default\"])((_auth_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"top-banner-inner\"]), \"no-dark\"),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_logo_svg__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: (_auth_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"top-banner-logo\"])\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 169,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: [\n _locales__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Auth.TopTips,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: _constant__WEBPACK_IMPORTED_MODULE_3__.SAAS_CHAT_URL,\n rel: \"stylesheet\",\n onClick: ()=>{\n (0,_utils_auth_settings_events__WEBPACK_IMPORTED_MODULE_14__.trackSettingsPageGuideToCPaymentClick)();\n },\n children: [\n _locales__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Settings.Access.SaasStart.ChatNow,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_arrow_svg__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n style: {\n marginLeft: \"4px\"\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 180,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 172,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 170,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 168,\n columnNumber: 7\n }, this),\n (isHovered || isMobile) && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_close_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: (_auth_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"top-banner-close\"]),\n onClick: handleClose\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 185,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\auth.tsx\",\n lineNumber: 163,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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TUFBTSxDQUFDeUIsU0FBUyxDQUFDQyxPQUFPO2tEQUN6Qyw4REFBQ2pGLHdEQUFLQTt3Q0FBQ3dDLE9BQU87NENBQUUwQyxZQUFZO3dDQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7WUFJdENuQixDQUFBQSxhQUFhSSxRQUFPLG1CQUNwQiw4REFBQ3BFLHdEQUFNQTtnQkFBQ2dDLFdBQVd6QywrRUFBMEI7Z0JBQUUrQyxTQUFTb0M7Ozs7Ozs7Ozs7OztBQUloRSIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2NvbXBvbmVudHMvYXV0aC50c3g/Nzc1NCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVzIGZyb20gXCIuL2F1dGgubW9kdWxlLnNjc3NcIjtcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gXCIuL2J1dHRvblwiO1xyXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcclxuaW1wb3J0IHsgUGF0aCwgU0FBU19DSEFUX1VSTCB9IGZyb20gXCIuLi9jb25zdGFudFwiO1xyXG5pbXBvcnQgeyB1c2VBY2Nlc3NTdG9yZSB9IGZyb20gXCIuLi9zdG9yZVwiO1xyXG5pbXBvcnQgTG9jYWxlIGZyb20gXCIuLi9sb2NhbGVzXCI7XHJcbmltcG9ydCBEZWxldGUgZnJvbSBcIi4uL2ljb25zL2Nsb3NlLnN2Z1wiO1xyXG5pbXBvcnQgQXJyb3cgZnJvbSBcIi4uL2ljb25zL2Fycm93LnN2Z1wiO1xyXG5pbXBvcnQgTG9nbyBmcm9tIFwiLi4vaWNvbnMvbG9nby5zdmdcIjtcclxuaW1wb3J0IHsgdXNlTW9iaWxlU2NyZWVuIH0gZnJvbSBcIkAvYXBwL3V0aWxzXCI7XHJcbmltcG9ydCBCb3RJY29uIGZyb20gXCIuLi9pY29ucy9ib3Quc3ZnXCI7XHJcbmltcG9ydCB7IGdldENsaWVudENvbmZpZyB9IGZyb20gXCIuLi9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB7IFBhc3N3b3JkSW5wdXQgfSBmcm9tIFwiLi91aS1saWJcIjtcclxuaW1wb3J0IExlZnRJY29uIGZyb20gXCJAL2FwcC9pY29ucy9sZWZ0LnN2Z1wiO1xyXG5pbXBvcnQgeyBzYWZlTG9jYWxTdG9yYWdlIH0gZnJvbSBcIkAvYXBwL3V0aWxzXCI7XHJcbmltcG9ydCB7XHJcbiAgdHJhY2tTZXR0aW5nc1BhZ2VHdWlkZVRvQ1BheW1lbnRDbGljayxcclxuICB0cmFja0F1dGhvcml6YXRpb25QYWdlQnV0dG9uVG9DUGF5bWVudENsaWNrLFxyXG59IGZyb20gXCIuLi91dGlscy9hdXRoLXNldHRpbmdzLWV2ZW50c1wiO1xyXG5pbXBvcnQgY2xzeCBmcm9tIFwiY2xzeFwiO1xyXG5cclxuY29uc3Qgc3RvcmFnZSA9IHNhZmVMb2NhbFN0b3JhZ2UoKTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBBdXRoUGFnZSgpIHtcclxuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XHJcbiAgY29uc3QgYWNjZXNzU3RvcmUgPSB1c2VBY2Nlc3NTdG9yZSgpO1xyXG4gIGNvbnN0IGdvSG9tZSA9ICgpID0+IG5hdmlnYXRlKFBhdGguSG9tZSk7XHJcbiAgY29uc3QgZ29DaGF0ID0gKCkgPT4gbmF2aWdhdGUoUGF0aC5DaGF0KTtcclxuICBjb25zdCBnb1NhYXMgPSAoKSA9PiB7XHJcbiAgICB0cmFja0F1dGhvcml6YXRpb25QYWdlQnV0dG9uVG9DUGF5bWVudENsaWNrKCk7XHJcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IFNBQVNfQ0hBVF9VUkw7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgcmVzZXRBY2Nlc3NDb2RlID0gKCkgPT4ge1xyXG4gICAgYWNjZXNzU3RvcmUudXBkYXRlKChhY2Nlc3MpID0+IHtcclxuICAgICAgYWNjZXNzLm9wZW5haUFwaUtleSA9IFwiXCI7XHJcbiAgICAgIGFjY2Vzcy5hY2Nlc3NDb2RlID0gXCJcIjtcclxuICAgIH0pO1xyXG4gIH07IC8vIFJlc2V0IGFjY2VzcyBjb2RlIHRvIGVtcHR5IHN0cmluZ1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKGdldENsaWVudENvbmZpZygpPy5pc0FwcCkge1xyXG4gICAgICBuYXZpZ2F0ZShQYXRoLlNldHRpbmdzKTtcclxuICAgIH1cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcclxuICB9LCBbXSk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wiYXV0aC1wYWdlXCJdfT5cclxuICAgICAgPFRvcEJhbm5lcj48L1RvcEJhbm5lcj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImF1dGgtaGVhZGVyXCJdfT5cclxuICAgICAgICA8SWNvbkJ1dHRvblxyXG4gICAgICAgICAgaWNvbj17PExlZnRJY29uIC8+fVxyXG4gICAgICAgICAgdGV4dD17TG9jYWxlLkF1dGguUmV0dXJufVxyXG4gICAgICAgICAgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoUGF0aC5Ib21lKX1cclxuICAgICAgICA+PC9JY29uQnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Nsc3goXCJuby1kYXJrXCIsIHN0eWxlc1tcImF1dGgtbG9nb1wiXSl9PlxyXG4gICAgICAgIDxCb3RJY29uIC8+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImF1dGgtdGl0bGVcIl19PntMb2NhbGUuQXV0aC5UaXRsZX08L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImF1dGgtdGlwc1wiXX0+e0xvY2FsZS5BdXRoLlRpcHN9PC9kaXY+XHJcblxyXG4gICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgIHN0eWxlPXt7IG1hcmdpblRvcDogXCIzdmhcIiwgbWFyZ2luQm90dG9tOiBcIjN2aFwiIH19XHJcbiAgICAgICAgYXJpYT17TG9jYWxlLlNldHRpbmdzLlNob3dQYXNzd29yZH1cclxuICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuQXV0aC5JbnB1dH1cclxuICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuYWNjZXNzQ29kZX1cclxuICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5BdXRoLklucHV0fVxyXG4gICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmFjY2Vzc0NvZGUgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9fVxyXG4gICAgICAvPlxyXG5cclxuICAgICAgeyFhY2Nlc3NTdG9yZS5oaWRlVXNlckFwaUtleSA/IChcclxuICAgICAgICA8PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImF1dGgtdGlwc1wiXX0+e0xvY2FsZS5BdXRoLlN1YlRpcHN9PC9kaXY+XHJcbiAgICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5Ub3A6IFwiM3ZoXCIsIG1hcmdpbkJvdHRvbTogXCIzdmhcIiB9fVxyXG4gICAgICAgICAgICBhcmlhPXtMb2NhbGUuU2V0dGluZ3MuU2hvd1Bhc3N3b3JkfVxyXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk9wZW5BSS5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5vcGVuYWlBcGlLZXl9XHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuT3BlbkFJLkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5vcGVuYWlBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luVG9wOiBcIjN2aFwiLCBtYXJnaW5Cb3R0b206IFwiM3ZoXCIgfX1cclxuICAgICAgICAgICAgYXJpYT17TG9jYWxlLlNldHRpbmdzLlNob3dQYXNzd29yZH1cclxuICAgICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuQXBpS2V5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuZ29vZ2xlQXBpS2V5fVxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkdvb2dsZS5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuZ29vZ2xlQXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8Lz5cclxuICAgICAgKSA6IG51bGx9XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wiYXV0aC1hY3Rpb25zXCJdfT5cclxuICAgICAgICA8SWNvbkJ1dHRvblxyXG4gICAgICAgICAgdGV4dD17TG9jYWxlLkF1dGguQ29uZmlybX1cclxuICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIG9uQ2xpY2s9e2dvQ2hhdH1cclxuICAgICAgICAvPlxyXG4gICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICB0ZXh0PXtMb2NhbGUuQXV0aC5TYWFzVGlwc31cclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgZ29TYWFzKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gVG9wQmFubmVyKCkge1xyXG4gIGNvbnN0IFtpc0hvdmVyZWQsIHNldElzSG92ZXJlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgY29uc3QgW2lzVmlzaWJsZSwgc2V0SXNWaXNpYmxlXSA9IHVzZVN0YXRlKHRydWUpO1xyXG4gIGNvbnN0IGlzTW9iaWxlID0gdXNlTW9iaWxlU2NyZWVuKCk7XHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIC8vIOajgOafpSBsb2NhbFN0b3JhZ2Ug5Lit5piv5ZCm5pyJ5qCH6K6wXHJcbiAgICBjb25zdCBiYW5uZXJEaXNtaXNzZWQgPSBzdG9yYWdlLmdldEl0ZW0oXCJiYW5uZXJEaXNtaXNzZWRcIik7XHJcbiAgICAvLyDlpoLmnpzmoIforrDkuI3lrZjlnKjvvIzlrZjlgqjpu5jorqTlgLzlubbmmL7npLrmqKrluYVcclxuICAgIGlmICghYmFubmVyRGlzbWlzc2VkKSB7XHJcbiAgICAgIHN0b3JhZ2Uuc2V0SXRlbShcImJhbm5lckRpc21pc3NlZFwiLCBcImZhbHNlXCIpO1xyXG4gICAgICBzZXRJc1Zpc2libGUodHJ1ZSk7IC8vIOaYvuekuuaoquW5hVxyXG4gICAgfSBlbHNlIGlmIChiYW5uZXJEaXNtaXNzZWQgPT09IFwidHJ1ZVwiKSB7XHJcbiAgICAgIC8vIOWmguaenOagh+iusOS4uiBcInRydWVcIu+8jOWImemakOiXj+aoquW5hVxyXG4gICAgICBzZXRJc1Zpc2libGUoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH0sIFtdKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlTW91c2VFbnRlciA9ICgpID0+IHtcclxuICAgIHNldElzSG92ZXJlZCh0cnVlKTtcclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVNb3VzZUxlYXZlID0gKCkgPT4ge1xyXG4gICAgc2V0SXNIb3ZlcmVkKGZhbHNlKTtcclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVDbG9zZSA9ICgpID0+IHtcclxuICAgIHNldElzVmlzaWJsZShmYWxzZSk7XHJcbiAgICBzdG9yYWdlLnNldEl0ZW0oXCJiYW5uZXJEaXNtaXNzZWRcIiwgXCJ0cnVlXCIpO1xyXG4gIH07XHJcblxyXG4gIGlmICghaXNWaXNpYmxlKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXZcclxuICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJ0b3AtYmFubmVyXCJdfVxyXG4gICAgICBvbk1vdXNlRW50ZXI9e2hhbmRsZU1vdXNlRW50ZXJ9XHJcbiAgICAgIG9uTW91c2VMZWF2ZT17aGFuZGxlTW91c2VMZWF2ZX1cclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Nsc3goc3R5bGVzW1widG9wLWJhbm5lci1pbm5lclwiXSwgXCJuby1kYXJrXCIpfT5cclxuICAgICAgICA8TG9nbyBjbGFzc05hbWU9e3N0eWxlc1tcInRvcC1iYW5uZXItbG9nb1wiXX0+PC9Mb2dvPlxyXG4gICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAge0xvY2FsZS5BdXRoLlRvcFRpcHN9XHJcbiAgICAgICAgICA8YVxyXG4gICAgICAgICAgICBocmVmPXtTQUFTX0NIQVRfVVJMfVxyXG4gICAgICAgICAgICByZWw9XCJzdHlsZXNoZWV0XCJcclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRyYWNrU2V0dGluZ3NQYWdlR3VpZGVUb0NQYXltZW50Q2xpY2soKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuU2Fhc1N0YXJ0LkNoYXROb3d9XHJcbiAgICAgICAgICAgIDxBcnJvdyBzdHlsZT17eyBtYXJnaW5MZWZ0OiBcIjRweFwiIH19IC8+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgeyhpc0hvdmVyZWQgfHwgaXNNb2JpbGUpICYmIChcclxuICAgICAgICA8RGVsZXRlIGNsYXNzTmFtZT17c3R5bGVzW1widG9wLWJhbm5lci1jbG9zZVwiXX0gb25DbGljaz17aGFuZGxlQ2xvc2V9IC8+XHJcbiAgICAgICl9XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcbiJdLCJuYW1lcyI6WyJzdHlsZXMiLCJJY29uQnV0dG9uIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJ1c2VOYXZpZ2F0ZSIsIlBhdGgiLCJTQUFTX0NIQVRfVVJMIiwidXNlQWNjZXNzU3RvcmUiLCJMb2NhbGUiLCJEZWxldGUiLCJBcnJvdyIsIkxvZ28iLCJ1c2VNb2JpbGVTY3JlZW4iLCJCb3RJY29uIiwiZ2V0Q2xpZW50Q29uZmlnIiwiUGFzc3dvcmRJbnB1dCIsIkxlZnRJY29uIiwic2FmZUxvY2FsU3RvcmFnZSIsInRyYWNrU2V0dGluZ3NQYWdlR3VpZGVUb0NQYXltZW50Q2xpY2siLCJ0cmFja0F1dGhvcml6YXRpb25QYWdlQnV0dG9uVG9DUGF5bWVudENsaWNrIiwiY2xzeCIsInN0b3JhZ2UiLCJBdXRoUGFnZSIsIm5hdmlnYXRlIiwiYWNjZXNzU3RvcmUiLCJnb0hvbWUiLCJIb21lIiwiZ29DaGF0IiwiQ2hhdCIsImdvU2FhcyIsIndpbmRvdyIsImxvY2F0aW9uIiwiaHJlZiIsInJlc2V0QWNjZXNzQ29kZSIsInVwZGF0ZSIsImFjY2VzcyIsIm9wZW5haUFwaUtleSIsImFjY2Vzc0NvZGUiLCJpc0FwcCIsIlNldHRpbmdzIiwiZGl2IiwiY2xhc3NOYW1lIiwiVG9wQmFubmVyIiwiaWNvbiIsInRleHQiLCJBdXRoIiwiUmV0dXJuIiwib25DbGljayIsIlRpdGxlIiwiVGlwcyIsInN0eWxlIiwibWFyZ2luVG9wIiwibWFyZ2luQm90dG9tIiwiYXJpYSIsIlNob3dQYXNzd29yZCIsImFyaWEtbGFiZWwiLCJJbnB1dCIsInZhbHVlIiwidHlwZSIsInBsYWNlaG9sZGVyIiwib25DaGFuZ2UiLCJlIiwiY3VycmVudFRhcmdldCIsImhpZGVVc2VyQXBpS2V5IiwiU3ViVGlwcyIsIkFjY2VzcyIsIk9wZW5BSSIsIkFwaUtleSIsIlBsYWNlaG9sZGVyIiwiR29vZ2xlIiwiZ29vZ2xlQXBpS2V5IiwiQ29uZmlybSIsIlNhYXNUaXBzIiwiaXNIb3ZlcmVkIiwic2V0SXNIb3ZlcmVkIiwiaXNWaXNpYmxlIiwic2V0SXNWaXNpYmxlIiwiaXNNb2JpbGUiLCJiYW5uZXJEaXNtaXNzZWQiLCJnZXRJdGVtIiwic2V0SXRlbSIsImhhbmRsZU1vdXNlRW50ZXIiLCJoYW5kbGVNb3VzZUxlYXZlIiwiaGFuZGxlQ2xvc2UiLCJvbk1vdXNlRW50ZXIiLCJvbk1vdXNlTGVhdmUiLCJzcGFuIiwiVG9wVGlwcyIsImEiLCJyZWwiLCJTYWFzU3RhcnQiLCJDaGF0Tm93IiwibWFyZ2luTGVmdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/components/auth.tsx\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/components/button.tsx":
|
|
|
/*!***********************************!*\
|
|
|
!*** ./app/components/button.tsx ***!
|
|
|
\***********************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ IconButton: () => (/* binding */ IconButton)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _button_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./button.module.scss */ \"(ssr)/./app/components/button.module.scss\");\n/* harmony import */ var _button_module_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_button_module_scss__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! clsx */ \"(ssr)/./node_modules/clsx/dist/clsx.mjs\");\n\n\n\n\nfunction IconButton(props) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\"clickable\", (_button_module_scss__WEBPACK_IMPORTED_MODULE_3___default()[\"icon-button\"]), {\n [(_button_module_scss__WEBPACK_IMPORTED_MODULE_3___default().border)]: props.bordered,\n [(_button_module_scss__WEBPACK_IMPORTED_MODULE_3___default().shadow)]: props.shadow\n }, (_button_module_scss__WEBPACK_IMPORTED_MODULE_3___default())[props.type ?? \"\"], props.className),\n onClick: props.onClick,\n title: props.title,\n disabled: props.disabled,\n role: \"button\",\n tabIndex: props.tabIndex,\n autoFocus: props.autoFocus,\n style: props.style,\n \"aria-label\": props.aria,\n children: [\n props.icon && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n \"aria-label\": props.text || props.title,\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_2__[\"default\"])((_button_module_scss__WEBPACK_IMPORTED_MODULE_3___default()[\"icon-button-icon\"]), {\n \"no-dark\": props.type === \"primary\"\n }),\n children: props.icon\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\button.tsx\",\n lineNumber: 46,\n columnNumber: 9\n }, this),\n props.text && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n \"aria-label\": props.text || props.title,\n className: (_button_module_scss__WEBPACK_IMPORTED_MODULE_3___default()[\"icon-button-text\"]),\n children: props.text\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\button.tsx\",\n lineNumber: 57,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\button.tsx\",\n lineNumber: 25,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvY29tcG9uZW50cy9idXR0b24udHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUErQjtBQUVXO0FBRWxCO0FBSWpCLFNBQVNHLFdBQVdDLEtBYzFCO0lBQ0MscUJBQ0UsOERBQUNDO1FBQ0NDLFdBQVdKLGdEQUFJQSxDQUNiLGFBQ0FELDJFQUFxQixFQUNyQjtZQUNFLENBQUNBLG1FQUFhLENBQUMsRUFBRUcsTUFBTUksUUFBUTtZQUMvQixDQUFDUCxtRUFBYSxDQUFDLEVBQUVHLE1BQU1LLE1BQU07UUFDL0IsR0FDQVIsNERBQU0sQ0FBQ0csTUFBTU0sSUFBSSxJQUFJLEdBQUcsRUFDeEJOLE1BQU1FLFNBQVM7UUFFakJLLFNBQVNQLE1BQU1PLE9BQU87UUFDdEJDLE9BQU9SLE1BQU1RLEtBQUs7UUFDbEJDLFVBQVVULE1BQU1TLFFBQVE7UUFDeEJDLE1BQUs7UUFDTEMsVUFBVVgsTUFBTVcsUUFBUTtRQUN4QkMsV0FBV1osTUFBTVksU0FBUztRQUMxQkMsT0FBT2IsTUFBTWEsS0FBSztRQUNsQkMsY0FBWWQsTUFBTWUsSUFBSTs7WUFFckJmLE1BQU1nQixJQUFJLGtCQUNULDhEQUFDQztnQkFDQ0gsY0FBWWQsTUFBTWtCLElBQUksSUFBSWxCLE1BQU1RLEtBQUs7Z0JBQ3JDTixXQUFXSixnREFBSUEsQ0FBQ0QsZ0ZBQTBCLEVBQUU7b0JBQzFDLFdBQVdHLE1BQU1NLElBQUksS0FBSztnQkFDNUI7MEJBRUNOLE1BQU1nQixJQUFJOzs7Ozs7WUFJZGhCLE1BQU1rQixJQUFJLGtCQUNULDhEQUFDRDtnQkFDQ0gsY0FBWWQsTUFBTWtCLElBQUksSUFBSWxCLE1BQU1RLEtBQUs7Z0JBQ3JDTixXQUFXTCxnRkFBMEI7MEJBRXBDRyxNQUFNa0IsSUFBSTs7Ozs7Ozs7Ozs7O0FBS3JCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvY29tcG9uZW50cy9idXR0b24udHN4P2Y2NjYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2J1dHRvbi5tb2R1bGUuc2Nzc1wiO1xyXG5pbXBvcnQgeyBDU1NQcm9wZXJ0aWVzIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbHN4IGZyb20gXCJjbHN4XCI7XHJcblxyXG5leHBvcnQgdHlwZSBCdXR0b25UeXBlID0gXCJwcmltYXJ5XCIgfCBcImRhbmdlclwiIHwgbnVsbDtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBJY29uQnV0dG9uKHByb3BzOiB7XHJcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XHJcbiAgaWNvbj86IEpTWC5FbGVtZW50O1xyXG4gIHR5cGU/OiBCdXR0b25UeXBlO1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgYm9yZGVyZWQ/OiBib29sZWFuO1xyXG4gIHNoYWRvdz86IGJvb2xlYW47XHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICB0YWJJbmRleD86IG51bWJlcjtcclxuICBhdXRvRm9jdXM/OiBib29sZWFuO1xyXG4gIHN0eWxlPzogQ1NTUHJvcGVydGllcztcclxuICBhcmlhPzogc3RyaW5nO1xyXG59KSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxidXR0b25cclxuICAgICAgY2xhc3NOYW1lPXtjbHN4KFxyXG4gICAgICAgIFwiY2xpY2thYmxlXCIsXHJcbiAgICAgICAgc3R5bGVzW1wiaWNvbi1idXR0b25cIl0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgW3N0eWxlcy5ib3JkZXJdOiBwcm9wcy5ib3JkZXJlZCxcclxuICAgICAgICAgIFtzdHlsZXMuc2hhZG93XTogcHJvcHMuc2hhZG93LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc3R5bGVzW3Byb3BzLnR5cGUgPz8gXCJcIl0sXHJcbiAgICAgICAgcHJvcHMuY2xhc3NOYW1lLFxyXG4gICAgICApfVxyXG4gICAgICBvbkNsaWNrPXtwcm9wcy5vbkNsaWNrfVxyXG4gICAgICB0aXRsZT17cHJvcHMudGl0bGV9XHJcbiAgICAgIGRpc2FibGVkPXtwcm9wcy5kaXNhYmxlZH1cclxuICAgICAgcm9sZT1cImJ1dHRvblwiXHJcbiAgICAgIHRhYkluZGV4PXtwcm9wcy50YWJJbmRleH1cclxuICAgICAgYXV0b0ZvY3VzPXtwcm9wcy5hdXRvRm9jdXN9XHJcbiAgICAgIHN0eWxlPXtwcm9wcy5zdHlsZX1cclxuICAgICAgYXJpYS1sYWJlbD17cHJvcHMuYXJpYX1cclxuICAgID5cclxuICAgICAge3Byb3BzLmljb24gJiYgKFxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e3Byb3BzLnRleHQgfHwgcHJvcHMudGl0bGV9XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2Nsc3goc3R5bGVzW1wiaWNvbi1idXR0b24taWNvblwiXSwge1xyXG4gICAgICAgICAgICBcIm5vLWRhcmtcIjogcHJvcHMudHlwZSA9PT0gXCJwcmltYXJ5XCIsXHJcbiAgICAgICAgICB9KX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7cHJvcHMuaWNvbn1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKX1cclxuXHJcbiAgICAgIHtwcm9wcy50ZXh0ICYmIChcclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtwcm9wcy50ZXh0IHx8IHByb3BzLnRpdGxlfVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJpY29uLWJ1dHRvbi10ZXh0XCJdfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtwcm9wcy50ZXh0fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApfVxyXG4gICAgPC9idXR0b24+XHJcbiAgKTtcclxufVxyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJzdHlsZXMiLCJjbHN4IiwiSWNvbkJ1dHRvbiIsInByb3BzIiwiYnV0dG9uIiwiY2xhc3NOYW1lIiwiYm9yZGVyIiwiYm9yZGVyZWQiLCJzaGFkb3ciLCJ0eXBlIiwib25DbGljayIsInRpdGxlIiwiZGlzYWJsZWQiLCJyb2xlIiwidGFiSW5kZXgiLCJhdXRvRm9jdXMiLCJzdHlsZSIsImFyaWEtbGFiZWwiLCJhcmlhIiwiaWNvbiIsImRpdiIsInRleHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/components/button.tsx\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/components/emoji.tsx":
|
|
|
/*!**********************************!*\
|
|
|
!*** ./app/components/emoji.tsx ***!
|
|
|
\**********************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Avatar: () => (/* binding */ Avatar),\n/* harmony export */ AvatarPicker: () => (/* binding */ AvatarPicker),\n/* harmony export */ EmojiAvatar: () => (/* binding */ EmojiAvatar),\n/* harmony export */ getEmojiUrl: () => (/* binding */ getEmojiUrl)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var emoji_picker_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! emoji-picker-react */ \"(ssr)/./node_modules/emoji-picker-react/dist/emoji-picker-react.esm.js\");\n/* harmony import */ var _icons_llm_icons_default_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/llm-icons/default.svg */ \"(ssr)/./app/icons/llm-icons/default.svg\");\n/* harmony import */ var _icons_llm_icons_openai_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/llm-icons/openai.svg */ \"(ssr)/./app/icons/llm-icons/openai.svg\");\n/* harmony import */ var _icons_llm_icons_gemini_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/llm-icons/gemini.svg */ \"(ssr)/./app/icons/llm-icons/gemini.svg\");\n/* harmony import */ var _icons_llm_icons_gemma_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../icons/llm-icons/gemma.svg */ \"(ssr)/./app/icons/llm-icons/gemma.svg\");\n/* harmony import */ var _icons_llm_icons_claude_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../icons/llm-icons/claude.svg */ \"(ssr)/./app/icons/llm-icons/claude.svg\");\n/* harmony import */ var _icons_llm_icons_meta_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../icons/llm-icons/meta.svg */ \"(ssr)/./app/icons/llm-icons/meta.svg\");\n/* harmony import */ var _icons_llm_icons_mistral_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../icons/llm-icons/mistral.svg */ \"(ssr)/./app/icons/llm-icons/mistral.svg\");\n/* harmony import */ var _icons_llm_icons_deepseek_svg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../icons/llm-icons/deepseek.svg */ \"(ssr)/./app/icons/llm-icons/deepseek.svg\");\n/* harmony import */ var _icons_llm_icons_moonshot_svg__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../icons/llm-icons/moonshot.svg */ \"(ssr)/./app/icons/llm-icons/moonshot.svg\");\n/* harmony import */ var _icons_llm_icons_qwen_svg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../icons/llm-icons/qwen.svg */ \"(ssr)/./app/icons/llm-icons/qwen.svg\");\n/* harmony import */ var _icons_llm_icons_wenxin_svg__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../icons/llm-icons/wenxin.svg */ \"(ssr)/./app/icons/llm-icons/wenxin.svg\");\n/* harmony import */ var _icons_llm_icons_grok_svg__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../icons/llm-icons/grok.svg */ \"(ssr)/./app/icons/llm-icons/grok.svg\");\n/* harmony import */ var _icons_llm_icons_hunyuan_svg__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../icons/llm-icons/hunyuan.svg */ \"(ssr)/./app/icons/llm-icons/hunyuan.svg\");\n/* harmony import */ var _icons_llm_icons_doubao_svg__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../icons/llm-icons/doubao.svg */ \"(ssr)/./app/icons/llm-icons/doubao.svg\");\n/* harmony import */ var _icons_llm_icons_chatglm_svg__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../icons/llm-icons/chatglm.svg */ \"(ssr)/./app/icons/llm-icons/chatglm.svg\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction getEmojiUrl(unified, style) {\n // Whoever owns this Content Delivery Network (CDN), I am using your CDN to serve emojis\n // Old CDN broken, so I had to switch to this one\n // Author: https://github.com/H0llyW00dzZ\n return `https://fastly.jsdelivr.net/npm/emoji-datasource-apple/img/${style}/64/${unified}.png`;\n}\nfunction AvatarPicker(props) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(emoji_picker_react__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n width: \"100%\",\n lazyLoadEmojis: true,\n theme: emoji_picker_react__WEBPACK_IMPORTED_MODULE_1__.Theme.AUTO,\n getEmojiUrl: getEmojiUrl,\n onEmojiClick: (e)=>{\n props.onEmojiClick(e.unified);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\emoji.tsx\",\n lineNumber: 36,\n columnNumber: 5\n }, this);\n}\nfunction Avatar(props) {\n let LlmIcon = _icons_llm_icons_default_svg__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n if (props.model) {\n const modelName = props.model.toLowerCase();\n if (modelName.startsWith(\"gpt\") || modelName.startsWith(\"chatgpt\") || modelName.startsWith(\"dall-e\") || modelName.startsWith(\"dalle\") || modelName.startsWith(\"o1\") || modelName.startsWith(\"o3\")) {\n LlmIcon = _icons_llm_icons_openai_svg__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n } else if (modelName.startsWith(\"gemini\")) {\n LlmIcon = _icons_llm_icons_gemini_svg__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n } else if (modelName.startsWith(\"gemma\")) {\n LlmIcon = _icons_llm_icons_gemma_svg__WEBPACK_IMPORTED_MODULE_5__[\"default\"];\n } else if (modelName.startsWith(\"claude\")) {\n LlmIcon = _icons_llm_icons_claude_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"];\n } else if (modelName.startsWith(\"llama\")) {\n LlmIcon = _icons_llm_icons_meta_svg__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\n } else if (modelName.startsWith(\"mixtral\")) {\n LlmIcon = _icons_llm_icons_mistral_svg__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\n } else if (modelName.startsWith(\"deepseek\")) {\n LlmIcon = _icons_llm_icons_deepseek_svg__WEBPACK_IMPORTED_MODULE_9__[\"default\"];\n } else if (modelName.startsWith(\"moonshot\")) {\n LlmIcon = _icons_llm_icons_moonshot_svg__WEBPACK_IMPORTED_MODULE_10__[\"default\"];\n } else if (modelName.startsWith(\"qwen\")) {\n LlmIcon = _icons_llm_icons_qwen_svg__WEBPACK_IMPORTED_MODULE_11__[\"default\"];\n } else if (modelName.startsWith(\"ernie\")) {\n LlmIcon = _icons_llm_icons_wenxin_svg__WEBPACK_IMPORTED_MODULE_12__[\"default\"];\n } else if (modelName.startsWith(\"grok\")) {\n LlmIcon = _icons_llm_icons_grok_svg__WEBPACK_IMPORTED_MODULE_13__[\"default\"];\n } else if (modelName.startsWith(\"hunyuan\")) {\n LlmIcon = _icons_llm_icons_hunyuan_svg__WEBPACK_IMPORTED_MODULE_14__[\"default\"];\n } else if (modelName.startsWith(\"doubao\") || modelName.startsWith(\"ep-\")) {\n LlmIcon = _icons_llm_icons_doubao_svg__WEBPACK_IMPORTED_MODULE_15__[\"default\"];\n } else if (modelName.startsWith(\"glm\") || modelName.startsWith(\"cogview-\") || modelName.startsWith(\"cogvideox-\")) {\n LlmIcon = _icons_llm_icons_chatglm_svg__WEBPACK_IMPORTED_MODULE_16__[\"default\"];\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"no-dark\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(LlmIcon, {\n className: \"user-avatar\",\n width: 30,\n height: 30\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\emoji.tsx\",\n lineNumber: 97,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\emoji.tsx\",\n lineNumber: 96,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"user-avatar\",\n children: props.avatar && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(EmojiAvatar, {\n avatar: props.avatar\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\emoji.tsx\",\n lineNumber: 104,\n columnNumber: 24\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\emoji.tsx\",\n lineNumber: 103,\n columnNumber: 5\n }, this);\n}\nfunction EmojiAvatar(props) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(emoji_picker_react__WEBPACK_IMPORTED_MODULE_1__.Emoji, {\n unified: props.avatar,\n size: props.size ?? 18,\n getEmojiUrl: getEmojiUrl\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\emoji.tsx\",\n lineNumber: 111,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFRaEIsTUFBTWdCLE1BQU07Ozs7Ozs7Ozs7O0FBR3hEO0FBRU8sU0FBU0MsWUFBWWpCLEtBQXdDO0lBQ2xFLHFCQUNFLDhEQUFDdEIscURBQUtBO1FBQ0ptQixTQUFTRyxNQUFNZ0IsTUFBTTtRQUNyQkUsTUFBTWxCLE1BQU1rQixJQUFJLElBQUk7UUFDcEJ0QixhQUFhQTs7Ozs7O0FBR25CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvY29tcG9uZW50cy9lbW9qaS50c3g/MDBiMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRW1vamlQaWNrZXIsIHtcclxuICBFbW9qaSxcclxuICBFbW9qaVN0eWxlLFxyXG4gIFRoZW1lIGFzIEVtb2ppVGhlbWUsXHJcbn0gZnJvbSBcImVtb2ppLXBpY2tlci1yZWFjdFwiO1xyXG5cclxuaW1wb3J0IHsgTW9kZWxUeXBlIH0gZnJvbSBcIi4uL3N0b3JlXCI7XHJcblxyXG5pbXBvcnQgQm90SWNvbkRlZmF1bHQgZnJvbSBcIi4uL2ljb25zL2xsbS1pY29ucy9kZWZhdWx0LnN2Z1wiO1xyXG5pbXBvcnQgQm90SWNvbk9wZW5BSSBmcm9tIFwiLi4vaWNvbnMvbGxtLWljb25zL29wZW5haS5zdmdcIjtcclxuaW1wb3J0IEJvdEljb25HZW1pbmkgZnJvbSBcIi4uL2ljb25zL2xsbS1pY29ucy9nZW1pbmkuc3ZnXCI7XHJcbmltcG9ydCBCb3RJY29uR2VtbWEgZnJvbSBcIi4uL2ljb25zL2xsbS1pY29ucy9nZW1tYS5zdmdcIjtcclxuaW1wb3J0IEJvdEljb25DbGF1ZGUgZnJvbSBcIi4uL2ljb25zL2xsbS1pY29ucy9jbGF1ZGUuc3ZnXCI7XHJcbmltcG9ydCBCb3RJY29uTWV0YSBmcm9tIFwiLi4vaWNvbnMvbGxtLWljb25zL21ldGEuc3ZnXCI7XHJcbmltcG9ydCBCb3RJY29uTWlzdHJhbCBmcm9tIFwiLi4vaWNvbnMvbGxtLWljb25zL21pc3RyYWwuc3ZnXCI7XHJcbmltcG9ydCBCb3RJY29uRGVlcHNlZWsgZnJvbSBcIi4uL2ljb25zL2xsbS1pY29ucy9kZWVwc2Vlay5zdmdcIjtcclxuaW1wb3J0IEJvdEljb25Nb29uc2hvdCBmcm9tIFwiLi4vaWNvbnMvbGxtLWljb25zL21vb25zaG90LnN2Z1wiO1xyXG5pbXBvcnQgQm90SWNvblF3ZW4gZnJvbSBcIi4uL2ljb25zL2xsbS1pY29ucy9xd2VuLnN2Z1wiO1xyXG5pbXBvcnQgQm90SWNvbldlbnhpbiBmcm9tIFwiLi4vaWNvbnMvbGxtLWljb25zL3dlbnhpbi5zdmdcIjtcclxuaW1wb3J0IEJvdEljb25Hcm9rIGZyb20gXCIuLi9pY29ucy9sbG0taWNvbnMvZ3Jvay5zdmdcIjtcclxuaW1wb3J0IEJvdEljb25IdW55dWFuIGZyb20gXCIuLi9pY29ucy9sbG0taWNvbnMvaHVueXVhbi5zdmdcIjtcclxuaW1wb3J0IEJvdEljb25Eb3ViYW8gZnJvbSBcIi4uL2ljb25zL2xsbS1pY29ucy9kb3ViYW8uc3ZnXCI7XHJcbmltcG9ydCBCb3RJY29uQ2hhdGdsbSBmcm9tIFwiLi4vaWNvbnMvbGxtLWljb25zL2NoYXRnbG0uc3ZnXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW1vamlVcmwodW5pZmllZDogc3RyaW5nLCBzdHlsZTogRW1vamlTdHlsZSkge1xyXG4gIC8vIFdob2V2ZXIgb3ducyB0aGlzIENvbnRlbnQgRGVsaXZlcnkgTmV0d29yayAoQ0ROKSwgSSBhbSB1c2luZyB5b3VyIENETiB0byBzZXJ2ZSBlbW9qaXNcclxuICAvLyBPbGQgQ0ROIGJyb2tlbiwgc28gSSBoYWQgdG8gc3dpdGNoIHRvIHRoaXMgb25lXHJcbiAgLy8gQXV0aG9yOiBodHRwczovL2dpdGh1Yi5jb20vSDBsbHlXMDBkelpcclxuICByZXR1cm4gYGh0dHBzOi8vZmFzdGx5LmpzZGVsaXZyLm5ldC9ucG0vZW1vamktZGF0YXNvdXJjZS1hcHBsZS9pbWcvJHtzdHlsZX0vNjQvJHt1bmlmaWVkfS5wbmdgO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gQXZhdGFyUGlja2VyKHByb3BzOiB7XHJcbiAgb25FbW9qaUNsaWNrOiAoZW1vamlJZDogc3RyaW5nKSA9PiB2b2lkO1xyXG59KSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxFbW9qaVBpY2tlclxyXG4gICAgICB3aWR0aD17XCIxMDAlXCJ9XHJcbiAgICAgIGxhenlMb2FkRW1vamlzXHJcbiAgICAgIHRoZW1lPXtFbW9qaVRoZW1lLkFVVE99XHJcbiAgICAgIGdldEVtb2ppVXJsPXtnZXRFbW9qaVVybH1cclxuICAgICAgb25FbW9qaUNsaWNrPXsoZSkgPT4ge1xyXG4gICAgICAgIHByb3BzLm9uRW1vamlDbGljayhlLnVuaWZpZWQpO1xyXG4gICAgICB9fVxyXG4gICAgLz5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gQXZhdGFyKHByb3BzOiB7IG1vZGVsPzogTW9kZWxUeXBlOyBhdmF0YXI/OiBzdHJpbmcgfSkge1xyXG4gIGxldCBMbG1JY29uID0gQm90SWNvbkRlZmF1bHQ7XHJcblxyXG4gIGlmIChwcm9wcy5tb2RlbCkge1xyXG4gICAgY29uc3QgbW9kZWxOYW1lID0gcHJvcHMubW9kZWwudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIG1vZGVsTmFtZS5zdGFydHNXaXRoKFwiZ3B0XCIpIHx8XHJcbiAgICAgIG1vZGVsTmFtZS5zdGFydHNXaXRoKFwiY2hhdGdwdFwiKSB8fFxyXG4gICAgICBtb2RlbE5hbWUuc3RhcnRzV2l0aChcImRhbGwtZVwiKSB8fFxyXG4gICAgICBtb2RlbE5hbWUuc3RhcnRzV2l0aChcImRhbGxlXCIpIHx8XHJcbiAgICAgIG1vZGVsTmFtZS5zdGFydHNXaXRoKFwibzFcIikgfHxcclxuICAgICAgbW9kZWxOYW1lLnN0YXJ0c1dpdGgoXCJvM1wiKVxyXG4gICAgKSB7XHJcbiAgICAgIExsbUljb24gPSBCb3RJY29uT3BlbkFJO1xyXG4gICAgfSBlbHNlIGlmIChtb2RlbE5hbWUuc3RhcnRzV2l0aChcImdlbWluaVwiKSkge1xyXG4gICAgICBMbG1JY29uID0gQm90SWNvbkdlbWluaTtcclxuICAgIH0gZWxzZSBpZiAobW9kZWxOYW1lLnN0YXJ0c1dpdGgoXCJnZW1tYVwiKSkge1xyXG4gICAgICBMbG1JY29uID0gQm90SWNvbkdlbW1hO1xyXG4gICAgfSBlbHNlIGlmIChtb2RlbE5hbWUuc3RhcnRzV2l0aChcImNsYXVkZVwiKSkge1xyXG4gICAgICBMbG1JY29uID0gQm90SWNvbkNsYXVkZTtcclxuICAgIH0gZWxzZSBpZiAobW9kZWxOYW1lLnN0YXJ0c1dpdGgoXCJsbGFtYVwiKSkge1xyXG4gICAgICBMbG1JY29uID0gQm90SWNvbk1ldGE7XHJcbiAgICB9IGVsc2UgaWYgKG1vZGVsTmFtZS5zdGFydHNXaXRoKFwibWl4dHJhbFwiKSkge1xyXG4gICAgICBMbG1JY29uID0gQm90SWNvbk1pc3RyYWw7XHJcbiAgICB9IGVsc2UgaWYgKG1vZGVsTmFtZS5zdGFydHNXaXRoKFwiZGVlcHNlZWtcIikpIHtcclxuICAgICAgTGxtSWNvbiA9IEJvdEljb25EZWVwc2VlaztcclxuICAgIH0gZWxzZSBpZiAobW9kZWxOYW1lLnN0YXJ0c1dpdGgoXCJtb29uc2hvdFwiKSkge1xyXG4gICAgICBMbG1JY29uID0gQm90SWNvbk1vb25zaG90O1xyXG4gICAgfSBlbHNlIGlmIChtb2RlbE5hbWUuc3RhcnRzV2l0aChcInF3ZW5cIikpIHtcclxuICAgICAgTGxtSWNvbiA9IEJvdEljb25Rd2VuO1xyXG4gICAgfSBlbHNlIGlmIChtb2RlbE5hbWUuc3RhcnRzV2l0aChcImVybmllXCIpKSB7XHJcbiAgICAgIExsbUljb24gPSBCb3RJY29uV2VueGluO1xyXG4gICAgfSBlbHNlIGlmIChtb2RlbE5hbWUuc3RhcnRzV2l0aChcImdyb2tcIikpIHtcclxuICAgICAgTGxtSWNvbiA9IEJvdEljb25Hcm9rO1xyXG4gICAgfSBlbHNlIGlmIChtb2RlbE5hbWUuc3RhcnRzV2l0aChcImh1bnl1YW5cIikpIHtcclxuICAgICAgTGxtSWNvbiA9IEJvdEljb25IdW55dWFuO1xyXG4gICAgfSBlbHNlIGlmIChtb2RlbE5hbWUuc3RhcnRzV2l0aChcImRvdWJhb1wiKSB8fCBtb2RlbE5hbWUuc3RhcnRzV2l0aChcImVwLVwiKSkge1xyXG4gICAgICBMbG1JY29uID0gQm90SWNvbkRvdWJhbztcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIG1vZGVsTmFtZS5zdGFydHNXaXRoKFwiZ2xtXCIpIHx8XHJcbiAgICAgIG1vZGVsTmFtZS5zdGFydHNXaXRoKFwiY29ndmlldy1cIikgfHxcclxuICAgICAgbW9kZWxOYW1lLnN0YXJ0c1dpdGgoXCJjb2d2aWRlb3gtXCIpXHJcbiAgICApIHtcclxuICAgICAgTGxtSWNvbiA9IEJvdEljb25DaGF0Z2xtO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibm8tZGFya1wiPlxyXG4gICAgICAgIDxMbG1JY29uIGNsYXNzTmFtZT1cInVzZXItYXZhdGFyXCIgd2lkdGg9ezMwfSBoZWlnaHQ9ezMwfSAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJ1c2VyLWF2YXRhclwiPlxyXG4gICAgICB7cHJvcHMuYXZhdGFyICYmIDxFbW9qaUF2YXRhciBhdmF0YXI9e3Byb3BzLmF2YXRhcn0gLz59XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gRW1vamlBdmF0YXIocHJvcHM6IHsgYXZhdGFyOiBzdHJpbmc7IHNpemU/OiBudW1iZXIgfSkge1xyXG4gIHJldHVybiAoXHJcbiAgICA8RW1vamlcclxuICAgICAgdW5pZmllZD17cHJvcHMuYXZhdGFyfVxyXG4gICAgICBzaXplPXtwcm9wcy5zaXplID8/IDE4fVxyXG4gICAgICBnZXRFbW9qaVVybD17Z2V0RW1vamlVcmx9XHJcbiAgICAvPlxyXG4gICk7XHJcbn1cclxuIl0sIm5hbWVzIjpbIkVtb2ppUGlja2VyIiwiRW1vamkiLCJUaGVtZSIsIkVtb2ppVGhlbWUiLCJCb3RJY29uRGVmYXVsdCIsIkJvdEljb25PcGVuQUkiLCJCb3RJY29uR2VtaW5pIiwiQm90SWNvbkdlbW1hIiwiQm90SWNvbkNsYXVkZSIsIkJvdEljb25NZXRhIiwiQm90SWNvbk1pc3RyYWwiLCJCb3RJY29uRGVlcHNlZWsiLCJCb3RJY29uTW9vbnNob3QiLCJCb3RJY29uUXdlbiIsIkJvdEljb25XZW54aW4iLCJCb3RJY29uR3JvayIsIkJvdEljb25IdW55dWFuIiwiQm90SWNvbkRvdWJhbyIsIkJvdEljb25DaGF0Z2xtIiwiZ2V0RW1vamlVcmwiLCJ1bmlmaWVkIiwic3R5bGUiLCJBdmF0YXJQaWNrZXIiLCJwcm9wcyIsIndpZHRoIiwibGF6eUxvYWRFbW9qaXMiLCJ0aGVtZSIsIkFVVE8iLCJvbkVtb2ppQ2xpY2siLCJlIiwiQXZhdGFyIiwiTGxtSWNvbiIsIm1vZGVsIiwibW9kZWxOYW1lIiwidG9Mb3dlckNhc2UiLCJzdGFydHNXaXRoIiwiZGl2IiwiY2xhc3NOYW1lIiwiaGVpZ2h0IiwiYXZhdGFyIiwiRW1vamlBdmF0YXIiLCJzaXplIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/components/emoji.tsx\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/components/error.tsx":
|
|
|
/*!**********************************!*\
|
|
|
!*** ./app/components/error.tsx ***!
|
|
|
\**********************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ErrorBoundary: () => (/* binding */ ErrorBoundary)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./button */ \"(ssr)/./app/components/button.tsx\");\n/* harmony import */ var _icons_github_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/github.svg */ \"(ssr)/./app/icons/github.svg\");\n/* harmony import */ var _icons_reload_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/reload.svg */ \"(ssr)/./app/icons/reload.svg\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../locales */ \"(ssr)/./app/locales/index.ts\");\n/* harmony import */ var _ui_lib__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ui-lib */ \"(ssr)/./app/components/ui-lib.tsx\");\n/* harmony import */ var _store_sync__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../store/sync */ \"(ssr)/./app/store/sync.ts\");\n/* harmony import */ var _store_chat__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../store/chat */ \"(ssr)/./app/store/chat.ts\");\n/* __next_internal_client_entry_do_not_use__ ErrorBoundary auto */ \n\n\n\n\n\n\n\n\n\nclass ErrorBoundary extends (react__WEBPACK_IMPORTED_MODULE_1___default().Component) {\n constructor(props){\n super(props);\n this.state = {\n hasError: false,\n error: null,\n info: null\n };\n }\n componentDidCatch(error, info) {\n // Update state with error details\n this.setState({\n hasError: true,\n error,\n info\n });\n }\n clearAndSaveData() {\n try {\n _store_sync__WEBPACK_IMPORTED_MODULE_8__.useSyncStore.getState().export();\n } finally{\n _store_chat__WEBPACK_IMPORTED_MODULE_9__.useChatStore.getState().clearAllData();\n }\n }\n render() {\n if (this.state.hasError) {\n // Render error message\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"error\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n children: \"Oops, something went wrong!\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\error.tsx\",\n lineNumber: 43,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"pre\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"code\", {\n children: this.state.error?.toString()\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\error.tsx\",\n lineNumber: 45,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"code\", {\n children: this.state.info?.componentStack\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\error.tsx\",\n lineNumber: 46,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\error.tsx\",\n lineNumber: 44,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\",\n justifyContent: \"space-between\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: _constant__WEBPACK_IMPORTED_MODULE_5__.ISSUE_URL,\n className: \"report\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_2__.IconButton, {\n text: \"Report This Error\",\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_github_svg__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\error.tsx\",\n lineNumber: 53,\n columnNumber: 23\n }, void 0),\n bordered: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\error.tsx\",\n lineNumber: 51,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\error.tsx\",\n lineNumber: 50,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_2__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_reload_svg__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\error.tsx\",\n lineNumber: 58,\n columnNumber: 21\n }, void 0),\n text: \"Clear All Data\",\n onClick: async ()=>{\n if (await (0,_ui_lib__WEBPACK_IMPORTED_MODULE_7__.showConfirm)(_locales__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Settings.Danger.Reset.Confirm)) {\n this.clearAndSaveData();\n }\n },\n bordered: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\error.tsx\",\n lineNumber: 57,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\error.tsx\",\n lineNumber: 49,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\error.tsx\",\n lineNumber: 42,\n columnNumber: 9\n }, this);\n }\n // if no error occurred, render children\n return this.props.children;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvY29tcG9uZW50cy9lcnJvci50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMEI7QUFDWTtBQUNPO0FBQ0Q7QUFDSjtBQUNSO0FBQ087QUFDTTtBQUNBO0FBUXRDLE1BQU1TLHNCQUFzQlQsd0RBQWU7SUFDaERXLFlBQVlDLEtBQVUsQ0FBRTtRQUN0QixLQUFLLENBQUNBO1FBQ04sSUFBSSxDQUFDQyxLQUFLLEdBQUc7WUFBRUMsVUFBVTtZQUFPQyxPQUFPO1lBQU1DLE1BQU07UUFBSztJQUMxRDtJQUVBQyxrQkFBa0JGLEtBQVksRUFBRUMsSUFBcUIsRUFBRTtRQUNyRCxrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDRSxRQUFRLENBQUM7WUFBRUosVUFBVTtZQUFNQztZQUFPQztRQUFLO0lBQzlDO0lBRUFHLG1CQUFtQjtRQUNqQixJQUFJO1lBQ0ZaLHFEQUFZQSxDQUFDYSxRQUFRLEdBQUdDLE1BQU07UUFDaEMsU0FBVTtZQUNSYixxREFBWUEsQ0FBQ1ksUUFBUSxHQUFHRSxZQUFZO1FBQ3RDO0lBQ0Y7SUFFQUMsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDVixLQUFLLENBQUNDLFFBQVEsRUFBRTtZQUN2Qix1QkFBdUI7WUFDdkIscUJBQ0UsOERBQUNVO2dCQUFJQyxXQUFVOztrQ0FDYiw4REFBQ0M7a0NBQUc7Ozs7OztrQ0FDSiw4REFBQ0M7OzBDQUNDLDhEQUFDQzswQ0FBTSxJQUFJLENBQUNmLEtBQUssQ0FBQ0UsS0FBSyxFQUFFYzs7Ozs7OzBDQUN6Qiw4REFBQ0Q7MENBQU0sSUFBSSxDQUFDZixLQUFLLENBQUNHLElBQUksRUFBRWM7Ozs7Ozs7Ozs7OztrQ0FHMUIsOERBQUNOO3dCQUFJTyxPQUFPOzRCQUFFQyxTQUFTOzRCQUFRQyxnQkFBZ0I7d0JBQWdCOzswQ0FDN0QsOERBQUNDO2dDQUFFQyxNQUFNL0IsZ0RBQVNBO2dDQUFFcUIsV0FBVTswQ0FDNUIsNEVBQUN4QiwrQ0FBVUE7b0NBQ1RtQyxNQUFLO29DQUNMQyxvQkFBTSw4REFBQ25DLHlEQUFVQTs7Ozs7b0NBQ2pCb0MsUUFBUTs7Ozs7Ozs7Ozs7MENBR1osOERBQUNyQywrQ0FBVUE7Z0NBQ1RvQyxvQkFBTSw4REFBQ2xDLHlEQUFTQTs7Ozs7Z0NBQ2hCaUMsTUFBSztnQ0FDTEcsU0FBUztvQ0FDUCxJQUFJLE1BQU1qQyxvREFBV0EsQ0FBQ0QsZ0RBQU1BLENBQUNtQyxRQUFRLENBQUNDLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDQyxPQUFPLEdBQUc7d0NBQzNELElBQUksQ0FBQ3hCLGdCQUFnQjtvQ0FDdkI7Z0NBQ0Y7Z0NBQ0FtQixRQUFROzs7Ozs7Ozs7Ozs7Ozs7Ozs7UUFLbEI7UUFDQSx3Q0FBd0M7UUFDeEMsT0FBTyxJQUFJLENBQUMxQixLQUFLLENBQUNnQyxRQUFRO0lBQzVCO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9jb21wb25lbnRzL2Vycm9yLnRzeD81MTk1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSBcIi4vYnV0dG9uXCI7XHJcbmltcG9ydCBHaXRodWJJY29uIGZyb20gXCIuLi9pY29ucy9naXRodWIuc3ZnXCI7XHJcbmltcG9ydCBSZXNldEljb24gZnJvbSBcIi4uL2ljb25zL3JlbG9hZC5zdmdcIjtcclxuaW1wb3J0IHsgSVNTVUVfVVJMIH0gZnJvbSBcIi4uL2NvbnN0YW50XCI7XHJcbmltcG9ydCBMb2NhbGUgZnJvbSBcIi4uL2xvY2FsZXNcIjtcclxuaW1wb3J0IHsgc2hvd0NvbmZpcm0gfSBmcm9tIFwiLi91aS1saWJcIjtcclxuaW1wb3J0IHsgdXNlU3luY1N0b3JlIH0gZnJvbSBcIi4uL3N0b3JlL3N5bmNcIjtcclxuaW1wb3J0IHsgdXNlQ2hhdFN0b3JlIH0gZnJvbSBcIi4uL3N0b3JlL2NoYXRcIjtcclxuXHJcbmludGVyZmFjZSBJRXJyb3JCb3VuZGFyeVN0YXRlIHtcclxuICBoYXNFcnJvcjogYm9vbGVhbjtcclxuICBlcnJvcjogRXJyb3IgfCBudWxsO1xyXG4gIGluZm86IFJlYWN0LkVycm9ySW5mbyB8IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFcnJvckJvdW5kYXJ5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PGFueSwgSUVycm9yQm91bmRhcnlTdGF0ZT4ge1xyXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBhbnkpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIHRoaXMuc3RhdGUgPSB7IGhhc0Vycm9yOiBmYWxzZSwgZXJyb3I6IG51bGwsIGluZm86IG51bGwgfTtcclxuICB9XHJcblxyXG4gIGNvbXBvbmVudERpZENhdGNoKGVycm9yOiBFcnJvciwgaW5mbzogUmVhY3QuRXJyb3JJbmZvKSB7XHJcbiAgICAvLyBVcGRhdGUgc3RhdGUgd2l0aCBlcnJvciBkZXRhaWxzXHJcbiAgICB0aGlzLnNldFN0YXRlKHsgaGFzRXJyb3I6IHRydWUsIGVycm9yLCBpbmZvIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJBbmRTYXZlRGF0YSgpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHVzZVN5bmNTdG9yZS5nZXRTdGF0ZSgpLmV4cG9ydCgpO1xyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgdXNlQ2hhdFN0b3JlLmdldFN0YXRlKCkuY2xlYXJBbGxEYXRhKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBpZiAodGhpcy5zdGF0ZS5oYXNFcnJvcikge1xyXG4gICAgICAvLyBSZW5kZXIgZXJyb3IgbWVzc2FnZVxyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXJyb3JcIj5cclxuICAgICAgICAgIDxoMj5Pb3BzLCBzb21ldGhpbmcgd2VudCB3cm9uZyE8L2gyPlxyXG4gICAgICAgICAgPHByZT5cclxuICAgICAgICAgICAgPGNvZGU+e3RoaXMuc3RhdGUuZXJyb3I/LnRvU3RyaW5nKCl9PC9jb2RlPlxyXG4gICAgICAgICAgICA8Y29kZT57dGhpcy5zdGF0ZS5pbmZvPy5jb21wb25lbnRTdGFja308L2NvZGU+XHJcbiAgICAgICAgICA8L3ByZT5cclxuXHJcbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6IFwiZmxleFwiLCBqdXN0aWZ5Q29udGVudDogXCJzcGFjZS1iZXR3ZWVuXCIgfX0+XHJcbiAgICAgICAgICAgIDxhIGhyZWY9e0lTU1VFX1VSTH0gY2xhc3NOYW1lPVwicmVwb3J0XCI+XHJcbiAgICAgICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgICAgIHRleHQ9XCJSZXBvcnQgVGhpcyBFcnJvclwiXHJcbiAgICAgICAgICAgICAgICBpY29uPXs8R2l0aHViSWNvbiAvPn1cclxuICAgICAgICAgICAgICAgIGJvcmRlcmVkXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8SWNvbkJ1dHRvblxyXG4gICAgICAgICAgICAgIGljb249ezxSZXNldEljb24gLz59XHJcbiAgICAgICAgICAgICAgdGV4dD1cIkNsZWFyIEFsbCBEYXRhXCJcclxuICAgICAgICAgICAgICBvbkNsaWNrPXthc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgc2hvd0NvbmZpcm0oTG9jYWxlLlNldHRpbmdzLkRhbmdlci5SZXNldC5Db25maXJtKSkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyQW5kU2F2ZURhdGEoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIGJvcmRlcmVkXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIC8vIGlmIG5vIGVycm9yIG9jY3VycmVkLCByZW5kZXIgY2hpbGRyZW5cclxuICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuO1xyXG4gIH1cclxufVxyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJJY29uQnV0dG9uIiwiR2l0aHViSWNvbiIsIlJlc2V0SWNvbiIsIklTU1VFX1VSTCIsIkxvY2FsZSIsInNob3dDb25maXJtIiwidXNlU3luY1N0b3JlIiwidXNlQ2hhdFN0b3JlIiwiRXJyb3JCb3VuZGFyeSIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzdGF0ZSIsImhhc0Vycm9yIiwiZXJyb3IiLCJpbmZvIiwiY29tcG9uZW50RGlkQ2F0Y2giLCJzZXRTdGF0ZSIsImNsZWFyQW5kU2F2ZURhdGEiLCJnZXRTdGF0ZSIsImV4cG9ydCIsImNsZWFyQWxsRGF0YSIsInJlbmRlciIsImRpdiIsImNsYXNzTmFtZSIsImgyIiwicHJlIiwiY29kZSIsInRvU3RyaW5nIiwiY29tcG9uZW50U3RhY2siLCJzdHlsZSIsImRpc3BsYXkiLCJqdXN0aWZ5Q29udGVudCIsImEiLCJocmVmIiwidGV4dCIsImljb24iLCJib3JkZXJlZCIsIm9uQ2xpY2siLCJTZXR0aW5ncyIsIkRhbmdlciIsIlJlc2V0IiwiQ29uZmlybSIsImNoaWxkcmVuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/components/error.tsx\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/components/home.tsx":
|
|
|
/*!*********************************!*\
|
|
|
!*** ./app/components/home.tsx ***!
|
|
|
\*********************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Home: () => (/* binding */ Home),\n/* harmony export */ Loading: () => (/* binding */ Loading),\n/* harmony export */ WindowContent: () => (/* binding */ WindowContent),\n/* harmony export */ useLoadData: () => (/* binding */ useLoadData),\n/* harmony export */ useSwitchTheme: () => (/* binding */ useSwitchTheme)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _home_module_scss__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./home.module.scss */ \"(ssr)/./app/components/home.module.scss\");\n/* harmony import */ var _home_module_scss__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_home_module_scss__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var _icons_bot_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/bot.svg */ \"(ssr)/./app/icons/bot.svg\");\n/* harmony import */ var _icons_three_dots_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/three-dots.svg */ \"(ssr)/./app/icons/three-dots.svg\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ \"(ssr)/./app/utils.ts\");\n/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! next/dynamic */ \"(ssr)/./node_modules/next/dist/api/app-dynamic.js\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./error */ \"(ssr)/./app/components/error.tsx\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../locales */ \"(ssr)/./app/locales/index.ts\");\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! react-router-dom */ \"(ssr)/./node_modules/react-router/dist/index.js\");\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! react-router-dom */ \"(ssr)/./node_modules/react-router-dom/dist/index.js\");\n/* harmony import */ var _sidebar__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./sidebar */ \"(ssr)/./app/components/sidebar.tsx\");\n/* harmony import */ var _store_config__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../store/config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _auth__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./auth */ \"(ssr)/./app/components/auth.tsx\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _client_api__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../client/api */ \"(ssr)/./app/client/api.ts\");\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../store */ \"(ssr)/./app/store/index.ts\");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! clsx */ \"(ssr)/./node_modules/clsx/dist/clsx.mjs\");\n/* harmony import */ var _mcp_actions__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../mcp/actions */ \"(ssr)/./app/mcp/actions.ts\");\n/* __next_internal_client_entry_do_not_use__ Loading,useSwitchTheme,WindowContent,useLoadData,Home auto */ \n__webpack_require__(/*! ../polyfill */ \"(ssr)/./app/polyfill.ts\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction Loading(props) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_15__[\"default\"])(\"no-dark\", (_home_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"loading-content\"])),\n children: [\n !props.noLogo && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_bot_svg__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 37,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_three_dots_svg__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 38,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 36,\n columnNumber: 5\n }, this);\n}\nconst Artifacts = (0,next_dynamic__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(async ()=>(await __webpack_require__.e(/*! import() */ \"_ssr_app_components_artifacts_tsx\").then(__webpack_require__.bind(__webpack_require__, /*! ./artifacts */ \"(ssr)/./app/components/artifacts.tsx\"))).Artifacts, {\n loadableGenerated: {\n modules: [\n \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx -> \" + \"./artifacts\"\n ]\n },\n loading: ()=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Loading, {\n noLogo: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 44,\n columnNumber: 18\n }, undefined)\n});\nconst Settings = (0,next_dynamic__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(async ()=>(await Promise.all(/*! import() */[__webpack_require__.e(\"vendor-chunks/lodash-es\"), __webpack_require__.e(\"vendor-chunks/next\"), __webpack_require__.e(\"_ssr_app_components_settings_tsx\")]).then(__webpack_require__.bind(__webpack_require__, /*! ./settings */ \"(ssr)/./app/components/settings.tsx\"))).Settings, {\n loadableGenerated: {\n modules: [\n \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx -> \" + \"./settings\"\n ]\n },\n loading: ()=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Loading, {\n noLogo: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 48,\n columnNumber: 18\n }, undefined)\n});\nconst Chat = (0,next_dynamic__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(async ()=>(await Promise.all(/*! import() */[__webpack_require__.e(\"vendor-chunks/lodash-es\"), __webpack_require__.e(\"vendor-chunks/next\"), __webpack_require__.e(\"vendor-chunks/@hello-pangea\"), __webpack_require__.e(\"vendor-chunks/react-redux\"), __webpack_require__.e(\"vendor-chunks/redux\"), __webpack_require__.e(\"vendor-chunks/hoist-non-react-statics\"), __webpack_require__.e(\"vendor-chunks/react-is\"), __webpack_require__.e(\"vendor-chunks/css-box-model\"), __webpack_require__.e(\"vendor-chunks/@babel\"), __webpack_require__.e(\"vendor-chunks/memoize-one\"), __webpack_require__.e(\"vendor-chunks/use-memo-one\"), __webpack_require__.e(\"vendor-chunks/raf-schd\"), __webpack_require__.e(\"vendor-chunks/tiny-invariant\"), __webpack_require__.e(\"vendor-chunks/use-debounce\"), __webpack_require__.e(\"vendor-chunks/lodash\"), __webpack_require__.e(\"vendor-chunks/rt-client\"), __webpack_require__.e(\"vendor-chunks/marked\"), __webpack_require__.e(\"vendor-chunks/html-to-image\"), __webpack_require__.e(\"vendor-chunks/markdown-to-txt\"), __webpack_require__.e(\"_ssr_app_components_chat_tsx\")]).then(__webpack_require__.bind(__webpack_require__, /*! ./chat */ \"(ssr)/./app/components/chat.tsx\"))).Chat, {\n loadableGenerated: {\n modules: [\n \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx -> \" + \"./chat\"\n ]\n },\n loading: ()=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Loading, {\n noLogo: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 52,\n columnNumber: 18\n }, undefined)\n});\nconst NewChat = (0,next_dynamic__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(async ()=>(await Promise.all(/*! import() */[__webpack_require__.e(\"vendor-chunks/lodash-es\"), __webpack_require__.e(\"vendor-chunks/@hello-pangea\"), __webpack_require__.e(\"vendor-chunks/react-redux\"), __webpack_require__.e(\"vendor-chunks/redux\"), __webpack_require__.e(\"vendor-chunks/hoist-non-react-statics\"), __webpack_require__.e(\"vendor-chunks/react-is\"), __webpack_require__.e(\"vendor-chunks/css-box-model\"), __webpack_require__.e(\"vendor-chunks/@babel\"), __webpack_require__.e(\"vendor-chunks/memoize-one\"), __webpack_require__.e(\"vendor-chunks/use-memo-one\"), __webpack_require__.e(\"vendor-chunks/raf-schd\"), __webpack_require__.e(\"vendor-chunks/tiny-invariant\"), __webpack_require__.e(\"_ssr_app_components_new-chat_tsx\")]).then(__webpack_require__.bind(__webpack_require__, /*! ./new-chat */ \"(ssr)/./app/components/new-chat.tsx\"))).NewChat, {\n loadableGenerated: {\n modules: [\n \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx -> \" + \"./new-chat\"\n ]\n },\n loading: ()=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Loading, {\n noLogo: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 56,\n columnNumber: 18\n }, undefined)\n});\nconst MaskPage = (0,next_dynamic__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(async ()=>(await Promise.all(/*! import() */[__webpack_require__.e(\"vendor-chunks/lodash-es\"), __webpack_require__.e(\"vendor-chunks/@hello-pangea\"), __webpack_require__.e(\"vendor-chunks/react-redux\"), __webpack_require__.e(\"vendor-chunks/redux\"), __webpack_require__.e(\"vendor-chunks/hoist-non-react-statics\"), __webpack_require__.e(\"vendor-chunks/react-is\"), __webpack_require__.e(\"vendor-chunks/css-box-model\"), __webpack_require__.e(\"vendor-chunks/@babel\"), __webpack_require__.e(\"vendor-chunks/memoize-one\"), __webpack_require__.e(\"vendor-chunks/use-memo-one\"), __webpack_require__.e(\"vendor-chunks/raf-schd\"), __webpack_require__.e(\"vendor-chunks/tiny-invariant\"), __webpack_require__.e(\"_ssr_app_components_mask_tsx\")]).then(__webpack_require__.bind(__webpack_require__, /*! ./mask */ \"(ssr)/./app/components/mask.tsx\"))).MaskPage, {\n loadableGenerated: {\n modules: [\n \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx -> \" + \"./mask\"\n ]\n },\n loading: ()=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Loading, {\n noLogo: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 60,\n columnNumber: 18\n }, undefined)\n});\nconst PluginPage = (0,next_dynamic__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(async ()=>(await Promise.all(/*! import() */[__webpack_require__.e(\"vendor-chunks/use-debounce\"), __webpack_require__.e(\"_ssr_app_components_plugin_tsx\")]).then(__webpack_require__.bind(__webpack_require__, /*! ./plugin */ \"(ssr)/./app/components/plugin.tsx\"))).PluginPage, {\n loadableGenerated: {\n modules: [\n \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx -> \" + \"./plugin\"\n ]\n },\n loading: ()=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Loading, {\n noLogo: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 64,\n columnNumber: 18\n }, undefined)\n});\nconst SearchChat = (0,next_dynamic__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(async ()=>(await __webpack_require__.e(/*! import() */ \"_ssr_app_components_search-chat_tsx\").then(__webpack_require__.bind(__webpack_require__, /*! ./search-chat */ \"(ssr)/./app/components/search-chat.tsx\"))).SearchChatPage, {\n loadableGenerated: {\n modules: [\n \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx -> \" + \"./search-chat\"\n ]\n },\n loading: ()=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Loading, {\n noLogo: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 70,\n columnNumber: 20\n }, undefined)\n});\nconst Sd = (0,next_dynamic__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(async ()=>(await Promise.all(/*! import() */[__webpack_require__.e(\"vendor-chunks/lodash-es\"), __webpack_require__.e(\"vendor-chunks/next\"), __webpack_require__.e(\"vendor-chunks/@hello-pangea\"), __webpack_require__.e(\"vendor-chunks/react-redux\"), __webpack_require__.e(\"vendor-chunks/redux\"), __webpack_require__.e(\"vendor-chunks/hoist-non-react-statics\"), __webpack_require__.e(\"vendor-chunks/react-is\"), __webpack_require__.e(\"vendor-chunks/css-box-model\"), __webpack_require__.e(\"vendor-chunks/@babel\"), __webpack_require__.e(\"vendor-chunks/memoize-one\"), __webpack_require__.e(\"vendor-chunks/use-memo-one\"), __webpack_require__.e(\"vendor-chunks/raf-schd\"), __webpack_require__.e(\"vendor-chunks/tiny-invariant\"), __webpack_require__.e(\"vendor-chunks/use-debounce\"), __webpack_require__.e(\"vendor-chunks/lodash\"), __webpack_require__.e(\"vendor-chunks/rt-client\"), __webpack_require__.e(\"vendor-chunks/marked\"), __webpack_require__.e(\"vendor-chunks/html-to-image\"), __webpack_require__.e(\"vendor-chunks/markdown-to-txt\"), __webpack_require__.e(\"_ssr_app_components_sd_index_tsx-_ssr_app_components_sd_sd-sidebar_tsx-_ssr_app_components_sd-40d15b\")]).then(__webpack_require__.bind(__webpack_require__, /*! ./sd */ \"(ssr)/./app/components/sd/index.tsx\"))).Sd, {\n loadableGenerated: {\n modules: [\n \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx -> \" + \"./sd\"\n ]\n },\n loading: ()=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Loading, {\n noLogo: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 75,\n columnNumber: 18\n }, undefined)\n});\nconst McpMarketPage = (0,next_dynamic__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(async ()=>(await __webpack_require__.e(/*! import() */ \"_ssr_app_components_mcp-market_tsx\").then(__webpack_require__.bind(__webpack_require__, /*! ./mcp-market */ \"(ssr)/./app/components/mcp-market.tsx\"))).McpMarketPage, {\n loadableGenerated: {\n modules: [\n \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx -> \" + \"./mcp-market\"\n ]\n },\n loading: ()=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Loading, {\n noLogo: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 81,\n columnNumber: 20\n }, undefined)\n});\nfunction useSwitchTheme() {\n const config = (0,_store_config__WEBPACK_IMPORTED_MODULE_10__.useAppConfig)();\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n document.body.classList.remove(\"light\");\n document.body.classList.remove(\"dark\");\n if (config.theme === \"dark\") {\n document.body.classList.add(\"dark\");\n } else if (config.theme === \"light\") {\n document.body.classList.add(\"light\");\n }\n const metaDescriptionDark = document.querySelector('meta[name=\"theme-color\"][media*=\"dark\"]');\n const metaDescriptionLight = document.querySelector('meta[name=\"theme-color\"][media*=\"light\"]');\n if (config.theme === \"auto\") {\n metaDescriptionDark?.setAttribute(\"content\", \"#151515\");\n metaDescriptionLight?.setAttribute(\"content\", \"#fafafa\");\n } else {\n const themeColor = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getCSSVar)(\"--theme-color\");\n metaDescriptionDark?.setAttribute(\"content\", themeColor);\n metaDescriptionLight?.setAttribute(\"content\", themeColor);\n }\n }, [\n config.theme\n ]);\n}\nfunction useHtmlLang() {\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const lang = (0,_locales__WEBPACK_IMPORTED_MODULE_8__.getISOLang)();\n const htmlLang = document.documentElement.lang;\n if (lang !== htmlLang) {\n document.documentElement.lang = lang;\n }\n }, []);\n}\nconst useHasHydrated = ()=>{\n const [hasHydrated, setHasHydrated] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n setHasHydrated(true);\n }, []);\n return hasHydrated;\n};\nconst loadAsyncGoogleFont = ()=>{\n const linkEl = document.createElement(\"link\");\n const proxyFontUrl = \"/google-fonts\";\n const remoteFontUrl = \"https://fonts.googleapis.com\";\n const googleFontUrl = (0,_config_client__WEBPACK_IMPORTED_MODULE_12__.getClientConfig)()?.buildMode === \"export\" ? remoteFontUrl : proxyFontUrl;\n linkEl.rel = \"stylesheet\";\n linkEl.href = googleFontUrl + \"/css2?family=\" + encodeURIComponent(\"Noto Sans:wght@300;400;700;900\") + \"&display=swap\";\n document.head.appendChild(linkEl);\n};\nfunction WindowContent(props) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"window-content\"]),\n id: _constant__WEBPACK_IMPORTED_MODULE_6__.SlotID.AppBody,\n children: props?.children\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 154,\n columnNumber: 5\n }, this);\n}\nfunction Screen() {\n const config = (0,_store_config__WEBPACK_IMPORTED_MODULE_10__.useAppConfig)();\n const location = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_18__.useLocation)();\n const isArtifact = location.pathname.includes(_constant__WEBPACK_IMPORTED_MODULE_6__.Path.Artifacts);\n const isHome = location.pathname === _constant__WEBPACK_IMPORTED_MODULE_6__.Path.Home;\n const isAuth = location.pathname === _constant__WEBPACK_IMPORTED_MODULE_6__.Path.Auth;\n const isSd = location.pathname === _constant__WEBPACK_IMPORTED_MODULE_6__.Path.Sd;\n const isSdNew = location.pathname === _constant__WEBPACK_IMPORTED_MODULE_6__.Path.SdNew;\n const isMobileScreen = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.useMobileScreen)();\n const shouldTightBorder = (0,_config_client__WEBPACK_IMPORTED_MODULE_12__.getClientConfig)()?.isApp || config.tightBorder && !isMobileScreen;\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n loadAsyncGoogleFont();\n }, []);\n if (isArtifact) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_router_dom__WEBPACK_IMPORTED_MODULE_18__.Routes, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_router_dom__WEBPACK_IMPORTED_MODULE_18__.Route, {\n path: \"/artifacts/:id\",\n element: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Artifacts, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 180,\n columnNumber: 47\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 180,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 179,\n columnNumber: 7\n }, this);\n }\n const renderContent = ()=>{\n if (isAuth) return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_auth__WEBPACK_IMPORTED_MODULE_11__.AuthPage, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 185,\n columnNumber: 24\n }, this);\n if (isSd) return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Sd, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 186,\n columnNumber: 22\n }, this);\n if (isSdNew) return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Sd, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 187,\n columnNumber: 25\n }, this);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_sidebar__WEBPACK_IMPORTED_MODULE_9__.SideBar, {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_15__[\"default\"])({\n [(_home_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"sidebar-show\"])]: isHome\n })\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 190,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(WindowContent, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_router_dom__WEBPACK_IMPORTED_MODULE_18__.Routes, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_router_dom__WEBPACK_IMPORTED_MODULE_18__.Route, {\n path: _constant__WEBPACK_IMPORTED_MODULE_6__.Path.Home,\n element: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Chat, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 197,\n columnNumber: 46\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 197,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_router_dom__WEBPACK_IMPORTED_MODULE_18__.Route, {\n path: _constant__WEBPACK_IMPORTED_MODULE_6__.Path.NewChat,\n element: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(NewChat, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 198,\n columnNumber: 49\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 198,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_router_dom__WEBPACK_IMPORTED_MODULE_18__.Route, {\n path: _constant__WEBPACK_IMPORTED_MODULE_6__.Path.Masks,\n element: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(MaskPage, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 199,\n columnNumber: 47\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 199,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_router_dom__WEBPACK_IMPORTED_MODULE_18__.Route, {\n path: _constant__WEBPACK_IMPORTED_MODULE_6__.Path.Plugins,\n element: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(PluginPage, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 200,\n columnNumber: 49\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 200,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_router_dom__WEBPACK_IMPORTED_MODULE_18__.Route, {\n path: _constant__WEBPACK_IMPORTED_MODULE_6__.Path.SearchChat,\n element: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SearchChat, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 201,\n columnNumber: 52\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 201,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_router_dom__WEBPACK_IMPORTED_MODULE_18__.Route, {\n path: _constant__WEBPACK_IMPORTED_MODULE_6__.Path.Chat,\n element: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Chat, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 202,\n columnNumber: 46\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 202,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_router_dom__WEBPACK_IMPORTED_MODULE_18__.Route, {\n path: _constant__WEBPACK_IMPORTED_MODULE_6__.Path.Settings,\n element: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Settings, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 203,\n columnNumber: 50\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 203,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_router_dom__WEBPACK_IMPORTED_MODULE_18__.Route, {\n path: _constant__WEBPACK_IMPORTED_MODULE_6__.Path.McpMarket,\n element: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(McpMarketPage, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 204,\n columnNumber: 51\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 204,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 196,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 195,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true);\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_15__[\"default\"])((_home_module_scss__WEBPACK_IMPORTED_MODULE_17___default().container), {\n [(_home_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"tight-container\"])]: shouldTightBorder,\n [(_home_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"rtl-screen\"])]: (0,_locales__WEBPACK_IMPORTED_MODULE_8__.getLang)() === \"ar\"\n }),\n children: renderContent()\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 212,\n columnNumber: 5\n }, this);\n}\nfunction useLoadData() {\n const config = (0,_store_config__WEBPACK_IMPORTED_MODULE_10__.useAppConfig)();\n const api = (0,_client_api__WEBPACK_IMPORTED_MODULE_13__.getClientApi)(config.modelConfig.providerName);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n (async ()=>{\n const models = await api.llm.models();\n config.mergeModels(models);\n })();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n}\nfunction Home() {\n useSwitchTheme();\n useLoadData();\n useHtmlLang();\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n console.log(\"[Config] got config from build time\", (0,_config_client__WEBPACK_IMPORTED_MODULE_12__.getClientConfig)());\n _store__WEBPACK_IMPORTED_MODULE_14__.useAccessStore.getState().fetch();\n const initMcp = async ()=>{\n try {\n const enabled = await (0,_mcp_actions__WEBPACK_IMPORTED_MODULE_16__.isMcpEnabled)();\n if (enabled) {\n console.log(\"[MCP] initializing...\");\n await (0,_mcp_actions__WEBPACK_IMPORTED_MODULE_16__.initializeMcpSystem)();\n console.log(\"[MCP] initialized\");\n }\n } catch (err) {\n console.error(\"[MCP] failed to initialize:\", err);\n }\n };\n initMcp();\n }, []);\n if (!useHasHydrated()) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Loading, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 262,\n columnNumber: 12\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_error__WEBPACK_IMPORTED_MODULE_7__.ErrorBoundary, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_router_dom__WEBPACK_IMPORTED_MODULE_19__.HashRouter, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Screen, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 268,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 267,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\home.tsx\",\n lineNumber: 266,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LENBQUNzQixPQUFPNEQsV0FBVyxDQUFDQyxZQUFZO0lBRW5FekcsZ0RBQVNBLENBQUM7UUFDUDtZQUNDLE1BQU0wRyxTQUFTLE1BQU1ILElBQUlJLEdBQUcsQ0FBQ0QsTUFBTTtZQUNuQzlELE9BQU9nRSxXQUFXLENBQUNGO1FBQ3JCO0lBQ0EsdURBQXVEO0lBQ3pELEdBQUcsRUFBRTtBQUNQO0FBRU8sU0FBU3JCO0lBQ2QxQztJQUNBMkQ7SUFDQTlDO0lBRUF4RCxnREFBU0EsQ0FBQztRQUNSNkcsUUFBUUMsR0FBRyxDQUFDLHVDQUF1Q3pGLGdFQUFlQTtRQUNsRUUsbURBQWNBLENBQUN3RixRQUFRLEdBQUdDLEtBQUs7UUFFL0IsTUFBTUMsVUFBVTtZQUNkLElBQUk7Z0JBQ0YsTUFBTUMsVUFBVSxNQUFNeEYsMkRBQVlBO2dCQUNsQyxJQUFJd0YsU0FBUztvQkFDWEwsUUFBUUMsR0FBRyxDQUFDO29CQUNaLE1BQU1yRixrRUFBbUJBO29CQUN6Qm9GLFFBQVFDLEdBQUcsQ0FBQztnQkFDZDtZQUNGLEVBQUUsT0FBT0ssS0FBSztnQkFDWk4sUUFBUU8sS0FBSyxDQUFDLCtCQUErQkQ7WUFDL0M7UUFDRjtRQUNBRjtJQUNGLEdBQUcsRUFBRTtJQUVMLElBQUksQ0FBQ3JELGtCQUFrQjtRQUNyQixxQkFBTyw4REFBQ2pDOzs7OztJQUNWO0lBRUEscUJBQ0UsOERBQUNqQixpREFBYUE7a0JBQ1osNEVBQUNJLHlEQUFNQTtzQkFDTCw0RUFBQ2lFOzs7Ozs7Ozs7Ozs7Ozs7QUFJVCIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2NvbXBvbmVudHMvaG9tZS50c3g/NDllZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcclxuXHJcbnJlcXVpcmUoXCIuLi9wb2x5ZmlsbFwiKTtcclxuXHJcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9ob21lLm1vZHVsZS5zY3NzXCI7XHJcblxyXG5pbXBvcnQgQm90SWNvbiBmcm9tIFwiLi4vaWNvbnMvYm90LnN2Z1wiO1xyXG5pbXBvcnQgTG9hZGluZ0ljb24gZnJvbSBcIi4uL2ljb25zL3RocmVlLWRvdHMuc3ZnXCI7XHJcblxyXG5pbXBvcnQgeyBnZXRDU1NWYXIsIHVzZU1vYmlsZVNjcmVlbiB9IGZyb20gXCIuLi91dGlsc1wiO1xyXG5cclxuaW1wb3J0IGR5bmFtaWMgZnJvbSBcIm5leHQvZHluYW1pY1wiO1xyXG5pbXBvcnQgeyBQYXRoLCBTbG90SUQgfSBmcm9tIFwiLi4vY29uc3RhbnRcIjtcclxuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeSB9IGZyb20gXCIuL2Vycm9yXCI7XHJcblxyXG5pbXBvcnQgeyBnZXRJU09MYW5nLCBnZXRMYW5nIH0gZnJvbSBcIi4uL2xvY2FsZXNcIjtcclxuXHJcbmltcG9ydCB7XHJcbiAgSGFzaFJvdXRlciBhcyBSb3V0ZXIsXHJcbiAgUm91dGUsXHJcbiAgUm91dGVzLFxyXG4gIHVzZUxvY2F0aW9uLFxyXG59IGZyb20gXCJyZWFjdC1yb3V0ZXItZG9tXCI7XHJcbmltcG9ydCB7IFNpZGVCYXIgfSBmcm9tIFwiLi9zaWRlYmFyXCI7XHJcbmltcG9ydCB7IHVzZUFwcENvbmZpZyB9IGZyb20gXCIuLi9zdG9yZS9jb25maWdcIjtcclxuaW1wb3J0IHsgQXV0aFBhZ2UgfSBmcm9tIFwiLi9hdXRoXCI7XHJcbmltcG9ydCB7IGdldENsaWVudENvbmZpZyB9IGZyb20gXCIuLi9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB7IHR5cGUgQ2xpZW50QXBpLCBnZXRDbGllbnRBcGkgfSBmcm9tIFwiLi4vY2xpZW50L2FwaVwiO1xyXG5pbXBvcnQgeyB1c2VBY2Nlc3NTdG9yZSB9IGZyb20gXCIuLi9zdG9yZVwiO1xyXG5pbXBvcnQgY2xzeCBmcm9tIFwiY2xzeFwiO1xyXG5pbXBvcnQgeyBpbml0aWFsaXplTWNwU3lzdGVtLCBpc01jcEVuYWJsZWQgfSBmcm9tIFwiLi4vbWNwL2FjdGlvbnNcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBMb2FkaW5nKHByb3BzOiB7IG5vTG9nbz86IGJvb2xlYW4gfSkge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzeChcIm5vLWRhcmtcIiwgc3R5bGVzW1wibG9hZGluZy1jb250ZW50XCJdKX0+XHJcbiAgICAgIHshcHJvcHMubm9Mb2dvICYmIDxCb3RJY29uIC8+fVxyXG4gICAgICA8TG9hZGluZ0ljb24gLz5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmNvbnN0IEFydGlmYWN0cyA9IGR5bmFtaWMoYXN5bmMgKCkgPT4gKGF3YWl0IGltcG9ydChcIi4vYXJ0aWZhY3RzXCIpKS5BcnRpZmFjdHMsIHtcclxuICBsb2FkaW5nOiAoKSA9PiA8TG9hZGluZyBub0xvZ28gLz4sXHJcbn0pO1xyXG5cclxuY29uc3QgU2V0dGluZ3MgPSBkeW5hbWljKGFzeW5jICgpID0+IChhd2FpdCBpbXBvcnQoXCIuL3NldHRpbmdzXCIpKS5TZXR0aW5ncywge1xyXG4gIGxvYWRpbmc6ICgpID0+IDxMb2FkaW5nIG5vTG9nbyAvPixcclxufSk7XHJcblxyXG5jb25zdCBDaGF0ID0gZHluYW1pYyhhc3luYyAoKSA9PiAoYXdhaXQgaW1wb3J0KFwiLi9jaGF0XCIpKS5DaGF0LCB7XHJcbiAgbG9hZGluZzogKCkgPT4gPExvYWRpbmcgbm9Mb2dvIC8+LFxyXG59KTtcclxuXHJcbmNvbnN0IE5ld0NoYXQgPSBkeW5hbWljKGFzeW5jICgpID0+IChhd2FpdCBpbXBvcnQoXCIuL25ldy1jaGF0XCIpKS5OZXdDaGF0LCB7XHJcbiAgbG9hZGluZzogKCkgPT4gPExvYWRpbmcgbm9Mb2dvIC8+LFxyXG59KTtcclxuXHJcbmNvbnN0IE1hc2tQYWdlID0gZHluYW1pYyhhc3luYyAoKSA9PiAoYXdhaXQgaW1wb3J0KFwiLi9tYXNrXCIpKS5NYXNrUGFnZSwge1xyXG4gIGxvYWRpbmc6ICgpID0+IDxMb2FkaW5nIG5vTG9nbyAvPixcclxufSk7XHJcblxyXG5jb25zdCBQbHVnaW5QYWdlID0gZHluYW1pYyhhc3luYyAoKSA9PiAoYXdhaXQgaW1wb3J0KFwiLi9wbHVnaW5cIikpLlBsdWdpblBhZ2UsIHtcclxuICBsb2FkaW5nOiAoKSA9PiA8TG9hZGluZyBub0xvZ28gLz4sXHJcbn0pO1xyXG5cclxuY29uc3QgU2VhcmNoQ2hhdCA9IGR5bmFtaWMoXHJcbiAgYXN5bmMgKCkgPT4gKGF3YWl0IGltcG9ydChcIi4vc2VhcmNoLWNoYXRcIikpLlNlYXJjaENoYXRQYWdlLFxyXG4gIHtcclxuICAgIGxvYWRpbmc6ICgpID0+IDxMb2FkaW5nIG5vTG9nbyAvPixcclxuICB9LFxyXG4pO1xyXG5cclxuY29uc3QgU2QgPSBkeW5hbWljKGFzeW5jICgpID0+IChhd2FpdCBpbXBvcnQoXCIuL3NkXCIpKS5TZCwge1xyXG4gIGxvYWRpbmc6ICgpID0+IDxMb2FkaW5nIG5vTG9nbyAvPixcclxufSk7XHJcblxyXG5jb25zdCBNY3BNYXJrZXRQYWdlID0gZHluYW1pYyhcclxuICBhc3luYyAoKSA9PiAoYXdhaXQgaW1wb3J0KFwiLi9tY3AtbWFya2V0XCIpKS5NY3BNYXJrZXRQYWdlLFxyXG4gIHtcclxuICAgIGxvYWRpbmc6ICgpID0+IDxMb2FkaW5nIG5vTG9nbyAvPixcclxuICB9LFxyXG4pO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZVN3aXRjaFRoZW1lKCkge1xyXG4gIGNvbnN0IGNvbmZpZyA9IHVzZUFwcENvbmZpZygpO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwibGlnaHRcIik7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJkYXJrXCIpO1xyXG5cclxuICAgIGlmIChjb25maWcudGhlbWUgPT09IFwiZGFya1wiKSB7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImRhcmtcIik7XHJcbiAgICB9IGVsc2UgaWYgKGNvbmZpZy50aGVtZSA9PT0gXCJsaWdodFwiKSB7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImxpZ2h0XCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1ldGFEZXNjcmlwdGlvbkRhcmsgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxyXG4gICAgICAnbWV0YVtuYW1lPVwidGhlbWUtY29sb3JcIl1bbWVkaWEqPVwiZGFya1wiXScsXHJcbiAgICApO1xyXG4gICAgY29uc3QgbWV0YURlc2NyaXB0aW9uTGlnaHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxyXG4gICAgICAnbWV0YVtuYW1lPVwidGhlbWUtY29sb3JcIl1bbWVkaWEqPVwibGlnaHRcIl0nLFxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoY29uZmlnLnRoZW1lID09PSBcImF1dG9cIikge1xyXG4gICAgICBtZXRhRGVzY3JpcHRpb25EYXJrPy5zZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIsIFwiIzE1MTUxNVwiKTtcclxuICAgICAgbWV0YURlc2NyaXB0aW9uTGlnaHQ/LnNldEF0dHJpYnV0ZShcImNvbnRlbnRcIiwgXCIjZmFmYWZhXCIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgdGhlbWVDb2xvciA9IGdldENTU1ZhcihcIi0tdGhlbWUtY29sb3JcIik7XHJcbiAgICAgIG1ldGFEZXNjcmlwdGlvbkRhcms/LnNldEF0dHJpYnV0ZShcImNvbnRlbnRcIiwgdGhlbWVDb2xvcik7XHJcbiAgICAgIG1ldGFEZXNjcmlwdGlvbkxpZ2h0Py5zZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIsIHRoZW1lQ29sb3IpO1xyXG4gICAgfVxyXG4gIH0sIFtjb25maWcudGhlbWVdKTtcclxufVxyXG5cclxuZnVuY3Rpb24gdXNlSHRtbExhbmcoKSB7XHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IGxhbmcgPSBnZXRJU09MYW5nKCk7XHJcbiAgICBjb25zdCBodG1sTGFuZyA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nO1xyXG5cclxuICAgIGlmIChsYW5nICE9PSBodG1sTGFuZykge1xyXG4gICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubGFuZyA9IGxhbmc7XHJcbiAgICB9XHJcbiAgfSwgW10pO1xyXG59XHJcblxyXG5jb25zdCB1c2VIYXNIeWRyYXRlZCA9ICgpID0+IHtcclxuICBjb25zdCBbaGFzSHlkcmF0ZWQsIHNldEhhc0h5ZHJhdGVkXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHNldEhhc0h5ZHJhdGVkKHRydWUpO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgcmV0dXJuIGhhc0h5ZHJhdGVkO1xyXG59O1xyXG5cclxuY29uc3QgbG9hZEFzeW5jR29vZ2xlRm9udCA9ICgpID0+IHtcclxuICBjb25zdCBsaW5rRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibGlua1wiKTtcclxuICBjb25zdCBwcm94eUZvbnRVcmwgPSBcIi9nb29nbGUtZm9udHNcIjtcclxuICBjb25zdCByZW1vdGVGb250VXJsID0gXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tXCI7XHJcbiAgY29uc3QgZ29vZ2xlRm9udFVybCA9XHJcbiAgICBnZXRDbGllbnRDb25maWcoKT8uYnVpbGRNb2RlID09PSBcImV4cG9ydFwiID8gcmVtb3RlRm9udFVybCA6IHByb3h5Rm9udFVybDtcclxuICBsaW5rRWwucmVsID0gXCJzdHlsZXNoZWV0XCI7XHJcbiAgbGlua0VsLmhyZWYgPVxyXG4gICAgZ29vZ2xlRm9udFVybCArXHJcbiAgICBcIi9jc3MyP2ZhbWlseT1cIiArXHJcbiAgICBlbmNvZGVVUklDb21wb25lbnQoXCJOb3RvIFNhbnM6d2dodEAzMDA7NDAwOzcwMDs5MDBcIikgK1xyXG4gICAgXCImZGlzcGxheT1zd2FwXCI7XHJcbiAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rRWwpO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFdpbmRvd0NvbnRlbnQocHJvcHM6IHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9KSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJ3aW5kb3ctY29udGVudFwiXX0gaWQ9e1Nsb3RJRC5BcHBCb2R5fT5cclxuICAgICAge3Byb3BzPy5jaGlsZHJlbn1cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIFNjcmVlbigpIHtcclxuICBjb25zdCBjb25maWcgPSB1c2VBcHBDb25maWcoKTtcclxuICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XHJcbiAgY29uc3QgaXNBcnRpZmFjdCA9IGxvY2F0aW9uLnBhdGhuYW1lLmluY2x1ZGVzKFBhdGguQXJ0aWZhY3RzKTtcclxuICBjb25zdCBpc0hvbWUgPSBsb2NhdGlvbi5wYXRobmFtZSA9PT0gUGF0aC5Ib21lO1xyXG4gIGNvbnN0IGlzQXV0aCA9IGxvY2F0aW9uLnBhdGhuYW1lID09PSBQYXRoLkF1dGg7XHJcbiAgY29uc3QgaXNTZCA9IGxvY2F0aW9uLnBhdGhuYW1lID09PSBQYXRoLlNkO1xyXG4gIGNvbnN0IGlzU2ROZXcgPSBsb2NhdGlvbi5wYXRobmFtZSA9PT0gUGF0aC5TZE5ldztcclxuXHJcbiAgY29uc3QgaXNNb2JpbGVTY3JlZW4gPSB1c2VNb2JpbGVTY3JlZW4oKTtcclxuICBjb25zdCBzaG91bGRUaWdodEJvcmRlciA9XHJcbiAgICBnZXRDbGllbnRDb25maWcoKT8uaXNBcHAgfHwgKGNvbmZpZy50aWdodEJvcmRlciAmJiAhaXNNb2JpbGVTY3JlZW4pO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgbG9hZEFzeW5jR29vZ2xlRm9udCgpO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgaWYgKGlzQXJ0aWZhY3QpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxSb3V0ZXM+XHJcbiAgICAgICAgPFJvdXRlIHBhdGg9XCIvYXJ0aWZhY3RzLzppZFwiIGVsZW1lbnQ9ezxBcnRpZmFjdHMgLz59IC8+XHJcbiAgICAgIDwvUm91dGVzPlxyXG4gICAgKTtcclxuICB9XHJcbiAgY29uc3QgcmVuZGVyQ29udGVudCA9ICgpID0+IHtcclxuICAgIGlmIChpc0F1dGgpIHJldHVybiA8QXV0aFBhZ2UgLz47XHJcbiAgICBpZiAoaXNTZCkgcmV0dXJuIDxTZCAvPjtcclxuICAgIGlmIChpc1NkTmV3KSByZXR1cm4gPFNkIC8+O1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPD5cclxuICAgICAgICA8U2lkZUJhclxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbHN4KHtcclxuICAgICAgICAgICAgW3N0eWxlc1tcInNpZGViYXItc2hvd1wiXV06IGlzSG9tZSxcclxuICAgICAgICAgIH0pfVxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPFdpbmRvd0NvbnRlbnQ+XHJcbiAgICAgICAgICA8Um91dGVzPlxyXG4gICAgICAgICAgICA8Um91dGUgcGF0aD17UGF0aC5Ib21lfSBlbGVtZW50PXs8Q2hhdCAvPn0gLz5cclxuICAgICAgICAgICAgPFJvdXRlIHBhdGg9e1BhdGguTmV3Q2hhdH0gZWxlbWVudD17PE5ld0NoYXQgLz59IC8+XHJcbiAgICAgICAgICAgIDxSb3V0ZSBwYXRoPXtQYXRoLk1hc2tzfSBlbGVtZW50PXs8TWFza1BhZ2UgLz59IC8+XHJcbiAgICAgICAgICAgIDxSb3V0ZSBwYXRoPXtQYXRoLlBsdWdpbnN9IGVsZW1lbnQ9ezxQbHVnaW5QYWdlIC8+fSAvPlxyXG4gICAgICAgICAgICA8Um91dGUgcGF0aD17UGF0aC5TZWFyY2hDaGF0fSBlbGVtZW50PXs8U2VhcmNoQ2hhdCAvPn0gLz5cclxuICAgICAgICAgICAgPFJvdXRlIHBhdGg9e1BhdGguQ2hhdH0gZWxlbWVudD17PENoYXQgLz59IC8+XHJcbiAgICAgICAgICAgIDxSb3V0ZSBwYXRoPXtQYXRoLlNldHRpbmdzfSBlbGVtZW50PXs8U2V0dGluZ3MgLz59IC8+XHJcbiAgICAgICAgICAgIDxSb3V0ZSBwYXRoPXtQYXRoLk1jcE1hcmtldH0gZWxlbWVudD17PE1jcE1hcmtldFBhZ2UgLz59IC8+XHJcbiAgICAgICAgICA8L1JvdXRlcz5cclxuICAgICAgICA8L1dpbmRvd0NvbnRlbnQ+XHJcbiAgICAgIDwvPlxyXG4gICAgKTtcclxuICB9O1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzc05hbWU9e2Nsc3goc3R5bGVzLmNvbnRhaW5lciwge1xyXG4gICAgICAgIFtzdHlsZXNbXCJ0aWdodC1jb250YWluZXJcIl1dOiBzaG91bGRUaWdodEJvcmRlcixcclxuICAgICAgICBbc3R5bGVzW1wicnRsLXNjcmVlblwiXV06IGdldExhbmcoKSA9PT0gXCJhclwiLFxyXG4gICAgICB9KX1cclxuICAgID5cclxuICAgICAge3JlbmRlckNvbnRlbnQoKX1cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB1c2VMb2FkRGF0YSgpIHtcclxuICBjb25zdCBjb25maWcgPSB1c2VBcHBDb25maWcoKTtcclxuXHJcbiAgY29uc3QgYXBpOiBDbGllbnRBcGkgPSBnZXRDbGllbnRBcGkoY29uZmlnLm1vZGVsQ29uZmlnLnByb3ZpZGVyTmFtZSk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAoYXN5bmMgKCkgPT4ge1xyXG4gICAgICBjb25zdCBtb2RlbHMgPSBhd2FpdCBhcGkubGxtLm1vZGVscygpO1xyXG4gICAgICBjb25maWcubWVyZ2VNb2RlbHMobW9kZWxzKTtcclxuICAgIH0pKCk7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXHJcbiAgfSwgW10pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gSG9tZSgpIHtcclxuICB1c2VTd2l0Y2hUaGVtZSgpO1xyXG4gIHVzZUxvYWREYXRhKCk7XHJcbiAgdXNlSHRtbExhbmcoKTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnNvbGUubG9nKFwiW0NvbmZpZ10gZ290IGNvbmZpZyBmcm9tIGJ1aWxkIHRpbWVcIiwgZ2V0Q2xpZW50Q29uZmlnKCkpO1xyXG4gICAgdXNlQWNjZXNzU3RvcmUuZ2V0U3RhdGUoKS5mZXRjaCgpO1xyXG5cclxuICAgIGNvbnN0IGluaXRNY3AgPSBhc3luYyAoKSA9PiB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgZW5hYmxlZCA9IGF3YWl0IGlzTWNwRW5hYmxlZCgpO1xyXG4gICAgICAgIGlmIChlbmFibGVkKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIltNQ1BdIGluaXRpYWxpemluZy4uLlwiKTtcclxuICAgICAgICAgIGF3YWl0IGluaXRpYWxpemVNY3BTeXN0ZW0oKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiW01DUF0gaW5pdGlhbGl6ZWRcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKFwiW01DUF0gZmFpbGVkIHRvIGluaXRpYWxpemU6XCIsIGVycik7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICBpbml0TWNwKCk7XHJcbiAgfSwgW10pO1xyXG5cclxuICBpZiAoIXVzZUhhc0h5ZHJhdGVkKCkpIHtcclxuICAgIHJldHVybiA8TG9hZGluZyAvPjtcclxuICB9XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8RXJyb3JCb3VuZGFyeT5cclxuICAgICAgPFJvdXRlcj5cclxuICAgICAgICA8U2NyZWVuIC8+XHJcbiAgICAgIDwvUm91dGVyPlxyXG4gICAgPC9FcnJvckJvdW5kYXJ5PlxyXG4gICk7XHJcbn1cclxuIl0sIm5hbWVzIjpbInJlcXVpcmUiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsInN0eWxlcyIsIkJvdEljb24iLCJMb2FkaW5nSWNvbiIsImdldENTU1ZhciIsInVzZU1vYmlsZVNjcmVlbiIsImR5bmFtaWMiLCJQYXRoIiwiU2xvdElEIiwiRXJyb3JCb3VuZGFyeSIsImdldElTT0xhbmciLCJnZXRMYW5nIiwiSGFzaFJvdXRlciIsIlJvdXRlciIsIlJvdXRlIiwiUm91dGVzIiwidXNlTG9jYXRpb24iLCJTaWRlQmFyIiwidXNlQXBwQ29uZmlnIiwiQXV0aFBhZ2UiLCJnZXRDbGllbnRDb25maWciLCJnZXRDbGllbnRBcGkiLCJ1c2VBY2Nlc3NTdG9yZSIsImNsc3giLCJpbml0aWFsaXplTWNwU3lzdGVtIiwiaXNNY3BFbmFibGVkIiwiTG9hZGluZyIsInByb3BzIiwiZGl2IiwiY2xhc3NOYW1lIiwibm9Mb2dvIiwiQXJ0aWZhY3RzIiwibG9hZGluZyIsIlNldHRpbmdzIiwiQ2hhdCIsIk5ld0NoYXQiLCJNYXNrUGFnZSIsIlBsdWdpblBhZ2UiLCJTZWFyY2hDaGF0IiwiU2VhcmNoQ2hhdFBhZ2UiLCJTZCIsIk1jcE1hcmtldFBhZ2UiLCJ1c2VTd2l0Y2hUaGVtZSIsImNvbmZpZyIsImRvY3VtZW50IiwiYm9keSIsImNsYXNzTGlzdCIsInJlbW92ZSIsInRoZW1lIiwiYWRkIiwibWV0YURlc2NyaXB0aW9uRGFyayIsInF1ZXJ5U2VsZWN0b3IiLCJtZXRhRGVzY3JpcHRpb25MaWdodCIsInNldEF0dHJpYnV0ZSIsInRoZW1lQ29sb3IiLCJ1c2VIdG1sTGFuZyIsImxhbmciLCJodG1sTGFuZyIsImRvY3VtZW50RWxlbWVudCIsInVzZUhhc0h5ZHJhdGVkIiwiaGFzSHlkcmF0ZWQiLCJzZXRIYXNIeWRyYXRlZCIsImxvYWRBc3luY0dvb2dsZUZvbnQiLCJsaW5rRWwiLCJjcmVhdGVFbGVtZW50IiwicHJveHlGb250VXJsIiwicmVtb3RlRm9udFVybCIsImdvb2dsZUZvbnRVcmwiLCJidWlsZE1vZGUiLCJyZWwiLCJocmVmIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiaGVhZCIsImFwcGVuZENoaWxkIiwiV2luZG93Q29udGVudCIsImlkIiwiQXBwQm9keSIsImNoaWxkcmVuIiwiU2NyZWVuIiwibG9jYXRpb24iLCJpc0FydGlmYWN0IiwicGF0aG5hbWUiLCJpbmNsdWRlcyIsImlzSG9tZSIsIkhvbWUiLCJpc0F1dGgiLCJBdXRoIiwiaXNTZCIsImlzU2ROZXciLCJTZE5ldyIsImlzTW9iaWxlU2NyZWVuIiwic2hvdWxkVGlnaHRCb3JkZXIiLCJpc0FwcCIsInRpZ2h0Qm9yZGVyIiwicGF0aCIsImVsZW1lbnQiLCJyZW5kZXJDb250ZW50IiwiTWFza3MiLCJQbHVnaW5zIiwiTWNwTWFya2V0IiwiY29udGFpbmVyIiwidXNlTG9hZERhdGEiLCJhcGkiLCJtb2RlbENvbmZpZyIsInByb3ZpZGVyTmFtZSIsIm1vZGVscyIsImxsbSIsIm1lcmdlTW9kZWxzIiwiY29uc29sZSIsImxvZyIsImdldFN0YXRlIiwiZmV0Y2giLCJpbml0TWNwIiwiZW5hYmxlZCIsImVyciIsImVycm9yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/components/home.tsx\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/components/sidebar.tsx":
|
|
|
/*!************************************!*\
|
|
|
!*** ./app/components/sidebar.tsx ***!
|
|
|
\************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SideBar: () => (/* binding */ SideBar),\n/* harmony export */ SideBarBody: () => (/* binding */ SideBarBody),\n/* harmony export */ SideBarContainer: () => (/* binding */ SideBarContainer),\n/* harmony export */ SideBarHeader: () => (/* binding */ SideBarHeader),\n/* harmony export */ SideBarTail: () => (/* binding */ SideBarTail),\n/* harmony export */ useDragSideBar: () => (/* binding */ useDragSideBar),\n/* harmony export */ useHotKey: () => (/* binding */ useHotKey)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _home_module_scss__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./home.module.scss */ \"(ssr)/./app/components/home.module.scss\");\n/* harmony import */ var _home_module_scss__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_home_module_scss__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var _button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./button */ \"(ssr)/./app/components/button.tsx\");\n/* harmony import */ var _icons_settings_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/settings.svg */ \"(ssr)/./app/icons/settings.svg\");\n/* harmony import */ var _icons_chatgpt_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/chatgpt.svg */ \"(ssr)/./app/icons/chatgpt.svg\");\n/* harmony import */ var _icons_add_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../icons/add.svg */ \"(ssr)/./app/icons/add.svg\");\n/* harmony import */ var _icons_delete_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../icons/delete.svg */ \"(ssr)/./app/icons/delete.svg\");\n/* harmony import */ var _icons_mask_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../icons/mask.svg */ \"(ssr)/./app/icons/mask.svg\");\n/* harmony import */ var _icons_drag_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../icons/drag.svg */ \"(ssr)/./app/icons/drag.svg\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../locales */ \"(ssr)/./app/locales/index.ts\");\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../store */ \"(ssr)/./app/store/index.ts\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! react-router-dom */ \"(ssr)/./node_modules/react-router/dist/index.js\");\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! react-router-dom */ \"(ssr)/./node_modules/react-router-dom/dist/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils */ \"(ssr)/./app/utils.ts\");\n/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! next/dynamic */ \"(ssr)/./node_modules/next/dist/api/app-dynamic.js\");\n/* harmony import */ var _ui_lib__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./ui-lib */ \"(ssr)/./app/components/ui-lib.tsx\");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! clsx */ \"(ssr)/./node_modules/clsx/dist/clsx.mjs\");\n/* harmony import */ var _mcp_actions__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../mcp/actions */ \"(ssr)/./app/mcp/actions.ts\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst DISCOVERY = [\n {\n name: _locales__WEBPACK_IMPORTED_MODULE_9__[\"default\"].Plugin.Name,\n path: _constant__WEBPACK_IMPORTED_MODULE_11__.Path.Plugins\n },\n {\n name: \"Stable Diffusion\",\n path: _constant__WEBPACK_IMPORTED_MODULE_11__.Path.Sd\n },\n {\n name: _locales__WEBPACK_IMPORTED_MODULE_9__[\"default\"].SearchChat.Page.Title,\n path: _constant__WEBPACK_IMPORTED_MODULE_11__.Path.SearchChat\n }\n];\nconst ChatList = (0,next_dynamic__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(async ()=>(await Promise.all(/*! import() */[__webpack_require__.e(\"vendor-chunks/lodash-es\"), __webpack_require__.e(\"vendor-chunks/@hello-pangea\"), __webpack_require__.e(\"vendor-chunks/react-redux\"), __webpack_require__.e(\"vendor-chunks/redux\"), __webpack_require__.e(\"vendor-chunks/hoist-non-react-statics\"), __webpack_require__.e(\"vendor-chunks/react-is\"), __webpack_require__.e(\"vendor-chunks/css-box-model\"), __webpack_require__.e(\"vendor-chunks/@babel\"), __webpack_require__.e(\"vendor-chunks/memoize-one\"), __webpack_require__.e(\"vendor-chunks/use-memo-one\"), __webpack_require__.e(\"vendor-chunks/raf-schd\"), __webpack_require__.e(\"vendor-chunks/tiny-invariant\"), __webpack_require__.e(\"_ssr_app_components_chat-list_tsx\")]).then(__webpack_require__.bind(__webpack_require__, /*! ./chat-list */ \"(ssr)/./app/components/chat-list.tsx\"))).ChatList, {\n loadableGenerated: {\n modules: [\n \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx -> \" + \"./chat-list\"\n ]\n },\n loading: ()=>null\n});\nfunction useHotKey() {\n const chatStore = (0,_store__WEBPACK_IMPORTED_MODULE_10__.useChatStore)();\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const onKeyDown = (e)=>{\n if (e.altKey || e.ctrlKey) {\n if (e.key === \"ArrowUp\") {\n chatStore.nextSession(-1);\n } else if (e.key === \"ArrowDown\") {\n chatStore.nextSession(1);\n }\n }\n };\n window.addEventListener(\"keydown\", onKeyDown);\n return ()=>window.removeEventListener(\"keydown\", onKeyDown);\n });\n}\nfunction useDragSideBar() {\n const limit = (x)=>Math.min(_constant__WEBPACK_IMPORTED_MODULE_11__.MAX_SIDEBAR_WIDTH, x);\n const config = (0,_store__WEBPACK_IMPORTED_MODULE_10__.useAppConfig)();\n const startX = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(0);\n const startDragWidth = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(config.sidebarWidth ?? _constant__WEBPACK_IMPORTED_MODULE_11__.DEFAULT_SIDEBAR_WIDTH);\n const lastUpdateTime = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(Date.now());\n const toggleSideBar = ()=>{\n config.update((config)=>{\n if (config.sidebarWidth < _constant__WEBPACK_IMPORTED_MODULE_11__.MIN_SIDEBAR_WIDTH) {\n config.sidebarWidth = _constant__WEBPACK_IMPORTED_MODULE_11__.DEFAULT_SIDEBAR_WIDTH;\n } else {\n config.sidebarWidth = _constant__WEBPACK_IMPORTED_MODULE_11__.NARROW_SIDEBAR_WIDTH;\n }\n });\n };\n const onDragStart = (e)=>{\n // Remembers the initial width each time the mouse is pressed\n startX.current = e.clientX;\n startDragWidth.current = config.sidebarWidth;\n const dragStartTime = Date.now();\n const handleDragMove = (e)=>{\n if (Date.now() < lastUpdateTime.current + 20) {\n return;\n }\n lastUpdateTime.current = Date.now();\n const d = e.clientX - startX.current;\n const nextWidth = limit(startDragWidth.current + d);\n config.update((config)=>{\n if (nextWidth < _constant__WEBPACK_IMPORTED_MODULE_11__.MIN_SIDEBAR_WIDTH) {\n config.sidebarWidth = _constant__WEBPACK_IMPORTED_MODULE_11__.NARROW_SIDEBAR_WIDTH;\n } else {\n config.sidebarWidth = nextWidth;\n }\n });\n };\n const handleDragEnd = ()=>{\n // In useRef the data is non-responsive, so `config.sidebarWidth` can't get the dynamic sidebarWidth\n window.removeEventListener(\"pointermove\", handleDragMove);\n window.removeEventListener(\"pointerup\", handleDragEnd);\n // if user click the drag icon, should toggle the sidebar\n const shouldFireClick = Date.now() - dragStartTime < 300;\n if (shouldFireClick) {\n toggleSideBar();\n }\n };\n window.addEventListener(\"pointermove\", handleDragMove);\n window.addEventListener(\"pointerup\", handleDragEnd);\n };\n const isMobileScreen = (0,_utils__WEBPACK_IMPORTED_MODULE_12__.useMobileScreen)();\n const shouldNarrow = !isMobileScreen && config.sidebarWidth < _constant__WEBPACK_IMPORTED_MODULE_11__.MIN_SIDEBAR_WIDTH;\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const barWidth = shouldNarrow ? _constant__WEBPACK_IMPORTED_MODULE_11__.NARROW_SIDEBAR_WIDTH : limit(config.sidebarWidth ?? _constant__WEBPACK_IMPORTED_MODULE_11__.DEFAULT_SIDEBAR_WIDTH);\n const sideBarWidth = isMobileScreen ? \"100vw\" : `${barWidth}px`;\n document.documentElement.style.setProperty(\"--sidebar-width\", sideBarWidth);\n }, [\n config.sidebarWidth,\n isMobileScreen,\n shouldNarrow\n ]);\n return {\n onDragStart,\n shouldNarrow\n };\n}\nfunction SideBarContainer(props) {\n const isMobileScreen = (0,_utils__WEBPACK_IMPORTED_MODULE_12__.useMobileScreen)();\n const isIOSMobile = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>(0,_utils__WEBPACK_IMPORTED_MODULE_12__.isIOS)() && isMobileScreen, [\n isMobileScreen\n ]);\n const { children, className, onDragStart, shouldNarrow } = props;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_15__[\"default\"])((_home_module_scss__WEBPACK_IMPORTED_MODULE_17___default().sidebar), className, {\n [(_home_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"narrow-sidebar\"])]: shouldNarrow\n }),\n style: {\n // #3016 disable transition on ios mobile screen\n transition: isMobileScreen && isIOSMobile ? \"none\" : undefined\n },\n children: [\n children,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"sidebar-drag\"]),\n onPointerDown: (e)=>onDragStart(e),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_drag_svg__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 164,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 160,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 150,\n columnNumber: 5\n }, this);\n}\nfunction SideBarHeader(props) {\n const { title, subTitle, logo, children, shouldNarrow } = props;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_15__[\"default\"])((_home_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"sidebar-header\"]), {\n [(_home_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"sidebar-header-narrow\"])]: shouldNarrow\n }),\n \"data-tauri-drag-region\": true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 180,\n columnNumber: 7\n }, this),\n children\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 179,\n columnNumber: 5\n }, this);\n}\nfunction SideBarBody(props) {\n const { onClick, children } = props;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"sidebar-body\"]),\n onClick: onClick,\n children: children\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 198,\n columnNumber: 5\n }, this);\n}\nfunction SideBarTail(props) {\n const { primaryAction, secondaryAction } = props;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"sidebar-tail\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"sidebar-actions\"]),\n children: primaryAction\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 212,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"sidebar-actions\"]),\n children: secondaryAction\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 213,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 211,\n columnNumber: 5\n }, this);\n}\nfunction SideBar(props) {\n useHotKey();\n const { onDragStart, shouldNarrow } = useDragSideBar();\n const [showDiscoverySelector, setshowDiscoverySelector] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_18__.useNavigate)();\n const config = (0,_store__WEBPACK_IMPORTED_MODULE_10__.useAppConfig)();\n const chatStore = (0,_store__WEBPACK_IMPORTED_MODULE_10__.useChatStore)();\n const [mcpEnabled, setMcpEnabled] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // 检查 MCP 是否启用\n const checkMcpStatus = async ()=>{\n const enabled = await (0,_mcp_actions__WEBPACK_IMPORTED_MODULE_16__.isMcpEnabled)();\n setMcpEnabled(enabled);\n console.log(\"[SideBar] MCP enabled:\", enabled);\n };\n checkMcpStatus();\n }, []);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SideBarContainer, {\n onDragStart: onDragStart,\n shouldNarrow: shouldNarrow,\n ...props,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SideBarHeader, {\n title: \"NextChat\",\n subTitle: \"Build your own AI assistant.\",\n logo: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_chatgpt_svg__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 246,\n columnNumber: 15\n }, void 0),\n shouldNarrow: shouldNarrow,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"sidebar-header-bar\"]),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_2__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_add_svg__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 251,\n columnNumber: 21\n }, void 0),\n text: shouldNarrow ? undefined : _locales__WEBPACK_IMPORTED_MODULE_9__[\"default\"].Home.NewChat,\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"sidebar-bar-button\"]),\n onClick: ()=>{\n if (config.dontShowMaskSplashScreen) {\n chatStore.newSession();\n navigate(_constant__WEBPACK_IMPORTED_MODULE_11__.Path.Chat);\n } else {\n navigate(_constant__WEBPACK_IMPORTED_MODULE_11__.Path.NewChat);\n }\n },\n shadow: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 250,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 249,\n columnNumber: 9\n }, this),\n showDiscoverySelector && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_14__.Selector, {\n items: [\n ...DISCOVERY.map((item)=>{\n return {\n title: item.name,\n value: item.path\n };\n })\n ],\n onClose: ()=>setshowDiscoverySelector(false),\n onSelection: (s)=>{\n navigate(s[0], {\n state: {\n fromHome: true\n }\n });\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 266,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 243,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SideBarBody, {\n onClick: (e)=>{\n if (e.target === e.currentTarget) {\n navigate(_constant__WEBPACK_IMPORTED_MODULE_11__.Path.Home);\n }\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(ChatList, {\n narrow: shouldNarrow\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 289,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 282,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SideBarTail, {\n primaryAction: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_15__[\"default\"])((_home_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"sidebar-action\"]), (_home_module_scss__WEBPACK_IMPORTED_MODULE_17___default().mobile)),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_2__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_delete_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 296,\n columnNumber: 23\n }, void 0),\n onClick: async ()=>{\n if (await (0,_ui_lib__WEBPACK_IMPORTED_MODULE_14__.showConfirm)(_locales__WEBPACK_IMPORTED_MODULE_9__[\"default\"].Home.DeleteChat)) {\n chatStore.deleteSession(chatStore.currentSessionIndex);\n }\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 295,\n columnNumber: 15\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 294,\n columnNumber: 13\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_17___default()[\"sidebar-action\"]),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_router_dom__WEBPACK_IMPORTED_MODULE_19__.Link, {\n to: _constant__WEBPACK_IMPORTED_MODULE_11__.Path.Settings,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_2__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_9__[\"default\"].Settings.Title,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_settings_svg__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 308,\n columnNumber: 25\n }, void 0),\n shadow: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 306,\n columnNumber: 17\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 305,\n columnNumber: 15\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 304,\n columnNumber: 13\n }, void 0)\n ]\n }, void 0, true),\n secondaryAction: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_2__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_mask_svg__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 317,\n columnNumber: 21\n }, void 0),\n text: shouldNarrow ? undefined : _locales__WEBPACK_IMPORTED_MODULE_9__[\"default\"].Mask.Name,\n onClick: ()=>{\n if (config.dontShowMaskSplashScreen !== true) {\n navigate(_constant__WEBPACK_IMPORTED_MODULE_11__.Path.NewChat, {\n state: {\n fromHome: true\n }\n });\n } else {\n navigate(_constant__WEBPACK_IMPORTED_MODULE_11__.Path.Masks, {\n state: {\n fromHome: true\n }\n });\n }\n },\n shadow: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 316,\n columnNumber: 11\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 291,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 238,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Ozs7Ozs7Ozs7Ozs7Ozs7Z0JBTWhCbEIsK0JBQ0UsOERBQUNqRywrQ0FBVUE7b0JBQ1A0RyxvQkFBTSw4REFBQ3ZHLHVEQUFRQTs7Ozs7b0JBQ2Z3RyxNQUFNdEMsZUFBZWUsWUFBWS9FLGdEQUFNQSxDQUFDZ0ksSUFBSSxDQUFDNUcsSUFBSTtvQkFDakRtRSxTQUFTO3dCQUNQLElBQUkxQyxPQUFPNEQsd0JBQXdCLEtBQUssTUFBTTs0QkFDNUNYLFNBQVN2Riw0Q0FBSUEsQ0FBQ2lHLE9BQU8sRUFBRTtnQ0FBRVksT0FBTztvQ0FBRUMsVUFBVTtnQ0FBSzs0QkFBRTt3QkFDckQsT0FBTzs0QkFDTHZCLFNBQVN2Riw0Q0FBSUEsQ0FBQzBILEtBQUssRUFBRTtnQ0FBRWIsT0FBTztvQ0FBRUMsVUFBVTtnQ0FBSzs0QkFBRTt3QkFDbkQ7b0JBQ0Y7b0JBQ0FULE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTXBCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvY29tcG9uZW50cy9zaWRlYmFyLnRzeD8zYzE3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBGcmFnbWVudCwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2hvbWUubW9kdWxlLnNjc3NcIjtcclxuXHJcbmltcG9ydCB7IEljb25CdXR0b24gfSBmcm9tIFwiLi9idXR0b25cIjtcclxuaW1wb3J0IFNldHRpbmdzSWNvbiBmcm9tIFwiLi4vaWNvbnMvc2V0dGluZ3Muc3ZnXCI7XHJcbmltcG9ydCBHaXRodWJJY29uIGZyb20gXCIuLi9pY29ucy9naXRodWIuc3ZnXCI7XHJcbmltcG9ydCBDaGF0R3B0SWNvbiBmcm9tIFwiLi4vaWNvbnMvY2hhdGdwdC5zdmdcIjtcclxuaW1wb3J0IEFkZEljb24gZnJvbSBcIi4uL2ljb25zL2FkZC5zdmdcIjtcclxuaW1wb3J0IERlbGV0ZUljb24gZnJvbSBcIi4uL2ljb25zL2RlbGV0ZS5zdmdcIjtcclxuaW1wb3J0IE1hc2tJY29uIGZyb20gXCIuLi9pY29ucy9tYXNrLnN2Z1wiO1xyXG5pbXBvcnQgRHJhZ0ljb24gZnJvbSBcIi4uL2ljb25zL2RyYWcuc3ZnXCI7XHJcblxyXG5pbXBvcnQgTG9jYWxlIGZyb20gXCIuLi9sb2NhbGVzXCI7XHJcblxyXG5pbXBvcnQgeyB1c2VBcHBDb25maWcsIHVzZUNoYXRTdG9yZSB9IGZyb20gXCIuLi9zdG9yZVwiO1xyXG5cclxuaW1wb3J0IHtcclxuICBERUZBVUxUX1NJREVCQVJfV0lEVEgsXHJcbiAgTUFYX1NJREVCQVJfV0lEVEgsXHJcbiAgTUlOX1NJREVCQVJfV0lEVEgsXHJcbiAgTkFSUk9XX1NJREVCQVJfV0lEVEgsXHJcbiAgUGF0aCxcclxuICBSRVBPX1VSTCxcclxufSBmcm9tIFwiLi4vY29uc3RhbnRcIjtcclxuXHJcbmltcG9ydCB7IExpbmssIHVzZU5hdmlnYXRlIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcclxuaW1wb3J0IHsgaXNJT1MsIHVzZU1vYmlsZVNjcmVlbiB9IGZyb20gXCIuLi91dGlsc1wiO1xyXG5pbXBvcnQgZHluYW1pYyBmcm9tIFwibmV4dC9keW5hbWljXCI7XHJcbmltcG9ydCB7IFNlbGVjdG9yLCBzaG93Q29uZmlybSB9IGZyb20gXCIuL3VpLWxpYlwiO1xyXG5pbXBvcnQgY2xzeCBmcm9tIFwiY2xzeFwiO1xyXG5pbXBvcnQgeyBpc01jcEVuYWJsZWQgfSBmcm9tIFwiLi4vbWNwL2FjdGlvbnNcIjtcclxuXHJcbmNvbnN0IERJU0NPVkVSWSA9IFtcclxuICB7IG5hbWU6IExvY2FsZS5QbHVnaW4uTmFtZSwgcGF0aDogUGF0aC5QbHVnaW5zIH0sXHJcbiAgeyBuYW1lOiBcIlN0YWJsZSBEaWZmdXNpb25cIiwgcGF0aDogUGF0aC5TZCB9LFxyXG4gIHsgbmFtZTogTG9jYWxlLlNlYXJjaENoYXQuUGFnZS5UaXRsZSwgcGF0aDogUGF0aC5TZWFyY2hDaGF0IH0sXHJcbl07XHJcblxyXG5jb25zdCBDaGF0TGlzdCA9IGR5bmFtaWMoYXN5bmMgKCkgPT4gKGF3YWl0IGltcG9ydChcIi4vY2hhdC1saXN0XCIpKS5DaGF0TGlzdCwge1xyXG4gIGxvYWRpbmc6ICgpID0+IG51bGwsXHJcbn0pO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZUhvdEtleSgpIHtcclxuICBjb25zdCBjaGF0U3RvcmUgPSB1c2VDaGF0U3RvcmUoKTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IG9uS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICAgIGlmIChlLmFsdEtleSB8fCBlLmN0cmxLZXkpIHtcclxuICAgICAgICBpZiAoZS5rZXkgPT09IFwiQXJyb3dVcFwiKSB7XHJcbiAgICAgICAgICBjaGF0U3RvcmUubmV4dFNlc3Npb24oLTEpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09IFwiQXJyb3dEb3duXCIpIHtcclxuICAgICAgICAgIGNoYXRTdG9yZS5uZXh0U2Vzc2lvbigxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIG9uS2V5RG93bik7XHJcbiAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIG9uS2V5RG93bik7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB1c2VEcmFnU2lkZUJhcigpIHtcclxuICBjb25zdCBsaW1pdCA9ICh4OiBudW1iZXIpID0+IE1hdGgubWluKE1BWF9TSURFQkFSX1dJRFRILCB4KTtcclxuXHJcbiAgY29uc3QgY29uZmlnID0gdXNlQXBwQ29uZmlnKCk7XHJcbiAgY29uc3Qgc3RhcnRYID0gdXNlUmVmKDApO1xyXG4gIGNvbnN0IHN0YXJ0RHJhZ1dpZHRoID0gdXNlUmVmKGNvbmZpZy5zaWRlYmFyV2lkdGggPz8gREVGQVVMVF9TSURFQkFSX1dJRFRIKTtcclxuICBjb25zdCBsYXN0VXBkYXRlVGltZSA9IHVzZVJlZihEYXRlLm5vdygpKTtcclxuXHJcbiAgY29uc3QgdG9nZ2xlU2lkZUJhciA9ICgpID0+IHtcclxuICAgIGNvbmZpZy51cGRhdGUoKGNvbmZpZykgPT4ge1xyXG4gICAgICBpZiAoY29uZmlnLnNpZGViYXJXaWR0aCA8IE1JTl9TSURFQkFSX1dJRFRIKSB7XHJcbiAgICAgICAgY29uZmlnLnNpZGViYXJXaWR0aCA9IERFRkFVTFRfU0lERUJBUl9XSURUSDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25maWcuc2lkZWJhcldpZHRoID0gTkFSUk9XX1NJREVCQVJfV0lEVEg7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0ID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgIC8vIFJlbWVtYmVycyB0aGUgaW5pdGlhbCB3aWR0aCBlYWNoIHRpbWUgdGhlIG1vdXNlIGlzIHByZXNzZWRcclxuICAgIHN0YXJ0WC5jdXJyZW50ID0gZS5jbGllbnRYO1xyXG4gICAgc3RhcnREcmFnV2lkdGguY3VycmVudCA9IGNvbmZpZy5zaWRlYmFyV2lkdGg7XHJcbiAgICBjb25zdCBkcmFnU3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcclxuXHJcbiAgICBjb25zdCBoYW5kbGVEcmFnTW92ZSA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XHJcbiAgICAgIGlmIChEYXRlLm5vdygpIDwgbGFzdFVwZGF0ZVRpbWUuY3VycmVudCArIDIwKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGxhc3RVcGRhdGVUaW1lLmN1cnJlbnQgPSBEYXRlLm5vdygpO1xyXG4gICAgICBjb25zdCBkID0gZS5jbGllbnRYIC0gc3RhcnRYLmN1cnJlbnQ7XHJcbiAgICAgIGNvbnN0IG5leHRXaWR0aCA9IGxpbWl0KHN0YXJ0RHJhZ1dpZHRoLmN1cnJlbnQgKyBkKTtcclxuICAgICAgY29uZmlnLnVwZGF0ZSgoY29uZmlnKSA9PiB7XHJcbiAgICAgICAgaWYgKG5leHRXaWR0aCA8IE1JTl9TSURFQkFSX1dJRFRIKSB7XHJcbiAgICAgICAgICBjb25maWcuc2lkZWJhcldpZHRoID0gTkFSUk9XX1NJREVCQVJfV0lEVEg7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbmZpZy5zaWRlYmFyV2lkdGggPSBuZXh0V2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgaGFuZGxlRHJhZ0VuZCA9ICgpID0+IHtcclxuICAgICAgLy8gSW4gdXNlUmVmIHRoZSBkYXRhIGlzIG5vbi1yZXNwb25zaXZlLCBzbyBgY29uZmlnLnNpZGViYXJXaWR0aGAgY2FuJ3QgZ2V0IHRoZSBkeW5hbWljIHNpZGViYXJXaWR0aFxyXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJtb3ZlXCIsIGhhbmRsZURyYWdNb3ZlKTtcclxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVydXBcIiwgaGFuZGxlRHJhZ0VuZCk7XHJcblxyXG4gICAgICAvLyBpZiB1c2VyIGNsaWNrIHRoZSBkcmFnIGljb24sIHNob3VsZCB0b2dnbGUgdGhlIHNpZGViYXJcclxuICAgICAgY29uc3Qgc2hvdWxkRmlyZUNsaWNrID0gRGF0ZS5ub3coKSAtIGRyYWdTdGFydFRpbWUgPCAzMDA7XHJcbiAgICAgIGlmIChzaG91bGRGaXJlQ2xpY2spIHtcclxuICAgICAgICB0b2dnbGVTaWRlQmFyKCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVybW92ZVwiLCBoYW5kbGVEcmFnTW92ZSk7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJ1cFwiLCBoYW5kbGVEcmFnRW5kKTtcclxuICB9O1xyXG5cclxuICBjb25zdCBpc01vYmlsZVNjcmVlbiA9IHVzZU1vYmlsZVNjcmVlbigpO1xyXG4gIGNvbnN0IHNob3VsZE5hcnJvdyA9XHJcbiAgICAhaXNNb2JpbGVTY3JlZW4gJiYgY29uZmlnLnNpZGViYXJXaWR0aCA8IE1JTl9TSURFQkFSX1dJRFRIO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3QgYmFyV2lkdGggPSBzaG91bGROYXJyb3dcclxuICAgICAgPyBOQVJST1dfU0lERUJBUl9XSURUSFxyXG4gICAgICA6IGxpbWl0KGNvbmZpZy5zaWRlYmFyV2lkdGggPz8gREVGQVVMVF9TSURFQkFSX1dJRFRIKTtcclxuICAgIGNvbnN0IHNpZGVCYXJXaWR0aCA9IGlzTW9iaWxlU2NyZWVuID8gXCIxMDB2d1wiIDogYCR7YmFyV2lkdGh9cHhgO1xyXG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFwiLS1zaWRlYmFyLXdpZHRoXCIsIHNpZGVCYXJXaWR0aCk7XHJcbiAgfSwgW2NvbmZpZy5zaWRlYmFyV2lkdGgsIGlzTW9iaWxlU2NyZWVuLCBzaG91bGROYXJyb3ddKTtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIG9uRHJhZ1N0YXJ0LFxyXG4gICAgc2hvdWxkTmFycm93LFxyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBTaWRlQmFyQ29udGFpbmVyKHByb3BzOiB7XHJcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcclxuICBvbkRyYWdTdGFydDogKGU6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XHJcbiAgc2hvdWxkTmFycm93OiBib29sZWFuO1xyXG4gIGNsYXNzTmFtZT86IHN0cmluZztcclxufSkge1xyXG4gIGNvbnN0IGlzTW9iaWxlU2NyZWVuID0gdXNlTW9iaWxlU2NyZWVuKCk7XHJcbiAgY29uc3QgaXNJT1NNb2JpbGUgPSB1c2VNZW1vKFxyXG4gICAgKCkgPT4gaXNJT1MoKSAmJiBpc01vYmlsZVNjcmVlbixcclxuICAgIFtpc01vYmlsZVNjcmVlbl0sXHJcbiAgKTtcclxuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIG9uRHJhZ1N0YXJ0LCBzaG91bGROYXJyb3cgfSA9IHByb3BzO1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzTmFtZT17Y2xzeChzdHlsZXMuc2lkZWJhciwgY2xhc3NOYW1lLCB7XHJcbiAgICAgICAgW3N0eWxlc1tcIm5hcnJvdy1zaWRlYmFyXCJdXTogc2hvdWxkTmFycm93LFxyXG4gICAgICB9KX1cclxuICAgICAgc3R5bGU9e3tcclxuICAgICAgICAvLyAjMzAxNiBkaXNhYmxlIHRyYW5zaXRpb24gb24gaW9zIG1vYmlsZSBzY3JlZW5cclxuICAgICAgICB0cmFuc2l0aW9uOiBpc01vYmlsZVNjcmVlbiAmJiBpc0lPU01vYmlsZSA/IFwibm9uZVwiIDogdW5kZWZpbmVkLFxyXG4gICAgICB9fVxyXG4gICAgPlxyXG4gICAgICB7Y2hpbGRyZW59XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcInNpZGViYXItZHJhZ1wiXX1cclxuICAgICAgICBvblBvaW50ZXJEb3duPXsoZSkgPT4gb25EcmFnU3RhcnQoZSBhcyBhbnkpfVxyXG4gICAgICA+XHJcbiAgICAgICAgPERyYWdJY29uIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFNpZGVCYXJIZWFkZXIocHJvcHM6IHtcclxuICB0aXRsZT86IHN0cmluZyB8IFJlYWN0LlJlYWN0Tm9kZTtcclxuICBzdWJUaXRsZT86IHN0cmluZyB8IFJlYWN0LlJlYWN0Tm9kZTtcclxuICBsb2dvPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIHNob3VsZE5hcnJvdz86IGJvb2xlYW47XHJcbn0pIHtcclxuICBjb25zdCB7IHRpdGxlLCBzdWJUaXRsZSwgbG9nbywgY2hpbGRyZW4sIHNob3VsZE5hcnJvdyB9ID0gcHJvcHM7XHJcbiAgcmV0dXJuIChcclxuICAgIDxGcmFnbWVudD5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzTmFtZT17Y2xzeChzdHlsZXNbXCJzaWRlYmFyLWhlYWRlclwiXSwge1xyXG4gICAgICAgICAgW3N0eWxlc1tcInNpZGViYXItaGVhZGVyLW5hcnJvd1wiXV06IHNob3VsZE5hcnJvdyxcclxuICAgICAgICB9KX1cclxuICAgICAgICBkYXRhLXRhdXJpLWRyYWctcmVnaW9uXHJcbiAgICAgID5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvRnJhZ21lbnQ+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFNpZGVCYXJCb2R5KHByb3BzOiB7XHJcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcclxuICBvbkNsaWNrPzogKGU6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQsIE1vdXNlRXZlbnQ+KSA9PiB2b2lkO1xyXG59KSB7XHJcbiAgY29uc3QgeyBvbkNsaWNrLCBjaGlsZHJlbiB9ID0gcHJvcHM7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJzaWRlYmFyLWJvZHlcIl19IG9uQ2xpY2s9e29uQ2xpY2t9PlxyXG4gICAgICB7Y2hpbGRyZW59XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gU2lkZUJhclRhaWwocHJvcHM6IHtcclxuICBwcmltYXJ5QWN0aW9uPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIHNlY29uZGFyeUFjdGlvbj86IFJlYWN0LlJlYWN0Tm9kZTtcclxufSkge1xyXG4gIGNvbnN0IHsgcHJpbWFyeUFjdGlvbiwgc2Vjb25kYXJ5QWN0aW9uIH0gPSBwcm9wcztcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJzaWRlYmFyLXRhaWxcIl19PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wic2lkZWJhci1hY3Rpb25zXCJdfT57cHJpbWFyeUFjdGlvbn08L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInNpZGViYXItYWN0aW9uc1wiXX0+e3NlY29uZGFyeUFjdGlvbn08L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBTaWRlQmFyKHByb3BzOiB7IGNsYXNzTmFtZT86IHN0cmluZyB9KSB7XHJcbiAgdXNlSG90S2V5KCk7XHJcbiAgY29uc3QgeyBvbkRyYWdTdGFydCwgc2hvdWxkTmFycm93IH0gPSB1c2VEcmFnU2lkZUJhcigpO1xyXG4gIGNvbnN0IFtzaG93RGlzY292ZXJ5U2VsZWN0b3IsIHNldHNob3dEaXNjb3ZlcnlTZWxlY3Rvcl0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xyXG4gIGNvbnN0IGNvbmZpZyA9IHVzZUFwcENvbmZpZygpO1xyXG4gIGNvbnN0IGNoYXRTdG9yZSA9IHVzZUNoYXRTdG9yZSgpO1xyXG4gIGNvbnN0IFttY3BFbmFibGVkLCBzZXRNY3BFbmFibGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIC8vIOajgOafpSBNQ1Ag5piv5ZCm5ZCv55SoXHJcbiAgICBjb25zdCBjaGVja01jcFN0YXR1cyA9IGFzeW5jICgpID0+IHtcclxuICAgICAgY29uc3QgZW5hYmxlZCA9IGF3YWl0IGlzTWNwRW5hYmxlZCgpO1xyXG4gICAgICBzZXRNY3BFbmFibGVkKGVuYWJsZWQpO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIltTaWRlQmFyXSBNQ1AgZW5hYmxlZDpcIiwgZW5hYmxlZCk7XHJcbiAgICB9O1xyXG4gICAgY2hlY2tNY3BTdGF0dXMoKTtcclxuICB9LCBbXSk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8U2lkZUJhckNvbnRhaW5lclxyXG4gICAgICBvbkRyYWdTdGFydD17b25EcmFnU3RhcnR9XHJcbiAgICAgIHNob3VsZE5hcnJvdz17c2hvdWxkTmFycm93fVxyXG4gICAgICB7Li4ucHJvcHN9XHJcbiAgICA+XHJcbiAgICAgIDxTaWRlQmFySGVhZGVyXHJcbiAgICAgICAgdGl0bGU9XCJOZXh0Q2hhdFwiXHJcbiAgICAgICAgc3ViVGl0bGU9XCJCdWlsZCB5b3VyIG93biBBSSBhc3Npc3RhbnQuXCJcclxuICAgICAgICBsb2dvPXs8Q2hhdEdwdEljb24gLz59XHJcbiAgICAgICAgc2hvdWxkTmFycm93PXtzaG91bGROYXJyb3d9XHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wic2lkZWJhci1oZWFkZXItYmFyXCJdfT5cclxuICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgaWNvbj17PEFkZEljb24gLz59XHJcbiAgICAgICAgICAgICAgdGV4dD17c2hvdWxkTmFycm93ID8gdW5kZWZpbmVkIDogTG9jYWxlLkhvbWUuTmV3Q2hhdH1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcInNpZGViYXItYmFyLWJ1dHRvblwiXX1cclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29uZmlnLmRvbnRTaG93TWFza1NwbGFzaFNjcmVlbikge1xyXG4gICAgICAgICAgICAgICAgICBjaGF0U3RvcmUubmV3U2Vzc2lvbigpO1xyXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZShQYXRoLkNoYXQpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgbmF2aWdhdGUoUGF0aC5OZXdDaGF0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIHNoYWRvd1xyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB7c2hvd0Rpc2NvdmVyeVNlbGVjdG9yICYmIChcclxuICAgICAgICAgIDxTZWxlY3RvclxyXG4gICAgICAgICAgICBpdGVtcz17W1xyXG4gICAgICAgICAgICAgIC4uLkRJU0NPVkVSWS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBpdGVtLnBhdGgsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBdfVxyXG4gICAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRzaG93RGlzY292ZXJ5U2VsZWN0b3IoZmFsc2UpfVxyXG4gICAgICAgICAgICBvblNlbGVjdGlvbj17KHMpID0+IHtcclxuICAgICAgICAgICAgICBuYXZpZ2F0ZShzWzBdLCB7IHN0YXRlOiB7IGZyb21Ib21lOiB0cnVlIH0gfSk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICl9XHJcbiAgICAgIDwvU2lkZUJhckhlYWRlcj5cclxuICAgICAgPFNpZGVCYXJCb2R5XHJcbiAgICAgICAgb25DbGljaz17KGUpID0+IHtcclxuICAgICAgICAgIGlmIChlLnRhcmdldCA9PT0gZS5jdXJyZW50VGFyZ2V0KSB7XHJcbiAgICAgICAgICAgIG5hdmlnYXRlKFBhdGguSG9tZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIDxDaGF0TGlzdCBuYXJyb3c9e3Nob3VsZE5hcnJvd30gLz5cclxuICAgICAgPC9TaWRlQmFyQm9keT5cclxuICAgICAgPFNpZGVCYXJUYWlsXHJcbiAgICAgICAgcHJpbWFyeUFjdGlvbj17XHJcbiAgICAgICAgICA8PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzeChzdHlsZXNbXCJzaWRlYmFyLWFjdGlvblwiXSwgc3R5bGVzLm1vYmlsZSl9PlxyXG4gICAgICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgICBpY29uPXs8RGVsZXRlSWNvbiAvPn1cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2FzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKGF3YWl0IHNob3dDb25maXJtKExvY2FsZS5Ib21lLkRlbGV0ZUNoYXQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhdFN0b3JlLmRlbGV0ZVNlc3Npb24oY2hhdFN0b3JlLmN1cnJlbnRTZXNzaW9uSW5kZXgpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wic2lkZWJhci1hY3Rpb25cIl19PlxyXG4gICAgICAgICAgICAgIDxMaW5rIHRvPXtQYXRoLlNldHRpbmdzfT5cclxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIGFyaWE9e0xvY2FsZS5TZXR0aW5ncy5UaXRsZX1cclxuICAgICAgICAgICAgICAgICAgaWNvbj17PFNldHRpbmdzSWNvbiAvPn1cclxuICAgICAgICAgICAgICAgICAgc2hhZG93XHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8Lz5cclxuICAgICAgICB9XHJcbiAgICAgICAgc2Vjb25kYXJ5QWN0aW9uPXtcclxuICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgaWNvbj17PE1hc2tJY29uIC8+fVxyXG4gICAgICAgICAgICAgIHRleHQ9e3Nob3VsZE5hcnJvdyA/IHVuZGVmaW5lZCA6IExvY2FsZS5NYXNrLk5hbWV9XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbmZpZy5kb250U2hvd01hc2tTcGxhc2hTY3JlZW4gIT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgbmF2aWdhdGUoUGF0aC5OZXdDaGF0LCB7IHN0YXRlOiB7IGZyb21Ib21lOiB0cnVlIH0gfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZShQYXRoLk1hc2tzLCB7IHN0YXRlOiB7IGZyb21Ib21lOiB0cnVlIH0gfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBzaGFkb3dcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgfVxyXG4gICAgICAvPlxyXG4gICAgPC9TaWRlQmFyQ29udGFpbmVyPlxyXG4gICk7XHJcbn1cclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiRnJhZ21lbnQiLCJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJzdHlsZXMiLCJJY29uQnV0dG9uIiwiU2V0dGluZ3NJY29uIiwiQ2hhdEdwdEljb24iLCJBZGRJY29uIiwiRGVsZXRlSWNvbiIsIk1hc2tJY29uIiwiRHJhZ0ljb24iLCJMb2NhbGUiLCJ1c2VBcHBDb25maWciLCJ1c2VDaGF0U3RvcmUiLCJERUZBVUxUX1NJREVCQVJfV0lEVEgiLCJNQVhfU0lERUJBUl9XSURUSCIsIk1JTl9TSURFQkFSX1dJRFRIIiwiTkFSUk9XX1NJREVCQVJfV0lEVEgiLCJQYXRoIiwiTGluayIsInVzZU5hdmlnYXRlIiwiaXNJT1MiLCJ1c2VNb2JpbGVTY3JlZW4iLCJkeW5hbWljIiwiU2VsZWN0b3IiLCJzaG93Q29uZmlybSIsImNsc3giLCJpc01jcEVuYWJsZWQiLCJESVNDT1ZFUlkiLCJuYW1lIiwiUGx1Z2luIiwiTmFtZSIsInBhdGgiLCJQbHVnaW5zIiwiU2QiLCJTZWFyY2hDaGF0IiwiUGFnZSIsIlRpdGxlIiwiQ2hhdExpc3QiLCJsb2FkaW5nIiwidXNlSG90S2V5IiwiY2hhdFN0b3JlIiwib25LZXlEb3duIiwiZSIsImFsdEtleSIsImN0cmxLZXkiLCJrZXkiLCJuZXh0U2Vzc2lvbiIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwidXNlRHJhZ1NpZGVCYXIiLCJsaW1pdCIsIngiLCJNYXRoIiwibWluIiwiY29uZmlnIiwic3RhcnRYIiwic3RhcnREcmFnV2lkdGgiLCJzaWRlYmFyV2lkdGgiLCJsYXN0VXBkYXRlVGltZSIsIkRhdGUiLCJub3ciLCJ0b2dnbGVTaWRlQmFyIiwidXBkYXRlIiwib25EcmFnU3RhcnQiLCJjdXJyZW50IiwiY2xpZW50WCIsImRyYWdTdGFydFRpbWUiLCJoYW5kbGVEcmFnTW92ZSIsImQiLCJuZXh0V2lkdGgiLCJoYW5kbGVEcmFnRW5kIiwic2hvdWxkRmlyZUNsaWNrIiwiaXNNb2JpbGVTY3JlZW4iLCJzaG91bGROYXJyb3ciLCJiYXJXaWR0aCIsInNpZGVCYXJXaWR0aCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50Iiwic3R5bGUiLCJzZXRQcm9wZXJ0eSIsIlNpZGVCYXJDb250YWluZXIiLCJwcm9wcyIsImlzSU9TTW9iaWxlIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJkaXYiLCJzaWRlYmFyIiwidHJhbnNpdGlvbiIsInVuZGVmaW5lZCIsIm9uUG9pbnRlckRvd24iLCJTaWRlQmFySGVhZGVyIiwidGl0bGUiLCJzdWJUaXRsZSIsImxvZ28iLCJkYXRhLXRhdXJpLWRyYWctcmVnaW9uIiwiU2lkZUJhckJvZHkiLCJvbkNsaWNrIiwiU2lkZUJhclRhaWwiLCJwcmltYXJ5QWN0aW9uIiwic2Vjb25kYXJ5QWN0aW9uIiwiU2lkZUJhciIsInNob3dEaXNjb3ZlcnlTZWxlY3RvciIsInNldHNob3dEaXNjb3ZlcnlTZWxlY3RvciIsIm5hdmlnYXRlIiwibWNwRW5hYmxlZCIsInNldE1jcEVuYWJsZWQiLCJjaGVja01jcFN0YXR1cyIsImVuYWJsZWQiLCJjb25zb2xlIiwibG9nIiwiaWNvbiIsInRleHQiLCJIb21lIiwiTmV3Q2hhdCIsImRvbnRTaG93TWFza1NwbGFzaFNjcmVlbiIsIm5ld1Nlc3Npb24iLCJDaGF0Iiwic2hhZG93IiwiaXRlbXMiLCJtYXAiLCJpdGVtIiwidmFsdWUiLCJvbkNsb3NlIiwib25TZWxlY3Rpb24iLCJzIiwic3RhdGUiLCJmcm9tSG9tZSIsInRhcmdldCIsImN1cnJlbnRUYXJnZXQiLCJuYXJyb3ciLCJtb2JpbGUiLCJEZWxldGVDaGF0IiwiZGVsZXRlU2Vzc2lvbiIsImN1cnJlbnRTZXNzaW9uSW5kZXgiLCJ0byIsIlNldHRpbmdzIiwiYXJpYSIsIk1hc2siLCJNYXNrcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/components/sidebar.tsx\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/components/ui-lib.tsx":
|
|
|
/*!***********************************!*\
|
|
|
!*** ./app/components/ui-lib.tsx ***!
|
|
|
\***********************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Card: () => (/* binding */ Card),\n/* harmony export */ FullScreen: () => (/* binding */ FullScreen),\n/* harmony export */ Input: () => (/* binding */ Input),\n/* harmony export */ List: () => (/* binding */ List),\n/* harmony export */ ListItem: () => (/* binding */ ListItem),\n/* harmony export */ Loading: () => (/* binding */ Loading),\n/* harmony export */ Modal: () => (/* binding */ Modal),\n/* harmony export */ PasswordInput: () => (/* binding */ PasswordInput),\n/* harmony export */ Popover: () => (/* binding */ Popover),\n/* harmony export */ Select: () => (/* binding */ Select),\n/* harmony export */ Selector: () => (/* binding */ Selector),\n/* harmony export */ Toast: () => (/* binding */ Toast),\n/* harmony export */ showConfirm: () => (/* binding */ showConfirm),\n/* harmony export */ showImageModal: () => (/* binding */ showImageModal),\n/* harmony export */ showModal: () => (/* binding */ showModal),\n/* harmony export */ showPrompt: () => (/* binding */ showPrompt),\n/* harmony export */ showToast: () => (/* binding */ showToast)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./ui-lib.module.scss */ \"(ssr)/./app/components/ui-lib.module.scss\");\n/* harmony import */ var _ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var _icons_three_dots_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../icons/three-dots.svg */ \"(ssr)/./app/icons/three-dots.svg\");\n/* harmony import */ var _icons_close_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/close.svg */ \"(ssr)/./app/icons/close.svg\");\n/* harmony import */ var _icons_eye_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/eye.svg */ \"(ssr)/./app/icons/eye.svg\");\n/* harmony import */ var _icons_eye_off_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/eye-off.svg */ \"(ssr)/./app/icons/eye-off.svg\");\n/* harmony import */ var _icons_down_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../icons/down.svg */ \"(ssr)/./app/icons/down.svg\");\n/* harmony import */ var _icons_confirm_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../icons/confirm.svg */ \"(ssr)/./app/icons/confirm.svg\");\n/* harmony import */ var _icons_cancel_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../icons/cancel.svg */ \"(ssr)/./app/icons/cancel.svg\");\n/* harmony import */ var _icons_max_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../icons/max.svg */ \"(ssr)/./app/icons/max.svg\");\n/* harmony import */ var _icons_min_svg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../icons/min.svg */ \"(ssr)/./app/icons/min.svg\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../locales */ \"(ssr)/./app/locales/index.ts\");\n/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react-dom/client */ \"(ssr)/./node_modules/next/dist/compiled/react-dom/client.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var _button__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./button */ \"(ssr)/./app/components/button.tsx\");\n/* harmony import */ var _emoji__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./emoji */ \"(ssr)/./app/components/emoji.tsx\");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! clsx */ \"(ssr)/./node_modules/clsx/dist/clsx.mjs\");\n/* eslint-disable @next/next/no-img-element */ \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction Popover(props) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default().popover),\n children: [\n props.children,\n props.open && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"popover-mask\"]),\n onClick: props.onClose\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 39,\n columnNumber: 9\n }, this),\n props.open && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"popover-content\"]),\n children: props.content\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 42,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 36,\n columnNumber: 5\n }, this);\n}\nfunction Card(props) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_15__[\"default\"])((_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default().card), props.className),\n children: props.children\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 50,\n columnNumber: 5\n }, this);\n}\nfunction ListItem(props) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_15__[\"default\"])((_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"list-item\"]), {\n [(_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default().vertical)]: props.vertical\n }, props.className),\n onClick: props.onClick,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"list-header\"]),\n children: [\n props.icon && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"list-icon\"]),\n children: props.icon\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 75,\n columnNumber: 24\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"list-item-title\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: props.title\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 77,\n columnNumber: 11\n }, this),\n props.subTitle && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"list-item-sub-title\"]),\n children: props.subTitle\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 79,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 76,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 74,\n columnNumber: 7\n }, this),\n props.children\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 64,\n columnNumber: 5\n }, this);\n}\nfunction List(props) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default().list),\n id: props.id,\n children: props.children\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 92,\n columnNumber: 5\n }, this);\n}\nfunction Loading() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n height: \"100vh\",\n width: \"100vw\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_three_dots_svg__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 109,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 100,\n columnNumber: 5\n }, this);\n}\nfunction Modal(props) {\n (0,react__WEBPACK_IMPORTED_MODULE_12__.useEffect)(()=>{\n const onKeyDown = (e)=>{\n if (e.key === \"Escape\") {\n props.onClose?.();\n }\n };\n window.addEventListener(\"keydown\", onKeyDown);\n return ()=>{\n window.removeEventListener(\"keydown\", onKeyDown);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const [isMax, setMax] = (0,react__WEBPACK_IMPORTED_MODULE_12__.useState)(!!props.defaultMax);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_15__[\"default\"])((_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"modal-container\"]), {\n [(_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"modal-container-max\"])]: isMax\n }),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"modal-header\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"modal-title\"]),\n children: props.title\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 147,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"modal-header-actions\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"modal-header-action\"]),\n onClick: ()=>setMax(!isMax),\n children: isMax ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_min_svg__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 154,\n columnNumber: 22\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_max_svg__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 154,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 150,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"modal-header-action\"]),\n onClick: props.onClose,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_close_svg__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 160,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 156,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 149,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 146,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"modal-content\"]),\n children: props.children\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 165,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"modal-footer\"]),\n children: [\n props.footer,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"modal-actions\"]),\n children: props.actions?.map((action, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"modal-action\"]),\n children: action\n }, i, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 171,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 169,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 167,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 141,\n columnNumber: 5\n }, this);\n}\nfunction showModal(props) {\n const div = document.createElement(\"div\");\n div.className = \"modal-mask\";\n document.body.appendChild(div);\n const root = (0,react_dom_client__WEBPACK_IMPORTED_MODULE_11__.createRoot)(div);\n const closeModal = ()=>{\n props.onClose?.();\n root.unmount();\n div.remove();\n };\n div.onclick = (e)=>{\n if (e.target === div) {\n closeModal();\n }\n };\n root.render(/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Modal, {\n ...props,\n onClose: closeModal\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 199,\n columnNumber: 15\n }, this));\n}\nfunction Toast(props) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"toast-container\"]),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"toast-content\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: props.content\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 215,\n columnNumber: 9\n }, this),\n props.action && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n props.action?.onClick?.();\n props.onClose?.();\n },\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"toast-action\"]),\n children: props.action.text\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 217,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 214,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 213,\n columnNumber: 5\n }, this);\n}\nfunction showToast(content, action, delay = 3000) {\n const div = document.createElement(\"div\");\n div.className = (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default().show);\n document.body.appendChild(div);\n const root = (0,react_dom_client__WEBPACK_IMPORTED_MODULE_11__.createRoot)(div);\n const close = ()=>{\n div.classList.add((_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default().hide));\n setTimeout(()=>{\n root.unmount();\n div.remove();\n }, 300);\n };\n setTimeout(()=>{\n close();\n }, delay);\n root.render(/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Toast, {\n content: content,\n action: action,\n onClose: close\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 255,\n columnNumber: 15\n }, this));\n}\nfunction Input(props) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"textarea\", {\n ...props,\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_15__[\"default\"])((_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default().input), props.className)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 265,\n columnNumber: 5\n }, this);\n}\nfunction PasswordInput(props) {\n const [visible, setVisible] = (0,react__WEBPACK_IMPORTED_MODULE_12__.useState)(false);\n function changeVisibility() {\n setVisible(!visible);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"password-input-container\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_13__.IconButton, {\n aria: props.aria,\n icon: visible ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_eye_svg__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 284,\n columnNumber: 25\n }, void 0) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_eye_off_svg__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 284,\n columnNumber: 39\n }, void 0),\n onClick: changeVisibility,\n className: \"password-eye\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 282,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n ...props,\n type: visible ? \"text\" : \"password\",\n className: \"password-input\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 288,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 281,\n columnNumber: 5\n }, this);\n}\nfunction Select(props) {\n const { className, children, align, ...otherProps } = props;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_15__[\"default\"])((_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"select-with-icon\"]), {\n [(_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"left-align-option\"])]: align === \"left\"\n }, className),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"select-with-icon-select\"]),\n ...otherProps,\n children: children\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 316,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_down_svg__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"select-with-icon-icon\"])\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 319,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 307,\n columnNumber: 5\n }, this);\n}\nfunction showConfirm(content) {\n const div = document.createElement(\"div\");\n div.className = \"modal-mask\";\n document.body.appendChild(div);\n const root = (0,react_dom_client__WEBPACK_IMPORTED_MODULE_11__.createRoot)(div);\n const closeModal = ()=>{\n root.unmount();\n div.remove();\n };\n return new Promise((resolve)=>{\n root.render(/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Modal, {\n title: _locales__WEBPACK_IMPORTED_MODULE_10__[\"default\"].UI.Confirm,\n actions: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_13__.IconButton, {\n text: _locales__WEBPACK_IMPORTED_MODULE_10__[\"default\"].UI.Cancel,\n onClick: ()=>{\n resolve(false);\n closeModal();\n },\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_cancel_svg__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 347,\n columnNumber: 19\n }, void 0),\n tabIndex: 0,\n bordered: true,\n shadow: true\n }, \"cancel\", false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 340,\n columnNumber: 11\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_13__.IconButton, {\n text: _locales__WEBPACK_IMPORTED_MODULE_10__[\"default\"].UI.Confirm,\n type: \"primary\",\n onClick: ()=>{\n resolve(true);\n closeModal();\n },\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_confirm_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 360,\n columnNumber: 19\n }, void 0),\n tabIndex: 0,\n autoFocus: true,\n bordered: true,\n shadow: true\n }, \"confirm\", false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 352,\n columnNumber: 11\n }, void 0)\n ],\n onClose: closeModal,\n children: content\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 337,\n columnNumber: 7\n }, this));\n });\n}\nfunction PromptInput(props) {\n const [input, setInput] = (0,react__WEBPACK_IMPORTED_MODULE_12__.useState)(props.value);\n const onInput = (value)=>{\n props.onChange(value);\n setInput(value);\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"textarea\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"modal-input\"]),\n autoFocus: true,\n value: input,\n onInput: (e)=>onInput(e.currentTarget.value),\n rows: props.rows ?? 3\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 387,\n columnNumber: 5\n }, this);\n}\nfunction showPrompt(content, value = \"\", rows = 3) {\n const div = document.createElement(\"div\");\n div.className = \"modal-mask\";\n document.body.appendChild(div);\n const root = (0,react_dom_client__WEBPACK_IMPORTED_MODULE_11__.createRoot)(div);\n const closeModal = ()=>{\n root.unmount();\n div.remove();\n };\n return new Promise((resolve)=>{\n let userInput = value;\n root.render(/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Modal, {\n title: content,\n actions: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_13__.IconButton, {\n text: _locales__WEBPACK_IMPORTED_MODULE_10__[\"default\"].UI.Cancel,\n onClick: ()=>{\n closeModal();\n },\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_cancel_svg__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 421,\n columnNumber: 19\n }, void 0),\n bordered: true,\n shadow: true,\n tabIndex: 0\n }, \"cancel\", false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 415,\n columnNumber: 11\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_13__.IconButton, {\n text: _locales__WEBPACK_IMPORTED_MODULE_10__[\"default\"].UI.Confirm,\n type: \"primary\",\n onClick: ()=>{\n resolve(userInput);\n closeModal();\n },\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_confirm_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 434,\n columnNumber: 19\n }, void 0),\n bordered: true,\n shadow: true,\n tabIndex: 0\n }, \"confirm\", false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 426,\n columnNumber: 11\n }, void 0)\n ],\n onClose: closeModal,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(PromptInput, {\n onChange: (val)=>userInput = val,\n value: value,\n rows: rows\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 442,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 412,\n columnNumber: 7\n }, this));\n });\n}\nfunction showImageModal(img, defaultMax, style, boxStyle) {\n showModal({\n title: _locales__WEBPACK_IMPORTED_MODULE_10__[\"default\"].Export.Image.Modal,\n defaultMax: defaultMax,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\",\n justifyContent: \"center\",\n ...boxStyle\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: img,\n alt: \"preview\",\n style: style ?? {\n maxWidth: \"100%\"\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 463,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 462,\n columnNumber: 7\n }, this)\n });\n}\nfunction Selector(props) {\n const [selectedValues, setSelectedValues] = (0,react__WEBPACK_IMPORTED_MODULE_12__.useState)(Array.isArray(props.defaultSelectedValue) ? props.defaultSelectedValue : props.defaultSelectedValue !== undefined ? [\n props.defaultSelectedValue\n ] : []);\n const handleSelection = (e, value)=>{\n if (props.multiple) {\n e.stopPropagation();\n const newSelectedValues = selectedValues.includes(value) ? selectedValues.filter((v)=>v !== value) : [\n ...selectedValues,\n value\n ];\n setSelectedValues(newSelectedValues);\n props.onSelection?.(newSelectedValues);\n } else {\n setSelectedValues([\n value\n ]);\n props.onSelection?.([\n value\n ]);\n props.onClose?.();\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default().selector),\n onClick: ()=>props.onClose?.(),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"selector-content\"]),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(List, {\n children: props.items.map((item, i)=>{\n const selected = selectedValues.includes(item.value);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(ListItem, {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_15__[\"default\"])((_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"selector-item\"]), {\n [(_ui_lib_module_scss__WEBPACK_IMPORTED_MODULE_16___default()[\"selector-item-disabled\"])]: item.disable\n }),\n title: item.title,\n subTitle: item.subTitle,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_emoji__WEBPACK_IMPORTED_MODULE_14__.Avatar, {\n model: item.value\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 526,\n columnNumber: 23\n }, void 0),\n onClick: (e)=>{\n if (item.disable) {\n e.stopPropagation();\n } else {\n handleSelection(e, item.value);\n }\n },\n children: selected ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n height: 10,\n width: 10,\n backgroundColor: \"var(--primary)\",\n borderRadius: 10\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 536,\n columnNumber: 19\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {}, void 0, false)\n }, i, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 519,\n columnNumber: 15\n }, this);\n })\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 515,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 514,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 513,\n columnNumber: 5\n }, this);\n}\nfunction FullScreen(props) {\n const { children, right = 10, top = 10, ...rest } = props;\n const ref = (0,react__WEBPACK_IMPORTED_MODULE_12__.useRef)();\n const [fullScreen, setFullScreen] = (0,react__WEBPACK_IMPORTED_MODULE_12__.useState)(false);\n const toggleFullscreen = (0,react__WEBPACK_IMPORTED_MODULE_12__.useCallback)(()=>{\n if (!document.fullscreenElement) {\n ref.current?.requestFullscreen();\n } else {\n document.exitFullscreen();\n }\n }, []);\n (0,react__WEBPACK_IMPORTED_MODULE_12__.useEffect)(()=>{\n const handleScreenChange = (e)=>{\n if (e.target === ref.current) {\n setFullScreen(!!document.fullscreenElement);\n }\n };\n document.addEventListener(\"fullscreenchange\", handleScreenChange);\n return ()=>{\n document.removeEventListener(\"fullscreenchange\", handleScreenChange);\n };\n }, []);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: ref,\n style: {\n position: \"relative\"\n },\n ...rest,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n position: \"absolute\",\n right,\n top\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_13__.IconButton, {\n icon: fullScreen ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_min_svg__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 581,\n columnNumber: 30\n }, void 0) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_max_svg__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 581,\n columnNumber: 44\n }, void 0),\n onClick: toggleFullscreen,\n bordered: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 580,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 579,\n columnNumber: 7\n }, this),\n children\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\ui-lib.tsx\",\n lineNumber: 578,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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ekI7SUFDRixHQUFHLEVBQUU7SUFDTG5KLGlEQUFTQSxDQUFDO1FBQ1IsTUFBTW9KLHFCQUFxQixDQUFDaEg7WUFDMUIsSUFBSUEsRUFBRXVCLE1BQU0sS0FBS2lGLElBQUlLLE9BQU8sRUFBRTtnQkFDNUJILGNBQWMsQ0FBQyxDQUFDNUYsU0FBUzhGLGlCQUFpQjtZQUM1QztRQUNGO1FBQ0E5RixTQUFTWCxnQkFBZ0IsQ0FBQyxvQkFBb0I2RztRQUM5QyxPQUFPO1lBQ0xsRyxTQUFTVixtQkFBbUIsQ0FBQyxvQkFBb0I0RztRQUNuRDtJQUNGLEdBQUcsRUFBRTtJQUNMLHFCQUNFLDhEQUFDM0k7UUFBSW1JLEtBQUtBO1FBQUtoSCxPQUFPO1lBQUV5SCxVQUFVO1FBQVc7UUFBSSxHQUFHVixJQUFJOzswQkFDdEQsOERBQUNsSTtnQkFBSW1CLE9BQU87b0JBQUV5SCxVQUFVO29CQUFZWjtvQkFBT0M7Z0JBQUk7MEJBQzdDLDRFQUFDdEksZ0RBQVVBO29CQUNUaUIsTUFBTXdILDJCQUFhLDhEQUFDakosc0RBQU9BOzs7OytDQUFNLDhEQUFDRCxzREFBT0E7Ozs7O29CQUN6Q21CLFNBQVNpSTtvQkFDVGxELFFBQVE7Ozs7Ozs7Ozs7O1lBR1hqRjs7Ozs7OztBQUdQIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvY29tcG9uZW50cy91aS1saWIudHN4PzhhNTkiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQG5leHQvbmV4dC9uby1pbWctZWxlbWVudCAqL1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL3VpLWxpYi5tb2R1bGUuc2Nzc1wiO1xyXG5pbXBvcnQgTG9hZGluZ0ljb24gZnJvbSBcIi4uL2ljb25zL3RocmVlLWRvdHMuc3ZnXCI7XHJcbmltcG9ydCBDbG9zZUljb24gZnJvbSBcIi4uL2ljb25zL2Nsb3NlLnN2Z1wiO1xyXG5pbXBvcnQgRXllSWNvbiBmcm9tIFwiLi4vaWNvbnMvZXllLnN2Z1wiO1xyXG5pbXBvcnQgRXllT2ZmSWNvbiBmcm9tIFwiLi4vaWNvbnMvZXllLW9mZi5zdmdcIjtcclxuaW1wb3J0IERvd25JY29uIGZyb20gXCIuLi9pY29ucy9kb3duLnN2Z1wiO1xyXG5pbXBvcnQgQ29uZmlybUljb24gZnJvbSBcIi4uL2ljb25zL2NvbmZpcm0uc3ZnXCI7XHJcbmltcG9ydCBDYW5jZWxJY29uIGZyb20gXCIuLi9pY29ucy9jYW5jZWwuc3ZnXCI7XHJcbmltcG9ydCBNYXhJY29uIGZyb20gXCIuLi9pY29ucy9tYXguc3ZnXCI7XHJcbmltcG9ydCBNaW5JY29uIGZyb20gXCIuLi9pY29ucy9taW4uc3ZnXCI7XHJcblxyXG5pbXBvcnQgTG9jYWxlIGZyb20gXCIuLi9sb2NhbGVzXCI7XHJcblxyXG5pbXBvcnQgeyBjcmVhdGVSb290IH0gZnJvbSBcInJlYWN0LWRvbS9jbGllbnRcIjtcclxuaW1wb3J0IFJlYWN0LCB7XHJcbiAgQ1NTUHJvcGVydGllcyxcclxuICBIVE1MUHJvcHMsXHJcbiAgTW91c2VFdmVudCxcclxuICB1c2VFZmZlY3QsXHJcbiAgdXNlU3RhdGUsXHJcbiAgdXNlQ2FsbGJhY2ssXHJcbiAgdXNlUmVmLFxyXG59IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSBcIi4vYnV0dG9uXCI7XHJcbmltcG9ydCB7IEF2YXRhciB9IGZyb20gXCIuL2Vtb2ppXCI7XHJcbmltcG9ydCBjbHN4IGZyb20gXCJjbHN4XCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gUG9wb3Zlcihwcm9wczoge1xyXG4gIGNoaWxkcmVuOiBKU1guRWxlbWVudDtcclxuICBjb250ZW50OiBKU1guRWxlbWVudDtcclxuICBvcGVuPzogYm9vbGVhbjtcclxuICBvbkNsb3NlPzogKCkgPT4gdm9pZDtcclxufSkge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnBvcG92ZXJ9PlxyXG4gICAgICB7cHJvcHMuY2hpbGRyZW59XHJcbiAgICAgIHtwcm9wcy5vcGVuICYmIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wicG9wb3Zlci1tYXNrXCJdfSBvbkNsaWNrPXtwcm9wcy5vbkNsb3NlfT48L2Rpdj5cclxuICAgICAgKX1cclxuICAgICAge3Byb3BzLm9wZW4gJiYgKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJwb3BvdmVyLWNvbnRlbnRcIl19Pntwcm9wcy5jb250ZW50fTwvZGl2PlxyXG4gICAgICApfVxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIENhcmQocHJvcHM6IHsgY2hpbGRyZW46IEpTWC5FbGVtZW50W107IGNsYXNzTmFtZT86IHN0cmluZyB9KSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPXtjbHN4KHN0eWxlcy5jYXJkLCBwcm9wcy5jbGFzc05hbWUpfT57cHJvcHMuY2hpbGRyZW59PC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIExpc3RJdGVtKHByb3BzOiB7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgc3ViVGl0bGU/OiBzdHJpbmcgfCBKU1guRWxlbWVudDtcclxuICBjaGlsZHJlbj86IEpTWC5FbGVtZW50IHwgSlNYLkVsZW1lbnRbXTtcclxuICBpY29uPzogSlNYLkVsZW1lbnQ7XHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gIG9uQ2xpY2s/OiAoZTogTW91c2VFdmVudCkgPT4gdm9pZDtcclxuICB2ZXJ0aWNhbD86IGJvb2xlYW47XHJcbn0pIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzc05hbWU9e2Nsc3goXHJcbiAgICAgICAgc3R5bGVzW1wibGlzdC1pdGVtXCJdLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIFtzdHlsZXNbXCJ2ZXJ0aWNhbFwiXV06IHByb3BzLnZlcnRpY2FsLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcHJvcHMuY2xhc3NOYW1lLFxyXG4gICAgICApfVxyXG4gICAgICBvbkNsaWNrPXtwcm9wcy5vbkNsaWNrfVxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wibGlzdC1oZWFkZXJcIl19PlxyXG4gICAgICAgIHtwcm9wcy5pY29uICYmIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJsaXN0LWljb25cIl19Pntwcm9wcy5pY29ufTwvZGl2Pn1cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wibGlzdC1pdGVtLXRpdGxlXCJdfT5cclxuICAgICAgICAgIDxkaXY+e3Byb3BzLnRpdGxlfTwvZGl2PlxyXG4gICAgICAgICAge3Byb3BzLnN1YlRpdGxlICYmIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImxpc3QtaXRlbS1zdWItdGl0bGVcIl19PlxyXG4gICAgICAgICAgICAgIHtwcm9wcy5zdWJUaXRsZX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAge3Byb3BzLmNoaWxkcmVufVxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIExpc3QocHJvcHM6IHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTsgaWQ/OiBzdHJpbmcgfSkge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmxpc3R9IGlkPXtwcm9wcy5pZH0+XHJcbiAgICAgIHtwcm9wcy5jaGlsZHJlbn1cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBMb2FkaW5nKCkge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2XHJcbiAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgaGVpZ2h0OiBcIjEwMHZoXCIsXHJcbiAgICAgICAgd2lkdGg6IFwiMTAwdndcIixcclxuICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcclxuICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxyXG4gICAgICAgIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxyXG4gICAgICB9fVxyXG4gICAgPlxyXG4gICAgICA8TG9hZGluZ0ljb24gLz5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmludGVyZmFjZSBNb2RhbFByb3BzIHtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGNoaWxkcmVuPzogYW55O1xyXG4gIGFjdGlvbnM/OiBSZWFjdC5SZWFjdE5vZGVbXTtcclxuICBkZWZhdWx0TWF4PzogYm9vbGVhbjtcclxuICBmb290ZXI/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgb25DbG9zZT86ICgpID0+IHZvaWQ7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIE1vZGFsKHByb3BzOiBNb2RhbFByb3BzKSB7XHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IG9uS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICAgIGlmIChlLmtleSA9PT0gXCJFc2NhcGVcIikge1xyXG4gICAgICAgIHByb3BzLm9uQ2xvc2U/LigpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBvbktleURvd24pO1xyXG5cclxuICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBvbktleURvd24pO1xyXG4gICAgfTtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcclxuICB9LCBbXSk7XHJcblxyXG4gIGNvbnN0IFtpc01heCwgc2V0TWF4XSA9IHVzZVN0YXRlKCEhcHJvcHMuZGVmYXVsdE1heCk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzTmFtZT17Y2xzeChzdHlsZXNbXCJtb2RhbC1jb250YWluZXJcIl0sIHtcclxuICAgICAgICBbc3R5bGVzW1wibW9kYWwtY29udGFpbmVyLW1heFwiXV06IGlzTWF4LFxyXG4gICAgICB9KX1cclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcIm1vZGFsLWhlYWRlclwiXX0+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcIm1vZGFsLXRpdGxlXCJdfT57cHJvcHMudGl0bGV9PC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJtb2RhbC1oZWFkZXItYWN0aW9uc1wiXX0+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1wibW9kYWwtaGVhZGVyLWFjdGlvblwiXX1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0TWF4KCFpc01heCl9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtpc01heCA/IDxNaW5JY29uIC8+IDogPE1heEljb24gLz59XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJtb2RhbC1oZWFkZXItYWN0aW9uXCJdfVxyXG4gICAgICAgICAgICBvbkNsaWNrPXtwcm9wcy5vbkNsb3NlfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8Q2xvc2VJY29uIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wibW9kYWwtY29udGVudFwiXX0+e3Byb3BzLmNoaWxkcmVufTwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcIm1vZGFsLWZvb3RlclwiXX0+XHJcbiAgICAgICAge3Byb3BzLmZvb3Rlcn1cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wibW9kYWwtYWN0aW9uc1wiXX0+XHJcbiAgICAgICAgICB7cHJvcHMuYWN0aW9ucz8ubWFwKChhY3Rpb24sIGkpID0+IChcclxuICAgICAgICAgICAgPGRpdiBrZXk9e2l9IGNsYXNzTmFtZT17c3R5bGVzW1wibW9kYWwtYWN0aW9uXCJdfT5cclxuICAgICAgICAgICAgICB7YWN0aW9ufVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICkpfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzaG93TW9kYWwocHJvcHM6IE1vZGFsUHJvcHMpIHtcclxuICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gIGRpdi5jbGFzc05hbWUgPSBcIm1vZGFsLW1hc2tcIjtcclxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7XHJcblxyXG4gIGNvbnN0IHJvb3QgPSBjcmVhdGVSb290KGRpdik7XHJcbiAgY29uc3QgY2xvc2VNb2RhbCA9ICgpID0+IHtcclxuICAgIHByb3BzLm9uQ2xvc2U/LigpO1xyXG4gICAgcm9vdC51bm1vdW50KCk7XHJcbiAgICBkaXYucmVtb3ZlKCk7XHJcbiAgfTtcclxuXHJcbiAgZGl2Lm9uY2xpY2sgPSAoZSkgPT4ge1xyXG4gICAgaWYgKGUudGFyZ2V0ID09PSBkaXYpIHtcclxuICAgICAgY2xvc2VNb2RhbCgpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHJvb3QucmVuZGVyKDxNb2RhbCB7Li4ucHJvcHN9IG9uQ2xvc2U9e2Nsb3NlTW9kYWx9PjwvTW9kYWw+KTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVG9hc3RQcm9wcyA9IHtcclxuICBjb250ZW50OiBzdHJpbmc7XHJcbiAgYWN0aW9uPzoge1xyXG4gICAgdGV4dDogc3RyaW5nO1xyXG4gICAgb25DbGljazogKCkgPT4gdm9pZDtcclxuICB9O1xyXG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFRvYXN0KHByb3BzOiBUb2FzdFByb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJ0b2FzdC1jb250YWluZXJcIl19PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1widG9hc3QtY29udGVudFwiXX0+XHJcbiAgICAgICAgPHNwYW4+e3Byb3BzLmNvbnRlbnR9PC9zcGFuPlxyXG4gICAgICAgIHtwcm9wcy5hY3Rpb24gJiYgKFxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgcHJvcHMuYWN0aW9uPy5vbkNsaWNrPy4oKTtcclxuICAgICAgICAgICAgICBwcm9wcy5vbkNsb3NlPy4oKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJ0b2FzdC1hY3Rpb25cIl19XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtwcm9wcy5hY3Rpb24udGV4dH1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNob3dUb2FzdChcclxuICBjb250ZW50OiBzdHJpbmcsXHJcbiAgYWN0aW9uPzogVG9hc3RQcm9wc1tcImFjdGlvblwiXSxcclxuICBkZWxheSA9IDMwMDAsXHJcbikge1xyXG4gIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcbiAgZGl2LmNsYXNzTmFtZSA9IHN0eWxlcy5zaG93O1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTtcclxuXHJcbiAgY29uc3Qgcm9vdCA9IGNyZWF0ZVJvb3QoZGl2KTtcclxuICBjb25zdCBjbG9zZSA9ICgpID0+IHtcclxuICAgIGRpdi5jbGFzc0xpc3QuYWRkKHN0eWxlcy5oaWRlKTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgcm9vdC51bm1vdW50KCk7XHJcbiAgICAgIGRpdi5yZW1vdmUoKTtcclxuICAgIH0sIDMwMCk7XHJcbiAgfTtcclxuXHJcbiAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICBjbG9zZSgpO1xyXG4gIH0sIGRlbGF5KTtcclxuXHJcbiAgcm9vdC5yZW5kZXIoPFRvYXN0IGNvbnRlbnQ9e2NvbnRlbnR9IGFjdGlvbj17YWN0aW9ufSBvbkNsb3NlPXtjbG9zZX0gLz4pO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJbnB1dFByb3BzID0gUmVhY3QuSFRNTFByb3BzPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ICYge1xyXG4gIGF1dG9IZWlnaHQ/OiBib29sZWFuO1xyXG4gIHJvd3M/OiBudW1iZXI7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gSW5wdXQocHJvcHM6IElucHV0UHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPHRleHRhcmVhXHJcbiAgICAgIHsuLi5wcm9wc31cclxuICAgICAgY2xhc3NOYW1lPXtjbHN4KHN0eWxlc1tcImlucHV0XCJdLCBwcm9wcy5jbGFzc05hbWUpfVxyXG4gICAgPjwvdGV4dGFyZWE+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFBhc3N3b3JkSW5wdXQoXHJcbiAgcHJvcHM6IEhUTUxQcm9wczxIVE1MSW5wdXRFbGVtZW50PiAmIHsgYXJpYT86IHN0cmluZyB9LFxyXG4pIHtcclxuICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgZnVuY3Rpb24gY2hhbmdlVmlzaWJpbGl0eSgpIHtcclxuICAgIHNldFZpc2libGUoIXZpc2libGUpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPXtcInBhc3N3b3JkLWlucHV0LWNvbnRhaW5lclwifT5cclxuICAgICAgPEljb25CdXR0b25cclxuICAgICAgICBhcmlhPXtwcm9wcy5hcmlhfVxyXG4gICAgICAgIGljb249e3Zpc2libGUgPyA8RXllSWNvbiAvPiA6IDxFeWVPZmZJY29uIC8+fVxyXG4gICAgICAgIG9uQ2xpY2s9e2NoYW5nZVZpc2liaWxpdHl9XHJcbiAgICAgICAgY2xhc3NOYW1lPXtcInBhc3N3b3JkLWV5ZVwifVxyXG4gICAgICAvPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgdHlwZT17dmlzaWJsZSA/IFwidGV4dFwiIDogXCJwYXNzd29yZFwifVxyXG4gICAgICAgIGNsYXNzTmFtZT17XCJwYXNzd29yZC1pbnB1dFwifVxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdChcclxuICBwcm9wczogUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8XHJcbiAgICBSZWFjdC5TZWxlY3RIVE1MQXR0cmlidXRlczxIVE1MU2VsZWN0RWxlbWVudD4gJiB7XHJcbiAgICAgIGFsaWduPzogXCJsZWZ0XCIgfCBcImNlbnRlclwiO1xyXG4gICAgfSxcclxuICAgIEhUTUxTZWxlY3RFbGVtZW50XHJcbiAgPixcclxuKSB7XHJcbiAgY29uc3QgeyBjbGFzc05hbWUsIGNoaWxkcmVuLCBhbGlnbiwgLi4ub3RoZXJQcm9wcyB9ID0gcHJvcHM7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXZcclxuICAgICAgY2xhc3NOYW1lPXtjbHN4KFxyXG4gICAgICAgIHN0eWxlc1tcInNlbGVjdC13aXRoLWljb25cIl0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgW3N0eWxlc1tcImxlZnQtYWxpZ24tb3B0aW9uXCJdXTogYWxpZ24gPT09IFwibGVmdFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY2xhc3NOYW1lLFxyXG4gICAgICApfVxyXG4gICAgPlxyXG4gICAgICA8c2VsZWN0IGNsYXNzTmFtZT17c3R5bGVzW1wic2VsZWN0LXdpdGgtaWNvbi1zZWxlY3RcIl19IHsuLi5vdGhlclByb3BzfT5cclxuICAgICAgICB7Y2hpbGRyZW59XHJcbiAgICAgIDwvc2VsZWN0PlxyXG4gICAgICA8RG93bkljb24gY2xhc3NOYW1lPXtzdHlsZXNbXCJzZWxlY3Qtd2l0aC1pY29uLWljb25cIl19IC8+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2hvd0NvbmZpcm0oY29udGVudDogYW55KSB7XHJcbiAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICBkaXYuY2xhc3NOYW1lID0gXCJtb2RhbC1tYXNrXCI7XHJcbiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpO1xyXG5cclxuICBjb25zdCByb290ID0gY3JlYXRlUm9vdChkaXYpO1xyXG4gIGNvbnN0IGNsb3NlTW9kYWwgPSAoKSA9PiB7XHJcbiAgICByb290LnVubW91bnQoKTtcclxuICAgIGRpdi5yZW1vdmUoKTtcclxuICB9O1xyXG5cclxuICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmUpID0+IHtcclxuICAgIHJvb3QucmVuZGVyKFxyXG4gICAgICA8TW9kYWxcclxuICAgICAgICB0aXRsZT17TG9jYWxlLlVJLkNvbmZpcm19XHJcbiAgICAgICAgYWN0aW9ucz17W1xyXG4gICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAga2V5PVwiY2FuY2VsXCJcclxuICAgICAgICAgICAgdGV4dD17TG9jYWxlLlVJLkNhbmNlbH1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIGNsb3NlTW9kYWwoKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgaWNvbj17PENhbmNlbEljb24gLz59XHJcbiAgICAgICAgICAgIHRhYkluZGV4PXswfVxyXG4gICAgICAgICAgICBib3JkZXJlZFxyXG4gICAgICAgICAgICBzaGFkb3dcclxuICAgICAgICAgID48L0ljb25CdXR0b24+LFxyXG4gICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAga2V5PVwiY29uZmlybVwiXHJcbiAgICAgICAgICAgIHRleHQ9e0xvY2FsZS5VSS5Db25maXJtfVxyXG4gICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgICAgICAgIGNsb3NlTW9kYWwoKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgaWNvbj17PENvbmZpcm1JY29uIC8+fVxyXG4gICAgICAgICAgICB0YWJJbmRleD17MH1cclxuICAgICAgICAgICAgYXV0b0ZvY3VzXHJcbiAgICAgICAgICAgIGJvcmRlcmVkXHJcbiAgICAgICAgICAgIHNoYWRvd1xyXG4gICAgICAgICAgPjwvSWNvbkJ1dHRvbj4sXHJcbiAgICAgICAgXX1cclxuICAgICAgICBvbkNsb3NlPXtjbG9zZU1vZGFsfVxyXG4gICAgICA+XHJcbiAgICAgICAge2NvbnRlbnR9XHJcbiAgICAgIDwvTW9kYWw+LFxyXG4gICAgKTtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gUHJvbXB0SW5wdXQocHJvcHM6IHtcclxuICB2YWx1ZTogc3RyaW5nO1xyXG4gIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcclxuICByb3dzPzogbnVtYmVyO1xyXG59KSB7XHJcbiAgY29uc3QgW2lucHV0LCBzZXRJbnB1dF0gPSB1c2VTdGF0ZShwcm9wcy52YWx1ZSk7XHJcbiAgY29uc3Qgb25JbnB1dCA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XHJcbiAgICBwcm9wcy5vbkNoYW5nZSh2YWx1ZSk7XHJcbiAgICBzZXRJbnB1dCh2YWx1ZSk7XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDx0ZXh0YXJlYVxyXG4gICAgICBjbGFzc05hbWU9e3N0eWxlc1tcIm1vZGFsLWlucHV0XCJdfVxyXG4gICAgICBhdXRvRm9jdXNcclxuICAgICAgdmFsdWU9e2lucHV0fVxyXG4gICAgICBvbklucHV0PXsoZSkgPT4gb25JbnB1dChlLmN1cnJlbnRUYXJnZXQudmFsdWUpfVxyXG4gICAgICByb3dzPXtwcm9wcy5yb3dzID8/IDN9XHJcbiAgICA+PC90ZXh0YXJlYT5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2hvd1Byb21wdChjb250ZW50OiBhbnksIHZhbHVlID0gXCJcIiwgcm93cyA9IDMpIHtcclxuICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gIGRpdi5jbGFzc05hbWUgPSBcIm1vZGFsLW1hc2tcIjtcclxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7XHJcblxyXG4gIGNvbnN0IHJvb3QgPSBjcmVhdGVSb290KGRpdik7XHJcbiAgY29uc3QgY2xvc2VNb2RhbCA9ICgpID0+IHtcclxuICAgIHJvb3QudW5tb3VudCgpO1xyXG4gICAgZGl2LnJlbW92ZSgpO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlKSA9PiB7XHJcbiAgICBsZXQgdXNlcklucHV0ID0gdmFsdWU7XHJcblxyXG4gICAgcm9vdC5yZW5kZXIoXHJcbiAgICAgIDxNb2RhbFxyXG4gICAgICAgIHRpdGxlPXtjb250ZW50fVxyXG4gICAgICAgIGFjdGlvbnM9e1tcclxuICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgIGtleT1cImNhbmNlbFwiXHJcbiAgICAgICAgICAgIHRleHQ9e0xvY2FsZS5VSS5DYW5jZWx9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICBjbG9zZU1vZGFsKCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGljb249ezxDYW5jZWxJY29uIC8+fVxyXG4gICAgICAgICAgICBib3JkZXJlZFxyXG4gICAgICAgICAgICBzaGFkb3dcclxuICAgICAgICAgICAgdGFiSW5kZXg9ezB9XHJcbiAgICAgICAgICA+PC9JY29uQnV0dG9uPixcclxuICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgIGtleT1cImNvbmZpcm1cIlxyXG4gICAgICAgICAgICB0ZXh0PXtMb2NhbGUuVUkuQ29uZmlybX1cclxuICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmVzb2x2ZSh1c2VySW5wdXQpO1xyXG4gICAgICAgICAgICAgIGNsb3NlTW9kYWwoKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgaWNvbj17PENvbmZpcm1JY29uIC8+fVxyXG4gICAgICAgICAgICBib3JkZXJlZFxyXG4gICAgICAgICAgICBzaGFkb3dcclxuICAgICAgICAgICAgdGFiSW5kZXg9ezB9XHJcbiAgICAgICAgICA+PC9JY29uQnV0dG9uPixcclxuICAgICAgICBdfVxyXG4gICAgICAgIG9uQ2xvc2U9e2Nsb3NlTW9kYWx9XHJcbiAgICAgID5cclxuICAgICAgICA8UHJvbXB0SW5wdXRcclxuICAgICAgICAgIG9uQ2hhbmdlPXsodmFsKSA9PiAodXNlcklucHV0ID0gdmFsKX1cclxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cclxuICAgICAgICAgIHJvd3M9e3Jvd3N9XHJcbiAgICAgICAgPjwvUHJvbXB0SW5wdXQ+XHJcbiAgICAgIDwvTW9kYWw+LFxyXG4gICAgKTtcclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNob3dJbWFnZU1vZGFsKFxyXG4gIGltZzogc3RyaW5nLFxyXG4gIGRlZmF1bHRNYXg/OiBib29sZWFuLFxyXG4gIHN0eWxlPzogQ1NTUHJvcGVydGllcyxcclxuICBib3hTdHlsZT86IENTU1Byb3BlcnRpZXMsXHJcbikge1xyXG4gIHNob3dNb2RhbCh7XHJcbiAgICB0aXRsZTogTG9jYWxlLkV4cG9ydC5JbWFnZS5Nb2RhbCxcclxuICAgIGRlZmF1bHRNYXg6IGRlZmF1bHRNYXgsXHJcbiAgICBjaGlsZHJlbjogKFxyXG4gICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6IFwiZmxleFwiLCBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIiwgLi4uYm94U3R5bGUgfX0+XHJcbiAgICAgICAgPGltZ1xyXG4gICAgICAgICAgc3JjPXtpbWd9XHJcbiAgICAgICAgICBhbHQ9XCJwcmV2aWV3XCJcclxuICAgICAgICAgIHN0eWxlPXtcclxuICAgICAgICAgICAgc3R5bGUgPz8ge1xyXG4gICAgICAgICAgICAgIG1heFdpZHRoOiBcIjEwMCVcIixcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2ltZz5cclxuICAgICAgPC9kaXY+XHJcbiAgICApLFxyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gU2VsZWN0b3I8VD4ocHJvcHM6IHtcclxuICBpdGVtczogQXJyYXk8e1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIHN1YlRpdGxlPzogc3RyaW5nO1xyXG4gICAgdmFsdWU6IFQ7XHJcbiAgICBkaXNhYmxlPzogYm9vbGVhbjtcclxuICB9PjtcclxuICBkZWZhdWx0U2VsZWN0ZWRWYWx1ZT86IFRbXSB8IFQ7XHJcbiAgb25TZWxlY3Rpb24/OiAoc2VsZWN0aW9uOiBUW10pID0+IHZvaWQ7XHJcbiAgb25DbG9zZT86ICgpID0+IHZvaWQ7XHJcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xyXG59KSB7XHJcbiAgY29uc3QgW3NlbGVjdGVkVmFsdWVzLCBzZXRTZWxlY3RlZFZhbHVlc10gPSB1c2VTdGF0ZTxUW10+KFxyXG4gICAgQXJyYXkuaXNBcnJheShwcm9wcy5kZWZhdWx0U2VsZWN0ZWRWYWx1ZSlcclxuICAgICAgPyBwcm9wcy5kZWZhdWx0U2VsZWN0ZWRWYWx1ZVxyXG4gICAgICA6IHByb3BzLmRlZmF1bHRTZWxlY3RlZFZhbHVlICE9PSB1bmRlZmluZWRcclxuICAgICAgPyBbcHJvcHMuZGVmYXVsdFNlbGVjdGVkVmFsdWVdXHJcbiAgICAgIDogW10sXHJcbiAgKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlU2VsZWN0aW9uID0gKGU6IE1vdXNlRXZlbnQsIHZhbHVlOiBUKSA9PiB7XHJcbiAgICBpZiAocHJvcHMubXVsdGlwbGUpIHtcclxuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgY29uc3QgbmV3U2VsZWN0ZWRWYWx1ZXMgPSBzZWxlY3RlZFZhbHVlcy5pbmNsdWRlcyh2YWx1ZSlcclxuICAgICAgICA/IHNlbGVjdGVkVmFsdWVzLmZpbHRlcigodikgPT4gdiAhPT0gdmFsdWUpXHJcbiAgICAgICAgOiBbLi4uc2VsZWN0ZWRWYWx1ZXMsIHZhbHVlXTtcclxuICAgICAgc2V0U2VsZWN0ZWRWYWx1ZXMobmV3U2VsZWN0ZWRWYWx1ZXMpO1xyXG4gICAgICBwcm9wcy5vblNlbGVjdGlvbj8uKG5ld1NlbGVjdGVkVmFsdWVzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNldFNlbGVjdGVkVmFsdWVzKFt2YWx1ZV0pO1xyXG4gICAgICBwcm9wcy5vblNlbGVjdGlvbj8uKFt2YWx1ZV0pO1xyXG4gICAgICBwcm9wcy5vbkNsb3NlPy4oKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInNlbGVjdG9yXCJdfSBvbkNsaWNrPXsoKSA9PiBwcm9wcy5vbkNsb3NlPy4oKX0+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJzZWxlY3Rvci1jb250ZW50XCJdfT5cclxuICAgICAgICA8TGlzdD5cclxuICAgICAgICAgIHtwcm9wcy5pdGVtcy5tYXAoKGl0ZW0sIGkpID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBzZWxlY3RlZFZhbHVlcy5pbmNsdWRlcyhpdGVtLnZhbHVlKTtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8TGlzdEl0ZW1cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzeChzdHlsZXNbXCJzZWxlY3Rvci1pdGVtXCJdLCB7XHJcbiAgICAgICAgICAgICAgICAgIFtzdHlsZXNbXCJzZWxlY3Rvci1pdGVtLWRpc2FibGVkXCJdXTogaXRlbS5kaXNhYmxlLFxyXG4gICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICBrZXk9e2l9XHJcbiAgICAgICAgICAgICAgICB0aXRsZT17aXRlbS50aXRsZX1cclxuICAgICAgICAgICAgICAgIHN1YlRpdGxlPXtpdGVtLnN1YlRpdGxlfVxyXG4gICAgICAgICAgICAgICAgaWNvbj17PEF2YXRhciBtb2RlbD17aXRlbS52YWx1ZSBhcyBzdHJpbmd9IC8+fVxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uZGlzYWJsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0aW9uKGUsIGl0ZW0udmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHtzZWxlY3RlZCA/IChcclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcInZhcigtLXByaW1hcnkpXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDEwLFxyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgIDw+PC8+XHJcbiAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9KX1cclxuICAgICAgICA8L0xpc3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gRnVsbFNjcmVlbihwcm9wczogYW55KSB7XHJcbiAgY29uc3QgeyBjaGlsZHJlbiwgcmlnaHQgPSAxMCwgdG9wID0gMTAsIC4uLnJlc3QgfSA9IHByb3BzO1xyXG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcclxuICBjb25zdCBbZnVsbFNjcmVlbiwgc2V0RnVsbFNjcmVlbl0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgY29uc3QgdG9nZ2xlRnVsbHNjcmVlbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcclxuICAgIGlmICghZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQpIHtcclxuICAgICAgcmVmLmN1cnJlbnQ/LnJlcXVlc3RGdWxsc2NyZWVuKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkb2N1bWVudC5leGl0RnVsbHNjcmVlbigpO1xyXG4gICAgfVxyXG4gIH0sIFtdKTtcclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3QgaGFuZGxlU2NyZWVuQ2hhbmdlID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZS50YXJnZXQgPT09IHJlZi5jdXJyZW50KSB7XHJcbiAgICAgICAgc2V0RnVsbFNjcmVlbighIWRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJmdWxsc2NyZWVuY2hhbmdlXCIsIGhhbmRsZVNjcmVlbkNoYW5nZSk7XHJcbiAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiZnVsbHNjcmVlbmNoYW5nZVwiLCBoYW5kbGVTY3JlZW5DaGFuZ2UpO1xyXG4gICAgfTtcclxuICB9LCBbXSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgcmVmPXtyZWZ9IHN0eWxlPXt7IHBvc2l0aW9uOiBcInJlbGF0aXZlXCIgfX0gey4uLnJlc3R9PlxyXG4gICAgICA8ZGl2IHN0eWxlPXt7IHBvc2l0aW9uOiBcImFic29sdXRlXCIsIHJpZ2h0LCB0b3AgfX0+XHJcbiAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgIGljb249e2Z1bGxTY3JlZW4gPyA8TWluSWNvbiAvPiA6IDxNYXhJY29uIC8+fVxyXG4gICAgICAgICAgb25DbGljaz17dG9nZ2xlRnVsbHNjcmVlbn1cclxuICAgICAgICAgIGJvcmRlcmVkXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuIl0sIm5hbWVzIjpbInN0eWxlcyIsIkxvYWRpbmdJY29uIiwiQ2xvc2VJY29uIiwiRXllSWNvbiIsIkV5ZU9mZkljb24iLCJEb3duSWNvbiIsIkNvbmZpcm1JY29uIiwiQ2FuY2VsSWNvbiIsIk1heEljb24iLCJNaW5JY29uIiwiTG9jYWxlIiwiY3JlYXRlUm9vdCIsIlJlYWN0IiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJ1c2VDYWxsYmFjayIsInVzZVJlZiIsIkljb25CdXR0b24iLCJBdmF0YXIiLCJjbHN4IiwiUG9wb3ZlciIsInByb3BzIiwiZGl2IiwiY2xhc3NOYW1lIiwicG9wb3ZlciIsImNoaWxkcmVuIiwib3BlbiIsIm9uQ2xpY2siLCJvbkNsb3NlIiwiY29udGVudCIsIkNhcmQiLCJjYXJkIiwiTGlzdEl0ZW0iLCJ2ZXJ0aWNhbCIsImljb24iLCJ0aXRsZSIsInN1YlRpdGxlIiwiTGlzdCIsImxpc3QiLCJpZCIsIkxvYWRpbmciLCJzdHlsZSIsImhlaWdodCIsIndpZHRoIiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsIk1vZGFsIiwib25LZXlEb3duIiwiZSIsImtleSIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaXNNYXgiLCJzZXRNYXgiLCJkZWZhdWx0TWF4IiwiZm9vdGVyIiwiYWN0aW9ucyIsIm1hcCIsImFjdGlvbiIsImkiLCJzaG93TW9kYWwiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJyb290IiwiY2xvc2VNb2RhbCIsInVubW91bnQiLCJyZW1vdmUiLCJvbmNsaWNrIiwidGFyZ2V0IiwicmVuZGVyIiwiVG9hc3QiLCJzcGFuIiwiYnV0dG9uIiwidGV4dCIsInNob3dUb2FzdCIsImRlbGF5Iiwic2hvdyIsImNsb3NlIiwiY2xhc3NMaXN0IiwiYWRkIiwiaGlkZSIsInNldFRpbWVvdXQiLCJJbnB1dCIsInRleHRhcmVhIiwiUGFzc3dvcmRJbnB1dCIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwiY2hhbmdlVmlzaWJpbGl0eSIsImFyaWEiLCJpbnB1dCIsInR5cGUiLCJTZWxlY3QiLCJhbGlnbiIsIm90aGVyUHJvcHMiLCJzZWxlY3QiLCJzaG93Q29uZmlybSIsIlByb21pc2UiLCJyZXNvbHZlIiwiVUkiLCJDb25maXJtIiwiQ2FuY2VsIiwidGFiSW5kZXgiLCJib3JkZXJlZCIsInNoYWRvdyIsImF1dG9Gb2N1cyIsIlByb21wdElucHV0Iiwic2V0SW5wdXQiLCJ2YWx1ZSIsIm9uSW5wdXQiLCJvbkNoYW5nZSIsImN1cnJlbnRUYXJnZXQiLCJyb3dzIiwic2hvd1Byb21wdCIsInVzZXJJbnB1dCIsInZhbCIsInNob3dJbWFnZU1vZGFsIiwiaW1nIiwiYm94U3R5bGUiLCJFeHBvcnQiLCJJbWFnZSIsInNyYyIsImFsdCIsIm1heFdpZHRoIiwiU2VsZWN0b3IiLCJzZWxlY3RlZFZhbHVlcyIsInNldFNlbGVjdGVkVmFsdWVzIiwiQXJyYXkiLCJpc0FycmF5IiwiZGVmYXVsdFNlbGVjdGVkVmFsdWUiLCJ1bmRlZmluZWQiLCJoYW5kbGVTZWxlY3Rpb24iLCJtdWx0aXBsZSIsInN0b3BQcm9wYWdhdGlvbiIsIm5ld1NlbGVjdGVkVmFsdWVzIiwiaW5jbHVkZXMiLCJmaWx0ZXIiLCJ2Iiwib25TZWxlY3Rpb24iLCJpdGVtcyIsIml0ZW0iLCJzZWxlY3RlZCIsImRpc2FibGUiLCJtb2RlbCIsImJhY2tncm91bmRDb2xvciIsImJvcmRlclJhZGl1cyIsIkZ1bGxTY3JlZW4iLCJyaWdodCIsInRvcCIsInJlc3QiLCJyZWYiLCJmdWxsU2NyZWVuIiwic2V0RnVsbFNjcmVlbiIsInRvZ2dsZUZ1bGxzY3JlZW4iLCJmdWxsc2NyZWVuRWxlbWVudCIsImN1cnJlbnQiLCJyZXF1ZXN0RnVsbHNjcmVlbiIsImV4aXRGdWxsc2NyZWVuIiwiaGFuZGxlU2NyZWVuQ2hhbmdlIiwicG9zaXRpb24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/components/ui-lib.tsx\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/config/build.ts":
|
|
|
/*!*****************************!*\
|
|
|
!*** ./app/config/build.ts ***!
|
|
|
\*****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getBuildConfig: () => (/* binding */ getBuildConfig)\n/* harmony export */ });\n/* harmony import */ var _src_tauri_tauri_conf_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../src-tauri/tauri.conf.json */ \"(ssr)/./src-tauri/tauri.conf.json\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constant */ \"(ssr)/./app/constant.ts\");\n\n\nconst getBuildConfig = ()=>{\n if (typeof process === \"undefined\") {\n throw Error(\"[Server Config] you are importing a nodejs-only module outside of nodejs\");\n }\n const buildMode = process.env.BUILD_MODE ?? \"standalone\";\n const isApp = !!process.env.BUILD_APP;\n const version = \"v\" + _src_tauri_tauri_conf_json__WEBPACK_IMPORTED_MODULE_0__[\"package\"].version;\n const commitInfo = (()=>{\n try {\n const childProcess = __webpack_require__(/*! child_process */ \"child_process\");\n const commitDate = childProcess.execSync('git log -1 --format=\"%at000\" --date=unix').toString().trim();\n const commitHash = childProcess.execSync('git log --pretty=format:\"%H\" -n 1').toString().trim();\n return {\n commitDate,\n commitHash\n };\n } catch (e) {\n console.error(\"[Build Config] No git or not from git repo.\");\n return {\n commitDate: \"unknown\",\n commitHash: \"unknown\"\n };\n }\n })();\n return {\n version,\n ...commitInfo,\n buildMode,\n isApp,\n template: process.env.DEFAULT_INPUT_TEMPLATE ?? _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_INPUT_TEMPLATE\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvY29uZmlnL2J1aWxkLnRzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUEwRDtBQUNMO0FBRTlDLE1BQU1FLGlCQUFpQjtJQUM1QixJQUFJLE9BQU9DLFlBQVksYUFBYTtRQUNsQyxNQUFNQyxNQUNKO0lBRUo7SUFFQSxNQUFNQyxZQUFZRixRQUFRRyxHQUFHLENBQUNDLFVBQVUsSUFBSTtJQUM1QyxNQUFNQyxRQUFRLENBQUMsQ0FBQ0wsUUFBUUcsR0FBRyxDQUFDRyxTQUFTO0lBQ3JDLE1BQU1DLFVBQVUsTUFBTVYsMEVBQTJCO0lBRWpELE1BQU1ZLGFBQWEsQ0FBQztRQUNsQixJQUFJO1lBQ0YsTUFBTUMsZUFBZUMsbUJBQU9BLENBQUMsb0NBQWU7WUFDNUMsTUFBTUMsYUFBcUJGLGFBQ3hCRyxRQUFRLENBQUMsNENBQ1RDLFFBQVEsR0FDUkMsSUFBSTtZQUNQLE1BQU1DLGFBQXFCTixhQUN4QkcsUUFBUSxDQUFDLHFDQUNUQyxRQUFRLEdBQ1JDLElBQUk7WUFFUCxPQUFPO2dCQUFFSDtnQkFBWUk7WUFBVztRQUNsQyxFQUFFLE9BQU9DLEdBQUc7WUFDVkMsUUFBUUMsS0FBSyxDQUFDO1lBQ2QsT0FBTztnQkFDTFAsWUFBWTtnQkFDWkksWUFBWTtZQUNkO1FBQ0Y7SUFDRjtJQUVBLE9BQU87UUFDTFQ7UUFDQSxHQUFHRSxVQUFVO1FBQ2JQO1FBQ0FHO1FBQ0FlLFVBQVVwQixRQUFRRyxHQUFHLENBQUNMLHNCQUFzQixJQUFJQSw2REFBc0JBO0lBQ3hFO0FBQ0YsRUFBRSIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2NvbmZpZy9idWlsZC50cz9hZGQwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0YXVyaUNvbmZpZyBmcm9tIFwiLi4vLi4vc3JjLXRhdXJpL3RhdXJpLmNvbmYuanNvblwiO1xyXG5pbXBvcnQgeyBERUZBVUxUX0lOUFVUX1RFTVBMQVRFIH0gZnJvbSBcIi4uL2NvbnN0YW50XCI7XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0QnVpbGRDb25maWcgPSAoKSA9PiB7XHJcbiAgaWYgKHR5cGVvZiBwcm9jZXNzID09PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICB0aHJvdyBFcnJvcihcclxuICAgICAgXCJbU2VydmVyIENvbmZpZ10geW91IGFyZSBpbXBvcnRpbmcgYSBub2RlanMtb25seSBtb2R1bGUgb3V0c2lkZSBvZiBub2RlanNcIixcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBidWlsZE1vZGUgPSBwcm9jZXNzLmVudi5CVUlMRF9NT0RFID8/IFwic3RhbmRhbG9uZVwiO1xyXG4gIGNvbnN0IGlzQXBwID0gISFwcm9jZXNzLmVudi5CVUlMRF9BUFA7XHJcbiAgY29uc3QgdmVyc2lvbiA9IFwidlwiICsgdGF1cmlDb25maWcucGFja2FnZS52ZXJzaW9uO1xyXG5cclxuICBjb25zdCBjb21taXRJbmZvID0gKCgpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGNoaWxkUHJvY2VzcyA9IHJlcXVpcmUoXCJjaGlsZF9wcm9jZXNzXCIpO1xyXG4gICAgICBjb25zdCBjb21taXREYXRlOiBzdHJpbmcgPSBjaGlsZFByb2Nlc3NcclxuICAgICAgICAuZXhlY1N5bmMoJ2dpdCBsb2cgLTEgLS1mb3JtYXQ9XCIlYXQwMDBcIiAtLWRhdGU9dW5peCcpXHJcbiAgICAgICAgLnRvU3RyaW5nKClcclxuICAgICAgICAudHJpbSgpO1xyXG4gICAgICBjb25zdCBjb21taXRIYXNoOiBzdHJpbmcgPSBjaGlsZFByb2Nlc3NcclxuICAgICAgICAuZXhlY1N5bmMoJ2dpdCBsb2cgLS1wcmV0dHk9Zm9ybWF0OlwiJUhcIiAtbiAxJylcclxuICAgICAgICAudG9TdHJpbmcoKVxyXG4gICAgICAgIC50cmltKCk7XHJcblxyXG4gICAgICByZXR1cm4geyBjb21taXREYXRlLCBjb21taXRIYXNoIH07XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJbQnVpbGQgQ29uZmlnXSBObyBnaXQgb3Igbm90IGZyb20gZ2l0IHJlcG8uXCIpO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGNvbW1pdERhdGU6IFwidW5rbm93blwiLFxyXG4gICAgICAgIGNvbW1pdEhhc2g6IFwidW5rbm93blwiLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH0pKCk7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICB2ZXJzaW9uLFxyXG4gICAgLi4uY29tbWl0SW5mbyxcclxuICAgIGJ1aWxkTW9kZSxcclxuICAgIGlzQXBwLFxyXG4gICAgdGVtcGxhdGU6IHByb2Nlc3MuZW52LkRFRkFVTFRfSU5QVVRfVEVNUExBVEUgPz8gREVGQVVMVF9JTlBVVF9URU1QTEFURSxcclxuICB9O1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgQnVpbGRDb25maWcgPSBSZXR1cm5UeXBlPHR5cGVvZiBnZXRCdWlsZENvbmZpZz47XHJcbiJdLCJuYW1lcyI6WyJ0YXVyaUNvbmZpZyIsIkRFRkFVTFRfSU5QVVRfVEVNUExBVEUiLCJnZXRCdWlsZENvbmZpZyIsInByb2Nlc3MiLCJFcnJvciIsImJ1aWxkTW9kZSIsImVudiIsIkJVSUxEX01PREUiLCJpc0FwcCIsIkJVSUxEX0FQUCIsInZlcnNpb24iLCJwYWNrYWdlIiwiY29tbWl0SW5mbyIsImNoaWxkUHJvY2VzcyIsInJlcXVpcmUiLCJjb21taXREYXRlIiwiZXhlY1N5bmMiLCJ0b1N0cmluZyIsInRyaW0iLCJjb21taXRIYXNoIiwiZSIsImNvbnNvbGUiLCJlcnJvciIsInRlbXBsYXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/config/build.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/config/client.ts":
|
|
|
/*!******************************!*\
|
|
|
!*** ./app/config/client.ts ***!
|
|
|
\******************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getClientConfig: () => (/* binding */ getClientConfig)\n/* harmony export */ });\n/* harmony import */ var _build__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./build */ \"(ssr)/./app/config/build.ts\");\n\nfunction getClientConfig() {\n if (typeof document !== \"undefined\") {\n // client side\n return JSON.parse(queryMeta(\"config\") || \"{}\");\n }\n if (typeof process !== \"undefined\") {\n // server side\n return (0,_build__WEBPACK_IMPORTED_MODULE_0__.getBuildConfig)();\n }\n}\nfunction queryMeta(key, defaultValue) {\n let ret;\n if (document) {\n const meta = document.head.querySelector(`meta[name='${key}']`);\n ret = meta?.content ?? \"\";\n } else {\n ret = defaultValue ?? \"\";\n }\n return ret;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvY29uZmlnL2NsaWVudC50cyIsIm1hcHBpbmdzIjoiOzs7OztBQUFzRDtBQUUvQyxTQUFTQztJQUNkLElBQUksT0FBT0MsYUFBYSxhQUFhO1FBQ25DLGNBQWM7UUFDZCxPQUFPQyxLQUFLQyxLQUFLLENBQUNDLFVBQVUsYUFBYTtJQUMzQztJQUVBLElBQUksT0FBT0MsWUFBWSxhQUFhO1FBQ2xDLGNBQWM7UUFDZCxPQUFPTixzREFBY0E7SUFDdkI7QUFDRjtBQUVBLFNBQVNLLFVBQVVFLEdBQVcsRUFBRUMsWUFBcUI7SUFDbkQsSUFBSUM7SUFDSixJQUFJUCxVQUFVO1FBQ1osTUFBTVEsT0FBT1IsU0FBU1MsSUFBSSxDQUFDQyxhQUFhLENBQ3RDLENBQUMsV0FBVyxFQUFFTCxJQUFJLEVBQUUsQ0FBQztRQUV2QkUsTUFBTUMsTUFBTUcsV0FBVztJQUN6QixPQUFPO1FBQ0xKLE1BQU1ELGdCQUFnQjtJQUN4QjtJQUVBLE9BQU9DO0FBQ1QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9jb25maWcvY2xpZW50LnRzP2Q2ODIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbGRDb25maWcsIGdldEJ1aWxkQ29uZmlnIH0gZnJvbSBcIi4vYnVpbGRcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGllbnRDb25maWcoKSB7XHJcbiAgaWYgKHR5cGVvZiBkb2N1bWVudCAhPT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgLy8gY2xpZW50IHNpZGVcclxuICAgIHJldHVybiBKU09OLnBhcnNlKHF1ZXJ5TWV0YShcImNvbmZpZ1wiKSB8fCBcInt9XCIpIGFzIEJ1aWxkQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgaWYgKHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAvLyBzZXJ2ZXIgc2lkZVxyXG4gICAgcmV0dXJuIGdldEJ1aWxkQ29uZmlnKCk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBxdWVyeU1ldGEoa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgbGV0IHJldDogc3RyaW5nO1xyXG4gIGlmIChkb2N1bWVudCkge1xyXG4gICAgY29uc3QgbWV0YSA9IGRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3RvcihcclxuICAgICAgYG1ldGFbbmFtZT0nJHtrZXl9J11gLFxyXG4gICAgKSBhcyBIVE1MTWV0YUVsZW1lbnQ7XHJcbiAgICByZXQgPSBtZXRhPy5jb250ZW50ID8/IFwiXCI7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldCA9IGRlZmF1bHRWYWx1ZSA/PyBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHJldDtcclxufVxyXG4iXSwibmFtZXMiOlsiZ2V0QnVpbGRDb25maWciLCJnZXRDbGllbnRDb25maWciLCJkb2N1bWVudCIsIkpTT04iLCJwYXJzZSIsInF1ZXJ5TWV0YSIsInByb2Nlc3MiLCJrZXkiLCJkZWZhdWx0VmFsdWUiLCJyZXQiLCJtZXRhIiwiaGVhZCIsInF1ZXJ5U2VsZWN0b3IiLCJjb250ZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/config/client.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/constant.ts":
|
|
|
/*!*************************!*\
|
|
|
!*** ./app/constant.ts ***!
|
|
|
\*************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ACCESS_CODE_PREFIX: () => (/* binding */ ACCESS_CODE_PREFIX),\n/* harmony export */ ALIBABA_BASE_URL: () => (/* binding */ ALIBABA_BASE_URL),\n/* harmony export */ ANTHROPIC_BASE_URL: () => (/* binding */ ANTHROPIC_BASE_URL),\n/* harmony export */ Alibaba: () => (/* binding */ Alibaba),\n/* harmony export */ Anthropic: () => (/* binding */ Anthropic),\n/* harmony export */ ApiPath: () => (/* binding */ ApiPath),\n/* harmony export */ Azure: () => (/* binding */ Azure),\n/* harmony export */ BAIDU_BASE_URL: () => (/* binding */ BAIDU_BASE_URL),\n/* harmony export */ BAIDU_OATUH_URL: () => (/* binding */ BAIDU_OATUH_URL),\n/* harmony export */ BYTEDANCE_BASE_URL: () => (/* binding */ BYTEDANCE_BASE_URL),\n/* harmony export */ Baidu: () => (/* binding */ Baidu),\n/* harmony export */ ByteDance: () => (/* binding */ ByteDance),\n/* harmony export */ CACHE_URL_PREFIX: () => (/* binding */ CACHE_URL_PREFIX),\n/* harmony export */ CHATGLM_BASE_URL: () => (/* binding */ CHATGLM_BASE_URL),\n/* harmony export */ CHAT_PAGE_SIZE: () => (/* binding */ CHAT_PAGE_SIZE),\n/* harmony export */ ChatGLM: () => (/* binding */ ChatGLM),\n/* harmony export */ DEEPSEEK_BASE_URL: () => (/* binding */ DEEPSEEK_BASE_URL),\n/* harmony export */ DEEPSEEK_SUMMARIZE_MODEL: () => (/* binding */ DEEPSEEK_SUMMARIZE_MODEL),\n/* harmony export */ DEFAULT_GA_ID: () => (/* binding */ DEFAULT_GA_ID),\n/* harmony export */ DEFAULT_INPUT_TEMPLATE: () => (/* binding */ DEFAULT_INPUT_TEMPLATE),\n/* harmony export */ DEFAULT_MODELS: () => (/* binding */ DEFAULT_MODELS),\n/* harmony export */ DEFAULT_SIDEBAR_WIDTH: () => (/* binding */ DEFAULT_SIDEBAR_WIDTH),\n/* harmony export */ DEFAULT_SYSTEM_TEMPLATE: () => (/* binding */ DEFAULT_SYSTEM_TEMPLATE),\n/* harmony export */ DEFAULT_TTS_ENGINE: () => (/* binding */ DEFAULT_TTS_ENGINE),\n/* harmony export */ DEFAULT_TTS_ENGINES: () => (/* binding */ DEFAULT_TTS_ENGINES),\n/* harmony export */ DEFAULT_TTS_MODEL: () => (/* binding */ DEFAULT_TTS_MODEL),\n/* harmony export */ DEFAULT_TTS_MODELS: () => (/* binding */ DEFAULT_TTS_MODELS),\n/* harmony export */ DEFAULT_TTS_VOICE: () => (/* binding */ DEFAULT_TTS_VOICE),\n/* harmony export */ DEFAULT_TTS_VOICES: () => (/* binding */ DEFAULT_TTS_VOICES),\n/* harmony export */ DeepSeek: () => (/* binding */ DeepSeek),\n/* harmony export */ EXCLUDE_VISION_MODEL_REGEXES: () => (/* binding */ EXCLUDE_VISION_MODEL_REGEXES),\n/* harmony export */ EXPORT_MESSAGE_CLASS_NAME: () => (/* binding */ EXPORT_MESSAGE_CLASS_NAME),\n/* harmony export */ FETCH_COMMIT_URL: () => (/* binding */ FETCH_COMMIT_URL),\n/* harmony export */ FETCH_TAG_URL: () => (/* binding */ FETCH_TAG_URL),\n/* harmony export */ FileName: () => (/* binding */ FileName),\n/* harmony export */ GEMINI_BASE_URL: () => (/* binding */ GEMINI_BASE_URL),\n/* harmony export */ GEMINI_SUMMARIZE_MODEL: () => (/* binding */ GEMINI_SUMMARIZE_MODEL),\n/* harmony export */ Google: () => (/* binding */ Google),\n/* harmony export */ GoogleSafetySettingsThreshold: () => (/* binding */ GoogleSafetySettingsThreshold),\n/* harmony export */ IFLYTEK_BASE_URL: () => (/* binding */ IFLYTEK_BASE_URL),\n/* harmony export */ ISSUE_URL: () => (/* binding */ ISSUE_URL),\n/* harmony export */ Iflytek: () => (/* binding */ Iflytek),\n/* harmony export */ KnowledgeCutOffDate: () => (/* binding */ KnowledgeCutOffDate),\n/* harmony export */ LAST_INPUT_KEY: () => (/* binding */ LAST_INPUT_KEY),\n/* harmony export */ MAX_RENDER_MSG_COUNT: () => (/* binding */ MAX_RENDER_MSG_COUNT),\n/* harmony export */ MAX_SIDEBAR_WIDTH: () => (/* binding */ MAX_SIDEBAR_WIDTH),\n/* harmony export */ MCP_SYSTEM_TEMPLATE: () => (/* binding */ MCP_SYSTEM_TEMPLATE),\n/* harmony export */ MCP_TOOLS_TEMPLATE: () => (/* binding */ MCP_TOOLS_TEMPLATE),\n/* harmony export */ MIN_SIDEBAR_WIDTH: () => (/* binding */ MIN_SIDEBAR_WIDTH),\n/* harmony export */ MOONSHOT_BASE_URL: () => (/* binding */ MOONSHOT_BASE_URL),\n/* harmony export */ ModelProvider: () => (/* binding */ ModelProvider),\n/* harmony export */ Moonshot: () => (/* binding */ Moonshot),\n/* harmony export */ NARROW_SIDEBAR_WIDTH: () => (/* binding */ NARROW_SIDEBAR_WIDTH),\n/* harmony export */ OPENAI_BASE_URL: () => (/* binding */ OPENAI_BASE_URL),\n/* harmony export */ OWNER: () => (/* binding */ OWNER),\n/* harmony export */ OpenaiPath: () => (/* binding */ OpenaiPath),\n/* harmony export */ PLUGINS_REPO_URL: () => (/* binding */ PLUGINS_REPO_URL),\n/* harmony export */ Path: () => (/* binding */ Path),\n/* harmony export */ RELEASE_URL: () => (/* binding */ RELEASE_URL),\n/* harmony export */ REPO: () => (/* binding */ REPO),\n/* harmony export */ REPO_URL: () => (/* binding */ REPO_URL),\n/* harmony export */ REQUEST_TIMEOUT_MS: () => (/* binding */ REQUEST_TIMEOUT_MS),\n/* harmony export */ REQUEST_TIMEOUT_MS_FOR_THINKING: () => (/* binding */ REQUEST_TIMEOUT_MS_FOR_THINKING),\n/* harmony export */ RUNTIME_CONFIG_DOM: () => (/* binding */ RUNTIME_CONFIG_DOM),\n/* harmony export */ SAAS_CHAT_URL: () => (/* binding */ SAAS_CHAT_URL),\n/* harmony export */ SAAS_CHAT_UTM_URL: () => (/* binding */ SAAS_CHAT_UTM_URL),\n/* harmony export */ SILICONFLOW_BASE_URL: () => (/* binding */ SILICONFLOW_BASE_URL),\n/* harmony export */ STABILITY_BASE_URL: () => (/* binding */ STABILITY_BASE_URL),\n/* harmony export */ STORAGE_KEY: () => (/* binding */ STORAGE_KEY),\n/* harmony export */ SUMMARIZE_MODEL: () => (/* binding */ SUMMARIZE_MODEL),\n/* harmony export */ ServiceProvider: () => (/* binding */ ServiceProvider),\n/* harmony export */ SiliconFlow: () => (/* binding */ SiliconFlow),\n/* harmony export */ SlotID: () => (/* binding */ SlotID),\n/* harmony export */ Stability: () => (/* binding */ Stability),\n/* harmony export */ StoreKey: () => (/* binding */ StoreKey),\n/* harmony export */ TENCENT_BASE_URL: () => (/* binding */ TENCENT_BASE_URL),\n/* harmony export */ Tencent: () => (/* binding */ Tencent),\n/* harmony export */ UNFINISHED_INPUT: () => (/* binding */ UNFINISHED_INPUT),\n/* harmony export */ UPDATE_URL: () => (/* binding */ UPDATE_URL),\n/* harmony export */ UPLOAD_URL: () => (/* binding */ UPLOAD_URL),\n/* harmony export */ VISION_MODEL_REGEXES: () => (/* binding */ VISION_MODEL_REGEXES),\n/* harmony export */ XAI: () => (/* binding */ XAI),\n/* harmony export */ XAI_BASE_URL: () => (/* binding */ XAI_BASE_URL),\n/* harmony export */ internalAllowedWebDavEndpoints: () => (/* binding */ internalAllowedWebDavEndpoints)\n/* harmony export */ });\nconst OWNER = \"ChatGPTNextWeb\";\nconst REPO = \"ChatGPT-Next-Web\";\nconst REPO_URL = `https://github.com/${OWNER}/${REPO}`;\nconst PLUGINS_REPO_URL = `https://github.com/${OWNER}/NextChat-Awesome-Plugins`;\nconst ISSUE_URL = `https://github.com/${OWNER}/${REPO}/issues`;\nconst UPDATE_URL = `${REPO_URL}#keep-updated`;\nconst RELEASE_URL = `${REPO_URL}/releases`;\nconst FETCH_COMMIT_URL = `https://api.github.com/repos/${OWNER}/${REPO}/commits?per_page=1`;\nconst FETCH_TAG_URL = `https://api.github.com/repos/${OWNER}/${REPO}/tags?per_page=1`;\nconst RUNTIME_CONFIG_DOM = \"danger-runtime-config\";\nconst STABILITY_BASE_URL = \"https://api.stability.ai\";\nconst OPENAI_BASE_URL = \"https://api.openai.com\";\nconst ANTHROPIC_BASE_URL = \"https://api.anthropic.com\";\nconst GEMINI_BASE_URL = \"https://generativelanguage.googleapis.com/\";\nconst BAIDU_BASE_URL = \"https://aip.baidubce.com\";\nconst BAIDU_OATUH_URL = `${BAIDU_BASE_URL}/oauth/2.0/token`;\nconst BYTEDANCE_BASE_URL = \"https://ark.cn-beijing.volces.com\";\nconst ALIBABA_BASE_URL = \"https://dashscope.aliyuncs.com/api/\";\nconst TENCENT_BASE_URL = \"https://hunyuan.tencentcloudapi.com\";\nconst MOONSHOT_BASE_URL = \"https://api.moonshot.cn\";\nconst IFLYTEK_BASE_URL = \"https://spark-api-open.xf-yun.com\";\nconst DEEPSEEK_BASE_URL = \"https://api.deepseek.com\";\nconst XAI_BASE_URL = \"https://api.x.ai\";\nconst CHATGLM_BASE_URL = \"https://open.bigmodel.cn\";\nconst SILICONFLOW_BASE_URL = \"https://api.siliconflow.cn\";\nconst CACHE_URL_PREFIX = \"/api/cache\";\nconst UPLOAD_URL = `${CACHE_URL_PREFIX}/upload`;\nvar Path;\n(function(Path) {\n Path[\"Home\"] = \"/\";\n Path[\"Chat\"] = \"/chat\";\n Path[\"Settings\"] = \"/settings\";\n Path[\"NewChat\"] = \"/new-chat\";\n Path[\"Masks\"] = \"/masks\";\n Path[\"Plugins\"] = \"/plugins\";\n Path[\"Auth\"] = \"/auth\";\n Path[\"Sd\"] = \"/sd\";\n Path[\"SdNew\"] = \"/sd-new\";\n Path[\"Artifacts\"] = \"/artifacts\";\n Path[\"SearchChat\"] = \"/search-chat\";\n Path[\"McpMarket\"] = \"/mcp-market\";\n})(Path || (Path = {}));\nvar ApiPath;\n(function(ApiPath) {\n ApiPath[\"Cors\"] = \"\";\n ApiPath[\"Azure\"] = \"/api/azure\";\n ApiPath[\"OpenAI\"] = \"/api/openai\";\n ApiPath[\"Anthropic\"] = \"/api/anthropic\";\n ApiPath[\"Google\"] = \"/api/google\";\n ApiPath[\"Baidu\"] = \"/api/baidu\";\n ApiPath[\"ByteDance\"] = \"/api/bytedance\";\n ApiPath[\"Alibaba\"] = \"/api/alibaba\";\n ApiPath[\"Tencent\"] = \"/api/tencent\";\n ApiPath[\"Moonshot\"] = \"/api/moonshot\";\n ApiPath[\"Iflytek\"] = \"/api/iflytek\";\n ApiPath[\"Stability\"] = \"/api/stability\";\n ApiPath[\"Artifacts\"] = \"/api/artifacts\";\n ApiPath[\"XAI\"] = \"/api/xai\";\n ApiPath[\"ChatGLM\"] = \"/api/chatglm\";\n ApiPath[\"DeepSeek\"] = \"/api/deepseek\";\n ApiPath[\"SiliconFlow\"] = \"/api/siliconflow\";\n})(ApiPath || (ApiPath = {}));\nvar SlotID;\n(function(SlotID) {\n SlotID[\"AppBody\"] = \"app-body\";\n SlotID[\"CustomModel\"] = \"custom-model\";\n})(SlotID || (SlotID = {}));\nvar FileName;\n(function(FileName) {\n FileName[\"Masks\"] = \"masks.json\";\n FileName[\"Prompts\"] = \"prompts.json\";\n})(FileName || (FileName = {}));\nvar StoreKey;\n(function(StoreKey) {\n StoreKey[\"Chat\"] = \"chat-next-web-store\";\n StoreKey[\"Plugin\"] = \"chat-next-web-plugin\";\n StoreKey[\"Access\"] = \"access-control\";\n StoreKey[\"Config\"] = \"app-config\";\n StoreKey[\"Mask\"] = \"mask-store\";\n StoreKey[\"Prompt\"] = \"prompt-store\";\n StoreKey[\"Update\"] = \"chat-update\";\n StoreKey[\"Sync\"] = \"sync\";\n StoreKey[\"SdList\"] = \"sd-list\";\n StoreKey[\"Mcp\"] = \"mcp-store\";\n})(StoreKey || (StoreKey = {}));\nconst DEFAULT_SIDEBAR_WIDTH = 300;\nconst MAX_SIDEBAR_WIDTH = 500;\nconst MIN_SIDEBAR_WIDTH = 230;\nconst NARROW_SIDEBAR_WIDTH = 100;\nconst ACCESS_CODE_PREFIX = \"nk-\";\nconst LAST_INPUT_KEY = \"last-input\";\nconst UNFINISHED_INPUT = (id)=>\"unfinished-input-\" + id;\nconst STORAGE_KEY = \"chatgpt-next-web\";\nconst REQUEST_TIMEOUT_MS = 60000;\nconst REQUEST_TIMEOUT_MS_FOR_THINKING = REQUEST_TIMEOUT_MS * 5;\nconst EXPORT_MESSAGE_CLASS_NAME = \"export-markdown\";\nvar ServiceProvider;\n(function(ServiceProvider) {\n ServiceProvider[\"OpenAI\"] = \"OpenAI\";\n ServiceProvider[\"Azure\"] = \"Azure\";\n ServiceProvider[\"Google\"] = \"Google\";\n ServiceProvider[\"Anthropic\"] = \"Anthropic\";\n ServiceProvider[\"Baidu\"] = \"Baidu\";\n ServiceProvider[\"ByteDance\"] = \"ByteDance\";\n ServiceProvider[\"Alibaba\"] = \"Alibaba\";\n ServiceProvider[\"Tencent\"] = \"Tencent\";\n ServiceProvider[\"Moonshot\"] = \"Moonshot\";\n ServiceProvider[\"Stability\"] = \"Stability\";\n ServiceProvider[\"Iflytek\"] = \"Iflytek\";\n ServiceProvider[\"XAI\"] = \"XAI\";\n ServiceProvider[\"ChatGLM\"] = \"ChatGLM\";\n ServiceProvider[\"DeepSeek\"] = \"DeepSeek\";\n ServiceProvider[\"SiliconFlow\"] = \"SiliconFlow\";\n})(ServiceProvider || (ServiceProvider = {}));\nvar GoogleSafetySettingsThreshold;\n(function(GoogleSafetySettingsThreshold) {\n GoogleSafetySettingsThreshold[\"BLOCK_NONE\"] = \"BLOCK_NONE\";\n GoogleSafetySettingsThreshold[\"BLOCK_ONLY_HIGH\"] = \"BLOCK_ONLY_HIGH\";\n GoogleSafetySettingsThreshold[\"BLOCK_MEDIUM_AND_ABOVE\"] = \"BLOCK_MEDIUM_AND_ABOVE\";\n GoogleSafetySettingsThreshold[\"BLOCK_LOW_AND_ABOVE\"] = \"BLOCK_LOW_AND_ABOVE\";\n})(GoogleSafetySettingsThreshold || (GoogleSafetySettingsThreshold = {}));\nvar ModelProvider;\n(function(ModelProvider) {\n ModelProvider[\"Stability\"] = \"Stability\";\n ModelProvider[\"GPT\"] = \"GPT\";\n ModelProvider[\"GeminiPro\"] = \"GeminiPro\";\n ModelProvider[\"Claude\"] = \"Claude\";\n ModelProvider[\"Ernie\"] = \"Ernie\";\n ModelProvider[\"Doubao\"] = \"Doubao\";\n ModelProvider[\"Qwen\"] = \"Qwen\";\n ModelProvider[\"Hunyuan\"] = \"Hunyuan\";\n ModelProvider[\"Moonshot\"] = \"Moonshot\";\n ModelProvider[\"Iflytek\"] = \"Iflytek\";\n ModelProvider[\"XAI\"] = \"XAI\";\n ModelProvider[\"ChatGLM\"] = \"ChatGLM\";\n ModelProvider[\"DeepSeek\"] = \"DeepSeek\";\n ModelProvider[\"SiliconFlow\"] = \"SiliconFlow\";\n})(ModelProvider || (ModelProvider = {}));\nconst Stability = {\n GeneratePath: \"v2beta/stable-image/generate\",\n ExampleEndpoint: \"https://api.stability.ai\"\n};\nconst Anthropic = {\n ChatPath: \"v1/messages\",\n ChatPath1: \"v1/complete\",\n ExampleEndpoint: \"https://api.anthropic.com\",\n Vision: \"2023-06-01\"\n};\nconst OpenaiPath = {\n ChatPath: \"v1/chat/completions\",\n SpeechPath: \"v1/audio/speech\",\n ImagePath: \"v1/images/generations\",\n UsagePath: \"dashboard/billing/usage\",\n SubsPath: \"dashboard/billing/subscription\",\n ListModelPath: \"v1/models\"\n};\nconst Azure = {\n ChatPath: (deployName, apiVersion)=>`deployments/${deployName}/chat/completions?api-version=${apiVersion}`,\n // https://<your_resource_name>.openai.azure.com/openai/deployments/<your_deployment_name>/images/generations?api-version=<api_version>\n ImagePath: (deployName, apiVersion)=>`deployments/${deployName}/images/generations?api-version=${apiVersion}`,\n ExampleEndpoint: \"https://{resource-url}/openai\"\n};\nconst Google = {\n ExampleEndpoint: \"https://generativelanguage.googleapis.com/\",\n ChatPath: (modelName)=>`v1beta/models/${modelName}:streamGenerateContent`\n};\nconst Baidu = {\n ExampleEndpoint: BAIDU_BASE_URL,\n ChatPath: (modelName)=>{\n let endpoint = modelName;\n if (modelName === \"ernie-4.0-8k\") {\n endpoint = \"completions_pro\";\n }\n if (modelName === \"ernie-4.0-8k-preview-0518\") {\n endpoint = \"completions_adv_pro\";\n }\n if (modelName === \"ernie-3.5-8k\") {\n endpoint = \"completions\";\n }\n if (modelName === \"ernie-speed-8k\") {\n endpoint = \"ernie_speed\";\n }\n return `rpc/2.0/ai_custom/v1/wenxinworkshop/chat/${endpoint}`;\n }\n};\nconst ByteDance = {\n ExampleEndpoint: \"https://ark.cn-beijing.volces.com/api/\",\n ChatPath: \"api/v3/chat/completions\"\n};\nconst Alibaba = {\n ExampleEndpoint: ALIBABA_BASE_URL,\n ChatPath: \"v1/services/aigc/text-generation/generation\"\n};\nconst Tencent = {\n ExampleEndpoint: TENCENT_BASE_URL\n};\nconst Moonshot = {\n ExampleEndpoint: MOONSHOT_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst Iflytek = {\n ExampleEndpoint: IFLYTEK_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst DeepSeek = {\n ExampleEndpoint: DEEPSEEK_BASE_URL,\n ChatPath: \"chat/completions\"\n};\nconst XAI = {\n ExampleEndpoint: XAI_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst ChatGLM = {\n ExampleEndpoint: CHATGLM_BASE_URL,\n ChatPath: \"api/paas/v4/chat/completions\",\n ImagePath: \"api/paas/v4/images/generations\",\n VideoPath: \"api/paas/v4/videos/generations\"\n};\nconst SiliconFlow = {\n ExampleEndpoint: SILICONFLOW_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst DEFAULT_INPUT_TEMPLATE = `{{input}}`; // input / time / model / lang\n// export const DEFAULT_SYSTEM_TEMPLATE = `\n// You are ChatGPT, a large language model trained by {{ServiceProvider}}.\n// Knowledge cutoff: {{cutoff}}\n// Current model: {{model}}\n// Current time: {{time}}\n// Latex inline: $x^2$\n// Latex block: $$e=mc^2$$\n// `;\nconst DEFAULT_SYSTEM_TEMPLATE = `\r\nYou are ChatGPT, a large language model trained by {{ServiceProvider}}.\r\nKnowledge cutoff: {{cutoff}}\r\nCurrent model: {{model}}\r\nCurrent time: {{time}}\r\nLatex inline: \\\\(x^2\\\\) \r\nLatex block: $$e=mc^2$$\r\n`;\nconst MCP_TOOLS_TEMPLATE = `\r\n[clientId]\r\n{{ clientId }}\r\n[tools]\r\n{{ tools }}\r\n`;\nconst MCP_SYSTEM_TEMPLATE = `\r\nYou are an AI assistant with access to system tools. Your role is to help users by combining natural language understanding with tool operations when needed.\r\n\r\n1. AVAILABLE TOOLS:\r\n{{ MCP_TOOLS }}\r\n\r\n2. WHEN TO USE TOOLS:\r\n - ALWAYS USE TOOLS when they can help answer user questions\r\n - DO NOT just describe what you could do - TAKE ACTION immediately\r\n - If you're not sure whether to use a tool, USE IT\r\n - Common triggers for tool use:\r\n * Questions about files or directories\r\n * Requests to check, list, or manipulate system resources\r\n * Any query that can be answered with available tools\r\n\r\n3. HOW TO USE TOOLS:\r\n A. Tool Call Format:\r\n - Use markdown code blocks with format: \\`\\`\\`json:mcp:{clientId}\\`\\`\\`\r\n - Always include:\r\n * method: \"tools/call\"(Only this method is supported)\r\n * params: \r\n - name: must match an available primitive name\r\n - arguments: required parameters for the primitive\r\n\r\n B. Response Format:\r\n - Tool responses will come as user messages\r\n - Format: \\`\\`\\`json:mcp-response:{clientId}\\`\\`\\`\r\n - Wait for response before making another tool call\r\n\r\n C. Important Rules:\r\n - Only use tools/call method\r\n - Only ONE tool call per message\r\n - ALWAYS TAKE ACTION instead of just describing what you could do\r\n - Include the correct clientId in code block language tag\r\n - Verify arguments match the primitive's requirements\r\n\r\n4. INTERACTION FLOW:\r\n A. When user makes a request:\r\n - IMMEDIATELY use appropriate tool if available\r\n - DO NOT ask if user wants you to use the tool\r\n - DO NOT just describe what you could do\r\n B. After receiving tool response:\r\n - Explain results clearly\r\n - Take next appropriate action if needed\r\n C. If tools fail:\r\n - Explain the error\r\n - Try alternative approach immediately\r\n\r\n5. EXAMPLE INTERACTION:\r\n\r\n good example:\r\n\r\n \\`\\`\\`json:mcp:filesystem\r\n {\r\n \"method\": \"tools/call\",\r\n \"params\": {\r\n \"name\": \"list_allowed_directories\",\r\n \"arguments\": {}\r\n }\r\n }\r\n \\`\\`\\`\"\r\n\r\n\r\n \\`\\`\\`json:mcp-response:filesystem\r\n {\r\n \"method\": \"tools/call\",\r\n \"params\": {\r\n \"name\": \"write_file\",\r\n \"arguments\": {\r\n \"path\": \"/Users/river/dev/nextchat/test/joke.txt\",\r\n \"content\": \"为什么数学书总是感到忧伤?因为它有太多的问题。\"\r\n }\r\n }\r\n }\r\n\\`\\`\\`\r\n\r\n follwing is the wrong! mcp json example:\r\n\r\n \\`\\`\\`json:mcp:filesystem\r\n {\r\n \"method\": \"write_file\",\r\n \"params\": {\r\n \"path\": \"NextChat_Information.txt\",\r\n \"content\": \"1\"\r\n }\r\n }\r\n \\`\\`\\`\r\n\r\n This is wrong because the method is not tools/call.\r\n \r\n \\`\\`\\`{\r\n \"method\": \"search_repositories\",\r\n \"params\": {\r\n \"query\": \"2oeee\"\r\n }\r\n}\r\n \\`\\`\\`\r\n\r\n This is wrong because the method is not tools/call.!!!!!!!!!!!\r\n\r\n the right format is:\r\n \\`\\`\\`json:mcp:filesystem\r\n {\r\n \"method\": \"tools/call\",\r\n \"params\": {\r\n \"name\": \"search_repositories\",\r\n \"arguments\": {\r\n \"query\": \"2oeee\"\r\n }\r\n }\r\n }\r\n \\`\\`\\`\r\n \r\n please follow the format strictly ONLY use tools/call method!!!!!!!!!!!\r\n \r\n`;\nconst SUMMARIZE_MODEL = \"gpt-4o-mini\";\nconst GEMINI_SUMMARIZE_MODEL = \"gemini-pro\";\nconst DEEPSEEK_SUMMARIZE_MODEL = \"deepseek-ai/DeepSeek-V3\";\nconst KnowledgeCutOffDate = {\n default: \"2021-09\",\n \"gpt-4-turbo\": \"2023-12\",\n \"gpt-4-turbo-2024-04-09\": \"2023-12\",\n \"gpt-4-turbo-preview\": \"2023-12\",\n \"gpt-4o\": \"2023-10\",\n \"gpt-4o-2024-05-13\": \"2023-10\",\n \"gpt-4o-2024-08-06\": \"2023-10\",\n \"gpt-4o-2024-11-20\": \"2023-10\",\n \"chatgpt-4o-latest\": \"2023-10\",\n \"gpt-4o-mini\": \"2023-10\",\n \"gpt-4o-mini-2024-07-18\": \"2023-10\",\n \"gpt-4-vision-preview\": \"2023-04\",\n \"o1-mini-2024-09-12\": \"2023-10\",\n \"o1-mini\": \"2023-10\",\n \"o1-preview-2024-09-12\": \"2023-10\",\n \"o1-preview\": \"2023-10\",\n \"o1-2024-12-17\": \"2023-10\",\n o1: \"2023-10\",\n \"o3-mini-2025-01-31\": \"2023-10\",\n \"o3-mini\": \"2023-10\",\n // After improvements,\n // it's now easier to add \"KnowledgeCutOffDate\" instead of stupid hardcoding it, as was done previously.\n \"gemini-pro\": \"2023-12\",\n \"gemini-pro-vision\": \"2023-12\",\n \"deepseek-chat\": \"2024-07\",\n \"deepseek-coder\": \"2024-07\"\n};\nconst DEFAULT_TTS_ENGINE = \"OpenAI-TTS\";\nconst DEFAULT_TTS_ENGINES = [\n \"OpenAI-TTS\",\n \"Edge-TTS\"\n];\nconst DEFAULT_TTS_MODEL = \"tts-1\";\nconst DEFAULT_TTS_VOICE = \"alloy\";\nconst DEFAULT_TTS_MODELS = [\n \"tts-1\",\n \"tts-1-hd\"\n];\nconst DEFAULT_TTS_VOICES = [\n \"alloy\",\n \"echo\",\n \"fable\",\n \"onyx\",\n \"nova\",\n \"shimmer\"\n];\nconst VISION_MODEL_REGEXES = [\n /vision/,\n /gpt-4o/,\n /claude-3/,\n /gemini-1\\.5/,\n /gemini-exp/,\n /gemini-2\\.0/,\n /learnlm/,\n /qwen-vl/,\n /qwen2-vl/,\n /gpt-4-turbo(?!.*preview)/,\n /^dall-e-3$/,\n /glm-4v/\n];\nconst EXCLUDE_VISION_MODEL_REGEXES = [\n /claude-3-5-haiku-20241022/\n];\nconst openaiModels = [];\nconst googleModels = [];\nconst anthropicModels = [];\nconst baiduModels = [];\nconst bytedanceModels = [];\nconst alibabaModes = [];\nconst tencentModels = [];\nconst moonshotModes = [];\nconst iflytekModels = [];\nconst deepseekModels = [];\nconst xAIModes = [];\nconst chatglmModels = [];\nconst siliconflowModels = [\n \"deepseek-ai/DeepSeek-V3\",\n \"deepseek-ai/DeepSeek-R1\"\n];\nlet seq = 1000; // 内置的模型序号生成器从1000开始\nconst DEFAULT_MODELS = [\n ...openaiModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"openai\",\n providerName: \"OpenAI\",\n providerType: \"openai\",\n sorted: 1\n }\n })),\n ...openaiModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"azure\",\n providerName: \"Azure\",\n providerType: \"azure\",\n sorted: 2\n }\n })),\n ...googleModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"google\",\n providerName: \"Google\",\n providerType: \"google\",\n sorted: 3\n }\n })),\n ...anthropicModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"anthropic\",\n providerName: \"Anthropic\",\n providerType: \"anthropic\",\n sorted: 4\n }\n })),\n ...baiduModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"baidu\",\n providerName: \"Baidu\",\n providerType: \"baidu\",\n sorted: 5\n }\n })),\n ...bytedanceModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"bytedance\",\n providerName: \"ByteDance\",\n providerType: \"bytedance\",\n sorted: 6\n }\n })),\n ...alibabaModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"alibaba\",\n providerName: \"Alibaba\",\n providerType: \"alibaba\",\n sorted: 7\n }\n })),\n ...tencentModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"tencent\",\n providerName: \"Tencent\",\n providerType: \"tencent\",\n sorted: 8\n }\n })),\n ...moonshotModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"moonshot\",\n providerName: \"Moonshot\",\n providerType: \"moonshot\",\n sorted: 9\n }\n })),\n ...iflytekModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"iflytek\",\n providerName: \"Iflytek\",\n providerType: \"iflytek\",\n sorted: 10\n }\n })),\n ...xAIModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"xai\",\n providerName: \"XAI\",\n providerType: \"xai\",\n sorted: 11\n }\n })),\n ...chatglmModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"chatglm\",\n providerName: \"ChatGLM\",\n providerType: \"chatglm\",\n sorted: 12\n }\n })),\n ...deepseekModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"deepseek\",\n providerName: \"DeepSeek\",\n providerType: \"deepseek\",\n sorted: 13\n }\n })),\n ...siliconflowModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"siliconflow\",\n providerName: \"SiliconFlow\",\n providerType: \"siliconflow\",\n sorted: 14\n }\n }))\n];\nconst CHAT_PAGE_SIZE = 15;\nconst MAX_RENDER_MSG_COUNT = 45;\n// some famous webdav endpoints\nconst internalAllowedWebDavEndpoints = [\n \"https://dav.jianguoyun.com/dav/\",\n \"https://dav.dropdav.com/\",\n \"https://dav.box.com/dav\",\n \"https://nanao.teracloud.jp/dav/\",\n \"https://bora.teracloud.jp/dav/\",\n \"https://webdav.4shared.com/\",\n \"https://dav.idrivesync.com\",\n \"https://webdav.yandex.com\",\n \"https://app.koofr.net/dav/Koofr\"\n];\nconst DEFAULT_GA_ID = \"G-89WN60ZK2E\";\nconst SAAS_CHAT_URL = \"https://nextchat.dev/chat\";\nconst SAAS_CHAT_UTM_URL = \"https://nextchat.dev/chat?utm=github\";\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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V0FBVztZQUNYQyxRQUFRTDtZQUNSTSxVQUFVO2dCQUNSM0UsSUFBSTtnQkFDSjRFLGNBQWM7Z0JBQ2RDLGNBQWM7Z0JBQ2RILFFBQVE7WUFDVjtRQUNGO0NBQ0QsQ0FBVTtBQUVKLE1BQU1JLGlCQUFpQixHQUFHO0FBQzFCLE1BQU1DLHVCQUF1QixHQUFHO0FBRXZDLCtCQUErQjtBQUN4QixNQUFNQyxpQ0FBaUM7SUFDNUM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0QsQ0FBQztBQUVLLE1BQU1DLGdCQUFnQixlQUFlO0FBRXJDLE1BQU1DLGdCQUFnQiw0QkFBNEI7QUFDbEQsTUFBTUMsb0JBQW9CLHVDQUF1QyIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2NvbnN0YW50LnRzP2FmNDQiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE9XTkVSID0gXCJDaGF0R1BUTmV4dFdlYlwiO1xyXG5leHBvcnQgY29uc3QgUkVQTyA9IFwiQ2hhdEdQVC1OZXh0LVdlYlwiO1xyXG5leHBvcnQgY29uc3QgUkVQT19VUkwgPSBgaHR0cHM6Ly9naXRodWIuY29tLyR7T1dORVJ9LyR7UkVQT31gO1xyXG5leHBvcnQgY29uc3QgUExVR0lOU19SRVBPX1VSTCA9IGBodHRwczovL2dpdGh1Yi5jb20vJHtPV05FUn0vTmV4dENoYXQtQXdlc29tZS1QbHVnaW5zYDtcclxuZXhwb3J0IGNvbnN0IElTU1VFX1VSTCA9IGBodHRwczovL2dpdGh1Yi5jb20vJHtPV05FUn0vJHtSRVBPfS9pc3N1ZXNgO1xyXG5leHBvcnQgY29uc3QgVVBEQVRFX1VSTCA9IGAke1JFUE9fVVJMfSNrZWVwLXVwZGF0ZWRgO1xyXG5leHBvcnQgY29uc3QgUkVMRUFTRV9VUkwgPSBgJHtSRVBPX1VSTH0vcmVsZWFzZXNgO1xyXG5leHBvcnQgY29uc3QgRkVUQ0hfQ09NTUlUX1VSTCA9IGBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLyR7T1dORVJ9LyR7UkVQT30vY29tbWl0cz9wZXJfcGFnZT0xYDtcclxuZXhwb3J0IGNvbnN0IEZFVENIX1RBR19VUkwgPSBgaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy8ke09XTkVSfS8ke1JFUE99L3RhZ3M/cGVyX3BhZ2U9MWA7XHJcbmV4cG9ydCBjb25zdCBSVU5USU1FX0NPTkZJR19ET00gPSBcImRhbmdlci1ydW50aW1lLWNvbmZpZ1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNUQUJJTElUWV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcGkuc3RhYmlsaXR5LmFpXCI7XHJcblxyXG5leHBvcnQgY29uc3QgT1BFTkFJX0JBU0VfVVJMID0gXCJodHRwczovL2FwaS5vcGVuYWkuY29tXCI7XHJcbmV4cG9ydCBjb25zdCBBTlRIUk9QSUNfQkFTRV9VUkwgPSBcImh0dHBzOi8vYXBpLmFudGhyb3BpYy5jb21cIjtcclxuXHJcbmV4cG9ydCBjb25zdCBHRU1JTklfQkFTRV9VUkwgPSBcImh0dHBzOi8vZ2VuZXJhdGl2ZWxhbmd1YWdlLmdvb2dsZWFwaXMuY29tL1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJBSURVX0JBU0VfVVJMID0gXCJodHRwczovL2FpcC5iYWlkdWJjZS5jb21cIjtcclxuZXhwb3J0IGNvbnN0IEJBSURVX09BVFVIX1VSTCA9IGAke0JBSURVX0JBU0VfVVJMfS9vYXV0aC8yLjAvdG9rZW5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJZVEVEQU5DRV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcmsuY24tYmVpamluZy52b2xjZXMuY29tXCI7XHJcblxyXG5leHBvcnQgY29uc3QgQUxJQkFCQV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly9kYXNoc2NvcGUuYWxpeXVuY3MuY29tL2FwaS9cIjtcclxuXHJcbmV4cG9ydCBjb25zdCBURU5DRU5UX0JBU0VfVVJMID0gXCJodHRwczovL2h1bnl1YW4udGVuY2VudGNsb3VkYXBpLmNvbVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1PT05TSE9UX0JBU0VfVVJMID0gXCJodHRwczovL2FwaS5tb29uc2hvdC5jblwiO1xyXG5leHBvcnQgY29uc3QgSUZMWVRFS19CQVNFX1VSTCA9IFwiaHR0cHM6Ly9zcGFyay1hcGktb3Blbi54Zi15dW4uY29tXCI7XHJcblxyXG5leHBvcnQgY29uc3QgREVFUFNFRUtfQkFTRV9VUkwgPSBcImh0dHBzOi8vYXBpLmRlZXBzZWVrLmNvbVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFhBSV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcGkueC5haVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IENIQVRHTE1fQkFTRV9VUkwgPSBcImh0dHBzOi8vb3Blbi5iaWdtb2RlbC5jblwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNJTElDT05GTE9XX0JBU0VfVVJMID0gXCJodHRwczovL2FwaS5zaWxpY29uZmxvdy5jblwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IENBQ0hFX1VSTF9QUkVGSVggPSBcIi9hcGkvY2FjaGVcIjtcclxuZXhwb3J0IGNvbnN0IFVQTE9BRF9VUkwgPSBgJHtDQUNIRV9VUkxfUFJFRklYfS91cGxvYWRgO1xyXG5cclxuZXhwb3J0IGVudW0gUGF0aCB7XHJcbiAgSG9tZSA9IFwiL1wiLFxyXG4gIENoYXQgPSBcIi9jaGF0XCIsXHJcbiAgU2V0dGluZ3MgPSBcIi9zZXR0aW5nc1wiLFxyXG4gIE5ld0NoYXQgPSBcIi9uZXctY2hhdFwiLFxyXG4gIE1hc2tzID0gXCIvbWFza3NcIixcclxuICBQbHVnaW5zID0gXCIvcGx1Z2luc1wiLFxyXG4gIEF1dGggPSBcIi9hdXRoXCIsXHJcbiAgU2QgPSBcIi9zZFwiLFxyXG4gIFNkTmV3ID0gXCIvc2QtbmV3XCIsXHJcbiAgQXJ0aWZhY3RzID0gXCIvYXJ0aWZhY3RzXCIsXHJcbiAgU2VhcmNoQ2hhdCA9IFwiL3NlYXJjaC1jaGF0XCIsXHJcbiAgTWNwTWFya2V0ID0gXCIvbWNwLW1hcmtldFwiLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBBcGlQYXRoIHtcclxuICBDb3JzID0gXCJcIixcclxuICBBenVyZSA9IFwiL2FwaS9henVyZVwiLFxyXG4gIE9wZW5BSSA9IFwiL2FwaS9vcGVuYWlcIixcclxuICBBbnRocm9waWMgPSBcIi9hcGkvYW50aHJvcGljXCIsXHJcbiAgR29vZ2xlID0gXCIvYXBpL2dvb2dsZVwiLFxyXG4gIEJhaWR1ID0gXCIvYXBpL2JhaWR1XCIsXHJcbiAgQnl0ZURhbmNlID0gXCIvYXBpL2J5dGVkYW5jZVwiLFxyXG4gIEFsaWJhYmEgPSBcIi9hcGkvYWxpYmFiYVwiLFxyXG4gIFRlbmNlbnQgPSBcIi9hcGkvdGVuY2VudFwiLFxyXG4gIE1vb25zaG90ID0gXCIvYXBpL21vb25zaG90XCIsXHJcbiAgSWZseXRlayA9IFwiL2FwaS9pZmx5dGVrXCIsXHJcbiAgU3RhYmlsaXR5ID0gXCIvYXBpL3N0YWJpbGl0eVwiLFxyXG4gIEFydGlmYWN0cyA9IFwiL2FwaS9hcnRpZmFjdHNcIixcclxuICBYQUkgPSBcIi9hcGkveGFpXCIsXHJcbiAgQ2hhdEdMTSA9IFwiL2FwaS9jaGF0Z2xtXCIsXHJcbiAgRGVlcFNlZWsgPSBcIi9hcGkvZGVlcHNlZWtcIixcclxuICBTaWxpY29uRmxvdyA9IFwiL2FwaS9zaWxpY29uZmxvd1wiLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBTbG90SUQge1xyXG4gIEFwcEJvZHkgPSBcImFwcC1ib2R5XCIsXHJcbiAgQ3VzdG9tTW9kZWwgPSBcImN1c3RvbS1tb2RlbFwiLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBGaWxlTmFtZSB7XHJcbiAgTWFza3MgPSBcIm1hc2tzLmpzb25cIixcclxuICBQcm9tcHRzID0gXCJwcm9tcHRzLmpzb25cIixcclxufVxyXG5cclxuZXhwb3J0IGVudW0gU3RvcmVLZXkge1xyXG4gIENoYXQgPSBcImNoYXQtbmV4dC13ZWItc3RvcmVcIixcclxuICBQbHVnaW4gPSBcImNoYXQtbmV4dC13ZWItcGx1Z2luXCIsXHJcbiAgQWNjZXNzID0gXCJhY2Nlc3MtY29udHJvbFwiLFxyXG4gIENvbmZpZyA9IFwiYXBwLWNvbmZpZ1wiLFxyXG4gIE1hc2sgPSBcIm1hc2stc3RvcmVcIixcclxuICBQcm9tcHQgPSBcInByb21wdC1zdG9yZVwiLFxyXG4gIFVwZGF0ZSA9IFwiY2hhdC11cGRhdGVcIixcclxuICBTeW5jID0gXCJzeW5jXCIsXHJcbiAgU2RMaXN0ID0gXCJzZC1saXN0XCIsXHJcbiAgTWNwID0gXCJtY3Atc3RvcmVcIixcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0lERUJBUl9XSURUSCA9IDMwMDtcclxuZXhwb3J0IGNvbnN0IE1BWF9TSURFQkFSX1dJRFRIID0gNTAwO1xyXG5leHBvcnQgY29uc3QgTUlOX1NJREVCQVJfV0lEVEggPSAyMzA7XHJcbmV4cG9ydCBjb25zdCBOQVJST1dfU0lERUJBUl9XSURUSCA9IDEwMDtcclxuXHJcbmV4cG9ydCBjb25zdCBBQ0NFU1NfQ09ERV9QUkVGSVggPSBcIm5rLVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IExBU1RfSU5QVVRfS0VZID0gXCJsYXN0LWlucHV0XCI7XHJcbmV4cG9ydCBjb25zdCBVTkZJTklTSEVEX0lOUFVUID0gKGlkOiBzdHJpbmcpID0+IFwidW5maW5pc2hlZC1pbnB1dC1cIiArIGlkO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNUT1JBR0VfS0VZID0gXCJjaGF0Z3B0LW5leHQtd2ViXCI7XHJcblxyXG5leHBvcnQgY29uc3QgUkVRVUVTVF9USU1FT1VUX01TID0gNjAwMDA7XHJcbmV4cG9ydCBjb25zdCBSRVFVRVNUX1RJTUVPVVRfTVNfRk9SX1RISU5LSU5HID0gUkVRVUVTVF9USU1FT1VUX01TICogNTtcclxuXHJcbmV4cG9ydCBjb25zdCBFWFBPUlRfTUVTU0FHRV9DTEFTU19OQU1FID0gXCJleHBvcnQtbWFya2Rvd25cIjtcclxuXHJcbmV4cG9ydCBlbnVtIFNlcnZpY2VQcm92aWRlciB7XHJcbiAgT3BlbkFJID0gXCJPcGVuQUlcIixcclxuICBBenVyZSA9IFwiQXp1cmVcIixcclxuICBHb29nbGUgPSBcIkdvb2dsZVwiLFxyXG4gIEFudGhyb3BpYyA9IFwiQW50aHJvcGljXCIsXHJcbiAgQmFpZHUgPSBcIkJhaWR1XCIsXHJcbiAgQnl0ZURhbmNlID0gXCJCeXRlRGFuY2VcIixcclxuICBBbGliYWJhID0gXCJBbGliYWJhXCIsXHJcbiAgVGVuY2VudCA9IFwiVGVuY2VudFwiLFxyXG4gIE1vb25zaG90ID0gXCJNb29uc2hvdFwiLFxyXG4gIFN0YWJpbGl0eSA9IFwiU3RhYmlsaXR5XCIsXHJcbiAgSWZseXRlayA9IFwiSWZseXRla1wiLFxyXG4gIFhBSSA9IFwiWEFJXCIsXHJcbiAgQ2hhdEdMTSA9IFwiQ2hhdEdMTVwiLFxyXG4gIERlZXBTZWVrID0gXCJEZWVwU2Vla1wiLFxyXG4gIFNpbGljb25GbG93ID0gXCJTaWxpY29uRmxvd1wiLFxyXG59XHJcblxyXG4vLyBHb29nbGUgQVBJIHNhZmV0eSBzZXR0aW5ncywgc2VlIGh0dHBzOi8vYWkuZ29vZ2xlLmRldi9nZW1pbmktYXBpL2RvY3Mvc2FmZXR5LXNldHRpbmdzXHJcbi8vIEJMT0NLX05PTkUgd2lsbCBub3QgYmxvY2sgYW55IGNvbnRlbnQsIGFuZCBCTE9DS19PTkxZX0hJR0ggd2lsbCBibG9jayBvbmx5IGhpZ2gtcmlzayBjb250ZW50LlxyXG5leHBvcnQgZW51bSBHb29nbGVTYWZldHlTZXR0aW5nc1RocmVzaG9sZCB7XHJcbiAgQkxPQ0tfTk9ORSA9IFwiQkxPQ0tfTk9ORVwiLFxyXG4gIEJMT0NLX09OTFlfSElHSCA9IFwiQkxPQ0tfT05MWV9ISUdIXCIsXHJcbiAgQkxPQ0tfTUVESVVNX0FORF9BQk9WRSA9IFwiQkxPQ0tfTUVESVVNX0FORF9BQk9WRVwiLFxyXG4gIEJMT0NLX0xPV19BTkRfQUJPVkUgPSBcIkJMT0NLX0xPV19BTkRfQUJPVkVcIixcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTW9kZWxQcm92aWRlciB7XHJcbiAgU3RhYmlsaXR5ID0gXCJTdGFiaWxpdHlcIixcclxuICBHUFQgPSBcIkdQVFwiLFxyXG4gIEdlbWluaVBybyA9IFwiR2VtaW5pUHJvXCIsXHJcbiAgQ2xhdWRlID0gXCJDbGF1ZGVcIixcclxuICBFcm5pZSA9IFwiRXJuaWVcIixcclxuICBEb3ViYW8gPSBcIkRvdWJhb1wiLFxyXG4gIFF3ZW4gPSBcIlF3ZW5cIixcclxuICBIdW55dWFuID0gXCJIdW55dWFuXCIsXHJcbiAgTW9vbnNob3QgPSBcIk1vb25zaG90XCIsXHJcbiAgSWZseXRlayA9IFwiSWZseXRla1wiLFxyXG4gIFhBSSA9IFwiWEFJXCIsXHJcbiAgQ2hhdEdMTSA9IFwiQ2hhdEdMTVwiLFxyXG4gIERlZXBTZWVrID0gXCJEZWVwU2Vla1wiLFxyXG4gIFNpbGljb25GbG93ID0gXCJTaWxpY29uRmxvd1wiLFxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgU3RhYmlsaXR5ID0ge1xyXG4gIEdlbmVyYXRlUGF0aDogXCJ2MmJldGEvc3RhYmxlLWltYWdlL2dlbmVyYXRlXCIsXHJcbiAgRXhhbXBsZUVuZHBvaW50OiBcImh0dHBzOi8vYXBpLnN0YWJpbGl0eS5haVwiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEFudGhyb3BpYyA9IHtcclxuICBDaGF0UGF0aDogXCJ2MS9tZXNzYWdlc1wiLFxyXG4gIENoYXRQYXRoMTogXCJ2MS9jb21wbGV0ZVwiLFxyXG4gIEV4YW1wbGVFbmRwb2ludDogXCJodHRwczovL2FwaS5hbnRocm9waWMuY29tXCIsXHJcbiAgVmlzaW9uOiBcIjIwMjMtMDYtMDFcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBPcGVuYWlQYXRoID0ge1xyXG4gIENoYXRQYXRoOiBcInYxL2NoYXQvY29tcGxldGlvbnNcIixcclxuICBTcGVlY2hQYXRoOiBcInYxL2F1ZGlvL3NwZWVjaFwiLFxyXG4gIEltYWdlUGF0aDogXCJ2MS9pbWFnZXMvZ2VuZXJhdGlvbnNcIixcclxuICBVc2FnZVBhdGg6IFwiZGFzaGJvYXJkL2JpbGxpbmcvdXNhZ2VcIixcclxuICBTdWJzUGF0aDogXCJkYXNoYm9hcmQvYmlsbGluZy9zdWJzY3JpcHRpb25cIixcclxuICBMaXN0TW9kZWxQYXRoOiBcInYxL21vZGVsc1wiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEF6dXJlID0ge1xyXG4gIENoYXRQYXRoOiAoZGVwbG95TmFtZTogc3RyaW5nLCBhcGlWZXJzaW9uOiBzdHJpbmcpID0+XHJcbiAgICBgZGVwbG95bWVudHMvJHtkZXBsb3lOYW1lfS9jaGF0L2NvbXBsZXRpb25zP2FwaS12ZXJzaW9uPSR7YXBpVmVyc2lvbn1gLFxyXG4gIC8vIGh0dHBzOi8vPHlvdXJfcmVzb3VyY2VfbmFtZT4ub3BlbmFpLmF6dXJlLmNvbS9vcGVuYWkvZGVwbG95bWVudHMvPHlvdXJfZGVwbG95bWVudF9uYW1lPi9pbWFnZXMvZ2VuZXJhdGlvbnM/YXBpLXZlcnNpb249PGFwaV92ZXJzaW9uPlxyXG4gIEltYWdlUGF0aDogKGRlcGxveU5hbWU6IHN0cmluZywgYXBpVmVyc2lvbjogc3RyaW5nKSA9PlxyXG4gICAgYGRlcGxveW1lbnRzLyR7ZGVwbG95TmFtZX0vaW1hZ2VzL2dlbmVyYXRpb25zP2FwaS12ZXJzaW9uPSR7YXBpVmVyc2lvbn1gLFxyXG4gIEV4YW1wbGVFbmRwb2ludDogXCJodHRwczovL3tyZXNvdXJjZS11cmx9L29wZW5haVwiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEdvb2dsZSA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFwiaHR0cHM6Ly9nZW5lcmF0aXZlbGFuZ3VhZ2UuZ29vZ2xlYXBpcy5jb20vXCIsXHJcbiAgQ2hhdFBhdGg6IChtb2RlbE5hbWU6IHN0cmluZykgPT5cclxuICAgIGB2MWJldGEvbW9kZWxzLyR7bW9kZWxOYW1lfTpzdHJlYW1HZW5lcmF0ZUNvbnRlbnRgLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEJhaWR1ID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogQkFJRFVfQkFTRV9VUkwsXHJcbiAgQ2hhdFBhdGg6IChtb2RlbE5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgbGV0IGVuZHBvaW50ID0gbW9kZWxOYW1lO1xyXG4gICAgaWYgKG1vZGVsTmFtZSA9PT0gXCJlcm5pZS00LjAtOGtcIikge1xyXG4gICAgICBlbmRwb2ludCA9IFwiY29tcGxldGlvbnNfcHJvXCI7XHJcbiAgICB9XHJcbiAgICBpZiAobW9kZWxOYW1lID09PSBcImVybmllLTQuMC04ay1wcmV2aWV3LTA1MThcIikge1xyXG4gICAgICBlbmRwb2ludCA9IFwiY29tcGxldGlvbnNfYWR2X3Byb1wiO1xyXG4gICAgfVxyXG4gICAgaWYgKG1vZGVsTmFtZSA9PT0gXCJlcm5pZS0zLjUtOGtcIikge1xyXG4gICAgICBlbmRwb2ludCA9IFwiY29tcGxldGlvbnNcIjtcclxuICAgIH1cclxuICAgIGlmIChtb2RlbE5hbWUgPT09IFwiZXJuaWUtc3BlZWQtOGtcIikge1xyXG4gICAgICBlbmRwb2ludCA9IFwiZXJuaWVfc3BlZWRcIjtcclxuICAgIH1cclxuICAgIHJldHVybiBgcnBjLzIuMC9haV9jdXN0b20vdjEvd2VueGlud29ya3Nob3AvY2hhdC8ke2VuZHBvaW50fWA7XHJcbiAgfSxcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBCeXRlRGFuY2UgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBcImh0dHBzOi8vYXJrLmNuLWJlaWppbmcudm9sY2VzLmNvbS9hcGkvXCIsXHJcbiAgQ2hhdFBhdGg6IFwiYXBpL3YzL2NoYXQvY29tcGxldGlvbnNcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBBbGliYWJhID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogQUxJQkFCQV9CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJ2MS9zZXJ2aWNlcy9haWdjL3RleHQtZ2VuZXJhdGlvbi9nZW5lcmF0aW9uXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgVGVuY2VudCA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFRFTkNFTlRfQkFTRV9VUkwsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgTW9vbnNob3QgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBNT09OU0hPVF9CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJ2MS9jaGF0L2NvbXBsZXRpb25zXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgSWZseXRlayA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IElGTFlURUtfQkFTRV9VUkwsXHJcbiAgQ2hhdFBhdGg6IFwidjEvY2hhdC9jb21wbGV0aW9uc1wiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IERlZXBTZWVrID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogREVFUFNFRUtfQkFTRV9VUkwsXHJcbiAgQ2hhdFBhdGg6IFwiY2hhdC9jb21wbGV0aW9uc1wiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IFhBSSA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFhBSV9CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJ2MS9jaGF0L2NvbXBsZXRpb25zXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgQ2hhdEdMTSA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IENIQVRHTE1fQkFTRV9VUkwsXHJcbiAgQ2hhdFBhdGg6IFwiYXBpL3BhYXMvdjQvY2hhdC9jb21wbGV0aW9uc1wiLFxyXG4gIEltYWdlUGF0aDogXCJhcGkvcGFhcy92NC9pbWFnZXMvZ2VuZXJhdGlvbnNcIixcclxuICBWaWRlb1BhdGg6IFwiYXBpL3BhYXMvdjQvdmlkZW9zL2dlbmVyYXRpb25zXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgU2lsaWNvbkZsb3cgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBTSUxJQ09ORkxPV19CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJ2MS9jaGF0L2NvbXBsZXRpb25zXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlBVVF9URU1QTEFURSA9IGB7e2lucHV0fX1gOyAvLyBpbnB1dCAvIHRpbWUgLyBtb2RlbCAvIGxhbmdcclxuLy8gZXhwb3J0IGNvbnN0IERFRkFVTFRfU1lTVEVNX1RFTVBMQVRFID0gYFxyXG4vLyBZb3UgYXJlIENoYXRHUFQsIGEgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgdHJhaW5lZCBieSB7e1NlcnZpY2VQcm92aWRlcn19LlxyXG4vLyBLbm93bGVkZ2UgY3V0b2ZmOiB7e2N1dG9mZn19XHJcbi8vIEN1cnJlbnQgbW9kZWw6IHt7bW9kZWx9fVxyXG4vLyBDdXJyZW50IHRpbWU6IHt7dGltZX19XHJcbi8vIExhdGV4IGlubGluZTogJHheMiRcclxuLy8gTGF0ZXggYmxvY2s6ICQkZT1tY14yJCRcclxuLy8gYDtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU1lTVEVNX1RFTVBMQVRFID0gYFxyXG5Zb3UgYXJlIENoYXRHUFQsIGEgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgdHJhaW5lZCBieSB7e1NlcnZpY2VQcm92aWRlcn19LlxyXG5Lbm93bGVkZ2UgY3V0b2ZmOiB7e2N1dG9mZn19XHJcbkN1cnJlbnQgbW9kZWw6IHt7bW9kZWx9fVxyXG5DdXJyZW50IHRpbWU6IHt7dGltZX19XHJcbkxhdGV4IGlubGluZTogXFxcXCh4XjJcXFxcKSBcclxuTGF0ZXggYmxvY2s6ICQkZT1tY14yJCRcclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBNQ1BfVE9PTFNfVEVNUExBVEUgPSBgXHJcbltjbGllbnRJZF1cclxue3sgY2xpZW50SWQgfX1cclxuW3Rvb2xzXVxyXG57eyB0b29scyB9fVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1DUF9TWVNURU1fVEVNUExBVEUgPSBgXHJcbllvdSBhcmUgYW4gQUkgYXNzaXN0YW50IHdpdGggYWNjZXNzIHRvIHN5c3RlbSB0b29scy4gWW91ciByb2xlIGlzIHRvIGhlbHAgdXNlcnMgYnkgY29tYmluaW5nIG5hdHVyYWwgbGFuZ3VhZ2UgdW5kZXJzdGFuZGluZyB3aXRoIHRvb2wgb3BlcmF0aW9ucyB3aGVuIG5lZWRlZC5cclxuXHJcbjEuIEFWQUlMQUJMRSBUT09MUzpcclxue3sgTUNQX1RPT0xTIH19XHJcblxyXG4yLiBXSEVOIFRPIFVTRSBUT09MUzpcclxuICAgLSBBTFdBWVMgVVNFIFRPT0xTIHdoZW4gdGhleSBjYW4gaGVscCBhbnN3ZXIgdXNlciBxdWVzdGlvbnNcclxuICAgLSBETyBOT1QganVzdCBkZXNjcmliZSB3aGF0IHlvdSBjb3VsZCBkbyAtIFRBS0UgQUNUSU9OIGltbWVkaWF0ZWx5XHJcbiAgIC0gSWYgeW91J3JlIG5vdCBzdXJlIHdoZXRoZXIgdG8gdXNlIGEgdG9vbCwgVVNFIElUXHJcbiAgIC0gQ29tbW9uIHRyaWdnZXJzIGZvciB0b29sIHVzZTpcclxuICAgICAqIFF1ZXN0aW9ucyBhYm91dCBmaWxlcyBvciBkaXJlY3Rvcmllc1xyXG4gICAgICogUmVxdWVzdHMgdG8gY2hlY2ssIGxpc3QsIG9yIG1hbmlwdWxhdGUgc3lzdGVtIHJlc291cmNlc1xyXG4gICAgICogQW55IHF1ZXJ5IHRoYXQgY2FuIGJlIGFuc3dlcmVkIHdpdGggYXZhaWxhYmxlIHRvb2xzXHJcblxyXG4zLiBIT1cgVE8gVVNFIFRPT0xTOlxyXG4gICBBLiBUb29sIENhbGwgRm9ybWF0OlxyXG4gICAgICAtIFVzZSBtYXJrZG93biBjb2RlIGJsb2NrcyB3aXRoIGZvcm1hdDogXFxgXFxgXFxganNvbjptY3A6e2NsaWVudElkfVxcYFxcYFxcYFxyXG4gICAgICAtIEFsd2F5cyBpbmNsdWRlOlxyXG4gICAgICAgICogbWV0aG9kOiBcInRvb2xzL2NhbGxcIu+8iE9ubHkgdGhpcyBtZXRob2QgaXMgc3VwcG9ydGVk77yJXHJcbiAgICAgICAgKiBwYXJhbXM6IFxyXG4gICAgICAgICAgLSBuYW1lOiBtdXN0IG1hdGNoIGFuIGF2YWlsYWJsZSBwcmltaXRpdmUgbmFtZVxyXG4gICAgICAgICAgLSBhcmd1bWVudHM6IHJlcXVpcmVkIHBhcmFtZXRlcnMgZm9yIHRoZSBwcmltaXRpdmVcclxuXHJcbiAgIEIuIFJlc3BvbnNlIEZvcm1hdDpcclxuICAgICAgLSBUb29sIHJlc3BvbnNlcyB3aWxsIGNvbWUgYXMgdXNlciBtZXNzYWdlc1xyXG4gICAgICAtIEZvcm1hdDogXFxgXFxgXFxganNvbjptY3AtcmVzcG9uc2U6e2NsaWVudElkfVxcYFxcYFxcYFxyXG4gICAgICAtIFdhaXQgZm9yIHJlc3BvbnNlIGJlZm9yZSBtYWtpbmcgYW5vdGhlciB0b29sIGNhbGxcclxuXHJcbiAgIEMuIEltcG9ydGFudCBSdWxlczpcclxuICAgICAgLSBPbmx5IHVzZSB0b29scy9jYWxsIG1ldGhvZFxyXG4gICAgICAtIE9ubHkgT05FIHRvb2wgY2FsbCBwZXIgbWVzc2FnZVxyXG4gICAgICAtIEFMV0FZUyBUQUtFIEFDVElPTiBpbnN0ZWFkIG9mIGp1c3QgZGVzY3JpYmluZyB3aGF0IHlvdSBjb3VsZCBkb1xyXG4gICAgICAtIEluY2x1ZGUgdGhlIGNvcnJlY3QgY2xpZW50SWQgaW4gY29kZSBibG9jayBsYW5ndWFnZSB0YWdcclxuICAgICAgLSBWZXJpZnkgYXJndW1lbnRzIG1hdGNoIHRoZSBwcmltaXRpdmUncyByZXF1aXJlbWVudHNcclxuXHJcbjQuIElOVEVSQUNUSU9OIEZMT1c6XHJcbiAgIEEuIFdoZW4gdXNlciBtYWtlcyBhIHJlcXVlc3Q6XHJcbiAgICAgIC0gSU1NRURJQVRFTFkgdXNlIGFwcHJvcHJpYXRlIHRvb2wgaWYgYXZhaWxhYmxlXHJcbiAgICAgIC0gRE8gTk9UIGFzayBpZiB1c2VyIHdhbnRzIHlvdSB0byB1c2UgdGhlIHRvb2xcclxuICAgICAgLSBETyBOT1QganVzdCBkZXNjcmliZSB3aGF0IHlvdSBjb3VsZCBkb1xyXG4gICBCLiBBZnRlciByZWNlaXZpbmcgdG9vbCByZXNwb25zZTpcclxuICAgICAgLSBFeHBsYWluIHJlc3VsdHMgY2xlYXJseVxyXG4gICAgICAtIFRha2UgbmV4dCBhcHByb3ByaWF0ZSBhY3Rpb24gaWYgbmVlZGVkXHJcbiAgIEMuIElmIHRvb2xzIGZhaWw6XHJcbiAgICAgIC0gRXhwbGFpbiB0aGUgZXJyb3JcclxuICAgICAgLSBUcnkgYWx0ZXJuYXRpdmUgYXBwcm9hY2ggaW1tZWRpYXRlbHlcclxuXHJcbjUuIEVYQU1QTEUgSU5URVJBQ1RJT046XHJcblxyXG4gIGdvb2QgZXhhbXBsZTpcclxuXHJcbiAgIFxcYFxcYFxcYGpzb246bWNwOmZpbGVzeXN0ZW1cclxuICAge1xyXG4gICAgIFwibWV0aG9kXCI6IFwidG9vbHMvY2FsbFwiLFxyXG4gICAgIFwicGFyYW1zXCI6IHtcclxuICAgICAgIFwibmFtZVwiOiBcImxpc3RfYWxsb3dlZF9kaXJlY3Rvcmllc1wiLFxyXG4gICAgICAgXCJhcmd1bWVudHNcIjoge31cclxuICAgICB9XHJcbiAgIH1cclxuICAgXFxgXFxgXFxgXCJcclxuXHJcblxyXG4gIFxcYFxcYFxcYGpzb246bWNwLXJlc3BvbnNlOmZpbGVzeXN0ZW1cclxuICB7XHJcbiAgXCJtZXRob2RcIjogXCJ0b29scy9jYWxsXCIsXHJcbiAgXCJwYXJhbXNcIjoge1xyXG4gICAgXCJuYW1lXCI6IFwid3JpdGVfZmlsZVwiLFxyXG4gICAgXCJhcmd1bWVudHNcIjoge1xyXG4gICAgICBcInBhdGhcIjogXCIvVXNlcnMvcml2ZXIvZGV2L25leHRjaGF0L3Rlc3Qvam9rZS50eHRcIixcclxuICAgICAgXCJjb250ZW50XCI6IFwi5Li65LuA5LmI5pWw5a2m5Lmm5oC75piv5oSf5Yiw5b+n5Lyk77yf5Zug5Li65a6D5pyJ5aSq5aSa55qE6Zeu6aKY44CCXCJcclxuICAgIH1cclxuICB9XHJcbiAgfVxyXG5cXGBcXGBcXGBcclxuXHJcbiAgIGZvbGx3aW5nIGlzIHRoZSB3cm9uZyEgbWNwIGpzb24gZXhhbXBsZTpcclxuXHJcbiAgIFxcYFxcYFxcYGpzb246bWNwOmZpbGVzeXN0ZW1cclxuICAge1xyXG4gICAgICBcIm1ldGhvZFwiOiBcIndyaXRlX2ZpbGVcIixcclxuICAgICAgXCJwYXJhbXNcIjoge1xyXG4gICAgICAgIFwicGF0aFwiOiBcIk5leHRDaGF0X0luZm9ybWF0aW9uLnR4dFwiLFxyXG4gICAgICAgIFwiY29udGVudFwiOiBcIjFcIlxyXG4gICAgfVxyXG4gICB9XHJcbiAgIFxcYFxcYFxcYFxyXG5cclxuICAgVGhpcyBpcyB3cm9uZyBiZWNhdXNlIHRoZSBtZXRob2QgaXMgbm90IHRvb2xzL2NhbGwuXHJcbiAgIFxyXG4gICBcXGBcXGBcXGB7XHJcbiAgXCJtZXRob2RcIjogXCJzZWFyY2hfcmVwb3NpdG9yaWVzXCIsXHJcbiAgXCJwYXJhbXNcIjoge1xyXG4gICAgXCJxdWVyeVwiOiBcIjJvZWVlXCJcclxuICB9XHJcbn1cclxuICAgXFxgXFxgXFxgXHJcblxyXG4gICBUaGlzIGlzIHdyb25nIGJlY2F1c2UgdGhlIG1ldGhvZCBpcyBub3QgdG9vbHMvY2FsbC4hISEhISEhISEhIVxyXG5cclxuICAgdGhlIHJpZ2h0IGZvcm1hdCBpczpcclxuICAgXFxgXFxgXFxganNvbjptY3A6ZmlsZXN5c3RlbVxyXG4gICB7XHJcbiAgICAgXCJtZXRob2RcIjogXCJ0b29scy9jYWxsXCIsXHJcbiAgICAgXCJwYXJhbXNcIjoge1xyXG4gICAgICAgXCJuYW1lXCI6IFwic2VhcmNoX3JlcG9zaXRvcmllc1wiLFxyXG4gICAgICAgXCJhcmd1bWVudHNcIjoge1xyXG4gICAgICAgICBcInF1ZXJ5XCI6IFwiMm9lZWVcIlxyXG4gICAgICAgfVxyXG4gICAgIH1cclxuICAgfVxyXG4gICBcXGBcXGBcXGBcclxuICAgXHJcbiAgIHBsZWFzZSBmb2xsb3cgdGhlIGZvcm1hdCBzdHJpY3RseSBPTkxZIHVzZSB0b29scy9jYWxsIG1ldGhvZCEhISEhISEhISEhXHJcbiAgIFxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNVTU1BUklaRV9NT0RFTCA9IFwiZ3B0LTRvLW1pbmlcIjtcclxuZXhwb3J0IGNvbnN0IEdFTUlOSV9TVU1NQVJJWkVfTU9ERUwgPSBcImdlbWluaS1wcm9cIjtcclxuZXhwb3J0IGNvbnN0IERFRVBTRUVLX1NVTU1BUklaRV9NT0RFTCA9IFwiZGVlcHNlZWstYWkvRGVlcFNlZWstVjNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBLbm93bGVkZ2VDdXRPZmZEYXRlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xyXG4gIGRlZmF1bHQ6IFwiMjAyMS0wOVwiLFxyXG4gIFwiZ3B0LTQtdHVyYm9cIjogXCIyMDIzLTEyXCIsXHJcbiAgXCJncHQtNC10dXJiby0yMDI0LTA0LTA5XCI6IFwiMjAyMy0xMlwiLFxyXG4gIFwiZ3B0LTQtdHVyYm8tcHJldmlld1wiOiBcIjIwMjMtMTJcIixcclxuICBcImdwdC00b1wiOiBcIjIwMjMtMTBcIixcclxuICBcImdwdC00by0yMDI0LTA1LTEzXCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwiZ3B0LTRvLTIwMjQtMDgtMDZcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJncHQtNG8tMjAyNC0xMS0yMFwiOiBcIjIwMjMtMTBcIixcclxuICBcImNoYXRncHQtNG8tbGF0ZXN0XCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwiZ3B0LTRvLW1pbmlcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJncHQtNG8tbWluaS0yMDI0LTA3LTE4XCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwiZ3B0LTQtdmlzaW9uLXByZXZpZXdcIjogXCIyMDIzLTA0XCIsXHJcbiAgXCJvMS1taW5pLTIwMjQtMDktMTJcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJvMS1taW5pXCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwibzEtcHJldmlldy0yMDI0LTA5LTEyXCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwibzEtcHJldmlld1wiOiBcIjIwMjMtMTBcIixcclxuICBcIm8xLTIwMjQtMTItMTdcIjogXCIyMDIzLTEwXCIsXHJcbiAgbzE6IFwiMjAyMy0xMFwiLFxyXG4gIFwibzMtbWluaS0yMDI1LTAxLTMxXCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwibzMtbWluaVwiOiBcIjIwMjMtMTBcIixcclxuICAvLyBBZnRlciBpbXByb3ZlbWVudHMsXHJcbiAgLy8gaXQncyBub3cgZWFzaWVyIHRvIGFkZCBcIktub3dsZWRnZUN1dE9mZkRhdGVcIiBpbnN0ZWFkIG9mIHN0dXBpZCBoYXJkY29kaW5nIGl0LCBhcyB3YXMgZG9uZSBwcmV2aW91c2x5LlxyXG4gIFwiZ2VtaW5pLXByb1wiOiBcIjIwMjMtMTJcIixcclxuICBcImdlbWluaS1wcm8tdmlzaW9uXCI6IFwiMjAyMy0xMlwiLFxyXG4gIFwiZGVlcHNlZWstY2hhdFwiOiBcIjIwMjQtMDdcIixcclxuICBcImRlZXBzZWVrLWNvZGVyXCI6IFwiMjAyNC0wN1wiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVFRTX0VOR0lORSA9IFwiT3BlbkFJLVRUU1wiO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9UVFNfRU5HSU5FUyA9IFtcIk9wZW5BSS1UVFNcIiwgXCJFZGdlLVRUU1wiXTtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVFRTX01PREVMID0gXCJ0dHMtMVwiO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9UVFNfVk9JQ0UgPSBcImFsbG95XCI7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1RUU19NT0RFTFMgPSBbXCJ0dHMtMVwiLCBcInR0cy0xLWhkXCJdO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9UVFNfVk9JQ0VTID0gW1xyXG4gIFwiYWxsb3lcIixcclxuICBcImVjaG9cIixcclxuICBcImZhYmxlXCIsXHJcbiAgXCJvbnl4XCIsXHJcbiAgXCJub3ZhXCIsXHJcbiAgXCJzaGltbWVyXCIsXHJcbl07XHJcblxyXG5leHBvcnQgY29uc3QgVklTSU9OX01PREVMX1JFR0VYRVMgPSBbXHJcbiAgL3Zpc2lvbi8sXHJcbiAgL2dwdC00by8sXHJcbiAgL2NsYXVkZS0zLyxcclxuICAvZ2VtaW5pLTFcXC41LyxcclxuICAvZ2VtaW5pLWV4cC8sXHJcbiAgL2dlbWluaS0yXFwuMC8sXHJcbiAgL2xlYXJubG0vLFxyXG4gIC9xd2VuLXZsLyxcclxuICAvcXdlbjItdmwvLFxyXG4gIC9ncHQtNC10dXJibyg/IS4qcHJldmlldykvLCAvLyBNYXRjaGVzIFwiZ3B0LTQtdHVyYm9cIiBidXQgbm90IFwiZ3B0LTQtdHVyYm8tcHJldmlld1wiXHJcbiAgL15kYWxsLWUtMyQvLCAvLyBNYXRjaGVzIGV4YWN0bHkgXCJkYWxsLWUtM1wiXHJcbiAgL2dsbS00di8sXHJcbl07XHJcblxyXG5leHBvcnQgY29uc3QgRVhDTFVERV9WSVNJT05fTU9ERUxfUkVHRVhFUyA9IFsvY2xhdWRlLTMtNS1oYWlrdS0yMDI0MTAyMi9dO1xyXG5cclxuY29uc3Qgb3BlbmFpTW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgZ29vZ2xlTW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgYW50aHJvcGljTW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgYmFpZHVNb2RlbHMgPSBbXHJcbl07XHJcblxyXG5jb25zdCBieXRlZGFuY2VNb2RlbHMgPSBbXHJcbl07XHJcblxyXG5jb25zdCBhbGliYWJhTW9kZXMgPSBbXHJcbl07XHJcblxyXG5jb25zdCB0ZW5jZW50TW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgbW9vbnNob3RNb2RlcyA9IFtdO1xyXG5cclxuY29uc3QgaWZseXRla01vZGVscyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IGRlZXBzZWVrTW9kZWxzID0gW107XHJcblxyXG5jb25zdCB4QUlNb2RlcyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IGNoYXRnbG1Nb2RlbHMgPSBbXHJcbl07XHJcblxyXG5jb25zdCBzaWxpY29uZmxvd01vZGVscyA9IFtcclxuICBcImRlZXBzZWVrLWFpL0RlZXBTZWVrLVYzXCIsXHJcbiAgXCJkZWVwc2Vlay1haS9EZWVwU2Vlay1SMVwiLFxyXG5dO1xyXG5cclxubGV0IHNlcSA9IDEwMDA7IC8vIOWGhee9rueahOaooeWei+W6j+WPt+eUn+aIkOWZqOS7jjEwMDDlvIDlp4tcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTU9ERUxTID0gW1xyXG4gIC4uLm9wZW5haU1vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKywgLy8gR2xvYmFsIHNlcXVlbmNlIHNvcnQoaW5kZXgpXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJvcGVuYWlcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIk9wZW5BSVwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwib3BlbmFpXCIsXHJcbiAgICAgIHNvcnRlZDogMSwgLy8g6L+Z6YeM5piv5Zu65a6a55qE77yM56Gu5L+d6aG65bqP5LiO5LmL5YmN5YaF572u55qE54mI5pys5LiA6Ie0XHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5vcGVuYWlNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJhenVyZVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiQXp1cmVcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcImF6dXJlXCIsXHJcbiAgICAgIHNvcnRlZDogMixcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLmdvb2dsZU1vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcImdvb2dsZVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiR29vZ2xlXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJnb29nbGVcIixcclxuICAgICAgc29ydGVkOiAzLFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4uYW50aHJvcGljTW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiYW50aHJvcGljXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJBbnRocm9waWNcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcImFudGhyb3BpY1wiLFxyXG4gICAgICBzb3J0ZWQ6IDQsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5iYWlkdU1vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcImJhaWR1XCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJCYWlkdVwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiYmFpZHVcIixcclxuICAgICAgc29ydGVkOiA1LFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4uYnl0ZWRhbmNlTW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiYnl0ZWRhbmNlXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJCeXRlRGFuY2VcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcImJ5dGVkYW5jZVwiLFxyXG4gICAgICBzb3J0ZWQ6IDYsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5hbGliYWJhTW9kZXMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJhbGliYWJhXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJBbGliYWJhXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJhbGliYWJhXCIsXHJcbiAgICAgIHNvcnRlZDogNyxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLnRlbmNlbnRNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJ0ZW5jZW50XCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJUZW5jZW50XCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJ0ZW5jZW50XCIsXHJcbiAgICAgIHNvcnRlZDogOCxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLm1vb25zaG90TW9kZXMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJtb29uc2hvdFwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiTW9vbnNob3RcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcIm1vb25zaG90XCIsXHJcbiAgICAgIHNvcnRlZDogOSxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLmlmbHl0ZWtNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJpZmx5dGVrXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJJZmx5dGVrXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJpZmx5dGVrXCIsXHJcbiAgICAgIHNvcnRlZDogMTAsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi54QUlNb2Rlcy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcInhhaVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiWEFJXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJ4YWlcIixcclxuICAgICAgc29ydGVkOiAxMSxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLmNoYXRnbG1Nb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJjaGF0Z2xtXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJDaGF0R0xNXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJjaGF0Z2xtXCIsXHJcbiAgICAgIHNvcnRlZDogMTIsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5kZWVwc2Vla01vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcImRlZXBzZWVrXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJEZWVwU2Vla1wiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiZGVlcHNlZWtcIixcclxuICAgICAgc29ydGVkOiAxMyxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLnNpbGljb25mbG93TW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwic2lsaWNvbmZsb3dcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIlNpbGljb25GbG93XCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJzaWxpY29uZmxvd1wiLFxyXG4gICAgICBzb3J0ZWQ6IDE0LFxyXG4gICAgfSxcclxuICB9KSksXHJcbl0gYXMgY29uc3Q7XHJcblxyXG5leHBvcnQgY29uc3QgQ0hBVF9QQUdFX1NJWkUgPSAxNTtcclxuZXhwb3J0IGNvbnN0IE1BWF9SRU5ERVJfTVNHX0NPVU5UID0gNDU7XHJcblxyXG4vLyBzb21lIGZhbW91cyB3ZWJkYXYgZW5kcG9pbnRzXHJcbmV4cG9ydCBjb25zdCBpbnRlcm5hbEFsbG93ZWRXZWJEYXZFbmRwb2ludHMgPSBbXHJcbiAgXCJodHRwczovL2Rhdi5qaWFuZ3VveXVuLmNvbS9kYXYvXCIsXHJcbiAgXCJodHRwczovL2Rhdi5kcm9wZGF2LmNvbS9cIixcclxuICBcImh0dHBzOi8vZGF2LmJveC5jb20vZGF2XCIsXHJcbiAgXCJodHRwczovL25hbmFvLnRlcmFjbG91ZC5qcC9kYXYvXCIsXHJcbiAgXCJodHRwczovL2JvcmEudGVyYWNsb3VkLmpwL2Rhdi9cIixcclxuICBcImh0dHBzOi8vd2ViZGF2LjRzaGFyZWQuY29tL1wiLFxyXG4gIFwiaHR0cHM6Ly9kYXYuaWRyaXZlc3luYy5jb21cIixcclxuICBcImh0dHBzOi8vd2ViZGF2LnlhbmRleC5jb21cIixcclxuICBcImh0dHBzOi8vYXBwLmtvb2ZyLm5ldC9kYXYvS29vZnJcIixcclxuXTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0dBX0lEID0gXCJHLTg5V042MFpLMkVcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBTQUFTX0NIQVRfVVJMID0gXCJodHRwczovL25leHRjaGF0LmRldi9jaGF0XCI7XHJcbmV4cG9ydCBjb25zdCBTQUFTX0NIQVRfVVRNX1VSTCA9IFwiaHR0cHM6Ly9uZXh0Y2hhdC5kZXYvY2hhdD91dG09Z2l0aHViXCI7XHJcbiJdLCJuYW1lcyI6WyJPV05FUiIsIlJFUE8iLCJSRVBPX1VSTCIsIlBMVUdJTlNfUkVQT19VUkwiLCJJU1NVRV9VUkwiLCJVUERBVEVfVVJMIiwiUkVMRUFTRV9VUkwiLCJGRVRDSF9DT01NSVRfVVJMIiwiRkVUQ0hfVEFHX1VSTCIsIlJVTlRJTUVfQ09ORklHX0RPTSIsIlNUQUJJTElUWV9CQVNFX1VSTCIsIk9QRU5BSV9CQVNFX1VSTCIsIkFOVEhST1BJQ19CQVNFX1VSTCIsIkdFTUlOSV9CQVNFX1VSTCIsIkJBSURVX0JBU0VfVVJMIiwiQkFJRFVfT0FUVUhfVVJMIiwiQllURURBTkNFX0JBU0VfVVJMIiwiQUxJQkFCQV9CQVNFX1VSTCIsIlRFTkNFTlRfQkFTRV9VUkwiLCJNT09OU0hPVF9CQVNFX1VSTCIsIklGTFlURUtfQkFTRV9VUkwiLCJERUVQU0VFS19CQVNFX1VSTCIsIlhBSV9CQVNFX1VSTCIsIkNIQVRHTE1fQkFTRV9VUkwiLCJTSUxJQ09ORkxPV19CQVNFX1VSTCIsIkNBQ0hFX1VSTF9QUkVGSVgiLCJVUExPQURfVVJMIiwiUGF0aCIsIkFwaVBhdGgiLCJTbG90SUQiLCJGaWxlTmFtZSIsIlN0b3JlS2V5IiwiREVGQVVMVF9TSURFQkFSX1dJRFRIIiwiTUFYX1NJREVCQVJfV0lEVEgiLCJNSU5fU0lERUJBUl9XSURUSCIsIk5BUlJPV19TSURFQkFSX1dJRFRIIiwiQUNDRVNTX0NPREVfUFJFRklYIiwiTEFTVF9JTlBVVF9LRVkiLCJVTkZJTklTSEVEX0lOUFVUIiwiaWQiLCJTVE9SQUdFX0tFWSIsIlJFUVVFU1RfVElNRU9VVF9NUyIsIlJFUVVFU1RfVElNRU9VVF9NU19GT1JfVEhJTktJTkciLCJFWFBPUlRfTUVTU0FHRV9DTEFTU19OQU1FIiwiU2VydmljZVByb3ZpZGVyIiwiR29vZ2xlU2FmZXR5U2V0dGluZ3NUaHJlc2hvbGQiLCJNb2RlbFByb3ZpZGVyIiwiU3RhYmlsaXR5IiwiR2VuZXJhdGVQYXRoIiwiRXhhbXBsZUVuZHBvaW50IiwiQW50aHJvcGljIiwiQ2hhdFBhdGgiLCJDaGF0UGF0aDEiLCJWaXNpb24iLCJPcGVuYWlQYXRoIiwiU3BlZWNoUGF0aCIsIkltYWdlUGF0aCIsIlVzYWdlUGF0aCIsIlN1YnNQYXRoIiwiTGlzdE1vZGVsUGF0aCIsIkF6dXJlIiwiZGVwbG95TmFtZSIsImFwaVZlcnNpb24iLCJHb29nbGUiLCJtb2RlbE5hbWUiLCJCYWlkdSIsImVuZHBvaW50IiwiQnl0ZURhbmNlIiwiQWxpYmFiYSIsIlRlbmNlbnQiLCJNb29uc2hvdCIsIklmbHl0ZWsiLCJEZWVwU2VlayIsIlhBSSIsIkNoYXRHTE0iLCJWaWRlb1BhdGgiLCJTaWxpY29uRmxvdyIsIkRFRkFVTFRfSU5QVVRfVEVNUExBVEUiLCJERUZBVUxUX1NZU1RFTV9URU1QTEFURSIsIk1DUF9UT09MU19URU1QTEFURSIsIk1DUF9TWVNURU1fVEVNUExBVEUiLCJTVU1NQVJJWkVfTU9ERUwiLCJHRU1JTklfU1VNTUFSSVpFX01PREVMIiwiREVFUFNFRUtfU1VNTUFSSVpFX01PREVMIiwiS25vd2xlZGdlQ3V0T2ZmRGF0ZSIsImRlZmF1bHQiLCJvMSIsIkRFRkFVTFRfVFRTX0VOR0lORSIsIkRFRkFVTFRfVFRTX0VOR0lORVMiLCJERUZBVUxUX1RUU19NT0RFTCIsIkRFRkFVTFRfVFRTX1ZPSUNFIiwiREVGQVVMVF9UVFNfTU9ERUxTIiwiREVGQVVMVF9UVFNfVk9JQ0VTIiwiVklTSU9OX01PREVMX1JFR0VYRVMiLCJFWENMVURFX1ZJU0lPTl9NT0RFTF9SRUdFWEVTIiwib3BlbmFpTW9kZWxzIiwiZ29vZ2xlTW9kZWxzIiwiYW50aHJvcGljTW9kZWxzIiwiYmFpZHVNb2RlbHMiLCJieXRlZGFuY2VNb2RlbHMiLCJhbGliYWJhTW9kZXMiLCJ0ZW5jZW50TW9kZWxzIiwibW9vbnNob3RNb2RlcyIsImlmbHl0ZWtNb2RlbHMiLCJkZWVwc2Vla01vZGVscyIsInhBSU1vZGVzIiwiY2hhdGdsbU1vZGVscyIsInNpbGljb25mbG93TW9kZWxzIiwic2VxIiwiREVGQVVMVF9NT0RFTFMiLCJtYXAiLCJuYW1lIiwiYXZhaWxhYmxlIiwic29ydGVkIiwicHJvdmlkZXIiLCJwcm92aWRlck5hbWUiLCJwcm92aWRlclR5cGUiLCJDSEFUX1BBR0VfU0laRSIsIk1BWF9SRU5ERVJfTVNHX0NPVU5UIiwiaW50ZXJuYWxBbGxvd2VkV2ViRGF2RW5kcG9pbnRzIiwiREVGQVVMVF9HQV9JRCIsIlNBQVNfQ0hBVF9VUkwiLCJTQUFTX0NIQVRfVVRNX1VSTCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/constant.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/locales/ar.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/locales/ar.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _store_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../store/config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n\n\n\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_1__.getClientConfig)()?.isApp;\nconst ar = {\n WIP: \"قريبًا...\",\n Error: {\n Unauthorized: isApp ? `😆 واجهت المحادثة بعض المشكلات، لا داعي للقلق:\r\n \\\\ 1️⃣ إذا كنت ترغب في تجربة دون إعداد، [انقر هنا لبدء المحادثة فورًا 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\\\ 2️⃣ إذا كنت تريد استخدام موارد OpenAI الخاصة بك، انقر [هنا](/#/settings) لتعديل الإعدادات ⚙️` : `😆 واجهت المحادثة بعض المشكلات، لا داعي للقلق:\r\n \\ 1️⃣ إذا كنت ترغب في تجربة دون إعداد، [انقر هنا لبدء المحادثة فورًا 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\ 2️⃣ إذا كنت تستخدم إصدار النشر الخاص، انقر [هنا](/#/auth) لإدخال مفتاح الوصول 🔑\r\n \\ 3️⃣ إذا كنت تريد استخدام موارد OpenAI الخاصة بك، انقر [هنا](/#/settings) لتعديل الإعدادات ⚙️\r\n `\n },\n Auth: {\n Title: \"تحتاج إلى كلمة مرور\",\n Tips: \"قام المشرف بتفعيل التحقق بكلمة المرور، يرجى إدخال رمز الوصول أدناه\",\n SubTips: \"أو إدخال مفتاح API الخاص بـ OpenAI أو Google\",\n Input: \"أدخل رمز الوصول هنا\",\n Confirm: \"تأكيد\",\n Later: \"في وقت لاحق\",\n Return: \"عودة\",\n SaasTips: \"الإعدادات معقدة، أريد استخدامه على الفور\",\n TopTips: \"\\uD83E\\uDD73 عرض NextChat AI الأول، افتح الآن OpenAI o1, GPT-4o, Claude-3.5 وأحدث النماذج الكبيرة\"\n },\n ChatItem: {\n ChatItemCount: (count)=>`${count} محادثة`\n },\n Chat: {\n SubTitle: (count)=>`إجمالي ${count} محادثة`,\n EditMessage: {\n Title: \"تحرير سجل الرسائل\",\n Topic: {\n Title: \"موضوع الدردشة\",\n SubTitle: \"تغيير موضوع الدردشة الحالي\"\n }\n },\n Actions: {\n ChatList: \"عرض قائمة الرسائل\",\n CompressedHistory: \"عرض التاريخ المضغوط\",\n Export: \"تصدير سجل الدردشة\",\n Copy: \"نسخ\",\n Stop: \"إيقاف\",\n Retry: \"إعادة المحاولة\",\n Pin: \"تثبيت\",\n PinToastContent: \"تم تثبيت 1 محادثة في الإشعارات المسبقة\",\n PinToastAction: \"عرض\",\n Delete: \"حذف\",\n Edit: \"تحرير\",\n RefreshTitle: \"تحديث العنوان\",\n RefreshToast: \"تم إرسال طلب تحديث العنوان\"\n },\n Commands: {\n new: \"دردشة جديدة\",\n newm: \"إنشاء دردشة من القناع\",\n next: \"الدردشة التالية\",\n prev: \"الدردشة السابقة\",\n clear: \"مسح السياق\",\n del: \"حذف الدردشة\"\n },\n InputActions: {\n Stop: \"إيقاف الاستجابة\",\n ToBottom: \"الانتقال إلى الأحدث\",\n Theme: {\n auto: \"موضوع تلقائي\",\n light: \"الوضع الفاتح\",\n dark: \"الوضع الداكن\"\n },\n Prompt: \"الأوامر السريعة\",\n Masks: \"جميع الأقنعة\",\n Clear: \"مسح الدردشة\",\n Settings: \"إعدادات الدردشة\",\n UploadImage: \"تحميل صورة\"\n },\n Rename: \"إعادة تسمية الدردشة\",\n Typing: \"يكتب…\",\n Input: (submitKey)=>{\n var inputHints = `${submitKey} إرسال`;\n if (submitKey === String(_store_config__WEBPACK_IMPORTED_MODULE_0__.SubmitKey.Enter)) {\n inputHints += \"، Shift + Enter لإدراج سطر جديد\";\n }\n return inputHints + \"، / لتفعيل الإكمال التلقائي، : لتفعيل الأوامر\";\n },\n Send: \"إرسال\",\n Config: {\n Reset: \"مسح الذاكرة\",\n SaveAs: \"حفظ كقناع\"\n },\n IsContext: \"الإشعارات المسبقة\"\n },\n Export: {\n Title: \"مشاركة سجل الدردشة\",\n Copy: \"نسخ الكل\",\n Download: \"تحميل الملف\",\n Share: \"مشاركة على ShareGPT\",\n MessageFromYou: \"المستخدم\",\n MessageFromChatGPT: \"ChatGPT\",\n Format: {\n Title: \"تنسيق التصدير\",\n SubTitle: \"يمكنك تصدير النص كـ Markdown أو صورة PNG\"\n },\n IncludeContext: {\n Title: \"تضمين سياق القناع\",\n SubTitle: \"هل تريد عرض سياق القناع في الرسائل\"\n },\n Steps: {\n Select: \"اختيار\",\n Preview: \"معاينة\"\n },\n Image: {\n Toast: \"يتم إنشاء لقطة الشاشة\",\n Modal: \"اضغط مطولاً أو انقر بزر الماوس الأيمن لحفظ الصورة\"\n }\n },\n Select: {\n Search: \"بحث في الرسائل\",\n All: \"تحديد الكل\",\n Latest: \"أحدث الرسائل\",\n Clear: \"مسح التحديد\"\n },\n Memory: {\n Title: \"ملخص التاريخ\",\n EmptyContent: \"محتوى المحادثة قصير جداً، لا حاجة للتلخيص\",\n Send: \"ضغط تلقائي لسجل الدردشة كـ سياق\",\n Copy: \"نسخ الملخص\",\n Reset: \"[غير مستخدم]\",\n ResetConfirm: \"تأكيد مسح ملخص التاريخ؟\"\n },\n Home: {\n NewChat: \"دردشة جديدة\",\n DeleteChat: \"تأكيد حذف المحادثة المحددة؟\",\n DeleteToast: \"تم حذف المحادثة\",\n Revert: \"تراجع\"\n },\n Settings: {\n Title: \"الإعدادات\",\n SubTitle: \"جميع خيارات الإعدادات\",\n Danger: {\n Reset: {\n Title: \"إعادة تعيين جميع الإعدادات\",\n SubTitle: \"إعادة تعيين جميع عناصر الإعدادات إلى القيم الافتراضية\",\n Action: \"إعادة التعيين الآن\",\n Confirm: \"تأكيد إعادة تعيين جميع الإعدادات؟\"\n },\n Clear: {\n Title: \"مسح جميع البيانات\",\n SubTitle: \"مسح جميع الدردشات وبيانات الإعدادات\",\n Action: \"مسح الآن\",\n Confirm: \"تأكيد مسح جميع الدردشات وبيانات الإعدادات؟\"\n }\n },\n Lang: {\n Name: \"Language\",\n All: \"جميع اللغات\"\n },\n Avatar: \"الصورة الشخصية\",\n FontSize: {\n Title: \"حجم الخط\",\n SubTitle: \"حجم الخط في محتوى الدردشة\"\n },\n FontFamily: {\n Title: \"خط الدردشة\",\n SubTitle: \"خط محتوى الدردشة، اتركه فارغًا لتطبيق الخط الافتراضي العالمي\",\n Placeholder: \"اسم الخط\"\n },\n InjectSystemPrompts: {\n Title: \"حقن الرسائل النصية النظامية\",\n SubTitle: \"فرض إضافة رسالة نظامية تحاكي ChatGPT في بداية قائمة الرسائل لكل طلب\"\n },\n InputTemplate: {\n Title: \"معالجة الإدخال من قبل المستخدم\",\n SubTitle: \"سيتم ملء آخر رسالة من المستخدم في هذا القالب\"\n },\n Update: {\n Version: (x)=>`الإصدار الحالي: ${x}`,\n IsLatest: \"أنت على أحدث إصدار\",\n CheckUpdate: \"التحقق من التحديثات\",\n IsChecking: \"جارٍ التحقق من التحديثات...\",\n FoundUpdate: (x)=>`تم العثور على إصدار جديد: ${x}`,\n GoToUpdate: \"انتقل للتحديث\"\n },\n SendKey: \"زر الإرسال\",\n Theme: \"السمة\",\n TightBorder: \"وضع بدون حدود\",\n SendPreviewBubble: {\n Title: \"فقاعة المعاينة\",\n SubTitle: \"معاينة محتوى Markdown في فقاعة المعاينة\"\n },\n AutoGenerateTitle: {\n Title: \"توليد العنوان تلقائيًا\",\n SubTitle: \"توليد عنوان مناسب بناءً على محتوى الدردشة\"\n },\n Sync: {\n CloudState: \"بيانات السحابة\",\n NotSyncYet: \"لم يتم التزامن بعد\",\n Success: \"تم التزامن بنجاح\",\n Fail: \"فشل التزامن\",\n Config: {\n Modal: {\n Title: \"تكوين التزامن السحابي\",\n Check: \"التحقق من التوفر\"\n },\n SyncType: {\n Title: \"نوع التزامن\",\n SubTitle: \"اختر خادم التزامن المفضل\"\n },\n Proxy: {\n Title: \"تفعيل الوكيل\",\n SubTitle: \"يجب تفعيل الوكيل عند التزامن عبر المتصفح لتجنب قيود CORS\"\n },\n ProxyUrl: {\n Title: \"عنوان الوكيل\",\n SubTitle: \"ينطبق فقط على الوكيل المتاح في هذا المشروع\"\n },\n WebDav: {\n Endpoint: \"عنوان WebDAV\",\n UserName: \"اسم المستخدم\",\n Password: \"كلمة المرور\"\n },\n UpStash: {\n Endpoint: \"رابط UpStash Redis REST\",\n UserName: \"اسم النسخ الاحتياطي\",\n Password: \"رمز UpStash Redis REST\"\n }\n },\n LocalState: \"بيانات محلية\",\n Overview: (overview)=>{\n return `${overview.chat} دردشة، ${overview.message} رسالة، ${overview.prompt} إشعار، ${overview.mask} قناع`;\n },\n ImportFailed: \"فشل الاستيراد\"\n },\n Mask: {\n Splash: {\n Title: \"صفحة بدء القناع\",\n SubTitle: \"عرض صفحة بدء القناع عند بدء دردشة جديدة\"\n },\n Builtin: {\n Title: \"إخفاء الأقنعة المدمجة\",\n SubTitle: \"إخفاء الأقنعة المدمجة في قائمة الأقنعة\"\n }\n },\n Prompt: {\n Disable: {\n Title: \"تعطيل الإكمال التلقائي للإشعارات\",\n SubTitle: \"استخدم / في بداية مربع النص لتفعيل الإكمال التلقائي\"\n },\n List: \"قائمة الإشعارات المخصصة\",\n ListCount: (builtin, custom)=>`مدمج ${builtin} إشعار، مخصص ${custom} إشعار`,\n Edit: \"تحرير\",\n Modal: {\n Title: \"قائمة الإشعارات\",\n Add: \"جديد\",\n Search: \"بحث عن إشعارات\"\n },\n EditModal: {\n Title: \"تحرير الإشعارات\"\n }\n },\n HistoryCount: {\n Title: \"عدد الرسائل التاريخية المرفقة\",\n SubTitle: \"عدد الرسائل التاريخية المرفقة مع كل طلب\"\n },\n CompressThreshold: {\n Title: \"عتبة ضغط طول الرسائل التاريخية\",\n SubTitle: \"عندما يتجاوز طول الرسائل التاريخية غير المضغوطة هذه القيمة، سيتم الضغط\"\n },\n Usage: {\n Title: \"التحقق من الرصيد\",\n SubTitle (used, total) {\n return `تم استخدام $${used} هذا الشهر، إجمالي الاشتراك $${total}`;\n },\n IsChecking: \"جارٍ التحقق...\",\n Check: \"إعادة التحقق\",\n NoAccess: \"أدخل مفتاح API أو كلمة مرور للوصول إلى الرصيد\"\n },\n Access: {\n SaasStart: {\n Title: \"استخدام NextChat AI\",\n Label: \"(أفضل حل من حيث التكلفة)\",\n SubTitle: \"مدعوم رسميًا من NextChat، جاهز للاستخدام بدون إعداد، يدعم أحدث النماذج الكبيرة مثل OpenAI o1 و GPT-4o و Claude-3.5\",\n ChatNow: \"الدردشة الآن\"\n },\n AccessCode: {\n Title: \"كلمة المرور للوصول\",\n SubTitle: \"قام المشرف بتمكين الوصول المشفر\",\n Placeholder: \"أدخل كلمة المرور للوصول\"\n },\n CustomEndpoint: {\n Title: \"واجهة مخصصة\",\n SubTitle: \"هل تستخدم خدمة Azure أو OpenAI مخصصة\"\n },\n Provider: {\n Title: \"موفر الخدمة النموذجية\",\n SubTitle: \"التبديل بين مقدمي الخدمة المختلفين\"\n },\n OpenAI: {\n ApiKey: {\n Title: \"مفتاح API\",\n SubTitle: \"استخدم مفتاح OpenAI مخصص لتجاوز قيود كلمة المرور\",\n Placeholder: \"مفتاح OpenAI API\"\n },\n Endpoint: {\n Title: \"عنوان الواجهة\",\n SubTitle: \"يجب أن يحتوي على http(s):// بخلاف العنوان الافتراضي\"\n }\n },\n Azure: {\n ApiKey: {\n Title: \"مفتاح الواجهة\",\n SubTitle: \"استخدم مفتاح Azure مخصص لتجاوز قيود كلمة المرور\",\n Placeholder: \"مفتاح Azure API\"\n },\n Endpoint: {\n Title: \"عنوان الواجهة\",\n SubTitle: \"مثال:\"\n },\n ApiVerion: {\n Title: \"إصدار الواجهة (azure api version)\",\n SubTitle: \"اختر إصدارًا معينًا\"\n }\n },\n Anthropic: {\n ApiKey: {\n Title: \"مفتاح الواجهة\",\n SubTitle: \"استخدم مفتاح Anthropic مخصص لتجاوز قيود كلمة المرور\",\n Placeholder: \"مفتاح Anthropic API\"\n },\n Endpoint: {\n Title: \"عنوان الواجهة\",\n SubTitle: \"مثال:\"\n },\n ApiVerion: {\n Title: \"إصدار الواجهة (claude api version)\",\n SubTitle: \"اختر إصدار API محدد\"\n }\n },\n Google: {\n ApiKey: {\n Title: \"مفتاح API\",\n SubTitle: \"احصل على مفتاح API الخاص بك من Google AI\",\n Placeholder: \"أدخل مفتاح Google AI Studio API\"\n },\n Endpoint: {\n Title: \"عنوان النهاية\",\n SubTitle: \"مثال:\"\n },\n ApiVersion: {\n Title: \"إصدار API (مخصص لـ gemini-pro)\",\n SubTitle: \"اختر إصدار API معين\"\n },\n GoogleSafetySettings: {\n Title: \"مستوى تصفية الأمان من Google\",\n SubTitle: \"تعيين مستوى تصفية المحتوى\"\n }\n },\n Baidu: {\n ApiKey: {\n Title: \"مفتاح API\",\n SubTitle: \"استخدم مفتاح Baidu API مخصص\",\n Placeholder: \"مفتاح Baidu API\"\n },\n SecretKey: {\n Title: \"المفتاح السري\",\n SubTitle: \"استخدم مفتاح Baidu Secret مخصص\",\n Placeholder: \"مفتاح Baidu Secret\"\n },\n Endpoint: {\n Title: \"عنوان الواجهة\",\n SubTitle: \"لا يدعم التخصيص، انتقل إلى .env للتكوين\"\n }\n },\n ByteDance: {\n ApiKey: {\n Title: \"مفتاح الواجهة\",\n SubTitle: \"استخدم مفتاح ByteDance API مخصص\",\n Placeholder: \"مفتاح ByteDance API\"\n },\n Endpoint: {\n Title: \"عنوان الواجهة\",\n SubTitle: \"مثال:\"\n }\n },\n Alibaba: {\n ApiKey: {\n Title: \"مفتاح الواجهة\",\n SubTitle: \"استخدم مفتاح Alibaba Cloud API مخصص\",\n Placeholder: \"مفتاح Alibaba Cloud API\"\n },\n Endpoint: {\n Title: \"عنوان الواجهة\",\n SubTitle: \"مثال:\"\n }\n },\n CustomModel: {\n Title: \"اسم النموذج المخصص\",\n SubTitle: \"أضف خيارات نموذج مخصص، مفصولة بفواصل إنجليزية\"\n }\n },\n Model: \"النموذج\",\n CompressModel: {\n Title: \"نموذج الضغط\",\n SubTitle: \"النموذج المستخدم لضغط السجل التاريخي\"\n },\n Temperature: {\n Title: \"العشوائية (temperature)\",\n SubTitle: \"كلما زادت القيمة، زادت العشوائية في الردود\"\n },\n TopP: {\n Title: \"عينات النواة (top_p)\",\n SubTitle: \"مشابه للعشوائية ولكن لا تغيره مع العشوائية\"\n },\n MaxTokens: {\n Title: \"حد أقصى للرموز لكل رد (max_tokens)\",\n SubTitle: \"أقصى عدد للرموز في تفاعل واحد\"\n },\n PresencePenalty: {\n Title: \"تجدد الموضوع (presence_penalty)\",\n SubTitle: \"كلما زادت القيمة، زادت احتمالية التوسع في مواضيع جديدة\"\n },\n FrequencyPenalty: {\n Title: \"عقوبة التكرار (frequency_penalty)\",\n SubTitle: \"كلما زادت القيمة، زادت احتمالية تقليل تكرار الكلمات\"\n }\n },\n Store: {\n DefaultTopic: \"دردشة جديدة\",\n BotHello: \"كيف يمكنني مساعدتك؟\",\n Error: \"حدث خطأ، يرجى المحاولة مرة أخرى لاحقًا\",\n Prompt: {\n History: (content)=>\"هذا ملخص للدردشة السابقة كنقطة انطلاق: \" + content,\n Topic: \"استخدم أربع إلى خمس كلمات لإرجاع ملخص مختصر لهذه الجملة، بدون شرح، بدون علامات ترقيم، بدون كلمات تعبيرية، بدون نص إضافي، بدون تنسيق عريض، إذا لم يكن هناك موضوع، يرجى العودة إلى 'دردشة عامة'\",\n Summarize: \"قم بتلخيص محتوى الدردشة باختصار، لاستخدامه كإشارة سياقية لاحقة، اجعلها في حدود 200 كلمة\"\n }\n },\n Copy: {\n Success: \"تم الكتابة إلى الحافظة\",\n Failed: \"فشل النسخ، يرجى منح أذونات الحافظة\"\n },\n Download: {\n Success: \"تم تنزيل المحتوى إلى مجلدك.\",\n Failed: \"فشل التنزيل.\"\n },\n Context: {\n Toast: (x)=>`يحتوي على ${x} إشعارات مخصصة`,\n Edit: \"إعدادات الدردشة الحالية\",\n Add: \"إضافة دردشة جديدة\",\n Clear: \"تم مسح السياق\",\n Revert: \"استعادة السياق\"\n },\n Plugin: {\n Name: \"الإضافات\"\n },\n FineTuned: {\n Sysmessage: \"أنت مساعد\"\n },\n SearchChat: {\n Name: \"بحث\",\n Page: {\n Title: \"البحث في سجلات الدردشة\",\n Search: \"أدخل كلمات البحث\",\n NoResult: \"لم يتم العثور على نتائج\",\n NoData: \"لا توجد بيانات\",\n Loading: \"جارٍ التحميل\",\n SubTitle: (count)=>`تم العثور على ${count} نتائج`\n },\n Item: {\n View: \"عرض\"\n }\n },\n Mask: {\n Name: \"القناع\",\n Page: {\n Title: \"أقنعة الأدوار المخصصة\",\n SubTitle: (count)=>`${count} تعريف لدور مخصص`,\n Search: \"بحث عن قناع الدور\",\n Create: \"إنشاء جديد\"\n },\n Item: {\n Info: (count)=>`يحتوي على ${count} محادثات مخصصة`,\n Chat: \"الدردشة\",\n View: \"عرض\",\n Edit: \"تحرير\",\n Delete: \"حذف\",\n DeleteConfirm: \"تأكيد الحذف؟\"\n },\n EditModal: {\n Title: (readonly)=>`تحرير القناع المخصص ${readonly ? \" (للقراءة فقط)\" : \"\"}`,\n Download: \"تنزيل القناع المخصص\",\n Clone: \"استنساخ القناع\"\n },\n Config: {\n Avatar: \"صورة الدور\",\n Name: \"اسم الدور\",\n Sync: {\n Title: \"استخدام الإعدادات العالمية\",\n SubTitle: \"هل تستخدم الدردشة الحالية الإعدادات العالمية للنموذج\",\n Confirm: \"ستتم الكتابة فوق الإعدادات المخصصة للدردشة الحالية تلقائيًا، تأكيد تفعيل الإعدادات العالمية؟\"\n },\n HideContext: {\n Title: \"إخفاء المحادثات المخصصة\",\n SubTitle: \"بعد الإخفاء، لن تظهر المحادثات المخصصة في واجهة الدردشة\"\n },\n Share: {\n Title: \"مشاركة هذا القناع\",\n SubTitle: \"إنشاء رابط مباشر لهذا القناع\",\n Action: \"نسخ الرابط\"\n }\n }\n },\n NewChat: {\n Return: \"العودة\",\n Skip: \"بدء الآن\",\n NotShow: \"عدم العرض مرة أخرى\",\n ConfirmNoShow: \"تأكيد إلغاء العرض؟ بعد الإلغاء، يمكنك إعادة تفعيله في الإعدادات في أي وقت.\",\n Title: \"اختر قناعًا\",\n SubTitle: \"ابدأ الآن وتفاعل مع الأفكار خلف القناع\",\n More: \"عرض الكل\"\n },\n URLCommand: {\n Code: \"تم الكشف عن رمز وصول في الرابط، هل تريد تعبئته تلقائيًا؟\",\n Settings: \"تم الكشف عن إعدادات مسبقة في الرابط، هل تريد تعبئتها تلقائيًا؟\"\n },\n UI: {\n Confirm: \"تأكيد\",\n Cancel: \"إلغاء\",\n Close: \"إغلاق\",\n Create: \"إنشاء\",\n Edit: \"تحرير\",\n Export: \"تصدير\",\n Import: \"استيراد\",\n Sync: \"مزامنة\",\n Config: \"تكوين\"\n },\n Exporter: {\n Description: {\n Title: \"فقط الرسائل بعد مسح السياق سيتم عرضها\"\n },\n Model: \"النموذج\",\n Messages: \"الرسائل\",\n Topic: \"الموضوع\",\n Time: \"الوقت\"\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ar);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUNWdUwsTUFBTTtJQUNSO0lBRUFDLFlBQVk7UUFDVkMsTUFBTTtRQUNOeEosVUFBVTtJQUNaO0lBRUF5SixJQUFJO1FBQ0ZuTSxTQUFTO1FBQ1RvTSxRQUFRO1FBQ1JDLE9BQU87UUFDUGQsUUFBUTtRQUNSaEssTUFBTTtRQUNOUixRQUFRO1FBQ1J1TCxRQUFRO1FBQ1JsRyxNQUFNO1FBQ05qRCxRQUFRO0lBQ1Y7SUFDQW9KLFVBQVU7UUFDUkMsYUFBYTtZQUNYNU0sT0FBTztRQUNUO1FBQ0FrSyxPQUFPO1FBQ1AyQyxVQUFVO1FBQ1Y5TCxPQUFPO1FBQ1ArTCxNQUFNO0lBQ1I7QUFDRjtBQUVBLGlFQUFlbk4sRUFBRUEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2xvY2FsZXMvYXIudHM/YjY4NyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJtaXRLZXkgfSBmcm9tIFwiLi4vc3RvcmUvY29uZmlnXCI7XHJcbmltcG9ydCB0eXBlIHsgUGFydGlhbExvY2FsZVR5cGUgfSBmcm9tIFwiLi9pbmRleFwiO1xyXG5pbXBvcnQgeyBnZXRDbGllbnRDb25maWcgfSBmcm9tIFwiLi4vY29uZmlnL2NsaWVudFwiO1xyXG5pbXBvcnQgeyBTQUFTX0NIQVRfVVRNX1VSTCB9IGZyb20gXCJAL2FwcC9jb25zdGFudFwiO1xyXG5jb25zdCBpc0FwcCA9ICEhZ2V0Q2xpZW50Q29uZmlnKCk/LmlzQXBwO1xyXG5cclxuY29uc3QgYXI6IFBhcnRpYWxMb2NhbGVUeXBlID0ge1xyXG4gIFdJUDogXCLZgtix2YrYqNmL2KcuLi5cIixcclxuICBFcnJvcjoge1xyXG4gICAgVW5hdXRob3JpemVkOiBpc0FwcFxyXG4gICAgICA/IGDwn5iGINmI2KfYrNmH2Kog2KfZhNmF2K3Yp9iv2KvYqSDYqNi52LYg2KfZhNmF2LTZg9mE2KfYqtiMINmE2Kcg2K/Yp9i52Yog2YTZhNmC2YTZgjpcclxuICAgIFxcXFwgMe+4j+KDoyDYpdiw2Kcg2YPZhtiqINiq2LHYutioINmB2Yog2KrYrNix2KjYqSDYr9mI2YYg2KXYudiv2KfYr9iMIFvYp9mG2YLYsSDZh9mG2Kcg2YTYqNiv2KEg2KfZhNmF2K3Yp9iv2KvYqSDZgdmI2LHZi9inIPCfmoBdKCR7U0FBU19DSEFUX1VUTV9VUkx9KVxyXG4gICAgXFxcXCAy77iP4oOjINil2LDYpyDZg9mG2Kog2KrYsdmK2K8g2KfYs9iq2K7Yr9in2YUg2YXZiNin2LHYryBPcGVuQUkg2KfZhNiu2KfYtdipINio2YPYjCDYp9mG2YLYsSBb2YfZhtinXSgvIy9zZXR0aW5ncykg2YTYqti52K/ZitmEINin2YTYpdi52K/Yp9iv2KfYqiDimpnvuI9gXHJcbiAgICAgIDogYPCfmIYg2YjYp9is2YfYqiDYp9mE2YXYrdin2K/Yq9ipINio2LnYtiDYp9mE2YXYtNmD2YTYp9iq2Iwg2YTYpyDYr9in2LnZiiDZhNmE2YLZhNmCOlxyXG4gICAgXFwgMe+4j+KDoyDYpdiw2Kcg2YPZhtiqINiq2LHYutioINmB2Yog2KrYrNix2KjYqSDYr9mI2YYg2KXYudiv2KfYr9iMIFvYp9mG2YLYsSDZh9mG2Kcg2YTYqNiv2KEg2KfZhNmF2K3Yp9iv2KvYqSDZgdmI2LHZi9inIPCfmoBdKCR7U0FBU19DSEFUX1VUTV9VUkx9KVxyXG4gICAgXFwgMu+4j+KDoyDYpdiw2Kcg2YPZhtiqINiq2LPYqtiu2K/ZhSDYpdi12K/Yp9ixINin2YTZhti02LEg2KfZhNiu2KfYtdiMINin2YbZgtixIFvZh9mG2KddKC8jL2F1dGgpINmE2KXYr9iu2KfZhCDZhdmB2KrYp9itINin2YTZiNi12YjZhCDwn5SRXHJcbiAgICBcXCAz77iP4oOjINil2LDYpyDZg9mG2Kog2KrYsdmK2K8g2KfYs9iq2K7Yr9in2YUg2YXZiNin2LHYryBPcGVuQUkg2KfZhNiu2KfYtdipINio2YPYjCDYp9mG2YLYsSBb2YfZhtinXSgvIy9zZXR0aW5ncykg2YTYqti52K/ZitmEINin2YTYpdi52K/Yp9iv2KfYqiDimpnvuI9cclxuIGAsXHJcbiAgfSxcclxuICBBdXRoOiB7XHJcbiAgICBUaXRsZTogXCLYqtit2KrYp9isINil2YTZiSDZg9mE2YXYqSDZhdix2YjYsVwiLFxyXG4gICAgVGlwczogXCLZgtin2YUg2KfZhNmF2LTYsdmBINio2KrZgdi52YrZhCDYp9mE2KrYrdmC2YIg2KjZg9mE2YXYqSDYp9mE2YXYsdmI2LHYjCDZitix2KzZiSDYpdiv2K7Yp9mEINix2YXYsiDYp9mE2YjYtdmI2YQg2KPYr9mG2KfZh1wiLFxyXG4gICAgU3ViVGlwczogXCLYo9mIINil2K/Yrtin2YQg2YXZgdiq2KfYrSBBUEkg2KfZhNiu2KfYtSDYqNmAIE9wZW5BSSDYo9mIIEdvb2dsZVwiLFxyXG4gICAgSW5wdXQ6IFwi2KPYr9iu2YQg2LHZhdiyINin2YTZiNi12YjZhCDZh9mG2KdcIixcclxuICAgIENvbmZpcm06IFwi2KrYo9mD2YrYr1wiLFxyXG4gICAgTGF0ZXI6IFwi2YHZiiDZiNmC2Kog2YTYp9it2YJcIixcclxuICAgIFJldHVybjogXCLYudmI2K/YqVwiLFxyXG4gICAgU2Fhc1RpcHM6IFwi2KfZhNil2LnYr9in2K/Yp9iqINmF2LnZgtiv2KnYjCDYo9ix2YrYryDYp9iz2KrYrtiv2KfZhdmHINi52YTZiSDYp9mE2YHZiNixXCIsXHJcbiAgICBUb3BUaXBzOlxyXG4gICAgICBcIvCfpbMg2LnYsdi2IE5leHRDaGF0IEFJINin2YTYo9mI2YTYjCDYp9mB2KrYrSDYp9mE2KLZhiBPcGVuQUkgbzEsIEdQVC00bywgQ2xhdWRlLTMuNSDZiNij2K3Yr9irINin2YTZhtmF2KfYsNisINin2YTZg9io2YrYsdipXCIsXHJcbiAgfSxcclxuICBDaGF0SXRlbToge1xyXG4gICAgQ2hhdEl0ZW1Db3VudDogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50fSDZhdit2KfYr9ir2KlgLFxyXG4gIH0sXHJcbiAgQ2hhdDoge1xyXG4gICAgU3ViVGl0bGU6IChjb3VudDogbnVtYmVyKSA9PiBg2KXYrNmF2KfZhNmKICR7Y291bnR9INmF2K3Yp9iv2KvYqWAsXHJcbiAgICBFZGl0TWVzc2FnZToge1xyXG4gICAgICBUaXRsZTogXCLYqtit2LHZitixINiz2KzZhCDYp9mE2LHYs9in2KbZhFwiLFxyXG4gICAgICBUb3BpYzoge1xyXG4gICAgICAgIFRpdGxlOiBcItmF2YjYttmI2Lkg2KfZhNiv2LHYr9i02KlcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLYqti62YrZitixINmF2YjYttmI2Lkg2KfZhNiv2LHYr9i02Kkg2KfZhNit2KfZhNmKXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgQWN0aW9uczoge1xyXG4gICAgICBDaGF0TGlzdDogXCLYudix2LYg2YLYp9im2YXYqSDYp9mE2LHYs9in2KbZhFwiLFxyXG4gICAgICBDb21wcmVzc2VkSGlzdG9yeTogXCLYudix2LYg2KfZhNiq2KfYsdmK2K4g2KfZhNmF2LbYutmI2LdcIixcclxuICAgICAgRXhwb3J0OiBcItiq2LXYr9mK2LEg2LPYrNmEINin2YTYr9ix2K/YtNipXCIsXHJcbiAgICAgIENvcHk6IFwi2YbYs9iuXCIsXHJcbiAgICAgIFN0b3A6IFwi2KXZitmC2KfZgVwiLFxyXG4gICAgICBSZXRyeTogXCLYpdi52KfYr9ipINin2YTZhdit2KfZiNmE2KlcIixcclxuICAgICAgUGluOiBcItiq2KvYqNmK2KpcIixcclxuICAgICAgUGluVG9hc3RDb250ZW50OiBcItiq2YUg2KrYq9io2YrYqiAxINmF2K3Yp9iv2KvYqSDZgdmKINin2YTYpdi02LnYp9ix2KfYqiDYp9mE2YXYs9io2YLYqVwiLFxyXG4gICAgICBQaW5Ub2FzdEFjdGlvbjogXCLYudix2LZcIixcclxuICAgICAgRGVsZXRlOiBcItit2LDZgVwiLFxyXG4gICAgICBFZGl0OiBcItiq2K3YsdmK2LFcIixcclxuICAgICAgUmVmcmVzaFRpdGxlOiBcItiq2K3Yr9mK2Ksg2KfZhNi52YbZiNin2YZcIixcclxuICAgICAgUmVmcmVzaFRvYXN0OiBcItiq2YUg2KXYsdiz2KfZhCDYt9mE2Kgg2KrYrdiv2YrYqyDYp9mE2LnZhtmI2KfZhlwiLFxyXG4gICAgfSxcclxuICAgIENvbW1hbmRzOiB7XHJcbiAgICAgIG5ldzogXCLYr9ix2K/YtNipINis2K/Zitiv2KlcIixcclxuICAgICAgbmV3bTogXCLYpdmG2LTYp9ihINiv2LHYr9i02Kkg2YXZhiDYp9mE2YLZhtin2LlcIixcclxuICAgICAgbmV4dDogXCLYp9mE2K/Ysdiv2LTYqSDYp9mE2KrYp9mE2YrYqVwiLFxyXG4gICAgICBwcmV2OiBcItin2YTYr9ix2K/YtNipINin2YTYs9in2KjZgtipXCIsXHJcbiAgICAgIGNsZWFyOiBcItmF2LPYrSDYp9mE2LPZitin2YJcIixcclxuICAgICAgZGVsOiBcItit2LDZgSDYp9mE2K/Ysdiv2LTYqVwiLFxyXG4gICAgfSxcclxuICAgIElucHV0QWN0aW9uczoge1xyXG4gICAgICBTdG9wOiBcItil2YrZgtin2YEg2KfZhNin2LPYqtis2KfYqNipXCIsXHJcbiAgICAgIFRvQm90dG9tOiBcItin2YTYp9mG2KrZgtin2YQg2KXZhNmJINin2YTYo9it2K/Yq1wiLFxyXG4gICAgICBUaGVtZToge1xyXG4gICAgICAgIGF1dG86IFwi2YXZiNi22YjYuSDYqtmE2YLYp9im2YpcIixcclxuICAgICAgICBsaWdodDogXCLYp9mE2YjYtti5INin2YTZgdin2KrYrVwiLFxyXG4gICAgICAgIGRhcms6IFwi2KfZhNmI2LbYuSDYp9mE2K/Yp9mD2YZcIixcclxuICAgICAgfSxcclxuICAgICAgUHJvbXB0OiBcItin2YTYo9mI2KfZhdixINin2YTYs9ix2YrYudipXCIsXHJcbiAgICAgIE1hc2tzOiBcItis2YXZiti5INin2YTYo9mC2YbYudipXCIsXHJcbiAgICAgIENsZWFyOiBcItmF2LPYrSDYp9mE2K/Ysdiv2LTYqVwiLFxyXG4gICAgICBTZXR0aW5nczogXCLYpdi52K/Yp9iv2KfYqiDYp9mE2K/Ysdiv2LTYqVwiLFxyXG4gICAgICBVcGxvYWRJbWFnZTogXCLYqtit2YXZitmEINi12YjYsdipXCIsXHJcbiAgICB9LFxyXG4gICAgUmVuYW1lOiBcItil2LnYp9iv2Kkg2KrYs9mF2YrYqSDYp9mE2K/Ysdiv2LTYqVwiLFxyXG4gICAgVHlwaW5nOiBcItmK2YPYqtio4oCmXCIsXHJcbiAgICBJbnB1dDogKHN1Ym1pdEtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHZhciBpbnB1dEhpbnRzID0gYCR7c3VibWl0S2V5fSDYpdix2LPYp9mEYDtcclxuICAgICAgaWYgKHN1Ym1pdEtleSA9PT0gU3RyaW5nKFN1Ym1pdEtleS5FbnRlcikpIHtcclxuICAgICAgICBpbnB1dEhpbnRzICs9IFwi2IwgU2hpZnQgKyBFbnRlciDZhNil2K/Ysdin2Kwg2LPYt9ixINis2K/ZitivXCI7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGlucHV0SGludHMgKyBcItiMIC8g2YTYqtmB2LnZitmEINin2YTYpdmD2YXYp9mEINin2YTYqtmE2YLYp9im2YrYjCA6INmE2KrZgdi52YrZhCDYp9mE2KPZiNin2YXYsVwiO1xyXG4gICAgfSxcclxuICAgIFNlbmQ6IFwi2KXYsdiz2KfZhFwiLFxyXG4gICAgQ29uZmlnOiB7XHJcbiAgICAgIFJlc2V0OiBcItmF2LPYrSDYp9mE2LDYp9mD2LHYqVwiLFxyXG4gICAgICBTYXZlQXM6IFwi2K3Zgdi4INmD2YLZhtin2LlcIixcclxuICAgIH0sXHJcbiAgICBJc0NvbnRleHQ6IFwi2KfZhNil2LTYudin2LHYp9iqINin2YTZhdiz2KjZgtipXCIsXHJcbiAgfSxcclxuICBFeHBvcnQ6IHtcclxuICAgIFRpdGxlOiBcItmF2LTYp9ix2YPYqSDYs9is2YQg2KfZhNiv2LHYr9i02KlcIixcclxuICAgIENvcHk6IFwi2YbYs9iuINin2YTZg9mEXCIsXHJcbiAgICBEb3dubG9hZDogXCLYqtit2YXZitmEINin2YTZhdmE2YFcIixcclxuICAgIFNoYXJlOiBcItmF2LTYp9ix2YPYqSDYudmE2YkgU2hhcmVHUFRcIixcclxuICAgIE1lc3NhZ2VGcm9tWW91OiBcItin2YTZhdiz2KrYrtiv2YVcIixcclxuICAgIE1lc3NhZ2VGcm9tQ2hhdEdQVDogXCJDaGF0R1BUXCIsXHJcbiAgICBGb3JtYXQ6IHtcclxuICAgICAgVGl0bGU6IFwi2KrZhtiz2YrZgiDYp9mE2KrYtdiv2YrYsVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCLZitmF2YPZhtmDINiq2LXYr9mK2LEg2KfZhNmG2LUg2YPZgCBNYXJrZG93biDYo9mIINi12YjYsdipIFBOR1wiLFxyXG4gICAgfSxcclxuICAgIEluY2x1ZGVDb250ZXh0OiB7XHJcbiAgICAgIFRpdGxlOiBcItiq2LbZhdmK2YYg2LPZitin2YIg2KfZhNmC2YbYp9i5XCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcItmH2YQg2KrYsdmK2K8g2LnYsdi2INiz2YrYp9mCINin2YTZgtmG2KfYuSDZgdmKINin2YTYsdiz2KfYptmEXCIsXHJcbiAgICB9LFxyXG4gICAgU3RlcHM6IHtcclxuICAgICAgU2VsZWN0OiBcItin2K7YqtmK2KfYsVwiLFxyXG4gICAgICBQcmV2aWV3OiBcItmF2LnYp9mK2YbYqVwiLFxyXG4gICAgfSxcclxuICAgIEltYWdlOiB7XHJcbiAgICAgIFRvYXN0OiBcItmK2KrZhSDYpdmG2LTYp9ihINmE2YLYt9ipINin2YTYtNin2LTYqVwiLFxyXG4gICAgICBNb2RhbDogXCLYp9i22LrYtyDZhdi32YjZhNin2Ysg2KPZiCDYp9mG2YLYsSDYqNiy2LEg2KfZhNmF2KfZiNizINin2YTYo9mK2YXZhiDZhNit2YHYuCDYp9mE2LXZiNix2KlcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBTZWxlY3Q6IHtcclxuICAgIFNlYXJjaDogXCLYqNit2Ksg2YHZiiDYp9mE2LHYs9in2KbZhFwiLFxyXG4gICAgQWxsOiBcItiq2K3Yr9mK2K8g2KfZhNmD2YRcIixcclxuICAgIExhdGVzdDogXCLYo9it2K/YqyDYp9mE2LHYs9in2KbZhFwiLFxyXG4gICAgQ2xlYXI6IFwi2YXYs9itINin2YTYqtit2K/ZitivXCIsXHJcbiAgfSxcclxuICBNZW1vcnk6IHtcclxuICAgIFRpdGxlOiBcItmF2YTYrti1INin2YTYqtin2LHZitiuXCIsXHJcbiAgICBFbXB0eUNvbnRlbnQ6IFwi2YXYrdiq2YjZiSDYp9mE2YXYrdin2K/Yq9ipINmC2LXZitixINis2K/Yp9mL2Iwg2YTYpyDYrdin2KzYqSDZhNmE2KrZhNiu2YrYtVwiLFxyXG4gICAgU2VuZDogXCLYtti62Lcg2KrZhNmC2KfYptmKINmE2LPYrNmEINin2YTYr9ix2K/YtNipINmD2YAg2LPZitin2YJcIixcclxuICAgIENvcHk6IFwi2YbYs9iuINin2YTZhdmE2K7YtVwiLFxyXG4gICAgUmVzZXQ6IFwiW9i62YrYsSDZhdiz2KrYrtiv2YVdXCIsXHJcbiAgICBSZXNldENvbmZpcm06IFwi2KrYo9mD2YrYryDZhdiz2K0g2YXZhNiu2LUg2KfZhNiq2KfYsdmK2K7Yn1wiLFxyXG4gIH0sXHJcbiAgSG9tZToge1xyXG4gICAgTmV3Q2hhdDogXCLYr9ix2K/YtNipINis2K/Zitiv2KlcIixcclxuICAgIERlbGV0ZUNoYXQ6IFwi2KrYo9mD2YrYryDYrdiw2YEg2KfZhNmF2K3Yp9iv2KvYqSDYp9mE2YXYrdiv2K/YqdifXCIsXHJcbiAgICBEZWxldGVUb2FzdDogXCLYqtmFINit2LDZgSDYp9mE2YXYrdin2K/Yq9ipXCIsXHJcbiAgICBSZXZlcnQ6IFwi2KrYsdin2KzYuVwiLFxyXG4gIH0sXHJcbiAgU2V0dGluZ3M6IHtcclxuICAgIFRpdGxlOiBcItin2YTYpdi52K/Yp9iv2KfYqlwiLFxyXG4gICAgU3ViVGl0bGU6IFwi2KzZhdmK2Lkg2K7Zitin2LHYp9iqINin2YTYpdi52K/Yp9iv2KfYqlwiLFxyXG5cclxuICAgIERhbmdlcjoge1xyXG4gICAgICBSZXNldDoge1xyXG4gICAgICAgIFRpdGxlOiBcItil2LnYp9iv2Kkg2KrYudmK2YrZhiDYrNmF2YrYuSDYp9mE2KXYudiv2KfYr9in2KpcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLYpdi52KfYr9ipINiq2LnZitmK2YYg2KzZhdmK2Lkg2LnZhtin2LXYsSDYp9mE2KXYudiv2KfYr9in2Kog2KXZhNmJINin2YTZgtmK2YUg2KfZhNin2YHYqtix2KfYttmK2KlcIixcclxuICAgICAgICBBY3Rpb246IFwi2KXYudin2K/YqSDYp9mE2KrYudmK2YrZhiDYp9mE2KLZhlwiLFxyXG4gICAgICAgIENvbmZpcm06IFwi2KrYo9mD2YrYryDYpdi52KfYr9ipINiq2LnZitmK2YYg2KzZhdmK2Lkg2KfZhNil2LnYr9in2K/Yp9iq2J9cIixcclxuICAgICAgfSxcclxuICAgICAgQ2xlYXI6IHtcclxuICAgICAgICBUaXRsZTogXCLZhdiz2K0g2KzZhdmK2Lkg2KfZhNio2YrYp9mG2KfYqlwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcItmF2LPYrSDYrNmF2YrYuSDYp9mE2K/Ysdiv2LTYp9iqINmI2KjZitin2YbYp9iqINin2YTYpdi52K/Yp9iv2KfYqlwiLFxyXG4gICAgICAgIEFjdGlvbjogXCLZhdiz2K0g2KfZhNii2YZcIixcclxuICAgICAgICBDb25maXJtOiBcItiq2KPZg9mK2K8g2YXYs9itINis2YXZiti5INin2YTYr9ix2K/YtNin2Kog2YjYqNmK2KfZhtin2Kog2KfZhNil2LnYr9in2K/Yp9iq2J9cIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBMYW5nOiB7XHJcbiAgICAgIE5hbWU6IFwiTGFuZ3VhZ2VcIiwgLy8g2KfZhtiq2KjZhzog2KXYsNinINmD2YbYqiDYqtix2LrYqCDZgdmKINil2LbYp9mB2Kkg2KrYsdis2YXYqSDYrNiv2YrYr9ip2Iwg2YrYsdis2Ykg2LnYr9mFINiq2LHYrNmF2Kkg2YfYsNmHINin2YTZgtmK2YXYqdiMINin2KrYsdmD2YfYpyDZg9mF2Kcg2YfZiiBcIkxhbmd1YWdlXCJcclxuICAgICAgQWxsOiBcItis2YXZiti5INin2YTZhNi62KfYqlwiLFxyXG4gICAgfSxcclxuICAgIEF2YXRhcjogXCLYp9mE2LXZiNix2Kkg2KfZhNi02K7YtdmK2KlcIixcclxuICAgIEZvbnRTaXplOiB7XHJcbiAgICAgIFRpdGxlOiBcItit2KzZhSDYp9mE2K7Yt1wiLFxyXG4gICAgICBTdWJUaXRsZTogXCLYrdis2YUg2KfZhNiu2Lcg2YHZiiDZhdit2KrZiNmJINin2YTYr9ix2K/YtNipXCIsXHJcbiAgICB9LFxyXG4gICAgRm9udEZhbWlseToge1xyXG4gICAgICBUaXRsZTogXCLYrti3INin2YTYr9ix2K/YtNipXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcItiu2Lcg2YXYrdiq2YjZiSDYp9mE2K/Ysdiv2LTYqdiMINin2KrYsdmD2Ycg2YHYp9ix2LrZi9inINmE2KrYt9io2YrZgiDYp9mE2K7YtyDYp9mE2KfZgdiq2LHYp9i22Yog2KfZhNi52KfZhNmF2YpcIixcclxuICAgICAgUGxhY2Vob2xkZXI6IFwi2KfYs9mFINin2YTYrti3XCIsXHJcbiAgICB9LFxyXG4gICAgSW5qZWN0U3lzdGVtUHJvbXB0czoge1xyXG4gICAgICBUaXRsZTogXCLYrdmC2YYg2KfZhNix2LPYp9im2YQg2KfZhNmG2LXZitipINin2YTZhti42KfZhdmK2KlcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCLZgdix2LYg2KXYttin2YHYqSDYsdiz2KfZhNipINmG2LjYp9mF2YrYqSDYqtit2KfZg9mKIENoYXRHUFQg2YHZiiDYqNiv2KfZitipINmC2KfYptmF2Kkg2KfZhNix2LPYp9im2YQg2YTZg9mEINi32YTYqFwiLFxyXG4gICAgfSxcclxuICAgIElucHV0VGVtcGxhdGU6IHtcclxuICAgICAgVGl0bGU6IFwi2YXYudin2YTYrNipINin2YTYpdiv2K7Yp9mEINmF2YYg2YLYqNmEINin2YTZhdiz2KrYrtiv2YVcIixcclxuICAgICAgU3ViVGl0bGU6IFwi2LPZitiq2YUg2YXZhNihINii2K7YsSDYsdiz2KfZhNipINmF2YYg2KfZhNmF2LPYqtiu2K/ZhSDZgdmKINmH2LDYpyDYp9mE2YLYp9mE2KhcIixcclxuICAgIH0sXHJcblxyXG4gICAgVXBkYXRlOiB7XHJcbiAgICAgIFZlcnNpb246ICh4OiBzdHJpbmcpID0+IGDYp9mE2KXYtdiv2KfYsSDYp9mE2K3Yp9mE2Yo6ICR7eH1gLFxyXG4gICAgICBJc0xhdGVzdDogXCLYo9mG2Kog2LnZhNmJINij2K3Yr9irINil2LXYr9in2LFcIixcclxuICAgICAgQ2hlY2tVcGRhdGU6IFwi2KfZhNiq2K3ZgtmCINmF2YYg2KfZhNiq2K3Yr9mK2KvYp9iqXCIsXHJcbiAgICAgIElzQ2hlY2tpbmc6IFwi2KzYp9ix2Y0g2KfZhNiq2K3ZgtmCINmF2YYg2KfZhNiq2K3Yr9mK2KvYp9iqLi4uXCIsXHJcbiAgICAgIEZvdW5kVXBkYXRlOiAoeDogc3RyaW5nKSA9PiBg2KrZhSDYp9mE2LnYq9mI2LEg2LnZhNmJINil2LXYr9in2LEg2KzYr9mK2K86ICR7eH1gLFxyXG4gICAgICBHb1RvVXBkYXRlOiBcItin2YbYqtmC2YQg2YTZhNiq2K3Yr9mK2KtcIixcclxuICAgIH0sXHJcbiAgICBTZW5kS2V5OiBcItiy2LEg2KfZhNil2LHYs9in2YRcIixcclxuICAgIFRoZW1lOiBcItin2YTYs9mF2KlcIixcclxuICAgIFRpZ2h0Qm9yZGVyOiBcItmI2LbYuSDYqNiv2YjZhiDYrdiv2YjYr1wiLFxyXG4gICAgU2VuZFByZXZpZXdCdWJibGU6IHtcclxuICAgICAgVGl0bGU6IFwi2YHZgtin2LnYqSDYp9mE2YXYudin2YrZhtipXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcItmF2LnYp9mK2YbYqSDZhdit2KrZiNmJIE1hcmtkb3duINmB2Yog2YHZgtin2LnYqSDYp9mE2YXYudin2YrZhtipXCIsXHJcbiAgICB9LFxyXG4gICAgQXV0b0dlbmVyYXRlVGl0bGU6IHtcclxuICAgICAgVGl0bGU6IFwi2KrZiNmE2YrYryDYp9mE2LnZhtmI2KfZhiDYqtmE2YLYp9im2YrZi9inXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcItiq2YjZhNmK2K8g2LnZhtmI2KfZhiDZhdmG2KfYs9ioINio2YbYp9ih2Ysg2LnZhNmJINmF2K3YqtmI2Ykg2KfZhNiv2LHYr9i02KlcIixcclxuICAgIH0sXHJcbiAgICBTeW5jOiB7XHJcbiAgICAgIENsb3VkU3RhdGU6IFwi2KjZitin2YbYp9iqINin2YTYs9it2KfYqNipXCIsXHJcbiAgICAgIE5vdFN5bmNZZXQ6IFwi2YTZhSDZitiq2YUg2KfZhNiq2LLYp9mF2YYg2KjYudivXCIsXHJcbiAgICAgIFN1Y2Nlc3M6IFwi2KrZhSDYp9mE2KrYstin2YXZhiDYqNmG2KzYp9itXCIsXHJcbiAgICAgIEZhaWw6IFwi2YHYtNmEINin2YTYqtiy2KfZhdmGXCIsXHJcblxyXG4gICAgICBDb25maWc6IHtcclxuICAgICAgICBNb2RhbDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi2KrZg9mI2YrZhiDYp9mE2KrYstin2YXZhiDYp9mE2LPYrdin2KjZilwiLFxyXG4gICAgICAgICAgQ2hlY2s6IFwi2KfZhNiq2K3ZgtmCINmF2YYg2KfZhNiq2YjZgdixXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBTeW5jVHlwZToge1xyXG4gICAgICAgICAgVGl0bGU6IFwi2YbZiNi5INin2YTYqtiy2KfZhdmGXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLYp9iu2KrYsSDYrtin2K/ZhSDYp9mE2KrYstin2YXZhiDYp9mE2YXZgdi22YRcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFByb3h5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLYqtmB2LnZitmEINin2YTZiNmD2YrZhFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi2YrYrNioINiq2YHYudmK2YQg2KfZhNmI2YPZitmEINi52YbYryDYp9mE2KrYstin2YXZhiDYudio2LEg2KfZhNmF2KrYtdmB2K0g2YTYqtis2YbYqCDZgtmK2YjYryBDT1JTXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQcm94eVVybDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi2LnZhtmI2KfZhiDYp9mE2YjZg9mK2YRcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcItmK2YbYt9io2YIg2YHZgti3INi52YTZiSDYp9mE2YjZg9mK2YQg2KfZhNmF2KrYp9itINmB2Yog2YfYsNinINin2YTZhdi02LHZiNi5XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgV2ViRGF2OiB7XHJcbiAgICAgICAgICBFbmRwb2ludDogXCLYudmG2YjYp9mGIFdlYkRBVlwiLFxyXG4gICAgICAgICAgVXNlck5hbWU6IFwi2KfYs9mFINin2YTZhdiz2KrYrtiv2YVcIixcclxuICAgICAgICAgIFBhc3N3b3JkOiBcItmD2YTZhdipINin2YTZhdix2YjYsVwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIFVwU3Rhc2g6IHtcclxuICAgICAgICAgIEVuZHBvaW50OiBcItix2KfYqNi3IFVwU3Rhc2ggUmVkaXMgUkVTVFwiLFxyXG4gICAgICAgICAgVXNlck5hbWU6IFwi2KfYs9mFINin2YTZhtiz2K4g2KfZhNin2K3YqtmK2KfYt9mKXCIsXHJcbiAgICAgICAgICBQYXNzd29yZDogXCLYsdmF2LIgVXBTdGFzaCBSZWRpcyBSRVNUXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuXHJcbiAgICAgIExvY2FsU3RhdGU6IFwi2KjZitin2YbYp9iqINmF2K3ZhNmK2KlcIixcclxuICAgICAgT3ZlcnZpZXc6IChvdmVydmlldzogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGAke292ZXJ2aWV3LmNoYXR9INiv2LHYr9i02KnYjCAke292ZXJ2aWV3Lm1lc3NhZ2V9INix2LPYp9mE2KnYjCAke292ZXJ2aWV3LnByb21wdH0g2KXYtNi52KfYsdiMICR7b3ZlcnZpZXcubWFza30g2YLZhtin2LlgO1xyXG4gICAgICB9LFxyXG4gICAgICBJbXBvcnRGYWlsZWQ6IFwi2YHYtNmEINin2YTYp9iz2KrZitix2KfYr1wiLFxyXG4gICAgfSxcclxuICAgIE1hc2s6IHtcclxuICAgICAgU3BsYXNoOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi2LXZgdit2Kkg2KjYr9ihINin2YTZgtmG2KfYuVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIti52LHYtiDYtdmB2K3YqSDYqNiv2KEg2KfZhNmC2YbYp9i5INi52YbYryDYqNiv2KEg2K/Ysdiv2LTYqSDYrNiv2YrYr9ipXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEJ1aWx0aW46IHtcclxuICAgICAgICBUaXRsZTogXCLYpdiu2YHYp9ihINin2YTYo9mC2YbYudipINin2YTZhdiv2YXYrNipXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi2KXYrtmB2KfYoSDYp9mE2KPZgtmG2LnYqSDYp9mE2YXYr9mF2KzYqSDZgdmKINmC2KfYptmF2Kkg2KfZhNij2YLZhti52KlcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBQcm9tcHQ6IHtcclxuICAgICAgRGlzYWJsZToge1xyXG4gICAgICAgIFRpdGxlOiBcItiq2LnYt9mK2YQg2KfZhNil2YPZhdin2YQg2KfZhNiq2YTZgtin2KbZiiDZhNmE2KXYtNi52KfYsdin2KpcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLYp9iz2KrYrtiv2YUgLyDZgdmKINio2K/Yp9mK2Kkg2YXYsdio2Lkg2KfZhNmG2LUg2YTYqtmB2LnZitmEINin2YTYpdmD2YXYp9mEINin2YTYqtmE2YLYp9im2YpcIixcclxuICAgICAgfSxcclxuICAgICAgTGlzdDogXCLZgtin2KbZhdipINin2YTYpdi02LnYp9ix2KfYqiDYp9mE2YXYrti12LXYqVwiLFxyXG4gICAgICBMaXN0Q291bnQ6IChidWlsdGluOiBudW1iZXIsIGN1c3RvbTogbnVtYmVyKSA9PlxyXG4gICAgICAgIGDZhdiv2YXYrCAke2J1aWx0aW59INil2LTYudin2LHYjCDZhdiu2LXYtSAke2N1c3RvbX0g2KXYtNi52KfYsWAsXHJcbiAgICAgIEVkaXQ6IFwi2KrYrdix2YrYsVwiLFxyXG4gICAgICBNb2RhbDoge1xyXG4gICAgICAgIFRpdGxlOiBcItmC2KfYptmF2Kkg2KfZhNil2LTYudin2LHYp9iqXCIsXHJcbiAgICAgICAgQWRkOiBcItis2K/ZitivXCIsXHJcbiAgICAgICAgU2VhcmNoOiBcItio2K3YqyDYudmGINil2LTYudin2LHYp9iqXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEVkaXRNb2RhbDoge1xyXG4gICAgICAgIFRpdGxlOiBcItiq2K3YsdmK2LEg2KfZhNil2LTYudin2LHYp9iqXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgSGlzdG9yeUNvdW50OiB7XHJcbiAgICAgIFRpdGxlOiBcIti52K/YryDYp9mE2LHYs9in2KbZhCDYp9mE2KrYp9ix2YrYrtmK2Kkg2KfZhNmF2LHZgdmC2KlcIixcclxuICAgICAgU3ViVGl0bGU6IFwi2LnYr9ivINin2YTYsdiz2KfYptmEINin2YTYqtin2LHZitiu2YrYqSDYp9mE2YXYsdmB2YLYqSDZhdi5INmD2YQg2LfZhNioXCIsXHJcbiAgICB9LFxyXG4gICAgQ29tcHJlc3NUaHJlc2hvbGQ6IHtcclxuICAgICAgVGl0bGU6IFwi2LnYqtio2Kkg2LbYuti3INi32YjZhCDYp9mE2LHYs9in2KbZhCDYp9mE2KrYp9ix2YrYrtmK2KlcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCLYudmG2K/ZhdinINmK2KrYrNin2YjYsiDYt9mI2YQg2KfZhNix2LPYp9im2YQg2KfZhNiq2KfYsdmK2K7ZitipINi62YrYsSDYp9mE2YXYtti62YjYt9ipINmH2LDZhyDYp9mE2YLZitmF2KnYjCDYs9mK2KrZhSDYp9mE2LbYuti3XCIsXHJcbiAgICB9LFxyXG5cclxuICAgIFVzYWdlOiB7XHJcbiAgICAgIFRpdGxlOiBcItin2YTYqtit2YLZgiDZhdmGINin2YTYsdi12YrYr1wiLFxyXG4gICAgICBTdWJUaXRsZSh1c2VkOiBhbnksIHRvdGFsOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gYNiq2YUg2KfYs9iq2K7Yr9in2YUgJCR7dXNlZH0g2YfYsNinINin2YTYtNmH2LHYjCDYpdis2YXYp9mE2Yog2KfZhNin2LTYqtix2KfZgyAkJHt0b3RhbH1gO1xyXG4gICAgICB9LFxyXG4gICAgICBJc0NoZWNraW5nOiBcItis2KfYsdmNINin2YTYqtit2YLZgi4uLlwiLFxyXG4gICAgICBDaGVjazogXCLYpdi52KfYr9ipINin2YTYqtit2YLZglwiLFxyXG4gICAgICBOb0FjY2VzczogXCLYo9iv2K7ZhCDZhdmB2KrYp9itIEFQSSDYo9mIINmD2YTZhdipINmF2LHZiNixINmE2YTZiNi12YjZhCDYpdmE2Ykg2KfZhNix2LXZitivXCIsXHJcbiAgICB9LFxyXG5cclxuICAgIEFjY2Vzczoge1xyXG4gICAgICBTYWFzU3RhcnQ6IHtcclxuICAgICAgICBUaXRsZTogXCLYp9iz2KrYrtiv2KfZhSBOZXh0Q2hhdCBBSVwiLFxyXG4gICAgICAgIExhYmVsOiBcIijYo9mB2LbZhCDYrdmEINmF2YYg2K3ZitirINin2YTYqtmD2YTZgdipKVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCLZhdiv2LnZiNmFINix2LPZhdmK2YvYpyDZhdmGIE5leHRDaGF02Iwg2KzYp9mH2LIg2YTZhNin2LPYqtiu2K/Yp9mFINio2K/ZiNmGINil2LnYr9in2K/YjCDZitiv2LnZhSDYo9it2K/YqyDYp9mE2YbZhdin2LDYrCDYp9mE2YPYqNmK2LHYqSDZhdir2YQgT3BlbkFJIG8xINmIIEdQVC00byDZiCBDbGF1ZGUtMy41XCIsXHJcbiAgICAgICAgQ2hhdE5vdzogXCLYp9mE2K/Ysdiv2LTYqSDYp9mE2KLZhlwiLFxyXG4gICAgICB9LFxyXG4gICAgICBBY2Nlc3NDb2RlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi2YPZhNmF2Kkg2KfZhNmF2LHZiNixINmE2YTZiNi12YjZhFwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcItmC2KfZhSDYp9mE2YXYtNix2YEg2KjYqtmF2YPZitmGINin2YTZiNi12YjZhCDYp9mE2YXYtNmB2LFcIixcclxuICAgICAgICBQbGFjZWhvbGRlcjogXCLYo9iv2K7ZhCDZg9mE2YXYqSDYp9mE2YXYsdmI2LEg2YTZhNmI2LXZiNmEXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEN1c3RvbUVuZHBvaW50OiB7XHJcbiAgICAgICAgVGl0bGU6IFwi2YjYp9is2YfYqSDZhdiu2LXYtdipXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi2YfZhCDYqtiz2KrYrtiv2YUg2K7Yr9mF2KkgQXp1cmUg2KPZiCBPcGVuQUkg2YXYrti12LXYqVwiLFxyXG4gICAgICB9LFxyXG4gICAgICBQcm92aWRlcjoge1xyXG4gICAgICAgIFRpdGxlOiBcItmF2YjZgdixINin2YTYrtiv2YXYqSDYp9mE2YbZhdmI2LDYrNmK2KlcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLYp9mE2KrYqNiv2YrZhCDYqNmK2YYg2YXZgtiv2YXZiiDYp9mE2K7Yr9mF2Kkg2KfZhNmF2K7YqtmE2YHZitmGXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIE9wZW5BSToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwi2YXZgdiq2KfYrSBBUElcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcItin2LPYqtiu2K/ZhSDZhdmB2KrYp9itIE9wZW5BSSDZhdiu2LXYtSDZhNiq2KzYp9mI2LIg2YLZitmI2K8g2YPZhNmF2Kkg2KfZhNmF2LHZiNixXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCLZhdmB2KrYp9itIE9wZW5BSSBBUElcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi2LnZhtmI2KfZhiDYp9mE2YjYp9is2YfYqVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi2YrYrNioINij2YYg2YrYrdiq2YjZiiDYudmE2YkgaHR0cChzKTovLyDYqNiu2YTYp9mBINin2YTYudmG2YjYp9mGINin2YTYp9mB2KrYsdin2LbZilwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEF6dXJlOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLZhdmB2KrYp9itINin2YTZiNin2KzZh9ipXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLYp9iz2KrYrtiv2YUg2YXZgdiq2KfYrSBBenVyZSDZhdiu2LXYtSDZhNiq2KzYp9mI2LIg2YLZitmI2K8g2YPZhNmF2Kkg2KfZhNmF2LHZiNixXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCLZhdmB2KrYp9itIEF6dXJlIEFQSVwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLYudmG2YjYp9mGINin2YTZiNin2KzZh9ipXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLZhdir2KfZhDpcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBBcGlWZXJpb246IHtcclxuICAgICAgICAgIFRpdGxlOiBcItil2LXYr9in2LEg2KfZhNmI2KfYrNmH2KkgKGF6dXJlIGFwaSB2ZXJzaW9uKVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi2KfYrtiq2LEg2KXYtdiv2KfYsdmL2Kcg2YXYudmK2YbZi9inXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQW50aHJvcGljOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLZhdmB2KrYp9itINin2YTZiNin2KzZh9ipXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLYp9iz2KrYrtiv2YUg2YXZgdiq2KfYrSBBbnRocm9waWMg2YXYrti12LUg2YTYqtis2KfZiNiyINmC2YrZiNivINmD2YTZhdipINin2YTZhdix2YjYsVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwi2YXZgdiq2KfYrSBBbnRocm9waWMgQVBJXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIti52YbZiNin2YYg2KfZhNmI2KfYrNmH2KlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcItmF2KvYp9mEOlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcmlvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi2KXYtdiv2KfYsSDYp9mE2YjYp9is2YfYqSAoY2xhdWRlIGFwaSB2ZXJzaW9uKVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi2KfYrtiq2LEg2KXYtdiv2KfYsSBBUEkg2YXYrdiv2K9cIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBHb29nbGU6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcItmF2YHYqtin2K0gQVBJXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLYp9it2LXZhCDYudmE2Ykg2YXZgdiq2KfYrSBBUEkg2KfZhNiu2KfYtSDYqNmDINmF2YYgR29vZ2xlIEFJXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCLYo9iv2K7ZhCDZhdmB2KrYp9itIEdvb2dsZSBBSSBTdHVkaW8gQVBJXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIti52YbZiNin2YYg2KfZhNmG2YfYp9mK2KlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcItmF2KvYp9mEOlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcnNpb246IHtcclxuICAgICAgICAgIFRpdGxlOiBcItil2LXYr9in2LEgQVBJICjZhdiu2LXYtSDZhNmAIGdlbWluaS1wcm8pXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLYp9iu2KrYsSDYpdi12K/Yp9ixIEFQSSDZhdi52YrZhlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgR29vZ2xlU2FmZXR5U2V0dGluZ3M6IHtcclxuICAgICAgICAgIFRpdGxlOiBcItmF2LPYqtmI2Ykg2KrYtdmB2YrYqSDYp9mE2KPZhdin2YYg2YXZhiBHb29nbGVcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcItiq2LnZitmK2YYg2YXYs9iq2YjZiSDYqti12YHZitipINin2YTZhdit2KrZiNmJXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQmFpZHU6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcItmF2YHYqtin2K0gQVBJXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLYp9iz2KrYrtiv2YUg2YXZgdiq2KfYrSBCYWlkdSBBUEkg2YXYrti12LVcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcItmF2YHYqtin2K0gQmFpZHUgQVBJXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBTZWNyZXRLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcItin2YTZhdmB2KrYp9itINin2YTYs9ix2YpcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcItin2LPYqtiu2K/ZhSDZhdmB2KrYp9itIEJhaWR1IFNlY3JldCDZhdiu2LXYtVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwi2YXZgdiq2KfYrSBCYWlkdSBTZWNyZXRcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLYudmG2YjYp9mGINin2YTZiNin2KzZh9ipXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLZhNinINmK2K/YudmFINin2YTYqtiu2LXZiti12Iwg2KfZhtiq2YLZhCDYpdmE2YkgLmVudiDZhNmE2KrZg9mI2YrZhlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEJ5dGVEYW5jZToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwi2YXZgdiq2KfYrSDYp9mE2YjYp9is2YfYqVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi2KfYs9iq2K7Yr9mFINmF2YHYqtin2K0gQnl0ZURhbmNlIEFQSSDZhdiu2LXYtVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwi2YXZgdiq2KfYrSBCeXRlRGFuY2UgQVBJXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi2LnZhtmI2KfZhiDYp9mE2YjYp9is2YfYqVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi2YXYq9in2YQ6XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQWxpYmFiYToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwi2YXZgdiq2KfYrSDYp9mE2YjYp9is2YfYqVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi2KfYs9iq2K7Yr9mFINmF2YHYqtin2K0gQWxpYmFiYSBDbG91ZCBBUEkg2YXYrti12LVcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcItmF2YHYqtin2K0gQWxpYmFiYSBDbG91ZCBBUElcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLYudmG2YjYp9mGINin2YTZiNin2KzZh9ipXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLZhdir2KfZhDpcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBDdXN0b21Nb2RlbDoge1xyXG4gICAgICAgIFRpdGxlOiBcItin2LPZhSDYp9mE2YbZhdmI2LDYrCDYp9mE2YXYrti12LVcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLYo9i22YEg2K7Zitin2LHYp9iqINmG2YXZiNiw2Kwg2YXYrti12LXYjCDZhdmB2LXZiNmE2Kkg2KjZgdmI2KfYtdmEINil2YbYrNmE2YrYstmK2KlcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcblxyXG4gICAgTW9kZWw6IFwi2KfZhNmG2YXZiNiw2KxcIixcclxuICAgIENvbXByZXNzTW9kZWw6IHtcclxuICAgICAgVGl0bGU6IFwi2YbZhdmI2LDYrCDYp9mE2LbYuti3XCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcItin2YTZhtmF2YjYsNisINin2YTZhdiz2KrYrtiv2YUg2YTYtti62Lcg2KfZhNiz2KzZhCDYp9mE2KrYp9ix2YrYrtmKXCIsXHJcbiAgICB9LFxyXG4gICAgVGVtcGVyYXR1cmU6IHtcclxuICAgICAgVGl0bGU6IFwi2KfZhNi52LTZiNin2KbZitipICh0ZW1wZXJhdHVyZSlcIixcclxuICAgICAgU3ViVGl0bGU6IFwi2YPZhNmF2Kcg2LLYp9iv2Kog2KfZhNmC2YrZhdip2Iwg2LLYp9iv2Kog2KfZhNi52LTZiNin2KbZitipINmB2Yog2KfZhNix2K/ZiNivXCIsXHJcbiAgICB9LFxyXG4gICAgVG9wUDoge1xyXG4gICAgICBUaXRsZTogXCLYudmK2YbYp9iqINin2YTZhtmI2KfYqSAodG9wX3ApXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcItmF2LTYp9io2Ycg2YTZhNi52LTZiNin2KbZitipINmI2YTZg9mGINmE2Kcg2KrYutmK2LHZhyDZhdi5INin2YTYudi02YjYp9im2YrYqVwiLFxyXG4gICAgfSxcclxuICAgIE1heFRva2Vuczoge1xyXG4gICAgICBUaXRsZTogXCLYrdivINij2YLYtdmJINmE2YTYsdmF2YjYsiDZhNmD2YQg2LHYryAobWF4X3Rva2VucylcIixcclxuICAgICAgU3ViVGl0bGU6IFwi2KPZgti12Ykg2LnYr9ivINmE2YTYsdmF2YjYsiDZgdmKINiq2YHYp9i52YQg2YjYp9it2K9cIixcclxuICAgIH0sXHJcbiAgICBQcmVzZW5jZVBlbmFsdHk6IHtcclxuICAgICAgVGl0bGU6IFwi2KrYrNiv2K8g2KfZhNmF2YjYttmI2LkgKHByZXNlbmNlX3BlbmFsdHkpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcItmD2YTZhdinINiy2KfYr9iqINin2YTZgtmK2YXYqdiMINiy2KfYr9iqINin2K3YqtmF2KfZhNmK2Kkg2KfZhNiq2YjYs9i5INmB2Yog2YXZiNin2LbZiti5INis2K/Zitiv2KlcIixcclxuICAgIH0sXHJcbiAgICBGcmVxdWVuY3lQZW5hbHR5OiB7XHJcbiAgICAgIFRpdGxlOiBcIti52YLZiNio2Kkg2KfZhNiq2YPYsdin2LEgKGZyZXF1ZW5jeV9wZW5hbHR5KVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCLZg9mE2YXYpyDYstin2K/YqiDYp9mE2YLZitmF2KnYjCDYstin2K/YqiDYp9it2KrZhdin2YTZitipINiq2YLZhNmK2YQg2KrZg9ix2KfYsSDYp9mE2YPZhNmF2KfYqlwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIFN0b3JlOiB7XHJcbiAgICBEZWZhdWx0VG9waWM6IFwi2K/Ysdiv2LTYqSDYrNiv2YrYr9ipXCIsXHJcbiAgICBCb3RIZWxsbzogXCLZg9mK2YEg2YrZhdmD2YbZhtmKINmF2LPYp9i52K/YqtmD2J9cIixcclxuICAgIEVycm9yOiBcItit2K/YqyDYrti32KPYjCDZitix2KzZiSDYp9mE2YXYrdin2YjZhNipINmF2LHYqSDYo9iu2LHZiSDZhNin2K3ZgtmL2KdcIixcclxuICAgIFByb21wdDoge1xyXG4gICAgICBIaXN0b3J5OiAoY29udGVudDogc3RyaW5nKSA9PlxyXG4gICAgICAgIFwi2YfYsNinINmF2YTYrti1INmE2YTYr9ix2K/YtNipINin2YTYs9in2KjZgtipINmD2YbZgti32Kkg2KfZhti32YTYp9mCOiBcIiArIGNvbnRlbnQsXHJcbiAgICAgIFRvcGljOlxyXG4gICAgICAgIFwi2KfYs9iq2K7Yr9mFINij2LHYqNi5INil2YTZiSDYrtmF2LMg2YPZhNmF2KfYqiDZhNil2LHYrNin2Lkg2YXZhNiu2LUg2YXYrtiq2LXYsSDZhNmH2LDZhyDYp9mE2KzZhdmE2KnYjCDYqNiv2YjZhiDYtNix2K3YjCDYqNiv2YjZhiDYudmE2KfZhdin2Kog2KrYsdmC2YrZhdiMINio2K/ZiNmGINmD2YTZhdin2Kog2KrYudio2YrYsdmK2KnYjCDYqNiv2YjZhiDZhti1INil2LbYp9mB2YrYjCDYqNiv2YjZhiDYqtmG2LPZitmCINi52LHZiti22Iwg2KXYsNinINmE2YUg2YrZg9mGINmH2YbYp9mDINmF2YjYttmI2LnYjCDZitix2KzZiSDYp9mE2LnZiNiv2Kkg2KXZhNmJICfYr9ix2K/YtNipINi52KfZhdipJ1wiLFxyXG4gICAgICBTdW1tYXJpemU6XHJcbiAgICAgICAgXCLZgtmFINio2KrZhNiu2YrYtSDZhdit2KrZiNmJINin2YTYr9ix2K/YtNipINio2KfYrtiq2LXYp9ix2Iwg2YTYp9iz2KrYrtiv2KfZhdmHINmD2KXYtNin2LHYqSDYs9mK2KfZgtmK2Kkg2YTYp9it2YLYqdiMINin2KzYudmE2YfYpyDZgdmKINit2K/ZiNivIDIwMCDZg9mE2YXYqVwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIENvcHk6IHtcclxuICAgIFN1Y2Nlc3M6IFwi2KrZhSDYp9mE2YPYqtin2KjYqSDYpdmE2Ykg2KfZhNit2KfZgdi42KlcIixcclxuICAgIEZhaWxlZDogXCLZgdi02YQg2KfZhNmG2LPYrtiMINmK2LHYrNmJINmF2YbYrSDYo9iw2YjZhtin2Kog2KfZhNit2KfZgdi42KlcIixcclxuICB9LFxyXG4gIERvd25sb2FkOiB7XHJcbiAgICBTdWNjZXNzOiBcItiq2YUg2KrZhtiy2YrZhCDYp9mE2YXYrdiq2YjZiSDYpdmE2Ykg2YXYrNmE2K/Zgy5cIixcclxuICAgIEZhaWxlZDogXCLZgdi02YQg2KfZhNiq2YbYstmK2YQuXCIsXHJcbiAgfSxcclxuICBDb250ZXh0OiB7XHJcbiAgICBUb2FzdDogKHg6IGFueSkgPT4gYNmK2K3YqtmI2Yog2LnZhNmJICR7eH0g2KXYtNi52KfYsdin2Kog2YXYrti12LXYqWAsXHJcbiAgICBFZGl0OiBcItil2LnYr9in2K/Yp9iqINin2YTYr9ix2K/YtNipINin2YTYrdin2YTZitipXCIsXHJcbiAgICBBZGQ6IFwi2KXYttin2YHYqSDYr9ix2K/YtNipINis2K/Zitiv2KlcIixcclxuICAgIENsZWFyOiBcItiq2YUg2YXYs9itINin2YTYs9mK2KfZglwiLFxyXG4gICAgUmV2ZXJ0OiBcItin2LPYqti52KfYr9ipINin2YTYs9mK2KfZglwiLFxyXG4gIH0sXHJcbiAgUGx1Z2luOiB7XHJcbiAgICBOYW1lOiBcItin2YTYpdi22KfZgdin2KpcIixcclxuICB9LFxyXG4gIEZpbmVUdW5lZDoge1xyXG4gICAgU3lzbWVzc2FnZTogXCLYo9mG2Kog2YXYs9in2LnYr1wiLFxyXG4gIH0sXHJcbiAgU2VhcmNoQ2hhdDoge1xyXG4gICAgTmFtZTogXCLYqNit2KtcIixcclxuICAgIFBhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwi2KfZhNio2K3YqyDZgdmKINiz2KzZhNin2Kog2KfZhNiv2LHYr9i02KlcIixcclxuICAgICAgU2VhcmNoOiBcItij2K/YrtmEINmD2YTZhdin2Kog2KfZhNio2K3Yq1wiLFxyXG4gICAgICBOb1Jlc3VsdDogXCLZhNmFINmK2KrZhSDYp9mE2LnYq9mI2LEg2LnZhNmJINmG2KrYp9im2KxcIixcclxuICAgICAgTm9EYXRhOiBcItmE2Kcg2KrZiNis2K8g2KjZitin2YbYp9iqXCIsXHJcbiAgICAgIExvYWRpbmc6IFwi2KzYp9ix2Y0g2KfZhNiq2K3ZhdmK2YRcIixcclxuXHJcbiAgICAgIFN1YlRpdGxlOiAoY291bnQ6IG51bWJlcikgPT4gYNiq2YUg2KfZhNi52KvZiNixINi52YTZiSAke2NvdW50fSDZhtiq2KfYptisYCxcclxuICAgIH0sXHJcbiAgICBJdGVtOiB7XHJcbiAgICAgIFZpZXc6IFwi2LnYsdi2XCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgTWFzazoge1xyXG4gICAgTmFtZTogXCLYp9mE2YLZhtin2LlcIixcclxuICAgIFBhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwi2KPZgtmG2LnYqSDYp9mE2KPYr9mI2KfYsSDYp9mE2YXYrti12LXYqVwiLFxyXG4gICAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50fSDYqti52LHZitmBINmE2K/ZiNixINmF2K7Ytdi1YCxcclxuICAgICAgU2VhcmNoOiBcItio2K3YqyDYudmGINmC2YbYp9i5INin2YTYr9mI2LFcIixcclxuICAgICAgQ3JlYXRlOiBcItil2YbYtNin2KEg2KzYr9mK2K9cIixcclxuICAgIH0sXHJcbiAgICBJdGVtOiB7XHJcbiAgICAgIEluZm86IChjb3VudDogbnVtYmVyKSA9PiBg2YrYrdiq2YjZiiDYudmE2YkgJHtjb3VudH0g2YXYrdin2K/Yq9in2Kog2YXYrti12LXYqWAsXHJcbiAgICAgIENoYXQ6IFwi2KfZhNiv2LHYr9i02KlcIixcclxuICAgICAgVmlldzogXCLYudix2LZcIixcclxuICAgICAgRWRpdDogXCLYqtit2LHZitixXCIsXHJcbiAgICAgIERlbGV0ZTogXCLYrdiw2YFcIixcclxuICAgICAgRGVsZXRlQ29uZmlybTogXCLYqtij2YPZitivINin2YTYrdiw2YHYn1wiLFxyXG4gICAgfSxcclxuICAgIEVkaXRNb2RhbDoge1xyXG4gICAgICBUaXRsZTogKHJlYWRvbmx5OiBib29sZWFuKSA9PlxyXG4gICAgICAgIGDYqtit2LHZitixINin2YTZgtmG2KfYuSDYp9mE2YXYrti12LUgJHtyZWFkb25seSA/IFwiICjZhNmE2YLYsdin2KHYqSDZgdmC2LcpXCIgOiBcIlwifWAsXHJcbiAgICAgIERvd25sb2FkOiBcItiq2YbYstmK2YQg2KfZhNmC2YbYp9i5INin2YTZhdiu2LXYtVwiLFxyXG4gICAgICBDbG9uZTogXCLYp9iz2KrZhtiz2KfYriDYp9mE2YLZhtin2LlcIixcclxuICAgIH0sXHJcbiAgICBDb25maWc6IHtcclxuICAgICAgQXZhdGFyOiBcIti12YjYsdipINin2YTYr9mI2LFcIixcclxuICAgICAgTmFtZTogXCLYp9iz2YUg2KfZhNiv2YjYsVwiLFxyXG4gICAgICBTeW5jOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi2KfYs9iq2K7Yr9in2YUg2KfZhNil2LnYr9in2K/Yp9iqINin2YTYudin2YTZhdmK2KlcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLZh9mEINiq2LPYqtiu2K/ZhSDYp9mE2K/Ysdiv2LTYqSDYp9mE2K3Yp9mE2YrYqSDYp9mE2KXYudiv2KfYr9in2Kog2KfZhNi52KfZhNmF2YrYqSDZhNmE2YbZhdmI2LDYrFwiLFxyXG4gICAgICAgIENvbmZpcm06XHJcbiAgICAgICAgICBcItiz2KrYqtmFINin2YTZg9iq2KfYqNipINmB2YjZgiDYp9mE2KXYudiv2KfYr9in2Kog2KfZhNmF2K7Ytdi12Kkg2YTZhNiv2LHYr9i02Kkg2KfZhNit2KfZhNmK2Kkg2KrZhNmC2KfYptmK2YvYp9iMINiq2KPZg9mK2K8g2KrZgdi52YrZhCDYp9mE2KXYudiv2KfYr9in2Kog2KfZhNi52KfZhNmF2YrYqdifXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEhpZGVDb250ZXh0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwi2KXYrtmB2KfYoSDYp9mE2YXYrdin2K/Yq9in2Kog2KfZhNmF2K7Ytdi12KlcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLYqNi52K8g2KfZhNil2K7Zgdin2KHYjCDZhNmGINiq2LjZh9ixINin2YTZhdit2KfYr9ir2KfYqiDYp9mE2YXYrti12LXYqSDZgdmKINmI2KfYrNmH2Kkg2KfZhNiv2LHYr9i02KlcIixcclxuICAgICAgfSxcclxuICAgICAgU2hhcmU6IHtcclxuICAgICAgICBUaXRsZTogXCLZhdi02KfYsdmD2Kkg2YfYsNinINin2YTZgtmG2KfYuVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcItil2YbYtNin2KEg2LHYp9io2Lcg2YXYqNin2LTYsSDZhNmH2LDYpyDYp9mE2YLZhtin2LlcIixcclxuICAgICAgICBBY3Rpb246IFwi2YbYs9iuINin2YTYsdin2KjYt1wiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9LFxyXG4gIE5ld0NoYXQ6IHtcclxuICAgIFJldHVybjogXCLYp9mE2LnZiNiv2KlcIixcclxuICAgIFNraXA6IFwi2KjYr9ihINin2YTYotmGXCIsXHJcbiAgICBOb3RTaG93OiBcIti52K/ZhSDYp9mE2LnYsdi2INmF2LHYqSDYo9iu2LHZiVwiLFxyXG4gICAgQ29uZmlybU5vU2hvdzpcclxuICAgICAgXCLYqtij2YPZitivINil2YTYutin2KEg2KfZhNi52LHYttifINio2LnYryDYp9mE2KXZhNi62KfYodiMINmK2YXZg9mG2YMg2KXYudin2K/YqSDYqtmB2LnZitmE2Ycg2YHZiiDYp9mE2KXYudiv2KfYr9in2Kog2YHZiiDYo9mKINmI2YLYqi5cIixcclxuICAgIFRpdGxlOiBcItin2K7YqtixINmC2YbYp9i52YvYp1wiLFxyXG4gICAgU3ViVGl0bGU6IFwi2KfYqNiv2KMg2KfZhNii2YYg2YjYqtmB2KfYudmEINmF2Lkg2KfZhNij2YHZg9in2LEg2K7ZhNmBINin2YTZgtmG2KfYuVwiLFxyXG4gICAgTW9yZTogXCLYudix2LYg2KfZhNmD2YRcIixcclxuICB9LFxyXG5cclxuICBVUkxDb21tYW5kOiB7XHJcbiAgICBDb2RlOiBcItiq2YUg2KfZhNmD2LTZgSDYudmGINix2YXYsiDZiNi12YjZhCDZgdmKINin2YTYsdin2KjYt9iMINmH2YQg2KrYsdmK2K8g2KrYudio2KbYqtmHINiq2YTZgtin2KbZitmL2KfYn1wiLFxyXG4gICAgU2V0dGluZ3M6IFwi2KrZhSDYp9mE2YPYtNmBINi52YYg2KXYudiv2KfYr9in2Kog2YXYs9io2YLYqSDZgdmKINin2YTYsdin2KjYt9iMINmH2YQg2KrYsdmK2K8g2KrYudio2KbYqtmH2Kcg2KrZhNmC2KfYptmK2YvYp9ifXCIsXHJcbiAgfSxcclxuXHJcbiAgVUk6IHtcclxuICAgIENvbmZpcm06IFwi2KrYo9mD2YrYr1wiLFxyXG4gICAgQ2FuY2VsOiBcItil2YTYutin2KFcIixcclxuICAgIENsb3NlOiBcItil2LrZhNin2YJcIixcclxuICAgIENyZWF0ZTogXCLYpdmG2LTYp9ihXCIsXHJcbiAgICBFZGl0OiBcItiq2K3YsdmK2LFcIixcclxuICAgIEV4cG9ydDogXCLYqti12K/ZitixXCIsXHJcbiAgICBJbXBvcnQ6IFwi2KfYs9iq2YrYsdin2K9cIixcclxuICAgIFN5bmM6IFwi2YXYstin2YXZhtipXCIsXHJcbiAgICBDb25maWc6IFwi2KrZg9mI2YrZhlwiLFxyXG4gIH0sXHJcbiAgRXhwb3J0ZXI6IHtcclxuICAgIERlc2NyaXB0aW9uOiB7XHJcbiAgICAgIFRpdGxlOiBcItmB2YLYtyDYp9mE2LHYs9in2KbZhCDYqNi52K8g2YXYs9itINin2YTYs9mK2KfZgiDYs9mK2KrZhSDYudix2LbZh9inXCIsXHJcbiAgICB9LFxyXG4gICAgTW9kZWw6IFwi2KfZhNmG2YXZiNiw2KxcIixcclxuICAgIE1lc3NhZ2VzOiBcItin2YTYsdiz2KfYptmEXCIsXHJcbiAgICBUb3BpYzogXCLYp9mE2YXZiNi22YjYuVwiLFxyXG4gICAgVGltZTogXCLYp9mE2YjZgtiqXCIsXHJcbiAgfSxcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGFyO1xyXG4iXSwibmFtZXMiOlsiU3VibWl0S2V5IiwiZ2V0Q2xpZW50Q29uZmlnIiwiU0FBU19DSEFUX1VUTV9VUkwiLCJpc0FwcCIsImFyIiwiV0lQIiwiRXJyb3IiLCJVbmF1dGhvcml6ZWQiLCJBdXRoIiwiVGl0bGUiLCJUaXBzIiwiU3ViVGlwcyIsIklucHV0IiwiQ29uZmlybSIsIkxhdGVyIiwiUmV0dXJuIiwiU2Fhc1RpcHMiLCJUb3BUaXBzIiwiQ2hhdEl0ZW0iLCJDaGF0SXRlbUNvdW50IiwiY291bnQiLCJDaGF0IiwiU3ViVGl0bGUiLCJFZGl0TWVzc2FnZSIsIlRvcGljIiwiQWN0aW9ucyIsIkNoYXRMaXN0IiwiQ29tcHJlc3NlZEhpc3RvcnkiLCJFeHBvcnQiLCJDb3B5IiwiU3RvcCIsIlJldHJ5IiwiUGluIiwiUGluVG9hc3RDb250ZW50IiwiUGluVG9hc3RBY3Rpb24iLCJEZWxldGUiLCJFZGl0IiwiUmVmcmVzaFRpdGxlIiwiUmVmcmVzaFRvYXN0IiwiQ29tbWFuZHMiLCJuZXciLCJuZXdtIiwibmV4dCIsInByZXYiLCJjbGVhciIsImRlbCIsIklucHV0QWN0aW9ucyIsIlRvQm90dG9tIiwiVGhlbWUiLCJhdXRvIiwibGlnaHQiLCJkYXJrIiwiUHJvbXB0IiwiTWFza3MiLCJDbGVhciIsIlNldHRpbmdzIiwiVXBsb2FkSW1hZ2UiLCJSZW5hbWUiLCJUeXBpbmciLCJzdWJtaXRLZXkiLCJpbnB1dEhpbnRzIiwiU3RyaW5nIiwiRW50ZXIiLCJTZW5kIiwiQ29uZmlnIiwiUmVzZXQiLCJTYXZlQXMiLCJJc0NvbnRleHQiLCJEb3dubG9hZCIsIlNoYXJlIiwiTWVzc2FnZUZyb21Zb3UiLCJNZXNzYWdlRnJvbUNoYXRHUFQiLCJGb3JtYXQiLCJJbmNsdWRlQ29udGV4dCIsIlN0ZXBzIiwiU2VsZWN0IiwiUHJldmlldyIsIkltYWdlIiwiVG9hc3QiLCJNb2RhbCIsIlNlYXJjaCIsIkFsbCIsIkxhdGVzdCIsIk1lbW9yeSIsIkVtcHR5Q29udGVudCIsIlJlc2V0Q29uZmlybSIsIkhvbWUiLCJOZXdDaGF0IiwiRGVsZXRlQ2hhdCIsIkRlbGV0ZVRvYXN0IiwiUmV2ZXJ0IiwiRGFuZ2VyIiwiQWN0aW9uIiwiTGFuZyIsIk5hbWUiLCJBdmF0YXIiLCJGb250U2l6ZSIsIkZvbnRGYW1pbHkiLCJQbGFjZWhvbGRlciIsIkluamVjdFN5c3RlbVByb21wdHMiLCJJbnB1dFRlbXBsYXRlIiwiVXBkYXRlIiwiVmVyc2lvbiIsIngiLCJJc0xhdGVzdCIsIkNoZWNrVXBkYXRlIiwiSXNDaGVja2luZyIsIkZvdW5kVXBkYXRlIiwiR29Ub1VwZGF0ZSIsIlNlbmRLZXkiLCJUaWdodEJvcmRlciIsIlNlbmRQcmV2aWV3QnViYmxlIiwiQXV0b0dlbmVyYXRlVGl0bGUiLCJTeW5jIiwiQ2xvdWRTdGF0ZSIsIk5vdFN5bmNZZXQiLCJTdWNjZXNzIiwiRmFpbCIsIkNoZWNrIiwiU3luY1R5cGUiLCJQcm94eSIsIlByb3h5VXJsIiwiV2ViRGF2IiwiRW5kcG9pbnQiLCJVc2VyTmFtZSIsIlBhc3N3b3JkIiwiVXBTdGFzaCIsIkxvY2FsU3RhdGUiLCJPdmVydmlldyIsIm92ZXJ2aWV3IiwiY2hhdCIsIm1lc3NhZ2UiLCJwcm9tcHQiLCJtYXNrIiwiSW1wb3J0RmFpbGVkIiwiTWFzayIsIlNwbGFzaCIsIkJ1aWx0aW4iLCJEaXNhYmxlIiwiTGlzdCIsIkxpc3RDb3VudCIsImJ1aWx0aW4iLCJjdXN0b20iLCJBZGQiLCJFZGl0TW9kYWwiLCJIaXN0b3J5Q291bnQiLCJDb21wcmVzc1RocmVzaG9sZCIsIlVzYWdlIiwidXNlZCIsInRvdGFsIiwiTm9BY2Nlc3MiLCJBY2Nlc3MiLCJTYWFzU3RhcnQiLCJMYWJlbCIsIkNoYXROb3ciLCJBY2Nlc3NDb2RlIiwiQ3VzdG9tRW5kcG9pbnQiLCJQcm92aWRlciIsIk9wZW5BSSIsIkFwaUtleSIsIkF6dXJlIiwiQXBpVmVyaW9uIiwiQW50aHJvcGljIiwiR29vZ2xlIiwiQXBpVmVyc2lvbiIsIkdvb2dsZVNhZmV0eVNldHRpbmdzIiwiQmFpZHUiLCJTZWNyZXRLZXkiLCJCeXRlRGFuY2UiLCJBbGliYWJhIiwiQ3VzdG9tTW9kZWwiLCJNb2RlbCIsIkNvbXByZXNzTW9kZWwiLCJUZW1wZXJhdHVyZSIsIlRvcFAiLCJNYXhUb2tlbnMiLCJQcmVzZW5jZVBlbmFsdHkiLCJGcmVxdWVuY3lQZW5hbHR5IiwiU3RvcmUiLCJEZWZhdWx0VG9waWMiLCJCb3RIZWxsbyIsIkhpc3RvcnkiLCJjb250ZW50IiwiU3VtbWFyaXplIiwiRmFpbGVkIiwiQ29udGV4dCIsIlBsdWdpbiIsIkZpbmVUdW5lZCIsIlN5c21lc3NhZ2UiLCJTZWFyY2hDaGF0IiwiUGFnZSIsIk5vUmVzdWx0IiwiTm9EYXRhIiwiTG9hZGluZyIsIkl0ZW0iLCJWaWV3IiwiQ3JlYXRlIiwiSW5mbyIsIkRlbGV0ZUNvbmZpcm0iLCJyZWFkb25seSIsIkNsb25lIiwiSGlkZUNvbnRleHQiLCJTa2lwIiwiTm90U2hvdyIsIkNvbmZpcm1Ob1Nob3ciLCJNb3JlIiwiVVJMQ29tbWFuZCIsIkNvZGUiLCJVSSIsIkNhbmNlbCIsIkNsb3NlIiwiSW1wb3J0IiwiRXhwb3J0ZXIiLCJEZXNjcmlwdGlvbiIsIk1lc3NhZ2VzIiwiVGltZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/locales/ar.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/locales/bn.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/locales/bn.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _store_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../store/config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n\n\n\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_1__.getClientConfig)()?.isApp;\nconst bn = {\n WIP: \"শীঘ্রই আসছে...\",\n Error: {\n Unauthorized: isApp ? `😆 কথোপকথনে কিছু সমস্যা হয়েছে, চিন্তার কিছু নেই:\r\n \\\\ 1️⃣ যদি আপনি শূন্য কনফিগারেশনে শুরু করতে চান, তাহলে [এখানে ক্লিক করে অবিলম্বে কথোপকথন শুরু করুন 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\\\ 2️⃣ যদি আপনি আপনার নিজস্ব OpenAI সম্পদ ব্যবহার করতে চান, তাহলে [এখানে ক্লিক করুন](/#/settings) সেটিংস পরিবর্তন করতে ⚙️` : `😆 কথোপকথনে কিছু সমস্যা হয়েছে, চিন্তার কিছু নেই:\r\n \\ 1️⃣ যদি আপনি শূন্য কনফিগারেশনে শুরু করতে চান, তাহলে [এখানে ক্লিক করে অবিলম্বে কথোপকথন শুরু করুন 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\ 2️⃣ যদি আপনি একটি প্রাইভেট ডেপ্লয়মেন্ট সংস্করণ ব্যবহার করেন, তাহলে [এখানে ক্লিক করুন](/#/auth) প্রবেশাধিকার কীগুলি প্রবেশ করতে 🔑\r\n \\ 3️⃣ যদি আপনি আপনার নিজস্ব OpenAI সম্পদ ব্যবহার করতে চান, তাহলে [এখানে ক্লিক করুন](/#/settings) সেটিংস পরিবর্তন করতে ⚙️\r\n `\n },\n Auth: {\n Title: \"পাসওয়ার্ড প্রয়োজন\",\n Tips: \"অ্যাডমিন পাসওয়ার্ড প্রমাণীকরণ চালু করেছেন, নিচে অ্যাক্সেস কোড প্রবেশ করুন\",\n SubTips: \"অথবা আপনার OpenAI অথবা Google API কী প্রবেশ করান\",\n Input: \"এখানে অ্যাক্সেস কোড লিখুন\",\n Confirm: \"নিশ্চিত করুন\",\n Later: \"পরে বলুন\",\n Return: \"ফিরে আসা\",\n SaasTips: \"কনফিগারেশন খুব কঠিন, আমি অবিলম্বে ব্যবহার করতে চাই\",\n TopTips: \"\\uD83E\\uDD73 NextChat AI প্রথম প্রকাশের অফার, এখনই OpenAI o1, GPT-4o, Claude-3.5 এবং সর্বশেষ বড় মডেলগুলি আনলক করুন\"\n },\n ChatItem: {\n ChatItemCount: (count)=>`${count} টি চ্যাট`\n },\n Chat: {\n SubTitle: (count)=>`মোট ${count} টি চ্যাট`,\n EditMessage: {\n Title: \"বার্তাগুলি সম্পাদনা করুন\",\n Topic: {\n Title: \"চ্যাটের বিষয়\",\n SubTitle: \"বর্তমান চ্যাটের বিষয় পরিবর্তন করুন\"\n }\n },\n Actions: {\n ChatList: \"বার্তা তালিকা দেখুন\",\n CompressedHistory: \"সংকুচিত ইতিহাস দেখুন\",\n Export: \"চ্যাট ইতিহাস রপ্তানী করুন\",\n Copy: \"অনুলিপি করুন\",\n Stop: \"থামান\",\n Retry: \"পুনরায় চেষ্টা করুন\",\n Pin: \"পিন করুন\",\n PinToastContent: \"1 টি চ্যাট পূর্বনির্ধারিত প্রম্পটে পিন করা হয়েছে\",\n PinToastAction: \"দেখুন\",\n Delete: \"মুছে ফেলুন\",\n Edit: \"সম্পাদনা করুন\",\n RefreshTitle: \"শিরোনাম রিফ্রেশ করুন\",\n RefreshToast: \"শিরোনাম রিফ্রেশ অনুরোধ পাঠানো হয়েছে\"\n },\n Commands: {\n new: \"নতুন চ্যাট\",\n newm: \"মাস্ক থেকে নতুন চ্যাট\",\n next: \"পরবর্তী চ্যাট\",\n prev: \"পূর্ববর্তী চ্যাট\",\n clear: \"প্রসঙ্গ পরিষ্কার করুন\",\n del: \"চ্যাট মুছে ফেলুন\"\n },\n InputActions: {\n Stop: \"প্রতিক্রিয়া থামান\",\n ToBottom: \"সর্বশেষে স্ক্রোল করুন\",\n Theme: {\n auto: \"স্বয়ংক্রিয় থিম\",\n light: \"আলোর মোড\",\n dark: \"অন্ধকার মোড\"\n },\n Prompt: \"সংক্ষিপ্ত নির্দেশনা\",\n Masks: \"সমস্ত মাস্ক\",\n Clear: \"চ্যাট পরিষ্কার করুন\",\n Settings: \"চ্যাট সেটিংস\",\n UploadImage: \"চিত্র আপলোড করুন\"\n },\n Rename: \"চ্যাট নাম পরিবর্তন করুন\",\n Typing: \"লিখছে…\",\n Input: (submitKey)=>{\n var inputHints = `${submitKey} পাঠান`;\n if (submitKey === String(_store_config__WEBPACK_IMPORTED_MODULE_0__.SubmitKey.Enter)) {\n inputHints += \",Shift + Enter নতুন লাইন\";\n }\n return inputHints + \",/ পূর্ণতা সক্রিয় করুন,: কমান্ড সক্রিয় করুন\";\n },\n Send: \"পাঠান\",\n Config: {\n Reset: \"মেমরি মুছে ফেলুন\",\n SaveAs: \"মাস্ক হিসাবে সংরক্ষণ করুন\"\n },\n IsContext: \"পূর্বনির্ধারিত প্রম্পট\"\n },\n Export: {\n Title: \"চ্যাট ইতিহাস শেয়ার করুন\",\n Copy: \"সবকিছু কপি করুন\",\n Download: \"ফাইল ডাউনলোড করুন\",\n Share: \"ShareGPT তে শেয়ার করুন\",\n MessageFromYou: \"ব্যবহারকারী\",\n MessageFromChatGPT: \"ChatGPT\",\n Format: {\n Title: \"রপ্তানির ফর্ম্যাট\",\n SubTitle: \"Markdown টেক্সট বা PNG চিত্র রপ্তানি করা যাবে\"\n },\n IncludeContext: {\n Title: \"মাস্ক প্রসঙ্গ অন্তর্ভুক্ত করুন\",\n SubTitle: \"বার্তায় মাস্ক প্রসঙ্গ প্রদর্শন করা হবে কি না\"\n },\n Steps: {\n Select: \"নির্বাচন করুন\",\n Preview: \"পূর্বরূপ দেখুন\"\n },\n Image: {\n Toast: \"স্ক্রীনশট তৈরি করা হচ্ছে\",\n Modal: \"ছবি সংরক্ষণ করতে দীর্ঘ প্রেস করুন অথবা রাইট ক্লিক করুন\"\n }\n },\n Select: {\n Search: \"বার্তা অনুসন্ধান করুন\",\n All: \"সবকিছু নির্বাচন করুন\",\n Latest: \"সর্বশেষ কিছু\",\n Clear: \"নির্বাচন পরিষ্কার করুন\"\n },\n Memory: {\n Title: \"ইতিহাস সারাংশ\",\n EmptyContent: \"চ্যাটের বিষয়বস্তু খুব সংক্ষিপ্ত, সারাংশ প্রয়োজন নেই\",\n Send: \"অটোমেটিক চ্যাট ইতিহাস সংকুচিত করুন এবং প্রসঙ্গ হিসেবে পাঠান\",\n Copy: \"সারাংশ কপি করুন\",\n Reset: \"[unused]\",\n ResetConfirm: \"ইতিহাস সারাংশ মুছে ফেলার নিশ্চিত করুন?\"\n },\n Home: {\n NewChat: \"নতুন চ্যাট\",\n DeleteChat: \"নির্বাচিত চ্যাট মুছে ফেলার নিশ্চিত করুন?\",\n DeleteToast: \"চ্যাট মুছে ফেলা হয়েছে\",\n Revert: \"পূর্বাবস্থায় ফেরান\"\n },\n Settings: {\n Title: \"সেটিংস\",\n SubTitle: \"সমস্ত সেটিংস অপশন\",\n Danger: {\n Reset: {\n Title: \"সমস্ত সেটিংস পুনরায় সেট করুন\",\n SubTitle: \"সমস্ত সেটিংস বিকল্পগুলিকে ডিফল্ট মানে পুনরায় সেট করুন\",\n Action: \"এখনই পুনরায় সেট করুন\",\n Confirm: \"সমস্ত সেটিংস পুনরায় সেট করার নিশ্চিত করুন?\"\n },\n Clear: {\n Title: \"সমস্ত তথ্য মুছে ফেলুন\",\n SubTitle: \"সমস্ত চ্যাট এবং সেটিংস ডেটা মুছে ফেলুন\",\n Action: \"এখনই মুছে ফেলুন\",\n Confirm: \"সমস্ত চ্যাট এবং সেটিংস ডেটা মুছে ফেলানোর নিশ্চিত করুন?\"\n }\n },\n Lang: {\n Name: \"Language\",\n All: \"সমস্ত ভাষা\"\n },\n Avatar: \"অভিনেতা\",\n FontSize: {\n Title: \"ফন্ট সাইজ\",\n SubTitle: \"চ্যাট কনটেন্টের ফন্ট সাইজ\"\n },\n FontFamily: {\n Title: \"চ্যাট ফন্ট\",\n SubTitle: \"চ্যাট সামগ্রীর ফন্ট, বিশ্বব্যাপী ডিফল্ট ফন্ট প্রয়োগ করতে খালি রাখুন\",\n Placeholder: \"ফন্টের নাম\"\n },\n InjectSystemPrompts: {\n Title: \"সিস্টেম-লেভেল প্রম্পট যোগ করুন\",\n SubTitle: \"প্রত্যেক বার্তায় একটি সিস্টেম প্রম্পট যোগ করুন যা ChatGPT এর অনুকরণ করবে\"\n },\n InputTemplate: {\n Title: \"ব্যবহারকারীর ইনপুট প্রিপ্রসেসিং\",\n SubTitle: \"ব্যবহারকারীর সর্বশেষ বার্তা এই টেমপ্লেটে পূরণ করা হবে\"\n },\n Update: {\n Version: (x)=>`বর্তমান সংস্করণ: ${x}`,\n IsLatest: \"এটি সর্বশেষ সংস্করণ\",\n CheckUpdate: \"আপডেট পরীক্ষা করুন\",\n IsChecking: \"আপডেট পরীক্ষা করা হচ্ছে...\",\n FoundUpdate: (x)=>`নতুন সংস্করণ পাওয়া গিয়েছে: ${x}`,\n GoToUpdate: \"আপডেট করতে যান\"\n },\n SendKey: \"পাঠানোর কী\",\n Theme: \"থিম\",\n TightBorder: \"বর্ডার-বিহীন মোড\",\n SendPreviewBubble: {\n Title: \"প্রিভিউ বুদবুদ\",\n SubTitle: \"প্রিভিউ বুদবুদে Markdown কনটেন্ট প্রিভিউ করুন\"\n },\n AutoGenerateTitle: {\n Title: \"স্বয়ংক্রিয় শিরোনাম জেনারেশন\",\n SubTitle: \"চ্যাট কনটেন্টের ভিত্তিতে উপযুক্ত শিরোনাম তৈরি করুন\"\n },\n Sync: {\n CloudState: \"ক্লাউড ডেটা\",\n NotSyncYet: \"এখনো সিঙ্ক করা হয়নি\",\n Success: \"সিঙ্ক সফল\",\n Fail: \"সিঙ্ক ব্যর্থ\",\n Config: {\n Modal: {\n Title: \"ক্লাউড সিঙ্ক কনফিগার করুন\",\n Check: \"পরীক্ষা করুন\"\n },\n SyncType: {\n Title: \"সিঙ্ক টাইপ\",\n SubTitle: \"পছন্দসই সিঙ্ক সার্ভার নির্বাচন করুন\"\n },\n Proxy: {\n Title: \"প্রক্সি সক্রিয় করুন\",\n SubTitle: \"ব্রাউজারে সিঙ্ক করার সময়, ক্রস-অরিজিন সীমাবদ্ধতা এড়াতে প্রক্সি সক্রিয় করতে হবে\"\n },\n ProxyUrl: {\n Title: \"প্রক্সি ঠিকানা\",\n SubTitle: \"এটি শুধুমাত্র প্রকল্পের সাথে সরবরাহিত ক্রস-অরিজিন প্রক্সির জন্য প্রযোজ্য\"\n },\n WebDav: {\n Endpoint: \"WebDAV ঠিকানা\",\n UserName: \"ব্যবহারকারীর নাম\",\n Password: \"পাসওয়ার্ড\"\n },\n UpStash: {\n Endpoint: \"UpStash Redis REST URL\",\n UserName: \"ব্যাকআপ নাম\",\n Password: \"UpStash Redis REST টোকেন\"\n }\n },\n LocalState: \"স্থানীয় ডেটা\",\n Overview: (overview)=>{\n return `${overview.chat} বার চ্যাট, ${overview.message} বার্তা, ${overview.prompt} প্রম্পট, ${overview.mask} মাস্ক`;\n },\n ImportFailed: \"আমদানি ব্যর্থ\"\n },\n Mask: {\n Splash: {\n Title: \"মাস্ক লঞ্চ পেজ\",\n SubTitle: \"নতুন চ্যাট শুরু করার সময় মাস্ক লঞ্চ পেজ প্রদর্শন করুন\"\n },\n Builtin: {\n Title: \"ইনবিল্ট মাস্ক লুকান\",\n SubTitle: \"সমস্ত মাস্ক তালিকায় ইনবিল্ট মাস্ক লুকান\"\n }\n },\n Prompt: {\n Disable: {\n Title: \"প্রম্পট অটো-কমপ্লিশন নিষ্ক্রিয় করুন\",\n SubTitle: \"ইনপুট বক্সের শুরুতে / টাইপ করলে অটো-কমপ্লিশন সক্রিয় হবে\"\n },\n List: \"স্বনির্ধারিত প্রম্পট তালিকা\",\n ListCount: (builtin, custom)=>`ইনবিল্ট ${builtin} টি, ব্যবহারকারী সংজ্ঞায়িত ${custom} টি`,\n Edit: \"সম্পাদনা করুন\",\n Modal: {\n Title: \"প্রম্পট তালিকা\",\n Add: \"নতুন করুন\",\n Search: \"প্রম্পট অনুসন্ধান করুন\"\n },\n EditModal: {\n Title: \"প্রম্পট সম্পাদনা করুন\"\n }\n },\n HistoryCount: {\n Title: \"সংযুক্ত ইতিহাস বার্তার সংখ্যা\",\n SubTitle: \"প্রতিটি অনুরোধে সংযুক্ত ইতিহাস বার্তার সংখ্যা\"\n },\n CompressThreshold: {\n Title: \"ইতিহাস বার্তা দৈর্ঘ্য সংকুচিত থ্রেশহোল্ড\",\n SubTitle: \"যখন সংকুচিত ইতিহাস বার্তা এই মান ছাড়িয়ে যায়, তখন সংকুচিত করা হবে\"\n },\n Usage: {\n Title: \"ব্যালেন্স চেক\",\n SubTitle (used, total) {\n return `এই মাসে ব্যবহৃত $${used}, সাবস্ক্রিপশন মোট $${total}`;\n },\n IsChecking: \"পরীক্ষা করা হচ্ছে…\",\n Check: \"পুনরায় পরীক্ষা করুন\",\n NoAccess: \"ব্যালেন্স দেখতে API কী অথবা অ্যাক্সেস পাসওয়ার্ড প্রবেশ করুন\"\n },\n Access: {\n SaasStart: {\n Title: \"NextChat AI ব্যবহার করুন\",\n Label: \"(সেরা মূল্যসাশ্রয়ী সমাধান)\",\n SubTitle: \"NextChat কর্তৃক অফিসিয়াল রক্ষণাবেক্ষণ, শূন্য কনফিগারেশন ব্যবহার শুরু করুন, OpenAI o1, GPT-4o, Claude-3.5 সহ সর্বশেষ বড় মডেলগুলি সমর্থন করে\",\n ChatNow: \"এখনই চ্যাট করুন\"\n },\n AccessCode: {\n Title: \"অ্যাক্সেস পাসওয়ার্ড\",\n SubTitle: \"অ্যাডমিন এনক্রিপ্টেড অ্যাক্সেস সক্রিয় করেছেন\",\n Placeholder: \"অ্যাক্সেস পাসওয়ার্ড প্রবেশ করুন\"\n },\n CustomEndpoint: {\n Title: \"স্বনির্ধারিত ইন্টারফেস\",\n SubTitle: \"স্বনির্ধারিত Azure বা OpenAI সার্ভিস ব্যবহার করবেন কি?\"\n },\n Provider: {\n Title: \"মডেল পরিষেবা প্রদানকারী\",\n SubTitle: \"বিভিন্ন পরিষেবা প্রদানকারীতে স্যুইচ করুন\"\n },\n OpenAI: {\n ApiKey: {\n Title: \"API কী\",\n SubTitle: \"পাসওয়ার্ড অ্যাক্সেস সীমাবদ্ধতা এড়াতে স্বনির্ধারিত OpenAI কী ব্যবহার করুন\",\n Placeholder: \"OpenAI API কী\"\n },\n Endpoint: {\n Title: \"ইন্টারফেস ঠিকানা\",\n SubTitle: \"ডিফল্ট ঠিকানা বাদে, http(s):// অন্তর্ভুক্ত করতে হবে\"\n }\n },\n Azure: {\n ApiKey: {\n Title: \"ইন্টারফেস কী\",\n SubTitle: \"পাসওয়ার্ড অ্যাক্সেস সীমাবদ্ধতা এড়াতে স্বনির্ধারিত Azure কী ব্যবহার করুন\",\n Placeholder: \"Azure API কী\"\n },\n Endpoint: {\n Title: \"ইন্টারফেস ঠিকানা\",\n SubTitle: \"উদাহরণ:\"\n },\n ApiVerion: {\n Title: \"ইন্টারফেস সংস্করণ (azure api version)\",\n SubTitle: \"নির্দিষ্ট সংস্করণ নির্বাচন করুন\"\n }\n },\n Anthropic: {\n ApiKey: {\n Title: \"ইন্টারফেস কী\",\n SubTitle: \"পাসওয়ার্ড অ্যাক্সেস সীমাবদ্ধতা এড়াতে স্বনির্ধারিত Anthropic কী ব্যবহার করুন\",\n Placeholder: \"Anthropic API কী\"\n },\n Endpoint: {\n Title: \"ইন্টারফেস ঠিকানা\",\n SubTitle: \"উদাহরণ:\"\n },\n ApiVerion: {\n Title: \"ইন্টারফেস সংস্করণ (claude api version)\",\n SubTitle: \"নির্দিষ্ট API সংস্করণ প্রবেশ করুন\"\n }\n },\n Google: {\n ApiKey: {\n Title: \"API কী\",\n SubTitle: \"Google AI থেকে আপনার API কী পান\",\n Placeholder: \"আপনার Google AI Studio API কী প্রবেশ করুন\"\n },\n Endpoint: {\n Title: \"টার্মিনাল ঠিকানা\",\n SubTitle: \"উদাহরণ:\"\n },\n ApiVersion: {\n Title: \"API সংস্করণ (শুধুমাত্র gemini-pro)\",\n SubTitle: \"একটি নির্দিষ্ট API সংস্করণ নির্বাচন করুন\"\n },\n GoogleSafetySettings: {\n Title: \"Google সেফটি ফিল্টার স্তর\",\n SubTitle: \"বিষয়বস্তু ফিল্টার স্তর সেট করুন\"\n }\n },\n Baidu: {\n ApiKey: {\n Title: \"API কী\",\n SubTitle: \"স্বনির্ধারিত Baidu API কী ব্যবহার করুন\",\n Placeholder: \"Baidu API কী\"\n },\n SecretKey: {\n Title: \"সিক্রেট কী\",\n SubTitle: \"স্বনির্ধারিত Baidu সিক্রেট কী ব্যবহার করুন\",\n Placeholder: \"Baidu সিক্রেট কী\"\n },\n Endpoint: {\n Title: \"ইন্টারফেস ঠিকানা\",\n SubTitle: \"স্বনির্ধারিত সমর্থিত নয়, .env কনফিগারেশনে চলে যান\"\n }\n },\n ByteDance: {\n ApiKey: {\n Title: \"ইন্টারফেস কী\",\n SubTitle: \"স্বনির্ধারিত ByteDance API কী ব্যবহার করুন\",\n Placeholder: \"ByteDance API কী\"\n },\n Endpoint: {\n Title: \"ইন্টারফেস ঠিকানা\",\n SubTitle: \"উদাহরণ:\"\n }\n },\n Alibaba: {\n ApiKey: {\n Title: \"ইন্টারফেস কী\",\n SubTitle: \"স্বনির্ধারিত আলিবাবা ক্লাউড API কী ব্যবহার করুন\",\n Placeholder: \"Alibaba Cloud API কী\"\n },\n Endpoint: {\n Title: \"ইন্টারফেস ঠিকানা\",\n SubTitle: \"উদাহরণ:\"\n }\n },\n CustomModel: {\n Title: \"স্বনির্ধারিত মডেল নাম\",\n SubTitle: \"স্বনির্ধারিত মডেল বিকল্পগুলি যুক্ত করুন, ইংরেজি কমা দ্বারা আলাদা করুন\"\n }\n },\n Model: \"মডেল (model)\",\n CompressModel: {\n Title: \"সংকোচন মডেল\",\n SubTitle: \"ইতিহাস সংকুচিত করার জন্য ব্যবহৃত মডেল\"\n },\n Temperature: {\n Title: \"যাদুকরিতা (temperature)\",\n SubTitle: \"মান বাড়ালে উত্তর বেশি এলোমেলো হবে\"\n },\n TopP: {\n Title: \"নিউক্লিয়ার স্যাম্পলিং (top_p)\",\n SubTitle: \"যাদুকরিতা মত, কিন্তু একসাথে পরিবর্তন করবেন না\"\n },\n MaxTokens: {\n Title: \"একটি উত্তর সীমা (max_tokens)\",\n SubTitle: \"প্রতি ইন্টারঅ্যাকশনে সর্বাধিক টোকেন সংখ্যা\"\n },\n PresencePenalty: {\n Title: \"বিষয়বস্তু তাজা (presence_penalty)\",\n SubTitle: \"মান বাড়ালে নতুন বিষয়ে প্রসারিত হওয়ার সম্ভাবনা বেশি\"\n },\n FrequencyPenalty: {\n Title: \"ফ্রিকোয়েন্সি পেনাল্টি (frequency_penalty)\",\n SubTitle: \"মান বাড়ালে পুনরাবৃত্তি শব্দ কমানোর সম্ভাবনা বেশি\"\n }\n },\n Store: {\n DefaultTopic: \"নতুন চ্যাট\",\n BotHello: \"আপনার জন্য কিছু করতে পারি?\",\n Error: \"একটি ত্রুটি ঘটেছে, পরে আবার চেষ্টা করুন\",\n Prompt: {\n History: (content)=>\"এটি পূর্বের চ্যাটের সারাংশ হিসেবে ব্যবহৃত হবে: \" + content,\n Topic: \"চার থেকে পাঁচটি শব্দ ব্যবহার করে এই বাক্যের সংক্ষিপ্ত থিম দিন, ব্যাখ্যা, বিরাম চিহ্ন, ভাষা, অতিরিক্ত টেক্সট বা বোল্ড না ব্যবহার করুন। যদি কোনো থিম না থাকে তবে সরাসরি 'বেকার' বলুন\",\n Summarize: \"আলোচনার বিষয়বস্তু সংক্ষিপ্তভাবে সারাংশ করুন, পরবর্তী কনটেক্সট প্রম্পট হিসেবে ব্যবহারের জন্য, ২০০ শব্দের মধ্যে সীমাবদ্ধ রাখুন\"\n }\n },\n Copy: {\n Success: \"ক্লিপবোর্ডে লেখা হয়েছে\",\n Failed: \"কপি ব্যর্থ হয়েছে, দয়া করে ক্লিপবোর্ড অনুমতি প্রদান করুন\"\n },\n Download: {\n Success: \"বিষয়বস্তু আপনার ডিরেক্টরিতে ডাউনলোড করা হয়েছে।\",\n Failed: \"ডাউনলোড ব্যর্থ হয়েছে।\"\n },\n Context: {\n Toast: (x)=>`${x}টি পূর্বনির্ধারিত প্রম্পট অন্তর্ভুক্ত`,\n Edit: \"বর্তমান চ্যাট সেটিংস\",\n Add: \"একটি নতুন চ্যাট যোগ করুন\",\n Clear: \"কনটেক্সট পরিষ্কার করা হয়েছে\",\n Revert: \"কনটেক্সট পুনরুদ্ধার করুন\"\n },\n Plugin: {\n Name: \"প্লাগইন\"\n },\n FineTuned: {\n Sysmessage: \"আপনি একজন সহকারী\"\n },\n SearchChat: {\n Name: \"অনুসন্ধান\",\n Page: {\n Title: \"চ্যাট রেকর্ড অনুসন্ধান করুন\",\n Search: \"অনুসন্ধান কীওয়ার্ড লিখুন\",\n NoResult: \"কোন ফলাফল পাওয়া যায়নি\",\n NoData: \"কোন তথ্য নেই\",\n Loading: \"লোড হচ্ছে\",\n SubTitle: (count)=>`${count} টি ফলাফল পাওয়া গেছে`\n },\n Item: {\n View: \"দেখুন\"\n }\n },\n Mask: {\n Name: \"মাস্ক\",\n Page: {\n Title: \"পূর্বনির্ধারিত চরিত্র মাস্ক\",\n SubTitle: (count)=>`${count}টি পূর্বনির্ধারিত চরিত্র সংজ্ঞা`,\n Search: \"চরিত্র মাস্ক অনুসন্ধান করুন\",\n Create: \"নতুন তৈরি করুন\"\n },\n Item: {\n Info: (count)=>`ভিতরে ${count}টি পূর্বনির্ধারিত চ্যাট রয়েছে`,\n Chat: \"চ্যাট\",\n View: \"দেখুন\",\n Edit: \"সম্পাদনা করুন\",\n Delete: \"মুছে ফেলুন\",\n DeleteConfirm: \"মুছে ফেলার জন্য নিশ্চিত করুন?\"\n },\n EditModal: {\n Title: (readonly)=>`পূর্বনির্ধারিত মাস্ক সম্পাদনা ${readonly ? \"(পঠনযোগ্য)\" : \"\"}`,\n Download: \"পূর্বনির্ধারিত ডাউনলোড করুন\",\n Clone: \"পূর্বনির্ধারিত ক্লোন করুন\"\n },\n Config: {\n Avatar: \"চরিত্রের চিত্র\",\n Name: \"চরিত্রের নাম\",\n Sync: {\n Title: \"গ্লোবাল সেটিংস ব্যবহার করুন\",\n SubTitle: \"বর্তমান চ্যাট গ্লোবাল মডেল সেটিংস ব্যবহার করছে কি না\",\n Confirm: \"বর্তমান চ্যাটের কাস্টম সেটিংস স্বয়ংক্রিয়ভাবে ওভাররাইট হবে, গ্লোবাল সেটিংস সক্রিয় করতে নিশ্চিত?\"\n },\n HideContext: {\n Title: \"পূর্বনির্ধারিত চ্যাট লুকান\",\n SubTitle: \"লুকানোর পরে পূর্বনির্ধারিত চ্যাট চ্যাট ইন্টারফেসে প্রদর্শিত হবে না\"\n },\n Share: {\n Title: \"এই মাস্ক শেয়ার করুন\",\n SubTitle: \"এই মাস্কের সরাসরি লিঙ্ক তৈরি করুন\",\n Action: \"লিঙ্ক কপি করুন\"\n }\n }\n },\n NewChat: {\n Return: \"ফিরে যান\",\n Skip: \"ডাইরেক্ট শুরু করুন\",\n NotShow: \"আবার প্রদর্শন করবেন না\",\n ConfirmNoShow: \"নিশ্চিত যে নিষ্ক্রিয় করবেন? নিষ্ক্রিয় করার পরে সেটিংসে পুনরায় সক্রিয় করা যাবে।\",\n Title: \"একটি মাস্ক নির্বাচন করুন\",\n SubTitle: \"এখন শুরু করুন, মাস্কের পিছনের চিন্তা প্রতিক্রিয়া করুন\",\n More: \"সব দেখুন\"\n },\n URLCommand: {\n Code: \"লিঙ্কে অ্যাক্সেস কোড ইতিমধ্যে অন্তর্ভুক্ত রয়েছে, অটো পূরণ করতে চান?\",\n Settings: \"লিঙ্কে প্রাক-নির্ধারিত সেটিংস অন্তর্ভুক্ত রয়েছে, অটো পূরণ করতে চান?\"\n },\n UI: {\n Confirm: \"নিশ্চিত করুন\",\n Cancel: \"বাতিল করুন\",\n Close: \"বন্ধ করুন\",\n Create: \"নতুন তৈরি করুন\",\n Edit: \"সম্পাদনা করুন\",\n Export: \"রপ্তানি করুন\",\n Import: \"আমদানি করুন\",\n Sync: \"সিঙ্ক\",\n Config: \"কনফিগারেশন\"\n },\n Exporter: {\n Description: {\n Title: \"শুধুমাত্র কনটেক্সট পরিষ্কার করার পরে বার্তাগুলি প্রদর্শিত হবে\"\n },\n Model: \"মডেল\",\n Messages: \"বার্তা\",\n Topic: \"থিম\",\n Time: \"সময়\"\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (bn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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VnVMLE1BQU07SUFDUjtJQUVBQyxZQUFZO1FBQ1ZDLE1BQU07UUFDTnhKLFVBQ0U7SUFDSjtJQUVBeUosSUFBSTtRQUNGbk0sU0FBUztRQUNUb00sUUFBUTtRQUNSQyxPQUFPO1FBQ1BkLFFBQVE7UUFDUmhLLE1BQU07UUFDTlIsUUFBUTtRQUNSdUwsUUFBUTtRQUNSbEcsTUFBTTtRQUNOakQsUUFBUTtJQUNWO0lBQ0FvSixVQUFVO1FBQ1JDLGFBQWE7WUFDWDVNLE9BQU87UUFDVDtRQUNBa0ssT0FBTztRQUNQMkMsVUFBVTtRQUNWOUwsT0FBTztRQUNQK0wsTUFBTTtJQUNSO0FBQ0Y7QUFFQSxpRUFBZW5OLEVBQUVBLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9sb2NhbGVzL2JuLnRzP2U0NjgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3VibWl0S2V5IH0gZnJvbSBcIi4uL3N0b3JlL2NvbmZpZ1wiO1xyXG5pbXBvcnQgdHlwZSB7IFBhcnRpYWxMb2NhbGVUeXBlIH0gZnJvbSBcIi4vaW5kZXhcIjtcclxuaW1wb3J0IHsgZ2V0Q2xpZW50Q29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9jbGllbnRcIjtcclxuaW1wb3J0IHsgU0FBU19DSEFUX1VUTV9VUkwgfSBmcm9tIFwiQC9hcHAvY29uc3RhbnRcIjtcclxuY29uc3QgaXNBcHAgPSAhIWdldENsaWVudENvbmZpZygpPy5pc0FwcDtcclxuXHJcbmNvbnN0IGJuOiBQYXJ0aWFsTG9jYWxlVHlwZSA9IHtcclxuICBXSVA6IFwi4Ka24KeA4KaY4KeN4Kaw4KaHIOCmhuCmuOCmm+Cnhy4uLlwiLFxyXG4gIEVycm9yOiB7XHJcbiAgICBVbmF1dGhvcml6ZWQ6IGlzQXBwXHJcbiAgICAgID8gYPCfmIYg4KaV4Kal4KeL4Kaq4KaV4Kal4Kao4KeHIOCmleCmv+Cmm+CngSDgprjgpq7gprjgp43gpq/gpr4g4Ka54Kav4Ka84KeH4Kab4KeHLCDgpprgpr/gpqjgp43gpqTgpr7gprAg4KaV4Ka/4Kab4KeBIOCmqOCnh+CmhzpcclxuICAgIFxcXFwgMe+4j+KDoyDgpq/gpqbgpr8g4KaG4Kaq4Kao4Ka/IOCmtuCnguCmqOCnjeCmryDgppXgpqjgpqvgpr/gppfgpr7gprDgp4fgprbgpqjgp4cg4Ka24KeB4Kaw4KeBIOCmleCmsOCmpOCnhyDgpprgpr7gpqgsIOCmpOCmvuCmueCmsuCnhyBb4KaP4KaW4Ka+4Kao4KeHIOCmleCnjeCmsuCmv+CmlSDgppXgprDgp4cg4KaF4Kas4Ka/4Kay4Kau4KeN4Kas4KeHIOCmleCmpeCni+CmquCmleCmpeCmqCDgprbgp4HgprDgp4Eg4KaV4Kaw4KeB4KaoIPCfmoBdKCR7U0FBU19DSEFUX1VUTV9VUkx9KVxyXG4gICAgXFxcXCAy77iP4oOjIOCmr+CmpuCmvyDgpobgpqrgpqjgpr8g4KaG4Kaq4Kao4Ka+4KawIOCmqOCmv+CmnOCmuOCnjeCmrCBPcGVuQUkg4Ka44Kau4KeN4Kaq4KamIOCmrOCnjeCmr+CmrOCmueCmvuCmsCDgppXgprDgpqTgp4cg4Kaa4Ka+4KaoLCDgpqTgpr7gprngprLgp4cgW+Cmj+CmluCmvuCmqOCnhyDgppXgp43gprLgpr/gppUg4KaV4Kaw4KeB4KaoXSgvIy9zZXR0aW5ncykg4Ka44KeH4Kaf4Ka/4KaC4Ka4IOCmquCmsOCmv+CmrOCmsOCnjeCmpOCmqCDgppXgprDgpqTgp4cg4pqZ77iPYFxyXG4gICAgICA6IGDwn5iGIOCmleCmpeCni+CmquCmleCmpeCmqOCnhyDgppXgpr/gppvgp4Eg4Ka44Kau4Ka44KeN4Kav4Ka+IOCmueCmr+CmvOCnh+Cmm+Cnhywg4Kaa4Ka/4Kao4KeN4Kak4Ka+4KawIOCmleCmv+Cmm+CngSDgpqjgp4fgpoc6XHJcbiAgICBcXCAx77iP4oOjIOCmr+CmpuCmvyDgpobgpqrgpqjgpr8g4Ka24KeC4Kao4KeN4KavIOCmleCmqOCmq+Cmv+Cml+CmvuCmsOCnh+CmtuCmqOCnhyDgprbgp4HgprDgp4Eg4KaV4Kaw4Kak4KeHIOCmmuCmvuCmqCwg4Kak4Ka+4Ka54Kay4KeHIFvgpo/gppbgpr7gpqjgp4cg4KaV4KeN4Kay4Ka/4KaVIOCmleCmsOCnhyDgpoXgpqzgpr/gprLgpq7gp43gpqzgp4cg4KaV4Kal4KeL4Kaq4KaV4Kal4KaoIOCmtuCngeCmsOCngSDgppXgprDgp4Hgpqgg8J+agF0oJHtTQUFTX0NIQVRfVVRNX1VSTH0pXHJcbiAgICBcXCAy77iP4oOjIOCmr+CmpuCmvyDgpobgpqrgpqjgpr8g4KaP4KaV4Kaf4Ka/IOCmquCnjeCmsOCmvuCmh+CmreCnh+CmnyDgpqHgp4fgpqrgp43gprLgpq/gprzgpq7gp4fgpqjgp43gpp8g4Ka44KaC4Ka44KeN4KaV4Kaw4KajIOCmrOCnjeCmr+CmrOCmueCmvuCmsCDgppXgprDgp4fgpqgsIOCmpOCmvuCmueCmsuCnhyBb4KaP4KaW4Ka+4Kao4KeHIOCmleCnjeCmsuCmv+CmlSDgppXgprDgp4HgpqhdKC8jL2F1dGgpIOCmquCnjeCmsOCmrOCnh+CmtuCmvuCmp+Cmv+CmleCmvuCmsCDgppXgp4Dgppfgp4HgprLgpr8g4Kaq4KeN4Kaw4Kas4KeH4Ka2IOCmleCmsOCmpOCnhyDwn5SRXHJcbiAgICBcXCAz77iP4oOjIOCmr+CmpuCmvyDgpobgpqrgpqjgpr8g4KaG4Kaq4Kao4Ka+4KawIOCmqOCmv+CmnOCmuOCnjeCmrCBPcGVuQUkg4Ka44Kau4KeN4Kaq4KamIOCmrOCnjeCmr+CmrOCmueCmvuCmsCDgppXgprDgpqTgp4cg4Kaa4Ka+4KaoLCDgpqTgpr7gprngprLgp4cgW+Cmj+CmluCmvuCmqOCnhyDgppXgp43gprLgpr/gppUg4KaV4Kaw4KeB4KaoXSgvIy9zZXR0aW5ncykg4Ka44KeH4Kaf4Ka/4KaC4Ka4IOCmquCmsOCmv+CmrOCmsOCnjeCmpOCmqCDgppXgprDgpqTgp4cg4pqZ77iPXHJcbiBgLFxyXG4gIH0sXHJcbiAgQXV0aDoge1xyXG4gICAgVGl0bGU6IFwi4Kaq4Ka+4Ka44KaT4Kav4Ka84Ka+4Kaw4KeN4KahIOCmquCnjeCmsOCmr+CmvOCni+CmnOCmqFwiLFxyXG4gICAgVGlwczogXCLgpoXgp43gpq/gpr7gpqHgpq7gpr/gpqgg4Kaq4Ka+4Ka44KaT4Kav4Ka84Ka+4Kaw4KeN4KahIOCmquCnjeCmsOCmruCmvuCmo+CngOCmleCmsOCmoyDgpprgpr7gprLgp4Eg4KaV4Kaw4KeH4Kab4KeH4KaoLCDgpqjgpr/gpprgp4cg4KaF4KeN4Kav4Ka+4KaV4KeN4Ka44KeH4Ka4IOCmleCni+CmoSDgpqrgp43gprDgpqzgp4fgprYg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICBTdWJUaXBzOiBcIuCmheCmpeCmrOCmviDgpobgpqrgpqjgpr7gprAgT3BlbkFJIOCmheCmpeCmrOCmviBHb29nbGUgQVBJIOCmleCngCDgpqrgp43gprDgpqzgp4fgprYg4KaV4Kaw4Ka+4KaoXCIsXHJcbiAgICBJbnB1dDogXCLgpo/gppbgpr7gpqjgp4cg4KaF4KeN4Kav4Ka+4KaV4KeN4Ka44KeH4Ka4IOCmleCni+CmoSDgprLgpr/gppbgp4HgpqhcIixcclxuICAgIENvbmZpcm06IFwi4Kao4Ka/4Ka24KeN4Kaa4Ka/4KakIOCmleCmsOCngeCmqFwiLFxyXG4gICAgTGF0ZXI6IFwi4Kaq4Kaw4KeHIOCmrOCmsuCngeCmqFwiLFxyXG4gICAgUmV0dXJuOiBcIuCmq+Cmv+CmsOCnhyDgpobgprjgpr5cIixcclxuICAgIFNhYXNUaXBzOiBcIuCmleCmqOCmq+Cmv+Cml+CmvuCmsOCnh+CmtuCmqCDgppbgp4Hgpqwg4KaV4Kag4Ka/4KaoLCDgpobgpq7gpr8g4KaF4Kas4Ka/4Kay4Kau4KeN4Kas4KeHIOCmrOCnjeCmr+CmrOCmueCmvuCmsCDgppXgprDgpqTgp4cg4Kaa4Ka+4KaHXCIsXHJcbiAgICBUb3BUaXBzOlxyXG4gICAgICBcIvCfpbMgTmV4dENoYXQgQUkg4Kaq4KeN4Kaw4Kal4KauIOCmquCnjeCmsOCmleCmvuCmtuCnh+CmsCDgpoXgpqvgpr7gprAsIOCmj+CmluCmqOCmhyBPcGVuQUkgbzEsIEdQVC00bywgQ2xhdWRlLTMuNSDgpo/gpqzgpoIg4Ka44Kaw4KeN4Kas4Ka24KeH4Ka3IOCmrOCmoeCmvCDgpq7gpqHgp4fgprLgppfgp4HgprLgpr8g4KaG4Kao4Kay4KaVIOCmleCmsOCngeCmqFwiLFxyXG4gIH0sXHJcbiAgQ2hhdEl0ZW06IHtcclxuICAgIENoYXRJdGVtQ291bnQ6IChjb3VudDogbnVtYmVyKSA9PiBgJHtjb3VudH0g4Kaf4Ka/IOCmmuCnjeCmr+CmvuCmn2AsXHJcbiAgfSxcclxuICBDaGF0OiB7XHJcbiAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGDgpq7gp4vgpp8gJHtjb3VudH0g4Kaf4Ka/IOCmmuCnjeCmr+CmvuCmn2AsXHJcbiAgICBFZGl0TWVzc2FnZToge1xyXG4gICAgICBUaXRsZTogXCLgpqzgpr7gprDgp43gpqTgpr7gppfgp4HgprLgpr8g4Ka44Kau4KeN4Kaq4Ka+4Kam4Kao4Ka+IOCmleCmsOCngeCmqFwiLFxyXG4gICAgICBUb3BpYzoge1xyXG4gICAgICAgIFRpdGxlOiBcIuCmmuCnjeCmr+CmvuCmn+Cnh+CmsCDgpqzgpr/gprfgpq/gprxcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLgpqzgprDgp43gpqTgpq7gpr7gpqgg4Kaa4KeN4Kav4Ka+4Kaf4KeH4KawIOCmrOCmv+Cmt+Cmr+CmvCDgpqrgprDgpr/gpqzgprDgp43gpqTgpqgg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgQWN0aW9uczoge1xyXG4gICAgICBDaGF0TGlzdDogXCLgpqzgpr7gprDgp43gpqTgpr4g4Kak4Ka+4Kay4Ka/4KaV4Ka+IOCmpuCnh+CmluCngeCmqFwiLFxyXG4gICAgICBDb21wcmVzc2VkSGlzdG9yeTogXCLgprjgpoLgppXgp4Hgpprgpr/gpqQg4KaH4Kak4Ka/4Ka54Ka+4Ka4IOCmpuCnh+CmluCngeCmqFwiLFxyXG4gICAgICBFeHBvcnQ6IFwi4Kaa4KeN4Kav4Ka+4KafIOCmh+CmpOCmv+CmueCmvuCmuCDgprDgpqrgp43gpqTgpr7gpqjgp4Ag4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgIENvcHk6IFwi4KaF4Kao4KeB4Kay4Ka/4Kaq4Ka/IOCmleCmsOCngeCmqFwiLFxyXG4gICAgICBTdG9wOiBcIuCmpeCmvuCmruCmvuCmqFwiLFxyXG4gICAgICBSZXRyeTogXCLgpqrgp4HgpqjgprDgpr7gpq/gprwg4Kaa4KeH4Ka34KeN4Kaf4Ka+IOCmleCmsOCngeCmqFwiLFxyXG4gICAgICBQaW46IFwi4Kaq4Ka/4KaoIOCmleCmsOCngeCmqFwiLFxyXG4gICAgICBQaW5Ub2FzdENvbnRlbnQ6IFwiMSDgpp/gpr8g4Kaa4KeN4Kav4Ka+4KafIOCmquCnguCmsOCnjeCmrOCmqOCmv+CmsOCnjeCmp+CmvuCmsOCmv+CmpCDgpqrgp43gprDgpq7gp43gpqrgpp/gp4cg4Kaq4Ka/4KaoIOCmleCmsOCmviDgprngpq/gprzgp4fgppvgp4dcIixcclxuICAgICAgUGluVG9hc3RBY3Rpb246IFwi4Kam4KeH4KaW4KeB4KaoXCIsXHJcbiAgICAgIERlbGV0ZTogXCLgpq7gp4Hgppvgp4cg4Kar4KeH4Kay4KeB4KaoXCIsXHJcbiAgICAgIEVkaXQ6IFwi4Ka44Kau4KeN4Kaq4Ka+4Kam4Kao4Ka+IOCmleCmsOCngeCmqFwiLFxyXG4gICAgICBSZWZyZXNoVGl0bGU6IFwi4Ka24Ka/4Kaw4KeL4Kao4Ka+4KauIOCmsOCmv+Cmq+CnjeCmsOCnh+CmtiDgppXgprDgp4HgpqhcIixcclxuICAgICAgUmVmcmVzaFRvYXN0OiBcIuCmtuCmv+CmsOCni+CmqOCmvuCmriDgprDgpr/gpqvgp43gprDgp4fgprYg4KaF4Kao4KeB4Kaw4KeL4KanIOCmquCmvuCmoOCmvuCmqOCniyDgprngpq/gprzgp4fgppvgp4dcIixcclxuICAgIH0sXHJcbiAgICBDb21tYW5kczoge1xyXG4gICAgICBuZXc6IFwi4Kao4Kak4KeB4KaoIOCmmuCnjeCmr+CmvuCmn1wiLFxyXG4gICAgICBuZXdtOiBcIuCmruCmvuCmuOCnjeCmlSDgpqXgp4fgppXgp4cg4Kao4Kak4KeB4KaoIOCmmuCnjeCmr+CmvuCmn1wiLFxyXG4gICAgICBuZXh0OiBcIuCmquCmsOCmrOCmsOCnjeCmpOCngCDgpprgp43gpq/gpr7gpp9cIixcclxuICAgICAgcHJldjogXCLgpqrgp4LgprDgp43gpqzgpqzgprDgp43gpqTgp4Ag4Kaa4KeN4Kav4Ka+4KafXCIsXHJcbiAgICAgIGNsZWFyOiBcIuCmquCnjeCmsOCmuOCmmeCnjeCmlyDgpqrgprDgpr/gprfgp43gppXgpr7gprAg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgIGRlbDogXCLgpprgp43gpq/gpr7gpp8g4Kau4KeB4Kab4KeHIOCmq+Cnh+CmsuCngeCmqFwiLFxyXG4gICAgfSxcclxuICAgIElucHV0QWN0aW9uczoge1xyXG4gICAgICBTdG9wOiBcIuCmquCnjeCmsOCmpOCmv+CmleCnjeCmsOCmv+Cmr+CmvOCmviDgpqXgpr7gpq7gpr7gpqhcIixcclxuICAgICAgVG9Cb3R0b206IFwi4Ka44Kaw4KeN4Kas4Ka24KeH4Ka34KeHIOCmuOCnjeCmleCnjeCmsOCni+CmsiDgppXgprDgp4HgpqhcIixcclxuICAgICAgVGhlbWU6IHtcclxuICAgICAgICBhdXRvOiBcIuCmuOCnjeCmrOCmr+CmvOCmguCmleCnjeCmsOCmv+Cmr+CmvCDgpqXgpr/gpq5cIixcclxuICAgICAgICBsaWdodDogXCLgpobgprLgp4vgprAg4Kau4KeL4KahXCIsXHJcbiAgICAgICAgZGFyazogXCLgpoXgpqjgp43gpqfgppXgpr7gprAg4Kau4KeL4KahXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFByb21wdDogXCLgprjgpoLgppXgp43gprfgpr/gpqrgp43gpqQg4Kao4Ka/4Kaw4KeN4Kam4KeH4Ka24Kao4Ka+XCIsXHJcbiAgICAgIE1hc2tzOiBcIuCmuOCmruCmuOCnjeCmpCDgpq7gpr7gprjgp43gppVcIixcclxuICAgICAgQ2xlYXI6IFwi4Kaa4KeN4Kav4Ka+4KafIOCmquCmsOCmv+Cmt+CnjeCmleCmvuCmsCDgppXgprDgp4HgpqhcIixcclxuICAgICAgU2V0dGluZ3M6IFwi4Kaa4KeN4Kav4Ka+4KafIOCmuOCnh+Cmn+Cmv+CmguCmuFwiLFxyXG4gICAgICBVcGxvYWRJbWFnZTogXCLgpprgpr/gpqTgp43gprAg4KaG4Kaq4Kay4KeL4KahIOCmleCmsOCngeCmqFwiLFxyXG4gICAgfSxcclxuICAgIFJlbmFtZTogXCLgpprgp43gpq/gpr7gpp8g4Kao4Ka+4KauIOCmquCmsOCmv+CmrOCmsOCnjeCmpOCmqCDgppXgprDgp4HgpqhcIixcclxuICAgIFR5cGluZzogXCLgprLgpr/gppbgppvgp4figKZcIixcclxuICAgIElucHV0OiAoc3VibWl0S2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgdmFyIGlucHV0SGludHMgPSBgJHtzdWJtaXRLZXl9IOCmquCmvuCmoOCmvuCmqGA7XHJcbiAgICAgIGlmIChzdWJtaXRLZXkgPT09IFN0cmluZyhTdWJtaXRLZXkuRW50ZXIpKSB7XHJcbiAgICAgICAgaW5wdXRIaW50cyArPSBcIu+8jFNoaWZ0ICsgRW50ZXIg4Kao4Kak4KeB4KaoIOCmsuCmvuCmh+CmqFwiO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBpbnB1dEhpbnRzICsgXCLvvIwvIOCmquCnguCmsOCnjeCmo+CmpOCmviDgprjgppXgp43gprDgpr/gpq/gprwg4KaV4Kaw4KeB4Kao77yMOiDgppXgpq7gpr7gpqjgp43gpqEg4Ka44KaV4KeN4Kaw4Ka/4Kav4Ka8IOCmleCmsOCngeCmqFwiO1xyXG4gICAgfSxcclxuICAgIFNlbmQ6IFwi4Kaq4Ka+4Kag4Ka+4KaoXCIsXHJcbiAgICBDb25maWc6IHtcclxuICAgICAgUmVzZXQ6IFwi4Kau4KeH4Kau4Kaw4Ka/IOCmruCngeCmm+CnhyDgpqvgp4fgprLgp4HgpqhcIixcclxuICAgICAgU2F2ZUFzOiBcIuCmruCmvuCmuOCnjeCmlSDgprngpr/gprjgpr7gpqzgp4cg4Ka44KaC4Kaw4KaV4KeN4Ka34KajIOCmleCmsOCngeCmqFwiLFxyXG4gICAgfSxcclxuICAgIElzQ29udGV4dDogXCLgpqrgp4LgprDgp43gpqzgpqjgpr/gprDgp43gpqfgpr7gprDgpr/gpqQg4Kaq4KeN4Kaw4Kau4KeN4Kaq4KafXCIsXHJcbiAgfSxcclxuICBFeHBvcnQ6IHtcclxuICAgIFRpdGxlOiBcIuCmmuCnjeCmr+CmvuCmnyDgpofgpqTgpr/gprngpr7gprgg4Ka24KeH4Kav4Ka84Ka+4KawIOCmleCmsOCngeCmqFwiLFxyXG4gICAgQ29weTogXCLgprjgpqzgppXgpr/gppvgp4Eg4KaV4Kaq4Ka/IOCmleCmsOCngeCmqFwiLFxyXG4gICAgRG93bmxvYWQ6IFwi4Kar4Ka+4KaH4KayIOCmoeCmvuCmieCmqOCmsuCni+CmoSDgppXgprDgp4HgpqhcIixcclxuICAgIFNoYXJlOiBcIlNoYXJlR1BUIOCmpOCnhyDgprbgp4fgpq/gprzgpr7gprAg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICBNZXNzYWdlRnJvbVlvdTogXCLgpqzgp43gpq/gpqzgprngpr7gprDgppXgpr7gprDgp4BcIixcclxuICAgIE1lc3NhZ2VGcm9tQ2hhdEdQVDogXCJDaGF0R1BUXCIsXHJcbiAgICBGb3JtYXQ6IHtcclxuICAgICAgVGl0bGU6IFwi4Kaw4Kaq4KeN4Kak4Ka+4Kao4Ka/4KawIOCmq+CmsOCnjeCmruCnjeCmr+CmvuCmn1wiLFxyXG4gICAgICBTdWJUaXRsZTogXCJNYXJrZG93biDgpp/gp4fgppXgp43gprjgpp8g4Kas4Ka+IFBORyDgpprgpr/gpqTgp43gprAg4Kaw4Kaq4KeN4Kak4Ka+4Kao4Ka/IOCmleCmsOCmviDgpq/gpr7gpqzgp4dcIixcclxuICAgIH0sXHJcbiAgICBJbmNsdWRlQ29udGV4dDoge1xyXG4gICAgICBUaXRsZTogXCLgpq7gpr7gprjgp43gppUg4Kaq4KeN4Kaw4Ka44KaZ4KeN4KaXIOCmheCmqOCnjeCmpOCmsOCnjeCmreCngeCmleCnjeCmpCDgppXgprDgp4HgpqhcIixcclxuICAgICAgU3ViVGl0bGU6IFwi4Kas4Ka+4Kaw4KeN4Kak4Ka+4Kav4Ka8IOCmruCmvuCmuOCnjeCmlSDgpqrgp43gprDgprjgppngp43gppcg4Kaq4KeN4Kaw4Kam4Kaw4KeN4Ka24KaoIOCmleCmsOCmviDgprngpqzgp4cg4KaV4Ka/IOCmqOCmvlwiLFxyXG4gICAgfSxcclxuICAgIFN0ZXBzOiB7XHJcbiAgICAgIFNlbGVjdDogXCLgpqjgpr/gprDgp43gpqzgpr7gpprgpqgg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgIFByZXZpZXc6IFwi4Kaq4KeC4Kaw4KeN4Kas4Kaw4KeC4KaqIOCmpuCnh+CmluCngeCmqFwiLFxyXG4gICAgfSxcclxuICAgIEltYWdlOiB7XHJcbiAgICAgIFRvYXN0OiBcIuCmuOCnjeCmleCnjeCmsOCngOCmqOCmtuCmnyDgpqTgp4jgprDgpr8g4KaV4Kaw4Ka+IOCmueCmmuCnjeCmm+Cnh1wiLFxyXG4gICAgICBNb2RhbDogXCLgppvgpqzgpr8g4Ka44KaC4Kaw4KaV4KeN4Ka34KajIOCmleCmsOCmpOCnhyDgpqbgp4DgprDgp43gppgg4Kaq4KeN4Kaw4KeH4Ka4IOCmleCmsOCngeCmqCDgpoXgpqXgpqzgpr4g4Kaw4Ka+4KaH4KafIOCmleCnjeCmsuCmv+CmlSDgppXgprDgp4HgpqhcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBTZWxlY3Q6IHtcclxuICAgIFNlYXJjaDogXCLgpqzgpr7gprDgp43gpqTgpr4g4KaF4Kao4KeB4Ka44Kao4KeN4Kan4Ka+4KaoIOCmleCmsOCngeCmqFwiLFxyXG4gICAgQWxsOiBcIuCmuOCmrOCmleCmv+Cmm+CngSDgpqjgpr/gprDgp43gpqzgpr7gpprgpqgg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICBMYXRlc3Q6IFwi4Ka44Kaw4KeN4Kas4Ka24KeH4Ka3IOCmleCmv+Cmm+CngVwiLFxyXG4gICAgQ2xlYXI6IFwi4Kao4Ka/4Kaw4KeN4Kas4Ka+4Kaa4KaoIOCmquCmsOCmv+Cmt+CnjeCmleCmvuCmsCDgppXgprDgp4HgpqhcIixcclxuICB9LFxyXG4gIE1lbW9yeToge1xyXG4gICAgVGl0bGU6IFwi4KaH4Kak4Ka/4Ka54Ka+4Ka4IOCmuOCmvuCmsOCmvuCmguCmtlwiLFxyXG4gICAgRW1wdHlDb250ZW50OiBcIuCmmuCnjeCmr+CmvuCmn+Cnh+CmsCDgpqzgpr/gprfgpq/gprzgpqzgprjgp43gpqTgp4Eg4KaW4KeB4KasIOCmuOCmguCmleCnjeCmt+Cmv+CmquCnjeCmpCwg4Ka44Ka+4Kaw4Ka+4KaC4Ka2IOCmquCnjeCmsOCmr+CmvOCni+CmnOCmqCDgpqjgp4fgpodcIixcclxuICAgIFNlbmQ6IFwi4KaF4Kaf4KeL4Kau4KeH4Kaf4Ka/4KaVIOCmmuCnjeCmr+CmvuCmnyDgpofgpqTgpr/gprngpr7gprgg4Ka44KaC4KaV4KeB4Kaa4Ka/4KakIOCmleCmsOCngeCmqCDgpo/gpqzgpoIg4Kaq4KeN4Kaw4Ka44KaZ4KeN4KaXIOCmueCmv+CmuOCnh+CmrOCnhyDgpqrgpr7gpqDgpr7gpqhcIixcclxuICAgIENvcHk6IFwi4Ka44Ka+4Kaw4Ka+4KaC4Ka2IOCmleCmquCmvyDgppXgprDgp4HgpqhcIixcclxuICAgIFJlc2V0OiBcIlt1bnVzZWRdXCIsXHJcbiAgICBSZXNldENvbmZpcm06IFwi4KaH4Kak4Ka/4Ka54Ka+4Ka4IOCmuOCmvuCmsOCmvuCmguCmtiDgpq7gp4Hgppvgp4cg4Kar4KeH4Kay4Ka+4KawIOCmqOCmv+CmtuCnjeCmmuCmv+CmpCDgppXgprDgp4Hgpqg/XCIsXHJcbiAgfSxcclxuICBIb21lOiB7XHJcbiAgICBOZXdDaGF0OiBcIuCmqOCmpOCngeCmqCDgpprgp43gpq/gpr7gpp9cIixcclxuICAgIERlbGV0ZUNoYXQ6IFwi4Kao4Ka/4Kaw4KeN4Kas4Ka+4Kaa4Ka/4KakIOCmmuCnjeCmr+CmvuCmnyDgpq7gp4Hgppvgp4cg4Kar4KeH4Kay4Ka+4KawIOCmqOCmv+CmtuCnjeCmmuCmv+CmpCDgppXgprDgp4Hgpqg/XCIsXHJcbiAgICBEZWxldGVUb2FzdDogXCLgpprgp43gpq/gpr7gpp8g4Kau4KeB4Kab4KeHIOCmq+Cnh+CmsuCmviDgprngpq/gprzgp4fgppvgp4dcIixcclxuICAgIFJldmVydDogXCLgpqrgp4LgprDgp43gpqzgpr7gpqzgprjgp43gpqXgpr7gpq/gprwg4Kar4KeH4Kaw4Ka+4KaoXCIsXHJcbiAgfSxcclxuICBTZXR0aW5nczoge1xyXG4gICAgVGl0bGU6IFwi4Ka44KeH4Kaf4Ka/4KaC4Ka4XCIsXHJcbiAgICBTdWJUaXRsZTogXCLgprjgpq7gprjgp43gpqQg4Ka44KeH4Kaf4Ka/4KaC4Ka4IOCmheCmquCmtuCmqFwiLFxyXG5cclxuICAgIERhbmdlcjoge1xyXG4gICAgICBSZXNldDoge1xyXG4gICAgICAgIFRpdGxlOiBcIuCmuOCmruCmuOCnjeCmpCDgprjgp4fgpp/gpr/gpoLgprgg4Kaq4KeB4Kao4Kaw4Ka+4Kav4Ka8IOCmuOCnh+CmnyDgppXgprDgp4HgpqhcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLgprjgpq7gprjgp43gpqQg4Ka44KeH4Kaf4Ka/4KaC4Ka4IOCmrOCmv+CmleCmsuCnjeCmquCml+CngeCmsuCmv+CmleCnhyDgpqHgpr/gpqvgprLgp43gpp8g4Kau4Ka+4Kao4KeHIOCmquCngeCmqOCmsOCmvuCmr+CmvCDgprjgp4fgpp8g4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgICAgQWN0aW9uOiBcIuCmj+CmluCmqOCmhyDgpqrgp4HgpqjgprDgpr7gpq/gprwg4Ka44KeH4KafIOCmleCmsOCngeCmqFwiLFxyXG4gICAgICAgIENvbmZpcm06IFwi4Ka44Kau4Ka44KeN4KakIOCmuOCnh+Cmn+Cmv+CmguCmuCDgpqrgp4HgpqjgprDgpr7gpq/gprwg4Ka44KeH4KafIOCmleCmsOCmvuCmsCDgpqjgpr/gprbgp43gpprgpr/gpqQg4KaV4Kaw4KeB4KaoP1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBDbGVhcjoge1xyXG4gICAgICAgIFRpdGxlOiBcIuCmuOCmruCmuOCnjeCmpCDgpqTgpqXgp43gpq8g4Kau4KeB4Kab4KeHIOCmq+Cnh+CmsuCngeCmqFwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIuCmuOCmruCmuOCnjeCmpCDgpprgp43gpq/gpr7gpp8g4KaP4Kas4KaCIOCmuOCnh+Cmn+Cmv+CmguCmuCDgpqHgp4fgpp/gpr4g4Kau4KeB4Kab4KeHIOCmq+Cnh+CmsuCngeCmqFwiLFxyXG4gICAgICAgIEFjdGlvbjogXCLgpo/gppbgpqjgpocg4Kau4KeB4Kab4KeHIOCmq+Cnh+CmsuCngeCmqFwiLFxyXG4gICAgICAgIENvbmZpcm06IFwi4Ka44Kau4Ka44KeN4KakIOCmmuCnjeCmr+CmvuCmnyDgpo/gpqzgpoIg4Ka44KeH4Kaf4Ka/4KaC4Ka4IOCmoeCnh+Cmn+CmviDgpq7gp4Hgppvgp4cg4Kar4KeH4Kay4Ka+4Kao4KeL4KawIOCmqOCmv+CmtuCnjeCmmuCmv+CmpCDgppXgprDgp4Hgpqg/XCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgTGFuZzoge1xyXG4gICAgICBOYW1lOiBcIkxhbmd1YWdlXCIsIC8vIEFUVEVOVElPTjogaWYgeW91IHdhbm5hIGFkZCBhIG5ldyB0cmFuc2xhdGlvbiwgcGxlYXNlIGRvIG5vdCB0cmFuc2xhdGUgdGhpcyB2YWx1ZSwgbGVhdmUgaXQgYXMgYExhbmd1YWdlYFxyXG4gICAgICBBbGw6IFwi4Ka44Kau4Ka44KeN4KakIOCmreCmvuCmt+CmvlwiLFxyXG4gICAgfSxcclxuICAgIEF2YXRhcjogXCLgpoXgpq3gpr/gpqjgp4fgpqTgpr5cIixcclxuICAgIEZvbnRTaXplOiB7XHJcbiAgICAgIFRpdGxlOiBcIuCmq+CmqOCnjeCmnyDgprjgpr7gpofgppxcIixcclxuICAgICAgU3ViVGl0bGU6IFwi4Kaa4KeN4Kav4Ka+4KafIOCmleCmqOCmn+Cnh+CmqOCnjeCmn+Cnh+CmsCDgpqvgpqjgp43gpp8g4Ka44Ka+4KaH4KacXCIsXHJcbiAgICB9LFxyXG4gICAgRm9udEZhbWlseToge1xyXG4gICAgICBUaXRsZTogXCLgpprgp43gpq/gpr7gpp8g4Kar4Kao4KeN4KafXCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwi4Kaa4KeN4Kav4Ka+4KafIOCmuOCmvuCmruCml+CnjeCmsOCngOCmsCDgpqvgpqjgp43gpp8sIOCmrOCmv+CmtuCnjeCmrOCmrOCnjeCmr+CmvuCmquCngCDgpqHgpr/gpqvgprLgp43gpp8g4Kar4Kao4KeN4KafIOCmquCnjeCmsOCmr+CmvOCni+CmlyDgppXgprDgpqTgp4cg4KaW4Ka+4Kay4Ka/IOCmsOCmvuCmluCngeCmqFwiLFxyXG4gICAgICBQbGFjZWhvbGRlcjogXCLgpqvgpqjgp43gpp/gp4fgprAg4Kao4Ka+4KauXCIsXHJcbiAgICB9LFxyXG4gICAgSW5qZWN0U3lzdGVtUHJvbXB0czoge1xyXG4gICAgICBUaXRsZTogXCLgprjgpr/gprjgp43gpp/gp4fgpq4t4Kay4KeH4Kat4KeH4KayIOCmquCnjeCmsOCmruCnjeCmquCmnyDgpq/gp4vgppcg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwi4Kaq4KeN4Kaw4Kak4KeN4Kav4KeH4KaVIOCmrOCmvuCmsOCnjeCmpOCmvuCmr+CmvCDgpo/gppXgpp/gpr8g4Ka44Ka/4Ka44KeN4Kaf4KeH4KauIOCmquCnjeCmsOCmruCnjeCmquCmnyDgpq/gp4vgppcg4KaV4Kaw4KeB4KaoIOCmr+CmviBDaGF0R1BUIOCmj+CmsCDgpoXgpqjgp4HgppXgprDgpqMg4KaV4Kaw4Kas4KeHXCIsXHJcbiAgICB9LFxyXG4gICAgSW5wdXRUZW1wbGF0ZToge1xyXG4gICAgICBUaXRsZTogXCLgpqzgp43gpq/gpqzgprngpr7gprDgppXgpr7gprDgp4DgprAg4KaH4Kao4Kaq4KeB4KafIOCmquCnjeCmsOCmv+CmquCnjeCmsOCmuOCnh+CmuOCmv+CmglwiLFxyXG4gICAgICBTdWJUaXRsZTogXCLgpqzgp43gpq/gpqzgprngpr7gprDgppXgpr7gprDgp4DgprAg4Ka44Kaw4KeN4Kas4Ka24KeH4Ka3IOCmrOCmvuCmsOCnjeCmpOCmviDgpo/gpocg4Kaf4KeH4Kau4Kaq4KeN4Kay4KeH4Kaf4KeHIOCmquCnguCmsOCmoyDgppXgprDgpr4g4Ka54Kas4KeHXCIsXHJcbiAgICB9LFxyXG5cclxuICAgIFVwZGF0ZToge1xyXG4gICAgICBWZXJzaW9uOiAoeDogc3RyaW5nKSA9PiBg4Kas4Kaw4KeN4Kak4Kau4Ka+4KaoIOCmuOCmguCmuOCnjeCmleCmsOCmozogJHt4fWAsXHJcbiAgICAgIElzTGF0ZXN0OiBcIuCmj+Cmn+CmvyDgprjgprDgp43gpqzgprbgp4fgprcg4Ka44KaC4Ka44KeN4KaV4Kaw4KajXCIsXHJcbiAgICAgIENoZWNrVXBkYXRlOiBcIuCmhuCmquCmoeCnh+CmnyDgpqrgprDgp4DgppXgp43gprfgpr4g4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgIElzQ2hlY2tpbmc6IFwi4KaG4Kaq4Kah4KeH4KafIOCmquCmsOCngOCmleCnjeCmt+CmviDgppXgprDgpr4g4Ka54Kaa4KeN4Kab4KeHLi4uXCIsXHJcbiAgICAgIEZvdW5kVXBkYXRlOiAoeDogc3RyaW5nKSA9PiBg4Kao4Kak4KeB4KaoIOCmuOCmguCmuOCnjeCmleCmsOCmoyDgpqrgpr7gppPgpq/gprzgpr4g4KaX4Ka/4Kav4Ka84KeH4Kab4KeHOiAke3h9YCxcclxuICAgICAgR29Ub1VwZGF0ZTogXCLgpobgpqrgpqHgp4fgpp8g4KaV4Kaw4Kak4KeHIOCmr+CmvuCmqFwiLFxyXG4gICAgfSxcclxuICAgIFNlbmRLZXk6IFwi4Kaq4Ka+4Kag4Ka+4Kao4KeL4KawIOCmleCngFwiLFxyXG4gICAgVGhlbWU6IFwi4Kal4Ka/4KauXCIsXHJcbiAgICBUaWdodEJvcmRlcjogXCLgpqzgprDgp43gpqHgpr7gprAt4Kas4Ka/4Ka54KeA4KaoIOCmruCni+CmoVwiLFxyXG4gICAgU2VuZFByZXZpZXdCdWJibGU6IHtcclxuICAgICAgVGl0bGU6IFwi4Kaq4KeN4Kaw4Ka/4Kat4Ka/4KaJIOCmrOCngeCmpuCmrOCngeCmplwiLFxyXG4gICAgICBTdWJUaXRsZTogXCLgpqrgp43gprDgpr/gpq3gpr/gpokg4Kas4KeB4Kam4Kas4KeB4Kam4KeHIE1hcmtkb3duIOCmleCmqOCmn+Cnh+CmqOCnjeCmnyDgpqrgp43gprDgpr/gpq3gpr/gpokg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICB9LFxyXG4gICAgQXV0b0dlbmVyYXRlVGl0bGU6IHtcclxuICAgICAgVGl0bGU6IFwi4Ka44KeN4Kas4Kav4Ka84KaC4KaV4KeN4Kaw4Ka/4Kav4Ka8IOCmtuCmv+CmsOCni+CmqOCmvuCmriDgppzgp4fgpqjgpr7gprDgp4fgprbgpqhcIixcclxuICAgICAgU3ViVGl0bGU6IFwi4Kaa4KeN4Kav4Ka+4KafIOCmleCmqOCmn+Cnh+CmqOCnjeCmn+Cnh+CmsCDgpq3gpr/gpqTgp43gpqTgpr/gpqTgp4cg4KaJ4Kaq4Kav4KeB4KaV4KeN4KakIOCmtuCmv+CmsOCni+CmqOCmvuCmriDgpqTgp4jgprDgpr8g4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICB9LFxyXG4gICAgU3luYzoge1xyXG4gICAgICBDbG91ZFN0YXRlOiBcIuCmleCnjeCmsuCmvuCmieCmoSDgpqHgp4fgpp/gpr5cIixcclxuICAgICAgTm90U3luY1lldDogXCLgpo/gppbgpqjgp4sg4Ka44Ka/4KaZ4KeN4KaVIOCmleCmsOCmviDgprngpq/gprzgpqjgpr9cIixcclxuICAgICAgU3VjY2VzczogXCLgprjgpr/gppngp43gppUg4Ka44Kar4KayXCIsXHJcbiAgICAgIEZhaWw6IFwi4Ka44Ka/4KaZ4KeN4KaVIOCmrOCnjeCmr+CmsOCnjeCmpVwiLFxyXG5cclxuICAgICAgQ29uZmlnOiB7XHJcbiAgICAgICAgTW9kYWw6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuCmleCnjeCmsuCmvuCmieCmoSDgprjgpr/gppngp43gppUg4KaV4Kao4Kar4Ka/4KaX4Ka+4KawIOCmleCmsOCngeCmqFwiLFxyXG4gICAgICAgICAgQ2hlY2s6IFwi4Kaq4Kaw4KeA4KaV4KeN4Ka34Ka+IOCmleCmsOCngeCmqFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgU3luY1R5cGU6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuCmuOCmv+CmmeCnjeCmlSDgpp/gpr7gpofgpqpcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuCmquCmm+CmqOCnjeCmpuCmuOCmhyDgprjgpr/gppngp43gppUg4Ka44Ka+4Kaw4KeN4Kat4Ka+4KawIOCmqOCmv+CmsOCnjeCmrOCmvuCmmuCmqCDgppXgprDgp4HgpqhcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFByb3h5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLgpqrgp43gprDgppXgp43gprjgpr8g4Ka44KaV4KeN4Kaw4Ka/4Kav4Ka8IOCmleCmsOCngeCmqFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwi4Kas4KeN4Kaw4Ka+4KaJ4Kac4Ka+4Kaw4KeHIOCmuOCmv+CmmeCnjeCmlSDgppXgprDgpr7gprAg4Ka44Kau4Kav4Ka8LCDgppXgp43gprDgprgt4KaF4Kaw4Ka/4Kac4Ka/4KaoIOCmuOCngOCmruCmvuCmrOCmpuCnjeCmp+CmpOCmviDgpo/gpqHgprzgpr7gpqTgp4cg4Kaq4KeN4Kaw4KaV4KeN4Ka44Ka/IOCmuOCmleCnjeCmsOCmv+Cmr+CmvCDgppXgprDgpqTgp4cg4Ka54Kas4KeHXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQcm94eVVybDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi4Kaq4KeN4Kaw4KaV4KeN4Ka44Ka/IOCmoOCmv+CmleCmvuCmqOCmvlwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwi4KaP4Kaf4Ka/IOCmtuCngeCmp+CngeCmruCmvuCmpOCnjeCmsCDgpqrgp43gprDgppXgprLgp43gpqrgp4fgprAg4Ka44Ka+4Kal4KeHIOCmuOCmsOCmrOCmsOCmvuCmueCmv+CmpCDgppXgp43gprDgprgt4KaF4Kaw4Ka/4Kac4Ka/4KaoIOCmquCnjeCmsOCmleCnjeCmuOCmv+CmsCDgppzgpqjgp43gpq8g4Kaq4KeN4Kaw4Kav4KeL4Kac4KeN4KavXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgV2ViRGF2OiB7XHJcbiAgICAgICAgICBFbmRwb2ludDogXCJXZWJEQVYg4Kag4Ka/4KaV4Ka+4Kao4Ka+XCIsXHJcbiAgICAgICAgICBVc2VyTmFtZTogXCLgpqzgp43gpq/gpqzgprngpr7gprDgppXgpr7gprDgp4DgprAg4Kao4Ka+4KauXCIsXHJcbiAgICAgICAgICBQYXNzd29yZDogXCLgpqrgpr7gprjgppPgpq/gprzgpr7gprDgp43gpqFcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBVcFN0YXNoOiB7XHJcbiAgICAgICAgICBFbmRwb2ludDogXCJVcFN0YXNoIFJlZGlzIFJFU1QgVVJMXCIsXHJcbiAgICAgICAgICBVc2VyTmFtZTogXCLgpqzgp43gpq/gpr7gppXgpobgpqog4Kao4Ka+4KauXCIsXHJcbiAgICAgICAgICBQYXNzd29yZDogXCJVcFN0YXNoIFJlZGlzIFJFU1Qg4Kaf4KeL4KaV4KeH4KaoXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuXHJcbiAgICAgIExvY2FsU3RhdGU6IFwi4Ka44KeN4Kal4Ka+4Kao4KeA4Kav4Ka8IOCmoeCnh+Cmn+CmvlwiLFxyXG4gICAgICBPdmVydmlldzogKG92ZXJ2aWV3OiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gYCR7b3ZlcnZpZXcuY2hhdH0g4Kas4Ka+4KawIOCmmuCnjeCmr+CmvuCmnywgJHtvdmVydmlldy5tZXNzYWdlfSDgpqzgpr7gprDgp43gpqTgpr4sICR7b3ZlcnZpZXcucHJvbXB0fSDgpqrgp43gprDgpq7gp43gpqrgpp8sICR7b3ZlcnZpZXcubWFza30g4Kau4Ka+4Ka44KeN4KaVYDtcclxuICAgICAgfSxcclxuICAgICAgSW1wb3J0RmFpbGVkOiBcIuCmhuCmruCmpuCmvuCmqOCmvyDgpqzgp43gpq/gprDgp43gpqVcIixcclxuICAgIH0sXHJcbiAgICBNYXNrOiB7XHJcbiAgICAgIFNwbGFzaDoge1xyXG4gICAgICAgIFRpdGxlOiBcIuCmruCmvuCmuOCnjeCmlSDgprLgpp7gp43gppog4Kaq4KeH4KacXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi4Kao4Kak4KeB4KaoIOCmmuCnjeCmr+CmvuCmnyDgprbgp4HgprDgp4Eg4KaV4Kaw4Ka+4KawIOCmuOCmruCmr+CmvCDgpq7gpr7gprjgp43gppUg4Kay4Kae4KeN4KaaIOCmquCnh+CmnCDgpqrgp43gprDgpqbgprDgp43gprbgpqgg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEJ1aWx0aW46IHtcclxuICAgICAgICBUaXRsZTogXCLgpofgpqjgpqzgpr/gprLgp43gpp8g4Kau4Ka+4Ka44KeN4KaVIOCmsuCngeCmleCmvuCmqFwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIuCmuOCmruCmuOCnjeCmpCDgpq7gpr7gprjgp43gppUg4Kak4Ka+4Kay4Ka/4KaV4Ka+4Kav4Ka8IOCmh+CmqOCmrOCmv+CmsuCnjeCmnyDgpq7gpr7gprjgp43gppUg4Kay4KeB4KaV4Ka+4KaoXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgUHJvbXB0OiB7XHJcbiAgICAgIERpc2FibGU6IHtcclxuICAgICAgICBUaXRsZTogXCLgpqrgp43gprDgpq7gp43gpqrgpp8g4KaF4Kaf4KeLLeCmleCmruCmquCnjeCmsuCmv+CmtuCmqCDgpqjgpr/gprfgp43gppXgp43gprDgpr/gpq/gprwg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi4KaH4Kao4Kaq4KeB4KafIOCmrOCmleCnjeCmuOCnh+CmsCDgprbgp4HgprDgp4HgpqTgp4cgLyDgpp/gpr7gpofgpqog4KaV4Kaw4Kay4KeHIOCmheCmn+Cniy3gppXgpq7gpqrgp43gprLgpr/gprbgpqgg4Ka44KaV4KeN4Kaw4Ka/4Kav4Ka8IOCmueCmrOCnh1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBMaXN0OiBcIuCmuOCnjeCmrOCmqOCmv+CmsOCnjeCmp+CmvuCmsOCmv+CmpCDgpqrgp43gprDgpq7gp43gpqrgpp8g4Kak4Ka+4Kay4Ka/4KaV4Ka+XCIsXHJcbiAgICAgIExpc3RDb3VudDogKGJ1aWx0aW46IG51bWJlciwgY3VzdG9tOiBudW1iZXIpID0+XHJcbiAgICAgICAgYOCmh+CmqOCmrOCmv+CmsuCnjeCmnyAke2J1aWx0aW59IOCmn+Cmvywg4Kas4KeN4Kav4Kas4Ka54Ka+4Kaw4KaV4Ka+4Kaw4KeAIOCmuOCmguCmnOCnjeCmnuCmvuCmr+CmvOCmv+CmpCAke2N1c3RvbX0g4Kaf4Ka/YCxcclxuICAgICAgRWRpdDogXCLgprjgpq7gp43gpqrgpr7gpqbgpqjgpr4g4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgIE1vZGFsOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi4Kaq4KeN4Kaw4Kau4KeN4Kaq4KafIOCmpOCmvuCmsuCmv+CmleCmvlwiLFxyXG4gICAgICAgIEFkZDogXCLgpqjgpqTgp4Hgpqgg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgICAgU2VhcmNoOiBcIuCmquCnjeCmsOCmruCnjeCmquCmnyDgpoXgpqjgp4Hgprjgpqjgp43gpqfgpr7gpqgg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEVkaXRNb2RhbDoge1xyXG4gICAgICAgIFRpdGxlOiBcIuCmquCnjeCmsOCmruCnjeCmquCmnyDgprjgpq7gp43gpqrgpr7gpqbgpqjgpr4g4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgSGlzdG9yeUNvdW50OiB7XHJcbiAgICAgIFRpdGxlOiBcIuCmuOCmguCmr+CngeCmleCnjeCmpCDgpofgpqTgpr/gprngpr7gprgg4Kas4Ka+4Kaw4KeN4Kak4Ka+4KawIOCmuOCmguCmluCnjeCmr+CmvlwiLFxyXG4gICAgICBTdWJUaXRsZTogXCLgpqrgp43gprDgpqTgpr/gpp/gpr8g4KaF4Kao4KeB4Kaw4KeL4Kan4KeHIOCmuOCmguCmr+CngeCmleCnjeCmpCDgpofgpqTgpr/gprngpr7gprgg4Kas4Ka+4Kaw4KeN4Kak4Ka+4KawIOCmuOCmguCmluCnjeCmr+CmvlwiLFxyXG4gICAgfSxcclxuICAgIENvbXByZXNzVGhyZXNob2xkOiB7XHJcbiAgICAgIFRpdGxlOiBcIuCmh+CmpOCmv+CmueCmvuCmuCDgpqzgpr7gprDgp43gpqTgpr4g4Kam4KeI4Kaw4KeN4KaY4KeN4KavIOCmuOCmguCmleCngeCmmuCmv+CmpCDgpqXgp43gprDgp4fgprbgprngp4vgprLgp43gpqFcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCLgpq/gppbgpqgg4Ka44KaC4KaV4KeB4Kaa4Ka/4KakIOCmh+CmpOCmv+CmueCmvuCmuCDgpqzgpr7gprDgp43gpqTgpr4g4KaP4KaHIOCmruCmvuCmqCDgppvgpr7gpqHgprzgpr/gpq/gprzgp4cg4Kav4Ka+4Kav4Ka8LCDgpqTgppbgpqgg4Ka44KaC4KaV4KeB4Kaa4Ka/4KakIOCmleCmsOCmviDgprngpqzgp4dcIixcclxuICAgIH0sXHJcblxyXG4gICAgVXNhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwi4Kas4KeN4Kav4Ka+4Kay4KeH4Kao4KeN4Ka4IOCmmuCnh+CmlVwiLFxyXG4gICAgICBTdWJUaXRsZSh1c2VkOiBhbnksIHRvdGFsOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gYOCmj+CmhyDgpq7gpr7gprjgp4cg4Kas4KeN4Kav4Kas4Ka54KeD4KakICQke3VzZWR9LCDgprjgpr7gpqzgprjgp43gppXgp43gprDgpr/gpqrgprbgpqgg4Kau4KeL4KafICQke3RvdGFsfWA7XHJcbiAgICAgIH0sXHJcbiAgICAgIElzQ2hlY2tpbmc6IFwi4Kaq4Kaw4KeA4KaV4KeN4Ka34Ka+IOCmleCmsOCmviDgprngpprgp43gppvgp4figKZcIixcclxuICAgICAgQ2hlY2s6IFwi4Kaq4KeB4Kao4Kaw4Ka+4Kav4Ka8IOCmquCmsOCngOCmleCnjeCmt+CmviDgppXgprDgp4HgpqhcIixcclxuICAgICAgTm9BY2Nlc3M6IFwi4Kas4KeN4Kav4Ka+4Kay4KeH4Kao4KeN4Ka4IOCmpuCnh+CmluCmpOCnhyBBUEkg4KaV4KeAIOCmheCmpeCmrOCmviDgpoXgp43gpq/gpr7gppXgp43gprjgp4fgprgg4Kaq4Ka+4Ka44KaT4Kav4Ka84Ka+4Kaw4KeN4KahIOCmquCnjeCmsOCmrOCnh+CmtiDgppXgprDgp4HgpqhcIixcclxuICAgIH0sXHJcblxyXG4gICAgQWNjZXNzOiB7XHJcbiAgICAgIFNhYXNTdGFydDoge1xyXG4gICAgICAgIFRpdGxlOiBcIk5leHRDaGF0IEFJIOCmrOCnjeCmr+CmrOCmueCmvuCmsCDgppXgprDgp4HgpqhcIixcclxuICAgICAgICBMYWJlbDogXCIo4Ka44KeH4Kaw4Ka+IOCmruCnguCmsuCnjeCmr+CmuOCmvuCmtuCnjeCmsOCmr+CmvOCngCDgprjgpq7gpr7gpqfgpr7gpqgpXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIk5leHRDaGF0IOCmleCmsOCnjeCmpOCng+CmlSDgpoXgpqvgpr/gprjgpr/gpq/gprzgpr7gprIg4Kaw4KaV4KeN4Ka34Kaj4Ka+4Kas4KeH4KaV4KeN4Ka34KajLCDgprbgp4Lgpqjgp43gpq8g4KaV4Kao4Kar4Ka/4KaX4Ka+4Kaw4KeH4Ka24KaoIOCmrOCnjeCmr+CmrOCmueCmvuCmsCDgprbgp4HgprDgp4Eg4KaV4Kaw4KeB4KaoLCBPcGVuQUkgbzEsIEdQVC00bywgQ2xhdWRlLTMuNSDgprjgprkg4Ka44Kaw4KeN4Kas4Ka24KeH4Ka3IOCmrOCmoeCmvCDgpq7gpqHgp4fgprLgppfgp4HgprLgpr8g4Ka44Kau4Kaw4KeN4Kal4KaoIOCmleCmsOCnh1wiLFxyXG4gICAgICAgIENoYXROb3c6IFwi4KaP4KaW4Kao4KaHIOCmmuCnjeCmr+CmvuCmnyDgppXgprDgp4HgpqhcIixcclxuICAgICAgfSxcclxuXHJcbiAgICAgIEFjY2Vzc0NvZGU6IHtcclxuICAgICAgICBUaXRsZTogXCLgpoXgp43gpq/gpr7gppXgp43gprjgp4fgprgg4Kaq4Ka+4Ka44KaT4Kav4Ka84Ka+4Kaw4KeN4KahXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi4KaF4KeN4Kav4Ka+4Kah4Kau4Ka/4KaoIOCmj+CmqOCmleCnjeCmsOCmv+CmquCnjeCmn+Cnh+CmoSDgpoXgp43gpq/gpr7gppXgp43gprjgp4fgprgg4Ka44KaV4KeN4Kaw4Ka/4Kav4Ka8IOCmleCmsOCnh+Cmm+Cnh+CmqFwiLFxyXG4gICAgICAgIFBsYWNlaG9sZGVyOiBcIuCmheCnjeCmr+CmvuCmleCnjeCmuOCnh+CmuCDgpqrgpr7gprjgppPgpq/gprzgpr7gprDgp43gpqEg4Kaq4KeN4Kaw4Kas4KeH4Ka2IOCmleCmsOCngeCmqFwiLFxyXG4gICAgICB9LFxyXG4gICAgICBDdXN0b21FbmRwb2ludDoge1xyXG4gICAgICAgIFRpdGxlOiBcIuCmuOCnjeCmrOCmqOCmv+CmsOCnjeCmp+CmvuCmsOCmv+CmpCDgpofgpqjgp43gpp/gpr7gprDgpqvgp4fgprhcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLgprjgp43gpqzgpqjgpr/gprDgp43gpqfgpr7gprDgpr/gpqQgQXp1cmUg4Kas4Ka+IE9wZW5BSSDgprjgpr7gprDgp43gpq3gpr/gprgg4Kas4KeN4Kav4Kas4Ka54Ka+4KawIOCmleCmsOCmrOCnh+CmqCDgppXgpr8/XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFByb3ZpZGVyOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi4Kau4Kah4KeH4KayIOCmquCmsOCmv+Cmt+Cnh+CmrOCmviDgpqrgp43gprDgpqbgpr7gpqjgppXgpr7gprDgp4BcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLgpqzgpr/gpq3gpr/gpqjgp43gpqgg4Kaq4Kaw4Ka/4Ka34KeH4Kas4Ka+IOCmquCnjeCmsOCmpuCmvuCmqOCmleCmvuCmsOCngOCmpOCnhyDgprjgp43gpq/gp4Hgpofgppog4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIE9wZW5BSToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIOCmleCngFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwi4Kaq4Ka+4Ka44KaT4Kav4Ka84Ka+4Kaw4KeN4KahIOCmheCnjeCmr+CmvuCmleCnjeCmuOCnh+CmuCDgprjgp4Dgpq7gpr7gpqzgpqbgp43gpqfgpqTgpr4g4KaP4Kah4Ka84Ka+4Kak4KeHIOCmuOCnjeCmrOCmqOCmv+CmsOCnjeCmp+CmvuCmsOCmv+CmpCBPcGVuQUkg4KaV4KeAIOCmrOCnjeCmr+CmrOCmueCmvuCmsCDgppXgprDgp4HgpqhcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIk9wZW5BSSBBUEkg4KaV4KeAXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuCmh+CmqOCnjeCmn+CmvuCmsOCmq+Cnh+CmuCDgpqDgpr/gppXgpr7gpqjgpr5cIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuCmoeCmv+Cmq+CmsuCnjeCmnyDgpqDgpr/gppXgpr7gpqjgpr4g4Kas4Ka+4Kam4KeHLCBodHRwKHMpOi8vIOCmheCmqOCnjeCmpOCmsOCnjeCmreCngeCmleCnjeCmpCDgppXgprDgpqTgp4cg4Ka54Kas4KeHXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQXp1cmU6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuCmh+CmqOCnjeCmn+CmvuCmsOCmq+Cnh+CmuCDgppXgp4BcIixcclxuICAgICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgICBcIuCmquCmvuCmuOCmk+Cmr+CmvOCmvuCmsOCnjeCmoSDgpoXgp43gpq/gpr7gppXgp43gprjgp4fgprgg4Ka44KeA4Kau4Ka+4Kas4Kam4KeN4Kan4Kak4Ka+IOCmj+CmoeCmvOCmvuCmpOCnhyDgprjgp43gpqzgpqjgpr/gprDgp43gpqfgpr7gprDgpr/gpqQgQXp1cmUg4KaV4KeAIOCmrOCnjeCmr+CmrOCmueCmvuCmsCDgppXgprDgp4HgpqhcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkF6dXJlIEFQSSDgppXgp4BcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi4KaH4Kao4KeN4Kaf4Ka+4Kaw4Kar4KeH4Ka4IOCmoOCmv+CmleCmvuCmqOCmvlwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi4KaJ4Kam4Ka+4Ka54Kaw4KajOlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcmlvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi4KaH4Kao4KeN4Kaf4Ka+4Kaw4Kar4KeH4Ka4IOCmuOCmguCmuOCnjeCmleCmsOCmoyAoYXp1cmUgYXBpIHZlcnNpb24pXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLgpqjgpr/gprDgp43gpqbgpr/gprfgp43gpp8g4Ka44KaC4Ka44KeN4KaV4Kaw4KajIOCmqOCmv+CmsOCnjeCmrOCmvuCmmuCmqCDgppXgprDgp4HgpqhcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBBbnRocm9waWM6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuCmh+CmqOCnjeCmn+CmvuCmsOCmq+Cnh+CmuCDgppXgp4BcIixcclxuICAgICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgICBcIuCmquCmvuCmuOCmk+Cmr+CmvOCmvuCmsOCnjeCmoSDgpoXgp43gpq/gpr7gppXgp43gprjgp4fgprgg4Ka44KeA4Kau4Ka+4Kas4Kam4KeN4Kan4Kak4Ka+IOCmj+CmoeCmvOCmvuCmpOCnhyDgprjgp43gpqzgpqjgpr/gprDgp43gpqfgpr7gprDgpr/gpqQgQW50aHJvcGljIOCmleCngCDgpqzgp43gpq/gpqzgprngpr7gprAg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJBbnRocm9waWMgQVBJIOCmleCngFwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLgpofgpqjgp43gpp/gpr7gprDgpqvgp4fgprgg4Kag4Ka/4KaV4Ka+4Kao4Ka+XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLgpongpqbgpr7gprngprDgpqM6XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgQXBpVmVyaW9uOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLgpofgpqjgp43gpp/gpr7gprDgpqvgp4fgprgg4Ka44KaC4Ka44KeN4KaV4Kaw4KajIChjbGF1ZGUgYXBpIHZlcnNpb24pXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLgpqjgpr/gprDgp43gpqbgpr/gprfgp43gpp8gQVBJIOCmuOCmguCmuOCnjeCmleCmsOCmoyDgpqrgp43gprDgpqzgp4fgprYg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgR29vZ2xlOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEkg4KaV4KeAXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJHb29nbGUgQUkg4Kal4KeH4KaV4KeHIOCmhuCmquCmqOCmvuCmsCBBUEkg4KaV4KeAIOCmquCmvuCmqFwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwi4KaG4Kaq4Kao4Ka+4KawIEdvb2dsZSBBSSBTdHVkaW8gQVBJIOCmleCngCDgpqrgp43gprDgpqzgp4fgprYg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuCmn+CmvuCmsOCnjeCmruCmv+CmqOCmvuCmsiDgpqDgpr/gppXgpr7gpqjgpr5cIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuCmieCmpuCmvuCmueCmsOCmozpcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBBcGlWZXJzaW9uOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEkg4Ka44KaC4Ka44KeN4KaV4Kaw4KajICjgprbgp4Hgpqfgp4Hgpq7gpr7gpqTgp43gprAgZ2VtaW5pLXBybylcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuCmj+CmleCmn+CmvyDgpqjgpr/gprDgp43gpqbgpr/gprfgp43gpp8gQVBJIOCmuOCmguCmuOCnjeCmleCmsOCmoyDgpqjgpr/gprDgp43gpqzgpr7gpprgpqgg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBHb29nbGVTYWZldHlTZXR0aW5nczoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiR29vZ2xlIOCmuOCnh+Cmq+Cmn+CmvyDgpqvgpr/gprLgp43gpp/gpr7gprAg4Ka44KeN4Kak4KawXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLgpqzgpr/gprfgpq/gprzgpqzgprjgp43gpqTgp4Eg4Kar4Ka/4Kay4KeN4Kaf4Ka+4KawIOCmuOCnjeCmpOCmsCDgprjgp4fgpp8g4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQmFpZHU6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSSDgppXgp4BcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuCmuOCnjeCmrOCmqOCmv+CmsOCnjeCmp+CmvuCmsOCmv+CmpCBCYWlkdSBBUEkg4KaV4KeAIOCmrOCnjeCmr+CmrOCmueCmvuCmsCDgppXgprDgp4HgpqhcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkJhaWR1IEFQSSDgppXgp4BcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFNlY3JldEtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwi4Ka44Ka/4KaV4KeN4Kaw4KeH4KafIOCmleCngFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi4Ka44KeN4Kas4Kao4Ka/4Kaw4KeN4Kan4Ka+4Kaw4Ka/4KakIEJhaWR1IOCmuOCmv+CmleCnjeCmsOCnh+CmnyDgppXgp4Ag4Kas4KeN4Kav4Kas4Ka54Ka+4KawIOCmleCmsOCngeCmqFwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQmFpZHUg4Ka44Ka/4KaV4KeN4Kaw4KeH4KafIOCmleCngFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuCmh+CmqOCnjeCmn+CmvuCmsOCmq+Cnh+CmuCDgpqDgpr/gppXgpr7gpqjgpr5cIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuCmuOCnjeCmrOCmqOCmv+CmsOCnjeCmp+CmvuCmsOCmv+CmpCDgprjgpq7gprDgp43gpqXgpr/gpqQg4Kao4Kav4Ka8LCAuZW52IOCmleCmqOCmq+Cmv+Cml+CmvuCmsOCnh+CmtuCmqOCnhyDgpprgprLgp4cg4Kav4Ka+4KaoXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQnl0ZURhbmNlOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLgpofgpqjgp43gpp/gpr7gprDgpqvgp4fgprgg4KaV4KeAXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLgprjgp43gpqzgpqjgpr/gprDgp43gpqfgpr7gprDgpr/gpqQgQnl0ZURhbmNlIEFQSSDgppXgp4Ag4Kas4KeN4Kav4Kas4Ka54Ka+4KawIOCmleCmsOCngeCmqFwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQnl0ZURhbmNlIEFQSSDgppXgp4BcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLgpofgpqjgp43gpp/gpr7gprDgpqvgp4fgprgg4Kag4Ka/4KaV4Ka+4Kao4Ka+XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLgpongpqbgpr7gprngprDgpqM6XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQWxpYmFiYToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwi4KaH4Kao4KeN4Kaf4Ka+4Kaw4Kar4KeH4Ka4IOCmleCngFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi4Ka44KeN4Kas4Kao4Ka/4Kaw4KeN4Kan4Ka+4Kaw4Ka/4KakIOCmhuCmsuCmv+CmrOCmvuCmrOCmviDgppXgp43gprLgpr7gpongpqEgQVBJIOCmleCngCDgpqzgp43gpq/gpqzgprngpr7gprAg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJBbGliYWJhIENsb3VkIEFQSSDgppXgp4BcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLgpofgpqjgp43gpp/gpr7gprDgpqvgp4fgprgg4Kag4Ka/4KaV4Ka+4Kao4Ka+XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLgpongpqbgpr7gprngprDgpqM6XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQ3VzdG9tTW9kZWw6IHtcclxuICAgICAgICBUaXRsZTogXCLgprjgp43gpqzgpqjgpr/gprDgp43gpqfgpr7gprDgpr/gpqQg4Kau4Kah4KeH4KayIOCmqOCmvuCmrlwiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCLgprjgp43gpqzgpqjgpr/gprDgp43gpqfgpr7gprDgpr/gpqQg4Kau4Kah4KeH4KayIOCmrOCmv+CmleCmsuCnjeCmquCml+CngeCmsuCmvyDgpq/gp4HgppXgp43gpqQg4KaV4Kaw4KeB4KaoLCDgpofgpoLgprDgp4fgppzgpr8g4KaV4Kau4Ka+IOCmpuCnjeCmrOCmvuCmsOCmviDgpobgprLgpr7gpqbgpr4g4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG5cclxuICAgIE1vZGVsOiBcIuCmruCmoeCnh+CmsiAobW9kZWwpXCIsXHJcbiAgICBDb21wcmVzc01vZGVsOiB7XHJcbiAgICAgIFRpdGxlOiBcIuCmuOCmguCmleCni+CmmuCmqCDgpq7gpqHgp4fgprJcIixcclxuICAgICAgU3ViVGl0bGU6IFwi4KaH4Kak4Ka/4Ka54Ka+4Ka4IOCmuOCmguCmleCngeCmmuCmv+CmpCDgppXgprDgpr7gprAg4Kac4Kao4KeN4KavIOCmrOCnjeCmr+CmrOCmueCng+CmpCDgpq7gpqHgp4fgprJcIixcclxuICAgIH0sXHJcbiAgICBUZW1wZXJhdHVyZToge1xyXG4gICAgICBUaXRsZTogXCLgpq/gpr7gpqbgp4HgppXgprDgpr/gpqTgpr4gKHRlbXBlcmF0dXJlKVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCLgpq7gpr7gpqgg4Kas4Ka+4Kah4Ka84Ka+4Kay4KeHIOCmieCmpOCnjeCmpOCmsCDgpqzgp4fgprbgpr8g4KaP4Kay4KeL4Kau4KeH4Kay4KeLIOCmueCmrOCnh1wiLFxyXG4gICAgfSxcclxuICAgIFRvcFA6IHtcclxuICAgICAgVGl0bGU6IFwi4Kao4Ka/4KaJ4KaV4KeN4Kay4Ka/4Kav4Ka84Ka+4KawIOCmuOCnjeCmr+CmvuCmruCnjeCmquCmsuCmv+CmgiAodG9wX3ApXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuCmr+CmvuCmpuCngeCmleCmsOCmv+CmpOCmviDgpq7gpqQsIOCmleCmv+CmqOCnjeCmpOCngSDgpo/gppXgprjgpr7gpqXgp4cg4Kaq4Kaw4Ka/4Kas4Kaw4KeN4Kak4KaoIOCmleCmsOCmrOCnh+CmqCDgpqjgpr5cIixcclxuICAgIH0sXHJcbiAgICBNYXhUb2tlbnM6IHtcclxuICAgICAgVGl0bGU6IFwi4KaP4KaV4Kaf4Ka/IOCmieCmpOCnjeCmpOCmsCDgprjgp4Dgpq7gpr4gKG1heF90b2tlbnMpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuCmquCnjeCmsOCmpOCmvyDgpofgpqjgp43gpp/gpr7gprDgpoXgp43gpq/gpr7gppXgprbgpqjgp4cg4Ka44Kaw4KeN4Kas4Ka+4Kan4Ka/4KaVIOCmn+Cni+CmleCnh+CmqCDgprjgpoLgppbgp43gpq/gpr5cIixcclxuICAgIH0sXHJcbiAgICBQcmVzZW5jZVBlbmFsdHk6IHtcclxuICAgICAgVGl0bGU6IFwi4Kas4Ka/4Ka34Kav4Ka84Kas4Ka44KeN4Kak4KeBIOCmpOCmvuCmnOCmviAocHJlc2VuY2VfcGVuYWx0eSlcIixcclxuICAgICAgU3ViVGl0bGU6IFwi4Kau4Ka+4KaoIOCmrOCmvuCmoeCmvOCmvuCmsuCnhyDgpqjgpqTgp4Hgpqgg4Kas4Ka/4Ka34Kav4Ka84KeHIOCmquCnjeCmsOCmuOCmvuCmsOCmv+CmpCDgprngppPgpq/gprzgpr7gprAg4Ka44Kau4KeN4Kat4Ka+4Kas4Kao4Ka+IOCmrOCnh+CmtuCmv1wiLFxyXG4gICAgfSxcclxuICAgIEZyZXF1ZW5jeVBlbmFsdHk6IHtcclxuICAgICAgVGl0bGU6IFwi4Kar4KeN4Kaw4Ka/4KaV4KeL4Kav4Ka84KeH4Kao4KeN4Ka44Ka/IOCmquCnh+CmqOCmvuCmsuCnjeCmn+CmvyAoZnJlcXVlbmN5X3BlbmFsdHkpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuCmruCmvuCmqCDgpqzgpr7gpqHgprzgpr7gprLgp4cg4Kaq4KeB4Kao4Kaw4Ka+4Kas4KeD4Kak4KeN4Kak4Ka/IOCmtuCmrOCnjeCmpiDgppXgpq7gpr7gpqjgp4vgprAg4Ka44Kau4KeN4Kat4Ka+4Kas4Kao4Ka+IOCmrOCnh+CmtuCmv1wiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIFN0b3JlOiB7XHJcbiAgICBEZWZhdWx0VG9waWM6IFwi4Kao4Kak4KeB4KaoIOCmmuCnjeCmr+CmvuCmn1wiLFxyXG4gICAgQm90SGVsbG86IFwi4KaG4Kaq4Kao4Ka+4KawIOCmnOCmqOCnjeCmryDgppXgpr/gppvgp4Eg4KaV4Kaw4Kak4KeHIOCmquCmvuCmsOCmvz9cIixcclxuICAgIEVycm9yOiBcIuCmj+CmleCmn+CmvyDgpqTgp43gprDgp4Hgpp/gpr8g4KaY4Kaf4KeH4Kab4KeHLCDgpqrgprDgp4cg4KaG4Kas4Ka+4KawIOCmmuCnh+Cmt+CnjeCmn+CmviDgppXgprDgp4HgpqhcIixcclxuICAgIFByb21wdDoge1xyXG4gICAgICBIaXN0b3J5OiAoY29udGVudDogc3RyaW5nKSA9PlxyXG4gICAgICAgIFwi4KaP4Kaf4Ka/IOCmquCnguCmsOCnjeCmrOCnh+CmsCDgpprgp43gpq/gpr7gpp/gp4fgprAg4Ka44Ka+4Kaw4Ka+4KaC4Ka2IOCmueCmv+CmuOCnh+CmrOCnhyDgpqzgp43gpq/gpqzgprngp4PgpqQg4Ka54Kas4KeHOiBcIiArIGNvbnRlbnQsXHJcbiAgICAgIFRvcGljOlxyXG4gICAgICAgIFwi4Kaa4Ka+4KawIOCmpeCnh+CmleCnhyDgpqrgpr7gpoHgpprgpp/gpr8g4Ka24Kas4KeN4KamIOCmrOCnjeCmr+CmrOCmueCmvuCmsCDgppXgprDgp4cg4KaP4KaHIOCmrOCmvuCmleCnjeCmr+Cnh+CmsCDgprjgpoLgppXgp43gprfgpr/gpqrgp43gpqQg4Kal4Ka/4KauIOCmpuCmv+CmqCwg4Kas4KeN4Kav4Ka+4KaW4KeN4Kav4Ka+LCDgpqzgpr/gprDgpr7gpq4g4Kaa4Ka/4Ka54KeN4KaoLCDgpq3gpr7gprfgpr4sIOCmheCmpOCmv+CmsOCmv+CmleCnjeCmpCDgpp/gp4fgppXgp43gprjgpp8g4Kas4Ka+IOCmrOCni+CmsuCnjeCmoSDgpqjgpr4g4Kas4KeN4Kav4Kas4Ka54Ka+4KawIOCmleCmsOCngeCmqOClpCDgpq/gpqbgpr8g4KaV4KeL4Kao4KeLIOCmpeCmv+CmriDgpqjgpr4g4Kal4Ka+4KaV4KeHIOCmpOCmrOCnhyDgprjgprDgpr7gprjgprDgpr8gJ+CmrOCnh+CmleCmvuCmsCcg4Kas4Kay4KeB4KaoXCIsXHJcbiAgICAgIFN1bW1hcml6ZTpcclxuICAgICAgICBcIuCmhuCmsuCni+CmmuCmqOCmvuCmsCDgpqzgpr/gprfgpq/gprzgpqzgprjgp43gpqTgp4Eg4Ka44KaC4KaV4KeN4Ka34Ka/4Kaq4KeN4Kak4Kat4Ka+4Kas4KeHIOCmuOCmvuCmsOCmvuCmguCmtiDgppXgprDgp4HgpqgsIOCmquCmsOCmrOCmsOCnjeCmpOCngCDgppXgpqjgpp/gp4fgppXgp43gprjgpp8g4Kaq4KeN4Kaw4Kau4KeN4Kaq4KafIOCmueCmv+CmuOCnh+CmrOCnhyDgpqzgp43gpq/gpqzgprngpr7gprDgp4fgprAg4Kac4Kao4KeN4KavLCDgp6jgp6bgp6Yg4Ka24Kas4KeN4Kam4KeH4KawIOCmruCmp+CnjeCmr+CnhyDgprjgp4Dgpq7gpr7gpqzgpqbgp43gpqcg4Kaw4Ka+4KaW4KeB4KaoXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgQ29weToge1xyXG4gICAgU3VjY2VzczogXCLgppXgp43gprLgpr/gpqrgpqzgp4vgprDgp43gpqHgp4cg4Kay4KeH4KaW4Ka+IOCmueCmr+CmvOCnh+Cmm+Cnh1wiLFxyXG4gICAgRmFpbGVkOiBcIuCmleCmquCmvyDgpqzgp43gpq/gprDgp43gpqUg4Ka54Kav4Ka84KeH4Kab4KeHLCDgpqbgpq/gprzgpr4g4KaV4Kaw4KeHIOCmleCnjeCmsuCmv+CmquCmrOCni+CmsOCnjeCmoSDgpoXgpqjgp4Hgpq7gpqTgpr8g4Kaq4KeN4Kaw4Kam4Ka+4KaoIOCmleCmsOCngeCmqFwiLFxyXG4gIH0sXHJcbiAgRG93bmxvYWQ6IHtcclxuICAgIFN1Y2Nlc3M6IFwi4Kas4Ka/4Ka34Kav4Ka84Kas4Ka44KeN4Kak4KeBIOCmhuCmquCmqOCmvuCmsCDgpqHgpr/gprDgp4fgppXgp43gpp/gprDgpr/gpqTgp4cg4Kah4Ka+4KaJ4Kao4Kay4KeL4KahIOCmleCmsOCmviDgprngpq/gprzgp4fgppvgp4fgpaRcIixcclxuICAgIEZhaWxlZDogXCLgpqHgpr7gpongpqjgprLgp4vgpqEg4Kas4KeN4Kav4Kaw4KeN4KalIOCmueCmr+CmvOCnh+Cmm+Cnh+ClpFwiLFxyXG4gIH0sXHJcbiAgQ29udGV4dDoge1xyXG4gICAgVG9hc3Q6ICh4OiBhbnkpID0+IGAke3h94Kaf4Ka/IOCmquCnguCmsOCnjeCmrOCmqOCmv+CmsOCnjeCmp+CmvuCmsOCmv+CmpCDgpqrgp43gprDgpq7gp43gpqrgpp8g4KaF4Kao4KeN4Kak4Kaw4KeN4Kat4KeB4KaV4KeN4KakYCxcclxuICAgIEVkaXQ6IFwi4Kas4Kaw4KeN4Kak4Kau4Ka+4KaoIOCmmuCnjeCmr+CmvuCmnyDgprjgp4fgpp/gpr/gpoLgprhcIixcclxuICAgIEFkZDogXCLgpo/gppXgpp/gpr8g4Kao4Kak4KeB4KaoIOCmmuCnjeCmr+CmvuCmnyDgpq/gp4vgppcg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICBDbGVhcjogXCLgppXgpqjgpp/gp4fgppXgp43gprjgpp8g4Kaq4Kaw4Ka/4Ka34KeN4KaV4Ka+4KawIOCmleCmsOCmviDgprngpq/gprzgp4fgppvgp4dcIixcclxuICAgIFJldmVydDogXCLgppXgpqjgpp/gp4fgppXgp43gprjgpp8g4Kaq4KeB4Kao4Kaw4KeB4Kam4KeN4Kan4Ka+4KawIOCmleCmsOCngeCmqFwiLFxyXG4gIH0sXHJcbiAgUGx1Z2luOiB7XHJcbiAgICBOYW1lOiBcIuCmquCnjeCmsuCmvuCml+Cmh+CmqFwiLFxyXG4gIH0sXHJcbiAgRmluZVR1bmVkOiB7XHJcbiAgICBTeXNtZXNzYWdlOiBcIuCmhuCmquCmqOCmvyDgpo/gppXgppzgpqgg4Ka44Ka54KaV4Ka+4Kaw4KeAXCIsXHJcbiAgfSxcclxuICBTZWFyY2hDaGF0OiB7XHJcbiAgICBOYW1lOiBcIuCmheCmqOCngeCmuOCmqOCnjeCmp+CmvuCmqFwiLFxyXG4gICAgUGFnZToge1xyXG4gICAgICBUaXRsZTogXCLgpprgp43gpq/gpr7gpp8g4Kaw4KeH4KaV4Kaw4KeN4KahIOCmheCmqOCngeCmuOCmqOCnjeCmp+CmvuCmqCDgppXgprDgp4HgpqhcIixcclxuICAgICAgU2VhcmNoOiBcIuCmheCmqOCngeCmuOCmqOCnjeCmp+CmvuCmqCDgppXgp4DgppPgpq/gprzgpr7gprDgp43gpqEg4Kay4Ka/4KaW4KeB4KaoXCIsXHJcbiAgICAgIE5vUmVzdWx0OiBcIuCmleCni+CmqCDgpqvgprLgpr7gpqvgprIg4Kaq4Ka+4KaT4Kav4Ka84Ka+IOCmr+CmvuCmr+CmvOCmqOCmv1wiLFxyXG4gICAgICBOb0RhdGE6IFwi4KaV4KeL4KaoIOCmpOCmpeCnjeCmryDgpqjgp4fgpodcIixcclxuICAgICAgTG9hZGluZzogXCLgprLgp4vgpqEg4Ka54Kaa4KeN4Kab4KeHXCIsXHJcblxyXG4gICAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50fSDgpp/gpr8g4Kar4Kay4Ka+4Kar4KayIOCmquCmvuCmk+Cmr+CmvOCmviDgppfgp4fgppvgp4dgLFxyXG4gICAgfSxcclxuICAgIEl0ZW06IHtcclxuICAgICAgVmlldzogXCLgpqbgp4fgppbgp4HgpqhcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBNYXNrOiB7XHJcbiAgICBOYW1lOiBcIuCmruCmvuCmuOCnjeCmlVwiLFxyXG4gICAgUGFnZToge1xyXG4gICAgICBUaXRsZTogXCLgpqrgp4LgprDgp43gpqzgpqjgpr/gprDgp43gpqfgpr7gprDgpr/gpqQg4Kaa4Kaw4Ka/4Kak4KeN4KawIOCmruCmvuCmuOCnjeCmlVwiLFxyXG4gICAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50feCmn+CmvyDgpqrgp4LgprDgp43gpqzgpqjgpr/gprDgp43gpqfgpr7gprDgpr/gpqQg4Kaa4Kaw4Ka/4Kak4KeN4KawIOCmuOCmguCmnOCnjeCmnuCmvmAsXHJcbiAgICAgIFNlYXJjaDogXCLgpprgprDgpr/gpqTgp43gprAg4Kau4Ka+4Ka44KeN4KaVIOCmheCmqOCngeCmuOCmqOCnjeCmp+CmvuCmqCDgppXgprDgp4HgpqhcIixcclxuICAgICAgQ3JlYXRlOiBcIuCmqOCmpOCngeCmqCDgpqTgp4jgprDgpr8g4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICB9LFxyXG4gICAgSXRlbToge1xyXG4gICAgICBJbmZvOiAoY291bnQ6IG51bWJlcikgPT4gYOCmreCmv+CmpOCmsOCnhyAke2NvdW50feCmn+CmvyDgpqrgp4LgprDgp43gpqzgpqjgpr/gprDgp43gpqfgpr7gprDgpr/gpqQg4Kaa4KeN4Kav4Ka+4KafIOCmsOCmr+CmvOCnh+Cmm+Cnh2AsXHJcbiAgICAgIENoYXQ6IFwi4Kaa4KeN4Kav4Ka+4KafXCIsXHJcbiAgICAgIFZpZXc6IFwi4Kam4KeH4KaW4KeB4KaoXCIsXHJcbiAgICAgIEVkaXQ6IFwi4Ka44Kau4KeN4Kaq4Ka+4Kam4Kao4Ka+IOCmleCmsOCngeCmqFwiLFxyXG4gICAgICBEZWxldGU6IFwi4Kau4KeB4Kab4KeHIOCmq+Cnh+CmsuCngeCmqFwiLFxyXG4gICAgICBEZWxldGVDb25maXJtOiBcIuCmruCngeCmm+CnhyDgpqvgp4fgprLgpr7gprAg4Kac4Kao4KeN4KavIOCmqOCmv+CmtuCnjeCmmuCmv+CmpCDgppXgprDgp4Hgpqg/XCIsXHJcbiAgICB9LFxyXG4gICAgRWRpdE1vZGFsOiB7XHJcbiAgICAgIFRpdGxlOiAocmVhZG9ubHk6IGJvb2xlYW4pID0+XHJcbiAgICAgICAgYOCmquCnguCmsOCnjeCmrOCmqOCmv+CmsOCnjeCmp+CmvuCmsOCmv+CmpCDgpq7gpr7gprjgp43gppUg4Ka44Kau4KeN4Kaq4Ka+4Kam4Kao4Ka+ICR7cmVhZG9ubHkgPyBcIu+8iOCmquCmoOCmqOCmr+Cni+Cml+CnjeCmr++8iVwiIDogXCJcIn1gLFxyXG4gICAgICBEb3dubG9hZDogXCLgpqrgp4LgprDgp43gpqzgpqjgpr/gprDgp43gpqfgpr7gprDgpr/gpqQg4Kah4Ka+4KaJ4Kao4Kay4KeL4KahIOCmleCmsOCngeCmqFwiLFxyXG4gICAgICBDbG9uZTogXCLgpqrgp4LgprDgp43gpqzgpqjgpr/gprDgp43gpqfgpr7gprDgpr/gpqQg4KaV4KeN4Kay4KeL4KaoIOCmleCmsOCngeCmqFwiLFxyXG4gICAgfSxcclxuICAgIENvbmZpZzoge1xyXG4gICAgICBBdmF0YXI6IFwi4Kaa4Kaw4Ka/4Kak4KeN4Kaw4KeH4KawIOCmmuCmv+CmpOCnjeCmsFwiLFxyXG4gICAgICBOYW1lOiBcIuCmmuCmsOCmv+CmpOCnjeCmsOCnh+CmsCDgpqjgpr7gpq5cIixcclxuICAgICAgU3luYzoge1xyXG4gICAgICAgIFRpdGxlOiBcIuCml+CnjeCmsuCni+CmrOCmvuCmsiDgprjgp4fgpp/gpr/gpoLgprgg4Kas4KeN4Kav4Kas4Ka54Ka+4KawIOCmleCmsOCngeCmqFwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIuCmrOCmsOCnjeCmpOCmruCmvuCmqCDgpprgp43gpq/gpr7gpp8g4KaX4KeN4Kay4KeL4Kas4Ka+4KayIOCmruCmoeCnh+CmsiDgprjgp4fgpp/gpr/gpoLgprgg4Kas4KeN4Kav4Kas4Ka54Ka+4KawIOCmleCmsOCmm+CnhyDgppXgpr8g4Kao4Ka+XCIsXHJcbiAgICAgICAgQ29uZmlybTpcclxuICAgICAgICAgIFwi4Kas4Kaw4KeN4Kak4Kau4Ka+4KaoIOCmmuCnjeCmr+CmvuCmn+Cnh+CmsCDgppXgpr7gprjgp43gpp/gpq4g4Ka44KeH4Kaf4Ka/4KaC4Ka4IOCmuOCnjeCmrOCmr+CmvOCmguCmleCnjeCmsOCmv+Cmr+CmvOCmreCmvuCmrOCnhyDgppPgpq3gpr7gprDgprDgpr7gpofgpp8g4Ka54Kas4KeHLCDgppfgp43gprLgp4vgpqzgpr7gprIg4Ka44KeH4Kaf4Ka/4KaC4Ka4IOCmuOCmleCnjeCmsOCmv+Cmr+CmvCDgppXgprDgpqTgp4cg4Kao4Ka/4Ka24KeN4Kaa4Ka/4KakP1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBIaWRlQ29udGV4dDoge1xyXG4gICAgICAgIFRpdGxlOiBcIuCmquCnguCmsOCnjeCmrOCmqOCmv+CmsOCnjeCmp+CmvuCmsOCmv+CmpCDgpprgp43gpq/gpr7gpp8g4Kay4KeB4KaV4Ka+4KaoXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIuCmsuCngeCmleCmvuCmqOCni+CmsCDgpqrgprDgp4cg4Kaq4KeC4Kaw4KeN4Kas4Kao4Ka/4Kaw4KeN4Kan4Ka+4Kaw4Ka/4KakIOCmmuCnjeCmr+CmvuCmnyDgpprgp43gpq/gpr7gpp8g4KaH4Kao4KeN4Kaf4Ka+4Kaw4Kar4KeH4Ka44KeHIOCmquCnjeCmsOCmpuCmsOCnjeCmtuCmv+CmpCDgprngpqzgp4cg4Kao4Ka+XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFNoYXJlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi4KaP4KaHIOCmruCmvuCmuOCnjeCmlSDgprbgp4fgpq/gprzgpr7gprAg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi4KaP4KaHIOCmruCmvuCmuOCnjeCmleCnh+CmsCDgprjgprDgpr7gprjgprDgpr8g4Kay4Ka/4KaZ4KeN4KaVIOCmpOCniOCmsOCmvyDgppXgprDgp4HgpqhcIixcclxuICAgICAgICBBY3Rpb246IFwi4Kay4Ka/4KaZ4KeN4KaVIOCmleCmquCmvyDgppXgprDgp4HgpqhcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBOZXdDaGF0OiB7XHJcbiAgICBSZXR1cm46IFwi4Kar4Ka/4Kaw4KeHIOCmr+CmvuCmqFwiLFxyXG4gICAgU2tpcDogXCLgpqHgpr7gpofgprDgp4fgppXgp43gpp8g4Ka24KeB4Kaw4KeBIOCmleCmsOCngeCmqFwiLFxyXG4gICAgTm90U2hvdzogXCLgpobgpqzgpr7gprAg4Kaq4KeN4Kaw4Kam4Kaw4KeN4Ka24KaoIOCmleCmsOCmrOCnh+CmqCDgpqjgpr5cIixcclxuICAgIENvbmZpcm1Ob1Nob3c6XHJcbiAgICAgIFwi4Kao4Ka/4Ka24KeN4Kaa4Ka/4KakIOCmr+CnhyDgpqjgpr/gprfgp43gppXgp43gprDgpr/gpq/gprwg4KaV4Kaw4Kas4KeH4KaoPyDgpqjgpr/gprfgp43gppXgp43gprDgpr/gpq/gprwg4KaV4Kaw4Ka+4KawIOCmquCmsOCnhyDgprjgp4fgpp/gpr/gpoLgprjgp4cg4Kaq4KeB4Kao4Kaw4Ka+4Kav4Ka8IOCmuOCmleCnjeCmsOCmv+Cmr+CmvCDgppXgprDgpr4g4Kav4Ka+4Kas4KeH4KWkXCIsXHJcbiAgICBUaXRsZTogXCLgpo/gppXgpp/gpr8g4Kau4Ka+4Ka44KeN4KaVIOCmqOCmv+CmsOCnjeCmrOCmvuCmmuCmqCDgppXgprDgp4HgpqhcIixcclxuICAgIFN1YlRpdGxlOiBcIuCmj+CmluCmqCDgprbgp4HgprDgp4Eg4KaV4Kaw4KeB4KaoLCDgpq7gpr7gprjgp43gppXgp4fgprAg4Kaq4Ka/4Kab4Kao4KeH4KawIOCmmuCmv+CmqOCnjeCmpOCmviDgpqrgp43gprDgpqTgpr/gppXgp43gprDgpr/gpq/gprzgpr4g4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICBNb3JlOiBcIuCmuOCmrCDgpqbgp4fgppbgp4HgpqhcIixcclxuICB9LFxyXG5cclxuICBVUkxDb21tYW5kOiB7XHJcbiAgICBDb2RlOiBcIuCmsuCmv+CmmeCnjeCmleCnhyDgpoXgp43gpq/gpr7gppXgp43gprjgp4fgprgg4KaV4KeL4KahIOCmh+CmpOCmv+CmruCmp+CnjeCmr+CnhyDgpoXgpqjgp43gpqTgprDgp43gpq3gp4HgppXgp43gpqQg4Kaw4Kav4Ka84KeH4Kab4KeHLCDgpoXgpp/gp4sg4Kaq4KeC4Kaw4KajIOCmleCmsOCmpOCnhyDgpprgpr7gpqg/XCIsXHJcbiAgICBTZXR0aW5nczpcclxuICAgICAgXCLgprLgpr/gppngp43gppXgp4cg4Kaq4KeN4Kaw4Ka+4KaVLeCmqOCmv+CmsOCnjeCmp+CmvuCmsOCmv+CmpCDgprjgp4fgpp/gpr/gpoLgprgg4KaF4Kao4KeN4Kak4Kaw4KeN4Kat4KeB4KaV4KeN4KakIOCmsOCmr+CmvOCnh+Cmm+Cnhywg4KaF4Kaf4KeLIOCmquCnguCmsOCmoyDgppXgprDgpqTgp4cg4Kaa4Ka+4KaoP1wiLFxyXG4gIH0sXHJcblxyXG4gIFVJOiB7XHJcbiAgICBDb25maXJtOiBcIuCmqOCmv+CmtuCnjeCmmuCmv+CmpCDgppXgprDgp4HgpqhcIixcclxuICAgIENhbmNlbDogXCLgpqzgpr7gpqTgpr/gprIg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICBDbG9zZTogXCLgpqzgpqjgp43gpqcg4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICBDcmVhdGU6IFwi4Kao4Kak4KeB4KaoIOCmpOCniOCmsOCmvyDgppXgprDgp4HgpqhcIixcclxuICAgIEVkaXQ6IFwi4Ka44Kau4KeN4Kaq4Ka+4Kam4Kao4Ka+IOCmleCmsOCngeCmqFwiLFxyXG4gICAgRXhwb3J0OiBcIuCmsOCmquCnjeCmpOCmvuCmqOCmvyDgppXgprDgp4HgpqhcIixcclxuICAgIEltcG9ydDogXCLgpobgpq7gpqbgpr7gpqjgpr8g4KaV4Kaw4KeB4KaoXCIsXHJcbiAgICBTeW5jOiBcIuCmuOCmv+CmmeCnjeCmlVwiLFxyXG4gICAgQ29uZmlnOiBcIuCmleCmqOCmq+Cmv+Cml+CmvuCmsOCnh+CmtuCmqFwiLFxyXG4gIH0sXHJcbiAgRXhwb3J0ZXI6IHtcclxuICAgIERlc2NyaXB0aW9uOiB7XHJcbiAgICAgIFRpdGxlOiBcIuCmtuCngeCmp+CngeCmruCmvuCmpOCnjeCmsCDgppXgpqjgpp/gp4fgppXgp43gprjgpp8g4Kaq4Kaw4Ka/4Ka34KeN4KaV4Ka+4KawIOCmleCmsOCmvuCmsCDgpqrgprDgp4cg4Kas4Ka+4Kaw4KeN4Kak4Ka+4KaX4KeB4Kay4Ka/IOCmquCnjeCmsOCmpuCmsOCnjeCmtuCmv+CmpCDgprngpqzgp4dcIixcclxuICAgIH0sXHJcbiAgICBNb2RlbDogXCLgpq7gpqHgp4fgprJcIixcclxuICAgIE1lc3NhZ2VzOiBcIuCmrOCmvuCmsOCnjeCmpOCmvlwiLFxyXG4gICAgVG9waWM6IFwi4Kal4Ka/4KauXCIsXHJcbiAgICBUaW1lOiBcIuCmuOCmruCmr+CmvFwiLFxyXG4gIH0sXHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBibjtcclxuIl0sIm5hbWVzIjpbIlN1Ym1pdEtleSIsImdldENsaWVudENvbmZpZyIsIlNBQVNfQ0hBVF9VVE1fVVJMIiwiaXNBcHAiLCJibiIsIldJUCIsIkVycm9yIiwiVW5hdXRob3JpemVkIiwiQXV0aCIsIlRpdGxlIiwiVGlwcyIsIlN1YlRpcHMiLCJJbnB1dCIsIkNvbmZpcm0iLCJMYXRlciIsIlJldHVybiIsIlNhYXNUaXBzIiwiVG9wVGlwcyIsIkNoYXRJdGVtIiwiQ2hhdEl0ZW1Db3VudCIsImNvdW50IiwiQ2hhdCIsIlN1YlRpdGxlIiwiRWRpdE1lc3NhZ2UiLCJUb3BpYyIsIkFjdGlvbnMiLCJDaGF0TGlzdCIsIkNvbXByZXNzZWRIaXN0b3J5IiwiRXhwb3J0IiwiQ29weSIsIlN0b3AiLCJSZXRyeSIsIlBpbiIsIlBpblRvYXN0Q29udGVudCIsIlBpblRvYXN0QWN0aW9uIiwiRGVsZXRlIiwiRWRpdCIsIlJlZnJlc2hUaXRsZSIsIlJlZnJlc2hUb2FzdCIsIkNvbW1hbmRzIiwibmV3IiwibmV3bSIsIm5leHQiLCJwcmV2IiwiY2xlYXIiLCJkZWwiLCJJbnB1dEFjdGlvbnMiLCJUb0JvdHRvbSIsIlRoZW1lIiwiYXV0byIsImxpZ2h0IiwiZGFyayIsIlByb21wdCIsIk1hc2tzIiwiQ2xlYXIiLCJTZXR0aW5ncyIsIlVwbG9hZEltYWdlIiwiUmVuYW1lIiwiVHlwaW5nIiwic3VibWl0S2V5IiwiaW5wdXRIaW50cyIsIlN0cmluZyIsIkVudGVyIiwiU2VuZCIsIkNvbmZpZyIsIlJlc2V0IiwiU2F2ZUFzIiwiSXNDb250ZXh0IiwiRG93bmxvYWQiLCJTaGFyZSIsIk1lc3NhZ2VGcm9tWW91IiwiTWVzc2FnZUZyb21DaGF0R1BUIiwiRm9ybWF0IiwiSW5jbHVkZUNvbnRleHQiLCJTdGVwcyIsIlNlbGVjdCIsIlByZXZpZXciLCJJbWFnZSIsIlRvYXN0IiwiTW9kYWwiLCJTZWFyY2giLCJBbGwiLCJMYXRlc3QiLCJNZW1vcnkiLCJFbXB0eUNvbnRlbnQiLCJSZXNldENvbmZpcm0iLCJIb21lIiwiTmV3Q2hhdCIsIkRlbGV0ZUNoYXQiLCJEZWxldGVUb2FzdCIsIlJldmVydCIsIkRhbmdlciIsIkFjdGlvbiIsIkxhbmciLCJOYW1lIiwiQXZhdGFyIiwiRm9udFNpemUiLCJGb250RmFtaWx5IiwiUGxhY2Vob2xkZXIiLCJJbmplY3RTeXN0ZW1Qcm9tcHRzIiwiSW5wdXRUZW1wbGF0ZSIsIlVwZGF0ZSIsIlZlcnNpb24iLCJ4IiwiSXNMYXRlc3QiLCJDaGVja1VwZGF0ZSIsIklzQ2hlY2tpbmciLCJGb3VuZFVwZGF0ZSIsIkdvVG9VcGRhdGUiLCJTZW5kS2V5IiwiVGlnaHRCb3JkZXIiLCJTZW5kUHJldmlld0J1YmJsZSIsIkF1dG9HZW5lcmF0ZVRpdGxlIiwiU3luYyIsIkNsb3VkU3RhdGUiLCJOb3RTeW5jWWV0IiwiU3VjY2VzcyIsIkZhaWwiLCJDaGVjayIsIlN5bmNUeXBlIiwiUHJveHkiLCJQcm94eVVybCIsIldlYkRhdiIsIkVuZHBvaW50IiwiVXNlck5hbWUiLCJQYXNzd29yZCIsIlVwU3Rhc2giLCJMb2NhbFN0YXRlIiwiT3ZlcnZpZXciLCJvdmVydmlldyIsImNoYXQiLCJtZXNzYWdlIiwicHJvbXB0IiwibWFzayIsIkltcG9ydEZhaWxlZCIsIk1hc2siLCJTcGxhc2giLCJCdWlsdGluIiwiRGlzYWJsZSIsIkxpc3QiLCJMaXN0Q291bnQiLCJidWlsdGluIiwiY3VzdG9tIiwiQWRkIiwiRWRpdE1vZGFsIiwiSGlzdG9yeUNvdW50IiwiQ29tcHJlc3NUaHJlc2hvbGQiLCJVc2FnZSIsInVzZWQiLCJ0b3RhbCIsIk5vQWNjZXNzIiwiQWNjZXNzIiwiU2Fhc1N0YXJ0IiwiTGFiZWwiLCJDaGF0Tm93IiwiQWNjZXNzQ29kZSIsIkN1c3RvbUVuZHBvaW50IiwiUHJvdmlkZXIiLCJPcGVuQUkiLCJBcGlLZXkiLCJBenVyZSIsIkFwaVZlcmlvbiIsIkFudGhyb3BpYyIsIkdvb2dsZSIsIkFwaVZlcnNpb24iLCJHb29nbGVTYWZldHlTZXR0aW5ncyIsIkJhaWR1IiwiU2VjcmV0S2V5IiwiQnl0ZURhbmNlIiwiQWxpYmFiYSIsIkN1c3RvbU1vZGVsIiwiTW9kZWwiLCJDb21wcmVzc01vZGVsIiwiVGVtcGVyYXR1cmUiLCJUb3BQIiwiTWF4VG9rZW5zIiwiUHJlc2VuY2VQZW5hbHR5IiwiRnJlcXVlbmN5UGVuYWx0eSIsIlN0b3JlIiwiRGVmYXVsdFRvcGljIiwiQm90SGVsbG8iLCJIaXN0b3J5IiwiY29udGVudCIsIlN1bW1hcml6ZSIsIkZhaWxlZCIsIkNvbnRleHQiLCJQbHVnaW4iLCJGaW5lVHVuZWQiLCJTeXNtZXNzYWdlIiwiU2VhcmNoQ2hhdCIsIlBhZ2UiLCJOb1Jlc3VsdCIsIk5vRGF0YSIsIkxvYWRpbmciLCJJdGVtIiwiVmlldyIsIkNyZWF0ZSIsIkluZm8iLCJEZWxldGVDb25maXJtIiwicmVhZG9ubHkiLCJDbG9uZSIsIkhpZGVDb250ZXh0IiwiU2tpcCIsIk5vdFNob3ciLCJDb25maXJtTm9TaG93IiwiTW9yZSIsIlVSTENvbW1hbmQiLCJDb2RlIiwiVUkiLCJDYW5jZWwiLCJDbG9zZSIsIkltcG9ydCIsIkV4cG9ydGVyIiwiRGVzY3JpcHRpb24iLCJNZXNzYWdlcyIsIlRpbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/locales/bn.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/locales/cn.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/locales/cn.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _store_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../store/config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n\n\n\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_0__.getClientConfig)()?.isApp;\nconst cn = {\n WIP: \"该功能仍在开发中……\",\n Error: {\n Unauthorized: isApp ? `😆 对话遇到了一些问题,不用慌:\r\n \\\\ 1️⃣ 想要零配置开箱即用,[点击这里立刻开启对话 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\\\ 2️⃣ 如果你想消耗自己的 OpenAI 资源,点击[这里](/#/settings)修改设置 ⚙️` : `😆 对话遇到了一些问题,不用慌:\r\n \\ 1️⃣ 想要零配置开箱即用,[点击这里立刻开启对话 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\ 2️⃣ 如果你正在使用私有部署版本,点击[这里](/#/auth)输入访问秘钥 🔑\r\n \\ 3️⃣ 如果你想消耗自己的 OpenAI 资源,点击[这里](/#/settings)修改设置 ⚙️\r\n `\n },\n Auth: {\n Return: \"返回\",\n Title: \"需要密码\",\n Tips: \"管理员开启了密码验证,请在下方填入访问码\",\n SubTips: \"或者输入你的 OpenAI 或 Google AI 密钥\",\n Input: \"在此处填写访问码\",\n Confirm: \"确认\",\n Later: \"稍后再说\",\n SaasTips: \"配置太麻烦,想要立即使用\",\n TopTips: \"\\uD83E\\uDD73 NextChat AI 首发优惠,立刻解锁 OpenAI o1, GPT-4o, Claude-3.5 等最新大模型\"\n },\n ChatItem: {\n ChatItemCount: (count)=>`${count} 条对话`\n },\n Chat: {\n SubTitle: (count)=>`共 ${count} 条对话`,\n EditMessage: {\n Title: \"编辑消息记录\",\n Topic: {\n Title: \"聊天主题\",\n SubTitle: \"更改当前聊天主题\"\n }\n },\n Actions: {\n ChatList: \"查看消息列表\",\n CompressedHistory: \"查看压缩后的历史 Prompt\",\n Export: \"导出聊天记录\",\n Copy: \"复制\",\n Stop: \"停止\",\n Retry: \"重试\",\n Pin: \"固定\",\n PinToastContent: \"已将 1 条对话固定至预设提示词\",\n PinToastAction: \"查看\",\n Delete: \"删除\",\n Edit: \"编辑\",\n FullScreen: \"全屏\",\n RefreshTitle: \"刷新标题\",\n RefreshToast: \"已发送刷新标题请求\",\n Speech: \"朗读\",\n StopSpeech: \"停止\"\n },\n Commands: {\n new: \"新建聊天\",\n newm: \"从面具新建聊天\",\n next: \"下一个聊天\",\n prev: \"上一个聊天\",\n clear: \"清除上下文\",\n fork: \"复制聊天\",\n del: \"删除聊天\"\n },\n InputActions: {\n Stop: \"停止响应\",\n ToBottom: \"滚到最新\",\n Theme: {\n auto: \"自动主题\",\n light: \"亮色模式\",\n dark: \"深色模式\"\n },\n Prompt: \"快捷指令\",\n Masks: \"所有面具\",\n Clear: \"清除聊天\",\n Settings: \"对话设置\",\n UploadImage: \"上传图片\"\n },\n Rename: \"重命名对话\",\n Typing: \"正在输入…\",\n Input: (submitKey)=>{\n var inputHints = `${submitKey} 发送`;\n if (submitKey === String(_store_config__WEBPACK_IMPORTED_MODULE_1__.SubmitKey.Enter)) {\n inputHints += \",Shift + Enter 换行\";\n }\n return inputHints + \",/ 触发补全,: 触发命令\";\n },\n Send: \"发送\",\n StartSpeak: \"说话\",\n StopSpeak: \"停止\",\n Config: {\n Reset: \"清除记忆\",\n SaveAs: \"存为面具\"\n },\n IsContext: \"预设提示词\",\n ShortcutKey: {\n Title: \"键盘快捷方式\",\n newChat: \"打开新聊天\",\n focusInput: \"聚焦输入框\",\n copyLastMessage: \"复制最后一个回复\",\n copyLastCode: \"复制最后一个代码块\",\n showShortcutKey: \"显示快捷方式\",\n clearContext: \"清除上下文\"\n }\n },\n Export: {\n Title: \"分享聊天记录\",\n Copy: \"全部复制\",\n Download: \"下载文件\",\n Share: \"分享到 ShareGPT\",\n MessageFromYou: \"用户\",\n MessageFromChatGPT: \"ChatGPT\",\n Format: {\n Title: \"导出格式\",\n SubTitle: \"可以导出 Markdown 文本或者 PNG 图片\"\n },\n IncludeContext: {\n Title: \"包含面具上下文\",\n SubTitle: \"是否在消息中展示面具上下文\"\n },\n Steps: {\n Select: \"选取\",\n Preview: \"预览\"\n },\n Image: {\n Toast: \"正在生成截图\",\n Modal: \"长按或右键保存图片\"\n },\n Artifacts: {\n Title: \"分享页面\",\n Error: \"分享失败\"\n }\n },\n Select: {\n Search: \"搜索消息\",\n All: \"选取全部\",\n Latest: \"最近几条\",\n Clear: \"清除选中\"\n },\n Memory: {\n Title: \"历史摘要\",\n EmptyContent: \"对话内容过短,无需总结\",\n Send: \"自动压缩聊天记录并作为上下文发送\",\n Copy: \"复制摘要\",\n Reset: \"[unused]\",\n ResetConfirm: \"确认清空历史摘要?\"\n },\n Home: {\n NewChat: \"新的聊天\",\n DeleteChat: \"确认删除选中的对话?\",\n DeleteToast: \"已删除会话\",\n Revert: \"撤销\"\n },\n Settings: {\n Title: \"设置\",\n SubTitle: \"所有设置选项\",\n ShowPassword: \"显示密码\",\n Danger: {\n Reset: {\n Title: \"重置所有设置\",\n SubTitle: \"重置所有设置项回默认值\",\n Action: \"立即重置\",\n Confirm: \"确认重置所有设置?\"\n },\n Clear: {\n Title: \"清除所有数据\",\n SubTitle: \"清除所有聊天、设置数据\",\n Action: \"立即清除\",\n Confirm: \"确认清除所有聊天、设置数据?\"\n }\n },\n Lang: {\n Name: \"Language\",\n All: \"所有语言\"\n },\n Avatar: \"头像\",\n FontSize: {\n Title: \"字体大小\",\n SubTitle: \"聊天内容的字体大小\"\n },\n FontFamily: {\n Title: \"聊天字体\",\n SubTitle: \"聊天内容的字体,若置空则应用全局默认字体\",\n Placeholder: \"字体名称\"\n },\n InjectSystemPrompts: {\n Title: \"注入系统级提示信息\",\n SubTitle: \"强制给每次请求的消息列表开头添加一个模拟 ChatGPT 的系统提示\"\n },\n InputTemplate: {\n Title: \"用户输入预处理\",\n SubTitle: \"用户最新的一条消息会填充到此模板\"\n },\n Update: {\n Version: (x)=>`当前版本:${x}`,\n IsLatest: \"已是最新版本\",\n CheckUpdate: \"检查更新\",\n IsChecking: \"正在检查更新...\",\n FoundUpdate: (x)=>`发现新版本:${x}`,\n GoToUpdate: \"前往更新\",\n Success: \"更新成功!\",\n Failed: \"更新失败\"\n },\n SendKey: \"发送键\",\n Theme: \"主题\",\n TightBorder: \"无边框模式\",\n SendPreviewBubble: {\n Title: \"预览气泡\",\n SubTitle: \"在预览气泡中预览 Markdown 内容\"\n },\n AutoGenerateTitle: {\n Title: \"自动生成标题\",\n SubTitle: \"根据对话内容生成合适的标题\"\n },\n Sync: {\n CloudState: \"云端数据\",\n NotSyncYet: \"还没有进行过同步\",\n Success: \"同步成功\",\n Fail: \"同步失败\",\n Config: {\n Modal: {\n Title: \"配置云同步\",\n Check: \"检查可用性\"\n },\n SyncType: {\n Title: \"同步类型\",\n SubTitle: \"选择喜爱的同步服务器\"\n },\n Proxy: {\n Title: \"启用代理\",\n SubTitle: \"在浏览器中同步时,必须启用代理以避免跨域限制\"\n },\n ProxyUrl: {\n Title: \"代理地址\",\n SubTitle: \"仅适用于本项目自带的跨域代理\"\n },\n WebDav: {\n Endpoint: \"WebDAV 地址\",\n UserName: \"用户名\",\n Password: \"密码\"\n },\n UpStash: {\n Endpoint: \"UpStash Redis REST Url\",\n UserName: \"备份名称\",\n Password: \"UpStash Redis REST Token\"\n }\n },\n LocalState: \"本地数据\",\n Overview: (overview)=>{\n return `${overview.chat} 次对话,${overview.message} 条消息,${overview.prompt} 条提示词,${overview.mask} 个面具`;\n },\n ImportFailed: \"导入失败\"\n },\n Mask: {\n Splash: {\n Title: \"面具启动页\",\n SubTitle: \"新建聊天时,展示面具启动页\"\n },\n Builtin: {\n Title: \"隐藏内置面具\",\n SubTitle: \"在所有面具列表中隐藏内置面具\"\n }\n },\n Prompt: {\n Disable: {\n Title: \"禁用提示词自动补全\",\n SubTitle: \"在输入框开头输入 / 即可触发自动补全\"\n },\n List: \"自定义提示词列表\",\n ListCount: (builtin, custom)=>`内置 ${builtin} 条,用户定义 ${custom} 条`,\n Edit: \"编辑\",\n Modal: {\n Title: \"提示词列表\",\n Add: \"新建\",\n Search: \"搜索提示词\"\n },\n EditModal: {\n Title: \"编辑提示词\"\n }\n },\n HistoryCount: {\n Title: \"附带历史消息数\",\n SubTitle: \"每次请求携带的历史消息数\"\n },\n CompressThreshold: {\n Title: \"历史消息长度压缩阈值\",\n SubTitle: \"当未压缩的历史消息超过该值时,将进行压缩\"\n },\n Usage: {\n Title: \"余额查询\",\n SubTitle (used, total) {\n return `本月已使用 $${used},订阅总额 $${total}`;\n },\n IsChecking: \"正在检查…\",\n Check: \"重新检查\",\n NoAccess: \"输入 API Key 或访问密码查看余额\"\n },\n Access: {\n SaasStart: {\n Title: \"使用 NextChat AI\",\n Label: \"(性价比最高的方案)\",\n SubTitle: \"由 NextChat 官方维护, 零配置开箱即用,支持 OpenAI o1, GPT-4o, Claude-3.5 等最新大模型\",\n ChatNow: \"立刻对话\"\n },\n AccessCode: {\n Title: \"访问密码\",\n SubTitle: \"管理员已开启加密访问\",\n Placeholder: \"请输入访问密码\"\n },\n CustomEndpoint: {\n Title: \"自定义接口\",\n SubTitle: \"是否使用自定义 Azure 或 OpenAI 服务\"\n },\n Provider: {\n Title: \"模型服务商\",\n SubTitle: \"切换不同的服务商\"\n },\n OpenAI: {\n ApiKey: {\n Title: \"API Key\",\n SubTitle: \"使用自定义 OpenAI Key 绕过密码访问限制\",\n Placeholder: \"OpenAI API Key\"\n },\n Endpoint: {\n Title: \"接口地址\",\n SubTitle: \"除默认地址外,必须包含 http(s)://\"\n }\n },\n Azure: {\n ApiKey: {\n Title: \"接口密钥\",\n SubTitle: \"使用自定义 Azure Key 绕过密码访问限制\",\n Placeholder: \"Azure API Key\"\n },\n Endpoint: {\n Title: \"接口地址\",\n SubTitle: \"样例:\"\n },\n ApiVerion: {\n Title: \"接口版本 (azure api version)\",\n SubTitle: \"选择指定的部分版本\"\n }\n },\n Anthropic: {\n ApiKey: {\n Title: \"接口密钥\",\n SubTitle: \"使用自定义 Anthropic Key 绕过密码访问限制\",\n Placeholder: \"Anthropic API Key\"\n },\n Endpoint: {\n Title: \"接口地址\",\n SubTitle: \"样例:\"\n },\n ApiVerion: {\n Title: \"接口版本 (claude api version)\",\n SubTitle: \"选择一个特定的 API 版本输入\"\n }\n },\n Google: {\n ApiKey: {\n Title: \"API 密钥\",\n SubTitle: \"从 Google AI 获取您的 API 密钥\",\n Placeholder: \"Google AI API KEY\"\n },\n Endpoint: {\n Title: \"终端地址\",\n SubTitle: \"示例:\"\n },\n ApiVersion: {\n Title: \"API 版本(仅适用于 gemini-pro)\",\n SubTitle: \"选择一个特定的 API 版本\"\n },\n GoogleSafetySettings: {\n Title: \"Google 安全过滤级别\",\n SubTitle: \"设置内容过滤级别\"\n }\n },\n Baidu: {\n ApiKey: {\n Title: \"API Key\",\n SubTitle: \"使用自定义 Baidu API Key\",\n Placeholder: \"Baidu API Key\"\n },\n SecretKey: {\n Title: \"Secret Key\",\n SubTitle: \"使用自定义 Baidu Secret Key\",\n Placeholder: \"Baidu Secret Key\"\n },\n Endpoint: {\n Title: \"接口地址\",\n SubTitle: \"不支持自定义前往.env配置\"\n }\n },\n Tencent: {\n ApiKey: {\n Title: \"API Key\",\n SubTitle: \"使用自定义腾讯云API Key\",\n Placeholder: \"Tencent API Key\"\n },\n SecretKey: {\n Title: \"Secret Key\",\n SubTitle: \"使用自定义腾讯云Secret Key\",\n Placeholder: \"Tencent Secret Key\"\n },\n Endpoint: {\n Title: \"接口地址\",\n SubTitle: \"不支持自定义前往.env配置\"\n }\n },\n ByteDance: {\n ApiKey: {\n Title: \"接口密钥\",\n SubTitle: \"使用自定义 ByteDance API Key\",\n Placeholder: \"ByteDance API Key\"\n },\n Endpoint: {\n Title: \"接口地址\",\n SubTitle: \"样例:\"\n }\n },\n Alibaba: {\n ApiKey: {\n Title: \"接口密钥\",\n SubTitle: \"使用自定义阿里云API Key\",\n Placeholder: \"Alibaba Cloud API Key\"\n },\n Endpoint: {\n Title: \"接口地址\",\n SubTitle: \"样例:\"\n }\n },\n Moonshot: {\n ApiKey: {\n Title: \"接口密钥\",\n SubTitle: \"使用自定义月之暗面API Key\",\n Placeholder: \"Moonshot API Key\"\n },\n Endpoint: {\n Title: \"接口地址\",\n SubTitle: \"样例:\"\n }\n },\n DeepSeek: {\n ApiKey: {\n Title: \"接口密钥\",\n SubTitle: \"使用自定义DeepSeek API Key\",\n Placeholder: \"DeepSeek API Key\"\n },\n Endpoint: {\n Title: \"接口地址\",\n SubTitle: \"样例:\"\n }\n },\n XAI: {\n ApiKey: {\n Title: \"接口密钥\",\n SubTitle: \"使用自定义XAI API Key\",\n Placeholder: \"XAI API Key\"\n },\n Endpoint: {\n Title: \"接口地址\",\n SubTitle: \"样例:\"\n }\n },\n ChatGLM: {\n ApiKey: {\n Title: \"接口密钥\",\n SubTitle: \"使用自定义 ChatGLM API Key\",\n Placeholder: \"ChatGLM API Key\"\n },\n Endpoint: {\n Title: \"接口地址\",\n SubTitle: \"样例:\"\n }\n },\n SiliconFlow: {\n ApiKey: {\n Title: \"接口密钥\",\n SubTitle: \"使用自定义硅基流动 API Key\",\n Placeholder: \"硅基流动 API Key\"\n },\n Endpoint: {\n Title: \"接口地址\",\n SubTitle: \"样例:\"\n }\n },\n Stability: {\n ApiKey: {\n Title: \"接口密钥\",\n SubTitle: \"使用自定义 Stability API Key\",\n Placeholder: \"Stability API Key\"\n },\n Endpoint: {\n Title: \"接口地址\",\n SubTitle: \"样例:\"\n }\n },\n Iflytek: {\n ApiKey: {\n Title: \"ApiKey\",\n SubTitle: \"从讯飞星火控制台获取的 APIKey\",\n Placeholder: \"APIKey\"\n },\n ApiSecret: {\n Title: \"ApiSecret\",\n SubTitle: \"从讯飞星火控制台获取的 APISecret\",\n Placeholder: \"APISecret\"\n },\n Endpoint: {\n Title: \"接口地址\",\n SubTitle: \"样例:\"\n }\n },\n CustomModel: {\n Title: \"自定义模型名\",\n SubTitle: \"增加自定义模型可选项,使用英文逗号隔开\"\n }\n },\n Model: \"模型 (model)\",\n CompressModel: {\n Title: \"对话摘要模型\",\n SubTitle: \"用于压缩历史记录、生成对话标题的模型\"\n },\n Temperature: {\n Title: \"随机性 (temperature)\",\n SubTitle: \"值越大,回复越随机\"\n },\n TopP: {\n Title: \"核采样 (top_p)\",\n SubTitle: \"与随机性类似,但不要和随机性一起更改\"\n },\n MaxTokens: {\n Title: \"单次回复限制 (max_tokens)\",\n SubTitle: \"单次交互所用的最大 Token 数\"\n },\n PresencePenalty: {\n Title: \"话题新鲜度 (presence_penalty)\",\n SubTitle: \"值越大,越有可能扩展到新话题\"\n },\n FrequencyPenalty: {\n Title: \"频率惩罚度 (frequency_penalty)\",\n SubTitle: \"值越大,越有可能降低重复字词\"\n },\n TTS: {\n Enable: {\n Title: \"启用文本转语音\",\n SubTitle: \"启用文本生成语音服务\"\n },\n Autoplay: {\n Title: \"启用自动朗读\",\n SubTitle: \"自动生成语音并播放,需先开启文本转语音开关\"\n },\n Model: \"模型\",\n Engine: \"转换引擎\",\n Voice: {\n Title: \"声音\",\n SubTitle: \"生成语音时使用的声音\"\n },\n Speed: {\n Title: \"速度\",\n SubTitle: \"生成语音的速度\"\n }\n },\n Realtime: {\n Enable: {\n Title: \"实时聊天\",\n SubTitle: \"开启实时聊天功能\"\n },\n Provider: {\n Title: \"模型服务商\",\n SubTitle: \"切换不同的服务商\"\n },\n Model: {\n Title: \"模型\",\n SubTitle: \"选择一个模型\"\n },\n ApiKey: {\n Title: \"API Key\",\n SubTitle: \"API Key\",\n Placeholder: \"API Key\"\n },\n Azure: {\n Endpoint: {\n Title: \"接口地址\",\n SubTitle: \"接口地址\"\n },\n Deployment: {\n Title: \"部署名称\",\n SubTitle: \"部署名称\"\n }\n },\n Temperature: {\n Title: \"随机性 (temperature)\",\n SubTitle: \"值越大,回复越随机\"\n }\n }\n },\n Store: {\n DefaultTopic: \"新的聊天\",\n BotHello: \"有什么可以帮你的吗\",\n Error: \"出错了,稍后重试吧\",\n Prompt: {\n History: (content)=>\"这是历史聊天总结作为前情提要:\" + content,\n Topic: \"使用四到五个字直接返回这句话的简要主题,不要解释、不要标点、不要语气词、不要多余文本,不要加粗,如果没有主题,请直接返回“闲聊”\",\n Summarize: \"简要总结一下对话内容,用作后续的上下文提示 prompt,控制在 200 字以内\"\n }\n },\n Copy: {\n Success: \"已写入剪贴板\",\n Failed: \"复制失败,请赋予剪贴板权限\"\n },\n Download: {\n Success: \"内容已下载到您的目录。\",\n Failed: \"下载失败。\"\n },\n Context: {\n Toast: (x)=>`包含 ${x} 条预设提示词`,\n Edit: \"当前对话设置\",\n Add: \"新增一条对话\",\n Clear: \"上下文已清除\",\n Revert: \"恢复上下文\"\n },\n Discovery: {\n Name: \"发现\"\n },\n Mcp: {\n Name: \"MCP\"\n },\n FineTuned: {\n Sysmessage: \"你是一个助手\"\n },\n SearchChat: {\n Name: \"搜索聊天记录\",\n Page: {\n Title: \"搜索聊天记录\",\n Search: \"输入搜索关键词\",\n NoResult: \"没有找到结果\",\n NoData: \"没有数据\",\n Loading: \"加载中\",\n SubTitle: (count)=>`搜索到 ${count} 条结果`\n },\n Item: {\n View: \"查看\"\n }\n },\n Plugin: {\n Name: \"插件\",\n Page: {\n Title: \"插件\",\n SubTitle: (count)=>`${count} 个插件`,\n Search: \"搜索插件\",\n Create: \"新建\",\n Find: \"您可以在Github上找到优秀的插件:\"\n },\n Item: {\n Info: (count)=>`${count} 方法`,\n View: \"查看\",\n Edit: \"编辑\",\n Delete: \"删除\",\n DeleteConfirm: \"确认删除?\"\n },\n Auth: {\n None: \"不需要授权\",\n Basic: \"Basic\",\n Bearer: \"Bearer\",\n Custom: \"自定义\",\n CustomHeader: \"自定义参数名称\",\n Token: \"Token\",\n Proxy: \"使用代理\",\n ProxyDescription: \"使用代理解决 CORS 错误\",\n Location: \"位置\",\n LocationHeader: \"Header\",\n LocationQuery: \"Query\",\n LocationBody: \"Body\"\n },\n EditModal: {\n Title: (readonly)=>`编辑插件 ${readonly ? \"(只读)\" : \"\"}`,\n Download: \"下载\",\n Auth: \"授权方式\",\n Content: \"OpenAPI Schema\",\n Load: \"从网页加载\",\n Method: \"方法\",\n Error: \"格式错误\"\n }\n },\n Mask: {\n Name: \"面具\",\n Page: {\n Title: \"预设角色面具\",\n SubTitle: (count)=>`${count} 个预设角色定义`,\n Search: \"搜索角色面具\",\n Create: \"新建\"\n },\n Item: {\n Info: (count)=>`包含 ${count} 条预设对话`,\n Chat: \"对话\",\n View: \"查看\",\n Edit: \"编辑\",\n Delete: \"删除\",\n DeleteConfirm: \"确认删除?\"\n },\n EditModal: {\n Title: (readonly)=>`编辑预设面具 ${readonly ? \"(只读)\" : \"\"}`,\n Download: \"下载预设\",\n Clone: \"克隆预设\"\n },\n Config: {\n Avatar: \"角色头像\",\n Name: \"角色名称\",\n Sync: {\n Title: \"使用全局设置\",\n SubTitle: \"当前对话是否使用全局模型设置\",\n Confirm: \"当前对话的自定义设置将会被自动覆盖,确认启用全局设置?\"\n },\n HideContext: {\n Title: \"隐藏预设对话\",\n SubTitle: \"隐藏后预设对话不会出现在聊天界面\"\n },\n Artifacts: {\n Title: \"启用Artifacts\",\n SubTitle: \"启用之后可以直接渲染HTML页面\"\n },\n CodeFold: {\n Title: \"启用代码折叠\",\n SubTitle: \"启用之后可以自动折叠/展开过长的代码块\"\n },\n Share: {\n Title: \"分享此面具\",\n SubTitle: \"生成此面具的直达链接\",\n Action: \"复制链接\"\n }\n }\n },\n NewChat: {\n Return: \"返回\",\n Skip: \"直接开始\",\n NotShow: \"不再展示\",\n ConfirmNoShow: \"确认禁用?禁用后可以随时在设置中重新启用。\",\n Title: \"挑选一个面具\",\n SubTitle: \"现在开始,与面具背后的灵魂思维碰撞\",\n More: \"查看全部\"\n },\n URLCommand: {\n Code: \"检测到链接中已经包含访问码,是否自动填入?\",\n Settings: \"检测到链接中包含了预制设置,是否自动填入?\"\n },\n UI: {\n Confirm: \"确认\",\n Cancel: \"取消\",\n Close: \"关闭\",\n Create: \"新建\",\n Edit: \"编辑\",\n Export: \"导出\",\n Import: \"导入\",\n Sync: \"同步\",\n Config: \"配置\"\n },\n Exporter: {\n Description: {\n Title: \"只有清除上下文之后的消息会被展示\"\n },\n Model: \"模型\",\n Messages: \"消息\",\n Topic: \"主题\",\n Time: \"时间\"\n },\n SdPanel: {\n Prompt: \"画面提示\",\n NegativePrompt: \"否定提示\",\n PleaseInput: (name)=>`请输入${name}`,\n AspectRatio: \"横纵比\",\n ImageStyle: \"图像风格\",\n OutFormat: \"输出格式\",\n AIModel: \"AI模型\",\n ModelVersion: \"模型版本\",\n Submit: \"提交生成\",\n ParamIsRequired: (name)=>`${name}不能为空`,\n Styles: {\n D3Model: \"3D模型\",\n AnalogFilm: \"模拟电影\",\n Anime: \"动漫\",\n Cinematic: \"电影风格\",\n ComicBook: \"漫画书\",\n DigitalArt: \"数字艺术\",\n Enhance: \"增强\",\n FantasyArt: \"幻想艺术\",\n Isometric: \"等角\",\n LineArt: \"线描\",\n LowPoly: \"低多边形\",\n ModelingCompound: \"建模材料\",\n NeonPunk: \"霓虹朋克\",\n Origami: \"折纸\",\n Photographic: \"摄影\",\n PixelArt: \"像素艺术\",\n TileTexture: \"贴图\"\n }\n },\n Sd: {\n SubTitle: (count)=>`共 ${count} 条绘画`,\n Actions: {\n Params: \"查看参数\",\n Copy: \"复制提示词\",\n Delete: \"删除\",\n Retry: \"重试\",\n ReturnHome: \"返回首页\",\n History: \"查看历史\"\n },\n EmptyRecord: \"暂无绘画记录\",\n Status: {\n Name: \"状态\",\n Success: \"成功\",\n Error: \"失败\",\n Wait: \"等待中\",\n Running: \"运行中\"\n },\n Danger: {\n Delete: \"确认删除?\"\n },\n GenerateParams: \"生成参数\",\n Detail: \"详情\"\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (cn);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q1JDLGFBQWE7WUFDWDdQLE9BQU87UUFDVDtRQUNBMEwsT0FBTztRQUNQb0UsVUFBVTtRQUNWaFAsT0FBTztRQUNQaVAsTUFBTTtJQUNSO0lBQ0FDLFNBQVM7UUFDUGxOLFFBQVE7UUFDUm1OLGdCQUFnQjtRQUNoQkMsYUFBYSxDQUFDQyxPQUFpQixDQUFDLEdBQUcsRUFBRUEsS0FBSyxDQUFDO1FBQzNDQyxhQUFhO1FBQ2JDLFlBQVk7UUFDWkMsV0FBVztRQUNYQyxTQUFTO1FBQ1RDLGNBQWM7UUFDZEMsUUFBUTtRQUNSQyxpQkFBaUIsQ0FBQ1AsT0FBaUIsQ0FBQyxFQUFFQSxLQUFLLElBQUksQ0FBQztRQUNoRFEsUUFBUTtZQUNOQyxTQUFTO1lBQ1RDLFlBQVk7WUFDWkMsT0FBTztZQUNQQyxXQUFXO1lBQ1hDLFdBQVc7WUFDWEMsWUFBWTtZQUNaQyxTQUFTO1lBQ1RDLFlBQVk7WUFDWkMsV0FBVztZQUNYQyxTQUFTO1lBQ1RDLFNBQVM7WUFDVEMsa0JBQWtCO1lBQ2xCQyxVQUFVO1lBQ1ZDLFNBQVM7WUFDVEMsY0FBYztZQUNkQyxVQUFVO1lBQ1ZDLGFBQWE7UUFDZjtJQUNGO0lBQ0FDLElBQUk7UUFDRmpSLFVBQVUsQ0FBQ0YsUUFBa0IsQ0FBQyxFQUFFLEVBQUVBLE1BQU0sSUFBSSxDQUFDO1FBQzdDSyxTQUFTO1lBQ1ArUSxRQUFRO1lBQ1IzUSxNQUFNO1lBQ05NLFFBQVE7WUFDUkosT0FBTztZQUNQMFEsWUFBWTtZQUNabkYsU0FBUztRQUNYO1FBQ0FvRixhQUFhO1FBQ2JDLFFBQVE7WUFDTjlMLE1BQU07WUFDTmUsU0FBUztZQUNUdEgsT0FBTztZQUNQc1MsTUFBTTtZQUNOQyxTQUFTO1FBQ1g7UUFDQW5NLFFBQVE7WUFDTnZFLFFBQVE7UUFDVjtRQUNBMlEsZ0JBQWdCO1FBQ2hCQyxRQUFRO0lBQ1Y7QUFDRjtBQVdBLGlFQUFlM1MsRUFBRUEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2xvY2FsZXMvY24udHM/NWU2NyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRDbGllbnRDb25maWcgfSBmcm9tIFwiLi4vY29uZmlnL2NsaWVudFwiO1xyXG5pbXBvcnQgeyBTdWJtaXRLZXkgfSBmcm9tIFwiLi4vc3RvcmUvY29uZmlnXCI7XHJcbmltcG9ydCB7IFNBQVNfQ0hBVF9VVE1fVVJMIH0gZnJvbSBcIkAvYXBwL2NvbnN0YW50XCI7XHJcblxyXG5jb25zdCBpc0FwcCA9ICEhZ2V0Q2xpZW50Q29uZmlnKCk/LmlzQXBwO1xyXG5cclxuY29uc3QgY24gPSB7XHJcbiAgV0lQOiBcIuivpeWKn+iDveS7jeWcqOW8gOWPkeS4reKApuKAplwiLFxyXG4gIEVycm9yOiB7XHJcbiAgICBVbmF1dGhvcml6ZWQ6IGlzQXBwXHJcbiAgICAgID8gYPCfmIYg5a+56K+d6YGH5Yiw5LqG5LiA5Lqb6Zeu6aKY77yM5LiN55So5oWMOlxyXG4gICAgICAgXFxcXCAx77iP4oOjIOaDs+imgembtumFjee9ruW8gOeuseWNs+eUqO+8jFvngrnlh7vov5nph4znq4vliLvlvIDlkK/lr7nor50g8J+agF0oJHtTQUFTX0NIQVRfVVRNX1VSTH0pXHJcbiAgICAgICBcXFxcIDLvuI/ig6Mg5aaC5p6c5L2g5oOz5raI6ICX6Ieq5bex55qEIE9wZW5BSSDotYTmupDvvIzngrnlh7tb6L+Z6YeMXSgvIy9zZXR0aW5ncynkv67mlLnorr7nva4g4pqZ77iPYFxyXG4gICAgICA6IGDwn5iGIOWvueivnemBh+WIsOS6huS4gOS6m+mXrumimO+8jOS4jeeUqOaFjDpcclxuICAgICAgIFxcIDHvuI/ig6Mg5oOz6KaB6Zu26YWN572u5byA566x5Y2z55So77yMW+eCueWHu+i/memHjOeri+WIu+W8gOWQr+WvueivnSDwn5qAXSgke1NBQVNfQ0hBVF9VVE1fVVJMfSlcclxuICAgICAgIFxcIDLvuI/ig6Mg5aaC5p6c5L2g5q2j5Zyo5L2/55So56eB5pyJ6YOo572y54mI5pys77yM54K55Ye7W+i/memHjF0oLyMvYXV0aCnovpPlhaXorr/pl67np5jpkqUg8J+UkVxyXG4gICAgICAgXFwgM++4j+KDoyDlpoLmnpzkvaDmg7PmtojogJfoh6rlt7HnmoQgT3BlbkFJIOi1hOa6kO+8jOeCueWHu1vov5nph4xdKC8jL3NldHRpbmdzKeS/ruaUueiuvue9riDimpnvuI9cclxuICAgICAgIGAsXHJcbiAgfSxcclxuICBBdXRoOiB7XHJcbiAgICBSZXR1cm46IFwi6L+U5ZueXCIsXHJcbiAgICBUaXRsZTogXCLpnIDopoHlr4bnoIFcIixcclxuICAgIFRpcHM6IFwi566h55CG5ZGY5byA5ZCv5LqG5a+G56CB6aqM6K+B77yM6K+35Zyo5LiL5pa55aGr5YWl6K6/6Zeu56CBXCIsXHJcbiAgICBTdWJUaXBzOiBcIuaIluiAhei+k+WFpeS9oOeahCBPcGVuQUkg5oiWIEdvb2dsZSBBSSDlr4bpkqVcIixcclxuICAgIElucHV0OiBcIuWcqOatpOWkhOWhq+WGmeiuv+mXrueggVwiLFxyXG4gICAgQ29uZmlybTogXCLnoa7orqRcIixcclxuICAgIExhdGVyOiBcIueojeWQjuWGjeivtFwiLFxyXG4gICAgU2Fhc1RpcHM6IFwi6YWN572u5aSq6bq754Om77yM5oOz6KaB56uL5Y2z5L2/55SoXCIsXHJcbiAgICBUb3BUaXBzOlxyXG4gICAgICBcIvCfpbMgTmV4dENoYXQgQUkg6aaW5Y+R5LyY5oOg77yM56uL5Yi76Kej6ZSBIE9wZW5BSSBvMSwgR1BULTRvLCBDbGF1ZGUtMy41IOetieacgOaWsOWkp+aooeWei1wiLFxyXG4gIH0sXHJcbiAgQ2hhdEl0ZW06IHtcclxuICAgIENoYXRJdGVtQ291bnQ6IChjb3VudDogbnVtYmVyKSA9PiBgJHtjb3VudH0g5p2h5a+56K+dYCxcclxuICB9LFxyXG4gIENoYXQ6IHtcclxuICAgIFN1YlRpdGxlOiAoY291bnQ6IG51bWJlcikgPT4gYOWFsSAke2NvdW50fSDmnaHlr7nor51gLFxyXG4gICAgRWRpdE1lc3NhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwi57yW6L6R5raI5oGv6K6w5b2VXCIsXHJcbiAgICAgIFRvcGljOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi6IGK5aSp5Li76aKYXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi5pu05pS55b2T5YmN6IGK5aSp5Li76aKYXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgQWN0aW9uczoge1xyXG4gICAgICBDaGF0TGlzdDogXCLmn6XnnIvmtojmga/liJfooahcIixcclxuICAgICAgQ29tcHJlc3NlZEhpc3Rvcnk6IFwi5p+l55yL5Y6L57yp5ZCO55qE5Y6G5Y+yIFByb21wdFwiLFxyXG4gICAgICBFeHBvcnQ6IFwi5a+85Ye66IGK5aSp6K6w5b2VXCIsXHJcbiAgICAgIENvcHk6IFwi5aSN5Yi2XCIsXHJcbiAgICAgIFN0b3A6IFwi5YGc5q2iXCIsXHJcbiAgICAgIFJldHJ5OiBcIumHjeivlVwiLFxyXG4gICAgICBQaW46IFwi5Zu65a6aXCIsXHJcbiAgICAgIFBpblRvYXN0Q29udGVudDogXCLlt7LlsIYgMSDmnaHlr7nor53lm7rlrproh7PpooTorr7mj5DnpLror41cIixcclxuICAgICAgUGluVG9hc3RBY3Rpb246IFwi5p+l55yLXCIsXHJcbiAgICAgIERlbGV0ZTogXCLliKDpmaRcIixcclxuICAgICAgRWRpdDogXCLnvJbovpFcIixcclxuICAgICAgRnVsbFNjcmVlbjogXCLlhajlsY9cIixcclxuICAgICAgUmVmcmVzaFRpdGxlOiBcIuWIt+aWsOagh+mimFwiLFxyXG4gICAgICBSZWZyZXNoVG9hc3Q6IFwi5bey5Y+R6YCB5Yi35paw5qCH6aKY6K+35rGCXCIsXHJcbiAgICAgIFNwZWVjaDogXCLmnJfor7tcIixcclxuICAgICAgU3RvcFNwZWVjaDogXCLlgZzmraJcIixcclxuICAgIH0sXHJcbiAgICBDb21tYW5kczoge1xyXG4gICAgICBuZXc6IFwi5paw5bu66IGK5aSpXCIsXHJcbiAgICAgIG5ld206IFwi5LuO6Z2i5YW35paw5bu66IGK5aSpXCIsXHJcbiAgICAgIG5leHQ6IFwi5LiL5LiA5Liq6IGK5aSpXCIsXHJcbiAgICAgIHByZXY6IFwi5LiK5LiA5Liq6IGK5aSpXCIsXHJcbiAgICAgIGNsZWFyOiBcIua4hemZpOS4iuS4i+aWh1wiLFxyXG4gICAgICBmb3JrOiBcIuWkjeWItuiBiuWkqVwiLFxyXG4gICAgICBkZWw6IFwi5Yig6Zmk6IGK5aSpXCIsXHJcbiAgICB9LFxyXG4gICAgSW5wdXRBY3Rpb25zOiB7XHJcbiAgICAgIFN0b3A6IFwi5YGc5q2i5ZON5bqUXCIsXHJcbiAgICAgIFRvQm90dG9tOiBcIua7muWIsOacgOaWsFwiLFxyXG4gICAgICBUaGVtZToge1xyXG4gICAgICAgIGF1dG86IFwi6Ieq5Yqo5Li76aKYXCIsXHJcbiAgICAgICAgbGlnaHQ6IFwi5Lqu6Imy5qih5byPXCIsXHJcbiAgICAgICAgZGFyazogXCLmt7HoibLmqKHlvI9cIixcclxuICAgICAgfSxcclxuICAgICAgUHJvbXB0OiBcIuW/q+aNt+aMh+S7pFwiLFxyXG4gICAgICBNYXNrczogXCLmiYDmnInpnaLlhbdcIixcclxuICAgICAgQ2xlYXI6IFwi5riF6Zmk6IGK5aSpXCIsXHJcbiAgICAgIFNldHRpbmdzOiBcIuWvueivneiuvue9rlwiLFxyXG4gICAgICBVcGxvYWRJbWFnZTogXCLkuIrkvKDlm77niYdcIixcclxuICAgIH0sXHJcbiAgICBSZW5hbWU6IFwi6YeN5ZG95ZCN5a+56K+dXCIsXHJcbiAgICBUeXBpbmc6IFwi5q2j5Zyo6L6T5YWl4oCmXCIsXHJcbiAgICBJbnB1dDogKHN1Ym1pdEtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHZhciBpbnB1dEhpbnRzID0gYCR7c3VibWl0S2V5fSDlj5HpgIFgO1xyXG4gICAgICBpZiAoc3VibWl0S2V5ID09PSBTdHJpbmcoU3VibWl0S2V5LkVudGVyKSkge1xyXG4gICAgICAgIGlucHV0SGludHMgKz0gXCLvvIxTaGlmdCArIEVudGVyIOaNouihjFwiO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBpbnB1dEhpbnRzICsgXCLvvIwvIOinpuWPkeihpeWFqO+8jDog6Kem5Y+R5ZG95LukXCI7XHJcbiAgICB9LFxyXG4gICAgU2VuZDogXCLlj5HpgIFcIixcclxuICAgIFN0YXJ0U3BlYWs6IFwi6K+06K+dXCIsXHJcbiAgICBTdG9wU3BlYWs6IFwi5YGc5q2iXCIsXHJcbiAgICBDb25maWc6IHtcclxuICAgICAgUmVzZXQ6IFwi5riF6Zmk6K6w5b+GXCIsXHJcbiAgICAgIFNhdmVBczogXCLlrZjkuLrpnaLlhbdcIixcclxuICAgIH0sXHJcbiAgICBJc0NvbnRleHQ6IFwi6aKE6K6+5o+Q56S66K+NXCIsXHJcbiAgICBTaG9ydGN1dEtleToge1xyXG4gICAgICBUaXRsZTogXCLplK7nm5jlv6vmjbfmlrnlvI9cIixcclxuICAgICAgbmV3Q2hhdDogXCLmiZPlvIDmlrDogYrlpKlcIixcclxuICAgICAgZm9jdXNJbnB1dDogXCLogZrnhKbovpPlhaXmoYZcIixcclxuICAgICAgY29weUxhc3RNZXNzYWdlOiBcIuWkjeWItuacgOWQjuS4gOS4quWbnuWkjVwiLFxyXG4gICAgICBjb3B5TGFzdENvZGU6IFwi5aSN5Yi25pyA5ZCO5LiA5Liq5Luj56CB5Z2XXCIsXHJcbiAgICAgIHNob3dTaG9ydGN1dEtleTogXCLmmL7npLrlv6vmjbfmlrnlvI9cIixcclxuICAgICAgY2xlYXJDb250ZXh0OiBcIua4hemZpOS4iuS4i+aWh1wiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIEV4cG9ydDoge1xyXG4gICAgVGl0bGU6IFwi5YiG5Lqr6IGK5aSp6K6w5b2VXCIsXHJcbiAgICBDb3B5OiBcIuWFqOmDqOWkjeWItlwiLFxyXG4gICAgRG93bmxvYWQ6IFwi5LiL6L295paH5Lu2XCIsXHJcbiAgICBTaGFyZTogXCLliIbkuqvliLAgU2hhcmVHUFRcIixcclxuICAgIE1lc3NhZ2VGcm9tWW91OiBcIueUqOaIt1wiLFxyXG4gICAgTWVzc2FnZUZyb21DaGF0R1BUOiBcIkNoYXRHUFRcIixcclxuICAgIEZvcm1hdDoge1xyXG4gICAgICBUaXRsZTogXCLlr7zlh7rmoLzlvI9cIixcclxuICAgICAgU3ViVGl0bGU6IFwi5Y+v5Lul5a+85Ye6IE1hcmtkb3duIOaWh+acrOaIluiAhSBQTkcg5Zu+54mHXCIsXHJcbiAgICB9LFxyXG4gICAgSW5jbHVkZUNvbnRleHQ6IHtcclxuICAgICAgVGl0bGU6IFwi5YyF5ZCr6Z2i5YW35LiK5LiL5paHXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuaYr+WQpuWcqOa2iOaBr+S4reWxleekuumdouWFt+S4iuS4i+aWh1wiLFxyXG4gICAgfSxcclxuICAgIFN0ZXBzOiB7XHJcbiAgICAgIFNlbGVjdDogXCLpgInlj5ZcIixcclxuICAgICAgUHJldmlldzogXCLpooTop4hcIixcclxuICAgIH0sXHJcbiAgICBJbWFnZToge1xyXG4gICAgICBUb2FzdDogXCLmraPlnKjnlJ/miJDmiKrlm75cIixcclxuICAgICAgTW9kYWw6IFwi6ZW/5oyJ5oiW5Y+z6ZSu5L+d5a2Y5Zu+54mHXCIsXHJcbiAgICB9LFxyXG4gICAgQXJ0aWZhY3RzOiB7XHJcbiAgICAgIFRpdGxlOiBcIuWIhuS6q+mhtemdolwiLFxyXG4gICAgICBFcnJvcjogXCLliIbkuqvlpLHotKVcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBTZWxlY3Q6IHtcclxuICAgIFNlYXJjaDogXCLmkJzntKLmtojmga9cIixcclxuICAgIEFsbDogXCLpgInlj5blhajpg6hcIixcclxuICAgIExhdGVzdDogXCLmnIDov5Hlh6DmnaFcIixcclxuICAgIENsZWFyOiBcIua4hemZpOmAieS4rVwiLFxyXG4gIH0sXHJcbiAgTWVtb3J5OiB7XHJcbiAgICBUaXRsZTogXCLljoblj7LmkZjopoFcIixcclxuICAgIEVtcHR5Q29udGVudDogXCLlr7nor53lhoXlrrnov4fnn63vvIzml6DpnIDmgLvnu5NcIixcclxuICAgIFNlbmQ6IFwi6Ieq5Yqo5Y6L57yp6IGK5aSp6K6w5b2V5bm25L2c5Li65LiK5LiL5paH5Y+R6YCBXCIsXHJcbiAgICBDb3B5OiBcIuWkjeWItuaRmOimgVwiLFxyXG4gICAgUmVzZXQ6IFwiW3VudXNlZF1cIixcclxuICAgIFJlc2V0Q29uZmlybTogXCLnoa7orqTmuIXnqbrljoblj7LmkZjopoHvvJ9cIixcclxuICB9LFxyXG4gIEhvbWU6IHtcclxuICAgIE5ld0NoYXQ6IFwi5paw55qE6IGK5aSpXCIsXHJcbiAgICBEZWxldGVDaGF0OiBcIuehruiupOWIoOmZpOmAieS4reeahOWvueivne+8n1wiLFxyXG4gICAgRGVsZXRlVG9hc3Q6IFwi5bey5Yig6Zmk5Lya6K+dXCIsXHJcbiAgICBSZXZlcnQ6IFwi5pKk6ZSAXCIsXHJcbiAgfSxcclxuICBTZXR0aW5nczoge1xyXG4gICAgVGl0bGU6IFwi6K6+572uXCIsXHJcbiAgICBTdWJUaXRsZTogXCLmiYDmnInorr7nva7pgInpoblcIixcclxuICAgIFNob3dQYXNzd29yZDogXCLmmL7npLrlr4bnoIFcIixcclxuXHJcbiAgICBEYW5nZXI6IHtcclxuICAgICAgUmVzZXQ6IHtcclxuICAgICAgICBUaXRsZTogXCLph43nva7miYDmnInorr7nva5cIixcclxuICAgICAgICBTdWJUaXRsZTogXCLph43nva7miYDmnInorr7nva7pobnlm57pu5jorqTlgLxcIixcclxuICAgICAgICBBY3Rpb246IFwi56uL5Y2z6YeN572uXCIsXHJcbiAgICAgICAgQ29uZmlybTogXCLnoa7orqTph43nva7miYDmnInorr7nva7vvJ9cIixcclxuICAgICAgfSxcclxuICAgICAgQ2xlYXI6IHtcclxuICAgICAgICBUaXRsZTogXCLmuIXpmaTmiYDmnInmlbDmja5cIixcclxuICAgICAgICBTdWJUaXRsZTogXCLmuIXpmaTmiYDmnInogYrlpKnjgIHorr7nva7mlbDmja5cIixcclxuICAgICAgICBBY3Rpb246IFwi56uL5Y2z5riF6ZmkXCIsXHJcbiAgICAgICAgQ29uZmlybTogXCLnoa7orqTmuIXpmaTmiYDmnInogYrlpKnjgIHorr7nva7mlbDmja7vvJ9cIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBMYW5nOiB7XHJcbiAgICAgIE5hbWU6IFwiTGFuZ3VhZ2VcIiwgLy8g5rOo5oSP77ya5aaC5p6c6KaB5re75Yqg5paw55qE57+76K+R77yM6K+35LiN6KaB57+76K+R5q2k5YC877yM5bCG5a6D5L+d55WZ5Li6IGBMYW5ndWFnZWBcclxuICAgICAgQWxsOiBcIuaJgOacieivreiogFwiLFxyXG4gICAgfSxcclxuICAgIEF2YXRhcjogXCLlpLTlg49cIixcclxuICAgIEZvbnRTaXplOiB7XHJcbiAgICAgIFRpdGxlOiBcIuWtl+S9k+Wkp+Wwj1wiLFxyXG4gICAgICBTdWJUaXRsZTogXCLogYrlpKnlhoXlrrnnmoTlrZfkvZPlpKflsI9cIixcclxuICAgIH0sXHJcbiAgICBGb250RmFtaWx5OiB7XHJcbiAgICAgIFRpdGxlOiBcIuiBiuWkqeWtl+S9k1wiLFxyXG4gICAgICBTdWJUaXRsZTogXCLogYrlpKnlhoXlrrnnmoTlrZfkvZPvvIzoi6Xnva7nqbrliJnlupTnlKjlhajlsYDpu5jorqTlrZfkvZNcIixcclxuICAgICAgUGxhY2Vob2xkZXI6IFwi5a2X5L2T5ZCN56ewXCIsXHJcbiAgICB9LFxyXG4gICAgSW5qZWN0U3lzdGVtUHJvbXB0czoge1xyXG4gICAgICBUaXRsZTogXCLms6jlhaXns7vnu5/nuqfmj5DnpLrkv6Hmga9cIixcclxuICAgICAgU3ViVGl0bGU6IFwi5by65Yi257uZ5q+P5qyh6K+35rGC55qE5raI5oGv5YiX6KGo5byA5aS05re75Yqg5LiA5Liq5qih5oufIENoYXRHUFQg55qE57O757uf5o+Q56S6XCIsXHJcbiAgICB9LFxyXG4gICAgSW5wdXRUZW1wbGF0ZToge1xyXG4gICAgICBUaXRsZTogXCLnlKjmiLfovpPlhaXpooTlpITnkIZcIixcclxuICAgICAgU3ViVGl0bGU6IFwi55So5oi35pyA5paw55qE5LiA5p2h5raI5oGv5Lya5aGr5YWF5Yiw5q2k5qih5p2/XCIsXHJcbiAgICB9LFxyXG5cclxuICAgIFVwZGF0ZToge1xyXG4gICAgICBWZXJzaW9uOiAoeDogc3RyaW5nKSA9PiBg5b2T5YmN54mI5pys77yaJHt4fWAsXHJcbiAgICAgIElzTGF0ZXN0OiBcIuW3suaYr+acgOaWsOeJiOacrFwiLFxyXG4gICAgICBDaGVja1VwZGF0ZTogXCLmo4Dmn6Xmm7TmlrBcIixcclxuICAgICAgSXNDaGVja2luZzogXCLmraPlnKjmo4Dmn6Xmm7TmlrAuLi5cIixcclxuICAgICAgRm91bmRVcGRhdGU6ICh4OiBzdHJpbmcpID0+IGDlj5HnjrDmlrDniYjmnKzvvJoke3h9YCxcclxuICAgICAgR29Ub1VwZGF0ZTogXCLliY3lvoDmm7TmlrBcIixcclxuICAgICAgU3VjY2VzczogXCLmm7TmlrDmiJDlip/vvIFcIixcclxuICAgICAgRmFpbGVkOiBcIuabtOaWsOWksei0pVwiLFxyXG4gICAgfSxcclxuICAgIFNlbmRLZXk6IFwi5Y+R6YCB6ZSuXCIsXHJcbiAgICBUaGVtZTogXCLkuLvpophcIixcclxuICAgIFRpZ2h0Qm9yZGVyOiBcIuaXoOi+ueahhuaooeW8j1wiLFxyXG4gICAgU2VuZFByZXZpZXdCdWJibGU6IHtcclxuICAgICAgVGl0bGU6IFwi6aKE6KeI5rCU5rOhXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuWcqOmihOiniOawlOazoeS4remihOiniCBNYXJrZG93biDlhoXlrrlcIixcclxuICAgIH0sXHJcbiAgICBBdXRvR2VuZXJhdGVUaXRsZToge1xyXG4gICAgICBUaXRsZTogXCLoh6rliqjnlJ/miJDmoIfpophcIixcclxuICAgICAgU3ViVGl0bGU6IFwi5qC55o2u5a+56K+d5YaF5a6555Sf5oiQ5ZCI6YCC55qE5qCH6aKYXCIsXHJcbiAgICB9LFxyXG4gICAgU3luYzoge1xyXG4gICAgICBDbG91ZFN0YXRlOiBcIuS6keerr+aVsOaNrlwiLFxyXG4gICAgICBOb3RTeW5jWWV0OiBcIui/mOayoeaciei/m+ihjOi/h+WQjOatpVwiLFxyXG4gICAgICBTdWNjZXNzOiBcIuWQjOatpeaIkOWKn1wiLFxyXG4gICAgICBGYWlsOiBcIuWQjOatpeWksei0pVwiLFxyXG5cclxuICAgICAgQ29uZmlnOiB7XHJcbiAgICAgICAgTW9kYWw6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIumFjee9ruS6keWQjOatpVwiLFxyXG4gICAgICAgICAgQ2hlY2s6IFwi5qOA5p+l5Y+v55So5oCnXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBTeW5jVHlwZToge1xyXG4gICAgICAgICAgVGl0bGU6IFwi5ZCM5q2l57G75Z6LXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLpgInmi6nllpzniLHnmoTlkIzmraXmnI3liqHlmahcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFByb3h5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLlkK/nlKjku6PnkIZcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuWcqOa1j+iniOWZqOS4reWQjOatpeaXtu+8jOW/hemhu+WQr+eUqOS7o+eQhuS7pemBv+WFjei3qOWfn+mZkOWItlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgUHJveHlVcmw6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuS7o+eQhuWcsOWdgFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi5LuF6YCC55So5LqO5pys6aG555uu6Ieq5bim55qE6Leo5Z+f5Luj55CGXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgV2ViRGF2OiB7XHJcbiAgICAgICAgICBFbmRwb2ludDogXCJXZWJEQVYg5Zyw5Z2AXCIsXHJcbiAgICAgICAgICBVc2VyTmFtZTogXCLnlKjmiLflkI1cIixcclxuICAgICAgICAgIFBhc3N3b3JkOiBcIuWvhueggVwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIFVwU3Rhc2g6IHtcclxuICAgICAgICAgIEVuZHBvaW50OiBcIlVwU3Rhc2ggUmVkaXMgUkVTVCBVcmxcIixcclxuICAgICAgICAgIFVzZXJOYW1lOiBcIuWkh+S7veWQjeensFwiLFxyXG4gICAgICAgICAgUGFzc3dvcmQ6IFwiVXBTdGFzaCBSZWRpcyBSRVNUIFRva2VuXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuXHJcbiAgICAgIExvY2FsU3RhdGU6IFwi5pys5Zyw5pWw5o2uXCIsXHJcbiAgICAgIE92ZXJ2aWV3OiAob3ZlcnZpZXc6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBgJHtvdmVydmlldy5jaGF0fSDmrKHlr7nor53vvIwke292ZXJ2aWV3Lm1lc3NhZ2V9IOadoea2iOaBr++8jCR7b3ZlcnZpZXcucHJvbXB0fSDmnaHmj5DnpLror43vvIwke292ZXJ2aWV3Lm1hc2t9IOS4qumdouWFt2A7XHJcbiAgICAgIH0sXHJcbiAgICAgIEltcG9ydEZhaWxlZDogXCLlr7zlhaXlpLHotKVcIixcclxuICAgIH0sXHJcbiAgICBNYXNrOiB7XHJcbiAgICAgIFNwbGFzaDoge1xyXG4gICAgICAgIFRpdGxlOiBcIumdouWFt+WQr+WKqOmhtVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIuaWsOW7uuiBiuWkqeaXtu+8jOWxleekuumdouWFt+WQr+WKqOmhtVwiLFxyXG4gICAgICB9LFxyXG4gICAgICBCdWlsdGluOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi6ZqQ6JeP5YaF572u6Z2i5YW3XCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi5Zyo5omA5pyJ6Z2i5YW35YiX6KGo5Lit6ZqQ6JeP5YaF572u6Z2i5YW3XCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgUHJvbXB0OiB7XHJcbiAgICAgIERpc2FibGU6IHtcclxuICAgICAgICBUaXRsZTogXCLnpoHnlKjmj5DnpLror43oh6rliqjooaXlhahcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLlnKjovpPlhaXmoYblvIDlpLTovpPlhaUgLyDljbPlj6/op6blj5Hoh6rliqjooaXlhahcIixcclxuICAgICAgfSxcclxuICAgICAgTGlzdDogXCLoh6rlrprkuYnmj5DnpLror43liJfooahcIixcclxuICAgICAgTGlzdENvdW50OiAoYnVpbHRpbjogbnVtYmVyLCBjdXN0b206IG51bWJlcikgPT5cclxuICAgICAgICBg5YaF572uICR7YnVpbHRpbn0g5p2h77yM55So5oi35a6a5LmJICR7Y3VzdG9tfSDmnaFgLFxyXG4gICAgICBFZGl0OiBcIue8lui+kVwiLFxyXG4gICAgICBNb2RhbDoge1xyXG4gICAgICAgIFRpdGxlOiBcIuaPkOekuuivjeWIl+ihqFwiLFxyXG4gICAgICAgIEFkZDogXCLmlrDlu7pcIixcclxuICAgICAgICBTZWFyY2g6IFwi5pCc57Si5o+Q56S66K+NXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEVkaXRNb2RhbDoge1xyXG4gICAgICAgIFRpdGxlOiBcIue8lui+keaPkOekuuivjVwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIEhpc3RvcnlDb3VudDoge1xyXG4gICAgICBUaXRsZTogXCLpmYTluKbljoblj7Lmtojmga/mlbBcIixcclxuICAgICAgU3ViVGl0bGU6IFwi5q+P5qyh6K+35rGC5pC65bim55qE5Y6G5Y+y5raI5oGv5pWwXCIsXHJcbiAgICB9LFxyXG4gICAgQ29tcHJlc3NUaHJlc2hvbGQ6IHtcclxuICAgICAgVGl0bGU6IFwi5Y6G5Y+y5raI5oGv6ZW/5bqm5Y6L57yp6ZiI5YC8XCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuW9k+acquWOi+e8qeeahOWOhuWPsua2iOaBr+i2hei/h+ivpeWAvOaXtu+8jOWwhui/m+ihjOWOi+e8qVwiLFxyXG4gICAgfSxcclxuXHJcbiAgICBVc2FnZToge1xyXG4gICAgICBUaXRsZTogXCLkvZnpop3mn6Xor6JcIixcclxuICAgICAgU3ViVGl0bGUodXNlZDogYW55LCB0b3RhbDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIGDmnKzmnIjlt7Lkvb/nlKggJCR7dXNlZH3vvIzorqLpmIXmgLvpop0gJCR7dG90YWx9YDtcclxuICAgICAgfSxcclxuICAgICAgSXNDaGVja2luZzogXCLmraPlnKjmo4Dmn6XigKZcIixcclxuICAgICAgQ2hlY2s6IFwi6YeN5paw5qOA5p+lXCIsXHJcbiAgICAgIE5vQWNjZXNzOiBcIui+k+WFpSBBUEkgS2V5IOaIluiuv+mXruWvhueggeafpeeci+S9meminVwiLFxyXG4gICAgfSxcclxuXHJcbiAgICBBY2Nlc3M6IHtcclxuICAgICAgU2Fhc1N0YXJ0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwi5L2/55SoIE5leHRDaGF0IEFJXCIsXHJcbiAgICAgICAgTGFiZWw6IFwi77yI5oCn5Lu35q+U5pyA6auY55qE5pa55qGI77yJXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIueUsSBOZXh0Q2hhdCDlrpjmlrnnu7TmiqQsIOmbtumFjee9ruW8gOeuseWNs+eUqO+8jOaUr+aMgSBPcGVuQUkgbzEsIEdQVC00bywgQ2xhdWRlLTMuNSDnrYnmnIDmlrDlpKfmqKHlnotcIixcclxuICAgICAgICBDaGF0Tm93OiBcIueri+WIu+WvueivnVwiLFxyXG4gICAgICB9LFxyXG4gICAgICBBY2Nlc3NDb2RlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi6K6/6Zeu5a+G56CBXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi566h55CG5ZGY5bey5byA5ZCv5Yqg5a+G6K6/6ZeuXCIsXHJcbiAgICAgICAgUGxhY2Vob2xkZXI6IFwi6K+36L6T5YWl6K6/6Zeu5a+G56CBXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEN1c3RvbUVuZHBvaW50OiB7XHJcbiAgICAgICAgVGl0bGU6IFwi6Ieq5a6a5LmJ5o6l5Y+jXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi5piv5ZCm5L2/55So6Ieq5a6a5LmJIEF6dXJlIOaIliBPcGVuQUkg5pyN5YqhXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFByb3ZpZGVyOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi5qih5Z6L5pyN5Yqh5ZWGXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi5YiH5o2i5LiN5ZCM55qE5pyN5Yqh5ZWGXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIE9wZW5BSToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIEtleVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi5L2/55So6Ieq5a6a5LmJIE9wZW5BSSBLZXkg57uV6L+H5a+G56CB6K6/6Zeu6ZmQ5Yi2XCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJPcGVuQUkgQVBJIEtleVwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLmjqXlj6PlnLDlnYBcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIumZpOm7mOiupOWcsOWdgOWklu+8jOW/hemhu+WMheWQqyBodHRwKHMpOi8vXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQXp1cmU6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuaOpeWPo+WvhumSpVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi5L2/55So6Ieq5a6a5LmJIEF6dXJlIEtleSDnu5Xov4flr4bnoIHorr/pl67pmZDliLZcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkF6dXJlIEFQSSBLZXlcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi5o6l5Y+j5Zyw5Z2AXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLmoLfkvovvvJpcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBBcGlWZXJpb246IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuaOpeWPo+eJiOacrCAoYXp1cmUgYXBpIHZlcnNpb24pXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLpgInmi6nmjIflrprnmoTpg6jliIbniYjmnKxcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBBbnRocm9waWM6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuaOpeWPo+WvhumSpVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi5L2/55So6Ieq5a6a5LmJIEFudGhyb3BpYyBLZXkg57uV6L+H5a+G56CB6K6/6Zeu6ZmQ5Yi2XCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJBbnRocm9waWMgQVBJIEtleVwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLmjqXlj6PlnLDlnYBcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuagt+S+i++8mlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcmlvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi5o6l5Y+j54mI5pysIChjbGF1ZGUgYXBpIHZlcnNpb24pXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLpgInmi6nkuIDkuKrnibnlrprnmoQgQVBJIOeJiOacrOi+k+WFpVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEdvb2dsZToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIOWvhumSpVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi5LuOIEdvb2dsZSBBSSDojrflj5bmgqjnmoQgQVBJIOWvhumSpVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiR29vZ2xlIEFJIEFQSSBLRVlcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi57uI56uv5Zyw5Z2AXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLnpLrkvovvvJpcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBBcGlWZXJzaW9uOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEkg54mI5pys77yI5LuF6YCC55So5LqOIGdlbWluaS1wcm/vvIlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIumAieaLqeS4gOS4queJueWumueahCBBUEkg54mI5pysXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBHb29nbGVTYWZldHlTZXR0aW5nczoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiR29vZ2xlIOWuieWFqOi/h+a7pOe6p+WIq1wiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi6K6+572u5YaF5a656L+H5ruk57qn5YirXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQmFpZHU6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSSBLZXlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuS9v+eUqOiHquWumuS5iSBCYWlkdSBBUEkgS2V5XCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJCYWlkdSBBUEkgS2V5XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBTZWNyZXRLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlNlY3JldCBLZXlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuS9v+eUqOiHquWumuS5iSBCYWlkdSBTZWNyZXQgS2V5XCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJCYWlkdSBTZWNyZXQgS2V5XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi5o6l5Y+j5Zyw5Z2AXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLkuI3mlK/mjIHoh6rlrprkuYnliY3lvoAuZW526YWN572uXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgVGVuY2VudDoge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIEtleVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi5L2/55So6Ieq5a6a5LmJ6IW+6K6v5LqRQVBJIEtleVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiVGVuY2VudCBBUEkgS2V5XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBTZWNyZXRLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlNlY3JldCBLZXlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuS9v+eUqOiHquWumuS5ieiFvuiur+S6kVNlY3JldCBLZXlcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIlRlbmNlbnQgU2VjcmV0IEtleVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuaOpeWPo+WcsOWdgFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi5LiN5pSv5oyB6Ieq5a6a5LmJ5YmN5b6ALmVudumFjee9rlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEJ5dGVEYW5jZToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwi5o6l5Y+j5a+G6ZKlXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLkvb/nlKjoh6rlrprkuYkgQnl0ZURhbmNlIEFQSSBLZXlcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkJ5dGVEYW5jZSBBUEkgS2V5XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi5o6l5Y+j5Zyw5Z2AXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLmoLfkvovvvJpcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBBbGliYWJhOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLmjqXlj6Plr4bpkqVcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuS9v+eUqOiHquWumuS5iemYv+mHjOS6kUFQSSBLZXlcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkFsaWJhYmEgQ2xvdWQgQVBJIEtleVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuaOpeWPo+WcsOWdgFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi5qC35L6L77yaXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgTW9vbnNob3Q6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuaOpeWPo+WvhumSpVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi5L2/55So6Ieq5a6a5LmJ5pyI5LmL5pqX6Z2iQVBJIEtleVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiTW9vbnNob3QgQVBJIEtleVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuaOpeWPo+WcsOWdgFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi5qC35L6L77yaXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgRGVlcFNlZWs6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuaOpeWPo+WvhumSpVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi5L2/55So6Ieq5a6a5LmJRGVlcFNlZWsgQVBJIEtleVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiRGVlcFNlZWsgQVBJIEtleVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuaOpeWPo+WcsOWdgFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi5qC35L6L77yaXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgWEFJOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLmjqXlj6Plr4bpkqVcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuS9v+eUqOiHquWumuS5iVhBSSBBUEkgS2V5XCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJYQUkgQVBJIEtleVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuaOpeWPo+WcsOWdgFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi5qC35L6L77yaXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQ2hhdEdMTToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwi5o6l5Y+j5a+G6ZKlXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLkvb/nlKjoh6rlrprkuYkgQ2hhdEdMTSBBUEkgS2V5XCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJDaGF0R0xNIEFQSSBLZXlcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLmjqXlj6PlnLDlnYBcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuagt+S+i++8mlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIFNpbGljb25GbG93OiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLmjqXlj6Plr4bpkqVcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuS9v+eUqOiHquWumuS5ieehheWfuua1geWKqCBBUEkgS2V5XCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCLnoYXln7rmtYHliqggQVBJIEtleVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuaOpeWPo+WcsOWdgFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi5qC35L6L77yaXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgU3RhYmlsaXR5OiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLmjqXlj6Plr4bpkqVcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuS9v+eUqOiHquWumuS5iSBTdGFiaWxpdHkgQVBJIEtleVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiU3RhYmlsaXR5IEFQSSBLZXlcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLmjqXlj6PlnLDlnYBcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuagt+S+i++8mlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIElmbHl0ZWs6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFwaUtleVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi5LuO6K6v6aOe5pif54Gr5o6n5Yi25Y+w6I635Y+W55qEIEFQSUtleVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQVBJS2V5XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBBcGlTZWNyZXQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFwaVNlY3JldFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi5LuO6K6v6aOe5pif54Gr5o6n5Yi25Y+w6I635Y+W55qEIEFQSVNlY3JldFwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQVBJU2VjcmV0XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi5o6l5Y+j5Zyw5Z2AXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLmoLfkvovvvJpcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBDdXN0b21Nb2RlbDoge1xyXG4gICAgICAgIFRpdGxlOiBcIuiHquWumuS5ieaooeWei+WQjVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIuWinuWKoOiHquWumuS5ieaooeWei+WPr+mAiemhue+8jOS9v+eUqOiLseaWh+mAl+WPt+malOW8gFwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuXHJcbiAgICBNb2RlbDogXCLmqKHlnosgKG1vZGVsKVwiLFxyXG4gICAgQ29tcHJlc3NNb2RlbDoge1xyXG4gICAgICBUaXRsZTogXCLlr7nor53mkZjopoHmqKHlnotcIixcclxuICAgICAgU3ViVGl0bGU6IFwi55So5LqO5Y6L57yp5Y6G5Y+y6K6w5b2V44CB55Sf5oiQ5a+56K+d5qCH6aKY55qE5qih5Z6LXCIsXHJcbiAgICB9LFxyXG4gICAgVGVtcGVyYXR1cmU6IHtcclxuICAgICAgVGl0bGU6IFwi6ZqP5py65oCnICh0ZW1wZXJhdHVyZSlcIixcclxuICAgICAgU3ViVGl0bGU6IFwi5YC86LaK5aSn77yM5Zue5aSN6LaK6ZqP5py6XCIsXHJcbiAgICB9LFxyXG4gICAgVG9wUDoge1xyXG4gICAgICBUaXRsZTogXCLmoLjph4fmoLcgKHRvcF9wKVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCLkuI7pmo/mnLrmgKfnsbvkvLzvvIzkvYbkuI3opoHlkozpmo/mnLrmgKfkuIDotbfmm7TmlLlcIixcclxuICAgIH0sXHJcbiAgICBNYXhUb2tlbnM6IHtcclxuICAgICAgVGl0bGU6IFwi5Y2V5qyh5Zue5aSN6ZmQ5Yi2IChtYXhfdG9rZW5zKVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCLljZXmrKHkuqTkupLmiYDnlKjnmoTmnIDlpKcgVG9rZW4g5pWwXCIsXHJcbiAgICB9LFxyXG4gICAgUHJlc2VuY2VQZW5hbHR5OiB7XHJcbiAgICAgIFRpdGxlOiBcIuivnemimOaWsOmynOW6piAocHJlc2VuY2VfcGVuYWx0eSlcIixcclxuICAgICAgU3ViVGl0bGU6IFwi5YC86LaK5aSn77yM6LaK5pyJ5Y+v6IO95omp5bGV5Yiw5paw6K+d6aKYXCIsXHJcbiAgICB9LFxyXG4gICAgRnJlcXVlbmN5UGVuYWx0eToge1xyXG4gICAgICBUaXRsZTogXCLpopHnjofmg6nnvZrluqYgKGZyZXF1ZW5jeV9wZW5hbHR5KVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCLlgLzotorlpKfvvIzotormnInlj6/og73pmY3kvY7ph43lpI3lrZfor41cIixcclxuICAgIH0sXHJcbiAgICBUVFM6IHtcclxuICAgICAgRW5hYmxlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi5ZCv55So5paH5pys6L2s6K+t6Z+zXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi5ZCv55So5paH5pys55Sf5oiQ6K+t6Z+z5pyN5YqhXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEF1dG9wbGF5OiB7XHJcbiAgICAgICAgVGl0bGU6IFwi5ZCv55So6Ieq5Yqo5pyX6K+7XCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi6Ieq5Yqo55Sf5oiQ6K+t6Z+z5bm25pKt5pS+77yM6ZyA5YWI5byA5ZCv5paH5pys6L2s6K+t6Z+z5byA5YWzXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIE1vZGVsOiBcIuaooeWei1wiLFxyXG4gICAgICBFbmdpbmU6IFwi6L2s5o2i5byV5pOOXCIsXHJcbiAgICAgIFZvaWNlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi5aOw6Z+zXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi55Sf5oiQ6K+t6Z+z5pe25L2/55So55qE5aOw6Z+zXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFNwZWVkOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi6YCf5bqmXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi55Sf5oiQ6K+t6Z+z55qE6YCf5bqmXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgUmVhbHRpbWU6IHtcclxuICAgICAgRW5hYmxlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi5a6e5pe26IGK5aSpXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi5byA5ZCv5a6e5pe26IGK5aSp5Yqf6IO9XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFByb3ZpZGVyOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi5qih5Z6L5pyN5Yqh5ZWGXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi5YiH5o2i5LiN5ZCM55qE5pyN5Yqh5ZWGXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIE1vZGVsOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi5qih5Z6LXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi6YCJ5oup5LiA5Liq5qih5Z6LXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEFwaUtleToge1xyXG4gICAgICAgIFRpdGxlOiBcIkFQSSBLZXlcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJBUEkgS2V5XCIsXHJcbiAgICAgICAgUGxhY2Vob2xkZXI6IFwiQVBJIEtleVwiLFxyXG4gICAgICB9LFxyXG4gICAgICBBenVyZToge1xyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLmjqXlj6PlnLDlnYBcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuaOpeWPo+WcsOWdgFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRGVwbG95bWVudDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi6YOo572y5ZCN56ewXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLpg6jnvbLlkI3np7BcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBUZW1wZXJhdHVyZToge1xyXG4gICAgICAgIFRpdGxlOiBcIumaj+acuuaApyAodGVtcGVyYXR1cmUpXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi5YC86LaK5aSn77yM5Zue5aSN6LaK6ZqP5py6XCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgU3RvcmU6IHtcclxuICAgIERlZmF1bHRUb3BpYzogXCLmlrDnmoTogYrlpKlcIixcclxuICAgIEJvdEhlbGxvOiBcIuacieS7gOS5iOWPr+S7peW4ruS9oOeahOWQl1wiLFxyXG4gICAgRXJyb3I6IFwi5Ye66ZSZ5LqG77yM56iN5ZCO6YeN6K+V5ZCnXCIsXHJcbiAgICBQcm9tcHQ6IHtcclxuICAgICAgSGlzdG9yeTogKGNvbnRlbnQ6IHN0cmluZykgPT4gXCLov5nmmK/ljoblj7LogYrlpKnmgLvnu5PkvZzkuLrliY3mg4Xmj5DopoHvvJpcIiArIGNvbnRlbnQsXHJcbiAgICAgIFRvcGljOlxyXG4gICAgICAgIFwi5L2/55So5Zub5Yiw5LqU5Liq5a2X55u05o6l6L+U5Zue6L+Z5Y+l6K+d55qE566A6KaB5Li76aKY77yM5LiN6KaB6Kej6YeK44CB5LiN6KaB5qCH54K544CB5LiN6KaB6K+t5rCU6K+N44CB5LiN6KaB5aSa5L2Z5paH5pys77yM5LiN6KaB5Yqg57KX77yM5aaC5p6c5rKh5pyJ5Li76aKY77yM6K+355u05o6l6L+U5Zue4oCc6Zey6IGK4oCdXCIsXHJcbiAgICAgIFN1bW1hcml6ZTpcclxuICAgICAgICBcIueugOimgeaAu+e7k+S4gOS4i+WvueivneWGheWuue+8jOeUqOS9nOWQjue7reeahOS4iuS4i+aWh+aPkOekuiBwcm9tcHTvvIzmjqfliLblnKggMjAwIOWtl+S7peWGhVwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIENvcHk6IHtcclxuICAgIFN1Y2Nlc3M6IFwi5bey5YaZ5YWl5Ymq6LS05p2/XCIsXHJcbiAgICBGYWlsZWQ6IFwi5aSN5Yi25aSx6LSl77yM6K+36LWL5LqI5Ymq6LS05p2/5p2D6ZmQXCIsXHJcbiAgfSxcclxuICBEb3dubG9hZDoge1xyXG4gICAgU3VjY2VzczogXCLlhoXlrrnlt7LkuIvovb3liLDmgqjnmoTnm67lvZXjgIJcIixcclxuICAgIEZhaWxlZDogXCLkuIvovb3lpLHotKXjgIJcIixcclxuICB9LFxyXG4gIENvbnRleHQ6IHtcclxuICAgIFRvYXN0OiAoeDogYW55KSA9PiBg5YyF5ZCrICR7eH0g5p2h6aKE6K6+5o+Q56S66K+NYCxcclxuICAgIEVkaXQ6IFwi5b2T5YmN5a+56K+d6K6+572uXCIsXHJcbiAgICBBZGQ6IFwi5paw5aKe5LiA5p2h5a+56K+dXCIsXHJcbiAgICBDbGVhcjogXCLkuIrkuIvmloflt7LmuIXpmaRcIixcclxuICAgIFJldmVydDogXCLmgaLlpI3kuIrkuIvmlodcIixcclxuICB9LFxyXG4gIERpc2NvdmVyeToge1xyXG4gICAgTmFtZTogXCLlj5HnjrBcIixcclxuICB9LFxyXG4gIE1jcDoge1xyXG4gICAgTmFtZTogXCJNQ1BcIixcclxuICB9LFxyXG4gIEZpbmVUdW5lZDoge1xyXG4gICAgU3lzbWVzc2FnZTogXCLkvaDmmK/kuIDkuKrliqnmiYtcIixcclxuICB9LFxyXG4gIFNlYXJjaENoYXQ6IHtcclxuICAgIE5hbWU6IFwi5pCc57Si6IGK5aSp6K6w5b2VXCIsXHJcbiAgICBQYWdlOiB7XHJcbiAgICAgIFRpdGxlOiBcIuaQnOe0ouiBiuWkqeiusOW9lVwiLFxyXG4gICAgICBTZWFyY2g6IFwi6L6T5YWl5pCc57Si5YWz6ZSu6K+NXCIsXHJcbiAgICAgIE5vUmVzdWx0OiBcIuayoeacieaJvuWIsOe7k+aenFwiLFxyXG4gICAgICBOb0RhdGE6IFwi5rKh5pyJ5pWw5o2uXCIsXHJcbiAgICAgIExvYWRpbmc6IFwi5Yqg6L295LitXCIsXHJcblxyXG4gICAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGDmkJzntKLliLAgJHtjb3VudH0g5p2h57uT5p6cYCxcclxuICAgIH0sXHJcbiAgICBJdGVtOiB7XHJcbiAgICAgIFZpZXc6IFwi5p+l55yLXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgUGx1Z2luOiB7XHJcbiAgICBOYW1lOiBcIuaPkuS7tlwiLFxyXG4gICAgUGFnZToge1xyXG4gICAgICBUaXRsZTogXCLmj5Lku7ZcIixcclxuICAgICAgU3ViVGl0bGU6IChjb3VudDogbnVtYmVyKSA9PiBgJHtjb3VudH0g5Liq5o+S5Lu2YCxcclxuICAgICAgU2VhcmNoOiBcIuaQnOe0ouaPkuS7tlwiLFxyXG4gICAgICBDcmVhdGU6IFwi5paw5bu6XCIsXHJcbiAgICAgIEZpbmQ6IFwi5oKo5Y+v5Lul5ZyoR2l0aHVi5LiK5om+5Yiw5LyY56eA55qE5o+S5Lu277yaXCIsXHJcbiAgICB9LFxyXG4gICAgSXRlbToge1xyXG4gICAgICBJbmZvOiAoY291bnQ6IG51bWJlcikgPT4gYCR7Y291bnR9IOaWueazlWAsXHJcbiAgICAgIFZpZXc6IFwi5p+l55yLXCIsXHJcbiAgICAgIEVkaXQ6IFwi57yW6L6RXCIsXHJcbiAgICAgIERlbGV0ZTogXCLliKDpmaRcIixcclxuICAgICAgRGVsZXRlQ29uZmlybTogXCLnoa7orqTliKDpmaTvvJ9cIixcclxuICAgIH0sXHJcbiAgICBBdXRoOiB7XHJcbiAgICAgIE5vbmU6IFwi5LiN6ZyA6KaB5o6I5p2DXCIsXHJcbiAgICAgIEJhc2ljOiBcIkJhc2ljXCIsXHJcbiAgICAgIEJlYXJlcjogXCJCZWFyZXJcIixcclxuICAgICAgQ3VzdG9tOiBcIuiHquWumuS5iVwiLFxyXG4gICAgICBDdXN0b21IZWFkZXI6IFwi6Ieq5a6a5LmJ5Y+C5pWw5ZCN56ewXCIsXHJcbiAgICAgIFRva2VuOiBcIlRva2VuXCIsXHJcbiAgICAgIFByb3h5OiBcIuS9v+eUqOS7o+eQhlwiLFxyXG4gICAgICBQcm94eURlc2NyaXB0aW9uOiBcIuS9v+eUqOS7o+eQhuino+WGsyBDT1JTIOmUmeivr1wiLFxyXG4gICAgICBMb2NhdGlvbjogXCLkvY3nva5cIixcclxuICAgICAgTG9jYXRpb25IZWFkZXI6IFwiSGVhZGVyXCIsXHJcbiAgICAgIExvY2F0aW9uUXVlcnk6IFwiUXVlcnlcIixcclxuICAgICAgTG9jYXRpb25Cb2R5OiBcIkJvZHlcIixcclxuICAgIH0sXHJcbiAgICBFZGl0TW9kYWw6IHtcclxuICAgICAgVGl0bGU6IChyZWFkb25seTogYm9vbGVhbikgPT4gYOe8lui+keaPkuS7tiAke3JlYWRvbmx5ID8gXCLvvIjlj6ror7vvvIlcIiA6IFwiXCJ9YCxcclxuICAgICAgRG93bmxvYWQ6IFwi5LiL6L29XCIsXHJcbiAgICAgIEF1dGg6IFwi5o6I5p2D5pa55byPXCIsXHJcbiAgICAgIENvbnRlbnQ6IFwiT3BlbkFQSSBTY2hlbWFcIixcclxuICAgICAgTG9hZDogXCLku47nvZHpobXliqDovb1cIixcclxuICAgICAgTWV0aG9kOiBcIuaWueazlVwiLFxyXG4gICAgICBFcnJvcjogXCLmoLzlvI/plJnor69cIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBNYXNrOiB7XHJcbiAgICBOYW1lOiBcIumdouWFt1wiLFxyXG4gICAgUGFnZToge1xyXG4gICAgICBUaXRsZTogXCLpooTorr7op5LoibLpnaLlhbdcIixcclxuICAgICAgU3ViVGl0bGU6IChjb3VudDogbnVtYmVyKSA9PiBgJHtjb3VudH0g5Liq6aKE6K6+6KeS6Imy5a6a5LmJYCxcclxuICAgICAgU2VhcmNoOiBcIuaQnOe0ouinkuiJsumdouWFt1wiLFxyXG4gICAgICBDcmVhdGU6IFwi5paw5bu6XCIsXHJcbiAgICB9LFxyXG4gICAgSXRlbToge1xyXG4gICAgICBJbmZvOiAoY291bnQ6IG51bWJlcikgPT4gYOWMheWQqyAke2NvdW50fSDmnaHpooTorr7lr7nor51gLFxyXG4gICAgICBDaGF0OiBcIuWvueivnVwiLFxyXG4gICAgICBWaWV3OiBcIuafpeeci1wiLFxyXG4gICAgICBFZGl0OiBcIue8lui+kVwiLFxyXG4gICAgICBEZWxldGU6IFwi5Yig6ZmkXCIsXHJcbiAgICAgIERlbGV0ZUNvbmZpcm06IFwi56Gu6K6k5Yig6Zmk77yfXCIsXHJcbiAgICB9LFxyXG4gICAgRWRpdE1vZGFsOiB7XHJcbiAgICAgIFRpdGxlOiAocmVhZG9ubHk6IGJvb2xlYW4pID0+XHJcbiAgICAgICAgYOe8lui+kemihOiuvumdouWFtyAke3JlYWRvbmx5ID8gXCLvvIjlj6ror7vvvIlcIiA6IFwiXCJ9YCxcclxuICAgICAgRG93bmxvYWQ6IFwi5LiL6L296aKE6K6+XCIsXHJcbiAgICAgIENsb25lOiBcIuWFi+mahumihOiuvlwiLFxyXG4gICAgfSxcclxuICAgIENvbmZpZzoge1xyXG4gICAgICBBdmF0YXI6IFwi6KeS6Imy5aS05YOPXCIsXHJcbiAgICAgIE5hbWU6IFwi6KeS6Imy5ZCN56ewXCIsXHJcbiAgICAgIFN5bmM6IHtcclxuICAgICAgICBUaXRsZTogXCLkvb/nlKjlhajlsYDorr7nva5cIixcclxuICAgICAgICBTdWJUaXRsZTogXCLlvZPliY3lr7nor53mmK/lkKbkvb/nlKjlhajlsYDmqKHlnovorr7nva5cIixcclxuICAgICAgICBDb25maXJtOiBcIuW9k+WJjeWvueivneeahOiHquWumuS5ieiuvue9ruWwhuS8muiiq+iHquWKqOimhueblu+8jOehruiupOWQr+eUqOWFqOWxgOiuvue9ru+8n1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBIaWRlQ29udGV4dDoge1xyXG4gICAgICAgIFRpdGxlOiBcIumakOiXj+mihOiuvuWvueivnVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIumakOiXj+WQjumihOiuvuWvueivneS4jeS8muWHuueOsOWcqOiBiuWkqeeVjOmdolwiLFxyXG4gICAgICB9LFxyXG4gICAgICBBcnRpZmFjdHM6IHtcclxuICAgICAgICBUaXRsZTogXCLlkK/nlKhBcnRpZmFjdHNcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLlkK/nlKjkuYvlkI7lj6/ku6Xnm7TmjqXmuLLmn5NIVE1M6aG16Z2iXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIENvZGVGb2xkOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi5ZCv55So5Luj56CB5oqY5Y+gXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi5ZCv55So5LmL5ZCO5Y+v5Lul6Ieq5Yqo5oqY5Y+gL+WxleW8gOi/h+mVv+eahOS7o+eggeWdl1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBTaGFyZToge1xyXG4gICAgICAgIFRpdGxlOiBcIuWIhuS6q+atpOmdouWFt1wiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIueUn+aIkOatpOmdouWFt+eahOebtOi+vumTvuaOpVwiLFxyXG4gICAgICAgIEFjdGlvbjogXCLlpI3liLbpk77mjqVcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBOZXdDaGF0OiB7XHJcbiAgICBSZXR1cm46IFwi6L+U5ZueXCIsXHJcbiAgICBTa2lwOiBcIuebtOaOpeW8gOWni1wiLFxyXG4gICAgTm90U2hvdzogXCLkuI3lho3lsZXnpLpcIixcclxuICAgIENvbmZpcm1Ob1Nob3c6IFwi56Gu6K6k56aB55So77yf56aB55So5ZCO5Y+v5Lul6ZqP5pe25Zyo6K6+572u5Lit6YeN5paw5ZCv55So44CCXCIsXHJcbiAgICBUaXRsZTogXCLmjJHpgInkuIDkuKrpnaLlhbdcIixcclxuICAgIFN1YlRpdGxlOiBcIueOsOWcqOW8gOWni++8jOS4jumdouWFt+iDjOWQjueahOeBtemtguaAnee7tOeisOaSnlwiLFxyXG4gICAgTW9yZTogXCLmn6XnnIvlhajpg6hcIixcclxuICB9LFxyXG5cclxuICBVUkxDb21tYW5kOiB7XHJcbiAgICBDb2RlOiBcIuajgOa1i+WIsOmTvuaOpeS4reW3sue7j+WMheWQq+iuv+mXruegge+8jOaYr+WQpuiHquWKqOWhq+WFpe+8n1wiLFxyXG4gICAgU2V0dGluZ3M6IFwi5qOA5rWL5Yiw6ZO+5o6l5Lit5YyF5ZCr5LqG6aKE5Yi26K6+572u77yM5piv5ZCm6Ieq5Yqo5aGr5YWl77yfXCIsXHJcbiAgfSxcclxuXHJcbiAgVUk6IHtcclxuICAgIENvbmZpcm06IFwi56Gu6K6kXCIsXHJcbiAgICBDYW5jZWw6IFwi5Y+W5raIXCIsXHJcbiAgICBDbG9zZTogXCLlhbPpl61cIixcclxuICAgIENyZWF0ZTogXCLmlrDlu7pcIixcclxuICAgIEVkaXQ6IFwi57yW6L6RXCIsXHJcbiAgICBFeHBvcnQ6IFwi5a+85Ye6XCIsXHJcbiAgICBJbXBvcnQ6IFwi5a+85YWlXCIsXHJcbiAgICBTeW5jOiBcIuWQjOatpVwiLFxyXG4gICAgQ29uZmlnOiBcIumFjee9rlwiLFxyXG4gIH0sXHJcbiAgRXhwb3J0ZXI6IHtcclxuICAgIERlc2NyaXB0aW9uOiB7XHJcbiAgICAgIFRpdGxlOiBcIuWPquaciea4hemZpOS4iuS4i+aWh+S5i+WQjueahOa2iOaBr+S8muiiq+WxleekulwiLFxyXG4gICAgfSxcclxuICAgIE1vZGVsOiBcIuaooeWei1wiLFxyXG4gICAgTWVzc2FnZXM6IFwi5raI5oGvXCIsXHJcbiAgICBUb3BpYzogXCLkuLvpophcIixcclxuICAgIFRpbWU6IFwi5pe26Ze0XCIsXHJcbiAgfSxcclxuICBTZFBhbmVsOiB7XHJcbiAgICBQcm9tcHQ6IFwi55S76Z2i5o+Q56S6XCIsXHJcbiAgICBOZWdhdGl2ZVByb21wdDogXCLlkKblrprmj5DnpLpcIixcclxuICAgIFBsZWFzZUlucHV0OiAobmFtZTogc3RyaW5nKSA9PiBg6K+36L6T5YWlJHtuYW1lfWAsXHJcbiAgICBBc3BlY3RSYXRpbzogXCLmqKrnurXmr5RcIixcclxuICAgIEltYWdlU3R5bGU6IFwi5Zu+5YOP6aOO5qC8XCIsXHJcbiAgICBPdXRGb3JtYXQ6IFwi6L6T5Ye65qC85byPXCIsXHJcbiAgICBBSU1vZGVsOiBcIkFJ5qih5Z6LXCIsXHJcbiAgICBNb2RlbFZlcnNpb246IFwi5qih5Z6L54mI5pysXCIsXHJcbiAgICBTdWJtaXQ6IFwi5o+Q5Lqk55Sf5oiQXCIsXHJcbiAgICBQYXJhbUlzUmVxdWlyZWQ6IChuYW1lOiBzdHJpbmcpID0+IGAke25hbWV95LiN6IO95Li656m6YCxcclxuICAgIFN0eWxlczoge1xyXG4gICAgICBEM01vZGVsOiBcIjNE5qih5Z6LXCIsXHJcbiAgICAgIEFuYWxvZ0ZpbG06IFwi5qih5ouf55S15b2xXCIsXHJcbiAgICAgIEFuaW1lOiBcIuWKqOa8q1wiLFxyXG4gICAgICBDaW5lbWF0aWM6IFwi55S15b2x6aOO5qC8XCIsXHJcbiAgICAgIENvbWljQm9vazogXCLmvKvnlLvkuaZcIixcclxuICAgICAgRGlnaXRhbEFydDogXCLmlbDlrZfoibrmnK9cIixcclxuICAgICAgRW5oYW5jZTogXCLlop7lvLpcIixcclxuICAgICAgRmFudGFzeUFydDogXCLlubvmg7PoibrmnK9cIixcclxuICAgICAgSXNvbWV0cmljOiBcIuetieinklwiLFxyXG4gICAgICBMaW5lQXJ0OiBcIue6v+aPj1wiLFxyXG4gICAgICBMb3dQb2x5OiBcIuS9juWkmui+ueW9olwiLFxyXG4gICAgICBNb2RlbGluZ0NvbXBvdW5kOiBcIuW7uuaooeadkOaWmVwiLFxyXG4gICAgICBOZW9uUHVuazogXCLpnJPombnmnIvlhYtcIixcclxuICAgICAgT3JpZ2FtaTogXCLmipjnurhcIixcclxuICAgICAgUGhvdG9ncmFwaGljOiBcIuaRhOW9sVwiLFxyXG4gICAgICBQaXhlbEFydDogXCLlg4/ntKDoibrmnK9cIixcclxuICAgICAgVGlsZVRleHR1cmU6IFwi6LS05Zu+XCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgU2Q6IHtcclxuICAgIFN1YlRpdGxlOiAoY291bnQ6IG51bWJlcikgPT4gYOWFsSAke2NvdW50fSDmnaHnu5jnlLtgLFxyXG4gICAgQWN0aW9uczoge1xyXG4gICAgICBQYXJhbXM6IFwi5p+l55yL5Y+C5pWwXCIsXHJcbiAgICAgIENvcHk6IFwi5aSN5Yi25o+Q56S66K+NXCIsXHJcbiAgICAgIERlbGV0ZTogXCLliKDpmaRcIixcclxuICAgICAgUmV0cnk6IFwi6YeN6K+VXCIsXHJcbiAgICAgIFJldHVybkhvbWU6IFwi6L+U5Zue6aaW6aG1XCIsXHJcbiAgICAgIEhpc3Rvcnk6IFwi5p+l55yL5Y6G5Y+yXCIsXHJcbiAgICB9LFxyXG4gICAgRW1wdHlSZWNvcmQ6IFwi5pqC5peg57uY55S76K6w5b2VXCIsXHJcbiAgICBTdGF0dXM6IHtcclxuICAgICAgTmFtZTogXCLnirbmgIFcIixcclxuICAgICAgU3VjY2VzczogXCLmiJDlip9cIixcclxuICAgICAgRXJyb3I6IFwi5aSx6LSlXCIsXHJcbiAgICAgIFdhaXQ6IFwi562J5b6F5LitXCIsXHJcbiAgICAgIFJ1bm5pbmc6IFwi6L+Q6KGM5LitXCIsXHJcbiAgICB9LFxyXG4gICAgRGFuZ2VyOiB7XHJcbiAgICAgIERlbGV0ZTogXCLnoa7orqTliKDpmaTvvJ9cIixcclxuICAgIH0sXHJcbiAgICBHZW5lcmF0ZVBhcmFtczogXCLnlJ/miJDlj4LmlbBcIixcclxuICAgIERldGFpbDogXCLor6bmg4VcIixcclxuICB9LFxyXG59O1xyXG5cclxudHlwZSBEZWVwUGFydGlhbDxUPiA9IFQgZXh0ZW5kcyBvYmplY3RcclxuICA/IHtcclxuICAgICAgW1AgaW4ga2V5b2YgVF0/OiBEZWVwUGFydGlhbDxUW1BdPjtcclxuICAgIH1cclxuICA6IFQ7XHJcblxyXG5leHBvcnQgdHlwZSBMb2NhbGVUeXBlID0gdHlwZW9mIGNuO1xyXG5leHBvcnQgdHlwZSBQYXJ0aWFsTG9jYWxlVHlwZSA9IERlZXBQYXJ0aWFsPHR5cGVvZiBjbj47XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbjtcclxuIl0sIm5hbWVzIjpbImdldENsaWVudENvbmZpZyIsIlN1Ym1pdEtleSIsIlNBQVNfQ0hBVF9VVE1fVVJMIiwiaXNBcHAiLCJjbiIsIldJUCIsIkVycm9yIiwiVW5hdXRob3JpemVkIiwiQXV0aCIsIlJldHVybiIsIlRpdGxlIiwiVGlwcyIsIlN1YlRpcHMiLCJJbnB1dCIsIkNvbmZpcm0iLCJMYXRlciIsIlNhYXNUaXBzIiwiVG9wVGlwcyIsIkNoYXRJdGVtIiwiQ2hhdEl0ZW1Db3VudCIsImNvdW50IiwiQ2hhdCIsIlN1YlRpdGxlIiwiRWRpdE1lc3NhZ2UiLCJUb3BpYyIsIkFjdGlvbnMiLCJDaGF0TGlzdCIsIkNvbXByZXNzZWRIaXN0b3J5IiwiRXhwb3J0IiwiQ29weSIsIlN0b3AiLCJSZXRyeSIsIlBpbiIsIlBpblRvYXN0Q29udGVudCIsIlBpblRvYXN0QWN0aW9uIiwiRGVsZXRlIiwiRWRpdCIsIkZ1bGxTY3JlZW4iLCJSZWZyZXNoVGl0bGUiLCJSZWZyZXNoVG9hc3QiLCJTcGVlY2giLCJTdG9wU3BlZWNoIiwiQ29tbWFuZHMiLCJuZXciLCJuZXdtIiwibmV4dCIsInByZXYiLCJjbGVhciIsImZvcmsiLCJkZWwiLCJJbnB1dEFjdGlvbnMiLCJUb0JvdHRvbSIsIlRoZW1lIiwiYXV0byIsImxpZ2h0IiwiZGFyayIsIlByb21wdCIsIk1hc2tzIiwiQ2xlYXIiLCJTZXR0aW5ncyIsIlVwbG9hZEltYWdlIiwiUmVuYW1lIiwiVHlwaW5nIiwic3VibWl0S2V5IiwiaW5wdXRIaW50cyIsIlN0cmluZyIsIkVudGVyIiwiU2VuZCIsIlN0YXJ0U3BlYWsiLCJTdG9wU3BlYWsiLCJDb25maWciLCJSZXNldCIsIlNhdmVBcyIsIklzQ29udGV4dCIsIlNob3J0Y3V0S2V5IiwibmV3Q2hhdCIsImZvY3VzSW5wdXQiLCJjb3B5TGFzdE1lc3NhZ2UiLCJjb3B5TGFzdENvZGUiLCJzaG93U2hvcnRjdXRLZXkiLCJjbGVhckNvbnRleHQiLCJEb3dubG9hZCIsIlNoYXJlIiwiTWVzc2FnZUZyb21Zb3UiLCJNZXNzYWdlRnJvbUNoYXRHUFQiLCJGb3JtYXQiLCJJbmNsdWRlQ29udGV4dCIsIlN0ZXBzIiwiU2VsZWN0IiwiUHJldmlldyIsIkltYWdlIiwiVG9hc3QiLCJNb2RhbCIsIkFydGlmYWN0cyIsIlNlYXJjaCIsIkFsbCIsIkxhdGVzdCIsIk1lbW9yeSIsIkVtcHR5Q29udGVudCIsIlJlc2V0Q29uZmlybSIsIkhvbWUiLCJOZXdDaGF0IiwiRGVsZXRlQ2hhdCIsIkRlbGV0ZVRvYXN0IiwiUmV2ZXJ0IiwiU2hvd1Bhc3N3b3JkIiwiRGFuZ2VyIiwiQWN0aW9uIiwiTGFuZyIsIk5hbWUiLCJBdmF0YXIiLCJGb250U2l6ZSIsIkZvbnRGYW1pbHkiLCJQbGFjZWhvbGRlciIsIkluamVjdFN5c3RlbVByb21wdHMiLCJJbnB1dFRlbXBsYXRlIiwiVXBkYXRlIiwiVmVyc2lvbiIsIngiLCJJc0xhdGVzdCIsIkNoZWNrVXBkYXRlIiwiSXNDaGVja2luZyIsIkZvdW5kVXBkYXRlIiwiR29Ub1VwZGF0ZSIsIlN1Y2Nlc3MiLCJGYWlsZWQiLCJTZW5kS2V5IiwiVGlnaHRCb3JkZXIiLCJTZW5kUHJldmlld0J1YmJsZSIsIkF1dG9HZW5lcmF0ZVRpdGxlIiwiU3luYyIsIkNsb3VkU3RhdGUiLCJOb3RTeW5jWWV0IiwiRmFpbCIsIkNoZWNrIiwiU3luY1R5cGUiLCJQcm94eSIsIlByb3h5VXJsIiwiV2ViRGF2IiwiRW5kcG9pbnQiLCJVc2VyTmFtZSIsIlBhc3N3b3JkIiwiVXBTdGFzaCIsIkxvY2FsU3RhdGUiLCJPdmVydmlldyIsIm92ZXJ2aWV3IiwiY2hhdCIsIm1lc3NhZ2UiLCJwcm9tcHQiLCJtYXNrIiwiSW1wb3J0RmFpbGVkIiwiTWFzayIsIlNwbGFzaCIsIkJ1aWx0aW4iLCJEaXNhYmxlIiwiTGlzdCIsIkxpc3RDb3VudCIsImJ1aWx0aW4iLCJjdXN0b20iLCJBZGQiLCJFZGl0TW9kYWwiLCJIaXN0b3J5Q291bnQiLCJDb21wcmVzc1RocmVzaG9sZCIsIlVzYWdlIiwidXNlZCIsInRvdGFsIiwiTm9BY2Nlc3MiLCJBY2Nlc3MiLCJTYWFzU3RhcnQiLCJMYWJlbCIsIkNoYXROb3ciLCJBY2Nlc3NDb2RlIiwiQ3VzdG9tRW5kcG9pbnQiLCJQcm92aWRlciIsIk9wZW5BSSIsIkFwaUtleSIsIkF6dXJlIiwiQXBpVmVyaW9uIiwiQW50aHJvcGljIiwiR29vZ2xlIiwiQXBpVmVyc2lvbiIsIkdvb2dsZVNhZmV0eVNldHRpbmdzIiwiQmFpZHUiLCJTZWNyZXRLZXkiLCJUZW5jZW50IiwiQnl0ZURhbmNlIiwiQWxpYmFiYSIsIk1vb25zaG90IiwiRGVlcFNlZWsiLCJYQUkiLCJDaGF0R0xNIiwiU2lsaWNvbkZsb3ciLCJTdGFiaWxpdHkiLCJJZmx5dGVrIiwiQXBpU2VjcmV0IiwiQ3VzdG9tTW9kZWwiLCJNb2RlbCIsIkNvbXByZXNzTW9kZWwiLCJUZW1wZXJhdHVyZSIsIlRvcFAiLCJNYXhUb2tlbnMiLCJQcmVzZW5jZVBlbmFsdHkiLCJGcmVxdWVuY3lQZW5hbHR5IiwiVFRTIiwiRW5hYmxlIiwiQXV0b3BsYXkiLCJFbmdpbmUiLCJWb2ljZSIsIlNwZWVkIiwiUmVhbHRpbWUiLCJEZXBsb3ltZW50IiwiU3RvcmUiLCJEZWZhdWx0VG9waWMiLCJCb3RIZWxsbyIsIkhpc3RvcnkiLCJjb250ZW50IiwiU3VtbWFyaXplIiwiQ29udGV4dCIsIkRpc2NvdmVyeSIsIk1jcCIsIkZpbmVUdW5lZCIsIlN5c21lc3NhZ2UiLCJTZWFyY2hDaGF0IiwiUGFnZSIsIk5vUmVzdWx0IiwiTm9EYXRhIiwiTG9hZGluZyIsIkl0ZW0iLCJWaWV3IiwiUGx1Z2luIiwiQ3JlYXRlIiwiRmluZCIsIkluZm8iLCJEZWxldGVDb25maXJtIiwiTm9uZSIsIkJhc2ljIiwiQmVhcmVyIiwiQ3VzdG9tIiwiQ3VzdG9tSGVhZGVyIiwiVG9rZW4iLCJQcm94eURlc2NyaXB0aW9uIiwiTG9jYXRpb24iLCJMb2NhdGlvbkhlYWRlciIsIkxvY2F0aW9uUXVlcnkiLCJMb2NhdGlvbkJvZHkiLCJyZWFkb25seSIsIkNvbnRlbnQiLCJMb2FkIiwiTWV0aG9kIiwiQ2xvbmUiLCJIaWRlQ29udGV4dCIsIkNvZGVGb2xkIiwiU2tpcCIsIk5vdFNob3ciLCJDb25maXJtTm9TaG93IiwiTW9yZSIsIlVSTENvbW1hbmQiLCJDb2RlIiwiVUkiLCJDYW5jZWwiLCJDbG9zZSIsIkltcG9ydCIsIkV4cG9ydGVyIiwiRGVzY3JpcHRpb24iLCJNZXNzYWdlcyIsIlRpbWUiLCJTZFBhbmVsIiwiTmVnYXRpdmVQcm9tcHQiLCJQbGVhc2VJbnB1dCIsIm5hbWUiLCJBc3BlY3RSYXRpbyIsIkltYWdlU3R5bGUiLCJPdXRGb3JtYXQiLCJBSU1vZGVsIiwiTW9kZWxWZXJzaW9uIiwiU3VibWl0IiwiUGFyYW1Jc1JlcXVpcmVkIiwiU3R5bGVzIiwiRDNNb2RlbCIsIkFuYWxvZ0ZpbG0iLCJBbmltZSIsIkNpbmVtYXRpYyIsIkNvbWljQm9vayIsIkRpZ2l0YWxBcnQiLCJFbmhhbmNlIiwiRmFudGFzeUFydCIsIklzb21ldHJpYyIsIkxpbmVBcnQiLCJMb3dQb2x5IiwiTW9kZWxpbmdDb21wb3VuZCIsIk5lb25QdW5rIiwiT3JpZ2FtaSIsIlBob3RvZ3JhcGhpYyIsIlBpeGVsQXJ0IiwiVGlsZVRleHR1cmUiLCJTZCIsIlBhcmFtcyIsIlJldHVybkhvbWUiLCJFbXB0eVJlY29yZCIsIlN0YXR1cyIsIldhaXQiLCJSdW5uaW5nIiwiR2VuZXJhdGVQYXJhbXMiLCJEZXRhaWwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/locales/cn.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/locales/cs.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/locales/cs.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _store_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../store/config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n\n\n\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_1__.getClientConfig)()?.isApp;\nconst cs = {\n WIP: \"V př\\xedpravě...\",\n Error: {\n Unauthorized: isApp ? `😆 Rozhovor narazil na nějaké problémy, nebojte se:\r\n \\\\ 1️⃣ Pokud chcete začít bez konfigurace, [klikněte sem pro okamžitý začátek chatu 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\\\ 2️⃣ Pokud chcete využít své vlastní zdroje OpenAI, klikněte [sem](/#/settings) a upravte nastavení ⚙️` : `😆 Rozhovor narazil na nějaké problémy, nebojte se:\r\n \\ 1️⃣ Pokud chcete začít bez konfigurace, [klikněte sem pro okamžitý začátek chatu 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\ 2️⃣ Pokud používáte verzi soukromého nasazení, klikněte [sem](/#/auth) a zadejte přístupový klíč 🔑\r\n \\ 3️⃣ Pokud chcete využít své vlastní zdroje OpenAI, klikněte [sem](/#/settings) a upravte nastavení ⚙️\r\n `\n },\n Auth: {\n Title: \"Potřebn\\xe9 heslo\",\n Tips: \"Administr\\xe1tor povolil ověřen\\xed heslem, pros\\xedm zadejte př\\xedstupov\\xfd k\\xf3d n\\xedže\",\n SubTips: \"nebo zadejte svůj OpenAI nebo Google API kl\\xedč\",\n Input: \"Zadejte př\\xedstupov\\xfd k\\xf3d zde\",\n Confirm: \"Potvrdit\",\n Later: \"Později\",\n Return: \"N\\xe1vrat\",\n SaasTips: \"Konfigurace je př\\xedliš složit\\xe1, chci okamžitě zač\\xedt použ\\xedvat\",\n TopTips: \"\\uD83E\\uDD73 Uv\\xedtac\\xed nab\\xeddka NextChat AI, okamžitě odemkněte OpenAI o1, GPT-4o, Claude-3.5 a nejnovějš\\xed velk\\xe9 modely\"\n },\n ChatItem: {\n ChatItemCount: (count)=>`${count} konverzací`\n },\n Chat: {\n SubTitle: (count)=>`Celkem ${count} konverzací`,\n EditMessage: {\n Title: \"Upravit zpr\\xe1vy\",\n Topic: {\n Title: \"T\\xe9ma konverzace\",\n SubTitle: \"Změnit aktu\\xe1ln\\xed t\\xe9ma konverzace\"\n }\n },\n Actions: {\n ChatList: \"Zobrazit seznam zpr\\xe1v\",\n CompressedHistory: \"Zobrazit komprimovanou historii Prompt\",\n Export: \"Exportovat konverzace\",\n Copy: \"Kop\\xedrovat\",\n Stop: \"Zastavit\",\n Retry: \"Zkusit znovu\",\n Pin: \"Připnout\",\n PinToastContent: \"1 konverzace byla připnuta k přednastaven\\xfdm promptům\",\n PinToastAction: \"Zobrazit\",\n Delete: \"Smazat\",\n Edit: \"Upravit\",\n RefreshTitle: \"Obnovit n\\xe1zev\",\n RefreshToast: \"Požadavek na obnoven\\xed n\\xe1zvu byl odesl\\xe1n\"\n },\n Commands: {\n new: \"Nov\\xe1 konverzace\",\n newm: \"Nov\\xe1 konverzace z masky\",\n next: \"Dalš\\xed konverzace\",\n prev: \"Předchoz\\xed konverzace\",\n clear: \"Vymazat kontext\",\n del: \"Smazat konverzaci\"\n },\n InputActions: {\n Stop: \"Zastavit odpověď\",\n ToBottom: \"Přej\\xedt na nejnovějš\\xed\",\n Theme: {\n auto: \"Automatick\\xe9 t\\xe9ma\",\n light: \"Světeln\\xfd režim\",\n dark: \"Tmav\\xfd režim\"\n },\n Prompt: \"Rychl\\xe9 př\\xedkazy\",\n Masks: \"Všechny masky\",\n Clear: \"Vymazat konverzaci\",\n Settings: \"Nastaven\\xed konverzace\",\n UploadImage: \"Nahr\\xe1t obr\\xe1zek\"\n },\n Rename: \"Přejmenovat konverzaci\",\n Typing: \"P\\xedše se…\",\n Input: (submitKey)=>{\n var inputHints = `${submitKey} odeslat`;\n if (submitKey === String(_store_config__WEBPACK_IMPORTED_MODULE_0__.SubmitKey.Enter)) {\n inputHints += \",Shift + Enter pro nov\\xfd ř\\xe1dek\";\n }\n return inputHints + \",/ pro doplněn\\xed, : pro př\\xedkaz\";\n },\n Send: \"Odeslat\",\n Config: {\n Reset: \"Vymazat paměť\",\n SaveAs: \"Uložit jako masku\"\n },\n IsContext: \"Přednastaven\\xe9 prompty\"\n },\n Export: {\n Title: \"Sd\\xedlet konverzace\",\n Copy: \"Kop\\xedrovat vše\",\n Download: \"St\\xe1hnout soubor\",\n Share: \"Sd\\xedlet na ShareGPT\",\n MessageFromYou: \"Uživatel\",\n MessageFromChatGPT: \"ChatGPT\",\n Format: {\n Title: \"Form\\xe1t exportu\",\n SubTitle: \"Lze exportovat jako Markdown text nebo PNG obr\\xe1zek\"\n },\n IncludeContext: {\n Title: \"Zahrnout kontext masky\",\n SubTitle: \"Zobrazit kontext masky ve zpr\\xe1v\\xe1ch\"\n },\n Steps: {\n Select: \"Vybrat\",\n Preview: \"N\\xe1hled\"\n },\n Image: {\n Toast: \"Generov\\xe1n\\xed screenshotu\",\n Modal: \"Dlouh\\xfdm stiskem nebo prav\\xfdm tlač\\xedtkem myši uložte obr\\xe1zek\"\n }\n },\n Select: {\n Search: \"Hledat zpr\\xe1vy\",\n All: \"Vybrat vše\",\n Latest: \"Několik posledn\\xedch\",\n Clear: \"Zrušit v\\xfdběr\"\n },\n Memory: {\n Title: \"Historie shrnut\\xed\",\n EmptyContent: \"Obsah konverzace je př\\xedliš kr\\xe1tk\\xfd, nen\\xed třeba shrnovat\",\n Send: \"Automaticky komprimovat konverzace a odeslat jako kontext\",\n Copy: \"Kop\\xedrovat shrnut\\xed\",\n Reset: \"[nepouž\\xedv\\xe1 se]\",\n ResetConfirm: \"Opravdu chcete vymazat historii shrnut\\xed?\"\n },\n Home: {\n NewChat: \"Nov\\xe1 konverzace\",\n DeleteChat: \"Opravdu chcete smazat vybranou konverzaci?\",\n DeleteToast: \"Konverzace byla smaz\\xe1na\",\n Revert: \"Vr\\xe1tit\"\n },\n Settings: {\n Title: \"Nastaven\\xed\",\n SubTitle: \"Všechny možnosti nastaven\\xed\",\n Danger: {\n Reset: {\n Title: \"Obnovit všechna nastaven\\xed\",\n SubTitle: \"Obnovit všechny nastaven\\xed na v\\xfdchoz\\xed hodnoty\",\n Action: \"Okamžitě obnovit\",\n Confirm: \"Opravdu chcete obnovit všechna nastaven\\xed?\"\n },\n Clear: {\n Title: \"Smazat všechna data\",\n SubTitle: \"Smazat všechny chaty a nastaven\\xed\",\n Action: \"Okamžitě smazat\",\n Confirm: \"Opravdu chcete smazat všechny chaty a nastaven\\xed?\"\n }\n },\n Lang: {\n Name: \"Language\",\n All: \"Všechny jazyky\"\n },\n Avatar: \"Profilov\\xfd obr\\xe1zek\",\n FontSize: {\n Title: \"Velikost p\\xedsma\",\n SubTitle: \"Velikost p\\xedsma pro obsah chatu\"\n },\n FontFamily: {\n Title: \"Chatov\\xe9 P\\xedsmo\",\n SubTitle: \"P\\xedsmo obsahu chatu, ponechejte pr\\xe1zdn\\xe9 pro použit\\xed glob\\xe1ln\\xedho v\\xfdchoz\\xedho p\\xedsma\",\n Placeholder: \"N\\xe1zev P\\xedsma\"\n },\n InjectSystemPrompts: {\n Title: \"Vložit syst\\xe9mov\\xe9 v\\xfdzvy\",\n SubTitle: \"Automaticky přidat syst\\xe9movou v\\xfdzvu simuluj\\xedc\\xed ChatGPT na zač\\xe1tek seznamu zpr\\xe1v pro každ\\xfd požadavek\"\n },\n InputTemplate: {\n Title: \"Předzpracov\\xe1n\\xed uživatelsk\\xe9ho vstupu\",\n SubTitle: \"Nejnovějš\\xed zpr\\xe1va uživatele bude vyplněna do t\\xe9to šablony\"\n },\n Update: {\n Version: (x)=>`Aktuální verze: ${x}`,\n IsLatest: \"Jste na nejnovějš\\xed verzi\",\n CheckUpdate: \"Zkontrolovat aktualizace\",\n IsChecking: \"Kontrola aktualizac\\xed...\",\n FoundUpdate: (x)=>`Nalezena nová verze: ${x}`,\n GoToUpdate: \"Přej\\xedt na aktualizaci\"\n },\n SendKey: \"Kl\\xe1vesa pro odesl\\xe1n\\xed\",\n Theme: \"T\\xe9ma\",\n TightBorder: \"Režim bez okrajů\",\n SendPreviewBubble: {\n Title: \"N\\xe1hledov\\xe1 bublina\",\n SubTitle: \"N\\xe1hled Markdown obsahu v n\\xe1hledov\\xe9 bublině\"\n },\n AutoGenerateTitle: {\n Title: \"Automatick\\xe9 generov\\xe1n\\xed n\\xe1zvu\",\n SubTitle: \"Generovat vhodn\\xfd n\\xe1zev na z\\xe1kladě obsahu konverzace\"\n },\n Sync: {\n CloudState: \"Data na cloudu\",\n NotSyncYet: \"Ještě nebylo synchronizov\\xe1no\",\n Success: \"Synchronizace \\xfaspěšn\\xe1\",\n Fail: \"Synchronizace selhala\",\n Config: {\n Modal: {\n Title: \"Nastaven\\xed cloudov\\xe9 synchronizace\",\n Check: \"Zkontrolovat dostupnost\"\n },\n SyncType: {\n Title: \"Typ synchronizace\",\n SubTitle: \"Vyberte obl\\xedben\\xfd synchronizačn\\xed server\"\n },\n Proxy: {\n Title: \"Povolit proxy\",\n SubTitle: \"Při synchronizaci v prohl\\xedžeči mus\\xed b\\xfdt proxy povolena, aby se předešlo probl\\xe9mům s CORS\"\n },\n ProxyUrl: {\n Title: \"Adresa proxy\",\n SubTitle: \"Pouze pro intern\\xed proxy\"\n },\n WebDav: {\n Endpoint: \"WebDAV adresa\",\n UserName: \"Uživatelsk\\xe9 jm\\xe9no\",\n Password: \"Heslo\"\n },\n UpStash: {\n Endpoint: \"UpStash Redis REST URL\",\n UserName: \"N\\xe1zev z\\xe1lohy\",\n Password: \"UpStash Redis REST Token\"\n }\n },\n LocalState: \"Lok\\xe1ln\\xed data\",\n Overview: (overview)=>{\n return `${overview.chat} konverzací, ${overview.message} zpráv, ${overview.prompt} promptů, ${overview.mask} masek`;\n },\n ImportFailed: \"Import selhal\"\n },\n Mask: {\n Splash: {\n Title: \"\\xdavodn\\xed str\\xe1nka masky\",\n SubTitle: \"Při zah\\xe1jen\\xed nov\\xe9 konverzace zobrazit \\xfavodn\\xed str\\xe1nku masky\"\n },\n Builtin: {\n Title: \"Skr\\xfdt vestavěn\\xe9 masky\",\n SubTitle: \"Skr\\xfdt vestavěn\\xe9 masky v seznamu všech masek\"\n }\n },\n Prompt: {\n Disable: {\n Title: \"Zak\\xe1zat automatick\\xe9 doplňov\\xe1n\\xed promptů\",\n SubTitle: \"Automatick\\xe9 doplňov\\xe1n\\xed se aktivuje zad\\xe1n\\xedm / na zač\\xe1tku textov\\xe9ho pole\"\n },\n List: \"Seznam vlastn\\xedch promptů\",\n ListCount: (builtin, custom)=>`Vestavěné ${builtin} položek, uživatelsky definované ${custom} položek`,\n Edit: \"Upravit\",\n Modal: {\n Title: \"Seznam promptů\",\n Add: \"Nov\\xfd\",\n Search: \"Hledat prompty\"\n },\n EditModal: {\n Title: \"Upravit prompt\"\n }\n },\n HistoryCount: {\n Title: \"Počet historick\\xfdch zpr\\xe1v\",\n SubTitle: \"Počet historick\\xfdch zpr\\xe1v zahrnut\\xfdch v každ\\xe9m požadavku\"\n },\n CompressThreshold: {\n Title: \"Prahov\\xe1 hodnota komprese historick\\xfdch zpr\\xe1v\",\n SubTitle: \"Když nekomprimovan\\xe9 historick\\xe9 zpr\\xe1vy překroč\\xed tuto hodnotu, dojde ke kompresi\"\n },\n Usage: {\n Title: \"Kontrola zůstatku\",\n SubTitle (used, total) {\n return `Tento měsíc použito $${used}, celkový předplatný objem $${total}`;\n },\n IsChecking: \"Prob\\xedh\\xe1 kontrola…\",\n Check: \"Znovu zkontrolovat\",\n NoAccess: \"Zadejte API Key nebo př\\xedstupov\\xe9 heslo pro zobrazen\\xed zůstatku\"\n },\n Access: {\n SaasStart: {\n Title: \"Použit\\xed NextChat AI\",\n Label: \"(Nejlepš\\xed n\\xe1kladově efektivn\\xed řešen\\xed)\",\n SubTitle: \"Ofici\\xe1lně udržov\\xe1no NextChat, připraveno k použit\\xed bez konfigurace, podporuje nejnovějš\\xed velk\\xe9 modely jako OpenAI o1, GPT-4o, Claude-3.5\",\n ChatNow: \"Začněte chatovat nyn\\xed\"\n },\n AccessCode: {\n Title: \"Př\\xedstupov\\xfd k\\xf3d\",\n SubTitle: \"Administr\\xe1tor aktivoval šifrovan\\xfd př\\xedstup\",\n Placeholder: \"Zadejte př\\xedstupov\\xfd k\\xf3d\"\n },\n CustomEndpoint: {\n Title: \"Vlastn\\xed rozhran\\xed\",\n SubTitle: \"Použ\\xedt vlastn\\xed Azure nebo OpenAI službu\"\n },\n Provider: {\n Title: \"Poskytovatel modelu\",\n SubTitle: \"Přepnout mezi různ\\xfdmi poskytovateli\"\n },\n OpenAI: {\n ApiKey: {\n Title: \"API Key\",\n SubTitle: \"Použijte vlastn\\xed OpenAI Key k obejit\\xed př\\xedstupov\\xe9ho omezen\\xed\",\n Placeholder: \"OpenAI API Key\"\n },\n Endpoint: {\n Title: \"Adresa rozhran\\xed\",\n SubTitle: \"Kromě v\\xfdchoz\\xed adresy mus\\xed obsahovat http(s)://\"\n }\n },\n Azure: {\n ApiKey: {\n Title: \"Rozhran\\xed kl\\xedč\",\n SubTitle: \"Použijte vlastn\\xed Azure Key k obejit\\xed př\\xedstupov\\xe9ho omezen\\xed\",\n Placeholder: \"Azure API Key\"\n },\n Endpoint: {\n Title: \"Adresa rozhran\\xed\",\n SubTitle: \"Př\\xedklad:\"\n },\n ApiVerion: {\n Title: \"Verze rozhran\\xed (azure api version)\",\n SubTitle: \"Vyberte konkr\\xe9tn\\xed verzi\"\n }\n },\n Anthropic: {\n ApiKey: {\n Title: \"Rozhran\\xed kl\\xedč\",\n SubTitle: \"Použijte vlastn\\xed Anthropic Key k obejit\\xed př\\xedstupov\\xe9ho omezen\\xed\",\n Placeholder: \"Anthropic API Key\"\n },\n Endpoint: {\n Title: \"Adresa rozhran\\xed\",\n SubTitle: \"Př\\xedklad:\"\n },\n ApiVerion: {\n Title: \"Verze rozhran\\xed (claude api version)\",\n SubTitle: \"Vyberte konkr\\xe9tn\\xed verzi API\"\n }\n },\n Google: {\n ApiKey: {\n Title: \"API kl\\xedč\",\n SubTitle: \"Z\\xedskejte svůj API kl\\xedč od Google AI\",\n Placeholder: \"Zadejte svůj Google AI Studio API kl\\xedč\"\n },\n Endpoint: {\n Title: \"Konečn\\xe1 adresa\",\n SubTitle: \"Př\\xedklad:\"\n },\n ApiVersion: {\n Title: \"Verze API (pouze pro gemini-pro)\",\n SubTitle: \"Vyberte konkr\\xe9tn\\xed verzi API\"\n },\n GoogleSafetySettings: {\n Title: \"\\xdaroveň bezpečnostn\\xedho filtrov\\xe1n\\xed Google\",\n SubTitle: \"Nastavit \\xfaroveň filtrov\\xe1n\\xed obsahu\"\n }\n },\n Baidu: {\n ApiKey: {\n Title: \"API Key\",\n SubTitle: \"Použijte vlastn\\xed Baidu API Key\",\n Placeholder: \"Baidu API Key\"\n },\n SecretKey: {\n Title: \"Secret Key\",\n SubTitle: \"Použijte vlastn\\xed Baidu Secret Key\",\n Placeholder: \"Baidu Secret Key\"\n },\n Endpoint: {\n Title: \"Adresa rozhran\\xed\",\n SubTitle: \"Nepodporuje vlastn\\xed nastaven\\xed, přejděte na .env konfiguraci\"\n }\n },\n ByteDance: {\n ApiKey: {\n Title: \"Rozhran\\xed kl\\xedč\",\n SubTitle: \"Použijte vlastn\\xed ByteDance API Key\",\n Placeholder: \"ByteDance API Key\"\n },\n Endpoint: {\n Title: \"Adresa rozhran\\xed\",\n SubTitle: \"Př\\xedklad:\"\n }\n },\n Alibaba: {\n ApiKey: {\n Title: \"Rozhran\\xed kl\\xedč\",\n SubTitle: \"Použijte vlastn\\xed Alibaba Cloud API Key\",\n Placeholder: \"Alibaba Cloud API Key\"\n },\n Endpoint: {\n Title: \"Adresa rozhran\\xed\",\n SubTitle: \"Př\\xedklad:\"\n }\n },\n CustomModel: {\n Title: \"Vlastn\\xed n\\xe1zvy modelů\",\n SubTitle: \"Přidejte možnosti vlastn\\xedch modelů, oddělen\\xe9 č\\xe1rkami\"\n }\n },\n Model: \"Model (model)\",\n CompressModel: {\n Title: \"Kompresn\\xed model\",\n SubTitle: \"Model použ\\xedvan\\xfd pro kompresi historie\"\n },\n Temperature: {\n Title: \"N\\xe1hodnost (temperature)\",\n SubTitle: \"Č\\xedm vyšš\\xed hodnota, t\\xedm n\\xe1hodnějš\\xed odpovědi\"\n },\n TopP: {\n Title: \"J\\xe1drov\\xe9 vzorkov\\xe1n\\xed (top_p)\",\n SubTitle: \"Podobn\\xe9 n\\xe1hodnosti, ale neměňte spolu s n\\xe1hodnost\\xed\"\n },\n MaxTokens: {\n Title: \"Omezen\\xed odpovědi (max_tokens)\",\n SubTitle: \"Maxim\\xe1ln\\xed počet Tokenů použit\\xfdch v jednom interakci\"\n },\n PresencePenalty: {\n Title: \"Čerstvost t\\xe9mat (presence_penalty)\",\n SubTitle: \"Č\\xedm vyšš\\xed hodnota, t\\xedm větš\\xed pravděpodobnost rozš\\xedřen\\xed na nov\\xe1 t\\xe9mata\"\n },\n FrequencyPenalty: {\n Title: \"Penalizace frekvence (frequency_penalty)\",\n SubTitle: \"Č\\xedm vyšš\\xed hodnota, t\\xedm větš\\xed pravděpodobnost sn\\xedžen\\xed opakov\\xe1n\\xed slov\"\n }\n },\n Store: {\n DefaultTopic: \"Nov\\xfd chat\",\n BotHello: \"Jak v\\xe1m mohu pomoci?\",\n Error: \"Došlo k chybě, zkuste to pros\\xedm znovu později.\",\n Prompt: {\n History: (content)=>\"Toto je shrnut\\xed historie chatu jako kontext: \" + content,\n Topic: \"Použijte čtyři až pět slov pro stručn\\xe9 t\\xe9ma t\\xe9to věty, bez vysvětlen\\xed, interpunkce, citoslovc\\xed, nadbytečn\\xe9ho textu, bez tučn\\xe9ho p\\xedsma. Pokud t\\xe9ma neexistuje, vraťte pouze 'neform\\xe1ln\\xed chat'.\",\n Summarize: \"Stručně shrňte obsah konverzace jako kontextov\\xfd prompt pro budouc\\xed použit\\xed, do 200 slov\"\n }\n },\n Copy: {\n Success: \"Zkop\\xedrov\\xe1no do schr\\xe1nky\",\n Failed: \"Kop\\xedrov\\xe1n\\xed selhalo, pros\\xedm, povolte př\\xedstup ke schr\\xe1nce\"\n },\n Download: {\n Success: \"Obsah byl stažen do vašeho adres\\xe1ře.\",\n Failed: \"Stahov\\xe1n\\xed selhalo.\"\n },\n Context: {\n Toast: (x)=>`Obsahuje ${x} přednastavených promptů`,\n Edit: \"Nastaven\\xed aktu\\xe1ln\\xed konverzace\",\n Add: \"Přidat novou konverzaci\",\n Clear: \"Kontext byl vymaz\\xe1n\",\n Revert: \"Obnovit kontext\"\n },\n Plugin: {\n Name: \"Plugin\"\n },\n FineTuned: {\n Sysmessage: \"Jste asistent\"\n },\n SearchChat: {\n Name: \"Hledat\",\n Page: {\n Title: \"Hledat v historii chatu\",\n Search: \"Zadejte hledan\\xe9 kl\\xedčov\\xe9 slovo\",\n NoResult: \"Nebyly nalezeny ž\\xe1dn\\xe9 v\\xfdsledky\",\n NoData: \"Ž\\xe1dn\\xe1 data\",\n Loading: \"Nač\\xedt\\xe1n\\xed\",\n SubTitle: (count)=>`Nalezeno ${count} výsledků`\n },\n Item: {\n View: \"Zobrazit\"\n }\n },\n Mask: {\n Name: \"Maska\",\n Page: {\n Title: \"Přednastaven\\xe9 role masky\",\n SubTitle: (count)=>`${count} definovaných rolí`,\n Search: \"Hledat role masky\",\n Create: \"Nov\\xfd\"\n },\n Item: {\n Info: (count)=>`Obsahuje ${count} přednastavených konverzací`,\n Chat: \"Chat\",\n View: \"Zobrazit\",\n Edit: \"Upravit\",\n Delete: \"Smazat\",\n DeleteConfirm: \"Opravdu chcete smazat?\"\n },\n EditModal: {\n Title: (readonly)=>`Upravit přednastavenou masku ${readonly ? \" (jen pro čten\\xed)\" : \"\"}`,\n Download: \"St\\xe1hnout přednastaven\\xed\",\n Clone: \"Klonovat přednastaven\\xed\"\n },\n Config: {\n Avatar: \"Profilov\\xfd obr\\xe1zek\",\n Name: \"N\\xe1zev role\",\n Sync: {\n Title: \"Použ\\xedt glob\\xe1ln\\xed nastaven\\xed\",\n SubTitle: \"Použ\\xedt glob\\xe1ln\\xed modelov\\xe1 nastaven\\xed pro aktu\\xe1ln\\xed konverzaci\",\n Confirm: \"Vaše vlastn\\xed nastaven\\xed konverzace bude automaticky přeps\\xe1no, opravdu chcete použ\\xedt glob\\xe1ln\\xed nastaven\\xed?\"\n },\n HideContext: {\n Title: \"Skr\\xfdt přednastaven\\xe9 konverzace\",\n SubTitle: \"Po skryt\\xed se přednastaven\\xe9 konverzace nebudou zobrazovat v chatov\\xe9m rozhran\\xed\"\n },\n Share: {\n Title: \"Sd\\xedlet tuto masku\",\n SubTitle: \"Generovat př\\xedm\\xfd odkaz na tuto masku\",\n Action: \"Kop\\xedrovat odkaz\"\n }\n }\n },\n NewChat: {\n Return: \"Zpět\",\n Skip: \"Zač\\xedt hned\",\n NotShow: \"Zobrazit už nikdy\",\n ConfirmNoShow: \"Opravdu chcete zak\\xe1zat? Zak\\xe1z\\xe1n\\xed můžete kdykoli znovu povolit v nastaven\\xed.\",\n Title: \"Vyberte masku\",\n SubTitle: \"Začněte nyn\\xed a konfrontujte se s mysl\\xed za maskou\",\n More: \"Zobrazit vše\"\n },\n URLCommand: {\n Code: \"Byl detekov\\xe1n př\\xedstupov\\xfd k\\xf3d v odkazu, chcete jej automaticky vyplnit?\",\n Settings: \"Byla detekov\\xe1na přednastaven\\xe1 nastaven\\xed v odkazu, chcete je automaticky vyplnit?\"\n },\n UI: {\n Confirm: \"Potvrdit\",\n Cancel: \"Zrušit\",\n Close: \"Zavř\\xedt\",\n Create: \"Nov\\xfd\",\n Edit: \"Upravit\",\n Export: \"Exportovat\",\n Import: \"Importovat\",\n Sync: \"Synchronizovat\",\n Config: \"Konfigurovat\"\n },\n Exporter: {\n Description: {\n Title: \"Pouze zpr\\xe1vy po vymaz\\xe1n\\xed kontextu budou zobrazeny\"\n },\n Model: \"Model\",\n Messages: \"Zpr\\xe1vy\",\n Topic: \"T\\xe9ma\",\n Time: \"Čas\"\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (cs);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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YSxVQUFVO1FBQ1Z1TCxNQUFNO0lBQ1I7SUFFQUMsWUFBWTtRQUNWQyxNQUFNO1FBQ054SixVQUNFO0lBQ0o7SUFFQXlKLElBQUk7UUFDRm5NLFNBQVM7UUFDVG9NLFFBQVE7UUFDUkMsT0FBTztRQUNQZCxRQUFRO1FBQ1JoSyxNQUFNO1FBQ05SLFFBQVE7UUFDUnVMLFFBQVE7UUFDUmxHLE1BQU07UUFDTmpELFFBQVE7SUFDVjtJQUNBb0osVUFBVTtRQUNSQyxhQUFhO1lBQ1g1TSxPQUFPO1FBQ1Q7UUFDQWtLLE9BQU87UUFDUDJDLFVBQVU7UUFDVjlMLE9BQU87UUFDUCtMLE1BQU07SUFDUjtBQUNGO0FBRUEsaUVBQWVuTixFQUFFQSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvbG9jYWxlcy9jcy50cz8zYjI4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1Ym1pdEtleSB9IGZyb20gXCIuLi9zdG9yZS9jb25maWdcIjtcclxuaW1wb3J0IHR5cGUgeyBQYXJ0aWFsTG9jYWxlVHlwZSB9IGZyb20gXCIuL2luZGV4XCI7XHJcbmltcG9ydCB7IGdldENsaWVudENvbmZpZyB9IGZyb20gXCIuLi9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB7IFNBQVNfQ0hBVF9VVE1fVVJMIH0gZnJvbSBcIkAvYXBwL2NvbnN0YW50XCI7XHJcbmNvbnN0IGlzQXBwID0gISFnZXRDbGllbnRDb25maWcoKT8uaXNBcHA7XHJcblxyXG5jb25zdCBjczogUGFydGlhbExvY2FsZVR5cGUgPSB7XHJcbiAgV0lQOiBcIlYgcMWZw61wcmF2xJsuLi5cIixcclxuICBFcnJvcjoge1xyXG4gICAgVW5hdXRob3JpemVkOiBpc0FwcFxyXG4gICAgICA/IGDwn5iGIFJvemhvdm9yIG5hcmF6aWwgbmEgbsSbamFrw6kgcHJvYmzDqW15LCBuZWJvanRlIHNlOlxyXG4gICAgXFxcXCAx77iP4oOjIFBva3VkIGNoY2V0ZSB6YcSNw610IGJleiBrb25maWd1cmFjZSwgW2tsaWtuxJt0ZSBzZW0gcHJvIG9rYW3Fvml0w70gemHEjcOhdGVrIGNoYXR1IPCfmoBdKCR7U0FBU19DSEFUX1VUTV9VUkx9KVxyXG4gICAgXFxcXCAy77iP4oOjIFBva3VkIGNoY2V0ZSB2eXXFvsOtdCBzdsOpIHZsYXN0bsOtIHpkcm9qZSBPcGVuQUksIGtsaWtuxJt0ZSBbc2VtXSgvIy9zZXR0aW5ncykgYSB1cHJhdnRlIG5hc3RhdmVuw60g4pqZ77iPYFxyXG4gICAgICA6IGDwn5iGIFJvemhvdm9yIG5hcmF6aWwgbmEgbsSbamFrw6kgcHJvYmzDqW15LCBuZWJvanRlIHNlOlxyXG4gICAgXFwgMe+4j+KDoyBQb2t1ZCBjaGNldGUgemHEjcOtdCBiZXoga29uZmlndXJhY2UsIFtrbGlrbsSbdGUgc2VtIHBybyBva2Ftxb5pdMO9IHphxI3DoXRlayBjaGF0dSDwn5qAXSgke1NBQVNfQ0hBVF9VVE1fVVJMfSlcclxuICAgIFxcIDLvuI/ig6MgUG9rdWQgcG91xb7DrXbDoXRlIHZlcnppIHNvdWtyb23DqWhvIG5hc2F6ZW7DrSwga2xpa27Em3RlIFtzZW1dKC8jL2F1dGgpIGEgemFkZWp0ZSBwxZnDrXN0dXBvdsO9IGtsw63EjSDwn5SRXHJcbiAgICBcXCAz77iP4oOjIFBva3VkIGNoY2V0ZSB2eXXFvsOtdCBzdsOpIHZsYXN0bsOtIHpkcm9qZSBPcGVuQUksIGtsaWtuxJt0ZSBbc2VtXSgvIy9zZXR0aW5ncykgYSB1cHJhdnRlIG5hc3RhdmVuw60g4pqZ77iPXHJcbiBgLFxyXG4gIH0sXHJcbiAgQXV0aDoge1xyXG4gICAgVGl0bGU6IFwiUG90xZllYm7DqSBoZXNsb1wiLFxyXG4gICAgVGlwczogXCJBZG1pbmlzdHLDoXRvciBwb3ZvbGlsIG92xJvFmWVuw60gaGVzbGVtLCBwcm9zw61tIHphZGVqdGUgcMWZw61zdHVwb3bDvSBrw7NkIG7DrcW+ZVwiLFxyXG4gICAgU3ViVGlwczogXCJuZWJvIHphZGVqdGUgc3bFr2ogT3BlbkFJIG5lYm8gR29vZ2xlIEFQSSBrbMOtxI1cIixcclxuICAgIElucHV0OiBcIlphZGVqdGUgcMWZw61zdHVwb3bDvSBrw7NkIHpkZVwiLFxyXG4gICAgQ29uZmlybTogXCJQb3R2cmRpdFwiLFxyXG4gICAgTGF0ZXI6IFwiUG96ZMSbamlcIixcclxuICAgIFJldHVybjogXCJOw6F2cmF0XCIsXHJcbiAgICBTYWFzVGlwczogXCJLb25maWd1cmFjZSBqZSBwxZnDrWxpxaEgc2xvxb5pdMOhLCBjaGNpIG9rYW3Fvml0xJsgemHEjcOtdCBwb3XFvsOtdmF0XCIsXHJcbiAgICBUb3BUaXBzOlxyXG4gICAgICBcIvCfpbMgVXbDrXRhY8OtIG5hYsOtZGthIE5leHRDaGF0IEFJLCBva2Ftxb5pdMSbIG9kZW1rbsSbdGUgT3BlbkFJIG8xLCBHUFQtNG8sIENsYXVkZS0zLjUgYSBuZWpub3bEm2rFocOtIHZlbGvDqSBtb2RlbHlcIixcclxuICB9LFxyXG4gIENoYXRJdGVtOiB7XHJcbiAgICBDaGF0SXRlbUNvdW50OiAoY291bnQ6IG51bWJlcikgPT4gYCR7Y291bnR9IGtvbnZlcnphY8OtYCxcclxuICB9LFxyXG4gIENoYXQ6IHtcclxuICAgIFN1YlRpdGxlOiAoY291bnQ6IG51bWJlcikgPT4gYENlbGtlbSAke2NvdW50fSBrb252ZXJ6YWPDrWAsXHJcbiAgICBFZGl0TWVzc2FnZToge1xyXG4gICAgICBUaXRsZTogXCJVcHJhdml0IHpwcsOhdnlcIixcclxuICAgICAgVG9waWM6IHtcclxuICAgICAgICBUaXRsZTogXCJUw6ltYSBrb252ZXJ6YWNlXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiWm3Em25pdCBha3R1w6FsbsOtIHTDqW1hIGtvbnZlcnphY2VcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBBY3Rpb25zOiB7XHJcbiAgICAgIENoYXRMaXN0OiBcIlpvYnJheml0IHNlem5hbSB6cHLDoXZcIixcclxuICAgICAgQ29tcHJlc3NlZEhpc3Rvcnk6IFwiWm9icmF6aXQga29tcHJpbW92YW5vdSBoaXN0b3JpaSBQcm9tcHRcIixcclxuICAgICAgRXhwb3J0OiBcIkV4cG9ydG92YXQga29udmVyemFjZVwiLFxyXG4gICAgICBDb3B5OiBcIktvcMOtcm92YXRcIixcclxuICAgICAgU3RvcDogXCJaYXN0YXZpdFwiLFxyXG4gICAgICBSZXRyeTogXCJaa3VzaXQgem5vdnVcIixcclxuICAgICAgUGluOiBcIlDFmWlwbm91dFwiLFxyXG4gICAgICBQaW5Ub2FzdENvbnRlbnQ6IFwiMSBrb252ZXJ6YWNlIGJ5bGEgcMWZaXBudXRhIGsgcMWZZWRuYXN0YXZlbsO9bSBwcm9tcHTFr21cIixcclxuICAgICAgUGluVG9hc3RBY3Rpb246IFwiWm9icmF6aXRcIixcclxuICAgICAgRGVsZXRlOiBcIlNtYXphdFwiLFxyXG4gICAgICBFZGl0OiBcIlVwcmF2aXRcIixcclxuICAgICAgUmVmcmVzaFRpdGxlOiBcIk9ibm92aXQgbsOhemV2XCIsXHJcbiAgICAgIFJlZnJlc2hUb2FzdDogXCJQb8W+YWRhdmVrIG5hIG9ibm92ZW7DrSBuw6F6dnUgYnlsIG9kZXNsw6FuXCIsXHJcbiAgICB9LFxyXG4gICAgQ29tbWFuZHM6IHtcclxuICAgICAgbmV3OiBcIk5vdsOhIGtvbnZlcnphY2VcIixcclxuICAgICAgbmV3bTogXCJOb3bDoSBrb252ZXJ6YWNlIHogbWFza3lcIixcclxuICAgICAgbmV4dDogXCJEYWzFocOtIGtvbnZlcnphY2VcIixcclxuICAgICAgcHJldjogXCJQxZllZGNob3rDrSBrb252ZXJ6YWNlXCIsXHJcbiAgICAgIGNsZWFyOiBcIlZ5bWF6YXQga29udGV4dFwiLFxyXG4gICAgICBkZWw6IFwiU21hemF0IGtvbnZlcnphY2lcIixcclxuICAgIH0sXHJcbiAgICBJbnB1dEFjdGlvbnM6IHtcclxuICAgICAgU3RvcDogXCJaYXN0YXZpdCBvZHBvdsSbxI9cIixcclxuICAgICAgVG9Cb3R0b206IFwiUMWZZWrDrXQgbmEgbmVqbm92xJtqxaHDrVwiLFxyXG4gICAgICBUaGVtZToge1xyXG4gICAgICAgIGF1dG86IFwiQXV0b21hdGlja8OpIHTDqW1hXCIsXHJcbiAgICAgICAgbGlnaHQ6IFwiU3bEm3RlbG7DvSByZcW+aW1cIixcclxuICAgICAgICBkYXJrOiBcIlRtYXbDvSByZcW+aW1cIixcclxuICAgICAgfSxcclxuICAgICAgUHJvbXB0OiBcIlJ5Y2hsw6kgcMWZw61rYXp5XCIsXHJcbiAgICAgIE1hc2tzOiBcIlbFoWVjaG55IG1hc2t5XCIsXHJcbiAgICAgIENsZWFyOiBcIlZ5bWF6YXQga29udmVyemFjaVwiLFxyXG4gICAgICBTZXR0aW5nczogXCJOYXN0YXZlbsOtIGtvbnZlcnphY2VcIixcclxuICAgICAgVXBsb2FkSW1hZ2U6IFwiTmFocsOhdCBvYnLDoXpla1wiLFxyXG4gICAgfSxcclxuICAgIFJlbmFtZTogXCJQxZllam1lbm92YXQga29udmVyemFjaVwiLFxyXG4gICAgVHlwaW5nOiBcIlDDrcWhZSBzZeKAplwiLFxyXG4gICAgSW5wdXQ6IChzdWJtaXRLZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICB2YXIgaW5wdXRIaW50cyA9IGAke3N1Ym1pdEtleX0gb2Rlc2xhdGA7XHJcbiAgICAgIGlmIChzdWJtaXRLZXkgPT09IFN0cmluZyhTdWJtaXRLZXkuRW50ZXIpKSB7XHJcbiAgICAgICAgaW5wdXRIaW50cyArPSBcIu+8jFNoaWZ0ICsgRW50ZXIgcHJvIG5vdsO9IMWZw6FkZWtcIjtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gaW5wdXRIaW50cyArIFwi77yMLyBwcm8gZG9wbG7Em27DrSwgOiBwcm8gcMWZw61rYXpcIjtcclxuICAgIH0sXHJcbiAgICBTZW5kOiBcIk9kZXNsYXRcIixcclxuICAgIENvbmZpZzoge1xyXG4gICAgICBSZXNldDogXCJWeW1hemF0IHBhbcSbxaVcIixcclxuICAgICAgU2F2ZUFzOiBcIlVsb8W+aXQgamFrbyBtYXNrdVwiLFxyXG4gICAgfSxcclxuICAgIElzQ29udGV4dDogXCJQxZllZG5hc3RhdmVuw6kgcHJvbXB0eVwiLFxyXG4gIH0sXHJcbiAgRXhwb3J0OiB7XHJcbiAgICBUaXRsZTogXCJTZMOtbGV0IGtvbnZlcnphY2VcIixcclxuICAgIENvcHk6IFwiS29ww61yb3ZhdCB2xaFlXCIsXHJcbiAgICBEb3dubG9hZDogXCJTdMOhaG5vdXQgc291Ym9yXCIsXHJcbiAgICBTaGFyZTogXCJTZMOtbGV0IG5hIFNoYXJlR1BUXCIsXHJcbiAgICBNZXNzYWdlRnJvbVlvdTogXCJVxb5pdmF0ZWxcIixcclxuICAgIE1lc3NhZ2VGcm9tQ2hhdEdQVDogXCJDaGF0R1BUXCIsXHJcbiAgICBGb3JtYXQ6IHtcclxuICAgICAgVGl0bGU6IFwiRm9ybcOhdCBleHBvcnR1XCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIkx6ZSBleHBvcnRvdmF0IGpha28gTWFya2Rvd24gdGV4dCBuZWJvIFBORyBvYnLDoXpla1wiLFxyXG4gICAgfSxcclxuICAgIEluY2x1ZGVDb250ZXh0OiB7XHJcbiAgICAgIFRpdGxlOiBcIlphaHJub3V0IGtvbnRleHQgbWFza3lcIixcclxuICAgICAgU3ViVGl0bGU6IFwiWm9icmF6aXQga29udGV4dCBtYXNreSB2ZSB6cHLDoXbDoWNoXCIsXHJcbiAgICB9LFxyXG4gICAgU3RlcHM6IHtcclxuICAgICAgU2VsZWN0OiBcIlZ5YnJhdFwiLFxyXG4gICAgICBQcmV2aWV3OiBcIk7DoWhsZWRcIixcclxuICAgIH0sXHJcbiAgICBJbWFnZToge1xyXG4gICAgICBUb2FzdDogXCJHZW5lcm92w6Fuw60gc2NyZWVuc2hvdHVcIixcclxuICAgICAgTW9kYWw6IFwiRGxvdWjDvW0gc3Rpc2tlbSBuZWJvIHByYXbDvW0gdGxhxI3DrXRrZW0gbXnFoWkgdWxvxb50ZSBvYnLDoXpla1wiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIFNlbGVjdDoge1xyXG4gICAgU2VhcmNoOiBcIkhsZWRhdCB6cHLDoXZ5XCIsXHJcbiAgICBBbGw6IFwiVnlicmF0IHbFoWVcIixcclxuICAgIExhdGVzdDogXCJOxJtrb2xpayBwb3NsZWRuw61jaFwiLFxyXG4gICAgQ2xlYXI6IFwiWnJ1xaFpdCB2w71ixJtyXCIsXHJcbiAgfSxcclxuICBNZW1vcnk6IHtcclxuICAgIFRpdGxlOiBcIkhpc3RvcmllIHNocm51dMOtXCIsXHJcbiAgICBFbXB0eUNvbnRlbnQ6IFwiT2JzYWgga29udmVyemFjZSBqZSBwxZnDrWxpxaEga3LDoXRrw70sIG5lbsOtIHTFmWViYSBzaHJub3ZhdFwiLFxyXG4gICAgU2VuZDogXCJBdXRvbWF0aWNreSBrb21wcmltb3ZhdCBrb252ZXJ6YWNlIGEgb2Rlc2xhdCBqYWtvIGtvbnRleHRcIixcclxuICAgIENvcHk6IFwiS29ww61yb3ZhdCBzaHJudXTDrVwiLFxyXG4gICAgUmVzZXQ6IFwiW25lcG91xb7DrXbDoSBzZV1cIixcclxuICAgIFJlc2V0Q29uZmlybTogXCJPcHJhdmR1IGNoY2V0ZSB2eW1hemF0IGhpc3RvcmlpIHNocm51dMOtP1wiLFxyXG4gIH0sXHJcbiAgSG9tZToge1xyXG4gICAgTmV3Q2hhdDogXCJOb3bDoSBrb252ZXJ6YWNlXCIsXHJcbiAgICBEZWxldGVDaGF0OiBcIk9wcmF2ZHUgY2hjZXRlIHNtYXphdCB2eWJyYW5vdSBrb252ZXJ6YWNpP1wiLFxyXG4gICAgRGVsZXRlVG9hc3Q6IFwiS29udmVyemFjZSBieWxhIHNtYXrDoW5hXCIsXHJcbiAgICBSZXZlcnQ6IFwiVnLDoXRpdFwiLFxyXG4gIH0sXHJcbiAgU2V0dGluZ3M6IHtcclxuICAgIFRpdGxlOiBcIk5hc3RhdmVuw61cIixcclxuICAgIFN1YlRpdGxlOiBcIlbFoWVjaG55IG1vxb5ub3N0aSBuYXN0YXZlbsOtXCIsXHJcblxyXG4gICAgRGFuZ2VyOiB7XHJcbiAgICAgIFJlc2V0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiT2Jub3ZpdCB2xaFlY2huYSBuYXN0YXZlbsOtXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiT2Jub3ZpdCB2xaFlY2hueSBuYXN0YXZlbsOtIG5hIHbDvWNob3rDrSBob2Rub3R5XCIsXHJcbiAgICAgICAgQWN0aW9uOiBcIk9rYW3Fvml0xJsgb2Jub3ZpdFwiLFxyXG4gICAgICAgIENvbmZpcm06IFwiT3ByYXZkdSBjaGNldGUgb2Jub3ZpdCB2xaFlY2huYSBuYXN0YXZlbsOtP1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBDbGVhcjoge1xyXG4gICAgICAgIFRpdGxlOiBcIlNtYXphdCB2xaFlY2huYSBkYXRhXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiU21hemF0IHbFoWVjaG55IGNoYXR5IGEgbmFzdGF2ZW7DrVwiLFxyXG4gICAgICAgIEFjdGlvbjogXCJPa2Ftxb5pdMSbIHNtYXphdFwiLFxyXG4gICAgICAgIENvbmZpcm06IFwiT3ByYXZkdSBjaGNldGUgc21hemF0IHbFoWVjaG55IGNoYXR5IGEgbmFzdGF2ZW7DrT9cIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBMYW5nOiB7XHJcbiAgICAgIE5hbWU6IFwiTGFuZ3VhZ2VcIiwgLy8gUE9aT1I6IHBva3VkIGNoY2V0ZSBwxZlpZGF0IG5vdsO9IHDFmWVrbGFkLCBwcm9zw61tLCBuZWNodGUgdHV0byBob2Rub3R1IGpha28gYExhbmd1YWdlYFxyXG4gICAgICBBbGw6IFwiVsWhZWNobnkgamF6eWt5XCIsXHJcbiAgICB9LFxyXG4gICAgQXZhdGFyOiBcIlByb2ZpbG92w70gb2Jyw6F6ZWtcIixcclxuICAgIEZvbnRTaXplOiB7XHJcbiAgICAgIFRpdGxlOiBcIlZlbGlrb3N0IHDDrXNtYVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJWZWxpa29zdCBww61zbWEgcHJvIG9ic2FoIGNoYXR1XCIsXHJcbiAgICB9LFxyXG4gICAgRm9udEZhbWlseToge1xyXG4gICAgICBUaXRsZTogXCJDaGF0b3bDqSBQw61zbW9cIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJQw61zbW8gb2JzYWh1IGNoYXR1LCBwb25lY2hlanRlIHByw6F6ZG7DqSBwcm8gcG91xb5pdMOtIGdsb2LDoWxuw61obyB2w71jaG96w61obyBww61zbWFcIixcclxuICAgICAgUGxhY2Vob2xkZXI6IFwiTsOhemV2IFDDrXNtYVwiLFxyXG4gICAgfSxcclxuICAgIEluamVjdFN5c3RlbVByb21wdHM6IHtcclxuICAgICAgVGl0bGU6IFwiVmxvxb5pdCBzeXN0w6ltb3bDqSB2w716dnlcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJBdXRvbWF0aWNreSBwxZlpZGF0IHN5c3TDqW1vdm91IHbDvXp2dSBzaW11bHVqw61jw60gQ2hhdEdQVCBuYSB6YcSNw6F0ZWsgc2V6bmFtdSB6cHLDoXYgcHJvIGthxb5kw70gcG/FvmFkYXZla1wiLFxyXG4gICAgfSxcclxuICAgIElucHV0VGVtcGxhdGU6IHtcclxuICAgICAgVGl0bGU6IFwiUMWZZWR6cHJhY292w6Fuw60gdcW+aXZhdGVsc2vDqWhvIHZzdHVwdVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJOZWpub3bEm2rFocOtIHpwcsOhdmEgdcW+aXZhdGVsZSBidWRlIHZ5cGxuxJtuYSBkbyB0w6l0byDFoWFibG9ueVwiLFxyXG4gICAgfSxcclxuXHJcbiAgICBVcGRhdGU6IHtcclxuICAgICAgVmVyc2lvbjogKHg6IHN0cmluZykgPT4gYEFrdHXDoWxuw60gdmVyemU6ICR7eH1gLFxyXG4gICAgICBJc0xhdGVzdDogXCJKc3RlIG5hIG5lam5vdsSbasWhw60gdmVyemlcIixcclxuICAgICAgQ2hlY2tVcGRhdGU6IFwiWmtvbnRyb2xvdmF0IGFrdHVhbGl6YWNlXCIsXHJcbiAgICAgIElzQ2hlY2tpbmc6IFwiS29udHJvbGEgYWt0dWFsaXphY8OtLi4uXCIsXHJcbiAgICAgIEZvdW5kVXBkYXRlOiAoeDogc3RyaW5nKSA9PiBgTmFsZXplbmEgbm92w6EgdmVyemU6ICR7eH1gLFxyXG4gICAgICBHb1RvVXBkYXRlOiBcIlDFmWVqw610IG5hIGFrdHVhbGl6YWNpXCIsXHJcbiAgICB9LFxyXG4gICAgU2VuZEtleTogXCJLbMOhdmVzYSBwcm8gb2Rlc2zDoW7DrVwiLFxyXG4gICAgVGhlbWU6IFwiVMOpbWFcIixcclxuICAgIFRpZ2h0Qm9yZGVyOiBcIlJlxb5pbSBiZXogb2tyYWrFr1wiLFxyXG4gICAgU2VuZFByZXZpZXdCdWJibGU6IHtcclxuICAgICAgVGl0bGU6IFwiTsOhaGxlZG92w6EgYnVibGluYVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJOw6FobGVkIE1hcmtkb3duIG9ic2FodSB2IG7DoWhsZWRvdsOpIGJ1YmxpbsSbXCIsXHJcbiAgICB9LFxyXG4gICAgQXV0b0dlbmVyYXRlVGl0bGU6IHtcclxuICAgICAgVGl0bGU6IFwiQXV0b21hdGlja8OpIGdlbmVyb3bDoW7DrSBuw6F6dnVcIixcclxuICAgICAgU3ViVGl0bGU6IFwiR2VuZXJvdmF0IHZob2Ruw70gbsOhemV2IG5hIHrDoWtsYWTEmyBvYnNhaHUga29udmVyemFjZVwiLFxyXG4gICAgfSxcclxuICAgIFN5bmM6IHtcclxuICAgICAgQ2xvdWRTdGF0ZTogXCJEYXRhIG5hIGNsb3VkdVwiLFxyXG4gICAgICBOb3RTeW5jWWV0OiBcIkplxaF0xJsgbmVieWxvIHN5bmNocm9uaXpvdsOhbm9cIixcclxuICAgICAgU3VjY2VzczogXCJTeW5jaHJvbml6YWNlIMO6c3DEm8WhbsOhXCIsXHJcbiAgICAgIEZhaWw6IFwiU3luY2hyb25pemFjZSBzZWxoYWxhXCIsXHJcblxyXG4gICAgICBDb25maWc6IHtcclxuICAgICAgICBNb2RhbDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiTmFzdGF2ZW7DrSBjbG91ZG92w6kgc3luY2hyb25pemFjZVwiLFxyXG4gICAgICAgICAgQ2hlY2s6IFwiWmtvbnRyb2xvdmF0IGRvc3R1cG5vc3RcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFN5bmNUeXBlOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJUeXAgc3luY2hyb25pemFjZVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiVnliZXJ0ZSBvYmzDrWJlbsO9IHN5bmNocm9uaXphxI1uw60gc2VydmVyXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQcm94eToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiUG92b2xpdCBwcm94eVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiUMWZaSBzeW5jaHJvbml6YWNpIHYgcHJvaGzDrcW+ZcSNaSBtdXPDrSBiw710IHByb3h5IHBvdm9sZW5hLCBhYnkgc2UgcMWZZWRlxaFsbyBwcm9ibMOpbcWvbSBzIENPUlNcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFByb3h5VXJsOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBZHJlc2EgcHJveHlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlBvdXplIHBybyBpbnRlcm7DrSBwcm94eVwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIFdlYkRhdjoge1xyXG4gICAgICAgICAgRW5kcG9pbnQ6IFwiV2ViREFWIGFkcmVzYVwiLFxyXG4gICAgICAgICAgVXNlck5hbWU6IFwiVcW+aXZhdGVsc2vDqSBqbcOpbm9cIixcclxuICAgICAgICAgIFBhc3N3b3JkOiBcIkhlc2xvXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgVXBTdGFzaDoge1xyXG4gICAgICAgICAgRW5kcG9pbnQ6IFwiVXBTdGFzaCBSZWRpcyBSRVNUIFVSTFwiLFxyXG4gICAgICAgICAgVXNlck5hbWU6IFwiTsOhemV2IHrDoWxvaHlcIixcclxuICAgICAgICAgIFBhc3N3b3JkOiBcIlVwU3Rhc2ggUmVkaXMgUkVTVCBUb2tlblwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICBMb2NhbFN0YXRlOiBcIkxva8OhbG7DrSBkYXRhXCIsXHJcbiAgICAgIE92ZXJ2aWV3OiAob3ZlcnZpZXc6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBgJHtvdmVydmlldy5jaGF0fSBrb252ZXJ6YWPDrSwgJHtvdmVydmlldy5tZXNzYWdlfSB6cHLDoXYsICR7b3ZlcnZpZXcucHJvbXB0fSBwcm9tcHTFrywgJHtvdmVydmlldy5tYXNrfSBtYXNla2A7XHJcbiAgICAgIH0sXHJcbiAgICAgIEltcG9ydEZhaWxlZDogXCJJbXBvcnQgc2VsaGFsXCIsXHJcbiAgICB9LFxyXG4gICAgTWFzazoge1xyXG4gICAgICBTcGxhc2g6IHtcclxuICAgICAgICBUaXRsZTogXCLDmnZvZG7DrSBzdHLDoW5rYSBtYXNreVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIlDFmWkgemFow6FqZW7DrSBub3bDqSBrb252ZXJ6YWNlIHpvYnJheml0IMO6dm9kbsOtIHN0csOhbmt1IG1hc2t5XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEJ1aWx0aW46IHtcclxuICAgICAgICBUaXRsZTogXCJTa3LDvXQgdmVzdGF2xJtuw6kgbWFza3lcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJTa3LDvXQgdmVzdGF2xJtuw6kgbWFza3kgdiBzZXpuYW11IHbFoWVjaCBtYXNla1wiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIFByb21wdDoge1xyXG4gICAgICBEaXNhYmxlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiWmFrw6F6YXQgYXV0b21hdGlja8OpIGRvcGzFiG92w6Fuw60gcHJvbXB0xa9cIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiQXV0b21hdGlja8OpIGRvcGzFiG92w6Fuw60gc2UgYWt0aXZ1amUgemFkw6Fuw61tIC8gbmEgemHEjcOhdGt1IHRleHRvdsOpaG8gcG9sZVwiLFxyXG4gICAgICB9LFxyXG4gICAgICBMaXN0OiBcIlNlem5hbSB2bGFzdG7DrWNoIHByb21wdMWvXCIsXHJcbiAgICAgIExpc3RDb3VudDogKGJ1aWx0aW46IG51bWJlciwgY3VzdG9tOiBudW1iZXIpID0+XHJcbiAgICAgICAgYFZlc3RhdsSbbsOpICR7YnVpbHRpbn0gcG9sb8W+ZWssIHXFvml2YXRlbHNreSBkZWZpbm92YW7DqSAke2N1c3RvbX0gcG9sb8W+ZWtgLFxyXG4gICAgICBFZGl0OiBcIlVwcmF2aXRcIixcclxuICAgICAgTW9kYWw6IHtcclxuICAgICAgICBUaXRsZTogXCJTZXpuYW0gcHJvbXB0xa9cIixcclxuICAgICAgICBBZGQ6IFwiTm92w71cIixcclxuICAgICAgICBTZWFyY2g6IFwiSGxlZGF0IHByb21wdHlcIixcclxuICAgICAgfSxcclxuICAgICAgRWRpdE1vZGFsOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiVXByYXZpdCBwcm9tcHRcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBIaXN0b3J5Q291bnQ6IHtcclxuICAgICAgVGl0bGU6IFwiUG/EjWV0IGhpc3Rvcmlja8O9Y2ggenByw6F2XCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIlBvxI1ldCBoaXN0b3JpY2vDvWNoIHpwcsOhdiB6YWhybnV0w71jaCB2IGthxb5kw6ltIHBvxb5hZGF2a3VcIixcclxuICAgIH0sXHJcbiAgICBDb21wcmVzc1RocmVzaG9sZDoge1xyXG4gICAgICBUaXRsZTogXCJQcmFob3bDoSBob2Rub3RhIGtvbXByZXNlIGhpc3Rvcmlja8O9Y2ggenByw6F2XCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwiS2R5xb4gbmVrb21wcmltb3ZhbsOpIGhpc3Rvcmlja8OpIHpwcsOhdnkgcMWZZWtyb8SNw60gdHV0byBob2Rub3R1LCBkb2pkZSBrZSBrb21wcmVzaVwiLFxyXG4gICAgfSxcclxuXHJcbiAgICBVc2FnZToge1xyXG4gICAgICBUaXRsZTogXCJLb250cm9sYSB6xa9zdGF0a3VcIixcclxuICAgICAgU3ViVGl0bGUodXNlZDogYW55LCB0b3RhbDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIGBUZW50byBtxJtzw61jIHBvdcW+aXRvICQke3VzZWR9LCBjZWxrb3bDvSBwxZllZHBsYXRuw70gb2JqZW0gJCR7dG90YWx9YDtcclxuICAgICAgfSxcclxuICAgICAgSXNDaGVja2luZzogXCJQcm9iw61ow6Ega29udHJvbGHigKZcIixcclxuICAgICAgQ2hlY2s6IFwiWm5vdnUgemtvbnRyb2xvdmF0XCIsXHJcbiAgICAgIE5vQWNjZXNzOiBcIlphZGVqdGUgQVBJIEtleSBuZWJvIHDFmcOtc3R1cG92w6kgaGVzbG8gcHJvIHpvYnJhemVuw60gesWvc3RhdGt1XCIsXHJcbiAgICB9LFxyXG5cclxuICAgIEFjY2Vzczoge1xyXG4gICAgICBTYWFzU3RhcnQ6IHtcclxuICAgICAgICBUaXRsZTogXCJQb3XFvml0w60gTmV4dENoYXQgQUlcIixcclxuICAgICAgICBMYWJlbDogXCIoTmVqbGVwxaHDrSBuw6FrbGFkb3bEmyBlZmVrdGl2bsOtIMWZZcWhZW7DrSlcIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiT2ZpY2nDoWxuxJsgdWRyxb5vdsOhbm8gTmV4dENoYXQsIHDFmWlwcmF2ZW5vIGsgcG91xb5pdMOtIGJleiBrb25maWd1cmFjZSwgcG9kcG9ydWplIG5lam5vdsSbasWhw60gdmVsa8OpIG1vZGVseSBqYWtvIE9wZW5BSSBvMSwgR1BULTRvLCBDbGF1ZGUtMy41XCIsXHJcbiAgICAgICAgQ2hhdE5vdzogXCJaYcSNbsSbdGUgY2hhdG92YXQgbnluw61cIixcclxuICAgICAgfSxcclxuXHJcbiAgICAgIEFjY2Vzc0NvZGU6IHtcclxuICAgICAgICBUaXRsZTogXCJQxZnDrXN0dXBvdsO9IGvDs2RcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJBZG1pbmlzdHLDoXRvciBha3Rpdm92YWwgxaFpZnJvdmFuw70gcMWZw61zdHVwXCIsXHJcbiAgICAgICAgUGxhY2Vob2xkZXI6IFwiWmFkZWp0ZSBwxZnDrXN0dXBvdsO9IGvDs2RcIixcclxuICAgICAgfSxcclxuICAgICAgQ3VzdG9tRW5kcG9pbnQ6IHtcclxuICAgICAgICBUaXRsZTogXCJWbGFzdG7DrSByb3pocmFuw61cIixcclxuICAgICAgICBTdWJUaXRsZTogXCJQb3XFvsOtdCB2bGFzdG7DrSBBenVyZSBuZWJvIE9wZW5BSSBzbHXFvmJ1XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFByb3ZpZGVyOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiUG9za3l0b3ZhdGVsIG1vZGVsdVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIlDFmWVwbm91dCBtZXppIHLFr3puw71taSBwb3NreXRvdmF0ZWxpXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIE9wZW5BSToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIEtleVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiUG91xb5panRlIHZsYXN0bsOtIE9wZW5BSSBLZXkgayBvYmVqaXTDrSBwxZnDrXN0dXBvdsOpaG8gb21lemVuw61cIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIk9wZW5BSSBBUEkgS2V5XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFkcmVzYSByb3pocmFuw61cIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIktyb23EmyB2w71jaG96w60gYWRyZXN5IG11c8OtIG9ic2Fob3ZhdCBodHRwKHMpOi8vXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQXp1cmU6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlJvemhyYW7DrSBrbMOtxI1cIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlBvdcW+aWp0ZSB2bGFzdG7DrSBBenVyZSBLZXkgayBvYmVqaXTDrSBwxZnDrXN0dXBvdsOpaG8gb21lemVuw61cIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkF6dXJlIEFQSSBLZXlcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQWRyZXNhIHJvemhyYW7DrVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiUMWZw61rbGFkOlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcmlvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiVmVyemUgcm96aHJhbsOtIChhenVyZSBhcGkgdmVyc2lvbilcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlZ5YmVydGUga29ua3LDqXRuw60gdmVyemlcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBBbnRocm9waWM6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlJvemhyYW7DrSBrbMOtxI1cIixcclxuICAgICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgICBcIlBvdcW+aWp0ZSB2bGFzdG7DrSBBbnRocm9waWMgS2V5IGsgb2Jlaml0w60gcMWZw61zdHVwb3bDqWhvIG9tZXplbsOtXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJBbnRocm9waWMgQVBJIEtleVwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBZHJlc2Egcm96aHJhbsOtXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJQxZnDrWtsYWQ6XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgQXBpVmVyaW9uOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJWZXJ6ZSByb3pocmFuw60gKGNsYXVkZSBhcGkgdmVyc2lvbilcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlZ5YmVydGUga29ua3LDqXRuw60gdmVyemkgQVBJXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgR29vZ2xlOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEkga2zDrcSNXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJaw61za2VqdGUgc3bFr2ogQVBJIGtsw63EjSBvZCBHb29nbGUgQUlcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIlphZGVqdGUgc3bFr2ogR29vZ2xlIEFJIFN0dWRpbyBBUEkga2zDrcSNXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIktvbmXEjW7DoSBhZHJlc2FcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlDFmcOta2xhZDpcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBBcGlWZXJzaW9uOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJWZXJ6ZSBBUEkgKHBvdXplIHBybyBnZW1pbmktcHJvKVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiVnliZXJ0ZSBrb25rcsOpdG7DrSB2ZXJ6aSBBUElcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEdvb2dsZVNhZmV0eVNldHRpbmdzOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLDmnJvdmXFiCBiZXpwZcSNbm9zdG7DrWhvIGZpbHRyb3bDoW7DrSBHb29nbGVcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIk5hc3Rhdml0IMO6cm92ZcWIIGZpbHRyb3bDoW7DrSBvYnNhaHVcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBCYWlkdToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIEtleVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiUG91xb5panRlIHZsYXN0bsOtIEJhaWR1IEFQSSBLZXlcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkJhaWR1IEFQSSBLZXlcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFNlY3JldEtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiU2VjcmV0IEtleVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiUG91xb5panRlIHZsYXN0bsOtIEJhaWR1IFNlY3JldCBLZXlcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkJhaWR1IFNlY3JldCBLZXlcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBZHJlc2Egcm96aHJhbsOtXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgICAgXCJOZXBvZHBvcnVqZSB2bGFzdG7DrSBuYXN0YXZlbsOtLCBwxZllamTEm3RlIG5hIC5lbnYga29uZmlndXJhY2lcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBCeXRlRGFuY2U6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlJvemhyYW7DrSBrbMOtxI1cIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlBvdcW+aWp0ZSB2bGFzdG7DrSBCeXRlRGFuY2UgQVBJIEtleVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQnl0ZURhbmNlIEFQSSBLZXlcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBZHJlc2Egcm96aHJhbsOtXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJQxZnDrWtsYWQ6XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQWxpYmFiYToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiUm96aHJhbsOtIGtsw63EjVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiUG91xb5panRlIHZsYXN0bsOtIEFsaWJhYmEgQ2xvdWQgQVBJIEtleVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQWxpYmFiYSBDbG91ZCBBUEkgS2V5XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQWRyZXNhIHJvemhyYW7DrVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiUMWZw61rbGFkOlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEN1c3RvbU1vZGVsOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiVmxhc3Ruw60gbsOhenZ5IG1vZGVsxa9cIixcclxuICAgICAgICBTdWJUaXRsZTogXCJQxZlpZGVqdGUgbW/Fvm5vc3RpIHZsYXN0bsOtY2ggbW9kZWzFrywgb2RkxJtsZW7DqSDEjcOhcmthbWlcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcblxyXG4gICAgTW9kZWw6IFwiTW9kZWwgKG1vZGVsKVwiLFxyXG4gICAgQ29tcHJlc3NNb2RlbDoge1xyXG4gICAgICBUaXRsZTogXCJLb21wcmVzbsOtIG1vZGVsXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIk1vZGVsIHBvdcW+w612YW7DvSBwcm8ga29tcHJlc2kgaGlzdG9yaWVcIixcclxuICAgIH0sXHJcbiAgICBUZW1wZXJhdHVyZToge1xyXG4gICAgICBUaXRsZTogXCJOw6Fob2Rub3N0ICh0ZW1wZXJhdHVyZSlcIixcclxuICAgICAgU3ViVGl0bGU6IFwixIzDrW0gdnnFocWhw60gaG9kbm90YSwgdMOtbSBuw6Fob2RuxJtqxaHDrSBvZHBvdsSbZGlcIixcclxuICAgIH0sXHJcbiAgICBUb3BQOiB7XHJcbiAgICAgIFRpdGxlOiBcIkrDoWRyb3bDqSB2em9ya292w6Fuw60gKHRvcF9wKVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJQb2RvYm7DqSBuw6Fob2Rub3N0aSwgYWxlIG5lbcSbxYh0ZSBzcG9sdSBzIG7DoWhvZG5vc3TDrVwiLFxyXG4gICAgfSxcclxuICAgIE1heFRva2Vuczoge1xyXG4gICAgICBUaXRsZTogXCJPbWV6ZW7DrSBvZHBvdsSbZGkgKG1heF90b2tlbnMpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIk1heGltw6FsbsOtIHBvxI1ldCBUb2tlbsWvIHBvdcW+aXTDvWNoIHYgamVkbm9tIGludGVyYWtjaVwiLFxyXG4gICAgfSxcclxuICAgIFByZXNlbmNlUGVuYWx0eToge1xyXG4gICAgICBUaXRsZTogXCLEjGVyc3R2b3N0IHTDqW1hdCAocHJlc2VuY2VfcGVuYWx0eSlcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCLEjMOtbSB2ecWhxaHDrSBob2Rub3RhLCB0w61tIHbEm3TFocOtIHByYXZkxJtwb2RvYm5vc3Qgcm96xaHDrcWZZW7DrSBuYSBub3bDoSB0w6ltYXRhXCIsXHJcbiAgICB9LFxyXG4gICAgRnJlcXVlbmN5UGVuYWx0eToge1xyXG4gICAgICBUaXRsZTogXCJQZW5hbGl6YWNlIGZyZWt2ZW5jZSAoZnJlcXVlbmN5X3BlbmFsdHkpXCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwixIzDrW0gdnnFocWhw60gaG9kbm90YSwgdMOtbSB2xJt0xaHDrSBwcmF2ZMSbcG9kb2Jub3N0IHNuw63FvmVuw60gb3Bha292w6Fuw60gc2xvdlwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIFN0b3JlOiB7XHJcbiAgICBEZWZhdWx0VG9waWM6IFwiTm92w70gY2hhdFwiLFxyXG4gICAgQm90SGVsbG86IFwiSmFrIHbDoW0gbW9odSBwb21vY2k/XCIsXHJcbiAgICBFcnJvcjogXCJEb8WhbG8gayBjaHlixJssIHprdXN0ZSB0byBwcm9zw61tIHpub3Z1IHBvemTEm2ppLlwiLFxyXG4gICAgUHJvbXB0OiB7XHJcbiAgICAgIEhpc3Rvcnk6IChjb250ZW50OiBzdHJpbmcpID0+XHJcbiAgICAgICAgXCJUb3RvIGplIHNocm51dMOtIGhpc3RvcmllIGNoYXR1IGpha28ga29udGV4dDogXCIgKyBjb250ZW50LFxyXG4gICAgICBUb3BpYzpcclxuICAgICAgICBcIlBvdcW+aWp0ZSDEjXR5xZlpIGHFviBwxJt0IHNsb3YgcHJvIHN0cnXEjW7DqSB0w6ltYSB0w6l0byB2xJt0eSwgYmV6IHZ5c3bEm3RsZW7DrSwgaW50ZXJwdW5rY2UsIGNpdG9zbG92Y8OtLCBuYWRieXRlxI1uw6lobyB0ZXh0dSwgYmV6IHR1xI1uw6lobyBww61zbWEuIFBva3VkIHTDqW1hIG5lZXhpc3R1amUsIHZyYcWldGUgcG91emUgJ25lZm9ybcOhbG7DrSBjaGF0Jy5cIixcclxuICAgICAgU3VtbWFyaXplOlxyXG4gICAgICAgIFwiU3RydcSNbsSbIHNocsWIdGUgb2JzYWgga29udmVyemFjZSBqYWtvIGtvbnRleHRvdsO9IHByb21wdCBwcm8gYnVkb3Vjw60gcG91xb5pdMOtLCBkbyAyMDAgc2xvdlwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIENvcHk6IHtcclxuICAgIFN1Y2Nlc3M6IFwiWmtvcMOtcm92w6FubyBkbyBzY2hyw6Fua3lcIixcclxuICAgIEZhaWxlZDogXCJLb3DDrXJvdsOhbsOtIHNlbGhhbG8sIHByb3PDrW0sIHBvdm9sdGUgcMWZw61zdHVwIGtlIHNjaHLDoW5jZVwiLFxyXG4gIH0sXHJcbiAgRG93bmxvYWQ6IHtcclxuICAgIFN1Y2Nlc3M6IFwiT2JzYWggYnlsIHN0YcW+ZW4gZG8gdmHFoWVobyBhZHJlc8OhxZllLlwiLFxyXG4gICAgRmFpbGVkOiBcIlN0YWhvdsOhbsOtIHNlbGhhbG8uXCIsXHJcbiAgfSxcclxuICBDb250ZXh0OiB7XHJcbiAgICBUb2FzdDogKHg6IGFueSkgPT4gYE9ic2FodWplICR7eH0gcMWZZWRuYXN0YXZlbsO9Y2ggcHJvbXB0xa9gLFxyXG4gICAgRWRpdDogXCJOYXN0YXZlbsOtIGFrdHXDoWxuw60ga29udmVyemFjZVwiLFxyXG4gICAgQWRkOiBcIlDFmWlkYXQgbm92b3Uga29udmVyemFjaVwiLFxyXG4gICAgQ2xlYXI6IFwiS29udGV4dCBieWwgdnltYXrDoW5cIixcclxuICAgIFJldmVydDogXCJPYm5vdml0IGtvbnRleHRcIixcclxuICB9LFxyXG4gIFBsdWdpbjoge1xyXG4gICAgTmFtZTogXCJQbHVnaW5cIixcclxuICB9LFxyXG4gIEZpbmVUdW5lZDoge1xyXG4gICAgU3lzbWVzc2FnZTogXCJKc3RlIGFzaXN0ZW50XCIsXHJcbiAgfSxcclxuICBTZWFyY2hDaGF0OiB7XHJcbiAgICBOYW1lOiBcIkhsZWRhdFwiLFxyXG4gICAgUGFnZToge1xyXG4gICAgICBUaXRsZTogXCJIbGVkYXQgdiBoaXN0b3JpaSBjaGF0dVwiLFxyXG4gICAgICBTZWFyY2g6IFwiWmFkZWp0ZSBobGVkYW7DqSBrbMOtxI1vdsOpIHNsb3ZvXCIsXHJcbiAgICAgIE5vUmVzdWx0OiBcIk5lYnlseSBuYWxlemVueSDFvsOhZG7DqSB2w71zbGVka3lcIixcclxuICAgICAgTm9EYXRhOiBcIsW9w6FkbsOhIGRhdGFcIixcclxuICAgICAgTG9hZGluZzogXCJOYcSNw610w6Fuw61cIixcclxuXHJcbiAgICAgIFN1YlRpdGxlOiAoY291bnQ6IG51bWJlcikgPT4gYE5hbGV6ZW5vICR7Y291bnR9IHbDvXNsZWRrxa9gLFxyXG4gICAgfSxcclxuICAgIEl0ZW06IHtcclxuICAgICAgVmlldzogXCJab2JyYXppdFwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIE1hc2s6IHtcclxuICAgIE5hbWU6IFwiTWFza2FcIixcclxuICAgIFBhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwiUMWZZWRuYXN0YXZlbsOpIHJvbGUgbWFza3lcIixcclxuICAgICAgU3ViVGl0bGU6IChjb3VudDogbnVtYmVyKSA9PiBgJHtjb3VudH0gZGVmaW5vdmFuw71jaCByb2zDrWAsXHJcbiAgICAgIFNlYXJjaDogXCJIbGVkYXQgcm9sZSBtYXNreVwiLFxyXG4gICAgICBDcmVhdGU6IFwiTm92w71cIixcclxuICAgIH0sXHJcbiAgICBJdGVtOiB7XHJcbiAgICAgIEluZm86IChjb3VudDogbnVtYmVyKSA9PiBgT2JzYWh1amUgJHtjb3VudH0gcMWZZWRuYXN0YXZlbsO9Y2gga29udmVyemFjw61gLFxyXG4gICAgICBDaGF0OiBcIkNoYXRcIixcclxuICAgICAgVmlldzogXCJab2JyYXppdFwiLFxyXG4gICAgICBFZGl0OiBcIlVwcmF2aXRcIixcclxuICAgICAgRGVsZXRlOiBcIlNtYXphdFwiLFxyXG4gICAgICBEZWxldGVDb25maXJtOiBcIk9wcmF2ZHUgY2hjZXRlIHNtYXphdD9cIixcclxuICAgIH0sXHJcbiAgICBFZGl0TW9kYWw6IHtcclxuICAgICAgVGl0bGU6IChyZWFkb25seTogYm9vbGVhbikgPT5cclxuICAgICAgICBgVXByYXZpdCBwxZllZG5hc3RhdmVub3UgbWFza3UgJHtyZWFkb25seSA/IFwiIChqZW4gcHJvIMSNdGVuw60pXCIgOiBcIlwifWAsXHJcbiAgICAgIERvd25sb2FkOiBcIlN0w6Fobm91dCBwxZllZG5hc3RhdmVuw61cIixcclxuICAgICAgQ2xvbmU6IFwiS2xvbm92YXQgcMWZZWRuYXN0YXZlbsOtXCIsXHJcbiAgICB9LFxyXG4gICAgQ29uZmlnOiB7XHJcbiAgICAgIEF2YXRhcjogXCJQcm9maWxvdsO9IG9icsOhemVrXCIsXHJcbiAgICAgIE5hbWU6IFwiTsOhemV2IHJvbGVcIixcclxuICAgICAgU3luYzoge1xyXG4gICAgICAgIFRpdGxlOiBcIlBvdcW+w610IGdsb2LDoWxuw60gbmFzdGF2ZW7DrVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIlBvdcW+w610IGdsb2LDoWxuw60gbW9kZWxvdsOhIG5hc3RhdmVuw60gcHJvIGFrdHXDoWxuw60ga29udmVyemFjaVwiLFxyXG4gICAgICAgIENvbmZpcm06XHJcbiAgICAgICAgICBcIlZhxaFlIHZsYXN0bsOtIG5hc3RhdmVuw60ga29udmVyemFjZSBidWRlIGF1dG9tYXRpY2t5IHDFmWVwc8Ohbm8sIG9wcmF2ZHUgY2hjZXRlIHBvdcW+w610IGdsb2LDoWxuw60gbmFzdGF2ZW7DrT9cIixcclxuICAgICAgfSxcclxuICAgICAgSGlkZUNvbnRleHQ6IHtcclxuICAgICAgICBUaXRsZTogXCJTa3LDvXQgcMWZZWRuYXN0YXZlbsOpIGtvbnZlcnphY2VcIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiUG8gc2tyeXTDrSBzZSBwxZllZG5hc3RhdmVuw6kga29udmVyemFjZSBuZWJ1ZG91IHpvYnJhem92YXQgdiBjaGF0b3bDqW0gcm96aHJhbsOtXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFNoYXJlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiU2TDrWxldCB0dXRvIG1hc2t1XCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiR2VuZXJvdmF0IHDFmcOtbcO9IG9ka2F6IG5hIHR1dG8gbWFza3VcIixcclxuICAgICAgICBBY3Rpb246IFwiS29ww61yb3ZhdCBvZGthelwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9LFxyXG4gIE5ld0NoYXQ6IHtcclxuICAgIFJldHVybjogXCJacMSbdFwiLFxyXG4gICAgU2tpcDogXCJaYcSNw610IGhuZWRcIixcclxuICAgIE5vdFNob3c6IFwiWm9icmF6aXQgdcW+IG5pa2R5XCIsXHJcbiAgICBDb25maXJtTm9TaG93OlxyXG4gICAgICBcIk9wcmF2ZHUgY2hjZXRlIHpha8OhemF0PyBaYWvDoXrDoW7DrSBtxa/FvmV0ZSBrZHlrb2xpIHpub3Z1IHBvdm9saXQgdiBuYXN0YXZlbsOtLlwiLFxyXG4gICAgVGl0bGU6IFwiVnliZXJ0ZSBtYXNrdVwiLFxyXG4gICAgU3ViVGl0bGU6IFwiWmHEjW7Em3RlIG55bsOtIGEga29uZnJvbnR1anRlIHNlIHMgbXlzbMOtIHphIG1hc2tvdVwiLFxyXG4gICAgTW9yZTogXCJab2JyYXppdCB2xaFlXCIsXHJcbiAgfSxcclxuXHJcbiAgVVJMQ29tbWFuZDoge1xyXG4gICAgQ29kZTogXCJCeWwgZGV0ZWtvdsOhbiBwxZnDrXN0dXBvdsO9IGvDs2QgdiBvZGthenUsIGNoY2V0ZSBqZWogYXV0b21hdGlja3kgdnlwbG5pdD9cIixcclxuICAgIFNldHRpbmdzOlxyXG4gICAgICBcIkJ5bGEgZGV0ZWtvdsOhbmEgcMWZZWRuYXN0YXZlbsOhIG5hc3RhdmVuw60gdiBvZGthenUsIGNoY2V0ZSBqZSBhdXRvbWF0aWNreSB2eXBsbml0P1wiLFxyXG4gIH0sXHJcblxyXG4gIFVJOiB7XHJcbiAgICBDb25maXJtOiBcIlBvdHZyZGl0XCIsXHJcbiAgICBDYW5jZWw6IFwiWnJ1xaFpdFwiLFxyXG4gICAgQ2xvc2U6IFwiWmF2xZnDrXRcIixcclxuICAgIENyZWF0ZTogXCJOb3bDvVwiLFxyXG4gICAgRWRpdDogXCJVcHJhdml0XCIsXHJcbiAgICBFeHBvcnQ6IFwiRXhwb3J0b3ZhdFwiLFxyXG4gICAgSW1wb3J0OiBcIkltcG9ydG92YXRcIixcclxuICAgIFN5bmM6IFwiU3luY2hyb25pem92YXRcIixcclxuICAgIENvbmZpZzogXCJLb25maWd1cm92YXRcIixcclxuICB9LFxyXG4gIEV4cG9ydGVyOiB7XHJcbiAgICBEZXNjcmlwdGlvbjoge1xyXG4gICAgICBUaXRsZTogXCJQb3V6ZSB6cHLDoXZ5IHBvIHZ5bWF6w6Fuw60ga29udGV4dHUgYnVkb3Ugem9icmF6ZW55XCIsXHJcbiAgICB9LFxyXG4gICAgTW9kZWw6IFwiTW9kZWxcIixcclxuICAgIE1lc3NhZ2VzOiBcIlpwcsOhdnlcIixcclxuICAgIFRvcGljOiBcIlTDqW1hXCIsXHJcbiAgICBUaW1lOiBcIsSMYXNcIixcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY3M7XHJcbiJdLCJuYW1lcyI6WyJTdWJtaXRLZXkiLCJnZXRDbGllbnRDb25maWciLCJTQUFTX0NIQVRfVVRNX1VSTCIsImlzQXBwIiwiY3MiLCJXSVAiLCJFcnJvciIsIlVuYXV0aG9yaXplZCIsIkF1dGgiLCJUaXRsZSIsIlRpcHMiLCJTdWJUaXBzIiwiSW5wdXQiLCJDb25maXJtIiwiTGF0ZXIiLCJSZXR1cm4iLCJTYWFzVGlwcyIsIlRvcFRpcHMiLCJDaGF0SXRlbSIsIkNoYXRJdGVtQ291bnQiLCJjb3VudCIsIkNoYXQiLCJTdWJUaXRsZSIsIkVkaXRNZXNzYWdlIiwiVG9waWMiLCJBY3Rpb25zIiwiQ2hhdExpc3QiLCJDb21wcmVzc2VkSGlzdG9yeSIsIkV4cG9ydCIsIkNvcHkiLCJTdG9wIiwiUmV0cnkiLCJQaW4iLCJQaW5Ub2FzdENvbnRlbnQiLCJQaW5Ub2FzdEFjdGlvbiIsIkRlbGV0ZSIsIkVkaXQiLCJSZWZyZXNoVGl0bGUiLCJSZWZyZXNoVG9hc3QiLCJDb21tYW5kcyIsIm5ldyIsIm5ld20iLCJuZXh0IiwicHJldiIsImNsZWFyIiwiZGVsIiwiSW5wdXRBY3Rpb25zIiwiVG9Cb3R0b20iLCJUaGVtZSIsImF1dG8iLCJsaWdodCIsImRhcmsiLCJQcm9tcHQiLCJNYXNrcyIsIkNsZWFyIiwiU2V0dGluZ3MiLCJVcGxvYWRJbWFnZSIsIlJlbmFtZSIsIlR5cGluZyIsInN1Ym1pdEtleSIsImlucHV0SGludHMiLCJTdHJpbmciLCJFbnRlciIsIlNlbmQiLCJDb25maWciLCJSZXNldCIsIlNhdmVBcyIsIklzQ29udGV4dCIsIkRvd25sb2FkIiwiU2hhcmUiLCJNZXNzYWdlRnJvbVlvdSIsIk1lc3NhZ2VGcm9tQ2hhdEdQVCIsIkZvcm1hdCIsIkluY2x1ZGVDb250ZXh0IiwiU3RlcHMiLCJTZWxlY3QiLCJQcmV2aWV3IiwiSW1hZ2UiLCJUb2FzdCIsIk1vZGFsIiwiU2VhcmNoIiwiQWxsIiwiTGF0ZXN0IiwiTWVtb3J5IiwiRW1wdHlDb250ZW50IiwiUmVzZXRDb25maXJtIiwiSG9tZSIsIk5ld0NoYXQiLCJEZWxldGVDaGF0IiwiRGVsZXRlVG9hc3QiLCJSZXZlcnQiLCJEYW5nZXIiLCJBY3Rpb24iLCJMYW5nIiwiTmFtZSIsIkF2YXRhciIsIkZvbnRTaXplIiwiRm9udEZhbWlseSIsIlBsYWNlaG9sZGVyIiwiSW5qZWN0U3lzdGVtUHJvbXB0cyIsIklucHV0VGVtcGxhdGUiLCJVcGRhdGUiLCJWZXJzaW9uIiwieCIsIklzTGF0ZXN0IiwiQ2hlY2tVcGRhdGUiLCJJc0NoZWNraW5nIiwiRm91bmRVcGRhdGUiLCJHb1RvVXBkYXRlIiwiU2VuZEtleSIsIlRpZ2h0Qm9yZGVyIiwiU2VuZFByZXZpZXdCdWJibGUiLCJBdXRvR2VuZXJhdGVUaXRsZSIsIlN5bmMiLCJDbG91ZFN0YXRlIiwiTm90U3luY1lldCIsIlN1Y2Nlc3MiLCJGYWlsIiwiQ2hlY2siLCJTeW5jVHlwZSIsIlByb3h5IiwiUHJveHlVcmwiLCJXZWJEYXYiLCJFbmRwb2ludCIsIlVzZXJOYW1lIiwiUGFzc3dvcmQiLCJVcFN0YXNoIiwiTG9jYWxTdGF0ZSIsIk92ZXJ2aWV3Iiwib3ZlcnZpZXciLCJjaGF0IiwibWVzc2FnZSIsInByb21wdCIsIm1hc2siLCJJbXBvcnRGYWlsZWQiLCJNYXNrIiwiU3BsYXNoIiwiQnVpbHRpbiIsIkRpc2FibGUiLCJMaXN0IiwiTGlzdENvdW50IiwiYnVpbHRpbiIsImN1c3RvbSIsIkFkZCIsIkVkaXRNb2RhbCIsIkhpc3RvcnlDb3VudCIsIkNvbXByZXNzVGhyZXNob2xkIiwiVXNhZ2UiLCJ1c2VkIiwidG90YWwiLCJOb0FjY2VzcyIsIkFjY2VzcyIsIlNhYXNTdGFydCIsIkxhYmVsIiwiQ2hhdE5vdyIsIkFjY2Vzc0NvZGUiLCJDdXN0b21FbmRwb2ludCIsIlByb3ZpZGVyIiwiT3BlbkFJIiwiQXBpS2V5IiwiQXp1cmUiLCJBcGlWZXJpb24iLCJBbnRocm9waWMiLCJHb29nbGUiLCJBcGlWZXJzaW9uIiwiR29vZ2xlU2FmZXR5U2V0dGluZ3MiLCJCYWlkdSIsIlNlY3JldEtleSIsIkJ5dGVEYW5jZSIsIkFsaWJhYmEiLCJDdXN0b21Nb2RlbCIsIk1vZGVsIiwiQ29tcHJlc3NNb2RlbCIsIlRlbXBlcmF0dXJlIiwiVG9wUCIsIk1heFRva2VucyIsIlByZXNlbmNlUGVuYWx0eSIsIkZyZXF1ZW5jeVBlbmFsdHkiLCJTdG9yZSIsIkRlZmF1bHRUb3BpYyIsIkJvdEhlbGxvIiwiSGlzdG9yeSIsImNvbnRlbnQiLCJTdW1tYXJpemUiLCJGYWlsZWQiLCJDb250ZXh0IiwiUGx1Z2luIiwiRmluZVR1bmVkIiwiU3lzbWVzc2FnZSIsIlNlYXJjaENoYXQiLCJQYWdlIiwiTm9SZXN1bHQiLCJOb0RhdGEiLCJMb2FkaW5nIiwiSXRlbSIsIlZpZXciLCJDcmVhdGUiLCJJbmZvIiwiRGVsZXRlQ29uZmlybSIsInJlYWRvbmx5IiwiQ2xvbmUiLCJIaWRlQ29udGV4dCIsIlNraXAiLCJOb3RTaG93IiwiQ29uZmlybU5vU2hvdyIsIk1vcmUiLCJVUkxDb21tYW5kIiwiQ29kZSIsIlVJIiwiQ2FuY2VsIiwiQ2xvc2UiLCJJbXBvcnQiLCJFeHBvcnRlciIsIkRlc2NyaXB0aW9uIiwiTWVzc2FnZXMiLCJUaW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/locales/cs.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/locales/de.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/locales/de.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _store_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../store/config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n\n\n\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_1__.getClientConfig)()?.isApp;\nconst de = {\n WIP: \"In Bearbeitung...\",\n Error: {\n Unauthorized: isApp ? `😆 Das Gespräch hatte einige Probleme, keine Sorge:\r\n \\\\ 1️⃣ Wenn du ohne Konfiguration sofort starten möchtest, [klicke hier, um sofort zu chatten 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\\\ 2️⃣ Wenn du deine eigenen OpenAI-Ressourcen verwenden möchtest, klicke [hier](/#/settings), um die Einstellungen zu ändern ⚙️` : `😆 Das Gespräch hatte einige Probleme, keine Sorge:\r\n \\ 1️⃣ Wenn du ohne Konfiguration sofort starten möchtest, [klicke hier, um sofort zu chatten 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\ 2️⃣ Wenn du eine private Bereitstellung verwendest, klicke [hier](/#/auth), um den Zugriffsschlüssel einzugeben 🔑\r\n \\ 3️⃣ Wenn du deine eigenen OpenAI-Ressourcen verwenden möchtest, klicke [hier](/#/settings), um die Einstellungen zu ändern ⚙️\r\n `\n },\n Auth: {\n Title: \"Passwort erforderlich\",\n Tips: \"Der Administrator hat die Passwort\\xfcberpr\\xfcfung aktiviert. Bitte geben Sie den Zugangscode unten ein.\",\n SubTips: \"Oder geben Sie Ihren OpenAI oder Google API-Schl\\xfcssel ein.\",\n Input: \"Geben Sie hier den Zugangscode ein\",\n Confirm: \"Best\\xe4tigen\",\n Later: \"Sp\\xe4ter\",\n Return: \"Zur\\xfcck\",\n SaasTips: \"Die Konfiguration ist zu kompliziert, ich m\\xf6chte es sofort nutzen\",\n TopTips: \"\\uD83E\\uDD73 NextChat AI Einf\\xfchrungsangebot, schalte jetzt OpenAI o1, GPT-4o, Claude-3.5 und die neuesten gro\\xdfen Modelle frei\"\n },\n ChatItem: {\n ChatItemCount: (count)=>`${count} Gespräche`\n },\n Chat: {\n SubTitle: (count)=>`Insgesamt ${count} Gespräche`,\n EditMessage: {\n Title: \"Nachricht bearbeiten\",\n Topic: {\n Title: \"Chat-Thema\",\n SubTitle: \"\\xc4ndern Sie das aktuelle Chat-Thema\"\n }\n },\n Actions: {\n ChatList: \"Nachrichtliste anzeigen\",\n CompressedHistory: \"Komprimierte Historie anzeigen\",\n Export: \"Chatverlauf exportieren\",\n Copy: \"Kopieren\",\n Stop: \"Stoppen\",\n Retry: \"Erneut versuchen\",\n Pin: \"Anheften\",\n PinToastContent: \"1 Gespr\\xe4ch an den voreingestellten Prompt angeheftet\",\n PinToastAction: \"Ansehen\",\n Delete: \"L\\xf6schen\",\n Edit: \"Bearbeiten\",\n RefreshTitle: \"Titel aktualisieren\",\n RefreshToast: \"Anfrage zur Titelaktualisierung gesendet\"\n },\n Commands: {\n new: \"Neues Gespr\\xe4ch\",\n newm: \"Neues Gespr\\xe4ch aus Maske erstellen\",\n next: \"N\\xe4chstes Gespr\\xe4ch\",\n prev: \"Vorheriges Gespr\\xe4ch\",\n clear: \"Kontext l\\xf6schen\",\n del: \"Gespr\\xe4ch l\\xf6schen\"\n },\n InputActions: {\n Stop: \"Antwort stoppen\",\n ToBottom: \"Zum neuesten Beitrag\",\n Theme: {\n auto: \"Automatisches Thema\",\n light: \"Helles Thema\",\n dark: \"Dunkles Thema\"\n },\n Prompt: \"Schnellbefehle\",\n Masks: \"Alle Masken\",\n Clear: \"Chat l\\xf6schen\",\n Settings: \"Gespr\\xe4chseinstellungen\",\n UploadImage: \"Bild hochladen\"\n },\n Rename: \"Gespr\\xe4ch umbenennen\",\n Typing: \"Tippt…\",\n Input: (submitKey)=>{\n var inputHints = `${submitKey} senden`;\n if (submitKey === String(_store_config__WEBPACK_IMPORTED_MODULE_0__.SubmitKey.Enter)) {\n inputHints += \",Shift + Enter f\\xfcr Zeilenumbruch\";\n }\n return inputHints + \",/ f\\xfcr Autovervollst\\xe4ndigung, : f\\xfcr Befehle\";\n },\n Send: \"Senden\",\n Config: {\n Reset: \"Erinnerung l\\xf6schen\",\n SaveAs: \"Als Maske speichern\"\n },\n IsContext: \"Voreingestellter Prompt\"\n },\n Export: {\n Title: \"Chatverlauf teilen\",\n Copy: \"Alles kopieren\",\n Download: \"Datei herunterladen\",\n Share: \"Auf ShareGPT teilen\",\n MessageFromYou: \"Benutzer\",\n MessageFromChatGPT: \"ChatGPT\",\n Format: {\n Title: \"Exportformat\",\n SubTitle: \"Kann als Markdown-Text oder PNG-Bild exportiert werden\"\n },\n IncludeContext: {\n Title: \"Maske Kontext einbeziehen\",\n SubTitle: \"Soll der Maskenkontext in den Nachrichten angezeigt werden?\"\n },\n Steps: {\n Select: \"Ausw\\xe4hlen\",\n Preview: \"Vorschau\"\n },\n Image: {\n Toast: \"Screenshot wird erstellt\",\n Modal: \"Lang dr\\xfccken oder Rechtsklick, um Bild zu speichern\"\n }\n },\n Select: {\n Search: \"Nachrichten suchen\",\n All: \"Alles ausw\\xe4hlen\",\n Latest: \"Neueste\",\n Clear: \"Auswahl aufheben\"\n },\n Memory: {\n Title: \"Historische Zusammenfassung\",\n EmptyContent: \"Gespr\\xe4chsinhalte sind zu kurz, keine Zusammenfassung erforderlich\",\n Send: \"Chatverlauf automatisch komprimieren und als Kontext senden\",\n Copy: \"Zusammenfassung kopieren\",\n Reset: \"[nicht verwendet]\",\n ResetConfirm: \"Zusammenfassung l\\xf6schen best\\xe4tigen?\"\n },\n Home: {\n NewChat: \"Neues Gespr\\xe4ch\",\n DeleteChat: \"Best\\xe4tigen Sie das L\\xf6schen des ausgew\\xe4hlten Gespr\\xe4chs?\",\n DeleteToast: \"Gespr\\xe4ch gel\\xf6scht\",\n Revert: \"R\\xfcckg\\xe4ngig machen\"\n },\n Settings: {\n Title: \"Einstellungen\",\n SubTitle: \"Alle Einstellungsm\\xf6glichkeiten\",\n Danger: {\n Reset: {\n Title: \"Alle Einstellungen zur\\xfccksetzen\",\n SubTitle: \"Setzt alle Einstellungen auf die Standardwerte zur\\xfcck\",\n Action: \"Jetzt zur\\xfccksetzen\",\n Confirm: \"Best\\xe4tigen Sie das Zur\\xfccksetzen aller Einstellungen?\"\n },\n Clear: {\n Title: \"Alle Daten l\\xf6schen\",\n SubTitle: \"L\\xf6scht alle Chats und Einstellungsdaten\",\n Action: \"Jetzt l\\xf6schen\",\n Confirm: \"Best\\xe4tigen Sie das L\\xf6schen aller Chats und Einstellungsdaten?\"\n }\n },\n Lang: {\n Name: \"Sprache\",\n All: \"Alle Sprachen\"\n },\n Avatar: \"Avatar\",\n FontSize: {\n Title: \"Schriftgr\\xf6\\xdfe\",\n SubTitle: \"Schriftgr\\xf6\\xdfe des Chat-Inhalts\"\n },\n FontFamily: {\n Title: \"Chat-Schriftart\",\n SubTitle: \"Schriftart des Chat-Inhalts, leer lassen, um die globale Standardschriftart anzuwenden\",\n Placeholder: \"Schriftartname\"\n },\n InjectSystemPrompts: {\n Title: \"Systemweite Eingabeaufforderungen einf\\xfcgen\",\n SubTitle: \"F\\xfcgt jeder Nachricht am Anfang der Nachrichtenliste eine simulierte ChatGPT-Systemaufforderung hinzu\"\n },\n InputTemplate: {\n Title: \"Benutzer-Eingabeverarbeitung\",\n SubTitle: \"Die neueste Nachricht des Benutzers wird in diese Vorlage eingef\\xfcgt\"\n },\n Update: {\n Version: (x)=>`Aktuelle Version: ${x}`,\n IsLatest: \"Bereits die neueste Version\",\n CheckUpdate: \"Auf Updates \\xfcberpr\\xfcfen\",\n IsChecking: \"\\xdcberpr\\xfcfe auf Updates...\",\n FoundUpdate: (x)=>`Neue Version gefunden: ${x}`,\n GoToUpdate: \"Zum Update gehen\"\n },\n SendKey: \"Sende-Taste\",\n Theme: \"Thema\",\n TightBorder: \"Randloser Modus\",\n SendPreviewBubble: {\n Title: \"Vorschau-Bubble\",\n SubTitle: \"Markdown-Inhalt in der Vorschau-Bubble anzeigen\"\n },\n AutoGenerateTitle: {\n Title: \"Titel automatisch generieren\",\n SubTitle: \"Basierend auf dem Chat-Inhalt einen passenden Titel generieren\"\n },\n Sync: {\n CloudState: \"Cloud-Daten\",\n NotSyncYet: \"Noch nicht synchronisiert\",\n Success: \"Synchronisation erfolgreich\",\n Fail: \"Synchronisation fehlgeschlagen\",\n Config: {\n Modal: {\n Title: \"Cloud-Synchronisation konfigurieren\",\n Check: \"Verf\\xfcgbarkeit \\xfcberpr\\xfcfen\"\n },\n SyncType: {\n Title: \"Synchronisationstyp\",\n SubTitle: \"W\\xe4hlen Sie den bevorzugten Synchronisationsserver aus\"\n },\n Proxy: {\n Title: \"Proxy aktivieren\",\n SubTitle: \"Beim Synchronisieren im Browser muss ein Proxy aktiviert werden, um Cross-Origin-Beschr\\xe4nkungen zu vermeiden\"\n },\n ProxyUrl: {\n Title: \"Proxy-Adresse\",\n SubTitle: \"Nur f\\xfcr projektinterne Cross-Origin-Proxy\"\n },\n WebDav: {\n Endpoint: \"WebDAV-Adresse\",\n UserName: \"Benutzername\",\n Password: \"Passwort\"\n },\n UpStash: {\n Endpoint: \"UpStash Redis REST-Url\",\n UserName: \"Sicherungsname\",\n Password: \"UpStash Redis REST-Token\"\n }\n },\n LocalState: \"Lokale Daten\",\n Overview: (overview)=>{\n return `${overview.chat} Chats, ${overview.message} Nachrichten, ${overview.prompt} Eingabeaufforderungen, ${overview.mask} Masken`;\n },\n ImportFailed: \"Import fehlgeschlagen\"\n },\n Mask: {\n Splash: {\n Title: \"Masken-Startseite\",\n SubTitle: \"Zeige die Masken-Startseite beim Erstellen eines neuen Chats\"\n },\n Builtin: {\n Title: \"Eingebaute Masken ausblenden\",\n SubTitle: \"Blendet eingebaute Masken in allen Maskenlisten aus\"\n }\n },\n Prompt: {\n Disable: {\n Title: \"Automatische Eingabeaufforderung deaktivieren\",\n SubTitle: \"Geben Sie am Anfang des Eingabefelds / ein, um die automatische Vervollst\\xe4ndigung auszul\\xf6sen\"\n },\n List: \"Benutzerdefinierte Eingabeaufforderungsliste\",\n ListCount: (builtin, custom)=>`Eingebaut ${builtin} Stück, Benutzerdefiniert ${custom} Stück`,\n Edit: \"Bearbeiten\",\n Modal: {\n Title: \"Eingabeaufforderungsliste\",\n Add: \"Neu erstellen\",\n Search: \"Eingabeaufforderungen suchen\"\n },\n EditModal: {\n Title: \"Eingabeaufforderung bearbeiten\"\n }\n },\n HistoryCount: {\n Title: \"Anzahl der historischen Nachrichten\",\n SubTitle: \"Anzahl der historischen Nachrichten, die bei jeder Anfrage mitgesendet werden\"\n },\n CompressThreshold: {\n Title: \"Komprimierungsschwelle f\\xfcr historische Nachrichtenl\\xe4nge\",\n SubTitle: \"Wenn die unkomprimierten historischen Nachrichten diesen Wert \\xfcberschreiten, wird komprimiert\"\n },\n Usage: {\n Title: \"Guthabenabfrage\",\n SubTitle (used, total) {\n return `In diesem Monat verwendet $${used}, Abonnement insgesamt $${total}`;\n },\n IsChecking: \"Wird \\xfcberpr\\xfcft…\",\n Check: \"Erneut \\xfcberpr\\xfcfen\",\n NoAccess: \"Geben Sie API-Schl\\xfcssel oder Zugangspasswort ein, um das Guthaben einzusehen\"\n },\n Access: {\n SaasStart: {\n Title: \"NextChat AI verwenden\",\n Label: \"(Die kosteneffektivste L\\xf6sung)\",\n SubTitle: \"Offiziell von NextChat verwaltet, sofort einsatzbereit ohne Konfiguration, unterst\\xfctzt die neuesten gro\\xdfen Modelle wie OpenAI o1, GPT-4o und Claude-3.5\",\n ChatNow: \"Jetzt chatten\"\n },\n AccessCode: {\n Title: \"Zugangscode\",\n SubTitle: \"Der Administrator hat die verschl\\xfcsselte Zugriffskontrolle aktiviert\",\n Placeholder: \"Geben Sie den Zugangscode ein\"\n },\n CustomEndpoint: {\n Title: \"Benutzerdefinierte Schnittstelle\",\n SubTitle: \"Benutzerdefinierte Azure- oder OpenAI-Dienste verwenden\"\n },\n Provider: {\n Title: \"Modellanbieter\",\n SubTitle: \"Wechseln Sie zu verschiedenen Anbietern\"\n },\n OpenAI: {\n ApiKey: {\n Title: \"API-Schl\\xfcssel\",\n SubTitle: \"Verwenden Sie benutzerdefinierten OpenAI-Schl\\xfcssel, um Passwortzugangsbeschr\\xe4nkungen zu umgehen\",\n Placeholder: \"OpenAI API-Schl\\xfcssel\"\n },\n Endpoint: {\n Title: \"Schnittstellenadresse\",\n SubTitle: \"Neben der Standardadresse muss http(s):// enthalten sein\"\n }\n },\n Azure: {\n ApiKey: {\n Title: \"Schnittstellenschl\\xfcssel\",\n SubTitle: \"Verwenden Sie benutzerdefinierten Azure-Schl\\xfcssel, um Passwortzugangsbeschr\\xe4nkungen zu umgehen\",\n Placeholder: \"Azure API-Schl\\xfcssel\"\n },\n Endpoint: {\n Title: \"Schnittstellenadresse\",\n SubTitle: \"Beispiel:\"\n },\n ApiVerion: {\n Title: \"Schnittstellenversion (azure api version)\",\n SubTitle: \"W\\xe4hlen Sie eine spezifische Teilversion aus\"\n }\n },\n Anthropic: {\n ApiKey: {\n Title: \"Schnittstellenschl\\xfcssel\",\n SubTitle: \"Verwenden Sie benutzerdefinierten Anthropic-Schl\\xfcssel, um Passwortzugangsbeschr\\xe4nkungen zu umgehen\",\n Placeholder: \"Anthropic API-Schl\\xfcssel\"\n },\n Endpoint: {\n Title: \"Schnittstellenadresse\",\n SubTitle: \"Beispiel:\"\n },\n ApiVerion: {\n Title: \"Schnittstellenversion (claude api version)\",\n SubTitle: \"W\\xe4hlen Sie eine spezifische API-Version aus\"\n }\n },\n Google: {\n ApiKey: {\n Title: \"API-Schl\\xfcssel\",\n SubTitle: \"Holen Sie sich Ihren API-Schl\\xfcssel von Google AI\",\n Placeholder: \"Geben Sie Ihren Google AI Studio API-Schl\\xfcssel ein\"\n },\n Endpoint: {\n Title: \"Endpunktadresse\",\n SubTitle: \"Beispiel:\"\n },\n ApiVersion: {\n Title: \"API-Version (nur f\\xfcr gemini-pro)\",\n SubTitle: \"W\\xe4hlen Sie eine spezifische API-Version aus\"\n },\n GoogleSafetySettings: {\n Title: \"Google Sicherheitsfilterstufe\",\n SubTitle: \"Inhaltfilterstufe einstellen\"\n }\n },\n Baidu: {\n ApiKey: {\n Title: \"API-Schl\\xfcssel\",\n SubTitle: \"Verwenden Sie benutzerdefinierten Baidu API-Schl\\xfcssel\",\n Placeholder: \"Baidu API-Schl\\xfcssel\"\n },\n SecretKey: {\n Title: \"Geheimschl\\xfcssel\",\n SubTitle: \"Verwenden Sie benutzerdefinierten Baidu Geheimschl\\xfcssel\",\n Placeholder: \"Baidu Geheimschl\\xfcssel\"\n },\n Endpoint: {\n Title: \"Schnittstellenadresse\",\n SubTitle: \"Keine benutzerdefinierten Adressen unterst\\xfctzen, konfigurieren Sie in .env\"\n }\n },\n ByteDance: {\n ApiKey: {\n Title: \"Schnittstellenschl\\xfcssel\",\n SubTitle: \"Verwenden Sie benutzerdefinierten ByteDance API-Schl\\xfcssel\",\n Placeholder: \"ByteDance API-Schl\\xfcssel\"\n },\n Endpoint: {\n Title: \"Schnittstellenadresse\",\n SubTitle: \"Beispiel:\"\n }\n },\n Alibaba: {\n ApiKey: {\n Title: \"Schnittstellenschl\\xfcssel\",\n SubTitle: \"Verwenden Sie benutzerdefinierten Alibaba Cloud API-Schl\\xfcssel\",\n Placeholder: \"Alibaba Cloud API-Schl\\xfcssel\"\n },\n Endpoint: {\n Title: \"Schnittstellenadresse\",\n SubTitle: \"Beispiel:\"\n }\n },\n CustomModel: {\n Title: \"Benutzerdefinierter Modellname\",\n SubTitle: \"F\\xfcgen Sie benutzerdefinierte Modelloptionen hinzu, getrennt durch Kommas\"\n }\n },\n Model: \"Modell\",\n CompressModel: {\n Title: \"Kompressionsmodell\",\n SubTitle: \"Modell zur Komprimierung des Verlaufs\"\n },\n Temperature: {\n Title: \"Zuf\\xe4lligkeit (temperature)\",\n SubTitle: \"Je h\\xf6her der Wert, desto zuf\\xe4lliger die Antwort\"\n },\n TopP: {\n Title: \"Kern-Sampling (top_p)\",\n SubTitle: \"\\xc4hnlich der Zuf\\xe4lligkeit, aber nicht zusammen mit Zuf\\xe4lligkeit \\xe4ndern\"\n },\n MaxTokens: {\n Title: \"Maximale Token-Anzahl pro Antwort\",\n SubTitle: \"Maximale Anzahl der Tokens pro Interaktion\"\n },\n PresencePenalty: {\n Title: \"Themenfrische (presence_penalty)\",\n SubTitle: \"Je h\\xf6her der Wert, desto wahrscheinlicher wird auf neue Themen eingegangen\"\n },\n FrequencyPenalty: {\n Title: \"H\\xe4ufigkeitsstrafe (frequency_penalty)\",\n SubTitle: \"Je h\\xf6her der Wert, desto wahrscheinlicher werden wiederholte W\\xf6rter reduziert\"\n }\n },\n Store: {\n DefaultTopic: \"Neuer Chat\",\n BotHello: \"Wie kann ich Ihnen helfen?\",\n Error: \"Ein Fehler ist aufgetreten, bitte versuchen Sie es sp\\xe4ter noch einmal\",\n Prompt: {\n History: (content)=>\"Dies ist eine Zusammenfassung des bisherigen Chats als Hintergrundinformation: \" + content,\n Topic: \"Geben Sie ein kurzes Thema in vier bis f\\xfcnf W\\xf6rtern zur\\xfcck, ohne Erkl\\xe4rungen, ohne Satzzeichen, ohne F\\xfcllw\\xf6rter, ohne zus\\xe4tzliche Texte und ohne Fettdruck. Wenn kein Thema vorhanden ist, geben Sie bitte „Allgemeines Gespr\\xe4ch“ zur\\xfcck.\",\n Summarize: \"Fassen Sie den Gespr\\xe4chsinhalt zusammen, um als Kontextaufforderung f\\xfcr den n\\xe4chsten Schritt zu dienen, halten Sie es unter 200 Zeichen\"\n }\n },\n Copy: {\n Success: \"In die Zwischenablage geschrieben\",\n Failed: \"Kopieren fehlgeschlagen, bitte erlauben Sie Zugriff auf die Zwischenablage\"\n },\n Download: {\n Success: \"Inhalt wurde in Ihrem Verzeichnis heruntergeladen.\",\n Failed: \"Download fehlgeschlagen.\"\n },\n Context: {\n Toast: (x)=>`Beinhaltet ${x} vordefinierte Eingabeaufforderungen`,\n Edit: \"Aktuelle Gespr\\xe4chseinstellungen\",\n Add: \"Neues Gespr\\xe4ch hinzuf\\xfcgen\",\n Clear: \"Kontext gel\\xf6scht\",\n Revert: \"Kontext wiederherstellen\"\n },\n Plugin: {\n Name: \"Plugins\"\n },\n FineTuned: {\n Sysmessage: \"Du bist ein Assistent\"\n },\n SearchChat: {\n Name: \"Suche\",\n Page: {\n Title: \"Chatverlauf durchsuchen\",\n Search: \"Suchbegriff eingeben\",\n NoResult: \"Keine Ergebnisse gefunden\",\n NoData: \"Keine Daten\",\n Loading: \"Laden\",\n SubTitle: (count)=>`${count} Ergebnisse gefunden`\n },\n Item: {\n View: \"Ansehen\"\n }\n },\n Mask: {\n Name: \"Masken\",\n Page: {\n Title: \"Vordefinierte Rollenmasken\",\n SubTitle: (count)=>`${count} vordefinierte Rollenbeschreibungen`,\n Search: \"Rollenmasken suchen\",\n Create: \"Neu erstellen\"\n },\n Item: {\n Info: (count)=>`Beinhaltet ${count} vordefinierte Gespräche`,\n Chat: \"Gespr\\xe4ch\",\n View: \"Anzeigen\",\n Edit: \"Bearbeiten\",\n Delete: \"L\\xf6schen\",\n DeleteConfirm: \"Best\\xe4tigen Sie das L\\xf6schen?\"\n },\n EditModal: {\n Title: (readonly)=>`Vordefinierte Maske bearbeiten ${readonly ? \"(Nur lesen)\" : \"\"}`,\n Download: \"Vorgabe herunterladen\",\n Clone: \"Vorgabe klonen\"\n },\n Config: {\n Avatar: \"Rollen-Avatar\",\n Name: \"Rollenname\",\n Sync: {\n Title: \"Globale Einstellungen verwenden\",\n SubTitle: \"Soll das aktuelle Gespr\\xe4ch die globalen Modelleinstellungen verwenden?\",\n Confirm: \"Die benutzerdefinierten Einstellungen des aktuellen Gespr\\xe4chs werden automatisch \\xfcberschrieben. Best\\xe4tigen Sie, dass Sie die globalen Einstellungen aktivieren m\\xf6chten?\"\n },\n HideContext: {\n Title: \"Vordefinierte Gespr\\xe4che ausblenden\",\n SubTitle: \"Nach dem Ausblenden werden vordefinierte Gespr\\xe4che nicht mehr im Chat angezeigt\"\n },\n Share: {\n Title: \"Diese Maske teilen\",\n SubTitle: \"Generieren Sie einen Direktlink zu dieser Maske\",\n Action: \"Link kopieren\"\n }\n }\n },\n NewChat: {\n Return: \"Zur\\xfcck\",\n Skip: \"Direkt beginnen\",\n NotShow: \"Nicht mehr anzeigen\",\n ConfirmNoShow: \"Best\\xe4tigen Sie die Deaktivierung? Nach der Deaktivierung k\\xf6nnen Sie jederzeit in den Einstellungen wieder aktivieren.\",\n Title: \"W\\xe4hlen Sie eine Maske aus\",\n SubTitle: \"Starten Sie jetzt und lassen Sie sich von den Gedanken hinter der Maske inspirieren\",\n More: \"Alle anzeigen\"\n },\n URLCommand: {\n Code: \"Ein Zugangscode wurde im Link gefunden. M\\xf6chten Sie diesen automatisch einf\\xfcgen?\",\n Settings: \"Vordefinierte Einstellungen wurden im Link gefunden. M\\xf6chten Sie diese automatisch einf\\xfcgen?\"\n },\n UI: {\n Confirm: \"Best\\xe4tigen\",\n Cancel: \"Abbrechen\",\n Close: \"Schlie\\xdfen\",\n Create: \"Neu erstellen\",\n Edit: \"Bearbeiten\",\n Export: \"Exportieren\",\n Import: \"Importieren\",\n Sync: \"Synchronisieren\",\n Config: \"Konfigurieren\"\n },\n Exporter: {\n Description: {\n Title: \"Nur Nachrichten nach dem L\\xf6schen des Kontexts werden angezeigt\"\n },\n Model: \"Modell\",\n Messages: \"Nachrichten\",\n Topic: \"Thema\",\n Time: \"Zeit\"\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (de);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0U7UUFDRnVMLE1BQU07SUFDUjtJQUVBQyxZQUFZO1FBQ1ZDLE1BQU07UUFDTnhKLFVBQ0U7SUFDSjtJQUVBeUosSUFBSTtRQUNGbk0sU0FBUztRQUNUb00sUUFBUTtRQUNSQyxPQUFPO1FBQ1BkLFFBQVE7UUFDUmhLLE1BQU07UUFDTlIsUUFBUTtRQUNSdUwsUUFBUTtRQUNSbEcsTUFBTTtRQUNOakQsUUFBUTtJQUNWO0lBQ0FvSixVQUFVO1FBQ1JDLGFBQWE7WUFDWDVNLE9BQU87UUFDVDtRQUNBa0ssT0FBTztRQUNQMkMsVUFBVTtRQUNWOUwsT0FBTztRQUNQK0wsTUFBTTtJQUNSO0FBQ0Y7QUFFQSxpRUFBZW5OLEVBQUVBLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9sb2NhbGVzL2RlLnRzPzZiYjMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3VibWl0S2V5IH0gZnJvbSBcIi4uL3N0b3JlL2NvbmZpZ1wiO1xyXG5pbXBvcnQgdHlwZSB7IFBhcnRpYWxMb2NhbGVUeXBlIH0gZnJvbSBcIi4vaW5kZXhcIjtcclxuaW1wb3J0IHsgZ2V0Q2xpZW50Q29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9jbGllbnRcIjtcclxuaW1wb3J0IHsgU0FBU19DSEFUX1VUTV9VUkwgfSBmcm9tIFwiQC9hcHAvY29uc3RhbnRcIjtcclxuY29uc3QgaXNBcHAgPSAhIWdldENsaWVudENvbmZpZygpPy5pc0FwcDtcclxuXHJcbmNvbnN0IGRlOiBQYXJ0aWFsTG9jYWxlVHlwZSA9IHtcclxuICBXSVA6IFwiSW4gQmVhcmJlaXR1bmcuLi5cIixcclxuICBFcnJvcjoge1xyXG4gICAgVW5hdXRob3JpemVkOiBpc0FwcFxyXG4gICAgICA/IGDwn5iGIERhcyBHZXNwcsOkY2ggaGF0dGUgZWluaWdlIFByb2JsZW1lLCBrZWluZSBTb3JnZTpcclxuICAgIFxcXFwgMe+4j+KDoyBXZW5uIGR1IG9obmUgS29uZmlndXJhdGlvbiBzb2ZvcnQgc3RhcnRlbiBtw7ZjaHRlc3QsIFtrbGlja2UgaGllciwgdW0gc29mb3J0IHp1IGNoYXR0ZW4g8J+agF0oJHtTQUFTX0NIQVRfVVRNX1VSTH0pXHJcbiAgICBcXFxcIDLvuI/ig6MgV2VubiBkdSBkZWluZSBlaWdlbmVuIE9wZW5BSS1SZXNzb3VyY2VuIHZlcndlbmRlbiBtw7ZjaHRlc3QsIGtsaWNrZSBbaGllcl0oLyMvc2V0dGluZ3MpLCB1bSBkaWUgRWluc3RlbGx1bmdlbiB6dSDDpG5kZXJuIOKame+4j2BcclxuICAgICAgOiBg8J+YhiBEYXMgR2VzcHLDpGNoIGhhdHRlIGVpbmlnZSBQcm9ibGVtZSwga2VpbmUgU29yZ2U6XHJcbiAgICBcXCAx77iP4oOjIFdlbm4gZHUgb2huZSBLb25maWd1cmF0aW9uIHNvZm9ydCBzdGFydGVuIG3DtmNodGVzdCwgW2tsaWNrZSBoaWVyLCB1bSBzb2ZvcnQgenUgY2hhdHRlbiDwn5qAXSgke1NBQVNfQ0hBVF9VVE1fVVJMfSlcclxuICAgIFxcIDLvuI/ig6MgV2VubiBkdSBlaW5lIHByaXZhdGUgQmVyZWl0c3RlbGx1bmcgdmVyd2VuZGVzdCwga2xpY2tlIFtoaWVyXSgvIy9hdXRoKSwgdW0gZGVuIFp1Z3JpZmZzc2NobMO8c3NlbCBlaW56dWdlYmVuIPCflJFcclxuICAgIFxcIDPvuI/ig6MgV2VubiBkdSBkZWluZSBlaWdlbmVuIE9wZW5BSS1SZXNzb3VyY2VuIHZlcndlbmRlbiBtw7ZjaHRlc3QsIGtsaWNrZSBbaGllcl0oLyMvc2V0dGluZ3MpLCB1bSBkaWUgRWluc3RlbGx1bmdlbiB6dSDDpG5kZXJuIOKame+4j1xyXG4gYCxcclxuICB9LFxyXG4gIEF1dGg6IHtcclxuICAgIFRpdGxlOiBcIlBhc3N3b3J0IGVyZm9yZGVybGljaFwiLFxyXG4gICAgVGlwczogXCJEZXIgQWRtaW5pc3RyYXRvciBoYXQgZGllIFBhc3N3b3J0w7xiZXJwcsO8ZnVuZyBha3RpdmllcnQuIEJpdHRlIGdlYmVuIFNpZSBkZW4gWnVnYW5nc2NvZGUgdW50ZW4gZWluLlwiLFxyXG4gICAgU3ViVGlwczogXCJPZGVyIGdlYmVuIFNpZSBJaHJlbiBPcGVuQUkgb2RlciBHb29nbGUgQVBJLVNjaGzDvHNzZWwgZWluLlwiLFxyXG4gICAgSW5wdXQ6IFwiR2ViZW4gU2llIGhpZXIgZGVuIFp1Z2FuZ3Njb2RlIGVpblwiLFxyXG4gICAgQ29uZmlybTogXCJCZXN0w6R0aWdlblwiLFxyXG4gICAgTGF0ZXI6IFwiU3DDpHRlclwiLFxyXG4gICAgUmV0dXJuOiBcIlp1csO8Y2tcIixcclxuICAgIFNhYXNUaXBzOlxyXG4gICAgICBcIkRpZSBLb25maWd1cmF0aW9uIGlzdCB6dSBrb21wbGl6aWVydCwgaWNoIG3DtmNodGUgZXMgc29mb3J0IG51dHplblwiLFxyXG4gICAgVG9wVGlwczpcclxuICAgICAgXCLwn6WzIE5leHRDaGF0IEFJIEVpbmbDvGhydW5nc2FuZ2Vib3QsIHNjaGFsdGUgamV0enQgT3BlbkFJIG8xLCBHUFQtNG8sIENsYXVkZS0zLjUgdW5kIGRpZSBuZXVlc3RlbiBncm/Dn2VuIE1vZGVsbGUgZnJlaVwiLFxyXG4gIH0sXHJcbiAgQ2hhdEl0ZW06IHtcclxuICAgIENoYXRJdGVtQ291bnQ6IChjb3VudDogbnVtYmVyKSA9PiBgJHtjb3VudH0gR2VzcHLDpGNoZWAsXHJcbiAgfSxcclxuICBDaGF0OiB7XHJcbiAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGBJbnNnZXNhbXQgJHtjb3VudH0gR2VzcHLDpGNoZWAsXHJcbiAgICBFZGl0TWVzc2FnZToge1xyXG4gICAgICBUaXRsZTogXCJOYWNocmljaHQgYmVhcmJlaXRlblwiLFxyXG4gICAgICBUb3BpYzoge1xyXG4gICAgICAgIFRpdGxlOiBcIkNoYXQtVGhlbWFcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLDhG5kZXJuIFNpZSBkYXMgYWt0dWVsbGUgQ2hhdC1UaGVtYVwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIEFjdGlvbnM6IHtcclxuICAgICAgQ2hhdExpc3Q6IFwiTmFjaHJpY2h0bGlzdGUgYW56ZWlnZW5cIixcclxuICAgICAgQ29tcHJlc3NlZEhpc3Rvcnk6IFwiS29tcHJpbWllcnRlIEhpc3RvcmllIGFuemVpZ2VuXCIsXHJcbiAgICAgIEV4cG9ydDogXCJDaGF0dmVybGF1ZiBleHBvcnRpZXJlblwiLFxyXG4gICAgICBDb3B5OiBcIktvcGllcmVuXCIsXHJcbiAgICAgIFN0b3A6IFwiU3RvcHBlblwiLFxyXG4gICAgICBSZXRyeTogXCJFcm5ldXQgdmVyc3VjaGVuXCIsXHJcbiAgICAgIFBpbjogXCJBbmhlZnRlblwiLFxyXG4gICAgICBQaW5Ub2FzdENvbnRlbnQ6IFwiMSBHZXNwcsOkY2ggYW4gZGVuIHZvcmVpbmdlc3RlbGx0ZW4gUHJvbXB0IGFuZ2VoZWZ0ZXRcIixcclxuICAgICAgUGluVG9hc3RBY3Rpb246IFwiQW5zZWhlblwiLFxyXG4gICAgICBEZWxldGU6IFwiTMO2c2NoZW5cIixcclxuICAgICAgRWRpdDogXCJCZWFyYmVpdGVuXCIsXHJcbiAgICAgIFJlZnJlc2hUaXRsZTogXCJUaXRlbCBha3R1YWxpc2llcmVuXCIsXHJcbiAgICAgIFJlZnJlc2hUb2FzdDogXCJBbmZyYWdlIHp1ciBUaXRlbGFrdHVhbGlzaWVydW5nIGdlc2VuZGV0XCIsXHJcbiAgICB9LFxyXG4gICAgQ29tbWFuZHM6IHtcclxuICAgICAgbmV3OiBcIk5ldWVzIEdlc3Byw6RjaFwiLFxyXG4gICAgICBuZXdtOiBcIk5ldWVzIEdlc3Byw6RjaCBhdXMgTWFza2UgZXJzdGVsbGVuXCIsXHJcbiAgICAgIG5leHQ6IFwiTsOkY2hzdGVzIEdlc3Byw6RjaFwiLFxyXG4gICAgICBwcmV2OiBcIlZvcmhlcmlnZXMgR2VzcHLDpGNoXCIsXHJcbiAgICAgIGNsZWFyOiBcIktvbnRleHQgbMO2c2NoZW5cIixcclxuICAgICAgZGVsOiBcIkdlc3Byw6RjaCBsw7ZzY2hlblwiLFxyXG4gICAgfSxcclxuICAgIElucHV0QWN0aW9uczoge1xyXG4gICAgICBTdG9wOiBcIkFudHdvcnQgc3RvcHBlblwiLFxyXG4gICAgICBUb0JvdHRvbTogXCJadW0gbmV1ZXN0ZW4gQmVpdHJhZ1wiLFxyXG4gICAgICBUaGVtZToge1xyXG4gICAgICAgIGF1dG86IFwiQXV0b21hdGlzY2hlcyBUaGVtYVwiLFxyXG4gICAgICAgIGxpZ2h0OiBcIkhlbGxlcyBUaGVtYVwiLFxyXG4gICAgICAgIGRhcms6IFwiRHVua2xlcyBUaGVtYVwiLFxyXG4gICAgICB9LFxyXG4gICAgICBQcm9tcHQ6IFwiU2NobmVsbGJlZmVobGVcIixcclxuICAgICAgTWFza3M6IFwiQWxsZSBNYXNrZW5cIixcclxuICAgICAgQ2xlYXI6IFwiQ2hhdCBsw7ZzY2hlblwiLFxyXG4gICAgICBTZXR0aW5nczogXCJHZXNwcsOkY2hzZWluc3RlbGx1bmdlblwiLFxyXG4gICAgICBVcGxvYWRJbWFnZTogXCJCaWxkIGhvY2hsYWRlblwiLFxyXG4gICAgfSxcclxuICAgIFJlbmFtZTogXCJHZXNwcsOkY2ggdW1iZW5lbm5lblwiLFxyXG4gICAgVHlwaW5nOiBcIlRpcHB04oCmXCIsXHJcbiAgICBJbnB1dDogKHN1Ym1pdEtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHZhciBpbnB1dEhpbnRzID0gYCR7c3VibWl0S2V5fSBzZW5kZW5gO1xyXG4gICAgICBpZiAoc3VibWl0S2V5ID09PSBTdHJpbmcoU3VibWl0S2V5LkVudGVyKSkge1xyXG4gICAgICAgIGlucHV0SGludHMgKz0gXCLvvIxTaGlmdCArIEVudGVyIGbDvHIgWmVpbGVudW1icnVjaFwiO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBpbnB1dEhpbnRzICsgXCLvvIwvIGbDvHIgQXV0b3ZlcnZvbGxzdMOkbmRpZ3VuZywgOiBmw7xyIEJlZmVobGVcIjtcclxuICAgIH0sXHJcbiAgICBTZW5kOiBcIlNlbmRlblwiLFxyXG4gICAgQ29uZmlnOiB7XHJcbiAgICAgIFJlc2V0OiBcIkVyaW5uZXJ1bmcgbMO2c2NoZW5cIixcclxuICAgICAgU2F2ZUFzOiBcIkFscyBNYXNrZSBzcGVpY2hlcm5cIixcclxuICAgIH0sXHJcbiAgICBJc0NvbnRleHQ6IFwiVm9yZWluZ2VzdGVsbHRlciBQcm9tcHRcIixcclxuICB9LFxyXG4gIEV4cG9ydDoge1xyXG4gICAgVGl0bGU6IFwiQ2hhdHZlcmxhdWYgdGVpbGVuXCIsXHJcbiAgICBDb3B5OiBcIkFsbGVzIGtvcGllcmVuXCIsXHJcbiAgICBEb3dubG9hZDogXCJEYXRlaSBoZXJ1bnRlcmxhZGVuXCIsXHJcbiAgICBTaGFyZTogXCJBdWYgU2hhcmVHUFQgdGVpbGVuXCIsXHJcbiAgICBNZXNzYWdlRnJvbVlvdTogXCJCZW51dHplclwiLFxyXG4gICAgTWVzc2FnZUZyb21DaGF0R1BUOiBcIkNoYXRHUFRcIixcclxuICAgIEZvcm1hdDoge1xyXG4gICAgICBUaXRsZTogXCJFeHBvcnRmb3JtYXRcIixcclxuICAgICAgU3ViVGl0bGU6IFwiS2FubiBhbHMgTWFya2Rvd24tVGV4dCBvZGVyIFBORy1CaWxkIGV4cG9ydGllcnQgd2VyZGVuXCIsXHJcbiAgICB9LFxyXG4gICAgSW5jbHVkZUNvbnRleHQ6IHtcclxuICAgICAgVGl0bGU6IFwiTWFza2UgS29udGV4dCBlaW5iZXppZWhlblwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJTb2xsIGRlciBNYXNrZW5rb250ZXh0IGluIGRlbiBOYWNocmljaHRlbiBhbmdlemVpZ3Qgd2VyZGVuP1wiLFxyXG4gICAgfSxcclxuICAgIFN0ZXBzOiB7XHJcbiAgICAgIFNlbGVjdDogXCJBdXN3w6RobGVuXCIsXHJcbiAgICAgIFByZXZpZXc6IFwiVm9yc2NoYXVcIixcclxuICAgIH0sXHJcbiAgICBJbWFnZToge1xyXG4gICAgICBUb2FzdDogXCJTY3JlZW5zaG90IHdpcmQgZXJzdGVsbHRcIixcclxuICAgICAgTW9kYWw6IFwiTGFuZyBkcsO8Y2tlbiBvZGVyIFJlY2h0c2tsaWNrLCB1bSBCaWxkIHp1IHNwZWljaGVyblwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIFNlbGVjdDoge1xyXG4gICAgU2VhcmNoOiBcIk5hY2hyaWNodGVuIHN1Y2hlblwiLFxyXG4gICAgQWxsOiBcIkFsbGVzIGF1c3fDpGhsZW5cIixcclxuICAgIExhdGVzdDogXCJOZXVlc3RlXCIsXHJcbiAgICBDbGVhcjogXCJBdXN3YWhsIGF1ZmhlYmVuXCIsXHJcbiAgfSxcclxuICBNZW1vcnk6IHtcclxuICAgIFRpdGxlOiBcIkhpc3RvcmlzY2hlIFp1c2FtbWVuZmFzc3VuZ1wiLFxyXG4gICAgRW1wdHlDb250ZW50OlxyXG4gICAgICBcIkdlc3Byw6RjaHNpbmhhbHRlIHNpbmQgenUga3Vyeiwga2VpbmUgWnVzYW1tZW5mYXNzdW5nIGVyZm9yZGVybGljaFwiLFxyXG4gICAgU2VuZDogXCJDaGF0dmVybGF1ZiBhdXRvbWF0aXNjaCBrb21wcmltaWVyZW4gdW5kIGFscyBLb250ZXh0IHNlbmRlblwiLFxyXG4gICAgQ29weTogXCJadXNhbW1lbmZhc3N1bmcga29waWVyZW5cIixcclxuICAgIFJlc2V0OiBcIltuaWNodCB2ZXJ3ZW5kZXRdXCIsXHJcbiAgICBSZXNldENvbmZpcm06IFwiWnVzYW1tZW5mYXNzdW5nIGzDtnNjaGVuIGJlc3TDpHRpZ2VuP1wiLFxyXG4gIH0sXHJcbiAgSG9tZToge1xyXG4gICAgTmV3Q2hhdDogXCJOZXVlcyBHZXNwcsOkY2hcIixcclxuICAgIERlbGV0ZUNoYXQ6IFwiQmVzdMOkdGlnZW4gU2llIGRhcyBMw7ZzY2hlbiBkZXMgYXVzZ2V3w6RobHRlbiBHZXNwcsOkY2hzP1wiLFxyXG4gICAgRGVsZXRlVG9hc3Q6IFwiR2VzcHLDpGNoIGdlbMO2c2NodFwiLFxyXG4gICAgUmV2ZXJ0OiBcIlLDvGNrZ8OkbmdpZyBtYWNoZW5cIixcclxuICB9LFxyXG4gIFNldHRpbmdzOiB7XHJcbiAgICBUaXRsZTogXCJFaW5zdGVsbHVuZ2VuXCIsXHJcbiAgICBTdWJUaXRsZTogXCJBbGxlIEVpbnN0ZWxsdW5nc23DtmdsaWNoa2VpdGVuXCIsXHJcblxyXG4gICAgRGFuZ2VyOiB7XHJcbiAgICAgIFJlc2V0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiQWxsZSBFaW5zdGVsbHVuZ2VuIHp1csO8Y2tzZXR6ZW5cIixcclxuICAgICAgICBTdWJUaXRsZTogXCJTZXR6dCBhbGxlIEVpbnN0ZWxsdW5nZW4gYXVmIGRpZSBTdGFuZGFyZHdlcnRlIHp1csO8Y2tcIixcclxuICAgICAgICBBY3Rpb246IFwiSmV0enQgenVyw7xja3NldHplblwiLFxyXG4gICAgICAgIENvbmZpcm06IFwiQmVzdMOkdGlnZW4gU2llIGRhcyBadXLDvGNrc2V0emVuIGFsbGVyIEVpbnN0ZWxsdW5nZW4/XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIENsZWFyOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiQWxsZSBEYXRlbiBsw7ZzY2hlblwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIkzDtnNjaHQgYWxsZSBDaGF0cyB1bmQgRWluc3RlbGx1bmdzZGF0ZW5cIixcclxuICAgICAgICBBY3Rpb246IFwiSmV0enQgbMO2c2NoZW5cIixcclxuICAgICAgICBDb25maXJtOlxyXG4gICAgICAgICAgXCJCZXN0w6R0aWdlbiBTaWUgZGFzIEzDtnNjaGVuIGFsbGVyIENoYXRzIHVuZCBFaW5zdGVsbHVuZ3NkYXRlbj9cIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBMYW5nOiB7XHJcbiAgICAgIE5hbWU6IFwiU3ByYWNoZVwiLCAvLyBBQ0hUVU5HOiBXZW5uIFNpZSBlaW5lIG5ldWUgw5xiZXJzZXR6dW5nIGhpbnp1ZsO8Z2VuIG3DtmNodGVuLCDDvGJlcnNldHplbiBTaWUgZGllc2VuIFdlcnQgYml0dGUgbmljaHQsIGxhc3NlbiBTaWUgaWhuIGFscyBgU3ByYWNoZWBcclxuICAgICAgQWxsOiBcIkFsbGUgU3ByYWNoZW5cIixcclxuICAgIH0sXHJcbiAgICBBdmF0YXI6IFwiQXZhdGFyXCIsXHJcbiAgICBGb250U2l6ZToge1xyXG4gICAgICBUaXRsZTogXCJTY2hyaWZ0Z3LDtsOfZVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJTY2hyaWZ0Z3LDtsOfZSBkZXMgQ2hhdC1JbmhhbHRzXCIsXHJcbiAgICB9LFxyXG4gICAgRm9udEZhbWlseToge1xyXG4gICAgICBUaXRsZTogXCJDaGF0LVNjaHJpZnRhcnRcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJTY2hyaWZ0YXJ0IGRlcyBDaGF0LUluaGFsdHMsIGxlZXIgbGFzc2VuLCB1bSBkaWUgZ2xvYmFsZSBTdGFuZGFyZHNjaHJpZnRhcnQgYW56dXdlbmRlblwiLFxyXG4gICAgICBQbGFjZWhvbGRlcjogXCJTY2hyaWZ0YXJ0bmFtZVwiLFxyXG4gICAgfSxcclxuICAgIEluamVjdFN5c3RlbVByb21wdHM6IHtcclxuICAgICAgVGl0bGU6IFwiU3lzdGVtd2VpdGUgRWluZ2FiZWF1ZmZvcmRlcnVuZ2VuIGVpbmbDvGdlblwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIkbDvGd0IGplZGVyIE5hY2hyaWNodCBhbSBBbmZhbmcgZGVyIE5hY2hyaWNodGVubGlzdGUgZWluZSBzaW11bGllcnRlIENoYXRHUFQtU3lzdGVtYXVmZm9yZGVydW5nIGhpbnp1XCIsXHJcbiAgICB9LFxyXG4gICAgSW5wdXRUZW1wbGF0ZToge1xyXG4gICAgICBUaXRsZTogXCJCZW51dHplci1FaW5nYWJldmVyYXJiZWl0dW5nXCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwiRGllIG5ldWVzdGUgTmFjaHJpY2h0IGRlcyBCZW51dHplcnMgd2lyZCBpbiBkaWVzZSBWb3JsYWdlIGVpbmdlZsO8Z3RcIixcclxuICAgIH0sXHJcblxyXG4gICAgVXBkYXRlOiB7XHJcbiAgICAgIFZlcnNpb246ICh4OiBzdHJpbmcpID0+IGBBa3R1ZWxsZSBWZXJzaW9uOiAke3h9YCxcclxuICAgICAgSXNMYXRlc3Q6IFwiQmVyZWl0cyBkaWUgbmV1ZXN0ZSBWZXJzaW9uXCIsXHJcbiAgICAgIENoZWNrVXBkYXRlOiBcIkF1ZiBVcGRhdGVzIMO8YmVycHLDvGZlblwiLFxyXG4gICAgICBJc0NoZWNraW5nOiBcIsOcYmVycHLDvGZlIGF1ZiBVcGRhdGVzLi4uXCIsXHJcbiAgICAgIEZvdW5kVXBkYXRlOiAoeDogc3RyaW5nKSA9PiBgTmV1ZSBWZXJzaW9uIGdlZnVuZGVuOiAke3h9YCxcclxuICAgICAgR29Ub1VwZGF0ZTogXCJadW0gVXBkYXRlIGdlaGVuXCIsXHJcbiAgICB9LFxyXG4gICAgU2VuZEtleTogXCJTZW5kZS1UYXN0ZVwiLFxyXG4gICAgVGhlbWU6IFwiVGhlbWFcIixcclxuICAgIFRpZ2h0Qm9yZGVyOiBcIlJhbmRsb3NlciBNb2R1c1wiLFxyXG4gICAgU2VuZFByZXZpZXdCdWJibGU6IHtcclxuICAgICAgVGl0bGU6IFwiVm9yc2NoYXUtQnViYmxlXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIk1hcmtkb3duLUluaGFsdCBpbiBkZXIgVm9yc2NoYXUtQnViYmxlIGFuemVpZ2VuXCIsXHJcbiAgICB9LFxyXG4gICAgQXV0b0dlbmVyYXRlVGl0bGU6IHtcclxuICAgICAgVGl0bGU6IFwiVGl0ZWwgYXV0b21hdGlzY2ggZ2VuZXJpZXJlblwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIkJhc2llcmVuZCBhdWYgZGVtIENoYXQtSW5oYWx0IGVpbmVuIHBhc3NlbmRlbiBUaXRlbCBnZW5lcmllcmVuXCIsXHJcbiAgICB9LFxyXG4gICAgU3luYzoge1xyXG4gICAgICBDbG91ZFN0YXRlOiBcIkNsb3VkLURhdGVuXCIsXHJcbiAgICAgIE5vdFN5bmNZZXQ6IFwiTm9jaCBuaWNodCBzeW5jaHJvbmlzaWVydFwiLFxyXG4gICAgICBTdWNjZXNzOiBcIlN5bmNocm9uaXNhdGlvbiBlcmZvbGdyZWljaFwiLFxyXG4gICAgICBGYWlsOiBcIlN5bmNocm9uaXNhdGlvbiBmZWhsZ2VzY2hsYWdlblwiLFxyXG5cclxuICAgICAgQ29uZmlnOiB7XHJcbiAgICAgICAgTW9kYWw6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkNsb3VkLVN5bmNocm9uaXNhdGlvbiBrb25maWd1cmllcmVuXCIsXHJcbiAgICAgICAgICBDaGVjazogXCJWZXJmw7xnYmFya2VpdCDDvGJlcnByw7xmZW5cIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFN5bmNUeXBlOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJTeW5jaHJvbmlzYXRpb25zdHlwXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJXw6RobGVuIFNpZSBkZW4gYmV2b3J6dWd0ZW4gU3luY2hyb25pc2F0aW9uc3NlcnZlciBhdXNcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFByb3h5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJQcm94eSBha3RpdmllcmVuXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgICAgXCJCZWltIFN5bmNocm9uaXNpZXJlbiBpbSBCcm93c2VyIG11c3MgZWluIFByb3h5IGFrdGl2aWVydCB3ZXJkZW4sIHVtIENyb3NzLU9yaWdpbi1CZXNjaHLDpG5rdW5nZW4genUgdmVybWVpZGVuXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQcm94eVVybDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiUHJveHktQWRyZXNzZVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiTnVyIGbDvHIgcHJvamVrdGludGVybmUgQ3Jvc3MtT3JpZ2luLVByb3h5XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgV2ViRGF2OiB7XHJcbiAgICAgICAgICBFbmRwb2ludDogXCJXZWJEQVYtQWRyZXNzZVwiLFxyXG4gICAgICAgICAgVXNlck5hbWU6IFwiQmVudXR6ZXJuYW1lXCIsXHJcbiAgICAgICAgICBQYXNzd29yZDogXCJQYXNzd29ydFwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIFVwU3Rhc2g6IHtcclxuICAgICAgICAgIEVuZHBvaW50OiBcIlVwU3Rhc2ggUmVkaXMgUkVTVC1VcmxcIixcclxuICAgICAgICAgIFVzZXJOYW1lOiBcIlNpY2hlcnVuZ3NuYW1lXCIsXHJcbiAgICAgICAgICBQYXNzd29yZDogXCJVcFN0YXNoIFJlZGlzIFJFU1QtVG9rZW5cIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG5cclxuICAgICAgTG9jYWxTdGF0ZTogXCJMb2thbGUgRGF0ZW5cIixcclxuICAgICAgT3ZlcnZpZXc6IChvdmVydmlldzogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGAke292ZXJ2aWV3LmNoYXR9IENoYXRzLCAke292ZXJ2aWV3Lm1lc3NhZ2V9IE5hY2hyaWNodGVuLCAke292ZXJ2aWV3LnByb21wdH0gRWluZ2FiZWF1ZmZvcmRlcnVuZ2VuLCAke292ZXJ2aWV3Lm1hc2t9IE1hc2tlbmA7XHJcbiAgICAgIH0sXHJcbiAgICAgIEltcG9ydEZhaWxlZDogXCJJbXBvcnQgZmVobGdlc2NobGFnZW5cIixcclxuICAgIH0sXHJcbiAgICBNYXNrOiB7XHJcbiAgICAgIFNwbGFzaDoge1xyXG4gICAgICAgIFRpdGxlOiBcIk1hc2tlbi1TdGFydHNlaXRlXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIlplaWdlIGRpZSBNYXNrZW4tU3RhcnRzZWl0ZSBiZWltIEVyc3RlbGxlbiBlaW5lcyBuZXVlbiBDaGF0c1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBCdWlsdGluOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiRWluZ2ViYXV0ZSBNYXNrZW4gYXVzYmxlbmRlblwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIkJsZW5kZXQgZWluZ2ViYXV0ZSBNYXNrZW4gaW4gYWxsZW4gTWFza2VubGlzdGVuIGF1c1wiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIFByb21wdDoge1xyXG4gICAgICBEaXNhYmxlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiQXV0b21hdGlzY2hlIEVpbmdhYmVhdWZmb3JkZXJ1bmcgZGVha3RpdmllcmVuXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIkdlYmVuIFNpZSBhbSBBbmZhbmcgZGVzIEVpbmdhYmVmZWxkcyAvIGVpbiwgdW0gZGllIGF1dG9tYXRpc2NoZSBWZXJ2b2xsc3TDpG5kaWd1bmcgYXVzenVsw7ZzZW5cIixcclxuICAgICAgfSxcclxuICAgICAgTGlzdDogXCJCZW51dHplcmRlZmluaWVydGUgRWluZ2FiZWF1ZmZvcmRlcnVuZ3NsaXN0ZVwiLFxyXG4gICAgICBMaXN0Q291bnQ6IChidWlsdGluOiBudW1iZXIsIGN1c3RvbTogbnVtYmVyKSA9PlxyXG4gICAgICAgIGBFaW5nZWJhdXQgJHtidWlsdGlufSBTdMO8Y2ssIEJlbnV0emVyZGVmaW5pZXJ0ICR7Y3VzdG9tfSBTdMO8Y2tgLFxyXG4gICAgICBFZGl0OiBcIkJlYXJiZWl0ZW5cIixcclxuICAgICAgTW9kYWw6IHtcclxuICAgICAgICBUaXRsZTogXCJFaW5nYWJlYXVmZm9yZGVydW5nc2xpc3RlXCIsXHJcbiAgICAgICAgQWRkOiBcIk5ldSBlcnN0ZWxsZW5cIixcclxuICAgICAgICBTZWFyY2g6IFwiRWluZ2FiZWF1ZmZvcmRlcnVuZ2VuIHN1Y2hlblwiLFxyXG4gICAgICB9LFxyXG4gICAgICBFZGl0TW9kYWw6IHtcclxuICAgICAgICBUaXRsZTogXCJFaW5nYWJlYXVmZm9yZGVydW5nIGJlYXJiZWl0ZW5cIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBIaXN0b3J5Q291bnQ6IHtcclxuICAgICAgVGl0bGU6IFwiQW56YWhsIGRlciBoaXN0b3Jpc2NoZW4gTmFjaHJpY2h0ZW5cIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJBbnphaGwgZGVyIGhpc3RvcmlzY2hlbiBOYWNocmljaHRlbiwgZGllIGJlaSBqZWRlciBBbmZyYWdlIG1pdGdlc2VuZGV0IHdlcmRlblwiLFxyXG4gICAgfSxcclxuICAgIENvbXByZXNzVGhyZXNob2xkOiB7XHJcbiAgICAgIFRpdGxlOiBcIktvbXByaW1pZXJ1bmdzc2Nod2VsbGUgZsO8ciBoaXN0b3Jpc2NoZSBOYWNocmljaHRlbmzDpG5nZVwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIldlbm4gZGllIHVua29tcHJpbWllcnRlbiBoaXN0b3Jpc2NoZW4gTmFjaHJpY2h0ZW4gZGllc2VuIFdlcnQgw7xiZXJzY2hyZWl0ZW4sIHdpcmQga29tcHJpbWllcnRcIixcclxuICAgIH0sXHJcblxyXG4gICAgVXNhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwiR3V0aGFiZW5hYmZyYWdlXCIsXHJcbiAgICAgIFN1YlRpdGxlKHVzZWQ6IGFueSwgdG90YWw6IGFueSkge1xyXG4gICAgICAgIHJldHVybiBgSW4gZGllc2VtIE1vbmF0IHZlcndlbmRldCAkJHt1c2VkfSwgQWJvbm5lbWVudCBpbnNnZXNhbXQgJCR7dG90YWx9YDtcclxuICAgICAgfSxcclxuICAgICAgSXNDaGVja2luZzogXCJXaXJkIMO8YmVycHLDvGZ04oCmXCIsXHJcbiAgICAgIENoZWNrOiBcIkVybmV1dCDDvGJlcnByw7xmZW5cIixcclxuICAgICAgTm9BY2Nlc3M6XHJcbiAgICAgICAgXCJHZWJlbiBTaWUgQVBJLVNjaGzDvHNzZWwgb2RlciBadWdhbmdzcGFzc3dvcnQgZWluLCB1bSBkYXMgR3V0aGFiZW4gZWluenVzZWhlblwiLFxyXG4gICAgfSxcclxuXHJcbiAgICBBY2Nlc3M6IHtcclxuICAgICAgU2Fhc1N0YXJ0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiTmV4dENoYXQgQUkgdmVyd2VuZGVuXCIsXHJcbiAgICAgICAgTGFiZWw6IFwiKERpZSBrb3N0ZW5lZmZla3RpdnN0ZSBMw7ZzdW5nKVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCJPZmZpemllbGwgdm9uIE5leHRDaGF0IHZlcndhbHRldCwgc29mb3J0IGVpbnNhdHpiZXJlaXQgb2huZSBLb25maWd1cmF0aW9uLCB1bnRlcnN0w7x0enQgZGllIG5ldWVzdGVuIGdyb8OfZW4gTW9kZWxsZSB3aWUgT3BlbkFJIG8xLCBHUFQtNG8gdW5kIENsYXVkZS0zLjVcIixcclxuICAgICAgICBDaGF0Tm93OiBcIkpldHp0IGNoYXR0ZW5cIixcclxuICAgICAgfSxcclxuXHJcbiAgICAgIEFjY2Vzc0NvZGU6IHtcclxuICAgICAgICBUaXRsZTogXCJadWdhbmdzY29kZVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCJEZXIgQWRtaW5pc3RyYXRvciBoYXQgZGllIHZlcnNjaGzDvHNzZWx0ZSBadWdyaWZmc2tvbnRyb2xsZSBha3RpdmllcnRcIixcclxuICAgICAgICBQbGFjZWhvbGRlcjogXCJHZWJlbiBTaWUgZGVuIFp1Z2FuZ3Njb2RlIGVpblwiLFxyXG4gICAgICB9LFxyXG4gICAgICBDdXN0b21FbmRwb2ludDoge1xyXG4gICAgICAgIFRpdGxlOiBcIkJlbnV0emVyZGVmaW5pZXJ0ZSBTY2huaXR0c3RlbGxlXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiQmVudXR6ZXJkZWZpbmllcnRlIEF6dXJlLSBvZGVyIE9wZW5BSS1EaWVuc3RlIHZlcndlbmRlblwiLFxyXG4gICAgICB9LFxyXG4gICAgICBQcm92aWRlcjoge1xyXG4gICAgICAgIFRpdGxlOiBcIk1vZGVsbGFuYmlldGVyXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiV2VjaHNlbG4gU2llIHp1IHZlcnNjaGllZGVuZW4gQW5iaWV0ZXJuXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIE9wZW5BSToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJLVNjaGzDvHNzZWxcIixcclxuICAgICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgICBcIlZlcndlbmRlbiBTaWUgYmVudXR6ZXJkZWZpbmllcnRlbiBPcGVuQUktU2NobMO8c3NlbCwgdW0gUGFzc3dvcnR6dWdhbmdzYmVzY2hyw6Rua3VuZ2VuIHp1IHVtZ2VoZW5cIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIk9wZW5BSSBBUEktU2NobMO8c3NlbFwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJTY2huaXR0c3RlbGxlbmFkcmVzc2VcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIk5lYmVuIGRlciBTdGFuZGFyZGFkcmVzc2UgbXVzcyBodHRwKHMpOi8vIGVudGhhbHRlbiBzZWluXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQXp1cmU6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlNjaG5pdHRzdGVsbGVuc2NobMO8c3NlbFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiVmVyd2VuZGVuIFNpZSBiZW51dHplcmRlZmluaWVydGVuIEF6dXJlLVNjaGzDvHNzZWwsIHVtIFBhc3N3b3J0enVnYW5nc2Jlc2NocsOkbmt1bmdlbiB6dSB1bWdlaGVuXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJBenVyZSBBUEktU2NobMO8c3NlbFwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJTY2huaXR0c3RlbGxlbmFkcmVzc2VcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkJlaXNwaWVsOlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcmlvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiU2Nobml0dHN0ZWxsZW52ZXJzaW9uIChhenVyZSBhcGkgdmVyc2lvbilcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlfDpGhsZW4gU2llIGVpbmUgc3BlemlmaXNjaGUgVGVpbHZlcnNpb24gYXVzXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQW50aHJvcGljOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJTY2huaXR0c3RlbGxlbnNjaGzDvHNzZWxcIixcclxuICAgICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgICBcIlZlcndlbmRlbiBTaWUgYmVudXR6ZXJkZWZpbmllcnRlbiBBbnRocm9waWMtU2NobMO8c3NlbCwgdW0gUGFzc3dvcnR6dWdhbmdzYmVzY2hyw6Rua3VuZ2VuIHp1IHVtZ2VoZW5cIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkFudGhyb3BpYyBBUEktU2NobMO8c3NlbFwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJTY2huaXR0c3RlbGxlbmFkcmVzc2VcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkJlaXNwaWVsOlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcmlvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiU2Nobml0dHN0ZWxsZW52ZXJzaW9uIChjbGF1ZGUgYXBpIHZlcnNpb24pXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJXw6RobGVuIFNpZSBlaW5lIHNwZXppZmlzY2hlIEFQSS1WZXJzaW9uIGF1c1wiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEdvb2dsZToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJLVNjaGzDvHNzZWxcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkhvbGVuIFNpZSBzaWNoIElocmVuIEFQSS1TY2hsw7xzc2VsIHZvbiBHb29nbGUgQUlcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkdlYmVuIFNpZSBJaHJlbiBHb29nbGUgQUkgU3R1ZGlvIEFQSS1TY2hsw7xzc2VsIGVpblwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJFbmRwdW5rdGFkcmVzc2VcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkJlaXNwaWVsOlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcnNpb246IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSS1WZXJzaW9uIChudXIgZsO8ciBnZW1pbmktcHJvKVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiV8OkaGxlbiBTaWUgZWluZSBzcGV6aWZpc2NoZSBBUEktVmVyc2lvbiBhdXNcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEdvb2dsZVNhZmV0eVNldHRpbmdzOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJHb29nbGUgU2ljaGVyaGVpdHNmaWx0ZXJzdHVmZVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiSW5oYWx0ZmlsdGVyc3R1ZmUgZWluc3RlbGxlblwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEJhaWR1OiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEktU2NobMO8c3NlbFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiVmVyd2VuZGVuIFNpZSBiZW51dHplcmRlZmluaWVydGVuIEJhaWR1IEFQSS1TY2hsw7xzc2VsXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJCYWlkdSBBUEktU2NobMO8c3NlbFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgU2VjcmV0S2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJHZWhlaW1zY2hsw7xzc2VsXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJWZXJ3ZW5kZW4gU2llIGJlbnV0emVyZGVmaW5pZXJ0ZW4gQmFpZHUgR2VoZWltc2NobMO8c3NlbFwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQmFpZHUgR2VoZWltc2NobMO8c3NlbFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlNjaG5pdHRzdGVsbGVuYWRyZXNzZVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiS2VpbmUgYmVudXR6ZXJkZWZpbmllcnRlbiBBZHJlc3NlbiB1bnRlcnN0w7x0emVuLCBrb25maWd1cmllcmVuIFNpZSBpbiAuZW52XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQnl0ZURhbmNlOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJTY2huaXR0c3RlbGxlbnNjaGzDvHNzZWxcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlZlcndlbmRlbiBTaWUgYmVudXR6ZXJkZWZpbmllcnRlbiBCeXRlRGFuY2UgQVBJLVNjaGzDvHNzZWxcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkJ5dGVEYW5jZSBBUEktU2NobMO8c3NlbFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlNjaG5pdHRzdGVsbGVuYWRyZXNzZVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiQmVpc3BpZWw6XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQWxpYmFiYToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiU2Nobml0dHN0ZWxsZW5zY2hsw7xzc2VsXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgICAgXCJWZXJ3ZW5kZW4gU2llIGJlbnV0emVyZGVmaW5pZXJ0ZW4gQWxpYmFiYSBDbG91ZCBBUEktU2NobMO8c3NlbFwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQWxpYmFiYSBDbG91ZCBBUEktU2NobMO8c3NlbFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlNjaG5pdHRzdGVsbGVuYWRyZXNzZVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiQmVpc3BpZWw6XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQ3VzdG9tTW9kZWw6IHtcclxuICAgICAgICBUaXRsZTogXCJCZW51dHplcmRlZmluaWVydGVyIE1vZGVsbG5hbWVcIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiRsO8Z2VuIFNpZSBiZW51dHplcmRlZmluaWVydGUgTW9kZWxsb3B0aW9uZW4gaGluenUsIGdldHJlbm50IGR1cmNoIEtvbW1hc1wiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuXHJcbiAgICBNb2RlbDogXCJNb2RlbGxcIixcclxuICAgIENvbXByZXNzTW9kZWw6IHtcclxuICAgICAgVGl0bGU6IFwiS29tcHJlc3Npb25zbW9kZWxsXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIk1vZGVsbCB6dXIgS29tcHJpbWllcnVuZyBkZXMgVmVybGF1ZnNcIixcclxuICAgIH0sXHJcbiAgICBUZW1wZXJhdHVyZToge1xyXG4gICAgICBUaXRsZTogXCJadWbDpGxsaWdrZWl0ICh0ZW1wZXJhdHVyZSlcIixcclxuICAgICAgU3ViVGl0bGU6IFwiSmUgaMO2aGVyIGRlciBXZXJ0LCBkZXN0byB6dWbDpGxsaWdlciBkaWUgQW50d29ydFwiLFxyXG4gICAgfSxcclxuICAgIFRvcFA6IHtcclxuICAgICAgVGl0bGU6IFwiS2Vybi1TYW1wbGluZyAodG9wX3ApXCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwiw4RobmxpY2ggZGVyIFp1ZsOkbGxpZ2tlaXQsIGFiZXIgbmljaHQgenVzYW1tZW4gbWl0IFp1ZsOkbGxpZ2tlaXQgw6RuZGVyblwiLFxyXG4gICAgfSxcclxuICAgIE1heFRva2Vuczoge1xyXG4gICAgICBUaXRsZTogXCJNYXhpbWFsZSBUb2tlbi1BbnphaGwgcHJvIEFudHdvcnRcIixcclxuICAgICAgU3ViVGl0bGU6IFwiTWF4aW1hbGUgQW56YWhsIGRlciBUb2tlbnMgcHJvIEludGVyYWt0aW9uXCIsXHJcbiAgICB9LFxyXG4gICAgUHJlc2VuY2VQZW5hbHR5OiB7XHJcbiAgICAgIFRpdGxlOiBcIlRoZW1lbmZyaXNjaGUgKHByZXNlbmNlX3BlbmFsdHkpXCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwiSmUgaMO2aGVyIGRlciBXZXJ0LCBkZXN0byB3YWhyc2NoZWlubGljaGVyIHdpcmQgYXVmIG5ldWUgVGhlbWVuIGVpbmdlZ2FuZ2VuXCIsXHJcbiAgICB9LFxyXG4gICAgRnJlcXVlbmN5UGVuYWx0eToge1xyXG4gICAgICBUaXRsZTogXCJIw6R1Zmlna2VpdHNzdHJhZmUgKGZyZXF1ZW5jeV9wZW5hbHR5KVwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIkplIGjDtmhlciBkZXIgV2VydCwgZGVzdG8gd2FocnNjaGVpbmxpY2hlciB3ZXJkZW4gd2llZGVyaG9sdGUgV8O2cnRlciByZWR1emllcnRcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBTdG9yZToge1xyXG4gICAgRGVmYXVsdFRvcGljOiBcIk5ldWVyIENoYXRcIixcclxuICAgIEJvdEhlbGxvOiBcIldpZSBrYW5uIGljaCBJaG5lbiBoZWxmZW4/XCIsXHJcbiAgICBFcnJvcjpcclxuICAgICAgXCJFaW4gRmVobGVyIGlzdCBhdWZnZXRyZXRlbiwgYml0dGUgdmVyc3VjaGVuIFNpZSBlcyBzcMOkdGVyIG5vY2ggZWlubWFsXCIsXHJcbiAgICBQcm9tcHQ6IHtcclxuICAgICAgSGlzdG9yeTogKGNvbnRlbnQ6IHN0cmluZykgPT5cclxuICAgICAgICBcIkRpZXMgaXN0IGVpbmUgWnVzYW1tZW5mYXNzdW5nIGRlcyBiaXNoZXJpZ2VuIENoYXRzIGFscyBIaW50ZXJncnVuZGluZm9ybWF0aW9uOiBcIiArXHJcbiAgICAgICAgY29udGVudCxcclxuICAgICAgVG9waWM6XHJcbiAgICAgICAgXCJHZWJlbiBTaWUgZWluIGt1cnplcyBUaGVtYSBpbiB2aWVyIGJpcyBmw7xuZiBXw7ZydGVybiB6dXLDvGNrLCBvaG5lIEVya2zDpHJ1bmdlbiwgb2huZSBTYXR6emVpY2hlbiwgb2huZSBGw7xsbHfDtnJ0ZXIsIG9obmUgenVzw6R0emxpY2hlIFRleHRlIHVuZCBvaG5lIEZldHRkcnVjay4gV2VubiBrZWluIFRoZW1hIHZvcmhhbmRlbiBpc3QsIGdlYmVuIFNpZSBiaXR0ZSDigJ5BbGxnZW1laW5lcyBHZXNwcsOkY2jigJwgenVyw7xjay5cIixcclxuICAgICAgU3VtbWFyaXplOlxyXG4gICAgICAgIFwiRmFzc2VuIFNpZSBkZW4gR2VzcHLDpGNoc2luaGFsdCB6dXNhbW1lbiwgdW0gYWxzIEtvbnRleHRhdWZmb3JkZXJ1bmcgZsO8ciBkZW4gbsOkY2hzdGVuIFNjaHJpdHQgenUgZGllbmVuLCBoYWx0ZW4gU2llIGVzIHVudGVyIDIwMCBaZWljaGVuXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgQ29weToge1xyXG4gICAgU3VjY2VzczogXCJJbiBkaWUgWndpc2NoZW5hYmxhZ2UgZ2VzY2hyaWViZW5cIixcclxuICAgIEZhaWxlZDpcclxuICAgICAgXCJLb3BpZXJlbiBmZWhsZ2VzY2hsYWdlbiwgYml0dGUgZXJsYXViZW4gU2llIFp1Z3JpZmYgYXVmIGRpZSBad2lzY2hlbmFibGFnZVwiLFxyXG4gIH0sXHJcbiAgRG93bmxvYWQ6IHtcclxuICAgIFN1Y2Nlc3M6IFwiSW5oYWx0IHd1cmRlIGluIElocmVtIFZlcnplaWNobmlzIGhlcnVudGVyZ2VsYWRlbi5cIixcclxuICAgIEZhaWxlZDogXCJEb3dubG9hZCBmZWhsZ2VzY2hsYWdlbi5cIixcclxuICB9LFxyXG4gIENvbnRleHQ6IHtcclxuICAgIFRvYXN0OiAoeDogYW55KSA9PiBgQmVpbmhhbHRldCAke3h9IHZvcmRlZmluaWVydGUgRWluZ2FiZWF1ZmZvcmRlcnVuZ2VuYCxcclxuICAgIEVkaXQ6IFwiQWt0dWVsbGUgR2VzcHLDpGNoc2VpbnN0ZWxsdW5nZW5cIixcclxuICAgIEFkZDogXCJOZXVlcyBHZXNwcsOkY2ggaGluenVmw7xnZW5cIixcclxuICAgIENsZWFyOiBcIktvbnRleHQgZ2Vsw7ZzY2h0XCIsXHJcbiAgICBSZXZlcnQ6IFwiS29udGV4dCB3aWVkZXJoZXJzdGVsbGVuXCIsXHJcbiAgfSxcclxuICBQbHVnaW46IHtcclxuICAgIE5hbWU6IFwiUGx1Z2luc1wiLFxyXG4gIH0sXHJcbiAgRmluZVR1bmVkOiB7XHJcbiAgICBTeXNtZXNzYWdlOiBcIkR1IGJpc3QgZWluIEFzc2lzdGVudFwiLFxyXG4gIH0sXHJcbiAgU2VhcmNoQ2hhdDoge1xyXG4gICAgTmFtZTogXCJTdWNoZVwiLFxyXG4gICAgUGFnZToge1xyXG4gICAgICBUaXRsZTogXCJDaGF0dmVybGF1ZiBkdXJjaHN1Y2hlblwiLFxyXG4gICAgICBTZWFyY2g6IFwiU3VjaGJlZ3JpZmYgZWluZ2ViZW5cIixcclxuICAgICAgTm9SZXN1bHQ6IFwiS2VpbmUgRXJnZWJuaXNzZSBnZWZ1bmRlblwiLFxyXG4gICAgICBOb0RhdGE6IFwiS2VpbmUgRGF0ZW5cIixcclxuICAgICAgTG9hZGluZzogXCJMYWRlblwiLFxyXG5cclxuICAgICAgU3ViVGl0bGU6IChjb3VudDogbnVtYmVyKSA9PiBgJHtjb3VudH0gRXJnZWJuaXNzZSBnZWZ1bmRlbmAsXHJcbiAgICB9LFxyXG4gICAgSXRlbToge1xyXG4gICAgICBWaWV3OiBcIkFuc2VoZW5cIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBNYXNrOiB7XHJcbiAgICBOYW1lOiBcIk1hc2tlblwiLFxyXG4gICAgUGFnZToge1xyXG4gICAgICBUaXRsZTogXCJWb3JkZWZpbmllcnRlIFJvbGxlbm1hc2tlblwiLFxyXG4gICAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+XHJcbiAgICAgICAgYCR7Y291bnR9IHZvcmRlZmluaWVydGUgUm9sbGVuYmVzY2hyZWlidW5nZW5gLFxyXG4gICAgICBTZWFyY2g6IFwiUm9sbGVubWFza2VuIHN1Y2hlblwiLFxyXG4gICAgICBDcmVhdGU6IFwiTmV1IGVyc3RlbGxlblwiLFxyXG4gICAgfSxcclxuICAgIEl0ZW06IHtcclxuICAgICAgSW5mbzogKGNvdW50OiBudW1iZXIpID0+IGBCZWluaGFsdGV0ICR7Y291bnR9IHZvcmRlZmluaWVydGUgR2VzcHLDpGNoZWAsXHJcbiAgICAgIENoYXQ6IFwiR2VzcHLDpGNoXCIsXHJcbiAgICAgIFZpZXc6IFwiQW56ZWlnZW5cIixcclxuICAgICAgRWRpdDogXCJCZWFyYmVpdGVuXCIsXHJcbiAgICAgIERlbGV0ZTogXCJMw7ZzY2hlblwiLFxyXG4gICAgICBEZWxldGVDb25maXJtOiBcIkJlc3TDpHRpZ2VuIFNpZSBkYXMgTMO2c2NoZW4/XCIsXHJcbiAgICB9LFxyXG4gICAgRWRpdE1vZGFsOiB7XHJcbiAgICAgIFRpdGxlOiAocmVhZG9ubHk6IGJvb2xlYW4pID0+XHJcbiAgICAgICAgYFZvcmRlZmluaWVydGUgTWFza2UgYmVhcmJlaXRlbiAke3JlYWRvbmx5ID8gXCLvvIhOdXIgbGVzZW7vvIlcIiA6IFwiXCJ9YCxcclxuICAgICAgRG93bmxvYWQ6IFwiVm9yZ2FiZSBoZXJ1bnRlcmxhZGVuXCIsXHJcbiAgICAgIENsb25lOiBcIlZvcmdhYmUga2xvbmVuXCIsXHJcbiAgICB9LFxyXG4gICAgQ29uZmlnOiB7XHJcbiAgICAgIEF2YXRhcjogXCJSb2xsZW4tQXZhdGFyXCIsXHJcbiAgICAgIE5hbWU6IFwiUm9sbGVubmFtZVwiLFxyXG4gICAgICBTeW5jOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiR2xvYmFsZSBFaW5zdGVsbHVuZ2VuIHZlcndlbmRlblwiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCJTb2xsIGRhcyBha3R1ZWxsZSBHZXNwcsOkY2ggZGllIGdsb2JhbGVuIE1vZGVsbGVpbnN0ZWxsdW5nZW4gdmVyd2VuZGVuP1wiLFxyXG4gICAgICAgIENvbmZpcm06XHJcbiAgICAgICAgICBcIkRpZSBiZW51dHplcmRlZmluaWVydGVuIEVpbnN0ZWxsdW5nZW4gZGVzIGFrdHVlbGxlbiBHZXNwcsOkY2hzIHdlcmRlbiBhdXRvbWF0aXNjaCDDvGJlcnNjaHJpZWJlbi4gQmVzdMOkdGlnZW4gU2llLCBkYXNzIFNpZSBkaWUgZ2xvYmFsZW4gRWluc3RlbGx1bmdlbiBha3RpdmllcmVuIG3DtmNodGVuP1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBIaWRlQ29udGV4dDoge1xyXG4gICAgICAgIFRpdGxlOiBcIlZvcmRlZmluaWVydGUgR2VzcHLDpGNoZSBhdXNibGVuZGVuXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIk5hY2ggZGVtIEF1c2JsZW5kZW4gd2VyZGVuIHZvcmRlZmluaWVydGUgR2VzcHLDpGNoZSBuaWNodCBtZWhyIGltIENoYXQgYW5nZXplaWd0XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFNoYXJlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiRGllc2UgTWFza2UgdGVpbGVuXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiR2VuZXJpZXJlbiBTaWUgZWluZW4gRGlyZWt0bGluayB6dSBkaWVzZXIgTWFza2VcIixcclxuICAgICAgICBBY3Rpb246IFwiTGluayBrb3BpZXJlblwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9LFxyXG4gIE5ld0NoYXQ6IHtcclxuICAgIFJldHVybjogXCJadXLDvGNrXCIsXHJcbiAgICBTa2lwOiBcIkRpcmVrdCBiZWdpbm5lblwiLFxyXG4gICAgTm90U2hvdzogXCJOaWNodCBtZWhyIGFuemVpZ2VuXCIsXHJcbiAgICBDb25maXJtTm9TaG93OlxyXG4gICAgICBcIkJlc3TDpHRpZ2VuIFNpZSBkaWUgRGVha3RpdmllcnVuZz8gTmFjaCBkZXIgRGVha3RpdmllcnVuZyBrw7ZubmVuIFNpZSBqZWRlcnplaXQgaW4gZGVuIEVpbnN0ZWxsdW5nZW4gd2llZGVyIGFrdGl2aWVyZW4uXCIsXHJcbiAgICBUaXRsZTogXCJXw6RobGVuIFNpZSBlaW5lIE1hc2tlIGF1c1wiLFxyXG4gICAgU3ViVGl0bGU6XHJcbiAgICAgIFwiU3RhcnRlbiBTaWUgamV0enQgdW5kIGxhc3NlbiBTaWUgc2ljaCB2b24gZGVuIEdlZGFua2VuIGhpbnRlciBkZXIgTWFza2UgaW5zcGlyaWVyZW5cIixcclxuICAgIE1vcmU6IFwiQWxsZSBhbnplaWdlblwiLFxyXG4gIH0sXHJcblxyXG4gIFVSTENvbW1hbmQ6IHtcclxuICAgIENvZGU6IFwiRWluIFp1Z2FuZ3Njb2RlIHd1cmRlIGltIExpbmsgZ2VmdW5kZW4uIE3DtmNodGVuIFNpZSBkaWVzZW4gYXV0b21hdGlzY2ggZWluZsO8Z2VuP1wiLFxyXG4gICAgU2V0dGluZ3M6XHJcbiAgICAgIFwiVm9yZGVmaW5pZXJ0ZSBFaW5zdGVsbHVuZ2VuIHd1cmRlbiBpbSBMaW5rIGdlZnVuZGVuLiBNw7ZjaHRlbiBTaWUgZGllc2UgYXV0b21hdGlzY2ggZWluZsO8Z2VuP1wiLFxyXG4gIH0sXHJcblxyXG4gIFVJOiB7XHJcbiAgICBDb25maXJtOiBcIkJlc3TDpHRpZ2VuXCIsXHJcbiAgICBDYW5jZWw6IFwiQWJicmVjaGVuXCIsXHJcbiAgICBDbG9zZTogXCJTY2hsaWXDn2VuXCIsXHJcbiAgICBDcmVhdGU6IFwiTmV1IGVyc3RlbGxlblwiLFxyXG4gICAgRWRpdDogXCJCZWFyYmVpdGVuXCIsXHJcbiAgICBFeHBvcnQ6IFwiRXhwb3J0aWVyZW5cIixcclxuICAgIEltcG9ydDogXCJJbXBvcnRpZXJlblwiLFxyXG4gICAgU3luYzogXCJTeW5jaHJvbmlzaWVyZW5cIixcclxuICAgIENvbmZpZzogXCJLb25maWd1cmllcmVuXCIsXHJcbiAgfSxcclxuICBFeHBvcnRlcjoge1xyXG4gICAgRGVzY3JpcHRpb246IHtcclxuICAgICAgVGl0bGU6IFwiTnVyIE5hY2hyaWNodGVuIG5hY2ggZGVtIEzDtnNjaGVuIGRlcyBLb250ZXh0cyB3ZXJkZW4gYW5nZXplaWd0XCIsXHJcbiAgICB9LFxyXG4gICAgTW9kZWw6IFwiTW9kZWxsXCIsXHJcbiAgICBNZXNzYWdlczogXCJOYWNocmljaHRlblwiLFxyXG4gICAgVG9waWM6IFwiVGhlbWFcIixcclxuICAgIFRpbWU6IFwiWmVpdFwiLFxyXG4gIH0sXHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBkZTtcclxuIl0sIm5hbWVzIjpbIlN1Ym1pdEtleSIsImdldENsaWVudENvbmZpZyIsIlNBQVNfQ0hBVF9VVE1fVVJMIiwiaXNBcHAiLCJkZSIsIldJUCIsIkVycm9yIiwiVW5hdXRob3JpemVkIiwiQXV0aCIsIlRpdGxlIiwiVGlwcyIsIlN1YlRpcHMiLCJJbnB1dCIsIkNvbmZpcm0iLCJMYXRlciIsIlJldHVybiIsIlNhYXNUaXBzIiwiVG9wVGlwcyIsIkNoYXRJdGVtIiwiQ2hhdEl0ZW1Db3VudCIsImNvdW50IiwiQ2hhdCIsIlN1YlRpdGxlIiwiRWRpdE1lc3NhZ2UiLCJUb3BpYyIsIkFjdGlvbnMiLCJDaGF0TGlzdCIsIkNvbXByZXNzZWRIaXN0b3J5IiwiRXhwb3J0IiwiQ29weSIsIlN0b3AiLCJSZXRyeSIsIlBpbiIsIlBpblRvYXN0Q29udGVudCIsIlBpblRvYXN0QWN0aW9uIiwiRGVsZXRlIiwiRWRpdCIsIlJlZnJlc2hUaXRsZSIsIlJlZnJlc2hUb2FzdCIsIkNvbW1hbmRzIiwibmV3IiwibmV3bSIsIm5leHQiLCJwcmV2IiwiY2xlYXIiLCJkZWwiLCJJbnB1dEFjdGlvbnMiLCJUb0JvdHRvbSIsIlRoZW1lIiwiYXV0byIsImxpZ2h0IiwiZGFyayIsIlByb21wdCIsIk1hc2tzIiwiQ2xlYXIiLCJTZXR0aW5ncyIsIlVwbG9hZEltYWdlIiwiUmVuYW1lIiwiVHlwaW5nIiwic3VibWl0S2V5IiwiaW5wdXRIaW50cyIsIlN0cmluZyIsIkVudGVyIiwiU2VuZCIsIkNvbmZpZyIsIlJlc2V0IiwiU2F2ZUFzIiwiSXNDb250ZXh0IiwiRG93bmxvYWQiLCJTaGFyZSIsIk1lc3NhZ2VGcm9tWW91IiwiTWVzc2FnZUZyb21DaGF0R1BUIiwiRm9ybWF0IiwiSW5jbHVkZUNvbnRleHQiLCJTdGVwcyIsIlNlbGVjdCIsIlByZXZpZXciLCJJbWFnZSIsIlRvYXN0IiwiTW9kYWwiLCJTZWFyY2giLCJBbGwiLCJMYXRlc3QiLCJNZW1vcnkiLCJFbXB0eUNvbnRlbnQiLCJSZXNldENvbmZpcm0iLCJIb21lIiwiTmV3Q2hhdCIsIkRlbGV0ZUNoYXQiLCJEZWxldGVUb2FzdCIsIlJldmVydCIsIkRhbmdlciIsIkFjdGlvbiIsIkxhbmciLCJOYW1lIiwiQXZhdGFyIiwiRm9udFNpemUiLCJGb250RmFtaWx5IiwiUGxhY2Vob2xkZXIiLCJJbmplY3RTeXN0ZW1Qcm9tcHRzIiwiSW5wdXRUZW1wbGF0ZSIsIlVwZGF0ZSIsIlZlcnNpb24iLCJ4IiwiSXNMYXRlc3QiLCJDaGVja1VwZGF0ZSIsIklzQ2hlY2tpbmciLCJGb3VuZFVwZGF0ZSIsIkdvVG9VcGRhdGUiLCJTZW5kS2V5IiwiVGlnaHRCb3JkZXIiLCJTZW5kUHJldmlld0J1YmJsZSIsIkF1dG9HZW5lcmF0ZVRpdGxlIiwiU3luYyIsIkNsb3VkU3RhdGUiLCJOb3RTeW5jWWV0IiwiU3VjY2VzcyIsIkZhaWwiLCJDaGVjayIsIlN5bmNUeXBlIiwiUHJveHkiLCJQcm94eVVybCIsIldlYkRhdiIsIkVuZHBvaW50IiwiVXNlck5hbWUiLCJQYXNzd29yZCIsIlVwU3Rhc2giLCJMb2NhbFN0YXRlIiwiT3ZlcnZpZXciLCJvdmVydmlldyIsImNoYXQiLCJtZXNzYWdlIiwicHJvbXB0IiwibWFzayIsIkltcG9ydEZhaWxlZCIsIk1hc2siLCJTcGxhc2giLCJCdWlsdGluIiwiRGlzYWJsZSIsIkxpc3QiLCJMaXN0Q291bnQiLCJidWlsdGluIiwiY3VzdG9tIiwiQWRkIiwiRWRpdE1vZGFsIiwiSGlzdG9yeUNvdW50IiwiQ29tcHJlc3NUaHJlc2hvbGQiLCJVc2FnZSIsInVzZWQiLCJ0b3RhbCIsIk5vQWNjZXNzIiwiQWNjZXNzIiwiU2Fhc1N0YXJ0IiwiTGFiZWwiLCJDaGF0Tm93IiwiQWNjZXNzQ29kZSIsIkN1c3RvbUVuZHBvaW50IiwiUHJvdmlkZXIiLCJPcGVuQUkiLCJBcGlLZXkiLCJBenVyZSIsIkFwaVZlcmlvbiIsIkFudGhyb3BpYyIsIkdvb2dsZSIsIkFwaVZlcnNpb24iLCJHb29nbGVTYWZldHlTZXR0aW5ncyIsIkJhaWR1IiwiU2VjcmV0S2V5IiwiQnl0ZURhbmNlIiwiQWxpYmFiYSIsIkN1c3RvbU1vZGVsIiwiTW9kZWwiLCJDb21wcmVzc01vZGVsIiwiVGVtcGVyYXR1cmUiLCJUb3BQIiwiTWF4VG9rZW5zIiwiUHJlc2VuY2VQZW5hbHR5IiwiRnJlcXVlbmN5UGVuYWx0eSIsIlN0b3JlIiwiRGVmYXVsdFRvcGljIiwiQm90SGVsbG8iLCJIaXN0b3J5IiwiY29udGVudCIsIlN1bW1hcml6ZSIsIkZhaWxlZCIsIkNvbnRleHQiLCJQbHVnaW4iLCJGaW5lVHVuZWQiLCJTeXNtZXNzYWdlIiwiU2VhcmNoQ2hhdCIsIlBhZ2UiLCJOb1Jlc3VsdCIsIk5vRGF0YSIsIkxvYWRpbmciLCJJdGVtIiwiVmlldyIsIkNyZWF0ZSIsIkluZm8iLCJEZWxldGVDb25maXJtIiwicmVhZG9ubHkiLCJDbG9uZSIsIkhpZGVDb250ZXh0IiwiU2tpcCIsIk5vdFNob3ciLCJDb25maXJtTm9TaG93IiwiTW9yZSIsIlVSTENvbW1hbmQiLCJDb2RlIiwiVUkiLCJDYW5jZWwiLCJDbG9zZSIsIkltcG9ydCIsIkV4cG9ydGVyIiwiRGVzY3JpcHRpb24iLCJNZXNzYWdlcyIsIlRpbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/locales/de.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/locales/en.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/locales/en.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _store_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../store/config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n\n\n\n// if you are adding a new translation, please use PartialLocaleType instead of LocaleType\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_0__.getClientConfig)()?.isApp;\nconst en = {\n WIP: \"Coming Soon...\",\n Error: {\n Unauthorized: isApp ? `😆 Oops, there's an issue. No worries:\r\n \\\\ 1️⃣ New here? [Click to start chatting now 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\\\ 2️⃣ Want to use your own OpenAI resources? [Click here](/#/settings) to change settings ⚙️` : `😆 Oops, there's an issue. Let's fix it:\r\n \\ 1️⃣ New here? [Click to start chatting now 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\ 2️⃣ Using a private setup? [Click here](/#/auth) to enter your key 🔑\r\n \\ 3️⃣ Want to use your own OpenAI resources? [Click here](/#/settings) to change settings ⚙️\r\n `\n },\n Auth: {\n Return: \"Return\",\n Title: \"Need Access Code\",\n Tips: \"Please enter access code below\",\n SubTips: \"Or enter your OpenAI or Google API Key\",\n Input: \"access code\",\n Confirm: \"Confirm\",\n Later: \"Later\",\n SaasTips: \"Too Complex, Use Immediately Now\",\n TopTips: \"\\uD83E\\uDD73 NextChat AI launch promotion: Instantly unlock the latest models like OpenAI o1, GPT-4o, Claude-3.5!\"\n },\n ChatItem: {\n ChatItemCount: (count)=>`${count} messages`\n },\n Chat: {\n SubTitle: (count)=>`${count} messages`,\n EditMessage: {\n Title: \"Edit All Messages\",\n Topic: {\n Title: \"Topic\",\n SubTitle: \"Change the current topic\"\n }\n },\n Actions: {\n ChatList: \"Go To Chat List\",\n CompressedHistory: \"Compressed History Memory Prompt\",\n Export: \"Export All Messages as Markdown\",\n Copy: \"Copy\",\n Stop: \"Stop\",\n Retry: \"Retry\",\n Pin: \"Pin\",\n PinToastContent: \"Pinned 1 messages to contextual prompts\",\n PinToastAction: \"View\",\n Delete: \"Delete\",\n Edit: \"Edit\",\n FullScreen: \"FullScreen\",\n RefreshTitle: \"Refresh Title\",\n RefreshToast: \"Title refresh request sent\",\n Speech: \"Play\",\n StopSpeech: \"Stop\"\n },\n Commands: {\n new: \"Start a new chat\",\n newm: \"Start a new chat with mask\",\n next: \"Next Chat\",\n prev: \"Previous Chat\",\n clear: \"Clear Context\",\n fork: \"Copy Chat\",\n del: \"Delete Chat\"\n },\n InputActions: {\n Stop: \"Stop\",\n ToBottom: \"To Latest\",\n Theme: {\n auto: \"Auto\",\n light: \"Light Theme\",\n dark: \"Dark Theme\"\n },\n Prompt: \"Prompts\",\n Masks: \"Masks\",\n Clear: \"Clear Context\",\n Settings: \"Settings\",\n UploadImage: \"Upload Images\"\n },\n Rename: \"Rename Chat\",\n Typing: \"Typing…\",\n Input: (submitKey)=>{\n var inputHints = `${submitKey} to send`;\n if (submitKey === String(_store_config__WEBPACK_IMPORTED_MODULE_1__.SubmitKey.Enter)) {\n inputHints += \", Shift + Enter to wrap\";\n }\n return inputHints + \", / to search prompts, : to use commands\";\n },\n Send: \"Send\",\n StartSpeak: \"Start Speak\",\n StopSpeak: \"Stop Speak\",\n Config: {\n Reset: \"Reset to Default\",\n SaveAs: \"Save as Mask\"\n },\n IsContext: \"Contextual Prompt\",\n ShortcutKey: {\n Title: \"Keyboard Shortcuts\",\n newChat: \"Open New Chat\",\n focusInput: \"Focus Input Field\",\n copyLastMessage: \"Copy Last Reply\",\n copyLastCode: \"Copy Last Code Block\",\n showShortcutKey: \"Show Shortcuts\",\n clearContext: \"Clear Context\"\n }\n },\n Export: {\n Title: \"Export Messages\",\n Copy: \"Copy All\",\n Download: \"Download\",\n MessageFromYou: \"Message From You\",\n MessageFromChatGPT: \"Message From ChatGPT\",\n Share: \"Share to ShareGPT\",\n Format: {\n Title: \"Export Format\",\n SubTitle: \"Markdown or PNG Image\"\n },\n IncludeContext: {\n Title: \"Including Context\",\n SubTitle: \"Export context prompts in mask or not\"\n },\n Steps: {\n Select: \"Select\",\n Preview: \"Preview\"\n },\n Image: {\n Toast: \"Capturing Image...\",\n Modal: \"Long press or right click to save image\"\n },\n Artifacts: {\n Title: \"Share Artifacts\",\n Error: \"Share Error\"\n }\n },\n Select: {\n Search: \"Search\",\n All: \"Select All\",\n Latest: \"Select Latest\",\n Clear: \"Clear\"\n },\n Memory: {\n Title: \"Memory Prompt\",\n EmptyContent: \"Nothing yet.\",\n Send: \"Send Memory\",\n Copy: \"Copy Memory\",\n Reset: \"Reset Session\",\n ResetConfirm: \"Resetting will clear the current conversation history and historical memory. Are you sure you want to reset?\"\n },\n Home: {\n NewChat: \"New Chat\",\n DeleteChat: \"Confirm to delete the selected conversation?\",\n DeleteToast: \"Chat Deleted\",\n Revert: \"Revert\"\n },\n Settings: {\n Title: \"Settings\",\n SubTitle: \"All Settings\",\n ShowPassword: \"ShowPassword\",\n Danger: {\n Reset: {\n Title: \"Reset All Settings\",\n SubTitle: \"Reset all setting items to default\",\n Action: \"Reset\",\n Confirm: \"Confirm to reset all settings to default?\"\n },\n Clear: {\n Title: \"Clear All Data\",\n SubTitle: \"Clear all messages and settings\",\n Action: \"Clear\",\n Confirm: \"Confirm to clear all messages and settings?\"\n }\n },\n Lang: {\n Name: \"Language\",\n All: \"All Languages\"\n },\n Avatar: \"Avatar\",\n FontSize: {\n Title: \"Font Size\",\n SubTitle: \"Adjust font size of chat content\"\n },\n FontFamily: {\n Title: \"Chat Font Family\",\n SubTitle: \"Font Family of the chat content, leave empty to apply global default font\",\n Placeholder: \"Font Family Name\"\n },\n InjectSystemPrompts: {\n Title: \"Inject System Prompts\",\n SubTitle: \"Inject a global system prompt for every request\"\n },\n InputTemplate: {\n Title: \"Input Template\",\n SubTitle: \"Newest message will be filled to this template\"\n },\n Update: {\n Version: (x)=>`Version: ${x}`,\n IsLatest: \"Latest version\",\n CheckUpdate: \"Check Update\",\n IsChecking: \"Checking update...\",\n FoundUpdate: (x)=>`Found new version: ${x}`,\n GoToUpdate: \"Update\",\n Success: \"Update Successful.\",\n Failed: \"Update Failed.\"\n },\n SendKey: \"Send Key\",\n Theme: \"Theme\",\n TightBorder: \"Tight Border\",\n SendPreviewBubble: {\n Title: \"Send Preview Bubble\",\n SubTitle: \"Preview markdown in bubble\"\n },\n AutoGenerateTitle: {\n Title: \"Auto Generate Title\",\n SubTitle: \"Generate a suitable title based on the conversation content\"\n },\n Sync: {\n CloudState: \"Last Update\",\n NotSyncYet: \"Not sync yet\",\n Success: \"Sync Success\",\n Fail: \"Sync Fail\",\n Config: {\n Modal: {\n Title: \"Config Sync\",\n Check: \"Check Connection\"\n },\n SyncType: {\n Title: \"Sync Type\",\n SubTitle: \"Choose your favorite sync service\"\n },\n Proxy: {\n Title: \"Enable CORS Proxy\",\n SubTitle: \"Enable a proxy to avoid cross-origin restrictions\"\n },\n ProxyUrl: {\n Title: \"Proxy Endpoint\",\n SubTitle: \"Only applicable to the built-in CORS proxy for this project\"\n },\n WebDav: {\n Endpoint: \"WebDAV Endpoint\",\n UserName: \"User Name\",\n Password: \"Password\"\n },\n UpStash: {\n Endpoint: \"UpStash Redis REST Url\",\n UserName: \"Backup Name\",\n Password: \"UpStash Redis REST Token\"\n }\n },\n LocalState: \"Local Data\",\n Overview: (overview)=>{\n return `${overview.chat} chats,${overview.message} messages,${overview.prompt} prompts,${overview.mask} masks`;\n },\n ImportFailed: \"Failed to import from file\"\n },\n Mask: {\n Splash: {\n Title: \"Mask Splash Screen\",\n SubTitle: \"Show a mask splash screen before starting new chat\"\n },\n Builtin: {\n Title: \"Hide Builtin Masks\",\n SubTitle: \"Hide builtin masks in mask list\"\n }\n },\n Prompt: {\n Disable: {\n Title: \"Disable auto-completion\",\n SubTitle: \"Input / to trigger auto-completion\"\n },\n List: \"Prompt List\",\n ListCount: (builtin, custom)=>`${builtin} built-in, ${custom} user-defined`,\n Edit: \"Edit\",\n Modal: {\n Title: \"Prompt List\",\n Add: \"Add One\",\n Search: \"Search Prompts\"\n },\n EditModal: {\n Title: \"Edit Prompt\"\n }\n },\n HistoryCount: {\n Title: \"Attached Messages Count\",\n SubTitle: \"Number of sent messages attached per request\"\n },\n CompressThreshold: {\n Title: \"History Compression Threshold\",\n SubTitle: \"Will compress if uncompressed messages length exceeds the value\"\n },\n Usage: {\n Title: \"Account Balance\",\n SubTitle (used, total) {\n return `Used this month $${used}, subscription $${total}`;\n },\n IsChecking: \"Checking...\",\n Check: \"Check\",\n NoAccess: \"Enter API Key to check balance\"\n },\n Access: {\n SaasStart: {\n Title: \"Use NextChat AI\",\n Label: \" (Most Cost-Effective Option)\",\n SubTitle: \"Maintained by NextChat, zero setup needed, unlock OpenAI o1, GPT-4o,\" + \" Claude-3.5 and more\",\n ChatNow: \"Start Now\"\n },\n AccessCode: {\n Title: \"Access Code\",\n SubTitle: \"Access control Enabled\",\n Placeholder: \"Enter Code\"\n },\n CustomEndpoint: {\n Title: \"Custom Endpoint\",\n SubTitle: \"Use custom Azure or OpenAI service\"\n },\n Provider: {\n Title: \"Model Provider\",\n SubTitle: \"Select Azure or OpenAI\"\n },\n OpenAI: {\n ApiKey: {\n Title: \"OpenAI API Key\",\n SubTitle: \"User custom OpenAI Api Key\",\n Placeholder: \"sk-xxx\"\n },\n Endpoint: {\n Title: \"OpenAI Endpoint\",\n SubTitle: \"Must start with http(s):// or use /api/openai as default\"\n }\n },\n Azure: {\n ApiKey: {\n Title: \"Azure Api Key\",\n SubTitle: \"Check your api key from Azure console\",\n Placeholder: \"Azure Api Key\"\n },\n Endpoint: {\n Title: \"Azure Endpoint\",\n SubTitle: \"Example: \"\n },\n ApiVerion: {\n Title: \"Azure Api Version\",\n SubTitle: \"Check your api version from azure console\"\n }\n },\n Anthropic: {\n ApiKey: {\n Title: \"Anthropic API Key\",\n SubTitle: \"Use a custom Anthropic Key to bypass password access restrictions\",\n Placeholder: \"Anthropic API Key\"\n },\n Endpoint: {\n Title: \"Endpoint Address\",\n SubTitle: \"Example: \"\n },\n ApiVerion: {\n Title: \"API Version (claude api version)\",\n SubTitle: \"Select and input a specific API version\"\n }\n },\n Baidu: {\n ApiKey: {\n Title: \"Baidu API Key\",\n SubTitle: \"Use a custom Baidu API Key\",\n Placeholder: \"Baidu API Key\"\n },\n SecretKey: {\n Title: \"Baidu Secret Key\",\n SubTitle: \"Use a custom Baidu Secret Key\",\n Placeholder: \"Baidu Secret Key\"\n },\n Endpoint: {\n Title: \"Endpoint Address\",\n SubTitle: \"not supported, configure in .env\"\n }\n },\n Tencent: {\n ApiKey: {\n Title: \"Tencent API Key\",\n SubTitle: \"Use a custom Tencent API Key\",\n Placeholder: \"Tencent API Key\"\n },\n SecretKey: {\n Title: \"Tencent Secret Key\",\n SubTitle: \"Use a custom Tencent Secret Key\",\n Placeholder: \"Tencent Secret Key\"\n },\n Endpoint: {\n Title: \"Endpoint Address\",\n SubTitle: \"not supported, configure in .env\"\n }\n },\n ByteDance: {\n ApiKey: {\n Title: \"ByteDance API Key\",\n SubTitle: \"Use a custom ByteDance API Key\",\n Placeholder: \"ByteDance API Key\"\n },\n Endpoint: {\n Title: \"Endpoint Address\",\n SubTitle: \"Example: \"\n }\n },\n Alibaba: {\n ApiKey: {\n Title: \"Alibaba API Key\",\n SubTitle: \"Use a custom Alibaba Cloud API Key\",\n Placeholder: \"Alibaba Cloud API Key\"\n },\n Endpoint: {\n Title: \"Endpoint Address\",\n SubTitle: \"Example: \"\n }\n },\n Moonshot: {\n ApiKey: {\n Title: \"Moonshot API Key\",\n SubTitle: \"Use a custom Moonshot API Key\",\n Placeholder: \"Moonshot API Key\"\n },\n Endpoint: {\n Title: \"Endpoint Address\",\n SubTitle: \"Example: \"\n }\n },\n DeepSeek: {\n ApiKey: {\n Title: \"DeepSeek API Key\",\n SubTitle: \"Use a custom DeepSeek API Key\",\n Placeholder: \"DeepSeek API Key\"\n },\n Endpoint: {\n Title: \"Endpoint Address\",\n SubTitle: \"Example: \"\n }\n },\n XAI: {\n ApiKey: {\n Title: \"XAI API Key\",\n SubTitle: \"Use a custom XAI API Key\",\n Placeholder: \"XAI API Key\"\n },\n Endpoint: {\n Title: \"Endpoint Address\",\n SubTitle: \"Example: \"\n }\n },\n ChatGLM: {\n ApiKey: {\n Title: \"ChatGLM API Key\",\n SubTitle: \"Use a custom ChatGLM API Key\",\n Placeholder: \"ChatGLM API Key\"\n },\n Endpoint: {\n Title: \"Endpoint Address\",\n SubTitle: \"Example: \"\n }\n },\n SiliconFlow: {\n ApiKey: {\n Title: \"SiliconFlow API Key\",\n SubTitle: \"Use a custom SiliconFlow API Key\",\n Placeholder: \"SiliconFlow API Key\"\n },\n Endpoint: {\n Title: \"Endpoint Address\",\n SubTitle: \"Example: \"\n }\n },\n Stability: {\n ApiKey: {\n Title: \"Stability API Key\",\n SubTitle: \"Use a custom Stability API Key\",\n Placeholder: \"Stability API Key\"\n },\n Endpoint: {\n Title: \"Endpoint Address\",\n SubTitle: \"Example: \"\n }\n },\n Iflytek: {\n ApiKey: {\n Title: \"Iflytek API Key\",\n SubTitle: \"Use a Iflytek API Key\",\n Placeholder: \"Iflytek API Key\"\n },\n ApiSecret: {\n Title: \"Iflytek API Secret\",\n SubTitle: \"Use a Iflytek API Secret\",\n Placeholder: \"Iflytek API Secret\"\n },\n Endpoint: {\n Title: \"Endpoint Address\",\n SubTitle: \"Example: \"\n }\n },\n CustomModel: {\n Title: \"Custom Models\",\n SubTitle: \"Custom model options, seperated by comma\"\n },\n Google: {\n ApiKey: {\n Title: \"API Key\",\n SubTitle: \"Obtain your API Key from Google AI\",\n Placeholder: \"Google AI API Key\"\n },\n Endpoint: {\n Title: \"Endpoint Address\",\n SubTitle: \"Example: \"\n },\n ApiVersion: {\n Title: \"API Version (specific to gemini-pro)\",\n SubTitle: \"Select a specific API version\"\n },\n GoogleSafetySettings: {\n Title: \"Google Safety Settings\",\n SubTitle: \"Select a safety filtering level\"\n }\n }\n },\n Model: \"Model\",\n CompressModel: {\n Title: \"Summary Model\",\n SubTitle: \"Model used to compress history and generate title\"\n },\n Temperature: {\n Title: \"Temperature\",\n SubTitle: \"A larger value makes the more random output\"\n },\n TopP: {\n Title: \"Top P\",\n SubTitle: \"Do not alter this value together with temperature\"\n },\n MaxTokens: {\n Title: \"Max Tokens\",\n SubTitle: \"Maximum length of input tokens and generated tokens\"\n },\n PresencePenalty: {\n Title: \"Presence Penalty\",\n SubTitle: \"A larger value increases the likelihood to talk about new topics\"\n },\n FrequencyPenalty: {\n Title: \"Frequency Penalty\",\n SubTitle: \"A larger value decreasing the likelihood to repeat the same line\"\n },\n TTS: {\n Enable: {\n Title: \"Enable TTS\",\n SubTitle: \"Enable text-to-speech service\"\n },\n Autoplay: {\n Title: \"Enable Autoplay\",\n SubTitle: \"Automatically generate speech and play, you need to enable the text-to-speech switch first\"\n },\n Model: \"Model\",\n Voice: {\n Title: \"Voice\",\n SubTitle: \"The voice to use when generating the audio\"\n },\n Speed: {\n Title: \"Speed\",\n SubTitle: \"The speed of the generated audio\"\n },\n Engine: \"TTS Engine\"\n },\n Realtime: {\n Enable: {\n Title: \"Realtime Chat\",\n SubTitle: \"Enable realtime chat feature\"\n },\n Provider: {\n Title: \"Model Provider\",\n SubTitle: \"Switch between different providers\"\n },\n Model: {\n Title: \"Model\",\n SubTitle: \"Select a model\"\n },\n ApiKey: {\n Title: \"API Key\",\n SubTitle: \"API Key\",\n Placeholder: \"API Key\"\n },\n Azure: {\n Endpoint: {\n Title: \"Endpoint\",\n SubTitle: \"Endpoint\"\n },\n Deployment: {\n Title: \"Deployment Name\",\n SubTitle: \"Deployment Name\"\n }\n },\n Temperature: {\n Title: \"Randomness (temperature)\",\n SubTitle: \"Higher values result in more random responses\"\n }\n }\n },\n Store: {\n DefaultTopic: \"New Conversation\",\n BotHello: \"Hello! How can I assist you today?\",\n Error: \"Something went wrong, please try again later.\",\n Prompt: {\n History: (content)=>\"This is a summary of the chat history as a recap: \" + content,\n Topic: \"Please generate a four to five word title summarizing our conversation without any lead-in, punctuation, quotation marks, periods, symbols, bold text, or additional text. Remove enclosing quotation marks.\",\n Summarize: \"Summarize the discussion briefly in 200 words or less to use as a prompt for future context.\"\n }\n },\n Copy: {\n Success: \"Copied to clipboard\",\n Failed: \"Copy failed, please grant permission to access clipboard\"\n },\n Download: {\n Success: \"Content downloaded to your directory.\",\n Failed: \"Download failed.\"\n },\n Context: {\n Toast: (x)=>`With ${x} contextual prompts`,\n Edit: \"Current Chat Settings\",\n Add: \"Add a Prompt\",\n Clear: \"Context Cleared\",\n Revert: \"Revert\"\n },\n Discovery: {\n Name: \"Discovery\"\n },\n Mcp: {\n Name: \"MCP\"\n },\n FineTuned: {\n Sysmessage: \"You are an assistant that\"\n },\n SearchChat: {\n Name: \"Search\",\n Page: {\n Title: \"Search Chat History\",\n Search: \"Enter search query to search chat history\",\n NoResult: \"No results found\",\n NoData: \"No data\",\n Loading: \"Loading...\",\n SubTitle: (count)=>`Found ${count} results`\n },\n Item: {\n View: \"View\"\n }\n },\n Plugin: {\n Name: \"Plugin\",\n Page: {\n Title: \"Plugins\",\n SubTitle: (count)=>`${count} plugins`,\n Search: \"Search Plugin\",\n Create: \"Create\",\n Find: \"You can find awesome plugins on github: \"\n },\n Item: {\n Info: (count)=>`${count} method`,\n View: \"View\",\n Edit: \"Edit\",\n Delete: \"Delete\",\n DeleteConfirm: \"Confirm to delete?\"\n },\n Auth: {\n None: \"None\",\n Basic: \"Basic\",\n Bearer: \"Bearer\",\n Custom: \"Custom\",\n CustomHeader: \"Parameter Name\",\n Token: \"Token\",\n Proxy: \"Using Proxy\",\n ProxyDescription: \"Using proxies to solve CORS error\",\n Location: \"Location\",\n LocationHeader: \"Header\",\n LocationQuery: \"Query\",\n LocationBody: \"Body\"\n },\n EditModal: {\n Title: (readonly)=>`Edit Plugin ${readonly ? \"(readonly)\" : \"\"}`,\n Download: \"Download\",\n Auth: \"Authentication Type\",\n Content: \"OpenAPI Schema\",\n Load: \"Load From URL\",\n Method: \"Method\",\n Error: \"OpenAPI Schema Error\"\n }\n },\n Mask: {\n Name: \"Mask\",\n Page: {\n Title: \"Prompt Template\",\n SubTitle: (count)=>`${count} prompt templates`,\n Search: \"Search Templates\",\n Create: \"Create\"\n },\n Item: {\n Info: (count)=>`${count} prompts`,\n Chat: \"Chat\",\n View: \"View\",\n Edit: \"Edit\",\n Delete: \"Delete\",\n DeleteConfirm: \"Confirm to delete?\"\n },\n EditModal: {\n Title: (readonly)=>`Edit Prompt Template ${readonly ? \"(readonly)\" : \"\"}`,\n Download: \"Download\",\n Clone: \"Clone\"\n },\n Config: {\n Avatar: \"Bot Avatar\",\n Name: \"Bot Name\",\n Sync: {\n Title: \"Use Global Config\",\n SubTitle: \"Use global config in this chat\",\n Confirm: \"Confirm to override custom config with global config?\"\n },\n HideContext: {\n Title: \"Hide Context Prompts\",\n SubTitle: \"Do not show in-context prompts in chat\"\n },\n Artifacts: {\n Title: \"Enable Artifacts\",\n SubTitle: \"Can render HTML page when enable artifacts.\"\n },\n CodeFold: {\n Title: \"Enable CodeFold\",\n SubTitle: \"Automatically collapse/expand overly long code blocks when CodeFold is enabled\"\n },\n Share: {\n Title: \"Share This Mask\",\n SubTitle: \"Generate a link to this mask\",\n Action: \"Copy Link\"\n }\n }\n },\n NewChat: {\n Return: \"Return\",\n Skip: \"Just Start\",\n Title: \"Pick a Mask\",\n SubTitle: \"Chat with the Soul behind the Mask\",\n More: \"Find More\",\n NotShow: \"Never Show Again\",\n ConfirmNoShow: \"Confirm to disable?You can enable it in settings later.\"\n },\n UI: {\n Confirm: \"Confirm\",\n Cancel: \"Cancel\",\n Close: \"Close\",\n Create: \"Create\",\n Edit: \"Edit\",\n Export: \"Export\",\n Import: \"Import\",\n Sync: \"Sync\",\n Config: \"Config\"\n },\n Exporter: {\n Description: {\n Title: \"Only messages after clearing the context will be displayed\"\n },\n Model: \"Model\",\n Messages: \"Messages\",\n Topic: \"Topic\",\n Time: \"Time\"\n },\n URLCommand: {\n Code: \"Detected access code from url, confirm to apply? \",\n Settings: \"Detected settings from url, confirm to apply?\"\n },\n SdPanel: {\n Prompt: \"Prompt\",\n NegativePrompt: \"Negative Prompt\",\n PleaseInput: (name)=>`Please input ${name}`,\n AspectRatio: \"Aspect Ratio\",\n ImageStyle: \"Image Style\",\n OutFormat: \"Output Format\",\n AIModel: \"AI Model\",\n ModelVersion: \"Model Version\",\n Submit: \"Submit\",\n ParamIsRequired: (name)=>`${name} is required`,\n Styles: {\n D3Model: \"3d-model\",\n AnalogFilm: \"analog-film\",\n Anime: \"anime\",\n Cinematic: \"cinematic\",\n ComicBook: \"comic-book\",\n DigitalArt: \"digital-art\",\n Enhance: \"enhance\",\n FantasyArt: \"fantasy-art\",\n Isometric: \"isometric\",\n LineArt: \"line-art\",\n LowPoly: \"low-poly\",\n ModelingCompound: \"modeling-compound\",\n NeonPunk: \"neon-punk\",\n Origami: \"origami\",\n Photographic: \"photographic\",\n PixelArt: \"pixel-art\",\n TileTexture: \"tile-texture\"\n }\n },\n Sd: {\n SubTitle: (count)=>`${count} images`,\n Actions: {\n Params: \"See Params\",\n Copy: \"Copy Prompt\",\n Delete: \"Delete\",\n Retry: \"Retry\",\n ReturnHome: \"Return Home\",\n History: \"History\"\n },\n EmptyRecord: \"No images yet\",\n Status: {\n Name: \"Status\",\n Success: \"Success\",\n Error: \"Error\",\n Wait: \"Waiting\",\n Running: \"Running\"\n },\n Danger: {\n Delete: \"Confirm to delete?\"\n },\n GenerateParams: \"Generate Params\",\n Detail: \"Detail\"\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (en);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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c0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0Q2xpZW50Q29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9jbGllbnRcIjtcclxuaW1wb3J0IHsgU3VibWl0S2V5IH0gZnJvbSBcIi4uL3N0b3JlL2NvbmZpZ1wiO1xyXG5pbXBvcnQgeyBMb2NhbGVUeXBlIH0gZnJvbSBcIi4vaW5kZXhcIjtcclxuaW1wb3J0IHsgU0FBU19DSEFUX1VUTV9VUkwgfSBmcm9tIFwiQC9hcHAvY29uc3RhbnRcIjtcclxuLy8gaWYgeW91IGFyZSBhZGRpbmcgYSBuZXcgdHJhbnNsYXRpb24sIHBsZWFzZSB1c2UgUGFydGlhbExvY2FsZVR5cGUgaW5zdGVhZCBvZiBMb2NhbGVUeXBlXHJcblxyXG5jb25zdCBpc0FwcCA9ICEhZ2V0Q2xpZW50Q29uZmlnKCk/LmlzQXBwO1xyXG5jb25zdCBlbjogTG9jYWxlVHlwZSA9IHtcclxuICBXSVA6IFwiQ29taW5nIFNvb24uLi5cIixcclxuICBFcnJvcjoge1xyXG4gICAgVW5hdXRob3JpemVkOiBpc0FwcFxyXG4gICAgICA/IGDwn5iGIE9vcHMsIHRoZXJlJ3MgYW4gaXNzdWUuIE5vIHdvcnJpZXM6XHJcbiAgICAgXFxcXCAx77iP4oOjIE5ldyBoZXJlPyBbQ2xpY2sgdG8gc3RhcnQgY2hhdHRpbmcgbm93IPCfmoBdKCR7U0FBU19DSEFUX1VUTV9VUkx9KVxyXG4gICAgIFxcXFwgMu+4j+KDoyBXYW50IHRvIHVzZSB5b3VyIG93biBPcGVuQUkgcmVzb3VyY2VzPyBbQ2xpY2sgaGVyZV0oLyMvc2V0dGluZ3MpIHRvIGNoYW5nZSBzZXR0aW5ncyDimpnvuI9gXHJcbiAgICAgIDogYPCfmIYgT29wcywgdGhlcmUncyBhbiBpc3N1ZS4gTGV0J3MgZml4IGl0OlxyXG4gICAgIFxcIDHvuI/ig6MgTmV3IGhlcmU/IFtDbGljayB0byBzdGFydCBjaGF0dGluZyBub3cg8J+agF0oJHtTQUFTX0NIQVRfVVRNX1VSTH0pXHJcbiAgICAgXFwgMu+4j+KDoyBVc2luZyBhIHByaXZhdGUgc2V0dXA/IFtDbGljayBoZXJlXSgvIy9hdXRoKSB0byBlbnRlciB5b3VyIGtleSDwn5SRXHJcbiAgICAgXFwgM++4j+KDoyBXYW50IHRvIHVzZSB5b3VyIG93biBPcGVuQUkgcmVzb3VyY2VzPyBbQ2xpY2sgaGVyZV0oLyMvc2V0dGluZ3MpIHRvIGNoYW5nZSBzZXR0aW5ncyDimpnvuI9cclxuICAgICBgLFxyXG4gIH0sXHJcbiAgQXV0aDoge1xyXG4gICAgUmV0dXJuOiBcIlJldHVyblwiLFxyXG4gICAgVGl0bGU6IFwiTmVlZCBBY2Nlc3MgQ29kZVwiLFxyXG4gICAgVGlwczogXCJQbGVhc2UgZW50ZXIgYWNjZXNzIGNvZGUgYmVsb3dcIixcclxuICAgIFN1YlRpcHM6IFwiT3IgZW50ZXIgeW91ciBPcGVuQUkgb3IgR29vZ2xlIEFQSSBLZXlcIixcclxuICAgIElucHV0OiBcImFjY2VzcyBjb2RlXCIsXHJcbiAgICBDb25maXJtOiBcIkNvbmZpcm1cIixcclxuICAgIExhdGVyOiBcIkxhdGVyXCIsXHJcbiAgICBTYWFzVGlwczogXCJUb28gQ29tcGxleCwgVXNlIEltbWVkaWF0ZWx5IE5vd1wiLFxyXG4gICAgVG9wVGlwczpcclxuICAgICAgXCLwn6WzIE5leHRDaGF0IEFJIGxhdW5jaCBwcm9tb3Rpb246IEluc3RhbnRseSB1bmxvY2sgdGhlIGxhdGVzdCBtb2RlbHMgbGlrZSBPcGVuQUkgbzEsIEdQVC00bywgQ2xhdWRlLTMuNSFcIixcclxuICB9LFxyXG4gIENoYXRJdGVtOiB7XHJcbiAgICBDaGF0SXRlbUNvdW50OiAoY291bnQ6IG51bWJlcikgPT4gYCR7Y291bnR9IG1lc3NhZ2VzYCxcclxuICB9LFxyXG4gIENoYXQ6IHtcclxuICAgIFN1YlRpdGxlOiAoY291bnQ6IG51bWJlcikgPT4gYCR7Y291bnR9IG1lc3NhZ2VzYCxcclxuICAgIEVkaXRNZXNzYWdlOiB7XHJcbiAgICAgIFRpdGxlOiBcIkVkaXQgQWxsIE1lc3NhZ2VzXCIsXHJcbiAgICAgIFRvcGljOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiVG9waWNcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJDaGFuZ2UgdGhlIGN1cnJlbnQgdG9waWNcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBBY3Rpb25zOiB7XHJcbiAgICAgIENoYXRMaXN0OiBcIkdvIFRvIENoYXQgTGlzdFwiLFxyXG4gICAgICBDb21wcmVzc2VkSGlzdG9yeTogXCJDb21wcmVzc2VkIEhpc3RvcnkgTWVtb3J5IFByb21wdFwiLFxyXG4gICAgICBFeHBvcnQ6IFwiRXhwb3J0IEFsbCBNZXNzYWdlcyBhcyBNYXJrZG93blwiLFxyXG4gICAgICBDb3B5OiBcIkNvcHlcIixcclxuICAgICAgU3RvcDogXCJTdG9wXCIsXHJcbiAgICAgIFJldHJ5OiBcIlJldHJ5XCIsXHJcbiAgICAgIFBpbjogXCJQaW5cIixcclxuICAgICAgUGluVG9hc3RDb250ZW50OiBcIlBpbm5lZCAxIG1lc3NhZ2VzIHRvIGNvbnRleHR1YWwgcHJvbXB0c1wiLFxyXG4gICAgICBQaW5Ub2FzdEFjdGlvbjogXCJWaWV3XCIsXHJcbiAgICAgIERlbGV0ZTogXCJEZWxldGVcIixcclxuICAgICAgRWRpdDogXCJFZGl0XCIsXHJcbiAgICAgIEZ1bGxTY3JlZW46IFwiRnVsbFNjcmVlblwiLFxyXG4gICAgICBSZWZyZXNoVGl0bGU6IFwiUmVmcmVzaCBUaXRsZVwiLFxyXG4gICAgICBSZWZyZXNoVG9hc3Q6IFwiVGl0bGUgcmVmcmVzaCByZXF1ZXN0IHNlbnRcIixcclxuICAgICAgU3BlZWNoOiBcIlBsYXlcIixcclxuICAgICAgU3RvcFNwZWVjaDogXCJTdG9wXCIsXHJcbiAgICB9LFxyXG4gICAgQ29tbWFuZHM6IHtcclxuICAgICAgbmV3OiBcIlN0YXJ0IGEgbmV3IGNoYXRcIixcclxuICAgICAgbmV3bTogXCJTdGFydCBhIG5ldyBjaGF0IHdpdGggbWFza1wiLFxyXG4gICAgICBuZXh0OiBcIk5leHQgQ2hhdFwiLFxyXG4gICAgICBwcmV2OiBcIlByZXZpb3VzIENoYXRcIixcclxuICAgICAgY2xlYXI6IFwiQ2xlYXIgQ29udGV4dFwiLFxyXG4gICAgICBmb3JrOiBcIkNvcHkgQ2hhdFwiLFxyXG4gICAgICBkZWw6IFwiRGVsZXRlIENoYXRcIixcclxuICAgIH0sXHJcbiAgICBJbnB1dEFjdGlvbnM6IHtcclxuICAgICAgU3RvcDogXCJTdG9wXCIsXHJcbiAgICAgIFRvQm90dG9tOiBcIlRvIExhdGVzdFwiLFxyXG4gICAgICBUaGVtZToge1xyXG4gICAgICAgIGF1dG86IFwiQXV0b1wiLFxyXG4gICAgICAgIGxpZ2h0OiBcIkxpZ2h0IFRoZW1lXCIsXHJcbiAgICAgICAgZGFyazogXCJEYXJrIFRoZW1lXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFByb21wdDogXCJQcm9tcHRzXCIsXHJcbiAgICAgIE1hc2tzOiBcIk1hc2tzXCIsXHJcbiAgICAgIENsZWFyOiBcIkNsZWFyIENvbnRleHRcIixcclxuICAgICAgU2V0dGluZ3M6IFwiU2V0dGluZ3NcIixcclxuICAgICAgVXBsb2FkSW1hZ2U6IFwiVXBsb2FkIEltYWdlc1wiLFxyXG4gICAgfSxcclxuICAgIFJlbmFtZTogXCJSZW5hbWUgQ2hhdFwiLFxyXG4gICAgVHlwaW5nOiBcIlR5cGluZ+KAplwiLFxyXG4gICAgSW5wdXQ6IChzdWJtaXRLZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICB2YXIgaW5wdXRIaW50cyA9IGAke3N1Ym1pdEtleX0gdG8gc2VuZGA7XHJcbiAgICAgIGlmIChzdWJtaXRLZXkgPT09IFN0cmluZyhTdWJtaXRLZXkuRW50ZXIpKSB7XHJcbiAgICAgICAgaW5wdXRIaW50cyArPSBcIiwgU2hpZnQgKyBFbnRlciB0byB3cmFwXCI7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGlucHV0SGludHMgKyBcIiwgLyB0byBzZWFyY2ggcHJvbXB0cywgOiB0byB1c2UgY29tbWFuZHNcIjtcclxuICAgIH0sXHJcbiAgICBTZW5kOiBcIlNlbmRcIixcclxuICAgIFN0YXJ0U3BlYWs6IFwiU3RhcnQgU3BlYWtcIixcclxuICAgIFN0b3BTcGVhazogXCJTdG9wIFNwZWFrXCIsXHJcbiAgICBDb25maWc6IHtcclxuICAgICAgUmVzZXQ6IFwiUmVzZXQgdG8gRGVmYXVsdFwiLFxyXG4gICAgICBTYXZlQXM6IFwiU2F2ZSBhcyBNYXNrXCIsXHJcbiAgICB9LFxyXG4gICAgSXNDb250ZXh0OiBcIkNvbnRleHR1YWwgUHJvbXB0XCIsXHJcbiAgICBTaG9ydGN1dEtleToge1xyXG4gICAgICBUaXRsZTogXCJLZXlib2FyZCBTaG9ydGN1dHNcIixcclxuICAgICAgbmV3Q2hhdDogXCJPcGVuIE5ldyBDaGF0XCIsXHJcbiAgICAgIGZvY3VzSW5wdXQ6IFwiRm9jdXMgSW5wdXQgRmllbGRcIixcclxuICAgICAgY29weUxhc3RNZXNzYWdlOiBcIkNvcHkgTGFzdCBSZXBseVwiLFxyXG4gICAgICBjb3B5TGFzdENvZGU6IFwiQ29weSBMYXN0IENvZGUgQmxvY2tcIixcclxuICAgICAgc2hvd1Nob3J0Y3V0S2V5OiBcIlNob3cgU2hvcnRjdXRzXCIsXHJcbiAgICAgIGNsZWFyQ29udGV4dDogXCJDbGVhciBDb250ZXh0XCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgRXhwb3J0OiB7XHJcbiAgICBUaXRsZTogXCJFeHBvcnQgTWVzc2FnZXNcIixcclxuICAgIENvcHk6IFwiQ29weSBBbGxcIixcclxuICAgIERvd25sb2FkOiBcIkRvd25sb2FkXCIsXHJcbiAgICBNZXNzYWdlRnJvbVlvdTogXCJNZXNzYWdlIEZyb20gWW91XCIsXHJcbiAgICBNZXNzYWdlRnJvbUNoYXRHUFQ6IFwiTWVzc2FnZSBGcm9tIENoYXRHUFRcIixcclxuICAgIFNoYXJlOiBcIlNoYXJlIHRvIFNoYXJlR1BUXCIsXHJcbiAgICBGb3JtYXQ6IHtcclxuICAgICAgVGl0bGU6IFwiRXhwb3J0IEZvcm1hdFwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJNYXJrZG93biBvciBQTkcgSW1hZ2VcIixcclxuICAgIH0sXHJcbiAgICBJbmNsdWRlQ29udGV4dDoge1xyXG4gICAgICBUaXRsZTogXCJJbmNsdWRpbmcgQ29udGV4dFwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJFeHBvcnQgY29udGV4dCBwcm9tcHRzIGluIG1hc2sgb3Igbm90XCIsXHJcbiAgICB9LFxyXG4gICAgU3RlcHM6IHtcclxuICAgICAgU2VsZWN0OiBcIlNlbGVjdFwiLFxyXG4gICAgICBQcmV2aWV3OiBcIlByZXZpZXdcIixcclxuICAgIH0sXHJcbiAgICBJbWFnZToge1xyXG4gICAgICBUb2FzdDogXCJDYXB0dXJpbmcgSW1hZ2UuLi5cIixcclxuICAgICAgTW9kYWw6IFwiTG9uZyBwcmVzcyBvciByaWdodCBjbGljayB0byBzYXZlIGltYWdlXCIsXHJcbiAgICB9LFxyXG4gICAgQXJ0aWZhY3RzOiB7XHJcbiAgICAgIFRpdGxlOiBcIlNoYXJlIEFydGlmYWN0c1wiLFxyXG4gICAgICBFcnJvcjogXCJTaGFyZSBFcnJvclwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIFNlbGVjdDoge1xyXG4gICAgU2VhcmNoOiBcIlNlYXJjaFwiLFxyXG4gICAgQWxsOiBcIlNlbGVjdCBBbGxcIixcclxuICAgIExhdGVzdDogXCJTZWxlY3QgTGF0ZXN0XCIsXHJcbiAgICBDbGVhcjogXCJDbGVhclwiLFxyXG4gIH0sXHJcbiAgTWVtb3J5OiB7XHJcbiAgICBUaXRsZTogXCJNZW1vcnkgUHJvbXB0XCIsXHJcbiAgICBFbXB0eUNvbnRlbnQ6IFwiTm90aGluZyB5ZXQuXCIsXHJcbiAgICBTZW5kOiBcIlNlbmQgTWVtb3J5XCIsXHJcbiAgICBDb3B5OiBcIkNvcHkgTWVtb3J5XCIsXHJcbiAgICBSZXNldDogXCJSZXNldCBTZXNzaW9uXCIsXHJcbiAgICBSZXNldENvbmZpcm06XHJcbiAgICAgIFwiUmVzZXR0aW5nIHdpbGwgY2xlYXIgdGhlIGN1cnJlbnQgY29udmVyc2F0aW9uIGhpc3RvcnkgYW5kIGhpc3RvcmljYWwgbWVtb3J5LiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVzZXQ/XCIsXHJcbiAgfSxcclxuICBIb21lOiB7XHJcbiAgICBOZXdDaGF0OiBcIk5ldyBDaGF0XCIsXHJcbiAgICBEZWxldGVDaGF0OiBcIkNvbmZpcm0gdG8gZGVsZXRlIHRoZSBzZWxlY3RlZCBjb252ZXJzYXRpb24/XCIsXHJcbiAgICBEZWxldGVUb2FzdDogXCJDaGF0IERlbGV0ZWRcIixcclxuICAgIFJldmVydDogXCJSZXZlcnRcIixcclxuICB9LFxyXG4gIFNldHRpbmdzOiB7XHJcbiAgICBUaXRsZTogXCJTZXR0aW5nc1wiLFxyXG4gICAgU3ViVGl0bGU6IFwiQWxsIFNldHRpbmdzXCIsXHJcbiAgICBTaG93UGFzc3dvcmQ6IFwiU2hvd1Bhc3N3b3JkXCIsXHJcbiAgICBEYW5nZXI6IHtcclxuICAgICAgUmVzZXQ6IHtcclxuICAgICAgICBUaXRsZTogXCJSZXNldCBBbGwgU2V0dGluZ3NcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJSZXNldCBhbGwgc2V0dGluZyBpdGVtcyB0byBkZWZhdWx0XCIsXHJcbiAgICAgICAgQWN0aW9uOiBcIlJlc2V0XCIsXHJcbiAgICAgICAgQ29uZmlybTogXCJDb25maXJtIHRvIHJlc2V0IGFsbCBzZXR0aW5ncyB0byBkZWZhdWx0P1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBDbGVhcjoge1xyXG4gICAgICAgIFRpdGxlOiBcIkNsZWFyIEFsbCBEYXRhXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiQ2xlYXIgYWxsIG1lc3NhZ2VzIGFuZCBzZXR0aW5nc1wiLFxyXG4gICAgICAgIEFjdGlvbjogXCJDbGVhclwiLFxyXG4gICAgICAgIENvbmZpcm06IFwiQ29uZmlybSB0byBjbGVhciBhbGwgbWVzc2FnZXMgYW5kIHNldHRpbmdzP1wiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIExhbmc6IHtcclxuICAgICAgTmFtZTogXCJMYW5ndWFnZVwiLCAvLyBBVFRFTlRJT046IGlmIHlvdSB3YW5uYSBhZGQgYSBuZXcgdHJhbnNsYXRpb24sIHBsZWFzZSBkbyBub3QgdHJhbnNsYXRlIHRoaXMgdmFsdWUsIGxlYXZlIGl0IGFzIGBMYW5ndWFnZWBcclxuICAgICAgQWxsOiBcIkFsbCBMYW5ndWFnZXNcIixcclxuICAgIH0sXHJcbiAgICBBdmF0YXI6IFwiQXZhdGFyXCIsXHJcbiAgICBGb250U2l6ZToge1xyXG4gICAgICBUaXRsZTogXCJGb250IFNpemVcIixcclxuICAgICAgU3ViVGl0bGU6IFwiQWRqdXN0IGZvbnQgc2l6ZSBvZiBjaGF0IGNvbnRlbnRcIixcclxuICAgIH0sXHJcbiAgICBGb250RmFtaWx5OiB7XHJcbiAgICAgIFRpdGxlOiBcIkNoYXQgRm9udCBGYW1pbHlcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJGb250IEZhbWlseSBvZiB0aGUgY2hhdCBjb250ZW50LCBsZWF2ZSBlbXB0eSB0byBhcHBseSBnbG9iYWwgZGVmYXVsdCBmb250XCIsXHJcbiAgICAgIFBsYWNlaG9sZGVyOiBcIkZvbnQgRmFtaWx5IE5hbWVcIixcclxuICAgIH0sXHJcbiAgICBJbmplY3RTeXN0ZW1Qcm9tcHRzOiB7XHJcbiAgICAgIFRpdGxlOiBcIkluamVjdCBTeXN0ZW0gUHJvbXB0c1wiLFxyXG4gICAgICBTdWJUaXRsZTogXCJJbmplY3QgYSBnbG9iYWwgc3lzdGVtIHByb21wdCBmb3IgZXZlcnkgcmVxdWVzdFwiLFxyXG4gICAgfSxcclxuICAgIElucHV0VGVtcGxhdGU6IHtcclxuICAgICAgVGl0bGU6IFwiSW5wdXQgVGVtcGxhdGVcIixcclxuICAgICAgU3ViVGl0bGU6IFwiTmV3ZXN0IG1lc3NhZ2Ugd2lsbCBiZSBmaWxsZWQgdG8gdGhpcyB0ZW1wbGF0ZVwiLFxyXG4gICAgfSxcclxuXHJcbiAgICBVcGRhdGU6IHtcclxuICAgICAgVmVyc2lvbjogKHg6IHN0cmluZykgPT4gYFZlcnNpb246ICR7eH1gLFxyXG4gICAgICBJc0xhdGVzdDogXCJMYXRlc3QgdmVyc2lvblwiLFxyXG4gICAgICBDaGVja1VwZGF0ZTogXCJDaGVjayBVcGRhdGVcIixcclxuICAgICAgSXNDaGVja2luZzogXCJDaGVja2luZyB1cGRhdGUuLi5cIixcclxuICAgICAgRm91bmRVcGRhdGU6ICh4OiBzdHJpbmcpID0+IGBGb3VuZCBuZXcgdmVyc2lvbjogJHt4fWAsXHJcbiAgICAgIEdvVG9VcGRhdGU6IFwiVXBkYXRlXCIsXHJcbiAgICAgIFN1Y2Nlc3M6IFwiVXBkYXRlIFN1Y2Nlc3NmdWwuXCIsXHJcbiAgICAgIEZhaWxlZDogXCJVcGRhdGUgRmFpbGVkLlwiLFxyXG4gICAgfSxcclxuICAgIFNlbmRLZXk6IFwiU2VuZCBLZXlcIixcclxuICAgIFRoZW1lOiBcIlRoZW1lXCIsXHJcbiAgICBUaWdodEJvcmRlcjogXCJUaWdodCBCb3JkZXJcIixcclxuICAgIFNlbmRQcmV2aWV3QnViYmxlOiB7XHJcbiAgICAgIFRpdGxlOiBcIlNlbmQgUHJldmlldyBCdWJibGVcIixcclxuICAgICAgU3ViVGl0bGU6IFwiUHJldmlldyBtYXJrZG93biBpbiBidWJibGVcIixcclxuICAgIH0sXHJcbiAgICBBdXRvR2VuZXJhdGVUaXRsZToge1xyXG4gICAgICBUaXRsZTogXCJBdXRvIEdlbmVyYXRlIFRpdGxlXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIkdlbmVyYXRlIGEgc3VpdGFibGUgdGl0bGUgYmFzZWQgb24gdGhlIGNvbnZlcnNhdGlvbiBjb250ZW50XCIsXHJcbiAgICB9LFxyXG4gICAgU3luYzoge1xyXG4gICAgICBDbG91ZFN0YXRlOiBcIkxhc3QgVXBkYXRlXCIsXHJcbiAgICAgIE5vdFN5bmNZZXQ6IFwiTm90IHN5bmMgeWV0XCIsXHJcbiAgICAgIFN1Y2Nlc3M6IFwiU3luYyBTdWNjZXNzXCIsXHJcbiAgICAgIEZhaWw6IFwiU3luYyBGYWlsXCIsXHJcblxyXG4gICAgICBDb25maWc6IHtcclxuICAgICAgICBNb2RhbDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQ29uZmlnIFN5bmNcIixcclxuICAgICAgICAgIENoZWNrOiBcIkNoZWNrIENvbm5lY3Rpb25cIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFN5bmNUeXBlOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJTeW5jIFR5cGVcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkNob29zZSB5b3VyIGZhdm9yaXRlIHN5bmMgc2VydmljZVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgUHJveHk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkVuYWJsZSBDT1JTIFByb3h5XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJFbmFibGUgYSBwcm94eSB0byBhdm9pZCBjcm9zcy1vcmlnaW4gcmVzdHJpY3Rpb25zXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQcm94eVVybDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiUHJveHkgRW5kcG9pbnRcIixcclxuICAgICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgICBcIk9ubHkgYXBwbGljYWJsZSB0byB0aGUgYnVpbHQtaW4gQ09SUyBwcm94eSBmb3IgdGhpcyBwcm9qZWN0XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgV2ViRGF2OiB7XHJcbiAgICAgICAgICBFbmRwb2ludDogXCJXZWJEQVYgRW5kcG9pbnRcIixcclxuICAgICAgICAgIFVzZXJOYW1lOiBcIlVzZXIgTmFtZVwiLFxyXG4gICAgICAgICAgUGFzc3dvcmQ6IFwiUGFzc3dvcmRcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBVcFN0YXNoOiB7XHJcbiAgICAgICAgICBFbmRwb2ludDogXCJVcFN0YXNoIFJlZGlzIFJFU1QgVXJsXCIsXHJcbiAgICAgICAgICBVc2VyTmFtZTogXCJCYWNrdXAgTmFtZVwiLFxyXG4gICAgICAgICAgUGFzc3dvcmQ6IFwiVXBTdGFzaCBSZWRpcyBSRVNUIFRva2VuXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuXHJcbiAgICAgIExvY2FsU3RhdGU6IFwiTG9jYWwgRGF0YVwiLFxyXG4gICAgICBPdmVydmlldzogKG92ZXJ2aWV3OiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gYCR7b3ZlcnZpZXcuY2hhdH0gY2hhdHPvvIwke292ZXJ2aWV3Lm1lc3NhZ2V9IG1lc3NhZ2Vz77yMJHtvdmVydmlldy5wcm9tcHR9IHByb21wdHPvvIwke292ZXJ2aWV3Lm1hc2t9IG1hc2tzYDtcclxuICAgICAgfSxcclxuICAgICAgSW1wb3J0RmFpbGVkOiBcIkZhaWxlZCB0byBpbXBvcnQgZnJvbSBmaWxlXCIsXHJcbiAgICB9LFxyXG4gICAgTWFzazoge1xyXG4gICAgICBTcGxhc2g6IHtcclxuICAgICAgICBUaXRsZTogXCJNYXNrIFNwbGFzaCBTY3JlZW5cIixcclxuICAgICAgICBTdWJUaXRsZTogXCJTaG93IGEgbWFzayBzcGxhc2ggc2NyZWVuIGJlZm9yZSBzdGFydGluZyBuZXcgY2hhdFwiLFxyXG4gICAgICB9LFxyXG4gICAgICBCdWlsdGluOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiSGlkZSBCdWlsdGluIE1hc2tzXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiSGlkZSBidWlsdGluIG1hc2tzIGluIG1hc2sgbGlzdFwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIFByb21wdDoge1xyXG4gICAgICBEaXNhYmxlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiRGlzYWJsZSBhdXRvLWNvbXBsZXRpb25cIixcclxuICAgICAgICBTdWJUaXRsZTogXCJJbnB1dCAvIHRvIHRyaWdnZXIgYXV0by1jb21wbGV0aW9uXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIExpc3Q6IFwiUHJvbXB0IExpc3RcIixcclxuICAgICAgTGlzdENvdW50OiAoYnVpbHRpbjogbnVtYmVyLCBjdXN0b206IG51bWJlcikgPT5cclxuICAgICAgICBgJHtidWlsdGlufSBidWlsdC1pbiwgJHtjdXN0b219IHVzZXItZGVmaW5lZGAsXHJcbiAgICAgIEVkaXQ6IFwiRWRpdFwiLFxyXG4gICAgICBNb2RhbDoge1xyXG4gICAgICAgIFRpdGxlOiBcIlByb21wdCBMaXN0XCIsXHJcbiAgICAgICAgQWRkOiBcIkFkZCBPbmVcIixcclxuICAgICAgICBTZWFyY2g6IFwiU2VhcmNoIFByb21wdHNcIixcclxuICAgICAgfSxcclxuICAgICAgRWRpdE1vZGFsOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiRWRpdCBQcm9tcHRcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBIaXN0b3J5Q291bnQ6IHtcclxuICAgICAgVGl0bGU6IFwiQXR0YWNoZWQgTWVzc2FnZXMgQ291bnRcIixcclxuICAgICAgU3ViVGl0bGU6IFwiTnVtYmVyIG9mIHNlbnQgbWVzc2FnZXMgYXR0YWNoZWQgcGVyIHJlcXVlc3RcIixcclxuICAgIH0sXHJcbiAgICBDb21wcmVzc1RocmVzaG9sZDoge1xyXG4gICAgICBUaXRsZTogXCJIaXN0b3J5IENvbXByZXNzaW9uIFRocmVzaG9sZFwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIldpbGwgY29tcHJlc3MgaWYgdW5jb21wcmVzc2VkIG1lc3NhZ2VzIGxlbmd0aCBleGNlZWRzIHRoZSB2YWx1ZVwiLFxyXG4gICAgfSxcclxuXHJcbiAgICBVc2FnZToge1xyXG4gICAgICBUaXRsZTogXCJBY2NvdW50IEJhbGFuY2VcIixcclxuICAgICAgU3ViVGl0bGUodXNlZDogYW55LCB0b3RhbDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIGBVc2VkIHRoaXMgbW9udGggJCR7dXNlZH0sIHN1YnNjcmlwdGlvbiAkJHt0b3RhbH1gO1xyXG4gICAgICB9LFxyXG4gICAgICBJc0NoZWNraW5nOiBcIkNoZWNraW5nLi4uXCIsXHJcbiAgICAgIENoZWNrOiBcIkNoZWNrXCIsXHJcbiAgICAgIE5vQWNjZXNzOiBcIkVudGVyIEFQSSBLZXkgdG8gY2hlY2sgYmFsYW5jZVwiLFxyXG4gICAgfSxcclxuICAgIEFjY2Vzczoge1xyXG4gICAgICBTYWFzU3RhcnQ6IHtcclxuICAgICAgICBUaXRsZTogXCJVc2UgTmV4dENoYXQgQUlcIixcclxuICAgICAgICBMYWJlbDogXCIgKE1vc3QgQ29zdC1FZmZlY3RpdmUgT3B0aW9uKVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCJNYWludGFpbmVkIGJ5IE5leHRDaGF0LCB6ZXJvIHNldHVwIG5lZWRlZCwgdW5sb2NrIE9wZW5BSSBvMSwgR1BULTRvLFwiICtcclxuICAgICAgICAgIFwiIENsYXVkZS0zLjUgYW5kIG1vcmVcIixcclxuICAgICAgICBDaGF0Tm93OiBcIlN0YXJ0IE5vd1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBBY2Nlc3NDb2RlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiQWNjZXNzIENvZGVcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJBY2Nlc3MgY29udHJvbCBFbmFibGVkXCIsXHJcbiAgICAgICAgUGxhY2Vob2xkZXI6IFwiRW50ZXIgQ29kZVwiLFxyXG4gICAgICB9LFxyXG4gICAgICBDdXN0b21FbmRwb2ludDoge1xyXG4gICAgICAgIFRpdGxlOiBcIkN1c3RvbSBFbmRwb2ludFwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIlVzZSBjdXN0b20gQXp1cmUgb3IgT3BlbkFJIHNlcnZpY2VcIixcclxuICAgICAgfSxcclxuICAgICAgUHJvdmlkZXI6IHtcclxuICAgICAgICBUaXRsZTogXCJNb2RlbCBQcm92aWRlclwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIlNlbGVjdCBBenVyZSBvciBPcGVuQUlcIixcclxuICAgICAgfSxcclxuICAgICAgT3BlbkFJOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJPcGVuQUkgQVBJIEtleVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiVXNlciBjdXN0b20gT3BlbkFJIEFwaSBLZXlcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcInNrLXh4eFwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJPcGVuQUkgRW5kcG9pbnRcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIk11c3Qgc3RhcnQgd2l0aCBodHRwKHMpOi8vIG9yIHVzZSAvYXBpL29wZW5haSBhcyBkZWZhdWx0XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQXp1cmU6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkF6dXJlIEFwaSBLZXlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkNoZWNrIHlvdXIgYXBpIGtleSBmcm9tIEF6dXJlIGNvbnNvbGVcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkF6dXJlIEFwaSBLZXlcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQXp1cmUgRW5kcG9pbnRcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkV4YW1wbGU6IFwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcmlvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQXp1cmUgQXBpIFZlcnNpb25cIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkNoZWNrIHlvdXIgYXBpIHZlcnNpb24gZnJvbSBhenVyZSBjb25zb2xlXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQW50aHJvcGljOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBbnRocm9waWMgQVBJIEtleVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiVXNlIGEgY3VzdG9tIEFudGhyb3BpYyBLZXkgdG8gYnlwYXNzIHBhc3N3b3JkIGFjY2VzcyByZXN0cmljdGlvbnNcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkFudGhyb3BpYyBBUEkgS2V5XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkVuZHBvaW50IEFkZHJlc3NcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkV4YW1wbGU6IFwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcmlvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIFZlcnNpb24gKGNsYXVkZSBhcGkgdmVyc2lvbilcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlNlbGVjdCBhbmQgaW5wdXQgYSBzcGVjaWZpYyBBUEkgdmVyc2lvblwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEJhaWR1OiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJCYWlkdSBBUEkgS2V5XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJVc2UgYSBjdXN0b20gQmFpZHUgQVBJIEtleVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQmFpZHUgQVBJIEtleVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgU2VjcmV0S2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJCYWlkdSBTZWNyZXQgS2V5XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJVc2UgYSBjdXN0b20gQmFpZHUgU2VjcmV0IEtleVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQmFpZHUgU2VjcmV0IEtleVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkVuZHBvaW50IEFkZHJlc3NcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIm5vdCBzdXBwb3J0ZWQsIGNvbmZpZ3VyZSBpbiAuZW52XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgVGVuY2VudDoge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiVGVuY2VudCBBUEkgS2V5XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJVc2UgYSBjdXN0b20gVGVuY2VudCBBUEkgS2V5XCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJUZW5jZW50IEFQSSBLZXlcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFNlY3JldEtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiVGVuY2VudCBTZWNyZXQgS2V5XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJVc2UgYSBjdXN0b20gVGVuY2VudCBTZWNyZXQgS2V5XCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJUZW5jZW50IFNlY3JldCBLZXlcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJFbmRwb2ludCBBZGRyZXNzXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJub3Qgc3VwcG9ydGVkLCBjb25maWd1cmUgaW4gLmVudlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEJ5dGVEYW5jZToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQnl0ZURhbmNlIEFQSSBLZXlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlVzZSBhIGN1c3RvbSBCeXRlRGFuY2UgQVBJIEtleVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQnl0ZURhbmNlIEFQSSBLZXlcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJFbmRwb2ludCBBZGRyZXNzXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJFeGFtcGxlOiBcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBBbGliYWJhOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBbGliYWJhIEFQSSBLZXlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlVzZSBhIGN1c3RvbSBBbGliYWJhIENsb3VkIEFQSSBLZXlcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkFsaWJhYmEgQ2xvdWQgQVBJIEtleVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkVuZHBvaW50IEFkZHJlc3NcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkV4YW1wbGU6IFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIE1vb25zaG90OiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJNb29uc2hvdCBBUEkgS2V5XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJVc2UgYSBjdXN0b20gTW9vbnNob3QgQVBJIEtleVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiTW9vbnNob3QgQVBJIEtleVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkVuZHBvaW50IEFkZHJlc3NcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkV4YW1wbGU6IFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIERlZXBTZWVrOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJEZWVwU2VlayBBUEkgS2V5XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJVc2UgYSBjdXN0b20gRGVlcFNlZWsgQVBJIEtleVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiRGVlcFNlZWsgQVBJIEtleVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkVuZHBvaW50IEFkZHJlc3NcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkV4YW1wbGU6IFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIFhBSToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiWEFJIEFQSSBLZXlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlVzZSBhIGN1c3RvbSBYQUkgQVBJIEtleVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiWEFJIEFQSSBLZXlcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJFbmRwb2ludCBBZGRyZXNzXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJFeGFtcGxlOiBcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBDaGF0R0xNOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJDaGF0R0xNIEFQSSBLZXlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlVzZSBhIGN1c3RvbSBDaGF0R0xNIEFQSSBLZXlcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkNoYXRHTE0gQVBJIEtleVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkVuZHBvaW50IEFkZHJlc3NcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkV4YW1wbGU6IFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIFNpbGljb25GbG93OiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJTaWxpY29uRmxvdyBBUEkgS2V5XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJVc2UgYSBjdXN0b20gU2lsaWNvbkZsb3cgQVBJIEtleVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiU2lsaWNvbkZsb3cgQVBJIEtleVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkVuZHBvaW50IEFkZHJlc3NcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkV4YW1wbGU6IFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIFN0YWJpbGl0eToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiU3RhYmlsaXR5IEFQSSBLZXlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlVzZSBhIGN1c3RvbSBTdGFiaWxpdHkgQVBJIEtleVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiU3RhYmlsaXR5IEFQSSBLZXlcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJFbmRwb2ludCBBZGRyZXNzXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJFeGFtcGxlOiBcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBJZmx5dGVrOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJJZmx5dGVrIEFQSSBLZXlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlVzZSBhIElmbHl0ZWsgQVBJIEtleVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiSWZseXRlayBBUEkgS2V5XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBBcGlTZWNyZXQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIklmbHl0ZWsgQVBJIFNlY3JldFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiVXNlIGEgSWZseXRlayBBUEkgU2VjcmV0XCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJJZmx5dGVrIEFQSSBTZWNyZXRcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJFbmRwb2ludCBBZGRyZXNzXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJFeGFtcGxlOiBcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBDdXN0b21Nb2RlbDoge1xyXG4gICAgICAgIFRpdGxlOiBcIkN1c3RvbSBNb2RlbHNcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJDdXN0b20gbW9kZWwgb3B0aW9ucywgc2VwZXJhdGVkIGJ5IGNvbW1hXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEdvb2dsZToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIEtleVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiT2J0YWluIHlvdXIgQVBJIEtleSBmcm9tIEdvb2dsZSBBSVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiR29vZ2xlIEFJIEFQSSBLZXlcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiRW5kcG9pbnQgQWRkcmVzc1wiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiRXhhbXBsZTogXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgQXBpVmVyc2lvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIFZlcnNpb24gKHNwZWNpZmljIHRvIGdlbWluaS1wcm8pXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJTZWxlY3QgYSBzcGVjaWZpYyBBUEkgdmVyc2lvblwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgR29vZ2xlU2FmZXR5U2V0dGluZ3M6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkdvb2dsZSBTYWZldHkgU2V0dGluZ3NcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlNlbGVjdCBhIHNhZmV0eSBmaWx0ZXJpbmcgbGV2ZWxcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuXHJcbiAgICBNb2RlbDogXCJNb2RlbFwiLFxyXG4gICAgQ29tcHJlc3NNb2RlbDoge1xyXG4gICAgICBUaXRsZTogXCJTdW1tYXJ5IE1vZGVsXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIk1vZGVsIHVzZWQgdG8gY29tcHJlc3MgaGlzdG9yeSBhbmQgZ2VuZXJhdGUgdGl0bGVcIixcclxuICAgIH0sXHJcbiAgICBUZW1wZXJhdHVyZToge1xyXG4gICAgICBUaXRsZTogXCJUZW1wZXJhdHVyZVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJBIGxhcmdlciB2YWx1ZSBtYWtlcyB0aGUgbW9yZSByYW5kb20gb3V0cHV0XCIsXHJcbiAgICB9LFxyXG4gICAgVG9wUDoge1xyXG4gICAgICBUaXRsZTogXCJUb3AgUFwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJEbyBub3QgYWx0ZXIgdGhpcyB2YWx1ZSB0b2dldGhlciB3aXRoIHRlbXBlcmF0dXJlXCIsXHJcbiAgICB9LFxyXG4gICAgTWF4VG9rZW5zOiB7XHJcbiAgICAgIFRpdGxlOiBcIk1heCBUb2tlbnNcIixcclxuICAgICAgU3ViVGl0bGU6IFwiTWF4aW11bSBsZW5ndGggb2YgaW5wdXQgdG9rZW5zIGFuZCBnZW5lcmF0ZWQgdG9rZW5zXCIsXHJcbiAgICB9LFxyXG4gICAgUHJlc2VuY2VQZW5hbHR5OiB7XHJcbiAgICAgIFRpdGxlOiBcIlByZXNlbmNlIFBlbmFsdHlcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJBIGxhcmdlciB2YWx1ZSBpbmNyZWFzZXMgdGhlIGxpa2VsaWhvb2QgdG8gdGFsayBhYm91dCBuZXcgdG9waWNzXCIsXHJcbiAgICB9LFxyXG4gICAgRnJlcXVlbmN5UGVuYWx0eToge1xyXG4gICAgICBUaXRsZTogXCJGcmVxdWVuY3kgUGVuYWx0eVwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIkEgbGFyZ2VyIHZhbHVlIGRlY3JlYXNpbmcgdGhlIGxpa2VsaWhvb2QgdG8gcmVwZWF0IHRoZSBzYW1lIGxpbmVcIixcclxuICAgIH0sXHJcbiAgICBUVFM6IHtcclxuICAgICAgRW5hYmxlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiRW5hYmxlIFRUU1wiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIkVuYWJsZSB0ZXh0LXRvLXNwZWVjaCBzZXJ2aWNlXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEF1dG9wbGF5OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiRW5hYmxlIEF1dG9wbGF5XCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgc3BlZWNoIGFuZCBwbGF5LCB5b3UgbmVlZCB0byBlbmFibGUgdGhlIHRleHQtdG8tc3BlZWNoIHN3aXRjaCBmaXJzdFwiLFxyXG4gICAgICB9LFxyXG4gICAgICBNb2RlbDogXCJNb2RlbFwiLFxyXG4gICAgICBWb2ljZToge1xyXG4gICAgICAgIFRpdGxlOiBcIlZvaWNlXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiVGhlIHZvaWNlIHRvIHVzZSB3aGVuIGdlbmVyYXRpbmcgdGhlIGF1ZGlvXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFNwZWVkOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiU3BlZWRcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJUaGUgc3BlZWQgb2YgdGhlIGdlbmVyYXRlZCBhdWRpb1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBFbmdpbmU6IFwiVFRTIEVuZ2luZVwiLFxyXG4gICAgfSxcclxuICAgIFJlYWx0aW1lOiB7XHJcbiAgICAgIEVuYWJsZToge1xyXG4gICAgICAgIFRpdGxlOiBcIlJlYWx0aW1lIENoYXRcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJFbmFibGUgcmVhbHRpbWUgY2hhdCBmZWF0dXJlXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFByb3ZpZGVyOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiTW9kZWwgUHJvdmlkZXJcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJTd2l0Y2ggYmV0d2VlbiBkaWZmZXJlbnQgcHJvdmlkZXJzXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIE1vZGVsOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiTW9kZWxcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJTZWxlY3QgYSBtb2RlbFwiLFxyXG4gICAgICB9LFxyXG4gICAgICBBcGlLZXk6IHtcclxuICAgICAgICBUaXRsZTogXCJBUEkgS2V5XCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiQVBJIEtleVwiLFxyXG4gICAgICAgIFBsYWNlaG9sZGVyOiBcIkFQSSBLZXlcIixcclxuICAgICAgfSxcclxuICAgICAgQXp1cmU6IHtcclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiRW5kcG9pbnRcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkVuZHBvaW50XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBEZXBsb3ltZW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJEZXBsb3ltZW50IE5hbWVcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkRlcGxveW1lbnQgTmFtZVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIFRlbXBlcmF0dXJlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiUmFuZG9tbmVzcyAodGVtcGVyYXR1cmUpXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiSGlnaGVyIHZhbHVlcyByZXN1bHQgaW4gbW9yZSByYW5kb20gcmVzcG9uc2VzXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgU3RvcmU6IHtcclxuICAgIERlZmF1bHRUb3BpYzogXCJOZXcgQ29udmVyc2F0aW9uXCIsXHJcbiAgICBCb3RIZWxsbzogXCJIZWxsbyEgSG93IGNhbiBJIGFzc2lzdCB5b3UgdG9kYXk/XCIsXHJcbiAgICBFcnJvcjogXCJTb21ldGhpbmcgd2VudCB3cm9uZywgcGxlYXNlIHRyeSBhZ2FpbiBsYXRlci5cIixcclxuICAgIFByb21wdDoge1xyXG4gICAgICBIaXN0b3J5OiAoY29udGVudDogc3RyaW5nKSA9PlxyXG4gICAgICAgIFwiVGhpcyBpcyBhIHN1bW1hcnkgb2YgdGhlIGNoYXQgaGlzdG9yeSBhcyBhIHJlY2FwOiBcIiArIGNvbnRlbnQsXHJcbiAgICAgIFRvcGljOlxyXG4gICAgICAgIFwiUGxlYXNlIGdlbmVyYXRlIGEgZm91ciB0byBmaXZlIHdvcmQgdGl0bGUgc3VtbWFyaXppbmcgb3VyIGNvbnZlcnNhdGlvbiB3aXRob3V0IGFueSBsZWFkLWluLCBwdW5jdHVhdGlvbiwgcXVvdGF0aW9uIG1hcmtzLCBwZXJpb2RzLCBzeW1ib2xzLCBib2xkIHRleHQsIG9yIGFkZGl0aW9uYWwgdGV4dC4gUmVtb3ZlIGVuY2xvc2luZyBxdW90YXRpb24gbWFya3MuXCIsXHJcbiAgICAgIFN1bW1hcml6ZTpcclxuICAgICAgICBcIlN1bW1hcml6ZSB0aGUgZGlzY3Vzc2lvbiBicmllZmx5IGluIDIwMCB3b3JkcyBvciBsZXNzIHRvIHVzZSBhcyBhIHByb21wdCBmb3IgZnV0dXJlIGNvbnRleHQuXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgQ29weToge1xyXG4gICAgU3VjY2VzczogXCJDb3BpZWQgdG8gY2xpcGJvYXJkXCIsXHJcbiAgICBGYWlsZWQ6IFwiQ29weSBmYWlsZWQsIHBsZWFzZSBncmFudCBwZXJtaXNzaW9uIHRvIGFjY2VzcyBjbGlwYm9hcmRcIixcclxuICB9LFxyXG4gIERvd25sb2FkOiB7XHJcbiAgICBTdWNjZXNzOiBcIkNvbnRlbnQgZG93bmxvYWRlZCB0byB5b3VyIGRpcmVjdG9yeS5cIixcclxuICAgIEZhaWxlZDogXCJEb3dubG9hZCBmYWlsZWQuXCIsXHJcbiAgfSxcclxuICBDb250ZXh0OiB7XHJcbiAgICBUb2FzdDogKHg6IGFueSkgPT4gYFdpdGggJHt4fSBjb250ZXh0dWFsIHByb21wdHNgLFxyXG4gICAgRWRpdDogXCJDdXJyZW50IENoYXQgU2V0dGluZ3NcIixcclxuICAgIEFkZDogXCJBZGQgYSBQcm9tcHRcIixcclxuICAgIENsZWFyOiBcIkNvbnRleHQgQ2xlYXJlZFwiLFxyXG4gICAgUmV2ZXJ0OiBcIlJldmVydFwiLFxyXG4gIH0sXHJcbiAgRGlzY292ZXJ5OiB7XHJcbiAgICBOYW1lOiBcIkRpc2NvdmVyeVwiLFxyXG4gIH0sXHJcbiAgTWNwOiB7XHJcbiAgICBOYW1lOiBcIk1DUFwiLFxyXG4gIH0sXHJcbiAgRmluZVR1bmVkOiB7XHJcbiAgICBTeXNtZXNzYWdlOiBcIllvdSBhcmUgYW4gYXNzaXN0YW50IHRoYXRcIixcclxuICB9LFxyXG4gIFNlYXJjaENoYXQ6IHtcclxuICAgIE5hbWU6IFwiU2VhcmNoXCIsXHJcbiAgICBQYWdlOiB7XHJcbiAgICAgIFRpdGxlOiBcIlNlYXJjaCBDaGF0IEhpc3RvcnlcIixcclxuICAgICAgU2VhcmNoOiBcIkVudGVyIHNlYXJjaCBxdWVyeSB0byBzZWFyY2ggY2hhdCBoaXN0b3J5XCIsXHJcbiAgICAgIE5vUmVzdWx0OiBcIk5vIHJlc3VsdHMgZm91bmRcIixcclxuICAgICAgTm9EYXRhOiBcIk5vIGRhdGFcIixcclxuICAgICAgTG9hZGluZzogXCJMb2FkaW5nLi4uXCIsXHJcblxyXG4gICAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGBGb3VuZCAke2NvdW50fSByZXN1bHRzYCxcclxuICAgIH0sXHJcbiAgICBJdGVtOiB7XHJcbiAgICAgIFZpZXc6IFwiVmlld1wiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIFBsdWdpbjoge1xyXG4gICAgTmFtZTogXCJQbHVnaW5cIixcclxuICAgIFBhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwiUGx1Z2luc1wiLFxyXG4gICAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50fSBwbHVnaW5zYCxcclxuICAgICAgU2VhcmNoOiBcIlNlYXJjaCBQbHVnaW5cIixcclxuICAgICAgQ3JlYXRlOiBcIkNyZWF0ZVwiLFxyXG4gICAgICBGaW5kOiBcIllvdSBjYW4gZmluZCBhd2Vzb21lIHBsdWdpbnMgb24gZ2l0aHViOiBcIixcclxuICAgIH0sXHJcbiAgICBJdGVtOiB7XHJcbiAgICAgIEluZm86IChjb3VudDogbnVtYmVyKSA9PiBgJHtjb3VudH0gbWV0aG9kYCxcclxuICAgICAgVmlldzogXCJWaWV3XCIsXHJcbiAgICAgIEVkaXQ6IFwiRWRpdFwiLFxyXG4gICAgICBEZWxldGU6IFwiRGVsZXRlXCIsXHJcbiAgICAgIERlbGV0ZUNvbmZpcm06IFwiQ29uZmlybSB0byBkZWxldGU/XCIsXHJcbiAgICB9LFxyXG4gICAgQXV0aDoge1xyXG4gICAgICBOb25lOiBcIk5vbmVcIixcclxuICAgICAgQmFzaWM6IFwiQmFzaWNcIixcclxuICAgICAgQmVhcmVyOiBcIkJlYXJlclwiLFxyXG4gICAgICBDdXN0b206IFwiQ3VzdG9tXCIsXHJcbiAgICAgIEN1c3RvbUhlYWRlcjogXCJQYXJhbWV0ZXIgTmFtZVwiLFxyXG4gICAgICBUb2tlbjogXCJUb2tlblwiLFxyXG4gICAgICBQcm94eTogXCJVc2luZyBQcm94eVwiLFxyXG4gICAgICBQcm94eURlc2NyaXB0aW9uOiBcIlVzaW5nIHByb3hpZXMgdG8gc29sdmUgQ09SUyBlcnJvclwiLFxyXG4gICAgICBMb2NhdGlvbjogXCJMb2NhdGlvblwiLFxyXG4gICAgICBMb2NhdGlvbkhlYWRlcjogXCJIZWFkZXJcIixcclxuICAgICAgTG9jYXRpb25RdWVyeTogXCJRdWVyeVwiLFxyXG4gICAgICBMb2NhdGlvbkJvZHk6IFwiQm9keVwiLFxyXG4gICAgfSxcclxuICAgIEVkaXRNb2RhbDoge1xyXG4gICAgICBUaXRsZTogKHJlYWRvbmx5OiBib29sZWFuKSA9PlxyXG4gICAgICAgIGBFZGl0IFBsdWdpbiAke3JlYWRvbmx5ID8gXCIocmVhZG9ubHkpXCIgOiBcIlwifWAsXHJcbiAgICAgIERvd25sb2FkOiBcIkRvd25sb2FkXCIsXHJcbiAgICAgIEF1dGg6IFwiQXV0aGVudGljYXRpb24gVHlwZVwiLFxyXG4gICAgICBDb250ZW50OiBcIk9wZW5BUEkgU2NoZW1hXCIsXHJcbiAgICAgIExvYWQ6IFwiTG9hZCBGcm9tIFVSTFwiLFxyXG4gICAgICBNZXRob2Q6IFwiTWV0aG9kXCIsXHJcbiAgICAgIEVycm9yOiBcIk9wZW5BUEkgU2NoZW1hIEVycm9yXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgTWFzazoge1xyXG4gICAgTmFtZTogXCJNYXNrXCIsXHJcbiAgICBQYWdlOiB7XHJcbiAgICAgIFRpdGxlOiBcIlByb21wdCBUZW1wbGF0ZVwiLFxyXG4gICAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50fSBwcm9tcHQgdGVtcGxhdGVzYCxcclxuICAgICAgU2VhcmNoOiBcIlNlYXJjaCBUZW1wbGF0ZXNcIixcclxuICAgICAgQ3JlYXRlOiBcIkNyZWF0ZVwiLFxyXG4gICAgfSxcclxuICAgIEl0ZW06IHtcclxuICAgICAgSW5mbzogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50fSBwcm9tcHRzYCxcclxuICAgICAgQ2hhdDogXCJDaGF0XCIsXHJcbiAgICAgIFZpZXc6IFwiVmlld1wiLFxyXG4gICAgICBFZGl0OiBcIkVkaXRcIixcclxuICAgICAgRGVsZXRlOiBcIkRlbGV0ZVwiLFxyXG4gICAgICBEZWxldGVDb25maXJtOiBcIkNvbmZpcm0gdG8gZGVsZXRlP1wiLFxyXG4gICAgfSxcclxuICAgIEVkaXRNb2RhbDoge1xyXG4gICAgICBUaXRsZTogKHJlYWRvbmx5OiBib29sZWFuKSA9PlxyXG4gICAgICAgIGBFZGl0IFByb21wdCBUZW1wbGF0ZSAke3JlYWRvbmx5ID8gXCIocmVhZG9ubHkpXCIgOiBcIlwifWAsXHJcbiAgICAgIERvd25sb2FkOiBcIkRvd25sb2FkXCIsXHJcbiAgICAgIENsb25lOiBcIkNsb25lXCIsXHJcbiAgICB9LFxyXG4gICAgQ29uZmlnOiB7XHJcbiAgICAgIEF2YXRhcjogXCJCb3QgQXZhdGFyXCIsXHJcbiAgICAgIE5hbWU6IFwiQm90IE5hbWVcIixcclxuICAgICAgU3luYzoge1xyXG4gICAgICAgIFRpdGxlOiBcIlVzZSBHbG9iYWwgQ29uZmlnXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiVXNlIGdsb2JhbCBjb25maWcgaW4gdGhpcyBjaGF0XCIsXHJcbiAgICAgICAgQ29uZmlybTogXCJDb25maXJtIHRvIG92ZXJyaWRlIGN1c3RvbSBjb25maWcgd2l0aCBnbG9iYWwgY29uZmlnP1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBIaWRlQ29udGV4dDoge1xyXG4gICAgICAgIFRpdGxlOiBcIkhpZGUgQ29udGV4dCBQcm9tcHRzXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiRG8gbm90IHNob3cgaW4tY29udGV4dCBwcm9tcHRzIGluIGNoYXRcIixcclxuICAgICAgfSxcclxuICAgICAgQXJ0aWZhY3RzOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiRW5hYmxlIEFydGlmYWN0c1wiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIkNhbiByZW5kZXIgSFRNTCBwYWdlIHdoZW4gZW5hYmxlIGFydGlmYWN0cy5cIixcclxuICAgICAgfSxcclxuICAgICAgQ29kZUZvbGQ6IHtcclxuICAgICAgICBUaXRsZTogXCJFbmFibGUgQ29kZUZvbGRcIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiQXV0b21hdGljYWxseSBjb2xsYXBzZS9leHBhbmQgb3Zlcmx5IGxvbmcgY29kZSBibG9ja3Mgd2hlbiBDb2RlRm9sZCBpcyBlbmFibGVkXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFNoYXJlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiU2hhcmUgVGhpcyBNYXNrXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiR2VuZXJhdGUgYSBsaW5rIHRvIHRoaXMgbWFza1wiLFxyXG4gICAgICAgIEFjdGlvbjogXCJDb3B5IExpbmtcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBOZXdDaGF0OiB7XHJcbiAgICBSZXR1cm46IFwiUmV0dXJuXCIsXHJcbiAgICBTa2lwOiBcIkp1c3QgU3RhcnRcIixcclxuICAgIFRpdGxlOiBcIlBpY2sgYSBNYXNrXCIsXHJcbiAgICBTdWJUaXRsZTogXCJDaGF0IHdpdGggdGhlIFNvdWwgYmVoaW5kIHRoZSBNYXNrXCIsXHJcbiAgICBNb3JlOiBcIkZpbmQgTW9yZVwiLFxyXG4gICAgTm90U2hvdzogXCJOZXZlciBTaG93IEFnYWluXCIsXHJcbiAgICBDb25maXJtTm9TaG93OiBcIkNvbmZpcm0gdG8gZGlzYWJsZe+8n1lvdSBjYW4gZW5hYmxlIGl0IGluIHNldHRpbmdzIGxhdGVyLlwiLFxyXG4gIH0sXHJcblxyXG4gIFVJOiB7XHJcbiAgICBDb25maXJtOiBcIkNvbmZpcm1cIixcclxuICAgIENhbmNlbDogXCJDYW5jZWxcIixcclxuICAgIENsb3NlOiBcIkNsb3NlXCIsXHJcbiAgICBDcmVhdGU6IFwiQ3JlYXRlXCIsXHJcbiAgICBFZGl0OiBcIkVkaXRcIixcclxuICAgIEV4cG9ydDogXCJFeHBvcnRcIixcclxuICAgIEltcG9ydDogXCJJbXBvcnRcIixcclxuICAgIFN5bmM6IFwiU3luY1wiLFxyXG4gICAgQ29uZmlnOiBcIkNvbmZpZ1wiLFxyXG4gIH0sXHJcbiAgRXhwb3J0ZXI6IHtcclxuICAgIERlc2NyaXB0aW9uOiB7XHJcbiAgICAgIFRpdGxlOiBcIk9ubHkgbWVzc2FnZXMgYWZ0ZXIgY2xlYXJpbmcgdGhlIGNvbnRleHQgd2lsbCBiZSBkaXNwbGF5ZWRcIixcclxuICAgIH0sXHJcbiAgICBNb2RlbDogXCJNb2RlbFwiLFxyXG4gICAgTWVzc2FnZXM6IFwiTWVzc2FnZXNcIixcclxuICAgIFRvcGljOiBcIlRvcGljXCIsXHJcbiAgICBUaW1lOiBcIlRpbWVcIixcclxuICB9LFxyXG4gIFVSTENvbW1hbmQ6IHtcclxuICAgIENvZGU6IFwiRGV0ZWN0ZWQgYWNjZXNzIGNvZGUgZnJvbSB1cmwsIGNvbmZpcm0gdG8gYXBwbHk/IFwiLFxyXG4gICAgU2V0dGluZ3M6IFwiRGV0ZWN0ZWQgc2V0dGluZ3MgZnJvbSB1cmwsIGNvbmZpcm0gdG8gYXBwbHk/XCIsXHJcbiAgfSxcclxuICBTZFBhbmVsOiB7XHJcbiAgICBQcm9tcHQ6IFwiUHJvbXB0XCIsXHJcbiAgICBOZWdhdGl2ZVByb21wdDogXCJOZWdhdGl2ZSBQcm9tcHRcIixcclxuICAgIFBsZWFzZUlucHV0OiAobmFtZTogc3RyaW5nKSA9PiBgUGxlYXNlIGlucHV0ICR7bmFtZX1gLFxyXG4gICAgQXNwZWN0UmF0aW86IFwiQXNwZWN0IFJhdGlvXCIsXHJcbiAgICBJbWFnZVN0eWxlOiBcIkltYWdlIFN0eWxlXCIsXHJcbiAgICBPdXRGb3JtYXQ6IFwiT3V0cHV0IEZvcm1hdFwiLFxyXG4gICAgQUlNb2RlbDogXCJBSSBNb2RlbFwiLFxyXG4gICAgTW9kZWxWZXJzaW9uOiBcIk1vZGVsIFZlcnNpb25cIixcclxuICAgIFN1Ym1pdDogXCJTdWJtaXRcIixcclxuICAgIFBhcmFtSXNSZXF1aXJlZDogKG5hbWU6IHN0cmluZykgPT4gYCR7bmFtZX0gaXMgcmVxdWlyZWRgLFxyXG4gICAgU3R5bGVzOiB7XHJcbiAgICAgIEQzTW9kZWw6IFwiM2QtbW9kZWxcIixcclxuICAgICAgQW5hbG9nRmlsbTogXCJhbmFsb2ctZmlsbVwiLFxyXG4gICAgICBBbmltZTogXCJhbmltZVwiLFxyXG4gICAgICBDaW5lbWF0aWM6IFwiY2luZW1hdGljXCIsXHJcbiAgICAgIENvbWljQm9vazogXCJjb21pYy1ib29rXCIsXHJcbiAgICAgIERpZ2l0YWxBcnQ6IFwiZGlnaXRhbC1hcnRcIixcclxuICAgICAgRW5oYW5jZTogXCJlbmhhbmNlXCIsXHJcbiAgICAgIEZhbnRhc3lBcnQ6IFwiZmFudGFzeS1hcnRcIixcclxuICAgICAgSXNvbWV0cmljOiBcImlzb21ldHJpY1wiLFxyXG4gICAgICBMaW5lQXJ0OiBcImxpbmUtYXJ0XCIsXHJcbiAgICAgIExvd1BvbHk6IFwibG93LXBvbHlcIixcclxuICAgICAgTW9kZWxpbmdDb21wb3VuZDogXCJtb2RlbGluZy1jb21wb3VuZFwiLFxyXG4gICAgICBOZW9uUHVuazogXCJuZW9uLXB1bmtcIixcclxuICAgICAgT3JpZ2FtaTogXCJvcmlnYW1pXCIsXHJcbiAgICAgIFBob3RvZ3JhcGhpYzogXCJwaG90b2dyYXBoaWNcIixcclxuICAgICAgUGl4ZWxBcnQ6IFwicGl4ZWwtYXJ0XCIsXHJcbiAgICAgIFRpbGVUZXh0dXJlOiBcInRpbGUtdGV4dHVyZVwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIFNkOiB7XHJcbiAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50fSBpbWFnZXNgLFxyXG4gICAgQWN0aW9uczoge1xyXG4gICAgICBQYXJhbXM6IFwiU2VlIFBhcmFtc1wiLFxyXG4gICAgICBDb3B5OiBcIkNvcHkgUHJvbXB0XCIsXHJcbiAgICAgIERlbGV0ZTogXCJEZWxldGVcIixcclxuICAgICAgUmV0cnk6IFwiUmV0cnlcIixcclxuICAgICAgUmV0dXJuSG9tZTogXCJSZXR1cm4gSG9tZVwiLFxyXG4gICAgICBIaXN0b3J5OiBcIkhpc3RvcnlcIixcclxuICAgIH0sXHJcbiAgICBFbXB0eVJlY29yZDogXCJObyBpbWFnZXMgeWV0XCIsXHJcbiAgICBTdGF0dXM6IHtcclxuICAgICAgTmFtZTogXCJTdGF0dXNcIixcclxuICAgICAgU3VjY2VzczogXCJTdWNjZXNzXCIsXHJcbiAgICAgIEVycm9yOiBcIkVycm9yXCIsXHJcbiAgICAgIFdhaXQ6IFwiV2FpdGluZ1wiLFxyXG4gICAgICBSdW5uaW5nOiBcIlJ1bm5pbmdcIixcclxuICAgIH0sXHJcbiAgICBEYW5nZXI6IHtcclxuICAgICAgRGVsZXRlOiBcIkNvbmZpcm0gdG8gZGVsZXRlP1wiLFxyXG4gICAgfSxcclxuICAgIEdlbmVyYXRlUGFyYW1zOiBcIkdlbmVyYXRlIFBhcmFtc1wiLFxyXG4gICAgRGV0YWlsOiBcIkRldGFpbFwiLFxyXG4gIH0sXHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBlbjtcclxuIl0sIm5hbWVzIjpbImdldENsaWVudENvbmZpZyIsIlN1Ym1pdEtleSIsIlNBQVNfQ0hBVF9VVE1fVVJMIiwiaXNBcHAiLCJlbiIsIldJUCIsIkVycm9yIiwiVW5hdXRob3JpemVkIiwiQXV0aCIsIlJldHVybiIsIlRpdGxlIiwiVGlwcyIsIlN1YlRpcHMiLCJJbnB1dCIsIkNvbmZpcm0iLCJMYXRlciIsIlNhYXNUaXBzIiwiVG9wVGlwcyIsIkNoYXRJdGVtIiwiQ2hhdEl0ZW1Db3VudCIsImNvdW50IiwiQ2hhdCIsIlN1YlRpdGxlIiwiRWRpdE1lc3NhZ2UiLCJUb3BpYyIsIkFjdGlvbnMiLCJDaGF0TGlzdCIsIkNvbXByZXNzZWRIaXN0b3J5IiwiRXhwb3J0IiwiQ29weSIsIlN0b3AiLCJSZXRyeSIsIlBpbiIsIlBpblRvYXN0Q29udGVudCIsIlBpblRvYXN0QWN0aW9uIiwiRGVsZXRlIiwiRWRpdCIsIkZ1bGxTY3JlZW4iLCJSZWZyZXNoVGl0bGUiLCJSZWZyZXNoVG9hc3QiLCJTcGVlY2giLCJTdG9wU3BlZWNoIiwiQ29tbWFuZHMiLCJuZXciLCJuZXdtIiwibmV4dCIsInByZXYiLCJjbGVhciIsImZvcmsiLCJkZWwiLCJJbnB1dEFjdGlvbnMiLCJUb0JvdHRvbSIsIlRoZW1lIiwiYXV0byIsImxpZ2h0IiwiZGFyayIsIlByb21wdCIsIk1hc2tzIiwiQ2xlYXIiLCJTZXR0aW5ncyIsIlVwbG9hZEltYWdlIiwiUmVuYW1lIiwiVHlwaW5nIiwic3VibWl0S2V5IiwiaW5wdXRIaW50cyIsIlN0cmluZyIsIkVudGVyIiwiU2VuZCIsIlN0YXJ0U3BlYWsiLCJTdG9wU3BlYWsiLCJDb25maWciLCJSZXNldCIsIlNhdmVBcyIsIklzQ29udGV4dCIsIlNob3J0Y3V0S2V5IiwibmV3Q2hhdCIsImZvY3VzSW5wdXQiLCJjb3B5TGFzdE1lc3NhZ2UiLCJjb3B5TGFzdENvZGUiLCJzaG93U2hvcnRjdXRLZXkiLCJjbGVhckNvbnRleHQiLCJEb3dubG9hZCIsIk1lc3NhZ2VGcm9tWW91IiwiTWVzc2FnZUZyb21DaGF0R1BUIiwiU2hhcmUiLCJGb3JtYXQiLCJJbmNsdWRlQ29udGV4dCIsIlN0ZXBzIiwiU2VsZWN0IiwiUHJldmlldyIsIkltYWdlIiwiVG9hc3QiLCJNb2RhbCIsIkFydGlmYWN0cyIsIlNlYXJjaCIsIkFsbCIsIkxhdGVzdCIsIk1lbW9yeSIsIkVtcHR5Q29udGVudCIsIlJlc2V0Q29uZmlybSIsIkhvbWUiLCJOZXdDaGF0IiwiRGVsZXRlQ2hhdCIsIkRlbGV0ZVRvYXN0IiwiUmV2ZXJ0IiwiU2hvd1Bhc3N3b3JkIiwiRGFuZ2VyIiwiQWN0aW9uIiwiTGFuZyIsIk5hbWUiLCJBdmF0YXIiLCJGb250U2l6ZSIsIkZvbnRGYW1pbHkiLCJQbGFjZWhvbGRlciIsIkluamVjdFN5c3RlbVByb21wdHMiLCJJbnB1dFRlbXBsYXRlIiwiVXBkYXRlIiwiVmVyc2lvbiIsIngiLCJJc0xhdGVzdCIsIkNoZWNrVXBkYXRlIiwiSXNDaGVja2luZyIsIkZvdW5kVXBkYXRlIiwiR29Ub1VwZGF0ZSIsIlN1Y2Nlc3MiLCJGYWlsZWQiLCJTZW5kS2V5IiwiVGlnaHRCb3JkZXIiLCJTZW5kUHJldmlld0J1YmJsZSIsIkF1dG9HZW5lcmF0ZVRpdGxlIiwiU3luYyIsIkNsb3VkU3RhdGUiLCJOb3RTeW5jWWV0IiwiRmFpbCIsIkNoZWNrIiwiU3luY1R5cGUiLCJQcm94eSIsIlByb3h5VXJsIiwiV2ViRGF2IiwiRW5kcG9pbnQiLCJVc2VyTmFtZSIsIlBhc3N3b3JkIiwiVXBTdGFzaCIsIkxvY2FsU3RhdGUiLCJPdmVydmlldyIsIm92ZXJ2aWV3IiwiY2hhdCIsIm1lc3NhZ2UiLCJwcm9tcHQiLCJtYXNrIiwiSW1wb3J0RmFpbGVkIiwiTWFzayIsIlNwbGFzaCIsIkJ1aWx0aW4iLCJEaXNhYmxlIiwiTGlzdCIsIkxpc3RDb3VudCIsImJ1aWx0aW4iLCJjdXN0b20iLCJBZGQiLCJFZGl0TW9kYWwiLCJIaXN0b3J5Q291bnQiLCJDb21wcmVzc1RocmVzaG9sZCIsIlVzYWdlIiwidXNlZCIsInRvdGFsIiwiTm9BY2Nlc3MiLCJBY2Nlc3MiLCJTYWFzU3RhcnQiLCJMYWJlbCIsIkNoYXROb3ciLCJBY2Nlc3NDb2RlIiwiQ3VzdG9tRW5kcG9pbnQiLCJQcm92aWRlciIsIk9wZW5BSSIsIkFwaUtleSIsIkF6dXJlIiwiQXBpVmVyaW9uIiwiQW50aHJvcGljIiwiQmFpZHUiLCJTZWNyZXRLZXkiLCJUZW5jZW50IiwiQnl0ZURhbmNlIiwiQWxpYmFiYSIsIk1vb25zaG90IiwiRGVlcFNlZWsiLCJYQUkiLCJDaGF0R0xNIiwiU2lsaWNvbkZsb3ciLCJTdGFiaWxpdHkiLCJJZmx5dGVrIiwiQXBpU2VjcmV0IiwiQ3VzdG9tTW9kZWwiLCJHb29nbGUiLCJBcGlWZXJzaW9uIiwiR29vZ2xlU2FmZXR5U2V0dGluZ3MiLCJNb2RlbCIsIkNvbXByZXNzTW9kZWwiLCJUZW1wZXJhdHVyZSIsIlRvcFAiLCJNYXhUb2tlbnMiLCJQcmVzZW5jZVBlbmFsdHkiLCJGcmVxdWVuY3lQZW5hbHR5IiwiVFRTIiwiRW5hYmxlIiwiQXV0b3BsYXkiLCJWb2ljZSIsIlNwZWVkIiwiRW5naW5lIiwiUmVhbHRpbWUiLCJEZXBsb3ltZW50IiwiU3RvcmUiLCJEZWZhdWx0VG9waWMiLCJCb3RIZWxsbyIsIkhpc3RvcnkiLCJjb250ZW50IiwiU3VtbWFyaXplIiwiQ29udGV4dCIsIkRpc2NvdmVyeSIsIk1jcCIsIkZpbmVUdW5lZCIsIlN5c21lc3NhZ2UiLCJTZWFyY2hDaGF0IiwiUGFnZSIsIk5vUmVzdWx0IiwiTm9EYXRhIiwiTG9hZGluZyIsIkl0ZW0iLCJWaWV3IiwiUGx1Z2luIiwiQ3JlYXRlIiwiRmluZCIsIkluZm8iLCJEZWxldGVDb25maXJtIiwiTm9uZSIsIkJhc2ljIiwiQmVhcmVyIiwiQ3VzdG9tIiwiQ3VzdG9tSGVhZGVyIiwiVG9rZW4iLCJQcm94eURlc2NyaXB0aW9uIiwiTG9jYXRpb24iLCJMb2NhdGlvbkhlYWRlciIsIkxvY2F0aW9uUXVlcnkiLCJMb2NhdGlvbkJvZHkiLCJyZWFkb25seSIsIkNvbnRlbnQiLCJMb2FkIiwiTWV0aG9kIiwiQ2xvbmUiLCJIaWRlQ29udGV4dCIsIkNvZGVGb2xkIiwiU2tpcCIsIk1vcmUiLCJOb3RTaG93IiwiQ29uZmlybU5vU2hvdyIsIlVJIiwiQ2FuY2VsIiwiQ2xvc2UiLCJJbXBvcnQiLCJFeHBvcnRlciIsIkRlc2NyaXB0aW9uIiwiTWVzc2FnZXMiLCJUaW1lIiwiVVJMQ29tbWFuZCIsIkNvZGUiLCJTZFBhbmVsIiwiTmVnYXRpdmVQcm9tcHQiLCJQbGVhc2VJbnB1dCIsIm5hbWUiLCJBc3BlY3RSYXRpbyIsIkltYWdlU3R5bGUiLCJPdXRGb3JtYXQiLCJBSU1vZGVsIiwiTW9kZWxWZXJzaW9uIiwiU3VibWl0IiwiUGFyYW1Jc1JlcXVpcmVkIiwiU3R5bGVzIiwiRDNNb2RlbCIsIkFuYWxvZ0ZpbG0iLCJBbmltZSIsIkNpbmVtYXRpYyIsIkNvbWljQm9vayIsIkRpZ2l0YWxBcnQiLCJFbmhhbmNlIiwiRmFudGFzeUFydCIsIklzb21ldHJpYyIsIkxpbmVBcnQiLCJMb3dQb2x5IiwiTW9kZWxpbmdDb21wb3VuZCIsIk5lb25QdW5rIiwiT3JpZ2FtaSIsIlBob3RvZ3JhcGhpYyIsIlBpeGVsQXJ0IiwiVGlsZVRleHR1cmUiLCJTZCIsIlBhcmFtcyIsIlJldHVybkhvbWUiLCJFbXB0eVJlY29yZCIsIlN0YXR1cyIsIldhaXQiLCJSdW5uaW5nIiwiR2VuZXJhdGVQYXJhbXMiLCJEZXRhaWwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/locales/en.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/locales/es.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/locales/es.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _store_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../store/config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n\n\n\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_1__.getClientConfig)()?.isApp;\nconst es = {\n WIP: \"En construcci\\xf3n...\",\n Error: {\n Unauthorized: isApp ? `😆 La conversación encontró algunos problemas, no te preocupes:\r\n \\\\ 1️⃣ Si deseas comenzar sin configuración, [haz clic aquí para empezar a chatear inmediatamente 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\\\ 2️⃣ Si deseas usar tus propios recursos de OpenAI, haz clic [aquí](/#/settings) para modificar la configuración ⚙️` : `😆 La conversación encontró algunos problemas, no te preocupes:\r\n \\ 1️⃣ Si deseas comenzar sin configuración, [haz clic aquí para empezar a chatear inmediatamente 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\ 2️⃣ Si estás utilizando una versión de implementación privada, haz clic [aquí](/#/auth) para ingresar la clave de acceso 🔑\r\n \\ 3️⃣ Si deseas usar tus propios recursos de OpenAI, haz clic [aquí](/#/settings) para modificar la configuración ⚙️\r\n `\n },\n Auth: {\n Title: \"Se requiere contrase\\xf1a\",\n Tips: \"El administrador ha habilitado la verificaci\\xf3n de contrase\\xf1a. Introduce el c\\xf3digo de acceso a continuaci\\xf3n\",\n SubTips: \"O ingresa tu clave API de OpenAI o Google\",\n Input: \"Introduce el c\\xf3digo de acceso aqu\\xed\",\n Confirm: \"Confirmar\",\n Later: \"M\\xe1s tarde\",\n Return: \"Regresar\",\n SaasTips: \"La configuraci\\xf3n es demasiado complicada, quiero usarlo de inmediato\",\n TopTips: \"\\uD83E\\uDD73 Oferta de lanzamiento de NextChat AI, desbloquea OpenAI o1, GPT-4o, Claude-3.5 y los \\xfaltimos grandes modelos\"\n },\n ChatItem: {\n ChatItemCount: (count)=>`${count} conversaciones`\n },\n Chat: {\n SubTitle: (count)=>`Total de ${count} conversaciones`,\n EditMessage: {\n Title: \"Editar registro de mensajes\",\n Topic: {\n Title: \"Tema de la conversaci\\xf3n\",\n SubTitle: \"Cambiar el tema de la conversaci\\xf3n actual\"\n }\n },\n Actions: {\n ChatList: \"Ver lista de mensajes\",\n CompressedHistory: \"Ver historial de Prompts comprimidos\",\n Export: \"Exportar historial de chat\",\n Copy: \"Copiar\",\n Stop: \"Detener\",\n Retry: \"Reintentar\",\n Pin: \"Fijar\",\n PinToastContent: \"Se ha fijado 1 conversaci\\xf3n a los prompts predeterminados\",\n PinToastAction: \"Ver\",\n Delete: \"Eliminar\",\n Edit: \"Editar\",\n RefreshTitle: \"Actualizar t\\xedtulo\",\n RefreshToast: \"Se ha enviado la solicitud de actualizaci\\xf3n del t\\xedtulo\"\n },\n Commands: {\n new: \"Nueva conversaci\\xf3n\",\n newm: \"Nueva conversaci\\xf3n desde la m\\xe1scara\",\n next: \"Siguiente conversaci\\xf3n\",\n prev: \"Conversaci\\xf3n anterior\",\n clear: \"Limpiar contexto\",\n del: \"Eliminar conversaci\\xf3n\"\n },\n InputActions: {\n Stop: \"Detener respuesta\",\n ToBottom: \"Ir al m\\xe1s reciente\",\n Theme: {\n auto: \"Tema autom\\xe1tico\",\n light: \"Modo claro\",\n dark: \"Modo oscuro\"\n },\n Prompt: \"Comandos r\\xe1pidos\",\n Masks: \"Todas las m\\xe1scaras\",\n Clear: \"Limpiar chat\",\n Settings: \"Configuraci\\xf3n de conversaci\\xf3n\",\n UploadImage: \"Subir imagen\"\n },\n Rename: \"Renombrar conversaci\\xf3n\",\n Typing: \"Escribiendo…\",\n Input: (submitKey)=>{\n var inputHints = `${submitKey} para enviar`;\n if (submitKey === String(_store_config__WEBPACK_IMPORTED_MODULE_0__.SubmitKey.Enter)) {\n inputHints += \",Shift + Enter para nueva l\\xednea\";\n }\n return inputHints + \",/ para activar autocompletado,: para activar comandos\";\n },\n Send: \"Enviar\",\n Config: {\n Reset: \"Borrar memoria\",\n SaveAs: \"Guardar como m\\xe1scara\"\n },\n IsContext: \"Prompt predeterminado\"\n },\n Export: {\n Title: \"Compartir historial de chat\",\n Copy: \"Copiar todo\",\n Download: \"Descargar archivo\",\n Share: \"Compartir en ShareGPT\",\n MessageFromYou: \"Usuario\",\n MessageFromChatGPT: \"ChatGPT\",\n Format: {\n Title: \"Formato de exportaci\\xf3n\",\n SubTitle: \"Puedes exportar como texto Markdown o imagen PNG\"\n },\n IncludeContext: {\n Title: \"Incluir contexto de m\\xe1scara\",\n SubTitle: \"Mostrar contexto de m\\xe1scara en los mensajes\"\n },\n Steps: {\n Select: \"Seleccionar\",\n Preview: \"Vista previa\"\n },\n Image: {\n Toast: \"Generando captura de pantalla\",\n Modal: \"Mant\\xe9n presionado o haz clic derecho para guardar la imagen\"\n }\n },\n Select: {\n Search: \"Buscar mensajes\",\n All: \"Seleccionar todo\",\n Latest: \"\\xdaltimos mensajes\",\n Clear: \"Limpiar selecci\\xf3n\"\n },\n Memory: {\n Title: \"Resumen hist\\xf3rico\",\n EmptyContent: \"El contenido de la conversaci\\xf3n es demasiado corto para resumir\",\n Send: \"Comprimir autom\\xe1ticamente el historial de chat y enviarlo como contexto\",\n Copy: \"Copiar resumen\",\n Reset: \"[no usado]\",\n ResetConfirm: \"\\xbfConfirmar para borrar el resumen hist\\xf3rico?\"\n },\n Home: {\n NewChat: \"Nueva conversaci\\xf3n\",\n DeleteChat: \"\\xbfConfirmar la eliminaci\\xf3n de la conversaci\\xf3n seleccionada?\",\n DeleteToast: \"Conversaci\\xf3n eliminada\",\n Revert: \"Deshacer\"\n },\n Settings: {\n Title: \"Configuraci\\xf3n\",\n SubTitle: \"Todas las opciones de configuraci\\xf3n\",\n Danger: {\n Reset: {\n Title: \"Restablecer todas las configuraciones\",\n SubTitle: \"Restablecer todas las configuraciones a los valores predeterminados\",\n Action: \"Restablecer ahora\",\n Confirm: \"\\xbfConfirmar el restablecimiento de todas las configuraciones?\"\n },\n Clear: {\n Title: \"Eliminar todos los datos\",\n SubTitle: \"Eliminar todos los chats y datos de configuraci\\xf3n\",\n Action: \"Eliminar ahora\",\n Confirm: \"\\xbfConfirmar la eliminaci\\xf3n de todos los chats y datos de configuraci\\xf3n?\"\n }\n },\n Lang: {\n Name: \"Language\",\n All: \"Todos los idiomas\"\n },\n Avatar: \"Avatar\",\n FontSize: {\n Title: \"Tama\\xf1o de fuente\",\n SubTitle: \"Tama\\xf1o de la fuente del contenido del chat\"\n },\n FontFamily: {\n Title: \"Fuente del Chat\",\n SubTitle: \"Fuente del contenido del chat, dejar vac\\xedo para aplicar la fuente predeterminada global\",\n Placeholder: \"Nombre de la Fuente\"\n },\n InjectSystemPrompts: {\n Title: \"Inyectar mensajes del sistema\",\n SubTitle: \"Forzar la adici\\xf3n de un mensaje del sistema simulado de ChatGPT al principio de cada lista de mensajes\"\n },\n InputTemplate: {\n Title: \"Preprocesamiento de entrada del usuario\",\n SubTitle: \"El \\xfaltimo mensaje del usuario se rellenar\\xe1 en esta plantilla\"\n },\n Update: {\n Version: (x)=>`Versión actual: ${x}`,\n IsLatest: \"Ya est\\xe1s en la \\xfaltima versi\\xf3n\",\n CheckUpdate: \"Buscar actualizaciones\",\n IsChecking: \"Buscando actualizaciones...\",\n FoundUpdate: (x)=>`Nueva versión encontrada: ${x}`,\n GoToUpdate: \"Ir a actualizar\"\n },\n SendKey: \"Tecla de enviar\",\n Theme: \"Tema\",\n TightBorder: \"Modo sin borde\",\n SendPreviewBubble: {\n Title: \"Vista previa del globo\",\n SubTitle: \"Previsualiza el contenido Markdown en un globo de vista previa\"\n },\n AutoGenerateTitle: {\n Title: \"Generar t\\xedtulo autom\\xe1ticamente\",\n SubTitle: \"Generar un t\\xedtulo adecuado basado en el contenido del chat\"\n },\n Sync: {\n CloudState: \"Datos en la nube\",\n NotSyncYet: \"A\\xfan no se ha sincronizado\",\n Success: \"Sincronizaci\\xf3n exitosa\",\n Fail: \"Sincronizaci\\xf3n fallida\",\n Config: {\n Modal: {\n Title: \"Configurar sincronizaci\\xf3n en la nube\",\n Check: \"Verificar disponibilidad\"\n },\n SyncType: {\n Title: \"Tipo de sincronizaci\\xf3n\",\n SubTitle: \"Selecciona el servidor de sincronizaci\\xf3n preferido\"\n },\n Proxy: {\n Title: \"Habilitar proxy\",\n SubTitle: \"Debes habilitar el proxy para sincronizar en el navegador y evitar restricciones de CORS\"\n },\n ProxyUrl: {\n Title: \"Direcci\\xf3n del proxy\",\n SubTitle: \"Solo para el proxy CORS incluido en este proyecto\"\n },\n WebDav: {\n Endpoint: \"Direcci\\xf3n WebDAV\",\n UserName: \"Nombre de usuario\",\n Password: \"Contrase\\xf1a\"\n },\n UpStash: {\n Endpoint: \"URL de REST de UpStash Redis\",\n UserName: \"Nombre de respaldo\",\n Password: \"Token de REST de UpStash Redis\"\n }\n },\n LocalState: \"Datos locales\",\n Overview: (overview)=>{\n return `${overview.chat} conversaciones, ${overview.message} mensajes, ${overview.prompt} prompts, ${overview.mask} máscaras`;\n },\n ImportFailed: \"Importaci\\xf3n fallida\"\n },\n Mask: {\n Splash: {\n Title: \"Pantalla de inicio de m\\xe1scara\",\n SubTitle: \"Mostrar la pantalla de inicio de la m\\xe1scara al iniciar un nuevo chat\"\n },\n Builtin: {\n Title: \"Ocultar m\\xe1scaras integradas\",\n SubTitle: \"Ocultar las m\\xe1scaras integradas en todas las listas de m\\xe1scaras\"\n }\n },\n Prompt: {\n Disable: {\n Title: \"Deshabilitar autocompletado de prompts\",\n SubTitle: \"Escribe / al principio del campo de entrada para activar el autocompletado\"\n },\n List: \"Lista de prompts personalizados\",\n ListCount: (builtin, custom)=>`Integrados ${builtin}, definidos por el usuario ${custom}`,\n Edit: \"Editar\",\n Modal: {\n Title: \"Lista de prompts\",\n Add: \"Nuevo\",\n Search: \"Buscar prompts\"\n },\n EditModal: {\n Title: \"Editar prompt\"\n }\n },\n HistoryCount: {\n Title: \"N\\xfamero de mensajes hist\\xf3ricos adjuntos\",\n SubTitle: \"N\\xfamero de mensajes hist\\xf3ricos enviados con cada solicitud\"\n },\n CompressThreshold: {\n Title: \"Umbral de compresi\\xf3n de mensajes hist\\xf3ricos\",\n SubTitle: \"Cuando los mensajes hist\\xf3ricos no comprimidos superan este valor, se realizar\\xe1 la compresi\\xf3n\"\n },\n Usage: {\n Title: \"Consulta de saldo\",\n SubTitle (used, total) {\n return `Saldo usado este mes: $${used}, total suscrito: $${total}`;\n },\n IsChecking: \"Verificando…\",\n Check: \"Revisar de nuevo\",\n NoAccess: \"Introduce la clave API o la contrase\\xf1a de acceso para ver el saldo\"\n },\n Access: {\n SaasStart: {\n Title: \"Use NextChat AI\",\n Label: \"(The most cost-effective solution)\",\n SubTitle: \"Officially maintained by NextChat, zero configuration ready to use, supports the latest large models like OpenAI o1, GPT-4o, and Claude-3.5\",\n ChatNow: \"Chat Now\"\n },\n AccessCode: {\n Title: \"Contrase\\xf1a de acceso\",\n SubTitle: \"El administrador ha habilitado el acceso encriptado\",\n Placeholder: \"Introduce la contrase\\xf1a de acceso\"\n },\n CustomEndpoint: {\n Title: \"Interfaz personalizada\",\n SubTitle: \"\\xbfUsar servicios personalizados de Azure u OpenAI?\"\n },\n Provider: {\n Title: \"Proveedor de modelos\",\n SubTitle: \"Cambiar entre diferentes proveedores\"\n },\n OpenAI: {\n ApiKey: {\n Title: \"Clave API\",\n SubTitle: \"Usa una clave API de OpenAI personalizada para omitir la restricci\\xf3n de acceso por contrase\\xf1a\",\n Placeholder: \"Clave API de OpenAI\"\n },\n Endpoint: {\n Title: \"Direcci\\xf3n del endpoint\",\n SubTitle: \"Debe incluir http(s):// adem\\xe1s de la direcci\\xf3n predeterminada\"\n }\n },\n Azure: {\n ApiKey: {\n Title: \"Clave de interfaz\",\n SubTitle: \"Usa una clave de Azure personalizada para omitir la restricci\\xf3n de acceso por contrase\\xf1a\",\n Placeholder: \"Clave API de Azure\"\n },\n Endpoint: {\n Title: \"Direcci\\xf3n del endpoint\",\n SubTitle: \"Ejemplo:\"\n },\n ApiVerion: {\n Title: \"Versi\\xf3n de la interfaz (versi\\xf3n de api de azure)\",\n SubTitle: \"Selecciona una versi\\xf3n espec\\xedfica\"\n }\n },\n Anthropic: {\n ApiKey: {\n Title: \"Clave de interfaz\",\n SubTitle: \"Usa una clave de Anthropic personalizada para omitir la restricci\\xf3n de acceso por contrase\\xf1a\",\n Placeholder: \"Clave API de Anthropic\"\n },\n Endpoint: {\n Title: \"Direcci\\xf3n del endpoint\",\n SubTitle: \"Ejemplo:\"\n },\n ApiVerion: {\n Title: \"Versi\\xf3n de la interfaz (versi\\xf3n de claude api)\",\n SubTitle: \"Selecciona una versi\\xf3n espec\\xedfica de la API\"\n }\n },\n Google: {\n ApiKey: {\n Title: \"Clave API\",\n SubTitle: \"Obt\\xe9n tu clave API de Google AI\",\n Placeholder: \"Introduce tu clave API de Google AI Studio\"\n },\n Endpoint: {\n Title: \"Direcci\\xf3n del endpoint\",\n SubTitle: \"Ejemplo:\"\n },\n ApiVersion: {\n Title: \"Versi\\xf3n de la API (solo para gemini-pro)\",\n SubTitle: \"Selecciona una versi\\xf3n espec\\xedfica de la API\"\n },\n GoogleSafetySettings: {\n Title: \"Nivel de filtrado de seguridad de Google\",\n SubTitle: \"Configura el nivel de filtrado de contenido\"\n }\n },\n Baidu: {\n ApiKey: {\n Title: \"Clave API\",\n SubTitle: \"Usa una clave API de Baidu personalizada\",\n Placeholder: \"Clave API de Baidu\"\n },\n SecretKey: {\n Title: \"Clave secreta\",\n SubTitle: \"Usa una clave secreta de Baidu personalizada\",\n Placeholder: \"Clave secreta de Baidu\"\n },\n Endpoint: {\n Title: \"Direcci\\xf3n del endpoint\",\n SubTitle: \"No admite personalizaci\\xf3n, dir\\xedgete a .env para configurarlo\"\n }\n },\n ByteDance: {\n ApiKey: {\n Title: \"Clave de interfaz\",\n SubTitle: \"Usa una clave API de ByteDance personalizada\",\n Placeholder: \"Clave API de ByteDance\"\n },\n Endpoint: {\n Title: \"Direcci\\xf3n del endpoint\",\n SubTitle: \"Ejemplo:\"\n }\n },\n Alibaba: {\n ApiKey: {\n Title: \"Clave de interfaz\",\n SubTitle: \"Usa una clave API de Alibaba Cloud personalizada\",\n Placeholder: \"Clave API de Alibaba Cloud\"\n },\n Endpoint: {\n Title: \"Direcci\\xf3n del endpoint\",\n SubTitle: \"Ejemplo:\"\n }\n },\n CustomModel: {\n Title: \"Nombre del modelo personalizado\",\n SubTitle: \"Agrega opciones de modelos personalizados, separados por comas\"\n }\n },\n Model: \"Modelo (model)\",\n CompressModel: {\n Title: \"Modelo de compresi\\xf3n\",\n SubTitle: \"Modelo utilizado para comprimir el historial\"\n },\n Temperature: {\n Title: \"Aleatoriedad (temperature)\",\n SubTitle: \"Cuanto mayor sea el valor, m\\xe1s aleatorio ser\\xe1 el resultado\"\n },\n TopP: {\n Title: \"Muestreo por n\\xfacleo (top_p)\",\n SubTitle: \"Similar a la aleatoriedad, pero no cambies ambos a la vez\"\n },\n MaxTokens: {\n Title: \"L\\xedmite de tokens por respuesta (max_tokens)\",\n SubTitle: \"N\\xfamero m\\xe1ximo de tokens utilizados en una sola interacci\\xf3n\"\n },\n PresencePenalty: {\n Title: \"Novedad de temas (presence_penalty)\",\n SubTitle: \"Cuanto mayor sea el valor, m\\xe1s probable es que se ampl\\xeden a nuevos temas\"\n },\n FrequencyPenalty: {\n Title: \"Penalizaci\\xf3n de frecuencia (frequency_penalty)\",\n SubTitle: \"Cuanto mayor sea el valor, m\\xe1s probable es que se reduzcan las palabras repetidas\"\n }\n },\n Store: {\n DefaultTopic: \"Nuevo chat\",\n BotHello: \"\\xbfEn qu\\xe9 puedo ayudarte?\",\n Error: \"Hubo un error, int\\xe9ntalo de nuevo m\\xe1s tarde\",\n Prompt: {\n History: (content)=>\"Este es un resumen del chat hist\\xf3rico como referencia: \" + content,\n Topic: \"Devuelve un tema breve de esta frase en cuatro a cinco palabras, sin explicaci\\xf3n, sin puntuaci\\xf3n, sin muletillas, sin texto adicional, sin negritas. Si no hay tema, devuelve 'charlas casuales'\",\n Summarize: \"Resume brevemente el contenido de la conversaci\\xf3n para usar como un prompt de contexto, manteni\\xe9ndolo dentro de 200 palabras\"\n }\n },\n Copy: {\n Success: \"Copiado al portapapeles\",\n Failed: \"Error al copiar, por favor otorga permisos al portapapeles\"\n },\n Download: {\n Success: \"Contenido descargado en tu directorio.\",\n Failed: \"Error al descargar.\"\n },\n Context: {\n Toast: (x)=>`Contiene ${x} prompts predefinidos`,\n Edit: \"Configuraci\\xf3n del chat actual\",\n Add: \"Agregar una conversaci\\xf3n\",\n Clear: \"Contexto borrado\",\n Revert: \"Restaurar contexto\"\n },\n Plugin: {\n Name: \"Complemento\"\n },\n FineTuned: {\n Sysmessage: \"Eres un asistente\"\n },\n SearchChat: {\n Name: \"Buscar\",\n Page: {\n Title: \"Buscar en el historial de chat\",\n Search: \"Ingrese la palabra clave de b\\xfasqueda\",\n NoResult: \"No se encontraron resultados\",\n NoData: \"Sin datos\",\n Loading: \"Cargando\",\n SubTitle: (count)=>`Se encontraron ${count} resultados`\n },\n Item: {\n View: \"Ver\"\n }\n },\n Mask: {\n Name: \"M\\xe1scara\",\n Page: {\n Title: \"M\\xe1scaras de rol predefinidas\",\n SubTitle: (count)=>`${count} definiciones de rol predefinidas`,\n Search: \"Buscar m\\xe1scara de rol\",\n Create: \"Crear nuevo\"\n },\n Item: {\n Info: (count)=>`Contiene ${count} conversaciones predefinidas`,\n Chat: \"Chat\",\n View: \"Ver\",\n Edit: \"Editar\",\n Delete: \"Eliminar\",\n DeleteConfirm: \"\\xbfConfirmar eliminaci\\xf3n?\"\n },\n EditModal: {\n Title: (readonly)=>`Editar máscara predefinida ${readonly ? \"(solo lectura)\" : \"\"}`,\n Download: \"Descargar predefinido\",\n Clone: \"Clonar predefinido\"\n },\n Config: {\n Avatar: \"Avatar del rol\",\n Name: \"Nombre del rol\",\n Sync: {\n Title: \"Usar configuraci\\xf3n global\",\n SubTitle: \"\\xbfUsar la configuraci\\xf3n global del modelo para la conversaci\\xf3n actual?\",\n Confirm: \"La configuraci\\xf3n personalizada de la conversaci\\xf3n actual se sobrescribir\\xe1 autom\\xe1ticamente, \\xbfconfirmar habilitar la configuraci\\xf3n global?\"\n },\n HideContext: {\n Title: \"Ocultar conversaciones predefinidas\",\n SubTitle: \"Las conversaciones predefinidas ocultas no aparecer\\xe1n en la interfaz de chat\"\n },\n Share: {\n Title: \"Compartir esta m\\xe1scara\",\n SubTitle: \"Generar un enlace directo a esta m\\xe1scara\",\n Action: \"Copiar enlace\"\n }\n }\n },\n NewChat: {\n Return: \"Regresar\",\n Skip: \"Comenzar ahora\",\n NotShow: \"No mostrar m\\xe1s\",\n ConfirmNoShow: \"\\xbfConfirmar desactivaci\\xf3n? Puedes reactivar en la configuraci\\xf3n en cualquier momento.\",\n Title: \"Selecciona una m\\xe1scara\",\n SubTitle: \"Comienza ahora y colisiona con la mente detr\\xe1s de la m\\xe1scara\",\n More: \"Ver todo\"\n },\n URLCommand: {\n Code: \"Detectado un c\\xf3digo de acceso en el enlace, \\xbfdeseas autocompletarlo?\",\n Settings: \"Detectada configuraci\\xf3n predefinida en el enlace, \\xbfdeseas autocompletarla?\"\n },\n UI: {\n Confirm: \"Confirmar\",\n Cancel: \"Cancelar\",\n Close: \"Cerrar\",\n Create: \"Crear\",\n Edit: \"Editar\",\n Export: \"Exportar\",\n Import: \"Importar\",\n Sync: \"Sincronizar\",\n Config: \"Configurar\"\n },\n Exporter: {\n Description: {\n Title: \"Solo se mostrar\\xe1n los mensajes despu\\xe9s de borrar el contexto\"\n },\n Model: \"Modelo\",\n Messages: \"Mensajes\",\n Topic: \"Tema\",\n Time: \"Hora\"\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (es);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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VTtRQUNWdUwsTUFBTTtJQUNSO0lBRUFDLFlBQVk7UUFDVkMsTUFBTTtRQUNOeEosVUFDRTtJQUNKO0lBRUF5SixJQUFJO1FBQ0ZuTSxTQUFTO1FBQ1RvTSxRQUFRO1FBQ1JDLE9BQU87UUFDUGQsUUFBUTtRQUNSaEssTUFBTTtRQUNOUixRQUFRO1FBQ1J1TCxRQUFRO1FBQ1JsRyxNQUFNO1FBQ05qRCxRQUFRO0lBQ1Y7SUFDQW9KLFVBQVU7UUFDUkMsYUFBYTtZQUNYNU0sT0FBTztRQUNUO1FBQ0FrSyxPQUFPO1FBQ1AyQyxVQUFVO1FBQ1Y5TCxPQUFPO1FBQ1ArTCxNQUFNO0lBQ1I7QUFDRjtBQUVBLGlFQUFlbk4sRUFBRUEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2xvY2FsZXMvZXMudHM/NjAzOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJtaXRLZXkgfSBmcm9tIFwiLi4vc3RvcmUvY29uZmlnXCI7XHJcbmltcG9ydCB0eXBlIHsgUGFydGlhbExvY2FsZVR5cGUgfSBmcm9tIFwiLi9pbmRleFwiO1xyXG5pbXBvcnQgeyBnZXRDbGllbnRDb25maWcgfSBmcm9tIFwiLi4vY29uZmlnL2NsaWVudFwiO1xyXG5pbXBvcnQgeyBTQUFTX0NIQVRfVVRNX1VSTCB9IGZyb20gXCJAL2FwcC9jb25zdGFudFwiO1xyXG5jb25zdCBpc0FwcCA9ICEhZ2V0Q2xpZW50Q29uZmlnKCk/LmlzQXBwO1xyXG5cclxuY29uc3QgZXM6IFBhcnRpYWxMb2NhbGVUeXBlID0ge1xyXG4gIFdJUDogXCJFbiBjb25zdHJ1Y2Npw7NuLi4uXCIsXHJcbiAgRXJyb3I6IHtcclxuICAgIFVuYXV0aG9yaXplZDogaXNBcHBcclxuICAgICAgPyBg8J+YhiBMYSBjb252ZXJzYWNpw7NuIGVuY29udHLDsyBhbGd1bm9zIHByb2JsZW1hcywgbm8gdGUgcHJlb2N1cGVzOlxyXG4gICAgXFxcXCAx77iP4oOjIFNpIGRlc2VhcyBjb21lbnphciBzaW4gY29uZmlndXJhY2nDs24sIFtoYXogY2xpYyBhcXXDrSBwYXJhIGVtcGV6YXIgYSBjaGF0ZWFyIGlubWVkaWF0YW1lbnRlIPCfmoBdKCR7U0FBU19DSEFUX1VUTV9VUkx9KVxyXG4gICAgXFxcXCAy77iP4oOjIFNpIGRlc2VhcyB1c2FyIHR1cyBwcm9waW9zIHJlY3Vyc29zIGRlIE9wZW5BSSwgaGF6IGNsaWMgW2FxdcOtXSgvIy9zZXR0aW5ncykgcGFyYSBtb2RpZmljYXIgbGEgY29uZmlndXJhY2nDs24g4pqZ77iPYFxyXG4gICAgICA6IGDwn5iGIExhIGNvbnZlcnNhY2nDs24gZW5jb250csOzIGFsZ3Vub3MgcHJvYmxlbWFzLCBubyB0ZSBwcmVvY3VwZXM6XHJcbiAgICBcXCAx77iP4oOjIFNpIGRlc2VhcyBjb21lbnphciBzaW4gY29uZmlndXJhY2nDs24sIFtoYXogY2xpYyBhcXXDrSBwYXJhIGVtcGV6YXIgYSBjaGF0ZWFyIGlubWVkaWF0YW1lbnRlIPCfmoBdKCR7U0FBU19DSEFUX1VUTV9VUkx9KVxyXG4gICAgXFwgMu+4j+KDoyBTaSBlc3TDoXMgdXRpbGl6YW5kbyB1bmEgdmVyc2nDs24gZGUgaW1wbGVtZW50YWNpw7NuIHByaXZhZGEsIGhheiBjbGljIFthcXXDrV0oLyMvYXV0aCkgcGFyYSBpbmdyZXNhciBsYSBjbGF2ZSBkZSBhY2Nlc28g8J+UkVxyXG4gICAgXFwgM++4j+KDoyBTaSBkZXNlYXMgdXNhciB0dXMgcHJvcGlvcyByZWN1cnNvcyBkZSBPcGVuQUksIGhheiBjbGljIFthcXXDrV0oLyMvc2V0dGluZ3MpIHBhcmEgbW9kaWZpY2FyIGxhIGNvbmZpZ3VyYWNpw7NuIOKame+4j1xyXG4gYCxcclxuICB9LFxyXG4gIEF1dGg6IHtcclxuICAgIFRpdGxlOiBcIlNlIHJlcXVpZXJlIGNvbnRyYXNlw7FhXCIsXHJcbiAgICBUaXBzOiBcIkVsIGFkbWluaXN0cmFkb3IgaGEgaGFiaWxpdGFkbyBsYSB2ZXJpZmljYWNpw7NuIGRlIGNvbnRyYXNlw7FhLiBJbnRyb2R1Y2UgZWwgY8OzZGlnbyBkZSBhY2Nlc28gYSBjb250aW51YWNpw7NuXCIsXHJcbiAgICBTdWJUaXBzOiBcIk8gaW5ncmVzYSB0dSBjbGF2ZSBBUEkgZGUgT3BlbkFJIG8gR29vZ2xlXCIsXHJcbiAgICBJbnB1dDogXCJJbnRyb2R1Y2UgZWwgY8OzZGlnbyBkZSBhY2Nlc28gYXF1w61cIixcclxuICAgIENvbmZpcm06IFwiQ29uZmlybWFyXCIsXHJcbiAgICBMYXRlcjogXCJNw6FzIHRhcmRlXCIsXHJcbiAgICBSZXR1cm46IFwiUmVncmVzYXJcIixcclxuICAgIFNhYXNUaXBzOlxyXG4gICAgICBcIkxhIGNvbmZpZ3VyYWNpw7NuIGVzIGRlbWFzaWFkbyBjb21wbGljYWRhLCBxdWllcm8gdXNhcmxvIGRlIGlubWVkaWF0b1wiLFxyXG4gICAgVG9wVGlwczpcclxuICAgICAgXCLwn6WzIE9mZXJ0YSBkZSBsYW56YW1pZW50byBkZSBOZXh0Q2hhdCBBSSwgZGVzYmxvcXVlYSBPcGVuQUkgbzEsIEdQVC00bywgQ2xhdWRlLTMuNSB5IGxvcyDDumx0aW1vcyBncmFuZGVzIG1vZGVsb3NcIixcclxuICB9LFxyXG4gIENoYXRJdGVtOiB7XHJcbiAgICBDaGF0SXRlbUNvdW50OiAoY291bnQ6IG51bWJlcikgPT4gYCR7Y291bnR9IGNvbnZlcnNhY2lvbmVzYCxcclxuICB9LFxyXG4gIENoYXQ6IHtcclxuICAgIFN1YlRpdGxlOiAoY291bnQ6IG51bWJlcikgPT4gYFRvdGFsIGRlICR7Y291bnR9IGNvbnZlcnNhY2lvbmVzYCxcclxuICAgIEVkaXRNZXNzYWdlOiB7XHJcbiAgICAgIFRpdGxlOiBcIkVkaXRhciByZWdpc3RybyBkZSBtZW5zYWplc1wiLFxyXG4gICAgICBUb3BpYzoge1xyXG4gICAgICAgIFRpdGxlOiBcIlRlbWEgZGUgbGEgY29udmVyc2FjacOzblwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIkNhbWJpYXIgZWwgdGVtYSBkZSBsYSBjb252ZXJzYWNpw7NuIGFjdHVhbFwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIEFjdGlvbnM6IHtcclxuICAgICAgQ2hhdExpc3Q6IFwiVmVyIGxpc3RhIGRlIG1lbnNhamVzXCIsXHJcbiAgICAgIENvbXByZXNzZWRIaXN0b3J5OiBcIlZlciBoaXN0b3JpYWwgZGUgUHJvbXB0cyBjb21wcmltaWRvc1wiLFxyXG4gICAgICBFeHBvcnQ6IFwiRXhwb3J0YXIgaGlzdG9yaWFsIGRlIGNoYXRcIixcclxuICAgICAgQ29weTogXCJDb3BpYXJcIixcclxuICAgICAgU3RvcDogXCJEZXRlbmVyXCIsXHJcbiAgICAgIFJldHJ5OiBcIlJlaW50ZW50YXJcIixcclxuICAgICAgUGluOiBcIkZpamFyXCIsXHJcbiAgICAgIFBpblRvYXN0Q29udGVudDpcclxuICAgICAgICBcIlNlIGhhIGZpamFkbyAxIGNvbnZlcnNhY2nDs24gYSBsb3MgcHJvbXB0cyBwcmVkZXRlcm1pbmFkb3NcIixcclxuICAgICAgUGluVG9hc3RBY3Rpb246IFwiVmVyXCIsXHJcbiAgICAgIERlbGV0ZTogXCJFbGltaW5hclwiLFxyXG4gICAgICBFZGl0OiBcIkVkaXRhclwiLFxyXG4gICAgICBSZWZyZXNoVGl0bGU6IFwiQWN0dWFsaXphciB0w610dWxvXCIsXHJcbiAgICAgIFJlZnJlc2hUb2FzdDogXCJTZSBoYSBlbnZpYWRvIGxhIHNvbGljaXR1ZCBkZSBhY3R1YWxpemFjacOzbiBkZWwgdMOtdHVsb1wiLFxyXG4gICAgfSxcclxuICAgIENvbW1hbmRzOiB7XHJcbiAgICAgIG5ldzogXCJOdWV2YSBjb252ZXJzYWNpw7NuXCIsXHJcbiAgICAgIG5ld206IFwiTnVldmEgY29udmVyc2FjacOzbiBkZXNkZSBsYSBtw6FzY2FyYVwiLFxyXG4gICAgICBuZXh0OiBcIlNpZ3VpZW50ZSBjb252ZXJzYWNpw7NuXCIsXHJcbiAgICAgIHByZXY6IFwiQ29udmVyc2FjacOzbiBhbnRlcmlvclwiLFxyXG4gICAgICBjbGVhcjogXCJMaW1waWFyIGNvbnRleHRvXCIsXHJcbiAgICAgIGRlbDogXCJFbGltaW5hciBjb252ZXJzYWNpw7NuXCIsXHJcbiAgICB9LFxyXG4gICAgSW5wdXRBY3Rpb25zOiB7XHJcbiAgICAgIFN0b3A6IFwiRGV0ZW5lciByZXNwdWVzdGFcIixcclxuICAgICAgVG9Cb3R0b206IFwiSXIgYWwgbcOhcyByZWNpZW50ZVwiLFxyXG4gICAgICBUaGVtZToge1xyXG4gICAgICAgIGF1dG86IFwiVGVtYSBhdXRvbcOhdGljb1wiLFxyXG4gICAgICAgIGxpZ2h0OiBcIk1vZG8gY2xhcm9cIixcclxuICAgICAgICBkYXJrOiBcIk1vZG8gb3NjdXJvXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFByb21wdDogXCJDb21hbmRvcyByw6FwaWRvc1wiLFxyXG4gICAgICBNYXNrczogXCJUb2RhcyBsYXMgbcOhc2NhcmFzXCIsXHJcbiAgICAgIENsZWFyOiBcIkxpbXBpYXIgY2hhdFwiLFxyXG4gICAgICBTZXR0aW5nczogXCJDb25maWd1cmFjacOzbiBkZSBjb252ZXJzYWNpw7NuXCIsXHJcbiAgICAgIFVwbG9hZEltYWdlOiBcIlN1YmlyIGltYWdlblwiLFxyXG4gICAgfSxcclxuICAgIFJlbmFtZTogXCJSZW5vbWJyYXIgY29udmVyc2FjacOzblwiLFxyXG4gICAgVHlwaW5nOiBcIkVzY3JpYmllbmRv4oCmXCIsXHJcbiAgICBJbnB1dDogKHN1Ym1pdEtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHZhciBpbnB1dEhpbnRzID0gYCR7c3VibWl0S2V5fSBwYXJhIGVudmlhcmA7XHJcbiAgICAgIGlmIChzdWJtaXRLZXkgPT09IFN0cmluZyhTdWJtaXRLZXkuRW50ZXIpKSB7XHJcbiAgICAgICAgaW5wdXRIaW50cyArPSBcIu+8jFNoaWZ0ICsgRW50ZXIgcGFyYSBudWV2YSBsw61uZWFcIjtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIGlucHV0SGludHMgKyBcIu+8jC8gcGFyYSBhY3RpdmFyIGF1dG9jb21wbGV0YWRv77yMOiBwYXJhIGFjdGl2YXIgY29tYW5kb3NcIlxyXG4gICAgICApO1xyXG4gICAgfSxcclxuICAgIFNlbmQ6IFwiRW52aWFyXCIsXHJcbiAgICBDb25maWc6IHtcclxuICAgICAgUmVzZXQ6IFwiQm9ycmFyIG1lbW9yaWFcIixcclxuICAgICAgU2F2ZUFzOiBcIkd1YXJkYXIgY29tbyBtw6FzY2FyYVwiLFxyXG4gICAgfSxcclxuICAgIElzQ29udGV4dDogXCJQcm9tcHQgcHJlZGV0ZXJtaW5hZG9cIixcclxuICB9LFxyXG4gIEV4cG9ydDoge1xyXG4gICAgVGl0bGU6IFwiQ29tcGFydGlyIGhpc3RvcmlhbCBkZSBjaGF0XCIsXHJcbiAgICBDb3B5OiBcIkNvcGlhciB0b2RvXCIsXHJcbiAgICBEb3dubG9hZDogXCJEZXNjYXJnYXIgYXJjaGl2b1wiLFxyXG4gICAgU2hhcmU6IFwiQ29tcGFydGlyIGVuIFNoYXJlR1BUXCIsXHJcbiAgICBNZXNzYWdlRnJvbVlvdTogXCJVc3VhcmlvXCIsXHJcbiAgICBNZXNzYWdlRnJvbUNoYXRHUFQ6IFwiQ2hhdEdQVFwiLFxyXG4gICAgRm9ybWF0OiB7XHJcbiAgICAgIFRpdGxlOiBcIkZvcm1hdG8gZGUgZXhwb3J0YWNpw7NuXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIlB1ZWRlcyBleHBvcnRhciBjb21vIHRleHRvIE1hcmtkb3duIG8gaW1hZ2VuIFBOR1wiLFxyXG4gICAgfSxcclxuICAgIEluY2x1ZGVDb250ZXh0OiB7XHJcbiAgICAgIFRpdGxlOiBcIkluY2x1aXIgY29udGV4dG8gZGUgbcOhc2NhcmFcIixcclxuICAgICAgU3ViVGl0bGU6IFwiTW9zdHJhciBjb250ZXh0byBkZSBtw6FzY2FyYSBlbiBsb3MgbWVuc2FqZXNcIixcclxuICAgIH0sXHJcbiAgICBTdGVwczoge1xyXG4gICAgICBTZWxlY3Q6IFwiU2VsZWNjaW9uYXJcIixcclxuICAgICAgUHJldmlldzogXCJWaXN0YSBwcmV2aWFcIixcclxuICAgIH0sXHJcbiAgICBJbWFnZToge1xyXG4gICAgICBUb2FzdDogXCJHZW5lcmFuZG8gY2FwdHVyYSBkZSBwYW50YWxsYVwiLFxyXG4gICAgICBNb2RhbDogXCJNYW50w6luIHByZXNpb25hZG8gbyBoYXogY2xpYyBkZXJlY2hvIHBhcmEgZ3VhcmRhciBsYSBpbWFnZW5cIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBTZWxlY3Q6IHtcclxuICAgIFNlYXJjaDogXCJCdXNjYXIgbWVuc2FqZXNcIixcclxuICAgIEFsbDogXCJTZWxlY2Npb25hciB0b2RvXCIsXHJcbiAgICBMYXRlc3Q6IFwiw5psdGltb3MgbWVuc2FqZXNcIixcclxuICAgIENsZWFyOiBcIkxpbXBpYXIgc2VsZWNjacOzblwiLFxyXG4gIH0sXHJcbiAgTWVtb3J5OiB7XHJcbiAgICBUaXRsZTogXCJSZXN1bWVuIGhpc3TDs3JpY29cIixcclxuICAgIEVtcHR5Q29udGVudDpcclxuICAgICAgXCJFbCBjb250ZW5pZG8gZGUgbGEgY29udmVyc2FjacOzbiBlcyBkZW1hc2lhZG8gY29ydG8gcGFyYSByZXN1bWlyXCIsXHJcbiAgICBTZW5kOiBcIkNvbXByaW1pciBhdXRvbcOhdGljYW1lbnRlIGVsIGhpc3RvcmlhbCBkZSBjaGF0IHkgZW52aWFybG8gY29tbyBjb250ZXh0b1wiLFxyXG4gICAgQ29weTogXCJDb3BpYXIgcmVzdW1lblwiLFxyXG4gICAgUmVzZXQ6IFwiW25vIHVzYWRvXVwiLFxyXG4gICAgUmVzZXRDb25maXJtOiBcIsK/Q29uZmlybWFyIHBhcmEgYm9ycmFyIGVsIHJlc3VtZW4gaGlzdMOzcmljbz9cIixcclxuICB9LFxyXG4gIEhvbWU6IHtcclxuICAgIE5ld0NoYXQ6IFwiTnVldmEgY29udmVyc2FjacOzblwiLFxyXG4gICAgRGVsZXRlQ2hhdDogXCLCv0NvbmZpcm1hciBsYSBlbGltaW5hY2nDs24gZGUgbGEgY29udmVyc2FjacOzbiBzZWxlY2Npb25hZGE/XCIsXHJcbiAgICBEZWxldGVUb2FzdDogXCJDb252ZXJzYWNpw7NuIGVsaW1pbmFkYVwiLFxyXG4gICAgUmV2ZXJ0OiBcIkRlc2hhY2VyXCIsXHJcbiAgfSxcclxuICBTZXR0aW5nczoge1xyXG4gICAgVGl0bGU6IFwiQ29uZmlndXJhY2nDs25cIixcclxuICAgIFN1YlRpdGxlOiBcIlRvZGFzIGxhcyBvcGNpb25lcyBkZSBjb25maWd1cmFjacOzblwiLFxyXG5cclxuICAgIERhbmdlcjoge1xyXG4gICAgICBSZXNldDoge1xyXG4gICAgICAgIFRpdGxlOiBcIlJlc3RhYmxlY2VyIHRvZGFzIGxhcyBjb25maWd1cmFjaW9uZXNcIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiUmVzdGFibGVjZXIgdG9kYXMgbGFzIGNvbmZpZ3VyYWNpb25lcyBhIGxvcyB2YWxvcmVzIHByZWRldGVybWluYWRvc1wiLFxyXG4gICAgICAgIEFjdGlvbjogXCJSZXN0YWJsZWNlciBhaG9yYVwiLFxyXG4gICAgICAgIENvbmZpcm06IFwiwr9Db25maXJtYXIgZWwgcmVzdGFibGVjaW1pZW50byBkZSB0b2RhcyBsYXMgY29uZmlndXJhY2lvbmVzP1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBDbGVhcjoge1xyXG4gICAgICAgIFRpdGxlOiBcIkVsaW1pbmFyIHRvZG9zIGxvcyBkYXRvc1wiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIkVsaW1pbmFyIHRvZG9zIGxvcyBjaGF0cyB5IGRhdG9zIGRlIGNvbmZpZ3VyYWNpw7NuXCIsXHJcbiAgICAgICAgQWN0aW9uOiBcIkVsaW1pbmFyIGFob3JhXCIsXHJcbiAgICAgICAgQ29uZmlybTpcclxuICAgICAgICAgIFwiwr9Db25maXJtYXIgbGEgZWxpbWluYWNpw7NuIGRlIHRvZG9zIGxvcyBjaGF0cyB5IGRhdG9zIGRlIGNvbmZpZ3VyYWNpw7NuP1wiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIExhbmc6IHtcclxuICAgICAgTmFtZTogXCJMYW5ndWFnZVwiLCAvLyBBVEVOQ0nDk046IHNpIGRlc2VhcyBhZ3JlZ2FyIHVuYSBudWV2YSB0cmFkdWNjacOzbiwgcG9yIGZhdm9yIG5vIHRyYWR1emNhcyBlc3RlIHZhbG9yLCBkw6lqYWxvIGNvbW8gYExhbmd1YWdlYFxyXG4gICAgICBBbGw6IFwiVG9kb3MgbG9zIGlkaW9tYXNcIixcclxuICAgIH0sXHJcbiAgICBBdmF0YXI6IFwiQXZhdGFyXCIsXHJcbiAgICBGb250U2l6ZToge1xyXG4gICAgICBUaXRsZTogXCJUYW1hw7FvIGRlIGZ1ZW50ZVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJUYW1hw7FvIGRlIGxhIGZ1ZW50ZSBkZWwgY29udGVuaWRvIGRlbCBjaGF0XCIsXHJcbiAgICB9LFxyXG4gICAgRm9udEZhbWlseToge1xyXG4gICAgICBUaXRsZTogXCJGdWVudGUgZGVsIENoYXRcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJGdWVudGUgZGVsIGNvbnRlbmlkbyBkZWwgY2hhdCwgZGVqYXIgdmFjw61vIHBhcmEgYXBsaWNhciBsYSBmdWVudGUgcHJlZGV0ZXJtaW5hZGEgZ2xvYmFsXCIsXHJcbiAgICAgIFBsYWNlaG9sZGVyOiBcIk5vbWJyZSBkZSBsYSBGdWVudGVcIixcclxuICAgIH0sXHJcbiAgICBJbmplY3RTeXN0ZW1Qcm9tcHRzOiB7XHJcbiAgICAgIFRpdGxlOiBcIklueWVjdGFyIG1lbnNhamVzIGRlbCBzaXN0ZW1hXCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwiRm9yemFyIGxhIGFkaWNpw7NuIGRlIHVuIG1lbnNhamUgZGVsIHNpc3RlbWEgc2ltdWxhZG8gZGUgQ2hhdEdQVCBhbCBwcmluY2lwaW8gZGUgY2FkYSBsaXN0YSBkZSBtZW5zYWplc1wiLFxyXG4gICAgfSxcclxuICAgIElucHV0VGVtcGxhdGU6IHtcclxuICAgICAgVGl0bGU6IFwiUHJlcHJvY2VzYW1pZW50byBkZSBlbnRyYWRhIGRlbCB1c3VhcmlvXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIkVsIMO6bHRpbW8gbWVuc2FqZSBkZWwgdXN1YXJpbyBzZSByZWxsZW5hcsOhIGVuIGVzdGEgcGxhbnRpbGxhXCIsXHJcbiAgICB9LFxyXG5cclxuICAgIFVwZGF0ZToge1xyXG4gICAgICBWZXJzaW9uOiAoeDogc3RyaW5nKSA9PiBgVmVyc2nDs24gYWN0dWFsOiAke3h9YCxcclxuICAgICAgSXNMYXRlc3Q6IFwiWWEgZXN0w6FzIGVuIGxhIMO6bHRpbWEgdmVyc2nDs25cIixcclxuICAgICAgQ2hlY2tVcGRhdGU6IFwiQnVzY2FyIGFjdHVhbGl6YWNpb25lc1wiLFxyXG4gICAgICBJc0NoZWNraW5nOiBcIkJ1c2NhbmRvIGFjdHVhbGl6YWNpb25lcy4uLlwiLFxyXG4gICAgICBGb3VuZFVwZGF0ZTogKHg6IHN0cmluZykgPT4gYE51ZXZhIHZlcnNpw7NuIGVuY29udHJhZGE6ICR7eH1gLFxyXG4gICAgICBHb1RvVXBkYXRlOiBcIklyIGEgYWN0dWFsaXphclwiLFxyXG4gICAgfSxcclxuICAgIFNlbmRLZXk6IFwiVGVjbGEgZGUgZW52aWFyXCIsXHJcbiAgICBUaGVtZTogXCJUZW1hXCIsXHJcbiAgICBUaWdodEJvcmRlcjogXCJNb2RvIHNpbiBib3JkZVwiLFxyXG4gICAgU2VuZFByZXZpZXdCdWJibGU6IHtcclxuICAgICAgVGl0bGU6IFwiVmlzdGEgcHJldmlhIGRlbCBnbG9ib1wiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIlByZXZpc3VhbGl6YSBlbCBjb250ZW5pZG8gTWFya2Rvd24gZW4gdW4gZ2xvYm8gZGUgdmlzdGEgcHJldmlhXCIsXHJcbiAgICB9LFxyXG4gICAgQXV0b0dlbmVyYXRlVGl0bGU6IHtcclxuICAgICAgVGl0bGU6IFwiR2VuZXJhciB0w610dWxvIGF1dG9tw6F0aWNhbWVudGVcIixcclxuICAgICAgU3ViVGl0bGU6IFwiR2VuZXJhciB1biB0w610dWxvIGFkZWN1YWRvIGJhc2FkbyBlbiBlbCBjb250ZW5pZG8gZGVsIGNoYXRcIixcclxuICAgIH0sXHJcbiAgICBTeW5jOiB7XHJcbiAgICAgIENsb3VkU3RhdGU6IFwiRGF0b3MgZW4gbGEgbnViZVwiLFxyXG4gICAgICBOb3RTeW5jWWV0OiBcIkHDum4gbm8gc2UgaGEgc2luY3Jvbml6YWRvXCIsXHJcbiAgICAgIFN1Y2Nlc3M6IFwiU2luY3Jvbml6YWNpw7NuIGV4aXRvc2FcIixcclxuICAgICAgRmFpbDogXCJTaW5jcm9uaXphY2nDs24gZmFsbGlkYVwiLFxyXG5cclxuICAgICAgQ29uZmlnOiB7XHJcbiAgICAgICAgTW9kYWw6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkNvbmZpZ3VyYXIgc2luY3Jvbml6YWNpw7NuIGVuIGxhIG51YmVcIixcclxuICAgICAgICAgIENoZWNrOiBcIlZlcmlmaWNhciBkaXNwb25pYmlsaWRhZFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgU3luY1R5cGU6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlRpcG8gZGUgc2luY3Jvbml6YWNpw7NuXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJTZWxlY2Npb25hIGVsIHNlcnZpZG9yIGRlIHNpbmNyb25pemFjacOzbiBwcmVmZXJpZG9cIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFByb3h5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJIYWJpbGl0YXIgcHJveHlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgICBcIkRlYmVzIGhhYmlsaXRhciBlbCBwcm94eSBwYXJhIHNpbmNyb25pemFyIGVuIGVsIG5hdmVnYWRvciB5IGV2aXRhciByZXN0cmljY2lvbmVzIGRlIENPUlNcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFByb3h5VXJsOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJEaXJlY2Npw7NuIGRlbCBwcm94eVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiU29sbyBwYXJhIGVsIHByb3h5IENPUlMgaW5jbHVpZG8gZW4gZXN0ZSBwcm95ZWN0b1wiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIFdlYkRhdjoge1xyXG4gICAgICAgICAgRW5kcG9pbnQ6IFwiRGlyZWNjacOzbiBXZWJEQVZcIixcclxuICAgICAgICAgIFVzZXJOYW1lOiBcIk5vbWJyZSBkZSB1c3VhcmlvXCIsXHJcbiAgICAgICAgICBQYXNzd29yZDogXCJDb250cmFzZcOxYVwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIFVwU3Rhc2g6IHtcclxuICAgICAgICAgIEVuZHBvaW50OiBcIlVSTCBkZSBSRVNUIGRlIFVwU3Rhc2ggUmVkaXNcIixcclxuICAgICAgICAgIFVzZXJOYW1lOiBcIk5vbWJyZSBkZSByZXNwYWxkb1wiLFxyXG4gICAgICAgICAgUGFzc3dvcmQ6IFwiVG9rZW4gZGUgUkVTVCBkZSBVcFN0YXNoIFJlZGlzXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuXHJcbiAgICAgIExvY2FsU3RhdGU6IFwiRGF0b3MgbG9jYWxlc1wiLFxyXG4gICAgICBPdmVydmlldzogKG92ZXJ2aWV3OiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gYCR7b3ZlcnZpZXcuY2hhdH0gY29udmVyc2FjaW9uZXMsICR7b3ZlcnZpZXcubWVzc2FnZX0gbWVuc2FqZXMsICR7b3ZlcnZpZXcucHJvbXB0fSBwcm9tcHRzLCAke292ZXJ2aWV3Lm1hc2t9IG3DoXNjYXJhc2A7XHJcbiAgICAgIH0sXHJcbiAgICAgIEltcG9ydEZhaWxlZDogXCJJbXBvcnRhY2nDs24gZmFsbGlkYVwiLFxyXG4gICAgfSxcclxuICAgIE1hc2s6IHtcclxuICAgICAgU3BsYXNoOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiUGFudGFsbGEgZGUgaW5pY2lvIGRlIG3DoXNjYXJhXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIk1vc3RyYXIgbGEgcGFudGFsbGEgZGUgaW5pY2lvIGRlIGxhIG3DoXNjYXJhIGFsIGluaWNpYXIgdW4gbnVldm8gY2hhdFwiLFxyXG4gICAgICB9LFxyXG4gICAgICBCdWlsdGluOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiT2N1bHRhciBtw6FzY2FyYXMgaW50ZWdyYWRhc1wiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCJPY3VsdGFyIGxhcyBtw6FzY2FyYXMgaW50ZWdyYWRhcyBlbiB0b2RhcyBsYXMgbGlzdGFzIGRlIG3DoXNjYXJhc1wiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIFByb21wdDoge1xyXG4gICAgICBEaXNhYmxlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiRGVzaGFiaWxpdGFyIGF1dG9jb21wbGV0YWRvIGRlIHByb21wdHNcIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiRXNjcmliZSAvIGFsIHByaW5jaXBpbyBkZWwgY2FtcG8gZGUgZW50cmFkYSBwYXJhIGFjdGl2YXIgZWwgYXV0b2NvbXBsZXRhZG9cIixcclxuICAgICAgfSxcclxuICAgICAgTGlzdDogXCJMaXN0YSBkZSBwcm9tcHRzIHBlcnNvbmFsaXphZG9zXCIsXHJcbiAgICAgIExpc3RDb3VudDogKGJ1aWx0aW46IG51bWJlciwgY3VzdG9tOiBudW1iZXIpID0+XHJcbiAgICAgICAgYEludGVncmFkb3MgJHtidWlsdGlufSwgZGVmaW5pZG9zIHBvciBlbCB1c3VhcmlvICR7Y3VzdG9tfWAsXHJcbiAgICAgIEVkaXQ6IFwiRWRpdGFyXCIsXHJcbiAgICAgIE1vZGFsOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiTGlzdGEgZGUgcHJvbXB0c1wiLFxyXG4gICAgICAgIEFkZDogXCJOdWV2b1wiLFxyXG4gICAgICAgIFNlYXJjaDogXCJCdXNjYXIgcHJvbXB0c1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBFZGl0TW9kYWw6IHtcclxuICAgICAgICBUaXRsZTogXCJFZGl0YXIgcHJvbXB0XCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgSGlzdG9yeUNvdW50OiB7XHJcbiAgICAgIFRpdGxlOiBcIk7Dum1lcm8gZGUgbWVuc2FqZXMgaGlzdMOzcmljb3MgYWRqdW50b3NcIixcclxuICAgICAgU3ViVGl0bGU6IFwiTsO6bWVybyBkZSBtZW5zYWplcyBoaXN0w7NyaWNvcyBlbnZpYWRvcyBjb24gY2FkYSBzb2xpY2l0dWRcIixcclxuICAgIH0sXHJcbiAgICBDb21wcmVzc1RocmVzaG9sZDoge1xyXG4gICAgICBUaXRsZTogXCJVbWJyYWwgZGUgY29tcHJlc2nDs24gZGUgbWVuc2FqZXMgaGlzdMOzcmljb3NcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJDdWFuZG8gbG9zIG1lbnNhamVzIGhpc3TDs3JpY29zIG5vIGNvbXByaW1pZG9zIHN1cGVyYW4gZXN0ZSB2YWxvciwgc2UgcmVhbGl6YXLDoSBsYSBjb21wcmVzacOzblwiLFxyXG4gICAgfSxcclxuXHJcbiAgICBVc2FnZToge1xyXG4gICAgICBUaXRsZTogXCJDb25zdWx0YSBkZSBzYWxkb1wiLFxyXG4gICAgICBTdWJUaXRsZSh1c2VkOiBhbnksIHRvdGFsOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gYFNhbGRvIHVzYWRvIGVzdGUgbWVzOiAkJHt1c2VkfSwgdG90YWwgc3VzY3JpdG86ICQke3RvdGFsfWA7XHJcbiAgICAgIH0sXHJcbiAgICAgIElzQ2hlY2tpbmc6IFwiVmVyaWZpY2FuZG/igKZcIixcclxuICAgICAgQ2hlY2s6IFwiUmV2aXNhciBkZSBudWV2b1wiLFxyXG4gICAgICBOb0FjY2VzczpcclxuICAgICAgICBcIkludHJvZHVjZSBsYSBjbGF2ZSBBUEkgbyBsYSBjb250cmFzZcOxYSBkZSBhY2Nlc28gcGFyYSB2ZXIgZWwgc2FsZG9cIixcclxuICAgIH0sXHJcblxyXG4gICAgQWNjZXNzOiB7XHJcbiAgICAgIFNhYXNTdGFydDoge1xyXG4gICAgICAgIFRpdGxlOiBcIlVzZSBOZXh0Q2hhdCBBSVwiLFxyXG4gICAgICAgIExhYmVsOiBcIihUaGUgbW9zdCBjb3N0LWVmZmVjdGl2ZSBzb2x1dGlvbilcIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiT2ZmaWNpYWxseSBtYWludGFpbmVkIGJ5IE5leHRDaGF0LCB6ZXJvIGNvbmZpZ3VyYXRpb24gcmVhZHkgdG8gdXNlLCBzdXBwb3J0cyB0aGUgbGF0ZXN0IGxhcmdlIG1vZGVscyBsaWtlIE9wZW5BSSBvMSwgR1BULTRvLCBhbmQgQ2xhdWRlLTMuNVwiLFxyXG4gICAgICAgIENoYXROb3c6IFwiQ2hhdCBOb3dcIixcclxuICAgICAgfSxcclxuXHJcbiAgICAgIEFjY2Vzc0NvZGU6IHtcclxuICAgICAgICBUaXRsZTogXCJDb250cmFzZcOxYSBkZSBhY2Nlc29cIixcclxuICAgICAgICBTdWJUaXRsZTogXCJFbCBhZG1pbmlzdHJhZG9yIGhhIGhhYmlsaXRhZG8gZWwgYWNjZXNvIGVuY3JpcHRhZG9cIixcclxuICAgICAgICBQbGFjZWhvbGRlcjogXCJJbnRyb2R1Y2UgbGEgY29udHJhc2XDsWEgZGUgYWNjZXNvXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEN1c3RvbUVuZHBvaW50OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiSW50ZXJmYXogcGVyc29uYWxpemFkYVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIsK/VXNhciBzZXJ2aWNpb3MgcGVyc29uYWxpemFkb3MgZGUgQXp1cmUgdSBPcGVuQUk/XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFByb3ZpZGVyOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiUHJvdmVlZG9yIGRlIG1vZGVsb3NcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJDYW1iaWFyIGVudHJlIGRpZmVyZW50ZXMgcHJvdmVlZG9yZXNcIixcclxuICAgICAgfSxcclxuICAgICAgT3BlbkFJOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJDbGF2ZSBBUElcIixcclxuICAgICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgICBcIlVzYSB1bmEgY2xhdmUgQVBJIGRlIE9wZW5BSSBwZXJzb25hbGl6YWRhIHBhcmEgb21pdGlyIGxhIHJlc3RyaWNjacOzbiBkZSBhY2Nlc28gcG9yIGNvbnRyYXNlw7FhXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJDbGF2ZSBBUEkgZGUgT3BlbkFJXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkRpcmVjY2nDs24gZGVsIGVuZHBvaW50XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgICAgXCJEZWJlIGluY2x1aXIgaHR0cChzKTovLyBhZGVtw6FzIGRlIGxhIGRpcmVjY2nDs24gcHJlZGV0ZXJtaW5hZGFcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBBenVyZToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQ2xhdmUgZGUgaW50ZXJmYXpcIixcclxuICAgICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgICBcIlVzYSB1bmEgY2xhdmUgZGUgQXp1cmUgcGVyc29uYWxpemFkYSBwYXJhIG9taXRpciBsYSByZXN0cmljY2nDs24gZGUgYWNjZXNvIHBvciBjb250cmFzZcOxYVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQ2xhdmUgQVBJIGRlIEF6dXJlXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkRpcmVjY2nDs24gZGVsIGVuZHBvaW50XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJFamVtcGxvOlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcmlvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiVmVyc2nDs24gZGUgbGEgaW50ZXJmYXogKHZlcnNpw7NuIGRlIGFwaSBkZSBhenVyZSlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlNlbGVjY2lvbmEgdW5hIHZlcnNpw7NuIGVzcGVjw61maWNhXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQW50aHJvcGljOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJDbGF2ZSBkZSBpbnRlcmZhelwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiVXNhIHVuYSBjbGF2ZSBkZSBBbnRocm9waWMgcGVyc29uYWxpemFkYSBwYXJhIG9taXRpciBsYSByZXN0cmljY2nDs24gZGUgYWNjZXNvIHBvciBjb250cmFzZcOxYVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQ2xhdmUgQVBJIGRlIEFudGhyb3BpY1wiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJEaXJlY2Npw7NuIGRlbCBlbmRwb2ludFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiRWplbXBsbzpcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBBcGlWZXJpb246IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlZlcnNpw7NuIGRlIGxhIGludGVyZmF6ICh2ZXJzacOzbiBkZSBjbGF1ZGUgYXBpKVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiU2VsZWNjaW9uYSB1bmEgdmVyc2nDs24gZXNwZWPDrWZpY2EgZGUgbGEgQVBJXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgR29vZ2xlOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJDbGF2ZSBBUElcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIk9idMOpbiB0dSBjbGF2ZSBBUEkgZGUgR29vZ2xlIEFJXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJJbnRyb2R1Y2UgdHUgY2xhdmUgQVBJIGRlIEdvb2dsZSBBSSBTdHVkaW9cIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiRGlyZWNjacOzbiBkZWwgZW5kcG9pbnRcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkVqZW1wbG86XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgQXBpVmVyc2lvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiVmVyc2nDs24gZGUgbGEgQVBJIChzb2xvIHBhcmEgZ2VtaW5pLXBybylcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlNlbGVjY2lvbmEgdW5hIHZlcnNpw7NuIGVzcGVjw61maWNhIGRlIGxhIEFQSVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgR29vZ2xlU2FmZXR5U2V0dGluZ3M6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIk5pdmVsIGRlIGZpbHRyYWRvIGRlIHNlZ3VyaWRhZCBkZSBHb29nbGVcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkNvbmZpZ3VyYSBlbCBuaXZlbCBkZSBmaWx0cmFkbyBkZSBjb250ZW5pZG9cIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBCYWlkdToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQ2xhdmUgQVBJXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJVc2EgdW5hIGNsYXZlIEFQSSBkZSBCYWlkdSBwZXJzb25hbGl6YWRhXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJDbGF2ZSBBUEkgZGUgQmFpZHVcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFNlY3JldEtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQ2xhdmUgc2VjcmV0YVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiVXNhIHVuYSBjbGF2ZSBzZWNyZXRhIGRlIEJhaWR1IHBlcnNvbmFsaXphZGFcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkNsYXZlIHNlY3JldGEgZGUgQmFpZHVcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJEaXJlY2Npw7NuIGRlbCBlbmRwb2ludFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiTm8gYWRtaXRlIHBlcnNvbmFsaXphY2nDs24sIGRpcsOtZ2V0ZSBhIC5lbnYgcGFyYSBjb25maWd1cmFybG9cIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBCeXRlRGFuY2U6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkNsYXZlIGRlIGludGVyZmF6XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJVc2EgdW5hIGNsYXZlIEFQSSBkZSBCeXRlRGFuY2UgcGVyc29uYWxpemFkYVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQ2xhdmUgQVBJIGRlIEJ5dGVEYW5jZVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkRpcmVjY2nDs24gZGVsIGVuZHBvaW50XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJFamVtcGxvOlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEFsaWJhYmE6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkNsYXZlIGRlIGludGVyZmF6XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJVc2EgdW5hIGNsYXZlIEFQSSBkZSBBbGliYWJhIENsb3VkIHBlcnNvbmFsaXphZGFcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkNsYXZlIEFQSSBkZSBBbGliYWJhIENsb3VkXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiRGlyZWNjacOzbiBkZWwgZW5kcG9pbnRcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkVqZW1wbG86XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQ3VzdG9tTW9kZWw6IHtcclxuICAgICAgICBUaXRsZTogXCJOb21icmUgZGVsIG1vZGVsbyBwZXJzb25hbGl6YWRvXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIkFncmVnYSBvcGNpb25lcyBkZSBtb2RlbG9zIHBlcnNvbmFsaXphZG9zLCBzZXBhcmFkb3MgcG9yIGNvbWFzXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG5cclxuICAgIE1vZGVsOiBcIk1vZGVsbyAobW9kZWwpXCIsXHJcbiAgICBDb21wcmVzc01vZGVsOiB7XHJcbiAgICAgIFRpdGxlOiBcIk1vZGVsbyBkZSBjb21wcmVzacOzblwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJNb2RlbG8gdXRpbGl6YWRvIHBhcmEgY29tcHJpbWlyIGVsIGhpc3RvcmlhbFwiLFxyXG4gICAgfSxcclxuICAgIFRlbXBlcmF0dXJlOiB7XHJcbiAgICAgIFRpdGxlOiBcIkFsZWF0b3JpZWRhZCAodGVtcGVyYXR1cmUpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIkN1YW50byBtYXlvciBzZWEgZWwgdmFsb3IsIG3DoXMgYWxlYXRvcmlvIHNlcsOhIGVsIHJlc3VsdGFkb1wiLFxyXG4gICAgfSxcclxuICAgIFRvcFA6IHtcclxuICAgICAgVGl0bGU6IFwiTXVlc3RyZW8gcG9yIG7DumNsZW8gKHRvcF9wKVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJTaW1pbGFyIGEgbGEgYWxlYXRvcmllZGFkLCBwZXJvIG5vIGNhbWJpZXMgYW1ib3MgYSBsYSB2ZXpcIixcclxuICAgIH0sXHJcbiAgICBNYXhUb2tlbnM6IHtcclxuICAgICAgVGl0bGU6IFwiTMOtbWl0ZSBkZSB0b2tlbnMgcG9yIHJlc3B1ZXN0YSAobWF4X3Rva2VucylcIixcclxuICAgICAgU3ViVGl0bGU6IFwiTsO6bWVybyBtw6F4aW1vIGRlIHRva2VucyB1dGlsaXphZG9zIGVuIHVuYSBzb2xhIGludGVyYWNjacOzblwiLFxyXG4gICAgfSxcclxuICAgIFByZXNlbmNlUGVuYWx0eToge1xyXG4gICAgICBUaXRsZTogXCJOb3ZlZGFkIGRlIHRlbWFzIChwcmVzZW5jZV9wZW5hbHR5KVwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIkN1YW50byBtYXlvciBzZWEgZWwgdmFsb3IsIG3DoXMgcHJvYmFibGUgZXMgcXVlIHNlIGFtcGzDrWVuIGEgbnVldm9zIHRlbWFzXCIsXHJcbiAgICB9LFxyXG4gICAgRnJlcXVlbmN5UGVuYWx0eToge1xyXG4gICAgICBUaXRsZTogXCJQZW5hbGl6YWNpw7NuIGRlIGZyZWN1ZW5jaWEgKGZyZXF1ZW5jeV9wZW5hbHR5KVwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIkN1YW50byBtYXlvciBzZWEgZWwgdmFsb3IsIG3DoXMgcHJvYmFibGUgZXMgcXVlIHNlIHJlZHV6Y2FuIGxhcyBwYWxhYnJhcyByZXBldGlkYXNcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBTdG9yZToge1xyXG4gICAgRGVmYXVsdFRvcGljOiBcIk51ZXZvIGNoYXRcIixcclxuICAgIEJvdEhlbGxvOiBcIsK/RW4gcXXDqSBwdWVkbyBheXVkYXJ0ZT9cIixcclxuICAgIEVycm9yOiBcIkh1Ym8gdW4gZXJyb3IsIGludMOpbnRhbG8gZGUgbnVldm8gbcOhcyB0YXJkZVwiLFxyXG4gICAgUHJvbXB0OiB7XHJcbiAgICAgIEhpc3Rvcnk6IChjb250ZW50OiBzdHJpbmcpID0+XHJcbiAgICAgICAgXCJFc3RlIGVzIHVuIHJlc3VtZW4gZGVsIGNoYXQgaGlzdMOzcmljbyBjb21vIHJlZmVyZW5jaWE6IFwiICsgY29udGVudCxcclxuICAgICAgVG9waWM6XHJcbiAgICAgICAgXCJEZXZ1ZWx2ZSB1biB0ZW1hIGJyZXZlIGRlIGVzdGEgZnJhc2UgZW4gY3VhdHJvIGEgY2luY28gcGFsYWJyYXMsIHNpbiBleHBsaWNhY2nDs24sIHNpbiBwdW50dWFjacOzbiwgc2luIG11bGV0aWxsYXMsIHNpbiB0ZXh0byBhZGljaW9uYWwsIHNpbiBuZWdyaXRhcy4gU2kgbm8gaGF5IHRlbWEsIGRldnVlbHZlICdjaGFybGFzIGNhc3VhbGVzJ1wiLFxyXG4gICAgICBTdW1tYXJpemU6XHJcbiAgICAgICAgXCJSZXN1bWUgYnJldmVtZW50ZSBlbCBjb250ZW5pZG8gZGUgbGEgY29udmVyc2FjacOzbiBwYXJhIHVzYXIgY29tbyB1biBwcm9tcHQgZGUgY29udGV4dG8sIG1hbnRlbmnDqW5kb2xvIGRlbnRybyBkZSAyMDAgcGFsYWJyYXNcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBDb3B5OiB7XHJcbiAgICBTdWNjZXNzOiBcIkNvcGlhZG8gYWwgcG9ydGFwYXBlbGVzXCIsXHJcbiAgICBGYWlsZWQ6IFwiRXJyb3IgYWwgY29waWFyLCBwb3IgZmF2b3Igb3RvcmdhIHBlcm1pc29zIGFsIHBvcnRhcGFwZWxlc1wiLFxyXG4gIH0sXHJcbiAgRG93bmxvYWQ6IHtcclxuICAgIFN1Y2Nlc3M6IFwiQ29udGVuaWRvIGRlc2NhcmdhZG8gZW4gdHUgZGlyZWN0b3Jpby5cIixcclxuICAgIEZhaWxlZDogXCJFcnJvciBhbCBkZXNjYXJnYXIuXCIsXHJcbiAgfSxcclxuICBDb250ZXh0OiB7XHJcbiAgICBUb2FzdDogKHg6IGFueSkgPT4gYENvbnRpZW5lICR7eH0gcHJvbXB0cyBwcmVkZWZpbmlkb3NgLFxyXG4gICAgRWRpdDogXCJDb25maWd1cmFjacOzbiBkZWwgY2hhdCBhY3R1YWxcIixcclxuICAgIEFkZDogXCJBZ3JlZ2FyIHVuYSBjb252ZXJzYWNpw7NuXCIsXHJcbiAgICBDbGVhcjogXCJDb250ZXh0byBib3JyYWRvXCIsXHJcbiAgICBSZXZlcnQ6IFwiUmVzdGF1cmFyIGNvbnRleHRvXCIsXHJcbiAgfSxcclxuICBQbHVnaW46IHtcclxuICAgIE5hbWU6IFwiQ29tcGxlbWVudG9cIixcclxuICB9LFxyXG4gIEZpbmVUdW5lZDoge1xyXG4gICAgU3lzbWVzc2FnZTogXCJFcmVzIHVuIGFzaXN0ZW50ZVwiLFxyXG4gIH0sXHJcbiAgU2VhcmNoQ2hhdDoge1xyXG4gICAgTmFtZTogXCJCdXNjYXJcIixcclxuICAgIFBhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwiQnVzY2FyIGVuIGVsIGhpc3RvcmlhbCBkZSBjaGF0XCIsXHJcbiAgICAgIFNlYXJjaDogXCJJbmdyZXNlIGxhIHBhbGFicmEgY2xhdmUgZGUgYsO6c3F1ZWRhXCIsXHJcbiAgICAgIE5vUmVzdWx0OiBcIk5vIHNlIGVuY29udHJhcm9uIHJlc3VsdGFkb3NcIixcclxuICAgICAgTm9EYXRhOiBcIlNpbiBkYXRvc1wiLFxyXG4gICAgICBMb2FkaW5nOiBcIkNhcmdhbmRvXCIsXHJcblxyXG4gICAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGBTZSBlbmNvbnRyYXJvbiAke2NvdW50fSByZXN1bHRhZG9zYCxcclxuICAgIH0sXHJcbiAgICBJdGVtOiB7XHJcbiAgICAgIFZpZXc6IFwiVmVyXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgTWFzazoge1xyXG4gICAgTmFtZTogXCJNw6FzY2FyYVwiLFxyXG4gICAgUGFnZToge1xyXG4gICAgICBUaXRsZTogXCJNw6FzY2FyYXMgZGUgcm9sIHByZWRlZmluaWRhc1wiLFxyXG4gICAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50fSBkZWZpbmljaW9uZXMgZGUgcm9sIHByZWRlZmluaWRhc2AsXHJcbiAgICAgIFNlYXJjaDogXCJCdXNjYXIgbcOhc2NhcmEgZGUgcm9sXCIsXHJcbiAgICAgIENyZWF0ZTogXCJDcmVhciBudWV2b1wiLFxyXG4gICAgfSxcclxuICAgIEl0ZW06IHtcclxuICAgICAgSW5mbzogKGNvdW50OiBudW1iZXIpID0+IGBDb250aWVuZSAke2NvdW50fSBjb252ZXJzYWNpb25lcyBwcmVkZWZpbmlkYXNgLFxyXG4gICAgICBDaGF0OiBcIkNoYXRcIixcclxuICAgICAgVmlldzogXCJWZXJcIixcclxuICAgICAgRWRpdDogXCJFZGl0YXJcIixcclxuICAgICAgRGVsZXRlOiBcIkVsaW1pbmFyXCIsXHJcbiAgICAgIERlbGV0ZUNvbmZpcm06IFwiwr9Db25maXJtYXIgZWxpbWluYWNpw7NuP1wiLFxyXG4gICAgfSxcclxuICAgIEVkaXRNb2RhbDoge1xyXG4gICAgICBUaXRsZTogKHJlYWRvbmx5OiBib29sZWFuKSA9PlxyXG4gICAgICAgIGBFZGl0YXIgbcOhc2NhcmEgcHJlZGVmaW5pZGEgJHtyZWFkb25seSA/IFwi77yIc29sbyBsZWN0dXJh77yJXCIgOiBcIlwifWAsXHJcbiAgICAgIERvd25sb2FkOiBcIkRlc2NhcmdhciBwcmVkZWZpbmlkb1wiLFxyXG4gICAgICBDbG9uZTogXCJDbG9uYXIgcHJlZGVmaW5pZG9cIixcclxuICAgIH0sXHJcbiAgICBDb25maWc6IHtcclxuICAgICAgQXZhdGFyOiBcIkF2YXRhciBkZWwgcm9sXCIsXHJcbiAgICAgIE5hbWU6IFwiTm9tYnJlIGRlbCByb2xcIixcclxuICAgICAgU3luYzoge1xyXG4gICAgICAgIFRpdGxlOiBcIlVzYXIgY29uZmlndXJhY2nDs24gZ2xvYmFsXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIsK/VXNhciBsYSBjb25maWd1cmFjacOzbiBnbG9iYWwgZGVsIG1vZGVsbyBwYXJhIGxhIGNvbnZlcnNhY2nDs24gYWN0dWFsP1wiLFxyXG4gICAgICAgIENvbmZpcm06XHJcbiAgICAgICAgICBcIkxhIGNvbmZpZ3VyYWNpw7NuIHBlcnNvbmFsaXphZGEgZGUgbGEgY29udmVyc2FjacOzbiBhY3R1YWwgc2Ugc29icmVzY3JpYmlyw6EgYXV0b23DoXRpY2FtZW50ZSwgwr9jb25maXJtYXIgaGFiaWxpdGFyIGxhIGNvbmZpZ3VyYWNpw7NuIGdsb2JhbD9cIixcclxuICAgICAgfSxcclxuICAgICAgSGlkZUNvbnRleHQ6IHtcclxuICAgICAgICBUaXRsZTogXCJPY3VsdGFyIGNvbnZlcnNhY2lvbmVzIHByZWRlZmluaWRhc1wiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCJMYXMgY29udmVyc2FjaW9uZXMgcHJlZGVmaW5pZGFzIG9jdWx0YXMgbm8gYXBhcmVjZXLDoW4gZW4gbGEgaW50ZXJmYXogZGUgY2hhdFwiLFxyXG4gICAgICB9LFxyXG4gICAgICBTaGFyZToge1xyXG4gICAgICAgIFRpdGxlOiBcIkNvbXBhcnRpciBlc3RhIG3DoXNjYXJhXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiR2VuZXJhciB1biBlbmxhY2UgZGlyZWN0byBhIGVzdGEgbcOhc2NhcmFcIixcclxuICAgICAgICBBY3Rpb246IFwiQ29waWFyIGVubGFjZVwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9LFxyXG4gIE5ld0NoYXQ6IHtcclxuICAgIFJldHVybjogXCJSZWdyZXNhclwiLFxyXG4gICAgU2tpcDogXCJDb21lbnphciBhaG9yYVwiLFxyXG4gICAgTm90U2hvdzogXCJObyBtb3N0cmFyIG3DoXNcIixcclxuICAgIENvbmZpcm1Ob1Nob3c6XHJcbiAgICAgIFwiwr9Db25maXJtYXIgZGVzYWN0aXZhY2nDs24/IFB1ZWRlcyByZWFjdGl2YXIgZW4gbGEgY29uZmlndXJhY2nDs24gZW4gY3VhbHF1aWVyIG1vbWVudG8uXCIsXHJcbiAgICBUaXRsZTogXCJTZWxlY2Npb25hIHVuYSBtw6FzY2FyYVwiLFxyXG4gICAgU3ViVGl0bGU6IFwiQ29taWVuemEgYWhvcmEgeSBjb2xpc2lvbmEgY29uIGxhIG1lbnRlIGRldHLDoXMgZGUgbGEgbcOhc2NhcmFcIixcclxuICAgIE1vcmU6IFwiVmVyIHRvZG9cIixcclxuICB9LFxyXG5cclxuICBVUkxDb21tYW5kOiB7XHJcbiAgICBDb2RlOiBcIkRldGVjdGFkbyB1biBjw7NkaWdvIGRlIGFjY2VzbyBlbiBlbCBlbmxhY2UsIMK/ZGVzZWFzIGF1dG9jb21wbGV0YXJsbz9cIixcclxuICAgIFNldHRpbmdzOlxyXG4gICAgICBcIkRldGVjdGFkYSBjb25maWd1cmFjacOzbiBwcmVkZWZpbmlkYSBlbiBlbCBlbmxhY2UsIMK/ZGVzZWFzIGF1dG9jb21wbGV0YXJsYT9cIixcclxuICB9LFxyXG5cclxuICBVSToge1xyXG4gICAgQ29uZmlybTogXCJDb25maXJtYXJcIixcclxuICAgIENhbmNlbDogXCJDYW5jZWxhclwiLFxyXG4gICAgQ2xvc2U6IFwiQ2VycmFyXCIsXHJcbiAgICBDcmVhdGU6IFwiQ3JlYXJcIixcclxuICAgIEVkaXQ6IFwiRWRpdGFyXCIsXHJcbiAgICBFeHBvcnQ6IFwiRXhwb3J0YXJcIixcclxuICAgIEltcG9ydDogXCJJbXBvcnRhclwiLFxyXG4gICAgU3luYzogXCJTaW5jcm9uaXphclwiLFxyXG4gICAgQ29uZmlnOiBcIkNvbmZpZ3VyYXJcIixcclxuICB9LFxyXG4gIEV4cG9ydGVyOiB7XHJcbiAgICBEZXNjcmlwdGlvbjoge1xyXG4gICAgICBUaXRsZTogXCJTb2xvIHNlIG1vc3RyYXLDoW4gbG9zIG1lbnNhamVzIGRlc3B1w6lzIGRlIGJvcnJhciBlbCBjb250ZXh0b1wiLFxyXG4gICAgfSxcclxuICAgIE1vZGVsOiBcIk1vZGVsb1wiLFxyXG4gICAgTWVzc2FnZXM6IFwiTWVuc2FqZXNcIixcclxuICAgIFRvcGljOiBcIlRlbWFcIixcclxuICAgIFRpbWU6IFwiSG9yYVwiLFxyXG4gIH0sXHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBlcztcclxuIl0sIm5hbWVzIjpbIlN1Ym1pdEtleSIsImdldENsaWVudENvbmZpZyIsIlNBQVNfQ0hBVF9VVE1fVVJMIiwiaXNBcHAiLCJlcyIsIldJUCIsIkVycm9yIiwiVW5hdXRob3JpemVkIiwiQXV0aCIsIlRpdGxlIiwiVGlwcyIsIlN1YlRpcHMiLCJJbnB1dCIsIkNvbmZpcm0iLCJMYXRlciIsIlJldHVybiIsIlNhYXNUaXBzIiwiVG9wVGlwcyIsIkNoYXRJdGVtIiwiQ2hhdEl0ZW1Db3VudCIsImNvdW50IiwiQ2hhdCIsIlN1YlRpdGxlIiwiRWRpdE1lc3NhZ2UiLCJUb3BpYyIsIkFjdGlvbnMiLCJDaGF0TGlzdCIsIkNvbXByZXNzZWRIaXN0b3J5IiwiRXhwb3J0IiwiQ29weSIsIlN0b3AiLCJSZXRyeSIsIlBpbiIsIlBpblRvYXN0Q29udGVudCIsIlBpblRvYXN0QWN0aW9uIiwiRGVsZXRlIiwiRWRpdCIsIlJlZnJlc2hUaXRsZSIsIlJlZnJlc2hUb2FzdCIsIkNvbW1hbmRzIiwibmV3IiwibmV3bSIsIm5leHQiLCJwcmV2IiwiY2xlYXIiLCJkZWwiLCJJbnB1dEFjdGlvbnMiLCJUb0JvdHRvbSIsIlRoZW1lIiwiYXV0byIsImxpZ2h0IiwiZGFyayIsIlByb21wdCIsIk1hc2tzIiwiQ2xlYXIiLCJTZXR0aW5ncyIsIlVwbG9hZEltYWdlIiwiUmVuYW1lIiwiVHlwaW5nIiwic3VibWl0S2V5IiwiaW5wdXRIaW50cyIsIlN0cmluZyIsIkVudGVyIiwiU2VuZCIsIkNvbmZpZyIsIlJlc2V0IiwiU2F2ZUFzIiwiSXNDb250ZXh0IiwiRG93bmxvYWQiLCJTaGFyZSIsIk1lc3NhZ2VGcm9tWW91IiwiTWVzc2FnZUZyb21DaGF0R1BUIiwiRm9ybWF0IiwiSW5jbHVkZUNvbnRleHQiLCJTdGVwcyIsIlNlbGVjdCIsIlByZXZpZXciLCJJbWFnZSIsIlRvYXN0IiwiTW9kYWwiLCJTZWFyY2giLCJBbGwiLCJMYXRlc3QiLCJNZW1vcnkiLCJFbXB0eUNvbnRlbnQiLCJSZXNldENvbmZpcm0iLCJIb21lIiwiTmV3Q2hhdCIsIkRlbGV0ZUNoYXQiLCJEZWxldGVUb2FzdCIsIlJldmVydCIsIkRhbmdlciIsIkFjdGlvbiIsIkxhbmciLCJOYW1lIiwiQXZhdGFyIiwiRm9udFNpemUiLCJGb250RmFtaWx5IiwiUGxhY2Vob2xkZXIiLCJJbmplY3RTeXN0ZW1Qcm9tcHRzIiwiSW5wdXRUZW1wbGF0ZSIsIlVwZGF0ZSIsIlZlcnNpb24iLCJ4IiwiSXNMYXRlc3QiLCJDaGVja1VwZGF0ZSIsIklzQ2hlY2tpbmciLCJGb3VuZFVwZGF0ZSIsIkdvVG9VcGRhdGUiLCJTZW5kS2V5IiwiVGlnaHRCb3JkZXIiLCJTZW5kUHJldmlld0J1YmJsZSIsIkF1dG9HZW5lcmF0ZVRpdGxlIiwiU3luYyIsIkNsb3VkU3RhdGUiLCJOb3RTeW5jWWV0IiwiU3VjY2VzcyIsIkZhaWwiLCJDaGVjayIsIlN5bmNUeXBlIiwiUHJveHkiLCJQcm94eVVybCIsIldlYkRhdiIsIkVuZHBvaW50IiwiVXNlck5hbWUiLCJQYXNzd29yZCIsIlVwU3Rhc2giLCJMb2NhbFN0YXRlIiwiT3ZlcnZpZXciLCJvdmVydmlldyIsImNoYXQiLCJtZXNzYWdlIiwicHJvbXB0IiwibWFzayIsIkltcG9ydEZhaWxlZCIsIk1hc2siLCJTcGxhc2giLCJCdWlsdGluIiwiRGlzYWJsZSIsIkxpc3QiLCJMaXN0Q291bnQiLCJidWlsdGluIiwiY3VzdG9tIiwiQWRkIiwiRWRpdE1vZGFsIiwiSGlzdG9yeUNvdW50IiwiQ29tcHJlc3NUaHJlc2hvbGQiLCJVc2FnZSIsInVzZWQiLCJ0b3RhbCIsIk5vQWNjZXNzIiwiQWNjZXNzIiwiU2Fhc1N0YXJ0IiwiTGFiZWwiLCJDaGF0Tm93IiwiQWNjZXNzQ29kZSIsIkN1c3RvbUVuZHBvaW50IiwiUHJvdmlkZXIiLCJPcGVuQUkiLCJBcGlLZXkiLCJBenVyZSIsIkFwaVZlcmlvbiIsIkFudGhyb3BpYyIsIkdvb2dsZSIsIkFwaVZlcnNpb24iLCJHb29nbGVTYWZldHlTZXR0aW5ncyIsIkJhaWR1IiwiU2VjcmV0S2V5IiwiQnl0ZURhbmNlIiwiQWxpYmFiYSIsIkN1c3RvbU1vZGVsIiwiTW9kZWwiLCJDb21wcmVzc01vZGVsIiwiVGVtcGVyYXR1cmUiLCJUb3BQIiwiTWF4VG9rZW5zIiwiUHJlc2VuY2VQZW5hbHR5IiwiRnJlcXVlbmN5UGVuYWx0eSIsIlN0b3JlIiwiRGVmYXVsdFRvcGljIiwiQm90SGVsbG8iLCJIaXN0b3J5IiwiY29udGVudCIsIlN1bW1hcml6ZSIsIkZhaWxlZCIsIkNvbnRleHQiLCJQbHVnaW4iLCJGaW5lVHVuZWQiLCJTeXNtZXNzYWdlIiwiU2VhcmNoQ2hhdCIsIlBhZ2UiLCJOb1Jlc3VsdCIsIk5vRGF0YSIsIkxvYWRpbmciLCJJdGVtIiwiVmlldyIsIkNyZWF0ZSIsIkluZm8iLCJEZWxldGVDb25maXJtIiwicmVhZG9ubHkiLCJDbG9uZSIsIkhpZGVDb250ZXh0IiwiU2tpcCIsIk5vdFNob3ciLCJDb25maXJtTm9TaG93IiwiTW9yZSIsIlVSTENvbW1hbmQiLCJDb2RlIiwiVUkiLCJDYW5jZWwiLCJDbG9zZSIsIkltcG9ydCIsIkV4cG9ydGVyIiwiRGVzY3JpcHRpb24iLCJNZXNzYWdlcyIsIlRpbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/locales/es.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/locales/fr.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/locales/fr.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _store_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../store/config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n\n\n\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_1__.getClientConfig)()?.isApp;\nconst fr = {\n WIP: \"Prochainement...\",\n Error: {\n Unauthorized: isApp ? `😆 La conversation a rencontré quelques problèmes, pas de panique :\r\n \\\\ 1️⃣ Si vous souhaitez commencer sans configuration, [cliquez ici pour démarrer la conversation immédiatement 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\\\ 2️⃣ Si vous souhaitez utiliser vos propres ressources OpenAI, cliquez [ici](/#/settings) pour modifier les paramètres ⚙️` : `😆 La conversation a rencontré quelques problèmes, pas de panique :\r\n \\ 1️⃣ Si vous souhaitez commencer sans configuration, [cliquez ici pour démarrer la conversation immédiatement 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\ 2️⃣ Si vous utilisez une version déployée privée, cliquez [ici](/#/auth) pour entrer la clé d'accès 🔑\r\n \\ 3️⃣ Si vous souhaitez utiliser vos propres ressources OpenAI, cliquez [ici](/#/settings) pour modifier les paramètres ⚙️\r\n `\n },\n Auth: {\n Title: \"Mot de passe requis\",\n Tips: \"L'administrateur a activ\\xe9 la v\\xe9rification par mot de passe. Veuillez entrer le code d'acc\\xe8s ci-dessous\",\n SubTips: \"Ou entrez votre cl\\xe9 API OpenAI ou Google\",\n Input: \"Entrez le code d'acc\\xe8s ici\",\n Confirm: \"Confirmer\",\n Later: \"Plus tard\",\n Return: \"Retour\",\n SaasTips: \"La configuration est trop compliqu\\xe9e, je veux l'utiliser imm\\xe9diatement\",\n TopTips: \"\\uD83E\\uDD73 Offre de lancement NextChat AI, d\\xe9bloquez OpenAI o1, GPT-4o, Claude-3.5 et les derniers grands mod\\xe8les\"\n },\n ChatItem: {\n ChatItemCount: (count)=>`${count} conversations`\n },\n Chat: {\n SubTitle: (count)=>`Total de ${count} conversations`,\n EditMessage: {\n Title: \"Modifier l'historique des messages\",\n Topic: {\n Title: \"Sujet de la discussion\",\n SubTitle: \"Modifier le sujet de la discussion actuel\"\n }\n },\n Actions: {\n ChatList: \"Voir la liste des messages\",\n CompressedHistory: \"Voir l'historique des prompts compress\\xe9s\",\n Export: \"Exporter l'historique de la discussion\",\n Copy: \"Copier\",\n Stop: \"Arr\\xeater\",\n Retry: \"R\\xe9essayer\",\n Pin: \"\\xc9pingler\",\n PinToastContent: \"1 conversation \\xe9pingl\\xe9e aux prompts pr\\xe9d\\xe9finis\",\n PinToastAction: \"Voir\",\n Delete: \"Supprimer\",\n Edit: \"Modifier\",\n RefreshTitle: \"Actualiser le titre\",\n RefreshToast: \"Demande d'actualisation du titre envoy\\xe9e\"\n },\n Commands: {\n new: \"Nouvelle discussion\",\n newm: \"Cr\\xe9er une discussion \\xe0 partir du masque\",\n next: \"Discussion suivante\",\n prev: \"Discussion pr\\xe9c\\xe9dente\",\n clear: \"Effacer le contexte\",\n del: \"Supprimer la discussion\"\n },\n InputActions: {\n Stop: \"Arr\\xeater la r\\xe9ponse\",\n ToBottom: \"Aller au plus r\\xe9cent\",\n Theme: {\n auto: \"Th\\xe8me automatique\",\n light: \"Mode clair\",\n dark: \"Mode sombre\"\n },\n Prompt: \"Commandes rapides\",\n Masks: \"Tous les masques\",\n Clear: \"Effacer la discussion\",\n Settings: \"Param\\xe8tres de la discussion\",\n UploadImage: \"T\\xe9l\\xe9charger une image\"\n },\n Rename: \"Renommer la discussion\",\n Typing: \"En train d'\\xe9crire…\",\n Input: (submitKey)=>{\n var inputHints = `${submitKey} pour envoyer`;\n if (submitKey === String(_store_config__WEBPACK_IMPORTED_MODULE_0__.SubmitKey.Enter)) {\n inputHints += \",Shift + Enter pour passer \\xe0 la ligne\";\n }\n return inputHints + \",/ pour compl\\xe9ter, : pour d\\xe9clencher des commandes\";\n },\n Send: \"Envoyer\",\n Config: {\n Reset: \"Effacer la m\\xe9moire\",\n SaveAs: \"Enregistrer comme masque\"\n },\n IsContext: \"Prompt pr\\xe9d\\xe9fini\"\n },\n Export: {\n Title: \"Partager l'historique des discussions\",\n Copy: \"Tout copier\",\n Download: \"T\\xe9l\\xe9charger le fichier\",\n Share: \"Partager sur ShareGPT\",\n MessageFromYou: \"Utilisateur\",\n MessageFromChatGPT: \"ChatGPT\",\n Format: {\n Title: \"Format d'exportation\",\n SubTitle: \"Vous pouvez exporter en texte Markdown ou en image PNG\"\n },\n IncludeContext: {\n Title: \"Inclure le contexte du masque\",\n SubTitle: \"Afficher le contexte du masque dans les messages\"\n },\n Steps: {\n Select: \"S\\xe9lectionner\",\n Preview: \"Aper\\xe7u\"\n },\n Image: {\n Toast: \"G\\xe9n\\xe9ration de la capture d'\\xe9cran\",\n Modal: \"Appuyez longuement ou faites un clic droit pour enregistrer l'image\"\n }\n },\n Select: {\n Search: \"Rechercher des messages\",\n All: \"Tout s\\xe9lectionner\",\n Latest: \"Derniers messages\",\n Clear: \"Effacer la s\\xe9lection\"\n },\n Memory: {\n Title: \"R\\xe9sum\\xe9 historique\",\n EmptyContent: \"Le contenu de la discussion est trop court pour \\xeatre r\\xe9sum\\xe9\",\n Send: \"Compresser automatiquement l'historique des discussions et l'envoyer comme contexte\",\n Copy: \"Copier le r\\xe9sum\\xe9\",\n Reset: \"[unused]\",\n ResetConfirm: \"Confirmer la suppression du r\\xe9sum\\xe9 historique ?\"\n },\n Home: {\n NewChat: \"Nouvelle discussion\",\n DeleteChat: \"Confirmer la suppression de la discussion s\\xe9lectionn\\xe9e ?\",\n DeleteToast: \"Discussion supprim\\xe9e\",\n Revert: \"Annuler\"\n },\n Settings: {\n Title: \"Param\\xe8tres\",\n SubTitle: \"Toutes les options de configuration\",\n Danger: {\n Reset: {\n Title: \"R\\xe9initialiser tous les param\\xe8tres\",\n SubTitle: \"R\\xe9initialiser toutes les options de configuration aux valeurs par d\\xe9faut\",\n Action: \"R\\xe9initialiser maintenant\",\n Confirm: \"Confirmer la r\\xe9initialisation de tous les param\\xe8tres ?\"\n },\n Clear: {\n Title: \"Effacer toutes les donn\\xe9es\",\n SubTitle: \"Effacer toutes les discussions et les donn\\xe9es de configuration\",\n Action: \"Effacer maintenant\",\n Confirm: \"Confirmer l'effacement de toutes les discussions et donn\\xe9es de configuration ?\"\n }\n },\n Lang: {\n Name: \"Language\",\n All: \"Toutes les langues\"\n },\n Avatar: \"Avatar\",\n FontSize: {\n Title: \"Taille de la police\",\n SubTitle: \"Taille de la police pour le contenu des discussions\"\n },\n FontFamily: {\n Title: \"Police de Chat\",\n SubTitle: \"Police du contenu du chat, laissez vide pour appliquer la police par d\\xe9faut globale\",\n Placeholder: \"Nom de la Police\"\n },\n InjectSystemPrompts: {\n Title: \"Injecter des invites syst\\xe8me\",\n SubTitle: \"Ajouter de mani\\xe8re forc\\xe9e une invite syst\\xe8me simul\\xe9e de ChatGPT au d\\xe9but de chaque liste de messages\"\n },\n InputTemplate: {\n Title: \"Pr\\xe9traitement des entr\\xe9es utilisateur\",\n SubTitle: \"Le dernier message de l'utilisateur sera int\\xe9gr\\xe9 dans ce mod\\xe8le\"\n },\n Update: {\n Version: (x)=>`Version actuelle : ${x}`,\n IsLatest: \"Vous avez la derni\\xe8re version\",\n CheckUpdate: \"V\\xe9rifier les mises \\xe0 jour\",\n IsChecking: \"V\\xe9rification des mises \\xe0 jour en cours...\",\n FoundUpdate: (x)=>`Nouvelle version trouvée : ${x}`,\n GoToUpdate: \"Aller \\xe0 la mise \\xe0 jour\"\n },\n SendKey: \"Touche d'envoi\",\n Theme: \"Th\\xe8me\",\n TightBorder: \"Mode sans bordure\",\n SendPreviewBubble: {\n Title: \"Bulle d'aper\\xe7u\",\n SubTitle: \"Aper\\xe7u du contenu Markdown dans la bulle d'aper\\xe7u\"\n },\n AutoGenerateTitle: {\n Title: \"G\\xe9n\\xe9ration automatique de titres\",\n SubTitle: \"G\\xe9n\\xe9rer un titre appropri\\xe9 en fonction du contenu de la discussion\"\n },\n Sync: {\n CloudState: \"Donn\\xe9es cloud\",\n NotSyncYet: \"Pas encore synchronis\\xe9\",\n Success: \"Synchronisation r\\xe9ussie\",\n Fail: \"\\xc9chec de la synchronisation\",\n Config: {\n Modal: {\n Title: \"Configurer la synchronisation cloud\",\n Check: \"V\\xe9rifier la disponibilit\\xe9\"\n },\n SyncType: {\n Title: \"Type de synchronisation\",\n SubTitle: \"Choisissez le serveur de synchronisation pr\\xe9f\\xe9r\\xe9\"\n },\n Proxy: {\n Title: \"Activer le proxy\",\n SubTitle: \"Lors de la synchronisation dans le navigateur, le proxy doit \\xeatre activ\\xe9 pour \\xe9viter les restrictions de domaine crois\\xe9\"\n },\n ProxyUrl: {\n Title: \"Adresse du proxy\",\n SubTitle: \"Uniquement pour le proxy de domaine crois\\xe9 fourni par le projet\"\n },\n WebDav: {\n Endpoint: \"Adresse WebDAV\",\n UserName: \"Nom d'utilisateur\",\n Password: \"Mot de passe\"\n },\n UpStash: {\n Endpoint: \"URL REST Redis UpStash\",\n UserName: \"Nom de sauvegarde\",\n Password: \"Token REST Redis UpStash\"\n }\n },\n LocalState: \"Donn\\xe9es locales\",\n Overview: (overview)=>{\n return `${overview.chat} discussions, ${overview.message} messages, ${overview.prompt} invites, ${overview.mask} masques`;\n },\n ImportFailed: \"\\xc9chec de l'importation\"\n },\n Mask: {\n Splash: {\n Title: \"Page de d\\xe9marrage du masque\",\n SubTitle: \"Afficher la page de d\\xe9marrage du masque lors de la cr\\xe9ation d'une nouvelle discussion\"\n },\n Builtin: {\n Title: \"Masquer les masques int\\xe9gr\\xe9s\",\n SubTitle: \"Masquer les masques int\\xe9gr\\xe9s dans toutes les listes de masques\"\n }\n },\n Prompt: {\n Disable: {\n Title: \"D\\xe9sactiver la compl\\xe9tion automatique des invites\",\n SubTitle: \"Saisir / au d\\xe9but de la zone de texte pour d\\xe9clencher la compl\\xe9tion automatique\"\n },\n List: \"Liste des invites personnalis\\xe9es\",\n ListCount: (builtin, custom)=>`${builtin} intégrées, ${custom} définies par l'utilisateur`,\n Edit: \"Modifier\",\n Modal: {\n Title: \"Liste des invites\",\n Add: \"Cr\\xe9er\",\n Search: \"Rechercher des invites\"\n },\n EditModal: {\n Title: \"Modifier les invites\"\n }\n },\n HistoryCount: {\n Title: \"Nombre de messages historiques\",\n SubTitle: \"Nombre de messages historiques envoy\\xe9s avec chaque demande\"\n },\n CompressThreshold: {\n Title: \"Seuil de compression des messages historiques\",\n SubTitle: \"Compresser les messages historiques lorsque leur longueur d\\xe9passe cette valeur\"\n },\n Usage: {\n Title: \"V\\xe9rification du solde\",\n SubTitle (used, total) {\n return `Utilisé ce mois-ci : $${used}, Total d'abonnement : $${total}`;\n },\n IsChecking: \"V\\xe9rification en cours…\",\n Check: \"Re-v\\xe9rifier\",\n NoAccess: \"Entrez la cl\\xe9 API ou le mot de passe d'acc\\xe8s pour v\\xe9rifier le solde\"\n },\n Access: {\n SaasStart: {\n Title: \"Utiliser NextChat AI\",\n Label: \"(La solution la plus rentable)\",\n SubTitle: \"Officiellement maintenu par NextChat, pr\\xeat \\xe0 l'emploi sans configuration, prend en charge les derniers grands mod\\xe8les comme OpenAI o1, GPT-4o et Claude-3.5\",\n ChatNow: \"Discuter maintenant\"\n },\n AccessCode: {\n Title: \"Mot de passe d'acc\\xe8s\",\n SubTitle: \"L'administrateur a activ\\xe9 l'acc\\xe8s s\\xe9curis\\xe9\",\n Placeholder: \"Veuillez entrer le mot de passe d'acc\\xe8s\"\n },\n CustomEndpoint: {\n Title: \"Interface personnalis\\xe9e\",\n SubTitle: \"Utiliser un service Azure ou OpenAI personnalis\\xe9\"\n },\n Provider: {\n Title: \"Fournisseur de mod\\xe8le\",\n SubTitle: \"Changer de fournisseur de service\"\n },\n OpenAI: {\n ApiKey: {\n Title: \"Cl\\xe9 API\",\n SubTitle: \"Utiliser une cl\\xe9 OpenAI personnalis\\xe9e pour contourner les restrictions d'acc\\xe8s par mot de passe\",\n Placeholder: \"Cl\\xe9 API OpenAI\"\n },\n Endpoint: {\n Title: \"Adresse de l'interface\",\n SubTitle: \"Doit inclure http(s):// en dehors de l'adresse par d\\xe9faut\"\n }\n },\n Azure: {\n ApiKey: {\n Title: \"Cl\\xe9 d'interface\",\n SubTitle: \"Utiliser une cl\\xe9 Azure personnalis\\xe9e pour contourner les restrictions d'acc\\xe8s par mot de passe\",\n Placeholder: \"Cl\\xe9 API Azure\"\n },\n Endpoint: {\n Title: \"Adresse de l'interface\",\n SubTitle: \"Exemple :\"\n },\n ApiVerion: {\n Title: \"Version de l'interface (version API azure)\",\n SubTitle: \"Choisissez une version sp\\xe9cifique\"\n }\n },\n Anthropic: {\n ApiKey: {\n Title: \"Cl\\xe9 d'interface\",\n SubTitle: \"Utiliser une cl\\xe9 Anthropic personnalis\\xe9e pour contourner les restrictions d'acc\\xe8s par mot de passe\",\n Placeholder: \"Cl\\xe9 API Anthropic\"\n },\n Endpoint: {\n Title: \"Adresse de l'interface\",\n SubTitle: \"Exemple :\"\n },\n ApiVerion: {\n Title: \"Version de l'interface (version API claude)\",\n SubTitle: \"Choisissez une version sp\\xe9cifique de l'API\"\n }\n },\n Google: {\n ApiKey: {\n Title: \"Cl\\xe9 API\",\n SubTitle: \"Obtenez votre cl\\xe9 API Google AI\",\n Placeholder: \"Entrez votre cl\\xe9 API Google AI Studio\"\n },\n Endpoint: {\n Title: \"Adresse de l'interface\",\n SubTitle: \"Exemple :\"\n },\n ApiVersion: {\n Title: \"Version de l'API (pour gemini-pro uniquement)\",\n SubTitle: \"Choisissez une version sp\\xe9cifique de l'API\"\n },\n GoogleSafetySettings: {\n Title: \"Niveau de filtrage de s\\xe9curit\\xe9 Google\",\n SubTitle: \"D\\xe9finir le niveau de filtrage du contenu\"\n }\n },\n Baidu: {\n ApiKey: {\n Title: \"Cl\\xe9 API\",\n SubTitle: \"Utiliser une cl\\xe9 API Baidu personnalis\\xe9e\",\n Placeholder: \"Cl\\xe9 API Baidu\"\n },\n SecretKey: {\n Title: \"Cl\\xe9 secr\\xe8te\",\n SubTitle: \"Utiliser une cl\\xe9 secr\\xe8te Baidu personnalis\\xe9e\",\n Placeholder: \"Cl\\xe9 secr\\xe8te Baidu\"\n },\n Endpoint: {\n Title: \"Adresse de l'interface\",\n SubTitle: \"Non pris en charge pour les configurations personnalis\\xe9es dans .env\"\n }\n },\n ByteDance: {\n ApiKey: {\n Title: \"Cl\\xe9 d'interface\",\n SubTitle: \"Utiliser une cl\\xe9 API ByteDance personnalis\\xe9e\",\n Placeholder: \"Cl\\xe9 API ByteDance\"\n },\n Endpoint: {\n Title: \"Adresse de l'interface\",\n SubTitle: \"Exemple :\"\n }\n },\n Alibaba: {\n ApiKey: {\n Title: \"Cl\\xe9 d'interface\",\n SubTitle: \"Utiliser une cl\\xe9 API Alibaba Cloud personnalis\\xe9e\",\n Placeholder: \"Cl\\xe9 API Alibaba Cloud\"\n },\n Endpoint: {\n Title: \"Adresse de l'interface\",\n SubTitle: \"Exemple :\"\n }\n },\n CustomModel: {\n Title: \"Nom du mod\\xe8le personnalis\\xe9\",\n SubTitle: \"Ajouter des options de mod\\xe8les personnalis\\xe9s, s\\xe9par\\xe9es par des virgules\"\n }\n },\n Model: \"Mod\\xe8le\",\n CompressModel: {\n Title: \"Mod\\xe8le de compression\",\n SubTitle: \"Mod\\xe8le utilis\\xe9 pour compresser l'historique\"\n },\n Temperature: {\n Title: \"Al\\xe9atoire (temperature)\",\n SubTitle: \"Plus la valeur est \\xe9lev\\xe9e, plus les r\\xe9ponses sont al\\xe9atoires\"\n },\n TopP: {\n Title: \"\\xc9chantillonnage par noyau (top_p)\",\n SubTitle: \"Semblable \\xe0 l'al\\xe9atoire, mais ne pas modifier en m\\xeame temps que l'al\\xe9atoire\"\n },\n MaxTokens: {\n Title: \"Limite de r\\xe9ponse unique (max_tokens)\",\n SubTitle: \"Nombre maximal de tokens utilis\\xe9s pour une interaction unique\"\n },\n PresencePenalty: {\n Title: \"Nouveaut\\xe9 du sujet (presence_penalty)\",\n SubTitle: \"Plus la valeur est \\xe9lev\\xe9e, plus il est probable d'\\xe9largir aux nouveaux sujets\"\n },\n FrequencyPenalty: {\n Title: \"P\\xe9nalit\\xe9 de fr\\xe9quence (frequency_penalty)\",\n SubTitle: \"Plus la valeur est \\xe9lev\\xe9e, plus il est probable de r\\xe9duire les r\\xe9p\\xe9titions\"\n }\n },\n Store: {\n DefaultTopic: \"Nouvelle discussion\",\n BotHello: \"Comment puis-je vous aider ?\",\n Error: \"Une erreur est survenue, veuillez r\\xe9essayer plus tard\",\n Prompt: {\n History: (content)=>\"Voici le r\\xe9sum\\xe9 de la discussion pr\\xe9c\\xe9dente : \" + content,\n Topic: \"Utilisez quatre \\xe0 cinq mots pour retourner le sujet succinct de cette phrase, sans explication, sans ponctuation, sans interjections, sans texte superflu, sans gras. Si aucun sujet, retournez simplement \\xab discussion informelle \\xbb\",\n Summarize: \"Faites un r\\xe9sum\\xe9 succinct de la discussion, \\xe0 utiliser comme prompt de contexte ult\\xe9rieur, en moins de 200 mots\"\n }\n },\n Copy: {\n Success: \"Copi\\xe9 dans le presse-papiers\",\n Failed: \"\\xc9chec de la copie, veuillez autoriser l'acc\\xe8s au presse-papiers\"\n },\n Download: {\n Success: \"Le contenu a \\xe9t\\xe9 t\\xe9l\\xe9charg\\xe9 dans votre r\\xe9pertoire.\",\n Failed: \"\\xc9chec du t\\xe9l\\xe9chargement.\"\n },\n Context: {\n Toast: (x)=>`Contient ${x} invites prédéfinies`,\n Edit: \"Param\\xe8tres de la discussion actuelle\",\n Add: \"Ajouter une discussion\",\n Clear: \"Contexte effac\\xe9\",\n Revert: \"Restaurer le contexte\"\n },\n Plugin: {\n Name: \"Plugin\"\n },\n FineTuned: {\n Sysmessage: \"Vous \\xeates un assistant\"\n },\n SearchChat: {\n Name: \"Recherche\",\n Page: {\n Title: \"Rechercher dans l'historique des discussions\",\n Search: \"Entrez le mot-cl\\xe9 de recherche\",\n NoResult: \"Aucun r\\xe9sultat trouv\\xe9\",\n NoData: \"Aucune donn\\xe9e\",\n Loading: \"Chargement\",\n SubTitle: (count)=>`${count} résultats trouvés`\n },\n Item: {\n View: \"Voir\"\n }\n },\n Mask: {\n Name: \"Masque\",\n Page: {\n Title: \"Masques de r\\xf4le pr\\xe9d\\xe9finis\",\n SubTitle: (count)=>`${count} définitions de rôle prédéfinies`,\n Search: \"Rechercher des masques de r\\xf4le\",\n Create: \"Cr\\xe9er\"\n },\n Item: {\n Info: (count)=>`Contient ${count} discussions prédéfinies`,\n Chat: \"Discussion\",\n View: \"Voir\",\n Edit: \"Modifier\",\n Delete: \"Supprimer\",\n DeleteConfirm: \"Confirmer la suppression ?\"\n },\n EditModal: {\n Title: (readonly)=>`Modifier le masque prédéfini ${readonly ? \" (lecture seule)\" : \"\"}`,\n Download: \"T\\xe9l\\xe9charger le masque\",\n Clone: \"Cloner le masque\"\n },\n Config: {\n Avatar: \"Avatar du r\\xf4le\",\n Name: \"Nom du r\\xf4le\",\n Sync: {\n Title: \"Utiliser les param\\xe8tres globaux\",\n SubTitle: \"Cette discussion utilise-t-elle les param\\xe8tres du mod\\xe8le globaux ?\",\n Confirm: \"Les param\\xe8tres personnalis\\xe9s de cette discussion seront automatiquement remplac\\xe9s. Confirmer l'activation des param\\xe8tres globaux ?\"\n },\n HideContext: {\n Title: \"Masquer les discussions pr\\xe9d\\xe9finies\",\n SubTitle: \"Les discussions pr\\xe9d\\xe9finies ne seront pas affich\\xe9es dans l'interface de discussion apr\\xe8s masquage\"\n },\n Share: {\n Title: \"Partager ce masque\",\n SubTitle: \"G\\xe9n\\xe9rer un lien direct pour ce masque\",\n Action: \"Copier le lien\"\n }\n }\n },\n NewChat: {\n Return: \"Retour\",\n Skip: \"Commencer directement\",\n NotShow: \"Ne plus afficher\",\n ConfirmNoShow: \"Confirmer la d\\xe9sactivation ? Vous pourrez r\\xe9activer cette option \\xe0 tout moment dans les param\\xe8tres.\",\n Title: \"Choisir un masque\",\n SubTitle: \"Commencez maintenant, rencontrez les pens\\xe9es derri\\xe8re le masque\",\n More: \"Voir tout\"\n },\n URLCommand: {\n Code: \"Code d'acc\\xe8s d\\xe9tect\\xe9 dans le lien, souhaitez-vous le remplir automatiquement ?\",\n Settings: \"Param\\xe8tres pr\\xe9d\\xe9finis d\\xe9tect\\xe9s dans le lien, souhaitez-vous les remplir automatiquement ?\"\n },\n UI: {\n Confirm: \"Confirmer\",\n Cancel: \"Annuler\",\n Close: \"Fermer\",\n Create: \"Cr\\xe9er\",\n Edit: \"Modifier\",\n Export: \"Exporter\",\n Import: \"Importer\",\n Sync: \"Synchroniser\",\n Config: \"Configurer\"\n },\n Exporter: {\n Description: {\n Title: \"Seuls les messages apr\\xe8s avoir effac\\xe9 le contexte seront affich\\xe9s\"\n },\n Model: \"Mod\\xe8le\",\n Messages: \"Messages\",\n Topic: \"Sujet\",\n Time: \"Temps\"\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (fr);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUNWdUwsTUFBTTtJQUNSO0lBRUFDLFlBQVk7UUFDVkMsTUFBTTtRQUNOeEosVUFDRTtJQUNKO0lBRUF5SixJQUFJO1FBQ0ZuTSxTQUFTO1FBQ1RvTSxRQUFRO1FBQ1JDLE9BQU87UUFDUGQsUUFBUTtRQUNSaEssTUFBTTtRQUNOUixRQUFRO1FBQ1J1TCxRQUFRO1FBQ1JsRyxNQUFNO1FBQ05qRCxRQUFRO0lBQ1Y7SUFDQW9KLFVBQVU7UUFDUkMsYUFBYTtZQUNYNU0sT0FDRTtRQUNKO1FBQ0FrSyxPQUFPO1FBQ1AyQyxVQUFVO1FBQ1Y5TCxPQUFPO1FBQ1ArTCxNQUFNO0lBQ1I7QUFDRjtBQUVBLGlFQUFlbk4sRUFBRUEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2xvY2FsZXMvZnIudHM/NDE2OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJtaXRLZXkgfSBmcm9tIFwiLi4vc3RvcmUvY29uZmlnXCI7XHJcbmltcG9ydCB0eXBlIHsgUGFydGlhbExvY2FsZVR5cGUgfSBmcm9tIFwiLi9pbmRleFwiO1xyXG5pbXBvcnQgeyBnZXRDbGllbnRDb25maWcgfSBmcm9tIFwiLi4vY29uZmlnL2NsaWVudFwiO1xyXG5pbXBvcnQgeyBTQUFTX0NIQVRfVVRNX1VSTCB9IGZyb20gXCJAL2FwcC9jb25zdGFudFwiO1xyXG5jb25zdCBpc0FwcCA9ICEhZ2V0Q2xpZW50Q29uZmlnKCk/LmlzQXBwO1xyXG5cclxuY29uc3QgZnI6IFBhcnRpYWxMb2NhbGVUeXBlID0ge1xyXG4gIFdJUDogXCJQcm9jaGFpbmVtZW50Li4uXCIsXHJcbiAgRXJyb3I6IHtcclxuICAgIFVuYXV0aG9yaXplZDogaXNBcHBcclxuICAgICAgPyBg8J+YhiBMYSBjb252ZXJzYXRpb24gYSByZW5jb250csOpIHF1ZWxxdWVzIHByb2Jsw6htZXMsIHBhcyBkZSBwYW5pcXVlIDpcclxuICAgIFxcXFwgMe+4j+KDoyBTaSB2b3VzIHNvdWhhaXRleiBjb21tZW5jZXIgc2FucyBjb25maWd1cmF0aW9uLCBbY2xpcXVleiBpY2kgcG91ciBkw6ltYXJyZXIgbGEgY29udmVyc2F0aW9uIGltbcOpZGlhdGVtZW50IPCfmoBdKCR7U0FBU19DSEFUX1VUTV9VUkx9KVxyXG4gICAgXFxcXCAy77iP4oOjIFNpIHZvdXMgc291aGFpdGV6IHV0aWxpc2VyIHZvcyBwcm9wcmVzIHJlc3NvdXJjZXMgT3BlbkFJLCBjbGlxdWV6IFtpY2ldKC8jL3NldHRpbmdzKSBwb3VyIG1vZGlmaWVyIGxlcyBwYXJhbcOodHJlcyDimpnvuI9gXHJcbiAgICAgIDogYPCfmIYgTGEgY29udmVyc2F0aW9uIGEgcmVuY29udHLDqSBxdWVscXVlcyBwcm9ibMOobWVzLCBwYXMgZGUgcGFuaXF1ZSA6XHJcbiAgICBcXCAx77iP4oOjIFNpIHZvdXMgc291aGFpdGV6IGNvbW1lbmNlciBzYW5zIGNvbmZpZ3VyYXRpb24sIFtjbGlxdWV6IGljaSBwb3VyIGTDqW1hcnJlciBsYSBjb252ZXJzYXRpb24gaW1tw6lkaWF0ZW1lbnQg8J+agF0oJHtTQUFTX0NIQVRfVVRNX1VSTH0pXHJcbiAgICBcXCAy77iP4oOjIFNpIHZvdXMgdXRpbGlzZXogdW5lIHZlcnNpb24gZMOpcGxvecOpZSBwcml2w6llLCBjbGlxdWV6IFtpY2ldKC8jL2F1dGgpIHBvdXIgZW50cmVyIGxhIGNsw6kgZCdhY2PDqHMg8J+UkVxyXG4gICAgXFwgM++4j+KDoyBTaSB2b3VzIHNvdWhhaXRleiB1dGlsaXNlciB2b3MgcHJvcHJlcyByZXNzb3VyY2VzIE9wZW5BSSwgY2xpcXVleiBbaWNpXSgvIy9zZXR0aW5ncykgcG91ciBtb2RpZmllciBsZXMgcGFyYW3DqHRyZXMg4pqZ77iPXHJcbiBgLFxyXG4gIH0sXHJcbiAgQXV0aDoge1xyXG4gICAgVGl0bGU6IFwiTW90IGRlIHBhc3NlIHJlcXVpc1wiLFxyXG4gICAgVGlwczogXCJMJ2FkbWluaXN0cmF0ZXVyIGEgYWN0aXbDqSBsYSB2w6lyaWZpY2F0aW9uIHBhciBtb3QgZGUgcGFzc2UuIFZldWlsbGV6IGVudHJlciBsZSBjb2RlIGQnYWNjw6hzIGNpLWRlc3NvdXNcIixcclxuICAgIFN1YlRpcHM6IFwiT3UgZW50cmV6IHZvdHJlIGNsw6kgQVBJIE9wZW5BSSBvdSBHb29nbGVcIixcclxuICAgIElucHV0OiBcIkVudHJleiBsZSBjb2RlIGQnYWNjw6hzIGljaVwiLFxyXG4gICAgQ29uZmlybTogXCJDb25maXJtZXJcIixcclxuICAgIExhdGVyOiBcIlBsdXMgdGFyZFwiLFxyXG4gICAgUmV0dXJuOiBcIlJldG91clwiLFxyXG4gICAgU2Fhc1RpcHM6XHJcbiAgICAgIFwiTGEgY29uZmlndXJhdGlvbiBlc3QgdHJvcCBjb21wbGlxdcOpZSwgamUgdmV1eCBsJ3V0aWxpc2VyIGltbcOpZGlhdGVtZW50XCIsXHJcbiAgICBUb3BUaXBzOlxyXG4gICAgICBcIvCfpbMgT2ZmcmUgZGUgbGFuY2VtZW50IE5leHRDaGF0IEFJLCBkw6libG9xdWV6IE9wZW5BSSBvMSwgR1BULTRvLCBDbGF1ZGUtMy41IGV0IGxlcyBkZXJuaWVycyBncmFuZHMgbW9kw6hsZXNcIixcclxuICB9LFxyXG4gIENoYXRJdGVtOiB7XHJcbiAgICBDaGF0SXRlbUNvdW50OiAoY291bnQ6IG51bWJlcikgPT4gYCR7Y291bnR9IGNvbnZlcnNhdGlvbnNgLFxyXG4gIH0sXHJcbiAgQ2hhdDoge1xyXG4gICAgU3ViVGl0bGU6IChjb3VudDogbnVtYmVyKSA9PiBgVG90YWwgZGUgJHtjb3VudH0gY29udmVyc2F0aW9uc2AsXHJcbiAgICBFZGl0TWVzc2FnZToge1xyXG4gICAgICBUaXRsZTogXCJNb2RpZmllciBsJ2hpc3RvcmlxdWUgZGVzIG1lc3NhZ2VzXCIsXHJcbiAgICAgIFRvcGljOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiU3VqZXQgZGUgbGEgZGlzY3Vzc2lvblwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIk1vZGlmaWVyIGxlIHN1amV0IGRlIGxhIGRpc2N1c3Npb24gYWN0dWVsXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgQWN0aW9uczoge1xyXG4gICAgICBDaGF0TGlzdDogXCJWb2lyIGxhIGxpc3RlIGRlcyBtZXNzYWdlc1wiLFxyXG4gICAgICBDb21wcmVzc2VkSGlzdG9yeTogXCJWb2lyIGwnaGlzdG9yaXF1ZSBkZXMgcHJvbXB0cyBjb21wcmVzc8Opc1wiLFxyXG4gICAgICBFeHBvcnQ6IFwiRXhwb3J0ZXIgbCdoaXN0b3JpcXVlIGRlIGxhIGRpc2N1c3Npb25cIixcclxuICAgICAgQ29weTogXCJDb3BpZXJcIixcclxuICAgICAgU3RvcDogXCJBcnLDqnRlclwiLFxyXG4gICAgICBSZXRyeTogXCJSw6llc3NheWVyXCIsXHJcbiAgICAgIFBpbjogXCLDiXBpbmdsZXJcIixcclxuICAgICAgUGluVG9hc3RDb250ZW50OiBcIjEgY29udmVyc2F0aW9uIMOpcGluZ2zDqWUgYXV4IHByb21wdHMgcHLDqWTDqWZpbmlzXCIsXHJcbiAgICAgIFBpblRvYXN0QWN0aW9uOiBcIlZvaXJcIixcclxuICAgICAgRGVsZXRlOiBcIlN1cHByaW1lclwiLFxyXG4gICAgICBFZGl0OiBcIk1vZGlmaWVyXCIsXHJcbiAgICAgIFJlZnJlc2hUaXRsZTogXCJBY3R1YWxpc2VyIGxlIHRpdHJlXCIsXHJcbiAgICAgIFJlZnJlc2hUb2FzdDogXCJEZW1hbmRlIGQnYWN0dWFsaXNhdGlvbiBkdSB0aXRyZSBlbnZvecOpZVwiLFxyXG4gICAgfSxcclxuICAgIENvbW1hbmRzOiB7XHJcbiAgICAgIG5ldzogXCJOb3V2ZWxsZSBkaXNjdXNzaW9uXCIsXHJcbiAgICAgIG5ld206IFwiQ3LDqWVyIHVuZSBkaXNjdXNzaW9uIMOgIHBhcnRpciBkdSBtYXNxdWVcIixcclxuICAgICAgbmV4dDogXCJEaXNjdXNzaW9uIHN1aXZhbnRlXCIsXHJcbiAgICAgIHByZXY6IFwiRGlzY3Vzc2lvbiBwcsOpY8OpZGVudGVcIixcclxuICAgICAgY2xlYXI6IFwiRWZmYWNlciBsZSBjb250ZXh0ZVwiLFxyXG4gICAgICBkZWw6IFwiU3VwcHJpbWVyIGxhIGRpc2N1c3Npb25cIixcclxuICAgIH0sXHJcbiAgICBJbnB1dEFjdGlvbnM6IHtcclxuICAgICAgU3RvcDogXCJBcnLDqnRlciBsYSByw6lwb25zZVwiLFxyXG4gICAgICBUb0JvdHRvbTogXCJBbGxlciBhdSBwbHVzIHLDqWNlbnRcIixcclxuICAgICAgVGhlbWU6IHtcclxuICAgICAgICBhdXRvOiBcIlRow6htZSBhdXRvbWF0aXF1ZVwiLFxyXG4gICAgICAgIGxpZ2h0OiBcIk1vZGUgY2xhaXJcIixcclxuICAgICAgICBkYXJrOiBcIk1vZGUgc29tYnJlXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFByb21wdDogXCJDb21tYW5kZXMgcmFwaWRlc1wiLFxyXG4gICAgICBNYXNrczogXCJUb3VzIGxlcyBtYXNxdWVzXCIsXHJcbiAgICAgIENsZWFyOiBcIkVmZmFjZXIgbGEgZGlzY3Vzc2lvblwiLFxyXG4gICAgICBTZXR0aW5nczogXCJQYXJhbcOodHJlcyBkZSBsYSBkaXNjdXNzaW9uXCIsXHJcbiAgICAgIFVwbG9hZEltYWdlOiBcIlTDqWzDqWNoYXJnZXIgdW5lIGltYWdlXCIsXHJcbiAgICB9LFxyXG4gICAgUmVuYW1lOiBcIlJlbm9tbWVyIGxhIGRpc2N1c3Npb25cIixcclxuICAgIFR5cGluZzogXCJFbiB0cmFpbiBkJ8OpY3JpcmXigKZcIixcclxuICAgIElucHV0OiAoc3VibWl0S2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgdmFyIGlucHV0SGludHMgPSBgJHtzdWJtaXRLZXl9IHBvdXIgZW52b3llcmA7XHJcbiAgICAgIGlmIChzdWJtaXRLZXkgPT09IFN0cmluZyhTdWJtaXRLZXkuRW50ZXIpKSB7XHJcbiAgICAgICAgaW5wdXRIaW50cyArPSBcIu+8jFNoaWZ0ICsgRW50ZXIgcG91ciBwYXNzZXIgw6AgbGEgbGlnbmVcIjtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gaW5wdXRIaW50cyArIFwi77yMLyBwb3VyIGNvbXBsw6l0ZXIsIDogcG91ciBkw6ljbGVuY2hlciBkZXMgY29tbWFuZGVzXCI7XHJcbiAgICB9LFxyXG4gICAgU2VuZDogXCJFbnZveWVyXCIsXHJcbiAgICBDb25maWc6IHtcclxuICAgICAgUmVzZXQ6IFwiRWZmYWNlciBsYSBtw6ltb2lyZVwiLFxyXG4gICAgICBTYXZlQXM6IFwiRW5yZWdpc3RyZXIgY29tbWUgbWFzcXVlXCIsXHJcbiAgICB9LFxyXG4gICAgSXNDb250ZXh0OiBcIlByb21wdCBwcsOpZMOpZmluaVwiLFxyXG4gIH0sXHJcbiAgRXhwb3J0OiB7XHJcbiAgICBUaXRsZTogXCJQYXJ0YWdlciBsJ2hpc3RvcmlxdWUgZGVzIGRpc2N1c3Npb25zXCIsXHJcbiAgICBDb3B5OiBcIlRvdXQgY29waWVyXCIsXHJcbiAgICBEb3dubG9hZDogXCJUw6lsw6ljaGFyZ2VyIGxlIGZpY2hpZXJcIixcclxuICAgIFNoYXJlOiBcIlBhcnRhZ2VyIHN1ciBTaGFyZUdQVFwiLFxyXG4gICAgTWVzc2FnZUZyb21Zb3U6IFwiVXRpbGlzYXRldXJcIixcclxuICAgIE1lc3NhZ2VGcm9tQ2hhdEdQVDogXCJDaGF0R1BUXCIsXHJcbiAgICBGb3JtYXQ6IHtcclxuICAgICAgVGl0bGU6IFwiRm9ybWF0IGQnZXhwb3J0YXRpb25cIixcclxuICAgICAgU3ViVGl0bGU6IFwiVm91cyBwb3V2ZXogZXhwb3J0ZXIgZW4gdGV4dGUgTWFya2Rvd24gb3UgZW4gaW1hZ2UgUE5HXCIsXHJcbiAgICB9LFxyXG4gICAgSW5jbHVkZUNvbnRleHQ6IHtcclxuICAgICAgVGl0bGU6IFwiSW5jbHVyZSBsZSBjb250ZXh0ZSBkdSBtYXNxdWVcIixcclxuICAgICAgU3ViVGl0bGU6IFwiQWZmaWNoZXIgbGUgY29udGV4dGUgZHUgbWFzcXVlIGRhbnMgbGVzIG1lc3NhZ2VzXCIsXHJcbiAgICB9LFxyXG4gICAgU3RlcHM6IHtcclxuICAgICAgU2VsZWN0OiBcIlPDqWxlY3Rpb25uZXJcIixcclxuICAgICAgUHJldmlldzogXCJBcGVyw6d1XCIsXHJcbiAgICB9LFxyXG4gICAgSW1hZ2U6IHtcclxuICAgICAgVG9hc3Q6IFwiR8OpbsOpcmF0aW9uIGRlIGxhIGNhcHR1cmUgZCfDqWNyYW5cIixcclxuICAgICAgTW9kYWw6XHJcbiAgICAgICAgXCJBcHB1eWV6IGxvbmd1ZW1lbnQgb3UgZmFpdGVzIHVuIGNsaWMgZHJvaXQgcG91ciBlbnJlZ2lzdHJlciBsJ2ltYWdlXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgU2VsZWN0OiB7XHJcbiAgICBTZWFyY2g6IFwiUmVjaGVyY2hlciBkZXMgbWVzc2FnZXNcIixcclxuICAgIEFsbDogXCJUb3V0IHPDqWxlY3Rpb25uZXJcIixcclxuICAgIExhdGVzdDogXCJEZXJuaWVycyBtZXNzYWdlc1wiLFxyXG4gICAgQ2xlYXI6IFwiRWZmYWNlciBsYSBzw6lsZWN0aW9uXCIsXHJcbiAgfSxcclxuICBNZW1vcnk6IHtcclxuICAgIFRpdGxlOiBcIlLDqXN1bcOpIGhpc3RvcmlxdWVcIixcclxuICAgIEVtcHR5Q29udGVudDogXCJMZSBjb250ZW51IGRlIGxhIGRpc2N1c3Npb24gZXN0IHRyb3AgY291cnQgcG91ciDDqnRyZSByw6lzdW3DqVwiLFxyXG4gICAgU2VuZDogXCJDb21wcmVzc2VyIGF1dG9tYXRpcXVlbWVudCBsJ2hpc3RvcmlxdWUgZGVzIGRpc2N1c3Npb25zIGV0IGwnZW52b3llciBjb21tZSBjb250ZXh0ZVwiLFxyXG4gICAgQ29weTogXCJDb3BpZXIgbGUgcsOpc3Vtw6lcIixcclxuICAgIFJlc2V0OiBcIlt1bnVzZWRdXCIsXHJcbiAgICBSZXNldENvbmZpcm06IFwiQ29uZmlybWVyIGxhIHN1cHByZXNzaW9uIGR1IHLDqXN1bcOpIGhpc3RvcmlxdWUgP1wiLFxyXG4gIH0sXHJcbiAgSG9tZToge1xyXG4gICAgTmV3Q2hhdDogXCJOb3V2ZWxsZSBkaXNjdXNzaW9uXCIsXHJcbiAgICBEZWxldGVDaGF0OiBcIkNvbmZpcm1lciBsYSBzdXBwcmVzc2lvbiBkZSBsYSBkaXNjdXNzaW9uIHPDqWxlY3Rpb25uw6llID9cIixcclxuICAgIERlbGV0ZVRvYXN0OiBcIkRpc2N1c3Npb24gc3VwcHJpbcOpZVwiLFxyXG4gICAgUmV2ZXJ0OiBcIkFubnVsZXJcIixcclxuICB9LFxyXG4gIFNldHRpbmdzOiB7XHJcbiAgICBUaXRsZTogXCJQYXJhbcOodHJlc1wiLFxyXG4gICAgU3ViVGl0bGU6IFwiVG91dGVzIGxlcyBvcHRpb25zIGRlIGNvbmZpZ3VyYXRpb25cIixcclxuXHJcbiAgICBEYW5nZXI6IHtcclxuICAgICAgUmVzZXQ6IHtcclxuICAgICAgICBUaXRsZTogXCJSw6lpbml0aWFsaXNlciB0b3VzIGxlcyBwYXJhbcOodHJlc1wiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCJSw6lpbml0aWFsaXNlciB0b3V0ZXMgbGVzIG9wdGlvbnMgZGUgY29uZmlndXJhdGlvbiBhdXggdmFsZXVycyBwYXIgZMOpZmF1dFwiLFxyXG4gICAgICAgIEFjdGlvbjogXCJSw6lpbml0aWFsaXNlciBtYWludGVuYW50XCIsXHJcbiAgICAgICAgQ29uZmlybTogXCJDb25maXJtZXIgbGEgcsOpaW5pdGlhbGlzYXRpb24gZGUgdG91cyBsZXMgcGFyYW3DqHRyZXMgP1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBDbGVhcjoge1xyXG4gICAgICAgIFRpdGxlOiBcIkVmZmFjZXIgdG91dGVzIGxlcyBkb25uw6llc1wiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCJFZmZhY2VyIHRvdXRlcyBsZXMgZGlzY3Vzc2lvbnMgZXQgbGVzIGRvbm7DqWVzIGRlIGNvbmZpZ3VyYXRpb25cIixcclxuICAgICAgICBBY3Rpb246IFwiRWZmYWNlciBtYWludGVuYW50XCIsXHJcbiAgICAgICAgQ29uZmlybTpcclxuICAgICAgICAgIFwiQ29uZmlybWVyIGwnZWZmYWNlbWVudCBkZSB0b3V0ZXMgbGVzIGRpc2N1c3Npb25zIGV0IGRvbm7DqWVzIGRlIGNvbmZpZ3VyYXRpb24gP1wiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIExhbmc6IHtcclxuICAgICAgTmFtZTogXCJMYW5ndWFnZVwiLCAvLyBBVFRFTlRJT046IGlmIHlvdSB3YW5uYSBhZGQgYSBuZXcgdHJhbnNsYXRpb24sIHBsZWFzZSBkbyBub3QgdHJhbnNsYXRlIHRoaXMgdmFsdWUsIGxlYXZlIGl0IGFzIGBMYW5ndWFnZWBcclxuICAgICAgQWxsOiBcIlRvdXRlcyBsZXMgbGFuZ3Vlc1wiLFxyXG4gICAgfSxcclxuICAgIEF2YXRhcjogXCJBdmF0YXJcIixcclxuICAgIEZvbnRTaXplOiB7XHJcbiAgICAgIFRpdGxlOiBcIlRhaWxsZSBkZSBsYSBwb2xpY2VcIixcclxuICAgICAgU3ViVGl0bGU6IFwiVGFpbGxlIGRlIGxhIHBvbGljZSBwb3VyIGxlIGNvbnRlbnUgZGVzIGRpc2N1c3Npb25zXCIsXHJcbiAgICB9LFxyXG4gICAgRm9udEZhbWlseToge1xyXG4gICAgICBUaXRsZTogXCJQb2xpY2UgZGUgQ2hhdFwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIlBvbGljZSBkdSBjb250ZW51IGR1IGNoYXQsIGxhaXNzZXogdmlkZSBwb3VyIGFwcGxpcXVlciBsYSBwb2xpY2UgcGFyIGTDqWZhdXQgZ2xvYmFsZVwiLFxyXG4gICAgICBQbGFjZWhvbGRlcjogXCJOb20gZGUgbGEgUG9saWNlXCIsXHJcbiAgICB9LFxyXG4gICAgSW5qZWN0U3lzdGVtUHJvbXB0czoge1xyXG4gICAgICBUaXRsZTogXCJJbmplY3RlciBkZXMgaW52aXRlcyBzeXN0w6htZVwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIkFqb3V0ZXIgZGUgbWFuacOocmUgZm9yY8OpZSB1bmUgaW52aXRlIHN5c3TDqG1lIHNpbXVsw6llIGRlIENoYXRHUFQgYXUgZMOpYnV0IGRlIGNoYXF1ZSBsaXN0ZSBkZSBtZXNzYWdlc1wiLFxyXG4gICAgfSxcclxuICAgIElucHV0VGVtcGxhdGU6IHtcclxuICAgICAgVGl0bGU6IFwiUHLDqXRyYWl0ZW1lbnQgZGVzIGVudHLDqWVzIHV0aWxpc2F0ZXVyXCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwiTGUgZGVybmllciBtZXNzYWdlIGRlIGwndXRpbGlzYXRldXIgc2VyYSBpbnTDqWdyw6kgZGFucyBjZSBtb2TDqGxlXCIsXHJcbiAgICB9LFxyXG5cclxuICAgIFVwZGF0ZToge1xyXG4gICAgICBWZXJzaW9uOiAoeDogc3RyaW5nKSA9PiBgVmVyc2lvbiBhY3R1ZWxsZSA6ICR7eH1gLFxyXG4gICAgICBJc0xhdGVzdDogXCJWb3VzIGF2ZXogbGEgZGVybmnDqHJlIHZlcnNpb25cIixcclxuICAgICAgQ2hlY2tVcGRhdGU6IFwiVsOpcmlmaWVyIGxlcyBtaXNlcyDDoCBqb3VyXCIsXHJcbiAgICAgIElzQ2hlY2tpbmc6IFwiVsOpcmlmaWNhdGlvbiBkZXMgbWlzZXMgw6Agam91ciBlbiBjb3Vycy4uLlwiLFxyXG4gICAgICBGb3VuZFVwZGF0ZTogKHg6IHN0cmluZykgPT4gYE5vdXZlbGxlIHZlcnNpb24gdHJvdXbDqWUgOiAke3h9YCxcclxuICAgICAgR29Ub1VwZGF0ZTogXCJBbGxlciDDoCBsYSBtaXNlIMOgIGpvdXJcIixcclxuICAgIH0sXHJcbiAgICBTZW5kS2V5OiBcIlRvdWNoZSBkJ2Vudm9pXCIsXHJcbiAgICBUaGVtZTogXCJUaMOobWVcIixcclxuICAgIFRpZ2h0Qm9yZGVyOiBcIk1vZGUgc2FucyBib3JkdXJlXCIsXHJcbiAgICBTZW5kUHJldmlld0J1YmJsZToge1xyXG4gICAgICBUaXRsZTogXCJCdWxsZSBkJ2FwZXLDp3VcIixcclxuICAgICAgU3ViVGl0bGU6IFwiQXBlcsOndSBkdSBjb250ZW51IE1hcmtkb3duIGRhbnMgbGEgYnVsbGUgZCdhcGVyw6d1XCIsXHJcbiAgICB9LFxyXG4gICAgQXV0b0dlbmVyYXRlVGl0bGU6IHtcclxuICAgICAgVGl0bGU6IFwiR8OpbsOpcmF0aW9uIGF1dG9tYXRpcXVlIGRlIHRpdHJlc1wiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIkfDqW7DqXJlciB1biB0aXRyZSBhcHByb3ByacOpIGVuIGZvbmN0aW9uIGR1IGNvbnRlbnUgZGUgbGEgZGlzY3Vzc2lvblwiLFxyXG4gICAgfSxcclxuICAgIFN5bmM6IHtcclxuICAgICAgQ2xvdWRTdGF0ZTogXCJEb25uw6llcyBjbG91ZFwiLFxyXG4gICAgICBOb3RTeW5jWWV0OiBcIlBhcyBlbmNvcmUgc3luY2hyb25pc8OpXCIsXHJcbiAgICAgIFN1Y2Nlc3M6IFwiU3luY2hyb25pc2F0aW9uIHLDqXVzc2llXCIsXHJcbiAgICAgIEZhaWw6IFwiw4ljaGVjIGRlIGxhIHN5bmNocm9uaXNhdGlvblwiLFxyXG5cclxuICAgICAgQ29uZmlnOiB7XHJcbiAgICAgICAgTW9kYWw6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkNvbmZpZ3VyZXIgbGEgc3luY2hyb25pc2F0aW9uIGNsb3VkXCIsXHJcbiAgICAgICAgICBDaGVjazogXCJWw6lyaWZpZXIgbGEgZGlzcG9uaWJpbGl0w6lcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFN5bmNUeXBlOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJUeXBlIGRlIHN5bmNocm9uaXNhdGlvblwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiQ2hvaXNpc3NleiBsZSBzZXJ2ZXVyIGRlIHN5bmNocm9uaXNhdGlvbiBwcsOpZsOpcsOpXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQcm94eToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQWN0aXZlciBsZSBwcm94eVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiTG9ycyBkZSBsYSBzeW5jaHJvbmlzYXRpb24gZGFucyBsZSBuYXZpZ2F0ZXVyLCBsZSBwcm94eSBkb2l0IMOqdHJlIGFjdGl2w6kgcG91ciDDqXZpdGVyIGxlcyByZXN0cmljdGlvbnMgZGUgZG9tYWluZSBjcm9pc8OpXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQcm94eVVybDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQWRyZXNzZSBkdSBwcm94eVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiVW5pcXVlbWVudCBwb3VyIGxlIHByb3h5IGRlIGRvbWFpbmUgY3JvaXPDqSBmb3VybmkgcGFyIGxlIHByb2pldFwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIFdlYkRhdjoge1xyXG4gICAgICAgICAgRW5kcG9pbnQ6IFwiQWRyZXNzZSBXZWJEQVZcIixcclxuICAgICAgICAgIFVzZXJOYW1lOiBcIk5vbSBkJ3V0aWxpc2F0ZXVyXCIsXHJcbiAgICAgICAgICBQYXNzd29yZDogXCJNb3QgZGUgcGFzc2VcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBVcFN0YXNoOiB7XHJcbiAgICAgICAgICBFbmRwb2ludDogXCJVUkwgUkVTVCBSZWRpcyBVcFN0YXNoXCIsXHJcbiAgICAgICAgICBVc2VyTmFtZTogXCJOb20gZGUgc2F1dmVnYXJkZVwiLFxyXG4gICAgICAgICAgUGFzc3dvcmQ6IFwiVG9rZW4gUkVTVCBSZWRpcyBVcFN0YXNoXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuXHJcbiAgICAgIExvY2FsU3RhdGU6IFwiRG9ubsOpZXMgbG9jYWxlc1wiLFxyXG4gICAgICBPdmVydmlldzogKG92ZXJ2aWV3OiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gYCR7b3ZlcnZpZXcuY2hhdH0gZGlzY3Vzc2lvbnMsICR7b3ZlcnZpZXcubWVzc2FnZX0gbWVzc2FnZXMsICR7b3ZlcnZpZXcucHJvbXB0fSBpbnZpdGVzLCAke292ZXJ2aWV3Lm1hc2t9IG1hc3F1ZXNgO1xyXG4gICAgICB9LFxyXG4gICAgICBJbXBvcnRGYWlsZWQ6IFwiw4ljaGVjIGRlIGwnaW1wb3J0YXRpb25cIixcclxuICAgIH0sXHJcbiAgICBNYXNrOiB7XHJcbiAgICAgIFNwbGFzaDoge1xyXG4gICAgICAgIFRpdGxlOiBcIlBhZ2UgZGUgZMOpbWFycmFnZSBkdSBtYXNxdWVcIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiQWZmaWNoZXIgbGEgcGFnZSBkZSBkw6ltYXJyYWdlIGR1IG1hc3F1ZSBsb3JzIGRlIGxhIGNyw6lhdGlvbiBkJ3VuZSBub3V2ZWxsZSBkaXNjdXNzaW9uXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEJ1aWx0aW46IHtcclxuICAgICAgICBUaXRsZTogXCJNYXNxdWVyIGxlcyBtYXNxdWVzIGludMOpZ3LDqXNcIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiTWFzcXVlciBsZXMgbWFzcXVlcyBpbnTDqWdyw6lzIGRhbnMgdG91dGVzIGxlcyBsaXN0ZXMgZGUgbWFzcXVlc1wiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIFByb21wdDoge1xyXG4gICAgICBEaXNhYmxlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiRMOpc2FjdGl2ZXIgbGEgY29tcGzDqXRpb24gYXV0b21hdGlxdWUgZGVzIGludml0ZXNcIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiU2Fpc2lyIC8gYXUgZMOpYnV0IGRlIGxhIHpvbmUgZGUgdGV4dGUgcG91ciBkw6ljbGVuY2hlciBsYSBjb21wbMOpdGlvbiBhdXRvbWF0aXF1ZVwiLFxyXG4gICAgICB9LFxyXG4gICAgICBMaXN0OiBcIkxpc3RlIGRlcyBpbnZpdGVzIHBlcnNvbm5hbGlzw6llc1wiLFxyXG4gICAgICBMaXN0Q291bnQ6IChidWlsdGluOiBudW1iZXIsIGN1c3RvbTogbnVtYmVyKSA9PlxyXG4gICAgICAgIGAke2J1aWx0aW59IGludMOpZ3LDqWVzLCAke2N1c3RvbX0gZMOpZmluaWVzIHBhciBsJ3V0aWxpc2F0ZXVyYCxcclxuICAgICAgRWRpdDogXCJNb2RpZmllclwiLFxyXG4gICAgICBNb2RhbDoge1xyXG4gICAgICAgIFRpdGxlOiBcIkxpc3RlIGRlcyBpbnZpdGVzXCIsXHJcbiAgICAgICAgQWRkOiBcIkNyw6llclwiLFxyXG4gICAgICAgIFNlYXJjaDogXCJSZWNoZXJjaGVyIGRlcyBpbnZpdGVzXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEVkaXRNb2RhbDoge1xyXG4gICAgICAgIFRpdGxlOiBcIk1vZGlmaWVyIGxlcyBpbnZpdGVzXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgSGlzdG9yeUNvdW50OiB7XHJcbiAgICAgIFRpdGxlOiBcIk5vbWJyZSBkZSBtZXNzYWdlcyBoaXN0b3JpcXVlc1wiLFxyXG4gICAgICBTdWJUaXRsZTogXCJOb21icmUgZGUgbWVzc2FnZXMgaGlzdG9yaXF1ZXMgZW52b3nDqXMgYXZlYyBjaGFxdWUgZGVtYW5kZVwiLFxyXG4gICAgfSxcclxuICAgIENvbXByZXNzVGhyZXNob2xkOiB7XHJcbiAgICAgIFRpdGxlOiBcIlNldWlsIGRlIGNvbXByZXNzaW9uIGRlcyBtZXNzYWdlcyBoaXN0b3JpcXVlc1wiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIkNvbXByZXNzZXIgbGVzIG1lc3NhZ2VzIGhpc3RvcmlxdWVzIGxvcnNxdWUgbGV1ciBsb25ndWV1ciBkw6lwYXNzZSBjZXR0ZSB2YWxldXJcIixcclxuICAgIH0sXHJcblxyXG4gICAgVXNhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwiVsOpcmlmaWNhdGlvbiBkdSBzb2xkZVwiLFxyXG4gICAgICBTdWJUaXRsZSh1c2VkOiBhbnksIHRvdGFsOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gYFV0aWxpc8OpIGNlIG1vaXMtY2kgOiAkJHt1c2VkfSwgVG90YWwgZCdhYm9ubmVtZW50IDogJCR7dG90YWx9YDtcclxuICAgICAgfSxcclxuICAgICAgSXNDaGVja2luZzogXCJWw6lyaWZpY2F0aW9uIGVuIGNvdXJz4oCmXCIsXHJcbiAgICAgIENoZWNrOiBcIlJlLXbDqXJpZmllclwiLFxyXG4gICAgICBOb0FjY2VzczpcclxuICAgICAgICBcIkVudHJleiBsYSBjbMOpIEFQSSBvdSBsZSBtb3QgZGUgcGFzc2UgZCdhY2PDqHMgcG91ciB2w6lyaWZpZXIgbGUgc29sZGVcIixcclxuICAgIH0sXHJcblxyXG4gICAgQWNjZXNzOiB7XHJcbiAgICAgIFNhYXNTdGFydDoge1xyXG4gICAgICAgIFRpdGxlOiBcIlV0aWxpc2VyIE5leHRDaGF0IEFJXCIsXHJcbiAgICAgICAgTGFiZWw6IFwiKExhIHNvbHV0aW9uIGxhIHBsdXMgcmVudGFibGUpXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIk9mZmljaWVsbGVtZW50IG1haW50ZW51IHBhciBOZXh0Q2hhdCwgcHLDqnQgw6AgbCdlbXBsb2kgc2FucyBjb25maWd1cmF0aW9uLCBwcmVuZCBlbiBjaGFyZ2UgbGVzIGRlcm5pZXJzIGdyYW5kcyBtb2TDqGxlcyBjb21tZSBPcGVuQUkgbzEsIEdQVC00byBldCBDbGF1ZGUtMy41XCIsXHJcbiAgICAgICAgQ2hhdE5vdzogXCJEaXNjdXRlciBtYWludGVuYW50XCIsXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICBBY2Nlc3NDb2RlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiTW90IGRlIHBhc3NlIGQnYWNjw6hzXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiTCdhZG1pbmlzdHJhdGV1ciBhIGFjdGl2w6kgbCdhY2PDqHMgc8OpY3VyaXPDqVwiLFxyXG4gICAgICAgIFBsYWNlaG9sZGVyOiBcIlZldWlsbGV6IGVudHJlciBsZSBtb3QgZGUgcGFzc2UgZCdhY2PDqHNcIixcclxuICAgICAgfSxcclxuICAgICAgQ3VzdG9tRW5kcG9pbnQ6IHtcclxuICAgICAgICBUaXRsZTogXCJJbnRlcmZhY2UgcGVyc29ubmFsaXPDqWVcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJVdGlsaXNlciB1biBzZXJ2aWNlIEF6dXJlIG91IE9wZW5BSSBwZXJzb25uYWxpc8OpXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFByb3ZpZGVyOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiRm91cm5pc3NldXIgZGUgbW9kw6hsZVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIkNoYW5nZXIgZGUgZm91cm5pc3NldXIgZGUgc2VydmljZVwiLFxyXG4gICAgICB9LFxyXG4gICAgICBPcGVuQUk6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkNsw6kgQVBJXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgICAgXCJVdGlsaXNlciB1bmUgY2zDqSBPcGVuQUkgcGVyc29ubmFsaXPDqWUgcG91ciBjb250b3VybmVyIGxlcyByZXN0cmljdGlvbnMgZCdhY2PDqHMgcGFyIG1vdCBkZSBwYXNzZVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQ2zDqSBBUEkgT3BlbkFJXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFkcmVzc2UgZGUgbCdpbnRlcmZhY2VcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkRvaXQgaW5jbHVyZSBodHRwKHMpOi8vIGVuIGRlaG9ycyBkZSBsJ2FkcmVzc2UgcGFyIGTDqWZhdXRcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBBenVyZToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQ2zDqSBkJ2ludGVyZmFjZVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiVXRpbGlzZXIgdW5lIGNsw6kgQXp1cmUgcGVyc29ubmFsaXPDqWUgcG91ciBjb250b3VybmVyIGxlcyByZXN0cmljdGlvbnMgZCdhY2PDqHMgcGFyIG1vdCBkZSBwYXNzZVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQ2zDqSBBUEkgQXp1cmVcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQWRyZXNzZSBkZSBsJ2ludGVyZmFjZVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiRXhlbXBsZSA6XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgQXBpVmVyaW9uOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJWZXJzaW9uIGRlIGwnaW50ZXJmYWNlICh2ZXJzaW9uIEFQSSBhenVyZSlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkNob2lzaXNzZXogdW5lIHZlcnNpb24gc3DDqWNpZmlxdWVcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBBbnRocm9waWM6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkNsw6kgZCdpbnRlcmZhY2VcIixcclxuICAgICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgICBcIlV0aWxpc2VyIHVuZSBjbMOpIEFudGhyb3BpYyBwZXJzb25uYWxpc8OpZSBwb3VyIGNvbnRvdXJuZXIgbGVzIHJlc3RyaWN0aW9ucyBkJ2FjY8OocyBwYXIgbW90IGRlIHBhc3NlXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJDbMOpIEFQSSBBbnRocm9waWNcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQWRyZXNzZSBkZSBsJ2ludGVyZmFjZVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiRXhlbXBsZSA6XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgQXBpVmVyaW9uOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJWZXJzaW9uIGRlIGwnaW50ZXJmYWNlICh2ZXJzaW9uIEFQSSBjbGF1ZGUpXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJDaG9pc2lzc2V6IHVuZSB2ZXJzaW9uIHNww6ljaWZpcXVlIGRlIGwnQVBJXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgR29vZ2xlOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJDbMOpIEFQSVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiT2J0ZW5leiB2b3RyZSBjbMOpIEFQSSBHb29nbGUgQUlcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkVudHJleiB2b3RyZSBjbMOpIEFQSSBHb29nbGUgQUkgU3R1ZGlvXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFkcmVzc2UgZGUgbCdpbnRlcmZhY2VcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkV4ZW1wbGUgOlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcnNpb246IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlZlcnNpb24gZGUgbCdBUEkgKHBvdXIgZ2VtaW5pLXBybyB1bmlxdWVtZW50KVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiQ2hvaXNpc3NleiB1bmUgdmVyc2lvbiBzcMOpY2lmaXF1ZSBkZSBsJ0FQSVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgR29vZ2xlU2FmZXR5U2V0dGluZ3M6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIk5pdmVhdSBkZSBmaWx0cmFnZSBkZSBzw6ljdXJpdMOpIEdvb2dsZVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiRMOpZmluaXIgbGUgbml2ZWF1IGRlIGZpbHRyYWdlIGR1IGNvbnRlbnVcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBCYWlkdToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQ2zDqSBBUElcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlV0aWxpc2VyIHVuZSBjbMOpIEFQSSBCYWlkdSBwZXJzb25uYWxpc8OpZVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQ2zDqSBBUEkgQmFpZHVcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFNlY3JldEtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQ2zDqSBzZWNyw6h0ZVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiVXRpbGlzZXIgdW5lIGNsw6kgc2VjcsOodGUgQmFpZHUgcGVyc29ubmFsaXPDqWVcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkNsw6kgc2VjcsOodGUgQmFpZHVcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBZHJlc3NlIGRlIGwnaW50ZXJmYWNlXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgICAgXCJOb24gcHJpcyBlbiBjaGFyZ2UgcG91ciBsZXMgY29uZmlndXJhdGlvbnMgcGVyc29ubmFsaXPDqWVzIGRhbnMgLmVudlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEJ5dGVEYW5jZToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQ2zDqSBkJ2ludGVyZmFjZVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiVXRpbGlzZXIgdW5lIGNsw6kgQVBJIEJ5dGVEYW5jZSBwZXJzb25uYWxpc8OpZVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQ2zDqSBBUEkgQnl0ZURhbmNlXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQWRyZXNzZSBkZSBsJ2ludGVyZmFjZVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiRXhlbXBsZSA6XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQWxpYmFiYToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQ2zDqSBkJ2ludGVyZmFjZVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiVXRpbGlzZXIgdW5lIGNsw6kgQVBJIEFsaWJhYmEgQ2xvdWQgcGVyc29ubmFsaXPDqWVcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkNsw6kgQVBJIEFsaWJhYmEgQ2xvdWRcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBZHJlc3NlIGRlIGwnaW50ZXJmYWNlXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJFeGVtcGxlIDpcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBDdXN0b21Nb2RlbDoge1xyXG4gICAgICAgIFRpdGxlOiBcIk5vbSBkdSBtb2TDqGxlIHBlcnNvbm5hbGlzw6lcIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiQWpvdXRlciBkZXMgb3B0aW9ucyBkZSBtb2TDqGxlcyBwZXJzb25uYWxpc8Opcywgc8OpcGFyw6llcyBwYXIgZGVzIHZpcmd1bGVzXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG5cclxuICAgIE1vZGVsOiBcIk1vZMOobGVcIixcclxuICAgIENvbXByZXNzTW9kZWw6IHtcclxuICAgICAgVGl0bGU6IFwiTW9kw6hsZSBkZSBjb21wcmVzc2lvblwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJNb2TDqGxlIHV0aWxpc8OpIHBvdXIgY29tcHJlc3NlciBsJ2hpc3RvcmlxdWVcIixcclxuICAgIH0sXHJcbiAgICBUZW1wZXJhdHVyZToge1xyXG4gICAgICBUaXRsZTogXCJBbMOpYXRvaXJlICh0ZW1wZXJhdHVyZSlcIixcclxuICAgICAgU3ViVGl0bGU6IFwiUGx1cyBsYSB2YWxldXIgZXN0IMOpbGV2w6llLCBwbHVzIGxlcyByw6lwb25zZXMgc29udCBhbMOpYXRvaXJlc1wiLFxyXG4gICAgfSxcclxuICAgIFRvcFA6IHtcclxuICAgICAgVGl0bGU6IFwiw4ljaGFudGlsbG9ubmFnZSBwYXIgbm95YXUgKHRvcF9wKVwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIlNlbWJsYWJsZSDDoCBsJ2Fsw6lhdG9pcmUsIG1haXMgbmUgcGFzIG1vZGlmaWVyIGVuIG3Dqm1lIHRlbXBzIHF1ZSBsJ2Fsw6lhdG9pcmVcIixcclxuICAgIH0sXHJcbiAgICBNYXhUb2tlbnM6IHtcclxuICAgICAgVGl0bGU6IFwiTGltaXRlIGRlIHLDqXBvbnNlIHVuaXF1ZSAobWF4X3Rva2VucylcIixcclxuICAgICAgU3ViVGl0bGU6IFwiTm9tYnJlIG1heGltYWwgZGUgdG9rZW5zIHV0aWxpc8OpcyBwb3VyIHVuZSBpbnRlcmFjdGlvbiB1bmlxdWVcIixcclxuICAgIH0sXHJcbiAgICBQcmVzZW5jZVBlbmFsdHk6IHtcclxuICAgICAgVGl0bGU6IFwiTm91dmVhdXTDqSBkdSBzdWpldCAocHJlc2VuY2VfcGVuYWx0eSlcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJQbHVzIGxhIHZhbGV1ciBlc3Qgw6lsZXbDqWUsIHBsdXMgaWwgZXN0IHByb2JhYmxlIGQnw6lsYXJnaXIgYXV4IG5vdXZlYXV4IHN1amV0c1wiLFxyXG4gICAgfSxcclxuICAgIEZyZXF1ZW5jeVBlbmFsdHk6IHtcclxuICAgICAgVGl0bGU6IFwiUMOpbmFsaXTDqSBkZSBmcsOpcXVlbmNlIChmcmVxdWVuY3lfcGVuYWx0eSlcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJQbHVzIGxhIHZhbGV1ciBlc3Qgw6lsZXbDqWUsIHBsdXMgaWwgZXN0IHByb2JhYmxlIGRlIHLDqWR1aXJlIGxlcyByw6lww6l0aXRpb25zXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgU3RvcmU6IHtcclxuICAgIERlZmF1bHRUb3BpYzogXCJOb3V2ZWxsZSBkaXNjdXNzaW9uXCIsXHJcbiAgICBCb3RIZWxsbzogXCJDb21tZW50IHB1aXMtamUgdm91cyBhaWRlciA/XCIsXHJcbiAgICBFcnJvcjogXCJVbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSwgdmV1aWxsZXogcsOpZXNzYXllciBwbHVzIHRhcmRcIixcclxuICAgIFByb21wdDoge1xyXG4gICAgICBIaXN0b3J5OiAoY29udGVudDogc3RyaW5nKSA9PlxyXG4gICAgICAgIFwiVm9pY2kgbGUgcsOpc3Vtw6kgZGUgbGEgZGlzY3Vzc2lvbiBwcsOpY8OpZGVudGUgOiBcIiArIGNvbnRlbnQsXHJcbiAgICAgIFRvcGljOlxyXG4gICAgICAgIFwiVXRpbGlzZXogcXVhdHJlIMOgIGNpbnEgbW90cyBwb3VyIHJldG91cm5lciBsZSBzdWpldCBzdWNjaW5jdCBkZSBjZXR0ZSBwaHJhc2UsIHNhbnMgZXhwbGljYXRpb24sIHNhbnMgcG9uY3R1YXRpb24sIHNhbnMgaW50ZXJqZWN0aW9ucywgc2FucyB0ZXh0ZSBzdXBlcmZsdSwgc2FucyBncmFzLiBTaSBhdWN1biBzdWpldCwgcmV0b3VybmV6IHNpbXBsZW1lbnQgwqsgZGlzY3Vzc2lvbiBpbmZvcm1lbGxlIMK7XCIsXHJcbiAgICAgIFN1bW1hcml6ZTpcclxuICAgICAgICBcIkZhaXRlcyB1biByw6lzdW3DqSBzdWNjaW5jdCBkZSBsYSBkaXNjdXNzaW9uLCDDoCB1dGlsaXNlciBjb21tZSBwcm9tcHQgZGUgY29udGV4dGUgdWx0w6lyaWV1ciwgZW4gbW9pbnMgZGUgMjAwIG1vdHNcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBDb3B5OiB7XHJcbiAgICBTdWNjZXNzOiBcIkNvcGnDqSBkYW5zIGxlIHByZXNzZS1wYXBpZXJzXCIsXHJcbiAgICBGYWlsZWQ6IFwiw4ljaGVjIGRlIGxhIGNvcGllLCB2ZXVpbGxleiBhdXRvcmlzZXIgbCdhY2PDqHMgYXUgcHJlc3NlLXBhcGllcnNcIixcclxuICB9LFxyXG4gIERvd25sb2FkOiB7XHJcbiAgICBTdWNjZXNzOiBcIkxlIGNvbnRlbnUgYSDDqXTDqSB0w6lsw6ljaGFyZ8OpIGRhbnMgdm90cmUgcsOpcGVydG9pcmUuXCIsXHJcbiAgICBGYWlsZWQ6IFwiw4ljaGVjIGR1IHTDqWzDqWNoYXJnZW1lbnQuXCIsXHJcbiAgfSxcclxuICBDb250ZXh0OiB7XHJcbiAgICBUb2FzdDogKHg6IGFueSkgPT4gYENvbnRpZW50ICR7eH0gaW52aXRlcyBwcsOpZMOpZmluaWVzYCxcclxuICAgIEVkaXQ6IFwiUGFyYW3DqHRyZXMgZGUgbGEgZGlzY3Vzc2lvbiBhY3R1ZWxsZVwiLFxyXG4gICAgQWRkOiBcIkFqb3V0ZXIgdW5lIGRpc2N1c3Npb25cIixcclxuICAgIENsZWFyOiBcIkNvbnRleHRlIGVmZmFjw6lcIixcclxuICAgIFJldmVydDogXCJSZXN0YXVyZXIgbGUgY29udGV4dGVcIixcclxuICB9LFxyXG4gIFBsdWdpbjoge1xyXG4gICAgTmFtZTogXCJQbHVnaW5cIixcclxuICB9LFxyXG4gIEZpbmVUdW5lZDoge1xyXG4gICAgU3lzbWVzc2FnZTogXCJWb3VzIMOqdGVzIHVuIGFzc2lzdGFudFwiLFxyXG4gIH0sXHJcbiAgU2VhcmNoQ2hhdDoge1xyXG4gICAgTmFtZTogXCJSZWNoZXJjaGVcIixcclxuICAgIFBhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwiUmVjaGVyY2hlciBkYW5zIGwnaGlzdG9yaXF1ZSBkZXMgZGlzY3Vzc2lvbnNcIixcclxuICAgICAgU2VhcmNoOiBcIkVudHJleiBsZSBtb3QtY2zDqSBkZSByZWNoZXJjaGVcIixcclxuICAgICAgTm9SZXN1bHQ6IFwiQXVjdW4gcsOpc3VsdGF0IHRyb3V2w6lcIixcclxuICAgICAgTm9EYXRhOiBcIkF1Y3VuZSBkb25uw6llXCIsXHJcbiAgICAgIExvYWRpbmc6IFwiQ2hhcmdlbWVudFwiLFxyXG5cclxuICAgICAgU3ViVGl0bGU6IChjb3VudDogbnVtYmVyKSA9PiBgJHtjb3VudH0gcsOpc3VsdGF0cyB0cm91dsOpc2AsXHJcbiAgICB9LFxyXG4gICAgSXRlbToge1xyXG4gICAgICBWaWV3OiBcIlZvaXJcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBNYXNrOiB7XHJcbiAgICBOYW1lOiBcIk1hc3F1ZVwiLFxyXG4gICAgUGFnZToge1xyXG4gICAgICBUaXRsZTogXCJNYXNxdWVzIGRlIHLDtGxlIHByw6lkw6lmaW5pc1wiLFxyXG4gICAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50fSBkw6lmaW5pdGlvbnMgZGUgcsO0bGUgcHLDqWTDqWZpbmllc2AsXHJcbiAgICAgIFNlYXJjaDogXCJSZWNoZXJjaGVyIGRlcyBtYXNxdWVzIGRlIHLDtGxlXCIsXHJcbiAgICAgIENyZWF0ZTogXCJDcsOpZXJcIixcclxuICAgIH0sXHJcbiAgICBJdGVtOiB7XHJcbiAgICAgIEluZm86IChjb3VudDogbnVtYmVyKSA9PiBgQ29udGllbnQgJHtjb3VudH0gZGlzY3Vzc2lvbnMgcHLDqWTDqWZpbmllc2AsXHJcbiAgICAgIENoYXQ6IFwiRGlzY3Vzc2lvblwiLFxyXG4gICAgICBWaWV3OiBcIlZvaXJcIixcclxuICAgICAgRWRpdDogXCJNb2RpZmllclwiLFxyXG4gICAgICBEZWxldGU6IFwiU3VwcHJpbWVyXCIsXHJcbiAgICAgIERlbGV0ZUNvbmZpcm06IFwiQ29uZmlybWVyIGxhIHN1cHByZXNzaW9uID9cIixcclxuICAgIH0sXHJcbiAgICBFZGl0TW9kYWw6IHtcclxuICAgICAgVGl0bGU6IChyZWFkb25seTogYm9vbGVhbikgPT5cclxuICAgICAgICBgTW9kaWZpZXIgbGUgbWFzcXVlIHByw6lkw6lmaW5pICR7cmVhZG9ubHkgPyBcIiAobGVjdHVyZSBzZXVsZSlcIiA6IFwiXCJ9YCxcclxuICAgICAgRG93bmxvYWQ6IFwiVMOpbMOpY2hhcmdlciBsZSBtYXNxdWVcIixcclxuICAgICAgQ2xvbmU6IFwiQ2xvbmVyIGxlIG1hc3F1ZVwiLFxyXG4gICAgfSxcclxuICAgIENvbmZpZzoge1xyXG4gICAgICBBdmF0YXI6IFwiQXZhdGFyIGR1IHLDtGxlXCIsXHJcbiAgICAgIE5hbWU6IFwiTm9tIGR1IHLDtGxlXCIsXHJcbiAgICAgIFN5bmM6IHtcclxuICAgICAgICBUaXRsZTogXCJVdGlsaXNlciBsZXMgcGFyYW3DqHRyZXMgZ2xvYmF1eFwiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCJDZXR0ZSBkaXNjdXNzaW9uIHV0aWxpc2UtdC1lbGxlIGxlcyBwYXJhbcOodHJlcyBkdSBtb2TDqGxlIGdsb2JhdXggP1wiLFxyXG4gICAgICAgIENvbmZpcm06XHJcbiAgICAgICAgICBcIkxlcyBwYXJhbcOodHJlcyBwZXJzb25uYWxpc8OpcyBkZSBjZXR0ZSBkaXNjdXNzaW9uIHNlcm9udCBhdXRvbWF0aXF1ZW1lbnQgcmVtcGxhY8Opcy4gQ29uZmlybWVyIGwnYWN0aXZhdGlvbiBkZXMgcGFyYW3DqHRyZXMgZ2xvYmF1eCA/XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEhpZGVDb250ZXh0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiTWFzcXVlciBsZXMgZGlzY3Vzc2lvbnMgcHLDqWTDqWZpbmllc1wiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCJMZXMgZGlzY3Vzc2lvbnMgcHLDqWTDqWZpbmllcyBuZSBzZXJvbnQgcGFzIGFmZmljaMOpZXMgZGFucyBsJ2ludGVyZmFjZSBkZSBkaXNjdXNzaW9uIGFwcsOocyBtYXNxdWFnZVwiLFxyXG4gICAgICB9LFxyXG4gICAgICBTaGFyZToge1xyXG4gICAgICAgIFRpdGxlOiBcIlBhcnRhZ2VyIGNlIG1hc3F1ZVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIkfDqW7DqXJlciB1biBsaWVuIGRpcmVjdCBwb3VyIGNlIG1hc3F1ZVwiLFxyXG4gICAgICAgIEFjdGlvbjogXCJDb3BpZXIgbGUgbGllblwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9LFxyXG4gIE5ld0NoYXQ6IHtcclxuICAgIFJldHVybjogXCJSZXRvdXJcIixcclxuICAgIFNraXA6IFwiQ29tbWVuY2VyIGRpcmVjdGVtZW50XCIsXHJcbiAgICBOb3RTaG93OiBcIk5lIHBsdXMgYWZmaWNoZXJcIixcclxuICAgIENvbmZpcm1Ob1Nob3c6XHJcbiAgICAgIFwiQ29uZmlybWVyIGxhIGTDqXNhY3RpdmF0aW9uID8gVm91cyBwb3VycmV6IHLDqWFjdGl2ZXIgY2V0dGUgb3B0aW9uIMOgIHRvdXQgbW9tZW50IGRhbnMgbGVzIHBhcmFtw6h0cmVzLlwiLFxyXG4gICAgVGl0bGU6IFwiQ2hvaXNpciB1biBtYXNxdWVcIixcclxuICAgIFN1YlRpdGxlOiBcIkNvbW1lbmNleiBtYWludGVuYW50LCByZW5jb250cmV6IGxlcyBwZW5zw6llcyBkZXJyacOocmUgbGUgbWFzcXVlXCIsXHJcbiAgICBNb3JlOiBcIlZvaXIgdG91dFwiLFxyXG4gIH0sXHJcblxyXG4gIFVSTENvbW1hbmQ6IHtcclxuICAgIENvZGU6IFwiQ29kZSBkJ2FjY8OocyBkw6l0ZWN0w6kgZGFucyBsZSBsaWVuLCBzb3VoYWl0ZXotdm91cyBsZSByZW1wbGlyIGF1dG9tYXRpcXVlbWVudCA/XCIsXHJcbiAgICBTZXR0aW5nczpcclxuICAgICAgXCJQYXJhbcOodHJlcyBwcsOpZMOpZmluaXMgZMOpdGVjdMOpcyBkYW5zIGxlIGxpZW4sIHNvdWhhaXRlei12b3VzIGxlcyByZW1wbGlyIGF1dG9tYXRpcXVlbWVudCA/XCIsXHJcbiAgfSxcclxuXHJcbiAgVUk6IHtcclxuICAgIENvbmZpcm06IFwiQ29uZmlybWVyXCIsXHJcbiAgICBDYW5jZWw6IFwiQW5udWxlclwiLFxyXG4gICAgQ2xvc2U6IFwiRmVybWVyXCIsXHJcbiAgICBDcmVhdGU6IFwiQ3LDqWVyXCIsXHJcbiAgICBFZGl0OiBcIk1vZGlmaWVyXCIsXHJcbiAgICBFeHBvcnQ6IFwiRXhwb3J0ZXJcIixcclxuICAgIEltcG9ydDogXCJJbXBvcnRlclwiLFxyXG4gICAgU3luYzogXCJTeW5jaHJvbmlzZXJcIixcclxuICAgIENvbmZpZzogXCJDb25maWd1cmVyXCIsXHJcbiAgfSxcclxuICBFeHBvcnRlcjoge1xyXG4gICAgRGVzY3JpcHRpb246IHtcclxuICAgICAgVGl0bGU6XHJcbiAgICAgICAgXCJTZXVscyBsZXMgbWVzc2FnZXMgYXByw6hzIGF2b2lyIGVmZmFjw6kgbGUgY29udGV4dGUgc2Vyb250IGFmZmljaMOpc1wiLFxyXG4gICAgfSxcclxuICAgIE1vZGVsOiBcIk1vZMOobGVcIixcclxuICAgIE1lc3NhZ2VzOiBcIk1lc3NhZ2VzXCIsXHJcbiAgICBUb3BpYzogXCJTdWpldFwiLFxyXG4gICAgVGltZTogXCJUZW1wc1wiLFxyXG4gIH0sXHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmcjtcclxuIl0sIm5hbWVzIjpbIlN1Ym1pdEtleSIsImdldENsaWVudENvbmZpZyIsIlNBQVNfQ0hBVF9VVE1fVVJMIiwiaXNBcHAiLCJmciIsIldJUCIsIkVycm9yIiwiVW5hdXRob3JpemVkIiwiQXV0aCIsIlRpdGxlIiwiVGlwcyIsIlN1YlRpcHMiLCJJbnB1dCIsIkNvbmZpcm0iLCJMYXRlciIsIlJldHVybiIsIlNhYXNUaXBzIiwiVG9wVGlwcyIsIkNoYXRJdGVtIiwiQ2hhdEl0ZW1Db3VudCIsImNvdW50IiwiQ2hhdCIsIlN1YlRpdGxlIiwiRWRpdE1lc3NhZ2UiLCJUb3BpYyIsIkFjdGlvbnMiLCJDaGF0TGlzdCIsIkNvbXByZXNzZWRIaXN0b3J5IiwiRXhwb3J0IiwiQ29weSIsIlN0b3AiLCJSZXRyeSIsIlBpbiIsIlBpblRvYXN0Q29udGVudCIsIlBpblRvYXN0QWN0aW9uIiwiRGVsZXRlIiwiRWRpdCIsIlJlZnJlc2hUaXRsZSIsIlJlZnJlc2hUb2FzdCIsIkNvbW1hbmRzIiwibmV3IiwibmV3bSIsIm5leHQiLCJwcmV2IiwiY2xlYXIiLCJkZWwiLCJJbnB1dEFjdGlvbnMiLCJUb0JvdHRvbSIsIlRoZW1lIiwiYXV0byIsImxpZ2h0IiwiZGFyayIsIlByb21wdCIsIk1hc2tzIiwiQ2xlYXIiLCJTZXR0aW5ncyIsIlVwbG9hZEltYWdlIiwiUmVuYW1lIiwiVHlwaW5nIiwic3VibWl0S2V5IiwiaW5wdXRIaW50cyIsIlN0cmluZyIsIkVudGVyIiwiU2VuZCIsIkNvbmZpZyIsIlJlc2V0IiwiU2F2ZUFzIiwiSXNDb250ZXh0IiwiRG93bmxvYWQiLCJTaGFyZSIsIk1lc3NhZ2VGcm9tWW91IiwiTWVzc2FnZUZyb21DaGF0R1BUIiwiRm9ybWF0IiwiSW5jbHVkZUNvbnRleHQiLCJTdGVwcyIsIlNlbGVjdCIsIlByZXZpZXciLCJJbWFnZSIsIlRvYXN0IiwiTW9kYWwiLCJTZWFyY2giLCJBbGwiLCJMYXRlc3QiLCJNZW1vcnkiLCJFbXB0eUNvbnRlbnQiLCJSZXNldENvbmZpcm0iLCJIb21lIiwiTmV3Q2hhdCIsIkRlbGV0ZUNoYXQiLCJEZWxldGVUb2FzdCIsIlJldmVydCIsIkRhbmdlciIsIkFjdGlvbiIsIkxhbmciLCJOYW1lIiwiQXZhdGFyIiwiRm9udFNpemUiLCJGb250RmFtaWx5IiwiUGxhY2Vob2xkZXIiLCJJbmplY3RTeXN0ZW1Qcm9tcHRzIiwiSW5wdXRUZW1wbGF0ZSIsIlVwZGF0ZSIsIlZlcnNpb24iLCJ4IiwiSXNMYXRlc3QiLCJDaGVja1VwZGF0ZSIsIklzQ2hlY2tpbmciLCJGb3VuZFVwZGF0ZSIsIkdvVG9VcGRhdGUiLCJTZW5kS2V5IiwiVGlnaHRCb3JkZXIiLCJTZW5kUHJldmlld0J1YmJsZSIsIkF1dG9HZW5lcmF0ZVRpdGxlIiwiU3luYyIsIkNsb3VkU3RhdGUiLCJOb3RTeW5jWWV0IiwiU3VjY2VzcyIsIkZhaWwiLCJDaGVjayIsIlN5bmNUeXBlIiwiUHJveHkiLCJQcm94eVVybCIsIldlYkRhdiIsIkVuZHBvaW50IiwiVXNlck5hbWUiLCJQYXNzd29yZCIsIlVwU3Rhc2giLCJMb2NhbFN0YXRlIiwiT3ZlcnZpZXciLCJvdmVydmlldyIsImNoYXQiLCJtZXNzYWdlIiwicHJvbXB0IiwibWFzayIsIkltcG9ydEZhaWxlZCIsIk1hc2siLCJTcGxhc2giLCJCdWlsdGluIiwiRGlzYWJsZSIsIkxpc3QiLCJMaXN0Q291bnQiLCJidWlsdGluIiwiY3VzdG9tIiwiQWRkIiwiRWRpdE1vZGFsIiwiSGlzdG9yeUNvdW50IiwiQ29tcHJlc3NUaHJlc2hvbGQiLCJVc2FnZSIsInVzZWQiLCJ0b3RhbCIsIk5vQWNjZXNzIiwiQWNjZXNzIiwiU2Fhc1N0YXJ0IiwiTGFiZWwiLCJDaGF0Tm93IiwiQWNjZXNzQ29kZSIsIkN1c3RvbUVuZHBvaW50IiwiUHJvdmlkZXIiLCJPcGVuQUkiLCJBcGlLZXkiLCJBenVyZSIsIkFwaVZlcmlvbiIsIkFudGhyb3BpYyIsIkdvb2dsZSIsIkFwaVZlcnNpb24iLCJHb29nbGVTYWZldHlTZXR0aW5ncyIsIkJhaWR1IiwiU2VjcmV0S2V5IiwiQnl0ZURhbmNlIiwiQWxpYmFiYSIsIkN1c3RvbU1vZGVsIiwiTW9kZWwiLCJDb21wcmVzc01vZGVsIiwiVGVtcGVyYXR1cmUiLCJUb3BQIiwiTWF4VG9rZW5zIiwiUHJlc2VuY2VQZW5hbHR5IiwiRnJlcXVlbmN5UGVuYWx0eSIsIlN0b3JlIiwiRGVmYXVsdFRvcGljIiwiQm90SGVsbG8iLCJIaXN0b3J5IiwiY29udGVudCIsIlN1bW1hcml6ZSIsIkZhaWxlZCIsIkNvbnRleHQiLCJQbHVnaW4iLCJGaW5lVHVuZWQiLCJTeXNtZXNzYWdlIiwiU2VhcmNoQ2hhdCIsIlBhZ2UiLCJOb1Jlc3VsdCIsIk5vRGF0YSIsIkxvYWRpbmciLCJJdGVtIiwiVmlldyIsIkNyZWF0ZSIsIkluZm8iLCJEZWxldGVDb25maXJtIiwicmVhZG9ubHkiLCJDbG9uZSIsIkhpZGVDb250ZXh0IiwiU2tpcCIsIk5vdFNob3ciLCJDb25maXJtTm9TaG93IiwiTW9yZSIsIlVSTENvbW1hbmQiLCJDb2RlIiwiVUkiLCJDYW5jZWwiLCJDbG9zZSIsIkltcG9ydCIsIkV4cG9ydGVyIiwiRGVzY3JpcHRpb24iLCJNZXNzYWdlcyIsIlRpbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/locales/fr.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/locales/id.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/locales/id.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _store_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../store/config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n\n\n\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_1__.getClientConfig)()?.isApp;\nconst id = {\n WIP: \"Coming Soon...\",\n Error: {\n Unauthorized: isApp ? `😆 Percakapan mengalami beberapa masalah, tidak perlu khawatir:\r\n \\\\ 1️⃣ Jika Anda ingin memulai tanpa konfigurasi, [klik di sini untuk mulai mengobrol segera 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\\\ 2️⃣ Jika Anda ingin menggunakan sumber daya OpenAI Anda sendiri, klik [di sini](/#/settings) untuk mengubah pengaturan ⚙️` : `😆 Percakapan mengalami beberapa masalah, tidak perlu khawatir:\r\n \\ 1️⃣ Jika Anda ingin memulai tanpa konfigurasi, [klik di sini untuk mulai mengobrol segera 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\ 2️⃣ Jika Anda menggunakan versi penyebaran pribadi, klik [di sini](/#/auth) untuk memasukkan kunci akses 🔑\r\n \\ 3️⃣ Jika Anda ingin menggunakan sumber daya OpenAI Anda sendiri, klik [di sini](/#/settings) untuk mengubah pengaturan ⚙️\r\n`\n },\n Auth: {\n Title: \"Kebutuhan Kata Sandi\",\n Tips: \"Administrator telah mengaktifkan verifikasi kata sandi, silakan masukkan kode akses di bawah ini\",\n SubTips: \"Atau masukkan kunci API OpenAI atau Google Anda\",\n Input: \"Masukkan kode akses di sini\",\n Confirm: \"Konfirmasi\",\n Later: \"Nanti\",\n Return: \"Kembali\",\n SaasTips: \"Konfigurasi terlalu rumit, saya ingin menggunakannya segera\",\n TopTips: \"\\uD83E\\uDD73 Penawaran Peluncuran NextChat AI, buka OpenAI o1, GPT-4o, Claude-3.5 dan model besar terbaru sekarang\"\n },\n ChatItem: {\n ChatItemCount: (count)=>`${count} percakapan`\n },\n Chat: {\n SubTitle: (count)=>`Total ${count} percakapan`,\n EditMessage: {\n Title: \"Edit Riwayat Pesan\",\n Topic: {\n Title: \"Topik Obrolan\",\n SubTitle: \"Ubah topik obrolan saat ini\"\n }\n },\n Actions: {\n ChatList: \"Lihat daftar pesan\",\n CompressedHistory: \"Lihat riwayat Prompt yang dikompresi\",\n Export: \"Ekspor riwayat obrolan\",\n Copy: \"Salin\",\n Stop: \"Berhenti\",\n Retry: \"Coba lagi\",\n Pin: \"Sematkan\",\n PinToastContent: \"1 percakapan telah disematkan ke prompt default\",\n PinToastAction: \"Lihat\",\n Delete: \"Hapus\",\n Edit: \"Edit\",\n RefreshTitle: \"Segarkan Judul\",\n RefreshToast: \"Permintaan penyegaran judul telah dikirim\"\n },\n Commands: {\n new: \"Obrolan Baru\",\n newm: \"Buat Obrolan Baru dari Masker\",\n next: \"Obrolan Berikutnya\",\n prev: \"Obrolan Sebelumnya\",\n clear: \"Hapus Konteks\",\n del: \"Hapus Obrolan\"\n },\n InputActions: {\n Stop: \"Hentikan Respons\",\n ToBottom: \"Gulir ke bawah\",\n Theme: {\n auto: \"Tema Otomatis\",\n light: \"Mode Terang\",\n dark: \"Mode Gelap\"\n },\n Prompt: \"Perintah Cepat\",\n Masks: \"Semua Masker\",\n Clear: \"Hapus Obrolan\",\n Settings: \"Pengaturan Obrolan\",\n UploadImage: \"Unggah Gambar\"\n },\n Rename: \"Ganti Nama Obrolan\",\n Typing: \"Sedang Mengetik…\",\n Input: (submitKey)=>{\n var inputHints = `${submitKey} kirim`;\n if (submitKey === String(_store_config__WEBPACK_IMPORTED_MODULE_0__.SubmitKey.Enter)) {\n inputHints += \",Shift + Enter untuk baris baru\";\n }\n return inputHints + \",/ untuk melengkapi, : untuk memicu perintah\";\n },\n Send: \"Kirim\",\n Config: {\n Reset: \"Hapus Memori\",\n SaveAs: \"Simpan sebagai Masker\"\n },\n IsContext: \"Prompt Default\"\n },\n Export: {\n Title: \"Bagikan Riwayat Obrolan\",\n Copy: \"Salin Semua\",\n Download: \"Unduh File\",\n Share: \"Bagikan ke ShareGPT\",\n MessageFromYou: \"Pengguna\",\n MessageFromChatGPT: \"ChatGPT\",\n Format: {\n Title: \"Format Ekspor\",\n SubTitle: \"Dapat mengekspor teks Markdown atau gambar PNG\"\n },\n IncludeContext: {\n Title: \"Sertakan Konteks Masker\",\n SubTitle: \"Apakah akan menampilkan konteks masker dalam pesan\"\n },\n Steps: {\n Select: \"Pilih\",\n Preview: \"Prabaca\"\n },\n Image: {\n Toast: \"Sedang Membuat Screenshot\",\n Modal: \"Tekan lama atau klik kanan untuk menyimpan gambar\"\n }\n },\n Select: {\n Search: \"Cari Pesan\",\n All: \"Pilih Semua\",\n Latest: \"Beberapa Terbaru\",\n Clear: \"Hapus Pilihan\"\n },\n Memory: {\n Title: \"Ringkasan Sejarah\",\n EmptyContent: \"Isi percakapan terlalu pendek, tidak perlu dirangkum\",\n Send: \"Otomatis kompres riwayat obrolan dan kirim sebagai konteks\",\n Copy: \"Salin Ringkasan\",\n Reset: \"[unused]\",\n ResetConfirm: \"Konfirmasi untuk menghapus ringkasan sejarah?\"\n },\n Home: {\n NewChat: \"Obrolan Baru\",\n DeleteChat: \"Konfirmasi untuk menghapus percakapan yang dipilih?\",\n DeleteToast: \"Percakapan telah dihapus\",\n Revert: \"Batalkan\"\n },\n Settings: {\n Title: \"Pengaturan\",\n SubTitle: \"Semua opsi pengaturan\",\n Danger: {\n Reset: {\n Title: \"Atur Ulang Semua Pengaturan\",\n SubTitle: \"Atur ulang semua opsi pengaturan ke nilai default\",\n Action: \"Atur Ulang Sekarang\",\n Confirm: \"Konfirmasi untuk mengatur ulang semua pengaturan?\"\n },\n Clear: {\n Title: \"Hapus Semua Data\",\n SubTitle: \"Hapus semua data obrolan dan pengaturan\",\n Action: \"Hapus Sekarang\",\n Confirm: \"Konfirmasi untuk menghapus semua data obrolan dan pengaturan?\"\n }\n },\n Lang: {\n Name: \"Language\",\n All: \"Semua Bahasa\"\n },\n Avatar: \"Avatar\",\n FontSize: {\n Title: \"Ukuran Font\",\n SubTitle: \"Ukuran font untuk konten obrolan\"\n },\n FontFamily: {\n Title: \"Font Obrolan\",\n SubTitle: \"Font dari konten obrolan, biarkan kosong untuk menerapkan font default global\",\n Placeholder: \"Nama Font\"\n },\n InjectSystemPrompts: {\n Title: \"Suntikkan Pesan Sistem\",\n SubTitle: \"Memaksa menambahkan pesan sistem simulasi ChatGPT di awal daftar pesan setiap permintaan\"\n },\n InputTemplate: {\n Title: \"Pra-pemrosesan Input Pengguna\",\n SubTitle: \"Pesan terbaru pengguna akan diisi ke template ini\"\n },\n Update: {\n Version: (x)=>`Versi Saat Ini: ${x}`,\n IsLatest: \"Sudah versi terbaru\",\n CheckUpdate: \"Periksa Pembaruan\",\n IsChecking: \"Sedang memeriksa pembaruan...\",\n FoundUpdate: (x)=>`Versi Baru Ditemukan: ${x}`,\n GoToUpdate: \"Pergi ke Pembaruan\"\n },\n SendKey: \"Kunci Kirim\",\n Theme: \"Tema\",\n TightBorder: \"Mode Tanpa Border\",\n SendPreviewBubble: {\n Title: \"Preview Bubble\",\n SubTitle: \"Pratinjau konten Markdown di bubble pratinjau\"\n },\n AutoGenerateTitle: {\n Title: \"Otomatis Membuat Judul\",\n SubTitle: \"Membuat judul yang sesuai berdasarkan konten obrolan\"\n },\n Sync: {\n CloudState: \"Data Cloud\",\n NotSyncYet: \"Belum disinkronkan\",\n Success: \"Sinkronisasi Berhasil\",\n Fail: \"Sinkronisasi Gagal\",\n Config: {\n Modal: {\n Title: \"Konfigurasi Sinkronisasi Cloud\",\n Check: \"Periksa Ketersediaan\"\n },\n SyncType: {\n Title: \"Jenis Sinkronisasi\",\n SubTitle: \"Pilih server sinkronisasi favorit\"\n },\n Proxy: {\n Title: \"Aktifkan Proxy\",\n SubTitle: \"Saat menyinkronkan di browser, proxy harus diaktifkan untuk menghindari pembatasan lintas domain\"\n },\n ProxyUrl: {\n Title: \"Alamat Proxy\",\n SubTitle: \"Hanya berlaku untuk proxy lintas domain bawaan proyek ini\"\n },\n WebDav: {\n Endpoint: \"Alamat WebDAV\",\n UserName: \"Nama Pengguna\",\n Password: \"Kata Sandi\"\n },\n UpStash: {\n Endpoint: \"Url REST Redis UpStash\",\n UserName: \"Nama Cadangan\",\n Password: \"Token REST Redis UpStash\"\n }\n },\n LocalState: \"Data Lokal\",\n Overview: (overview)=>{\n return `${overview.chat} percakapan, ${overview.message} pesan, ${overview.prompt} prompt, ${overview.mask} masker`;\n },\n ImportFailed: \"Impor Gagal\"\n },\n Mask: {\n Splash: {\n Title: \"Halaman Awal Masker\",\n SubTitle: \"Tampilkan halaman awal masker saat memulai obrolan baru\"\n },\n Builtin: {\n Title: \"Sembunyikan Masker Bawaan\",\n SubTitle: \"Sembunyikan masker bawaan dari semua daftar masker\"\n }\n },\n Prompt: {\n Disable: {\n Title: \"Nonaktifkan Pelengkapan Prompt Otomatis\",\n SubTitle: \"Ketik / di awal kotak input untuk memicu pelengkapan otomatis\"\n },\n List: \"Daftar Prompt Kustom\",\n ListCount: (builtin, custom)=>`Bawaan ${builtin} item, pengguna ${custom} item`,\n Edit: \"Edit\",\n Modal: {\n Title: \"Daftar Prompt\",\n Add: \"Baru\",\n Search: \"Cari Prompt\"\n },\n EditModal: {\n Title: \"Edit Prompt\"\n }\n },\n HistoryCount: {\n Title: \"Jumlah Pesan Sejarah\",\n SubTitle: \"Jumlah pesan sejarah yang dibawa setiap permintaan\"\n },\n CompressThreshold: {\n Title: \"Ambang Batas Kompresi Pesan Sejarah\",\n SubTitle: \"Ketika pesan sejarah yang tidak terkompresi melebihi nilai ini, akan dikompresi\"\n },\n Usage: {\n Title: \"Cek Saldo\",\n SubTitle (used, total) {\n return `Digunakan bulan ini $${used}, total langganan $${total}`;\n },\n IsChecking: \"Sedang memeriksa…\",\n Check: \"Periksa Lagi\",\n NoAccess: \"Masukkan API Key atau kata sandi akses untuk melihat saldo\"\n },\n Access: {\n SaasStart: {\n Title: \"Gunakan NextChat AI\",\n Label: \"(Solusi paling hemat biaya)\",\n SubTitle: \"Dikelola secara resmi oleh NextChat, siap digunakan tanpa konfigurasi, mendukung model besar terbaru seperti OpenAI o1, GPT-4o, dan Claude-3.5\",\n ChatNow: \"Chat Sekarang\"\n },\n AccessCode: {\n Title: \"Kata Sandi Akses\",\n SubTitle: \"Administrator telah mengaktifkan akses terenkripsi\",\n Placeholder: \"Masukkan kata sandi akses\"\n },\n CustomEndpoint: {\n Title: \"Antarmuka Kustom\",\n SubTitle: \"Apakah akan menggunakan layanan Azure atau OpenAI kustom\"\n },\n Provider: {\n Title: \"Penyedia Layanan Model\",\n SubTitle: \"Ganti penyedia layanan yang berbeda\"\n },\n OpenAI: {\n ApiKey: {\n Title: \"API Key\",\n SubTitle: \"Gunakan OpenAI Key kustom untuk menghindari batasan akses kata sandi\",\n Placeholder: \"OpenAI API Key\"\n },\n Endpoint: {\n Title: \"Alamat Antarmuka\",\n SubTitle: \"Selain alamat default, harus menyertakan http(s)://\"\n }\n },\n Azure: {\n ApiKey: {\n Title: \"Kunci Antarmuka\",\n SubTitle: \"Gunakan Azure Key kustom untuk menghindari batasan akses kata sandi\",\n Placeholder: \"Azure API Key\"\n },\n Endpoint: {\n Title: \"Alamat Antarmuka\",\n SubTitle: \"Contoh:\"\n },\n ApiVerion: {\n Title: \"Versi Antarmuka (azure api version)\",\n SubTitle: \"Pilih versi parsial tertentu\"\n }\n },\n Anthropic: {\n ApiKey: {\n Title: \"Kunci Antarmuka\",\n SubTitle: \"Gunakan Anthropic Key kustom untuk menghindari batasan akses kata sandi\",\n Placeholder: \"Anthropic API Key\"\n },\n Endpoint: {\n Title: \"Alamat Antarmuka\",\n SubTitle: \"Contoh:\"\n },\n ApiVerion: {\n Title: \"Versi Antarmuka (claude api version)\",\n SubTitle: \"Pilih versi API tertentu\"\n }\n },\n Google: {\n ApiKey: {\n Title: \"Kunci API\",\n SubTitle: \"Dapatkan kunci API Anda dari Google AI\",\n Placeholder: \"Masukkan kunci API Studio Google AI Anda\"\n },\n Endpoint: {\n Title: \"Alamat Akhir\",\n SubTitle: \"Contoh:\"\n },\n ApiVersion: {\n Title: \"Versi API (hanya untuk gemini-pro)\",\n SubTitle: \"Pilih versi API tertentu\"\n },\n GoogleSafetySettings: {\n Title: \"Tingkat Filter Keamanan Google\",\n SubTitle: \"Atur tingkat filter konten\"\n }\n },\n Baidu: {\n ApiKey: {\n Title: \"API Key\",\n SubTitle: \"Gunakan Baidu API Key kustom\",\n Placeholder: \"Baidu API Key\"\n },\n SecretKey: {\n Title: \"Secret Key\",\n SubTitle: \"Gunakan Baidu Secret Key kustom\",\n Placeholder: \"Baidu Secret Key\"\n },\n Endpoint: {\n Title: \"Alamat Antarmuka\",\n SubTitle: \"Tidak mendukung kustom, pergi ke .env untuk konfigurasi\"\n }\n },\n ByteDance: {\n ApiKey: {\n Title: \"Kunci Antarmuka\",\n SubTitle: \"Gunakan ByteDance API Key kustom\",\n Placeholder: \"ByteDance API Key\"\n },\n Endpoint: {\n Title: \"Alamat Antarmuka\",\n SubTitle: \"Contoh:\"\n }\n },\n Alibaba: {\n ApiKey: {\n Title: \"Kunci Antarmuka\",\n SubTitle: \"Gunakan Alibaba Cloud API Key kustom\",\n Placeholder: \"Alibaba Cloud API Key\"\n },\n Endpoint: {\n Title: \"Alamat Antarmuka\",\n SubTitle: \"Contoh:\"\n }\n },\n CustomModel: {\n Title: \"Nama Model Kustom\",\n SubTitle: \"Tambahkan opsi model kustom, pisahkan dengan koma\"\n }\n },\n Model: \"Model\",\n CompressModel: {\n Title: \"Model Kompresi\",\n SubTitle: \"Model yang digunakan untuk mengompres riwayat\"\n },\n Temperature: {\n Title: \"Randomness (temperature)\",\n SubTitle: \"Semakin tinggi nilainya, semakin acak responsnya\"\n },\n TopP: {\n Title: \"Sampling Inti (top_p)\",\n SubTitle: \"Mirip dengan randomness, tetapi jangan ubah bersama randomness\"\n },\n MaxTokens: {\n Title: \"Batas Token Per Respons\",\n SubTitle: \"Jumlah token maksimum yang digunakan per interaksi\"\n },\n PresencePenalty: {\n Title: \"Kedekatan Topik (presence_penalty)\",\n SubTitle: \"Semakin tinggi nilainya, semakin besar kemungkinan memperluas ke topik baru\"\n },\n FrequencyPenalty: {\n Title: \"Hukuman Frekuensi (frequency_penalty)\",\n SubTitle: \"Semakin tinggi nilainya, semakin besar kemungkinan mengurangi kata-kata yang berulang\"\n }\n },\n Store: {\n DefaultTopic: \"Obrolan Baru\",\n BotHello: \"Ada yang bisa saya bantu?\",\n Error: \"Terjadi kesalahan, coba lagi nanti\",\n Prompt: {\n History: (content)=>\"Ini adalah ringkasan obrolan sebelumnya sebagai latar belakang: \" + content,\n Topic: \"Gunakan empat hingga lima kata untuk langsung memberikan ringkasan topik kalimat ini, tanpa penjelasan, tanpa tanda baca, tanpa kata pengisi, tanpa teks tambahan, tanpa menebalkan. Jika tidak ada topik, langsung jawab 'Obrolan Santai'\",\n Summarize: \"Berikan ringkasan singkat tentang konten obrolan, untuk digunakan sebagai prompt konteks selanjutnya, dalam 200 kata atau kurang\"\n }\n },\n Copy: {\n Success: \"Telah disalin ke clipboard\",\n Failed: \"Gagal menyalin, mohon berikan izin clipboard\"\n },\n Download: {\n Success: \"Konten telah diunduh ke direktori Anda.\",\n Failed: \"Unduhan gagal.\"\n },\n Context: {\n Toast: (x)=>`Berisi ${x} prompt preset`,\n Edit: \"Pengaturan Obrolan Saat Ini\",\n Add: \"Tambah Obrolan\",\n Clear: \"Konteks telah dihapus\",\n Revert: \"Kembalikan Konteks\"\n },\n Plugin: {\n Name: \"Plugin\"\n },\n FineTuned: {\n Sysmessage: \"Anda adalah seorang asisten\"\n },\n SearchChat: {\n Name: \"Cari\",\n Page: {\n Title: \"Cari riwayat obrolan\",\n Search: \"Masukkan kata kunci pencarian\",\n NoResult: \"Tidak ada hasil ditemukan\",\n NoData: \"Tidak ada data\",\n Loading: \"Memuat\",\n SubTitle: (count)=>`Ditemukan ${count} hasil`\n },\n Item: {\n View: \"Lihat\"\n }\n },\n Mask: {\n Name: \"Masker\",\n Page: {\n Title: \"Preset Karakter Masker\",\n SubTitle: (count)=>`${count} definisi karakter preset`,\n Search: \"Cari Masker Karakter\",\n Create: \"Buat Baru\"\n },\n Item: {\n Info: (count)=>`Berisi ${count} obrolan preset`,\n Chat: \"Obrolan\",\n View: \"Lihat\",\n Edit: \"Edit\",\n Delete: \"Hapus\",\n DeleteConfirm: \"Konfirmasi penghapusan?\"\n },\n EditModal: {\n Title: (readonly)=>`Edit Masker Preset ${readonly ? \"(Hanya Baca)\" : \"\"}`,\n Download: \"Unduh Preset\",\n Clone: \"Klon Preset\"\n },\n Config: {\n Avatar: \"Avatar Karakter\",\n Name: \"Nama Karakter\",\n Sync: {\n Title: \"Gunakan Pengaturan Global\",\n SubTitle: \"Apakah obrolan saat ini akan menggunakan pengaturan model global?\",\n Confirm: \"Pengaturan kustom obrolan saat ini akan ditimpa secara otomatis, konfirmasi untuk mengaktifkan pengaturan global?\"\n },\n HideContext: {\n Title: \"Sembunyikan Obrolan Preset\",\n SubTitle: \"Setelah disembunyikan, obrolan preset tidak akan muncul di antarmuka obrolan\"\n },\n Share: {\n Title: \"Bagikan Masker Ini\",\n SubTitle: \"Hasilkan tautan langsung ke masker ini\",\n Action: \"Salin Tautan\"\n }\n }\n },\n NewChat: {\n Return: \"Kembali\",\n Skip: \"Mulai Sekarang\",\n NotShow: \"Jangan Tampilkan Lagi\",\n ConfirmNoShow: \"Konfirmasi untuk menonaktifkan? Setelah dinonaktifkan, Anda dapat mengaktifkannya kembali kapan saja di pengaturan.\",\n Title: \"Pilih Masker\",\n SubTitle: \"Mulai sekarang, berinteraksi dengan pemikiran di balik masker\",\n More: \"Lihat Semua\"\n },\n URLCommand: {\n Code: \"Terdeteksi bahwa tautan sudah mengandung kode akses, apakah akan diisi secara otomatis?\",\n Settings: \"Terdeteksi bahwa tautan mengandung pengaturan preset, apakah akan diisi secara otomatis?\"\n },\n UI: {\n Confirm: \"Konfirmasi\",\n Cancel: \"Batal\",\n Close: \"Tutup\",\n Create: \"Buat Baru\",\n Edit: \"Edit\",\n Export: \"Ekspor\",\n Import: \"Impor\",\n Sync: \"Sinkronkan\",\n Config: \"Konfigurasi\"\n },\n Exporter: {\n Description: {\n Title: \"Hanya pesan setelah menghapus konteks yang akan ditampilkan\"\n },\n Model: \"Model\",\n Messages: \"Pesan\",\n Topic: \"Topik\",\n Time: \"Waktu\"\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (id);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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O1FBQ1Z1TCxNQUFNO0lBQ1I7SUFFQUMsWUFBWTtRQUNWQyxNQUFNO1FBQ054SixVQUNFO0lBQ0o7SUFFQXlKLElBQUk7UUFDRm5NLFNBQVM7UUFDVG9NLFFBQVE7UUFDUkMsT0FBTztRQUNQZCxRQUFRO1FBQ1JoSyxNQUFNO1FBQ05SLFFBQVE7UUFDUnVMLFFBQVE7UUFDUmxHLE1BQU07UUFDTmpELFFBQVE7SUFDVjtJQUNBb0osVUFBVTtRQUNSQyxhQUFhO1lBQ1g1TSxPQUFPO1FBQ1Q7UUFDQWtLLE9BQU87UUFDUDJDLFVBQVU7UUFDVjlMLE9BQU87UUFDUCtMLE1BQU07SUFDUjtBQUNGO0FBRUEsaUVBQWVuTixFQUFFQSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvbG9jYWxlcy9pZC50cz8zNjc0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1Ym1pdEtleSB9IGZyb20gXCIuLi9zdG9yZS9jb25maWdcIjtcclxuaW1wb3J0IHR5cGUgeyBQYXJ0aWFsTG9jYWxlVHlwZSB9IGZyb20gXCIuL2luZGV4XCI7XHJcbmltcG9ydCB7IGdldENsaWVudENvbmZpZyB9IGZyb20gXCIuLi9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB7IFNBQVNfQ0hBVF9VVE1fVVJMIH0gZnJvbSBcIkAvYXBwL2NvbnN0YW50XCI7XHJcbmNvbnN0IGlzQXBwID0gISFnZXRDbGllbnRDb25maWcoKT8uaXNBcHA7XHJcblxyXG5jb25zdCBpZDogUGFydGlhbExvY2FsZVR5cGUgPSB7XHJcbiAgV0lQOiBcIkNvbWluZyBTb29uLi4uXCIsXHJcbiAgRXJyb3I6IHtcclxuICAgIFVuYXV0aG9yaXplZDogaXNBcHBcclxuICAgICAgPyBg8J+YhiBQZXJjYWthcGFuIG1lbmdhbGFtaSBiZWJlcmFwYSBtYXNhbGFoLCB0aWRhayBwZXJsdSBraGF3YXRpcjpcclxuICAgXFxcXCAx77iP4oOjIEppa2EgQW5kYSBpbmdpbiBtZW11bGFpIHRhbnBhIGtvbmZpZ3VyYXNpLCBba2xpayBkaSBzaW5pIHVudHVrIG11bGFpIG1lbmdvYnJvbCBzZWdlcmEg8J+agF0oJHtTQUFTX0NIQVRfVVRNX1VSTH0pXHJcbiAgIFxcXFwgMu+4j+KDoyBKaWthIEFuZGEgaW5naW4gbWVuZ2d1bmFrYW4gc3VtYmVyIGRheWEgT3BlbkFJIEFuZGEgc2VuZGlyaSwga2xpayBbZGkgc2luaV0oLyMvc2V0dGluZ3MpIHVudHVrIG1lbmd1YmFoIHBlbmdhdHVyYW4g4pqZ77iPYFxyXG4gICAgICA6IGDwn5iGIFBlcmNha2FwYW4gbWVuZ2FsYW1pIGJlYmVyYXBhIG1hc2FsYWgsIHRpZGFrIHBlcmx1IGtoYXdhdGlyOlxyXG4gICBcXCAx77iP4oOjIEppa2EgQW5kYSBpbmdpbiBtZW11bGFpIHRhbnBhIGtvbmZpZ3VyYXNpLCBba2xpayBkaSBzaW5pIHVudHVrIG11bGFpIG1lbmdvYnJvbCBzZWdlcmEg8J+agF0oJHtTQUFTX0NIQVRfVVRNX1VSTH0pXHJcbiAgIFxcIDLvuI/ig6MgSmlrYSBBbmRhIG1lbmdndW5ha2FuIHZlcnNpIHBlbnllYmFyYW4gcHJpYmFkaSwga2xpayBbZGkgc2luaV0oLyMvYXV0aCkgdW50dWsgbWVtYXN1a2thbiBrdW5jaSBha3NlcyDwn5SRXHJcbiAgIFxcIDPvuI/ig6MgSmlrYSBBbmRhIGluZ2luIG1lbmdndW5ha2FuIHN1bWJlciBkYXlhIE9wZW5BSSBBbmRhIHNlbmRpcmksIGtsaWsgW2RpIHNpbmldKC8jL3NldHRpbmdzKSB1bnR1ayBtZW5ndWJhaCBwZW5nYXR1cmFuIOKame+4j1xyXG5gLFxyXG4gIH0sXHJcbiAgQXV0aDoge1xyXG4gICAgVGl0bGU6IFwiS2VidXR1aGFuIEthdGEgU2FuZGlcIixcclxuICAgIFRpcHM6IFwiQWRtaW5pc3RyYXRvciB0ZWxhaCBtZW5nYWt0aWZrYW4gdmVyaWZpa2FzaSBrYXRhIHNhbmRpLCBzaWxha2FuIG1hc3Vra2FuIGtvZGUgYWtzZXMgZGkgYmF3YWggaW5pXCIsXHJcbiAgICBTdWJUaXBzOiBcIkF0YXUgbWFzdWtrYW4ga3VuY2kgQVBJIE9wZW5BSSBhdGF1IEdvb2dsZSBBbmRhXCIsXHJcbiAgICBJbnB1dDogXCJNYXN1a2thbiBrb2RlIGFrc2VzIGRpIHNpbmlcIixcclxuICAgIENvbmZpcm06IFwiS29uZmlybWFzaVwiLFxyXG4gICAgTGF0ZXI6IFwiTmFudGlcIixcclxuICAgIFJldHVybjogXCJLZW1iYWxpXCIsXHJcbiAgICBTYWFzVGlwczogXCJLb25maWd1cmFzaSB0ZXJsYWx1IHJ1bWl0LCBzYXlhIGluZ2luIG1lbmdndW5ha2FubnlhIHNlZ2VyYVwiLFxyXG4gICAgVG9wVGlwczpcclxuICAgICAgXCLwn6WzIFBlbmF3YXJhbiBQZWx1bmN1cmFuIE5leHRDaGF0IEFJLCBidWthIE9wZW5BSSBvMSwgR1BULTRvLCBDbGF1ZGUtMy41IGRhbiBtb2RlbCBiZXNhciB0ZXJiYXJ1IHNla2FyYW5nXCIsXHJcbiAgfSxcclxuICBDaGF0SXRlbToge1xyXG4gICAgQ2hhdEl0ZW1Db3VudDogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50fSBwZXJjYWthcGFuYCxcclxuICB9LFxyXG4gIENoYXQ6IHtcclxuICAgIFN1YlRpdGxlOiAoY291bnQ6IG51bWJlcikgPT4gYFRvdGFsICR7Y291bnR9IHBlcmNha2FwYW5gLFxyXG4gICAgRWRpdE1lc3NhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwiRWRpdCBSaXdheWF0IFBlc2FuXCIsXHJcbiAgICAgIFRvcGljOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiVG9waWsgT2Jyb2xhblwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIlViYWggdG9waWsgb2Jyb2xhbiBzYWF0IGluaVwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIEFjdGlvbnM6IHtcclxuICAgICAgQ2hhdExpc3Q6IFwiTGloYXQgZGFmdGFyIHBlc2FuXCIsXHJcbiAgICAgIENvbXByZXNzZWRIaXN0b3J5OiBcIkxpaGF0IHJpd2F5YXQgUHJvbXB0IHlhbmcgZGlrb21wcmVzaVwiLFxyXG4gICAgICBFeHBvcnQ6IFwiRWtzcG9yIHJpd2F5YXQgb2Jyb2xhblwiLFxyXG4gICAgICBDb3B5OiBcIlNhbGluXCIsXHJcbiAgICAgIFN0b3A6IFwiQmVyaGVudGlcIixcclxuICAgICAgUmV0cnk6IFwiQ29iYSBsYWdpXCIsXHJcbiAgICAgIFBpbjogXCJTZW1hdGthblwiLFxyXG4gICAgICBQaW5Ub2FzdENvbnRlbnQ6IFwiMSBwZXJjYWthcGFuIHRlbGFoIGRpc2VtYXRrYW4ga2UgcHJvbXB0IGRlZmF1bHRcIixcclxuICAgICAgUGluVG9hc3RBY3Rpb246IFwiTGloYXRcIixcclxuICAgICAgRGVsZXRlOiBcIkhhcHVzXCIsXHJcbiAgICAgIEVkaXQ6IFwiRWRpdFwiLFxyXG4gICAgICBSZWZyZXNoVGl0bGU6IFwiU2VnYXJrYW4gSnVkdWxcIixcclxuICAgICAgUmVmcmVzaFRvYXN0OiBcIlBlcm1pbnRhYW4gcGVueWVnYXJhbiBqdWR1bCB0ZWxhaCBkaWtpcmltXCIsXHJcbiAgICB9LFxyXG4gICAgQ29tbWFuZHM6IHtcclxuICAgICAgbmV3OiBcIk9icm9sYW4gQmFydVwiLFxyXG4gICAgICBuZXdtOiBcIkJ1YXQgT2Jyb2xhbiBCYXJ1IGRhcmkgTWFza2VyXCIsXHJcbiAgICAgIG5leHQ6IFwiT2Jyb2xhbiBCZXJpa3V0bnlhXCIsXHJcbiAgICAgIHByZXY6IFwiT2Jyb2xhbiBTZWJlbHVtbnlhXCIsXHJcbiAgICAgIGNsZWFyOiBcIkhhcHVzIEtvbnRla3NcIixcclxuICAgICAgZGVsOiBcIkhhcHVzIE9icm9sYW5cIixcclxuICAgIH0sXHJcbiAgICBJbnB1dEFjdGlvbnM6IHtcclxuICAgICAgU3RvcDogXCJIZW50aWthbiBSZXNwb25zXCIsXHJcbiAgICAgIFRvQm90dG9tOiBcIkd1bGlyIGtlIGJhd2FoXCIsXHJcbiAgICAgIFRoZW1lOiB7XHJcbiAgICAgICAgYXV0bzogXCJUZW1hIE90b21hdGlzXCIsXHJcbiAgICAgICAgbGlnaHQ6IFwiTW9kZSBUZXJhbmdcIixcclxuICAgICAgICBkYXJrOiBcIk1vZGUgR2VsYXBcIixcclxuICAgICAgfSxcclxuICAgICAgUHJvbXB0OiBcIlBlcmludGFoIENlcGF0XCIsXHJcbiAgICAgIE1hc2tzOiBcIlNlbXVhIE1hc2tlclwiLFxyXG4gICAgICBDbGVhcjogXCJIYXB1cyBPYnJvbGFuXCIsXHJcbiAgICAgIFNldHRpbmdzOiBcIlBlbmdhdHVyYW4gT2Jyb2xhblwiLFxyXG4gICAgICBVcGxvYWRJbWFnZTogXCJVbmdnYWggR2FtYmFyXCIsXHJcbiAgICB9LFxyXG4gICAgUmVuYW1lOiBcIkdhbnRpIE5hbWEgT2Jyb2xhblwiLFxyXG4gICAgVHlwaW5nOiBcIlNlZGFuZyBNZW5nZXRpa+KAplwiLFxyXG4gICAgSW5wdXQ6IChzdWJtaXRLZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICB2YXIgaW5wdXRIaW50cyA9IGAke3N1Ym1pdEtleX0ga2lyaW1gO1xyXG4gICAgICBpZiAoc3VibWl0S2V5ID09PSBTdHJpbmcoU3VibWl0S2V5LkVudGVyKSkge1xyXG4gICAgICAgIGlucHV0SGludHMgKz0gXCLvvIxTaGlmdCArIEVudGVyIHVudHVrIGJhcmlzIGJhcnVcIjtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gaW5wdXRIaW50cyArIFwi77yMLyB1bnR1ayBtZWxlbmdrYXBpLCA6IHVudHVrIG1lbWljdSBwZXJpbnRhaFwiO1xyXG4gICAgfSxcclxuICAgIFNlbmQ6IFwiS2lyaW1cIixcclxuICAgIENvbmZpZzoge1xyXG4gICAgICBSZXNldDogXCJIYXB1cyBNZW1vcmlcIixcclxuICAgICAgU2F2ZUFzOiBcIlNpbXBhbiBzZWJhZ2FpIE1hc2tlclwiLFxyXG4gICAgfSxcclxuICAgIElzQ29udGV4dDogXCJQcm9tcHQgRGVmYXVsdFwiLFxyXG4gIH0sXHJcbiAgRXhwb3J0OiB7XHJcbiAgICBUaXRsZTogXCJCYWdpa2FuIFJpd2F5YXQgT2Jyb2xhblwiLFxyXG4gICAgQ29weTogXCJTYWxpbiBTZW11YVwiLFxyXG4gICAgRG93bmxvYWQ6IFwiVW5kdWggRmlsZVwiLFxyXG4gICAgU2hhcmU6IFwiQmFnaWthbiBrZSBTaGFyZUdQVFwiLFxyXG4gICAgTWVzc2FnZUZyb21Zb3U6IFwiUGVuZ2d1bmFcIixcclxuICAgIE1lc3NhZ2VGcm9tQ2hhdEdQVDogXCJDaGF0R1BUXCIsXHJcbiAgICBGb3JtYXQ6IHtcclxuICAgICAgVGl0bGU6IFwiRm9ybWF0IEVrc3BvclwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJEYXBhdCBtZW5nZWtzcG9yIHRla3MgTWFya2Rvd24gYXRhdSBnYW1iYXIgUE5HXCIsXHJcbiAgICB9LFxyXG4gICAgSW5jbHVkZUNvbnRleHQ6IHtcclxuICAgICAgVGl0bGU6IFwiU2VydGFrYW4gS29udGVrcyBNYXNrZXJcIixcclxuICAgICAgU3ViVGl0bGU6IFwiQXBha2FoIGFrYW4gbWVuYW1waWxrYW4ga29udGVrcyBtYXNrZXIgZGFsYW0gcGVzYW5cIixcclxuICAgIH0sXHJcbiAgICBTdGVwczoge1xyXG4gICAgICBTZWxlY3Q6IFwiUGlsaWhcIixcclxuICAgICAgUHJldmlldzogXCJQcmFiYWNhXCIsXHJcbiAgICB9LFxyXG4gICAgSW1hZ2U6IHtcclxuICAgICAgVG9hc3Q6IFwiU2VkYW5nIE1lbWJ1YXQgU2NyZWVuc2hvdFwiLFxyXG4gICAgICBNb2RhbDogXCJUZWthbiBsYW1hIGF0YXUga2xpayBrYW5hbiB1bnR1ayBtZW55aW1wYW4gZ2FtYmFyXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgU2VsZWN0OiB7XHJcbiAgICBTZWFyY2g6IFwiQ2FyaSBQZXNhblwiLFxyXG4gICAgQWxsOiBcIlBpbGloIFNlbXVhXCIsXHJcbiAgICBMYXRlc3Q6IFwiQmViZXJhcGEgVGVyYmFydVwiLFxyXG4gICAgQ2xlYXI6IFwiSGFwdXMgUGlsaWhhblwiLFxyXG4gIH0sXHJcbiAgTWVtb3J5OiB7XHJcbiAgICBUaXRsZTogXCJSaW5na2FzYW4gU2VqYXJhaFwiLFxyXG4gICAgRW1wdHlDb250ZW50OiBcIklzaSBwZXJjYWthcGFuIHRlcmxhbHUgcGVuZGVrLCB0aWRhayBwZXJsdSBkaXJhbmdrdW1cIixcclxuICAgIFNlbmQ6IFwiT3RvbWF0aXMga29tcHJlcyByaXdheWF0IG9icm9sYW4gZGFuIGtpcmltIHNlYmFnYWkga29udGVrc1wiLFxyXG4gICAgQ29weTogXCJTYWxpbiBSaW5na2FzYW5cIixcclxuICAgIFJlc2V0OiBcIlt1bnVzZWRdXCIsXHJcbiAgICBSZXNldENvbmZpcm06IFwiS29uZmlybWFzaSB1bnR1ayBtZW5naGFwdXMgcmluZ2thc2FuIHNlamFyYWg/XCIsXHJcbiAgfSxcclxuICBIb21lOiB7XHJcbiAgICBOZXdDaGF0OiBcIk9icm9sYW4gQmFydVwiLFxyXG4gICAgRGVsZXRlQ2hhdDogXCJLb25maXJtYXNpIHVudHVrIG1lbmdoYXB1cyBwZXJjYWthcGFuIHlhbmcgZGlwaWxpaD9cIixcclxuICAgIERlbGV0ZVRvYXN0OiBcIlBlcmNha2FwYW4gdGVsYWggZGloYXB1c1wiLFxyXG4gICAgUmV2ZXJ0OiBcIkJhdGFsa2FuXCIsXHJcbiAgfSxcclxuICBTZXR0aW5nczoge1xyXG4gICAgVGl0bGU6IFwiUGVuZ2F0dXJhblwiLFxyXG4gICAgU3ViVGl0bGU6IFwiU2VtdWEgb3BzaSBwZW5nYXR1cmFuXCIsXHJcblxyXG4gICAgRGFuZ2VyOiB7XHJcbiAgICAgIFJlc2V0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiQXR1ciBVbGFuZyBTZW11YSBQZW5nYXR1cmFuXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiQXR1ciB1bGFuZyBzZW11YSBvcHNpIHBlbmdhdHVyYW4ga2UgbmlsYWkgZGVmYXVsdFwiLFxyXG4gICAgICAgIEFjdGlvbjogXCJBdHVyIFVsYW5nIFNla2FyYW5nXCIsXHJcbiAgICAgICAgQ29uZmlybTogXCJLb25maXJtYXNpIHVudHVrIG1lbmdhdHVyIHVsYW5nIHNlbXVhIHBlbmdhdHVyYW4/XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIENsZWFyOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiSGFwdXMgU2VtdWEgRGF0YVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIkhhcHVzIHNlbXVhIGRhdGEgb2Jyb2xhbiBkYW4gcGVuZ2F0dXJhblwiLFxyXG4gICAgICAgIEFjdGlvbjogXCJIYXB1cyBTZWthcmFuZ1wiLFxyXG4gICAgICAgIENvbmZpcm06XHJcbiAgICAgICAgICBcIktvbmZpcm1hc2kgdW50dWsgbWVuZ2hhcHVzIHNlbXVhIGRhdGEgb2Jyb2xhbiBkYW4gcGVuZ2F0dXJhbj9cIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBMYW5nOiB7XHJcbiAgICAgIE5hbWU6IFwiTGFuZ3VhZ2VcIiwgLy8gUEVSSEFUSUFOOiBqaWthIEFuZGEgaW5naW4gbWVuYW1iYWhrYW4gdGVyamVtYWhhbiBiYXJ1LCBoYXJhcCBqYW5nYW4gdGVyamVtYWhrYW4gbmlsYWkgaW5pLCBiaWFya2FuIHNlYmFnYWkgYExhbmd1YWdlYFxyXG4gICAgICBBbGw6IFwiU2VtdWEgQmFoYXNhXCIsXHJcbiAgICB9LFxyXG4gICAgQXZhdGFyOiBcIkF2YXRhclwiLFxyXG4gICAgRm9udFNpemU6IHtcclxuICAgICAgVGl0bGU6IFwiVWt1cmFuIEZvbnRcIixcclxuICAgICAgU3ViVGl0bGU6IFwiVWt1cmFuIGZvbnQgdW50dWsga29udGVuIG9icm9sYW5cIixcclxuICAgIH0sXHJcbiAgICBGb250RmFtaWx5OiB7XHJcbiAgICAgIFRpdGxlOiBcIkZvbnQgT2Jyb2xhblwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIkZvbnQgZGFyaSBrb250ZW4gb2Jyb2xhbiwgYmlhcmthbiBrb3NvbmcgdW50dWsgbWVuZXJhcGthbiBmb250IGRlZmF1bHQgZ2xvYmFsXCIsXHJcbiAgICAgIFBsYWNlaG9sZGVyOiBcIk5hbWEgRm9udFwiLFxyXG4gICAgfSxcclxuICAgIEluamVjdFN5c3RlbVByb21wdHM6IHtcclxuICAgICAgVGl0bGU6IFwiU3VudGlra2FuIFBlc2FuIFNpc3RlbVwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIk1lbWFrc2EgbWVuYW1iYWhrYW4gcGVzYW4gc2lzdGVtIHNpbXVsYXNpIENoYXRHUFQgZGkgYXdhbCBkYWZ0YXIgcGVzYW4gc2V0aWFwIHBlcm1pbnRhYW5cIixcclxuICAgIH0sXHJcbiAgICBJbnB1dFRlbXBsYXRlOiB7XHJcbiAgICAgIFRpdGxlOiBcIlByYS1wZW1yb3Nlc2FuIElucHV0IFBlbmdndW5hXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIlBlc2FuIHRlcmJhcnUgcGVuZ2d1bmEgYWthbiBkaWlzaSBrZSB0ZW1wbGF0ZSBpbmlcIixcclxuICAgIH0sXHJcblxyXG4gICAgVXBkYXRlOiB7XHJcbiAgICAgIFZlcnNpb246ICh4OiBzdHJpbmcpID0+IGBWZXJzaSBTYWF0IEluaTogJHt4fWAsXHJcbiAgICAgIElzTGF0ZXN0OiBcIlN1ZGFoIHZlcnNpIHRlcmJhcnVcIixcclxuICAgICAgQ2hlY2tVcGRhdGU6IFwiUGVyaWtzYSBQZW1iYXJ1YW5cIixcclxuICAgICAgSXNDaGVja2luZzogXCJTZWRhbmcgbWVtZXJpa3NhIHBlbWJhcnVhbi4uLlwiLFxyXG4gICAgICBGb3VuZFVwZGF0ZTogKHg6IHN0cmluZykgPT4gYFZlcnNpIEJhcnUgRGl0ZW11a2FuOiAke3h9YCxcclxuICAgICAgR29Ub1VwZGF0ZTogXCJQZXJnaSBrZSBQZW1iYXJ1YW5cIixcclxuICAgIH0sXHJcbiAgICBTZW5kS2V5OiBcIkt1bmNpIEtpcmltXCIsXHJcbiAgICBUaGVtZTogXCJUZW1hXCIsXHJcbiAgICBUaWdodEJvcmRlcjogXCJNb2RlIFRhbnBhIEJvcmRlclwiLFxyXG4gICAgU2VuZFByZXZpZXdCdWJibGU6IHtcclxuICAgICAgVGl0bGU6IFwiUHJldmlldyBCdWJibGVcIixcclxuICAgICAgU3ViVGl0bGU6IFwiUHJhdGluamF1IGtvbnRlbiBNYXJrZG93biBkaSBidWJibGUgcHJhdGluamF1XCIsXHJcbiAgICB9LFxyXG4gICAgQXV0b0dlbmVyYXRlVGl0bGU6IHtcclxuICAgICAgVGl0bGU6IFwiT3RvbWF0aXMgTWVtYnVhdCBKdWR1bFwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJNZW1idWF0IGp1ZHVsIHlhbmcgc2VzdWFpIGJlcmRhc2Fya2FuIGtvbnRlbiBvYnJvbGFuXCIsXHJcbiAgICB9LFxyXG4gICAgU3luYzoge1xyXG4gICAgICBDbG91ZFN0YXRlOiBcIkRhdGEgQ2xvdWRcIixcclxuICAgICAgTm90U3luY1lldDogXCJCZWx1bSBkaXNpbmtyb25rYW5cIixcclxuICAgICAgU3VjY2VzczogXCJTaW5rcm9uaXNhc2kgQmVyaGFzaWxcIixcclxuICAgICAgRmFpbDogXCJTaW5rcm9uaXNhc2kgR2FnYWxcIixcclxuXHJcbiAgICAgIENvbmZpZzoge1xyXG4gICAgICAgIE1vZGFsOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJLb25maWd1cmFzaSBTaW5rcm9uaXNhc2kgQ2xvdWRcIixcclxuICAgICAgICAgIENoZWNrOiBcIlBlcmlrc2EgS2V0ZXJzZWRpYWFuXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBTeW5jVHlwZToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiSmVuaXMgU2lua3JvbmlzYXNpXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJQaWxpaCBzZXJ2ZXIgc2lua3JvbmlzYXNpIGZhdm9yaXRcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFByb3h5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBa3RpZmthbiBQcm94eVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiU2FhdCBtZW55aW5rcm9ua2FuIGRpIGJyb3dzZXIsIHByb3h5IGhhcnVzIGRpYWt0aWZrYW4gdW50dWsgbWVuZ2hpbmRhcmkgcGVtYmF0YXNhbiBsaW50YXMgZG9tYWluXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQcm94eVVybDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQWxhbWF0IFByb3h5XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJIYW55YSBiZXJsYWt1IHVudHVrIHByb3h5IGxpbnRhcyBkb21haW4gYmF3YWFuIHByb3llayBpbmlcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBXZWJEYXY6IHtcclxuICAgICAgICAgIEVuZHBvaW50OiBcIkFsYW1hdCBXZWJEQVZcIixcclxuICAgICAgICAgIFVzZXJOYW1lOiBcIk5hbWEgUGVuZ2d1bmFcIixcclxuICAgICAgICAgIFBhc3N3b3JkOiBcIkthdGEgU2FuZGlcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBVcFN0YXNoOiB7XHJcbiAgICAgICAgICBFbmRwb2ludDogXCJVcmwgUkVTVCBSZWRpcyBVcFN0YXNoXCIsXHJcbiAgICAgICAgICBVc2VyTmFtZTogXCJOYW1hIENhZGFuZ2FuXCIsXHJcbiAgICAgICAgICBQYXNzd29yZDogXCJUb2tlbiBSRVNUIFJlZGlzIFVwU3Rhc2hcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG5cclxuICAgICAgTG9jYWxTdGF0ZTogXCJEYXRhIExva2FsXCIsXHJcbiAgICAgIE92ZXJ2aWV3OiAob3ZlcnZpZXc6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBgJHtvdmVydmlldy5jaGF0fSBwZXJjYWthcGFuLCAke292ZXJ2aWV3Lm1lc3NhZ2V9IHBlc2FuLCAke292ZXJ2aWV3LnByb21wdH0gcHJvbXB0LCAke292ZXJ2aWV3Lm1hc2t9IG1hc2tlcmA7XHJcbiAgICAgIH0sXHJcbiAgICAgIEltcG9ydEZhaWxlZDogXCJJbXBvciBHYWdhbFwiLFxyXG4gICAgfSxcclxuICAgIE1hc2s6IHtcclxuICAgICAgU3BsYXNoOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiSGFsYW1hbiBBd2FsIE1hc2tlclwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIlRhbXBpbGthbiBoYWxhbWFuIGF3YWwgbWFza2VyIHNhYXQgbWVtdWxhaSBvYnJvbGFuIGJhcnVcIixcclxuICAgICAgfSxcclxuICAgICAgQnVpbHRpbjoge1xyXG4gICAgICAgIFRpdGxlOiBcIlNlbWJ1bnlpa2FuIE1hc2tlciBCYXdhYW5cIixcclxuICAgICAgICBTdWJUaXRsZTogXCJTZW1idW55aWthbiBtYXNrZXIgYmF3YWFuIGRhcmkgc2VtdWEgZGFmdGFyIG1hc2tlclwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIFByb21wdDoge1xyXG4gICAgICBEaXNhYmxlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiTm9uYWt0aWZrYW4gUGVsZW5na2FwYW4gUHJvbXB0IE90b21hdGlzXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIktldGlrIC8gZGkgYXdhbCBrb3RhayBpbnB1dCB1bnR1ayBtZW1pY3UgcGVsZW5na2FwYW4gb3RvbWF0aXNcIixcclxuICAgICAgfSxcclxuICAgICAgTGlzdDogXCJEYWZ0YXIgUHJvbXB0IEt1c3RvbVwiLFxyXG4gICAgICBMaXN0Q291bnQ6IChidWlsdGluOiBudW1iZXIsIGN1c3RvbTogbnVtYmVyKSA9PlxyXG4gICAgICAgIGBCYXdhYW4gJHtidWlsdGlufSBpdGVtLCBwZW5nZ3VuYSAke2N1c3RvbX0gaXRlbWAsXHJcbiAgICAgIEVkaXQ6IFwiRWRpdFwiLFxyXG4gICAgICBNb2RhbDoge1xyXG4gICAgICAgIFRpdGxlOiBcIkRhZnRhciBQcm9tcHRcIixcclxuICAgICAgICBBZGQ6IFwiQmFydVwiLFxyXG4gICAgICAgIFNlYXJjaDogXCJDYXJpIFByb21wdFwiLFxyXG4gICAgICB9LFxyXG4gICAgICBFZGl0TW9kYWw6IHtcclxuICAgICAgICBUaXRsZTogXCJFZGl0IFByb21wdFwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIEhpc3RvcnlDb3VudDoge1xyXG4gICAgICBUaXRsZTogXCJKdW1sYWggUGVzYW4gU2VqYXJhaFwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJKdW1sYWggcGVzYW4gc2VqYXJhaCB5YW5nIGRpYmF3YSBzZXRpYXAgcGVybWludGFhblwiLFxyXG4gICAgfSxcclxuICAgIENvbXByZXNzVGhyZXNob2xkOiB7XHJcbiAgICAgIFRpdGxlOiBcIkFtYmFuZyBCYXRhcyBLb21wcmVzaSBQZXNhbiBTZWphcmFoXCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwiS2V0aWthIHBlc2FuIHNlamFyYWggeWFuZyB0aWRhayB0ZXJrb21wcmVzaSBtZWxlYmloaSBuaWxhaSBpbmksIGFrYW4gZGlrb21wcmVzaVwiLFxyXG4gICAgfSxcclxuXHJcbiAgICBVc2FnZToge1xyXG4gICAgICBUaXRsZTogXCJDZWsgU2FsZG9cIixcclxuICAgICAgU3ViVGl0bGUodXNlZDogYW55LCB0b3RhbDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIGBEaWd1bmFrYW4gYnVsYW4gaW5pICQke3VzZWR9LCB0b3RhbCBsYW5nZ2FuYW4gJCR7dG90YWx9YDtcclxuICAgICAgfSxcclxuICAgICAgSXNDaGVja2luZzogXCJTZWRhbmcgbWVtZXJpa3Nh4oCmXCIsXHJcbiAgICAgIENoZWNrOiBcIlBlcmlrc2EgTGFnaVwiLFxyXG4gICAgICBOb0FjY2VzczogXCJNYXN1a2thbiBBUEkgS2V5IGF0YXUga2F0YSBzYW5kaSBha3NlcyB1bnR1ayBtZWxpaGF0IHNhbGRvXCIsXHJcbiAgICB9LFxyXG5cclxuICAgIEFjY2Vzczoge1xyXG4gICAgICBTYWFzU3RhcnQ6IHtcclxuICAgICAgICBUaXRsZTogXCJHdW5ha2FuIE5leHRDaGF0IEFJXCIsXHJcbiAgICAgICAgTGFiZWw6IFwiKFNvbHVzaSBwYWxpbmcgaGVtYXQgYmlheWEpXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIkRpa2Vsb2xhIHNlY2FyYSByZXNtaSBvbGVoIE5leHRDaGF0LCBzaWFwIGRpZ3VuYWthbiB0YW5wYSBrb25maWd1cmFzaSwgbWVuZHVrdW5nIG1vZGVsIGJlc2FyIHRlcmJhcnUgc2VwZXJ0aSBPcGVuQUkgbzEsIEdQVC00bywgZGFuIENsYXVkZS0zLjVcIixcclxuICAgICAgICBDaGF0Tm93OiBcIkNoYXQgU2VrYXJhbmdcIixcclxuICAgICAgfSxcclxuXHJcbiAgICAgIEFjY2Vzc0NvZGU6IHtcclxuICAgICAgICBUaXRsZTogXCJLYXRhIFNhbmRpIEFrc2VzXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiQWRtaW5pc3RyYXRvciB0ZWxhaCBtZW5nYWt0aWZrYW4gYWtzZXMgdGVyZW5rcmlwc2lcIixcclxuICAgICAgICBQbGFjZWhvbGRlcjogXCJNYXN1a2thbiBrYXRhIHNhbmRpIGFrc2VzXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEN1c3RvbUVuZHBvaW50OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiQW50YXJtdWthIEt1c3RvbVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIkFwYWthaCBha2FuIG1lbmdndW5ha2FuIGxheWFuYW4gQXp1cmUgYXRhdSBPcGVuQUkga3VzdG9tXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFByb3ZpZGVyOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiUGVueWVkaWEgTGF5YW5hbiBNb2RlbFwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIkdhbnRpIHBlbnllZGlhIGxheWFuYW4geWFuZyBiZXJiZWRhXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIE9wZW5BSToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIEtleVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiR3VuYWthbiBPcGVuQUkgS2V5IGt1c3RvbSB1bnR1ayBtZW5naGluZGFyaSBiYXRhc2FuIGFrc2VzIGthdGEgc2FuZGlcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIk9wZW5BSSBBUEkgS2V5XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFsYW1hdCBBbnRhcm11a2FcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlNlbGFpbiBhbGFtYXQgZGVmYXVsdCwgaGFydXMgbWVueWVydGFrYW4gaHR0cChzKTovL1wiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEF6dXJlOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJLdW5jaSBBbnRhcm11a2FcIixcclxuICAgICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgICBcIkd1bmFrYW4gQXp1cmUgS2V5IGt1c3RvbSB1bnR1ayBtZW5naGluZGFyaSBiYXRhc2FuIGFrc2VzIGthdGEgc2FuZGlcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkF6dXJlIEFQSSBLZXlcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQWxhbWF0IEFudGFybXVrYVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiQ29udG9oOlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcmlvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiVmVyc2kgQW50YXJtdWthIChhenVyZSBhcGkgdmVyc2lvbilcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlBpbGloIHZlcnNpIHBhcnNpYWwgdGVydGVudHVcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBBbnRocm9waWM6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkt1bmNpIEFudGFybXVrYVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiR3VuYWthbiBBbnRocm9waWMgS2V5IGt1c3RvbSB1bnR1ayBtZW5naGluZGFyaSBiYXRhc2FuIGFrc2VzIGthdGEgc2FuZGlcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkFudGhyb3BpYyBBUEkgS2V5XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFsYW1hdCBBbnRhcm11a2FcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkNvbnRvaDpcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBBcGlWZXJpb246IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlZlcnNpIEFudGFybXVrYSAoY2xhdWRlIGFwaSB2ZXJzaW9uKVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiUGlsaWggdmVyc2kgQVBJIHRlcnRlbnR1XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgR29vZ2xlOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJLdW5jaSBBUElcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkRhcGF0a2FuIGt1bmNpIEFQSSBBbmRhIGRhcmkgR29vZ2xlIEFJXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJNYXN1a2thbiBrdW5jaSBBUEkgU3R1ZGlvIEdvb2dsZSBBSSBBbmRhXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFsYW1hdCBBa2hpclwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiQ29udG9oOlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcnNpb246IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlZlcnNpIEFQSSAoaGFueWEgdW50dWsgZ2VtaW5pLXBybylcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlBpbGloIHZlcnNpIEFQSSB0ZXJ0ZW50dVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgR29vZ2xlU2FmZXR5U2V0dGluZ3M6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlRpbmdrYXQgRmlsdGVyIEtlYW1hbmFuIEdvb2dsZVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiQXR1ciB0aW5na2F0IGZpbHRlciBrb250ZW5cIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBCYWlkdToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIEtleVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiR3VuYWthbiBCYWlkdSBBUEkgS2V5IGt1c3RvbVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQmFpZHUgQVBJIEtleVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgU2VjcmV0S2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJTZWNyZXQgS2V5XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJHdW5ha2FuIEJhaWR1IFNlY3JldCBLZXkga3VzdG9tXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJCYWlkdSBTZWNyZXQgS2V5XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQWxhbWF0IEFudGFybXVrYVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiVGlkYWsgbWVuZHVrdW5nIGt1c3RvbSwgcGVyZ2kga2UgLmVudiB1bnR1ayBrb25maWd1cmFzaVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEJ5dGVEYW5jZToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiS3VuY2kgQW50YXJtdWthXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJHdW5ha2FuIEJ5dGVEYW5jZSBBUEkgS2V5IGt1c3RvbVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQnl0ZURhbmNlIEFQSSBLZXlcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBbGFtYXQgQW50YXJtdWthXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJDb250b2g6XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQWxpYmFiYToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiS3VuY2kgQW50YXJtdWthXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJHdW5ha2FuIEFsaWJhYmEgQ2xvdWQgQVBJIEtleSBrdXN0b21cIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkFsaWJhYmEgQ2xvdWQgQVBJIEtleVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFsYW1hdCBBbnRhcm11a2FcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkNvbnRvaDpcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBDdXN0b21Nb2RlbDoge1xyXG4gICAgICAgIFRpdGxlOiBcIk5hbWEgTW9kZWwgS3VzdG9tXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiVGFtYmFoa2FuIG9wc2kgbW9kZWwga3VzdG9tLCBwaXNhaGthbiBkZW5nYW4ga29tYVwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuXHJcbiAgICBNb2RlbDogXCJNb2RlbFwiLFxyXG4gICAgQ29tcHJlc3NNb2RlbDoge1xyXG4gICAgICBUaXRsZTogXCJNb2RlbCBLb21wcmVzaVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJNb2RlbCB5YW5nIGRpZ3VuYWthbiB1bnR1ayBtZW5nb21wcmVzIHJpd2F5YXRcIixcclxuICAgIH0sXHJcbiAgICBUZW1wZXJhdHVyZToge1xyXG4gICAgICBUaXRsZTogXCJSYW5kb21uZXNzICh0ZW1wZXJhdHVyZSlcIixcclxuICAgICAgU3ViVGl0bGU6IFwiU2VtYWtpbiB0aW5nZ2kgbmlsYWlueWEsIHNlbWFraW4gYWNhayByZXNwb25zbnlhXCIsXHJcbiAgICB9LFxyXG4gICAgVG9wUDoge1xyXG4gICAgICBUaXRsZTogXCJTYW1wbGluZyBJbnRpICh0b3BfcClcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJNaXJpcCBkZW5nYW4gcmFuZG9tbmVzcywgdGV0YXBpIGphbmdhbiB1YmFoIGJlcnNhbWEgcmFuZG9tbmVzc1wiLFxyXG4gICAgfSxcclxuICAgIE1heFRva2Vuczoge1xyXG4gICAgICBUaXRsZTogXCJCYXRhcyBUb2tlbiBQZXIgUmVzcG9uc1wiLFxyXG4gICAgICBTdWJUaXRsZTogXCJKdW1sYWggdG9rZW4gbWFrc2ltdW0geWFuZyBkaWd1bmFrYW4gcGVyIGludGVyYWtzaVwiLFxyXG4gICAgfSxcclxuICAgIFByZXNlbmNlUGVuYWx0eToge1xyXG4gICAgICBUaXRsZTogXCJLZWRla2F0YW4gVG9waWsgKHByZXNlbmNlX3BlbmFsdHkpXCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwiU2VtYWtpbiB0aW5nZ2kgbmlsYWlueWEsIHNlbWFraW4gYmVzYXIga2VtdW5na2luYW4gbWVtcGVybHVhcyBrZSB0b3BpayBiYXJ1XCIsXHJcbiAgICB9LFxyXG4gICAgRnJlcXVlbmN5UGVuYWx0eToge1xyXG4gICAgICBUaXRsZTogXCJIdWt1bWFuIEZyZWt1ZW5zaSAoZnJlcXVlbmN5X3BlbmFsdHkpXCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwiU2VtYWtpbiB0aW5nZ2kgbmlsYWlueWEsIHNlbWFraW4gYmVzYXIga2VtdW5na2luYW4gbWVuZ3VyYW5naSBrYXRhLWthdGEgeWFuZyBiZXJ1bGFuZ1wiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIFN0b3JlOiB7XHJcbiAgICBEZWZhdWx0VG9waWM6IFwiT2Jyb2xhbiBCYXJ1XCIsXHJcbiAgICBCb3RIZWxsbzogXCJBZGEgeWFuZyBiaXNhIHNheWEgYmFudHU/XCIsXHJcbiAgICBFcnJvcjogXCJUZXJqYWRpIGtlc2FsYWhhbiwgY29iYSBsYWdpIG5hbnRpXCIsXHJcbiAgICBQcm9tcHQ6IHtcclxuICAgICAgSGlzdG9yeTogKGNvbnRlbnQ6IHN0cmluZykgPT5cclxuICAgICAgICBcIkluaSBhZGFsYWggcmluZ2thc2FuIG9icm9sYW4gc2ViZWx1bW55YSBzZWJhZ2FpIGxhdGFyIGJlbGFrYW5nOiBcIiArXHJcbiAgICAgICAgY29udGVudCxcclxuICAgICAgVG9waWM6XHJcbiAgICAgICAgXCJHdW5ha2FuIGVtcGF0IGhpbmdnYSBsaW1hIGthdGEgdW50dWsgbGFuZ3N1bmcgbWVtYmVyaWthbiByaW5na2FzYW4gdG9waWsga2FsaW1hdCBpbmksIHRhbnBhIHBlbmplbGFzYW4sIHRhbnBhIHRhbmRhIGJhY2EsIHRhbnBhIGthdGEgcGVuZ2lzaSwgdGFucGEgdGVrcyB0YW1iYWhhbiwgdGFucGEgbWVuZWJhbGthbi4gSmlrYSB0aWRhayBhZGEgdG9waWssIGxhbmdzdW5nIGphd2FiICdPYnJvbGFuIFNhbnRhaSdcIixcclxuICAgICAgU3VtbWFyaXplOlxyXG4gICAgICAgIFwiQmVyaWthbiByaW5na2FzYW4gc2luZ2thdCB0ZW50YW5nIGtvbnRlbiBvYnJvbGFuLCB1bnR1ayBkaWd1bmFrYW4gc2ViYWdhaSBwcm9tcHQga29udGVrcyBzZWxhbmp1dG55YSwgZGFsYW0gMjAwIGthdGEgYXRhdSBrdXJhbmdcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBDb3B5OiB7XHJcbiAgICBTdWNjZXNzOiBcIlRlbGFoIGRpc2FsaW4ga2UgY2xpcGJvYXJkXCIsXHJcbiAgICBGYWlsZWQ6IFwiR2FnYWwgbWVueWFsaW4sIG1vaG9uIGJlcmlrYW4gaXppbiBjbGlwYm9hcmRcIixcclxuICB9LFxyXG4gIERvd25sb2FkOiB7XHJcbiAgICBTdWNjZXNzOiBcIktvbnRlbiB0ZWxhaCBkaXVuZHVoIGtlIGRpcmVrdG9yaSBBbmRhLlwiLFxyXG4gICAgRmFpbGVkOiBcIlVuZHVoYW4gZ2FnYWwuXCIsXHJcbiAgfSxcclxuICBDb250ZXh0OiB7XHJcbiAgICBUb2FzdDogKHg6IGFueSkgPT4gYEJlcmlzaSAke3h9IHByb21wdCBwcmVzZXRgLFxyXG4gICAgRWRpdDogXCJQZW5nYXR1cmFuIE9icm9sYW4gU2FhdCBJbmlcIixcclxuICAgIEFkZDogXCJUYW1iYWggT2Jyb2xhblwiLFxyXG4gICAgQ2xlYXI6IFwiS29udGVrcyB0ZWxhaCBkaWhhcHVzXCIsXHJcbiAgICBSZXZlcnQ6IFwiS2VtYmFsaWthbiBLb250ZWtzXCIsXHJcbiAgfSxcclxuICBQbHVnaW46IHtcclxuICAgIE5hbWU6IFwiUGx1Z2luXCIsXHJcbiAgfSxcclxuICBGaW5lVHVuZWQ6IHtcclxuICAgIFN5c21lc3NhZ2U6IFwiQW5kYSBhZGFsYWggc2VvcmFuZyBhc2lzdGVuXCIsXHJcbiAgfSxcclxuICBTZWFyY2hDaGF0OiB7XHJcbiAgICBOYW1lOiBcIkNhcmlcIixcclxuICAgIFBhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwiQ2FyaSByaXdheWF0IG9icm9sYW5cIixcclxuICAgICAgU2VhcmNoOiBcIk1hc3Vra2FuIGthdGEga3VuY2kgcGVuY2FyaWFuXCIsXHJcbiAgICAgIE5vUmVzdWx0OiBcIlRpZGFrIGFkYSBoYXNpbCBkaXRlbXVrYW5cIixcclxuICAgICAgTm9EYXRhOiBcIlRpZGFrIGFkYSBkYXRhXCIsXHJcbiAgICAgIExvYWRpbmc6IFwiTWVtdWF0XCIsXHJcblxyXG4gICAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGBEaXRlbXVrYW4gJHtjb3VudH0gaGFzaWxgLFxyXG4gICAgfSxcclxuICAgIEl0ZW06IHtcclxuICAgICAgVmlldzogXCJMaWhhdFwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIE1hc2s6IHtcclxuICAgIE5hbWU6IFwiTWFza2VyXCIsXHJcbiAgICBQYWdlOiB7XHJcbiAgICAgIFRpdGxlOiBcIlByZXNldCBLYXJha3RlciBNYXNrZXJcIixcclxuICAgICAgU3ViVGl0bGU6IChjb3VudDogbnVtYmVyKSA9PiBgJHtjb3VudH0gZGVmaW5pc2kga2FyYWt0ZXIgcHJlc2V0YCxcclxuICAgICAgU2VhcmNoOiBcIkNhcmkgTWFza2VyIEthcmFrdGVyXCIsXHJcbiAgICAgIENyZWF0ZTogXCJCdWF0IEJhcnVcIixcclxuICAgIH0sXHJcbiAgICBJdGVtOiB7XHJcbiAgICAgIEluZm86IChjb3VudDogbnVtYmVyKSA9PiBgQmVyaXNpICR7Y291bnR9IG9icm9sYW4gcHJlc2V0YCxcclxuICAgICAgQ2hhdDogXCJPYnJvbGFuXCIsXHJcbiAgICAgIFZpZXc6IFwiTGloYXRcIixcclxuICAgICAgRWRpdDogXCJFZGl0XCIsXHJcbiAgICAgIERlbGV0ZTogXCJIYXB1c1wiLFxyXG4gICAgICBEZWxldGVDb25maXJtOiBcIktvbmZpcm1hc2kgcGVuZ2hhcHVzYW4/XCIsXHJcbiAgICB9LFxyXG4gICAgRWRpdE1vZGFsOiB7XHJcbiAgICAgIFRpdGxlOiAocmVhZG9ubHk6IGJvb2xlYW4pID0+XHJcbiAgICAgICAgYEVkaXQgTWFza2VyIFByZXNldCAke3JlYWRvbmx5ID8gXCIoSGFueWEgQmFjYSlcIiA6IFwiXCJ9YCxcclxuICAgICAgRG93bmxvYWQ6IFwiVW5kdWggUHJlc2V0XCIsXHJcbiAgICAgIENsb25lOiBcIktsb24gUHJlc2V0XCIsXHJcbiAgICB9LFxyXG4gICAgQ29uZmlnOiB7XHJcbiAgICAgIEF2YXRhcjogXCJBdmF0YXIgS2FyYWt0ZXJcIixcclxuICAgICAgTmFtZTogXCJOYW1hIEthcmFrdGVyXCIsXHJcbiAgICAgIFN5bmM6IHtcclxuICAgICAgICBUaXRsZTogXCJHdW5ha2FuIFBlbmdhdHVyYW4gR2xvYmFsXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIkFwYWthaCBvYnJvbGFuIHNhYXQgaW5pIGFrYW4gbWVuZ2d1bmFrYW4gcGVuZ2F0dXJhbiBtb2RlbCBnbG9iYWw/XCIsXHJcbiAgICAgICAgQ29uZmlybTpcclxuICAgICAgICAgIFwiUGVuZ2F0dXJhbiBrdXN0b20gb2Jyb2xhbiBzYWF0IGluaSBha2FuIGRpdGltcGEgc2VjYXJhIG90b21hdGlzLCBrb25maXJtYXNpIHVudHVrIG1lbmdha3RpZmthbiBwZW5nYXR1cmFuIGdsb2JhbD9cIixcclxuICAgICAgfSxcclxuICAgICAgSGlkZUNvbnRleHQ6IHtcclxuICAgICAgICBUaXRsZTogXCJTZW1idW55aWthbiBPYnJvbGFuIFByZXNldFwiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCJTZXRlbGFoIGRpc2VtYnVueWlrYW4sIG9icm9sYW4gcHJlc2V0IHRpZGFrIGFrYW4gbXVuY3VsIGRpIGFudGFybXVrYSBvYnJvbGFuXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFNoYXJlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiQmFnaWthbiBNYXNrZXIgSW5pXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiSGFzaWxrYW4gdGF1dGFuIGxhbmdzdW5nIGtlIG1hc2tlciBpbmlcIixcclxuICAgICAgICBBY3Rpb246IFwiU2FsaW4gVGF1dGFuXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgTmV3Q2hhdDoge1xyXG4gICAgUmV0dXJuOiBcIktlbWJhbGlcIixcclxuICAgIFNraXA6IFwiTXVsYWkgU2VrYXJhbmdcIixcclxuICAgIE5vdFNob3c6IFwiSmFuZ2FuIFRhbXBpbGthbiBMYWdpXCIsXHJcbiAgICBDb25maXJtTm9TaG93OlxyXG4gICAgICBcIktvbmZpcm1hc2kgdW50dWsgbWVub25ha3RpZmthbj8gU2V0ZWxhaCBkaW5vbmFrdGlma2FuLCBBbmRhIGRhcGF0IG1lbmdha3RpZmthbm55YSBrZW1iYWxpIGthcGFuIHNhamEgZGkgcGVuZ2F0dXJhbi5cIixcclxuICAgIFRpdGxlOiBcIlBpbGloIE1hc2tlclwiLFxyXG4gICAgU3ViVGl0bGU6IFwiTXVsYWkgc2VrYXJhbmcsIGJlcmludGVyYWtzaSBkZW5nYW4gcGVtaWtpcmFuIGRpIGJhbGlrIG1hc2tlclwiLFxyXG4gICAgTW9yZTogXCJMaWhhdCBTZW11YVwiLFxyXG4gIH0sXHJcblxyXG4gIFVSTENvbW1hbmQ6IHtcclxuICAgIENvZGU6IFwiVGVyZGV0ZWtzaSBiYWh3YSB0YXV0YW4gc3VkYWggbWVuZ2FuZHVuZyBrb2RlIGFrc2VzLCBhcGFrYWggYWthbiBkaWlzaSBzZWNhcmEgb3RvbWF0aXM/XCIsXHJcbiAgICBTZXR0aW5nczpcclxuICAgICAgXCJUZXJkZXRla3NpIGJhaHdhIHRhdXRhbiBtZW5nYW5kdW5nIHBlbmdhdHVyYW4gcHJlc2V0LCBhcGFrYWggYWthbiBkaWlzaSBzZWNhcmEgb3RvbWF0aXM/XCIsXHJcbiAgfSxcclxuXHJcbiAgVUk6IHtcclxuICAgIENvbmZpcm06IFwiS29uZmlybWFzaVwiLFxyXG4gICAgQ2FuY2VsOiBcIkJhdGFsXCIsXHJcbiAgICBDbG9zZTogXCJUdXR1cFwiLFxyXG4gICAgQ3JlYXRlOiBcIkJ1YXQgQmFydVwiLFxyXG4gICAgRWRpdDogXCJFZGl0XCIsXHJcbiAgICBFeHBvcnQ6IFwiRWtzcG9yXCIsXHJcbiAgICBJbXBvcnQ6IFwiSW1wb3JcIixcclxuICAgIFN5bmM6IFwiU2lua3JvbmthblwiLFxyXG4gICAgQ29uZmlnOiBcIktvbmZpZ3VyYXNpXCIsXHJcbiAgfSxcclxuICBFeHBvcnRlcjoge1xyXG4gICAgRGVzY3JpcHRpb246IHtcclxuICAgICAgVGl0bGU6IFwiSGFueWEgcGVzYW4gc2V0ZWxhaCBtZW5naGFwdXMga29udGVrcyB5YW5nIGFrYW4gZGl0YW1waWxrYW5cIixcclxuICAgIH0sXHJcbiAgICBNb2RlbDogXCJNb2RlbFwiLFxyXG4gICAgTWVzc2FnZXM6IFwiUGVzYW5cIixcclxuICAgIFRvcGljOiBcIlRvcGlrXCIsXHJcbiAgICBUaW1lOiBcIldha3R1XCIsXHJcbiAgfSxcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGlkO1xyXG4iXSwibmFtZXMiOlsiU3VibWl0S2V5IiwiZ2V0Q2xpZW50Q29uZmlnIiwiU0FBU19DSEFUX1VUTV9VUkwiLCJpc0FwcCIsImlkIiwiV0lQIiwiRXJyb3IiLCJVbmF1dGhvcml6ZWQiLCJBdXRoIiwiVGl0bGUiLCJUaXBzIiwiU3ViVGlwcyIsIklucHV0IiwiQ29uZmlybSIsIkxhdGVyIiwiUmV0dXJuIiwiU2Fhc1RpcHMiLCJUb3BUaXBzIiwiQ2hhdEl0ZW0iLCJDaGF0SXRlbUNvdW50IiwiY291bnQiLCJDaGF0IiwiU3ViVGl0bGUiLCJFZGl0TWVzc2FnZSIsIlRvcGljIiwiQWN0aW9ucyIsIkNoYXRMaXN0IiwiQ29tcHJlc3NlZEhpc3RvcnkiLCJFeHBvcnQiLCJDb3B5IiwiU3RvcCIsIlJldHJ5IiwiUGluIiwiUGluVG9hc3RDb250ZW50IiwiUGluVG9hc3RBY3Rpb24iLCJEZWxldGUiLCJFZGl0IiwiUmVmcmVzaFRpdGxlIiwiUmVmcmVzaFRvYXN0IiwiQ29tbWFuZHMiLCJuZXciLCJuZXdtIiwibmV4dCIsInByZXYiLCJjbGVhciIsImRlbCIsIklucHV0QWN0aW9ucyIsIlRvQm90dG9tIiwiVGhlbWUiLCJhdXRvIiwibGlnaHQiLCJkYXJrIiwiUHJvbXB0IiwiTWFza3MiLCJDbGVhciIsIlNldHRpbmdzIiwiVXBsb2FkSW1hZ2UiLCJSZW5hbWUiLCJUeXBpbmciLCJzdWJtaXRLZXkiLCJpbnB1dEhpbnRzIiwiU3RyaW5nIiwiRW50ZXIiLCJTZW5kIiwiQ29uZmlnIiwiUmVzZXQiLCJTYXZlQXMiLCJJc0NvbnRleHQiLCJEb3dubG9hZCIsIlNoYXJlIiwiTWVzc2FnZUZyb21Zb3UiLCJNZXNzYWdlRnJvbUNoYXRHUFQiLCJGb3JtYXQiLCJJbmNsdWRlQ29udGV4dCIsIlN0ZXBzIiwiU2VsZWN0IiwiUHJldmlldyIsIkltYWdlIiwiVG9hc3QiLCJNb2RhbCIsIlNlYXJjaCIsIkFsbCIsIkxhdGVzdCIsIk1lbW9yeSIsIkVtcHR5Q29udGVudCIsIlJlc2V0Q29uZmlybSIsIkhvbWUiLCJOZXdDaGF0IiwiRGVsZXRlQ2hhdCIsIkRlbGV0ZVRvYXN0IiwiUmV2ZXJ0IiwiRGFuZ2VyIiwiQWN0aW9uIiwiTGFuZyIsIk5hbWUiLCJBdmF0YXIiLCJGb250U2l6ZSIsIkZvbnRGYW1pbHkiLCJQbGFjZWhvbGRlciIsIkluamVjdFN5c3RlbVByb21wdHMiLCJJbnB1dFRlbXBsYXRlIiwiVXBkYXRlIiwiVmVyc2lvbiIsIngiLCJJc0xhdGVzdCIsIkNoZWNrVXBkYXRlIiwiSXNDaGVja2luZyIsIkZvdW5kVXBkYXRlIiwiR29Ub1VwZGF0ZSIsIlNlbmRLZXkiLCJUaWdodEJvcmRlciIsIlNlbmRQcmV2aWV3QnViYmxlIiwiQXV0b0dlbmVyYXRlVGl0bGUiLCJTeW5jIiwiQ2xvdWRTdGF0ZSIsIk5vdFN5bmNZZXQiLCJTdWNjZXNzIiwiRmFpbCIsIkNoZWNrIiwiU3luY1R5cGUiLCJQcm94eSIsIlByb3h5VXJsIiwiV2ViRGF2IiwiRW5kcG9pbnQiLCJVc2VyTmFtZSIsIlBhc3N3b3JkIiwiVXBTdGFzaCIsIkxvY2FsU3RhdGUiLCJPdmVydmlldyIsIm92ZXJ2aWV3IiwiY2hhdCIsIm1lc3NhZ2UiLCJwcm9tcHQiLCJtYXNrIiwiSW1wb3J0RmFpbGVkIiwiTWFzayIsIlNwbGFzaCIsIkJ1aWx0aW4iLCJEaXNhYmxlIiwiTGlzdCIsIkxpc3RDb3VudCIsImJ1aWx0aW4iLCJjdXN0b20iLCJBZGQiLCJFZGl0TW9kYWwiLCJIaXN0b3J5Q291bnQiLCJDb21wcmVzc1RocmVzaG9sZCIsIlVzYWdlIiwidXNlZCIsInRvdGFsIiwiTm9BY2Nlc3MiLCJBY2Nlc3MiLCJTYWFzU3RhcnQiLCJMYWJlbCIsIkNoYXROb3ciLCJBY2Nlc3NDb2RlIiwiQ3VzdG9tRW5kcG9pbnQiLCJQcm92aWRlciIsIk9wZW5BSSIsIkFwaUtleSIsIkF6dXJlIiwiQXBpVmVyaW9uIiwiQW50aHJvcGljIiwiR29vZ2xlIiwiQXBpVmVyc2lvbiIsIkdvb2dsZVNhZmV0eVNldHRpbmdzIiwiQmFpZHUiLCJTZWNyZXRLZXkiLCJCeXRlRGFuY2UiLCJBbGliYWJhIiwiQ3VzdG9tTW9kZWwiLCJNb2RlbCIsIkNvbXByZXNzTW9kZWwiLCJUZW1wZXJhdHVyZSIsIlRvcFAiLCJNYXhUb2tlbnMiLCJQcmVzZW5jZVBlbmFsdHkiLCJGcmVxdWVuY3lQZW5hbHR5IiwiU3RvcmUiLCJEZWZhdWx0VG9waWMiLCJCb3RIZWxsbyIsIkhpc3RvcnkiLCJjb250ZW50IiwiU3VtbWFyaXplIiwiRmFpbGVkIiwiQ29udGV4dCIsIlBsdWdpbiIsIkZpbmVUdW5lZCIsIlN5c21lc3NhZ2UiLCJTZWFyY2hDaGF0IiwiUGFnZSIsIk5vUmVzdWx0IiwiTm9EYXRhIiwiTG9hZGluZyIsIkl0ZW0iLCJWaWV3IiwiQ3JlYXRlIiwiSW5mbyIsIkRlbGV0ZUNvbmZpcm0iLCJyZWFkb25seSIsIkNsb25lIiwiSGlkZUNvbnRleHQiLCJTa2lwIiwiTm90U2hvdyIsIkNvbmZpcm1Ob1Nob3ciLCJNb3JlIiwiVVJMQ29tbWFuZCIsIkNvZGUiLCJVSSIsIkNhbmNlbCIsIkNsb3NlIiwiSW1wb3J0IiwiRXhwb3J0ZXIiLCJEZXNjcmlwdGlvbiIsIk1lc3NhZ2VzIiwiVGltZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/locales/id.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/locales/index.ts":
|
|
|
/*!******************************!*\
|
|
|
!*** ./app/locales/index.ts ***!
|
|
|
\******************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ALL_LANG_OPTIONS: () => (/* binding */ ALL_LANG_OPTIONS),\n/* harmony export */ AllLangs: () => (/* binding */ AllLangs),\n/* harmony export */ STT_LANG_MAP: () => (/* binding */ STT_LANG_MAP),\n/* harmony export */ changeLang: () => (/* binding */ changeLang),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ getISOLang: () => (/* binding */ getISOLang),\n/* harmony export */ getLang: () => (/* binding */ getLang),\n/* harmony export */ getSTTLang: () => (/* binding */ getSTTLang)\n/* harmony export */ });\n/* harmony import */ var _cn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cn */ \"(ssr)/./app/locales/cn.ts\");\n/* harmony import */ var _en__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./en */ \"(ssr)/./app/locales/en.ts\");\n/* harmony import */ var _pt__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pt */ \"(ssr)/./app/locales/pt.ts\");\n/* harmony import */ var _tw__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tw */ \"(ssr)/./app/locales/tw.ts\");\n/* harmony import */ var _id__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./id */ \"(ssr)/./app/locales/id.ts\");\n/* harmony import */ var _fr__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./fr */ \"(ssr)/./app/locales/fr.ts\");\n/* harmony import */ var _es__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./es */ \"(ssr)/./app/locales/es.ts\");\n/* harmony import */ var _it__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./it */ \"(ssr)/./app/locales/it.ts\");\n/* harmony import */ var _tr__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./tr */ \"(ssr)/./app/locales/tr.ts\");\n/* harmony import */ var _jp__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./jp */ \"(ssr)/./app/locales/jp.ts\");\n/* harmony import */ var _de__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./de */ \"(ssr)/./app/locales/de.ts\");\n/* harmony import */ var _vi__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./vi */ \"(ssr)/./app/locales/vi.ts\");\n/* harmony import */ var _ru__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ru */ \"(ssr)/./app/locales/ru.ts\");\n/* harmony import */ var _no__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./no */ \"(ssr)/./app/locales/no.ts\");\n/* harmony import */ var _cs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./cs */ \"(ssr)/./app/locales/cs.ts\");\n/* harmony import */ var _ko__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./ko */ \"(ssr)/./app/locales/ko.ts\");\n/* harmony import */ var _ar__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./ar */ \"(ssr)/./app/locales/ar.ts\");\n/* harmony import */ var _bn__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./bn */ \"(ssr)/./app/locales/bn.ts\");\n/* harmony import */ var _sk__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./sk */ \"(ssr)/./app/locales/sk.ts\");\n/* harmony import */ var _utils_merge__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../utils/merge */ \"(ssr)/./app/utils/merge.ts\");\n/* harmony import */ var _app_utils__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @/app/utils */ \"(ssr)/./app/utils.ts\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst localStorage = (0,_app_utils__WEBPACK_IMPORTED_MODULE_20__.safeLocalStorage)();\nconst ALL_LANGS = {\n cn: _cn__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n en: _en__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n tw: _tw__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n pt: _pt__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n jp: _jp__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n ko: _ko__WEBPACK_IMPORTED_MODULE_15__[\"default\"],\n id: _id__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n fr: _fr__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n es: _es__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n it: _it__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n tr: _tr__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n de: _de__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n vi: _vi__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n ru: _ru__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n cs: _cs__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n no: _no__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n ar: _ar__WEBPACK_IMPORTED_MODULE_16__[\"default\"],\n bn: _bn__WEBPACK_IMPORTED_MODULE_17__[\"default\"],\n sk: _sk__WEBPACK_IMPORTED_MODULE_18__[\"default\"]\n};\nconst AllLangs = Object.keys(ALL_LANGS);\nconst ALL_LANG_OPTIONS = {\n cn: \"简体中文\",\n en: \"English\",\n pt: \"Portugu\\xeas\",\n tw: \"繁體中文\",\n jp: \"日本語\",\n ko: \"한국어\",\n id: \"Indonesia\",\n fr: \"Fran\\xe7ais\",\n es: \"Espa\\xf1ol\",\n it: \"Italiano\",\n tr: \"T\\xfcrk\\xe7e\",\n de: \"Deutsch\",\n vi: \"Tiếng Việt\",\n ru: \"Русский\",\n cs: \"Čeština\",\n no: \"Nynorsk\",\n ar: \"العربية\",\n bn: \"বাংলা\",\n sk: \"Slovensky\"\n};\nconst LANG_KEY = \"lang\";\nconst DEFAULT_LANG = \"en\";\nconst fallbackLang = _en__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nconst targetLang = ALL_LANGS[getLang()];\n// if target lang missing some fields, it will use fallback lang string\n(0,_utils_merge__WEBPACK_IMPORTED_MODULE_19__.merge)(fallbackLang, targetLang);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (fallbackLang);\nfunction getItem(key) {\n return localStorage.getItem(key);\n}\nfunction setItem(key, value) {\n localStorage.setItem(key, value);\n}\nfunction getLanguage() {\n try {\n const locale = new Intl.Locale(navigator.language).maximize();\n const region = locale?.region?.toLowerCase();\n // 1. check region code in ALL_LANGS\n if (AllLangs.includes(region)) {\n return region;\n }\n // 2. check language code in ALL_LANGS\n if (AllLangs.includes(locale.language)) {\n return locale.language;\n }\n return DEFAULT_LANG;\n } catch {\n return DEFAULT_LANG;\n }\n}\nfunction getLang() {\n const savedLang = getItem(LANG_KEY);\n if (AllLangs.includes(savedLang ?? \"\")) {\n return savedLang;\n }\n return getLanguage();\n}\nfunction changeLang(lang) {\n setItem(LANG_KEY, lang);\n location.reload();\n}\nfunction getISOLang() {\n const isoLangString = {\n cn: \"zh-Hans\",\n tw: \"zh-Hant\"\n };\n const lang = getLang();\n return isoLangString[lang] ?? lang;\n}\nconst DEFAULT_STT_LANG = \"zh-CN\";\nconst STT_LANG_MAP = {\n cn: \"zh-CN\",\n en: \"en-US\",\n pt: \"pt-BR\",\n tw: \"zh-TW\",\n jp: \"ja-JP\",\n ko: \"ko-KR\",\n id: \"id-ID\",\n fr: \"fr-FR\",\n es: \"es-ES\",\n it: \"it-IT\",\n tr: \"tr-TR\",\n de: \"de-DE\",\n vi: \"vi-VN\",\n ru: \"ru-RU\",\n cs: \"cs-CZ\",\n no: \"no-NO\",\n ar: \"ar-SA\",\n bn: \"bn-BD\",\n sk: \"sk-SK\"\n};\nfunction getSTTLang() {\n try {\n return STT_LANG_MAP[getLang()];\n } catch {\n return DEFAULT_STT_LANG;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDbEIsTUFBTUMsZUFBcUM7SUFDaER0RCxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pNLElBQUk7SUFDSk0sSUFBSTtJQUNKWCxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkUsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkUsSUFBSTtJQUNKRCxJQUFJO0lBQ0pHLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0FBQ04sRUFBRTtBQUVLLFNBQVNxQztJQUNkLElBQUk7UUFDRixPQUFPRCxZQUFZLENBQUN2QixVQUFVO0lBQ2hDLEVBQUUsT0FBTTtRQUNOLE9BQU9zQjtJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9sb2NhbGVzL2luZGV4LnRzPzA0OTIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNuIGZyb20gXCIuL2NuXCI7XHJcbmltcG9ydCBlbiBmcm9tIFwiLi9lblwiO1xyXG5pbXBvcnQgcHQgZnJvbSBcIi4vcHRcIjtcclxuaW1wb3J0IHR3IGZyb20gXCIuL3R3XCI7XHJcbmltcG9ydCBpZCBmcm9tIFwiLi9pZFwiO1xyXG5pbXBvcnQgZnIgZnJvbSBcIi4vZnJcIjtcclxuaW1wb3J0IGVzIGZyb20gXCIuL2VzXCI7XHJcbmltcG9ydCBpdCBmcm9tIFwiLi9pdFwiO1xyXG5pbXBvcnQgdHIgZnJvbSBcIi4vdHJcIjtcclxuaW1wb3J0IGpwIGZyb20gXCIuL2pwXCI7XHJcbmltcG9ydCBkZSBmcm9tIFwiLi9kZVwiO1xyXG5pbXBvcnQgdmkgZnJvbSBcIi4vdmlcIjtcclxuaW1wb3J0IHJ1IGZyb20gXCIuL3J1XCI7XHJcbmltcG9ydCBubyBmcm9tIFwiLi9ub1wiO1xyXG5pbXBvcnQgY3MgZnJvbSBcIi4vY3NcIjtcclxuaW1wb3J0IGtvIGZyb20gXCIuL2tvXCI7XHJcbmltcG9ydCBhciBmcm9tIFwiLi9hclwiO1xyXG5pbXBvcnQgYm4gZnJvbSBcIi4vYm5cIjtcclxuaW1wb3J0IHNrIGZyb20gXCIuL3NrXCI7XHJcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSBcIi4uL3V0aWxzL21lcmdlXCI7XHJcbmltcG9ydCB7IHNhZmVMb2NhbFN0b3JhZ2UgfSBmcm9tIFwiQC9hcHAvdXRpbHNcIjtcclxuXHJcbmltcG9ydCB0eXBlIHsgTG9jYWxlVHlwZSB9IGZyb20gXCIuL2NuXCI7XHJcbmV4cG9ydCB0eXBlIHsgTG9jYWxlVHlwZSwgUGFydGlhbExvY2FsZVR5cGUgfSBmcm9tIFwiLi9jblwiO1xyXG5cclxuY29uc3QgbG9jYWxTdG9yYWdlID0gc2FmZUxvY2FsU3RvcmFnZSgpO1xyXG5cclxuY29uc3QgQUxMX0xBTkdTID0ge1xyXG4gIGNuLFxyXG4gIGVuLFxyXG4gIHR3LFxyXG4gIHB0LFxyXG4gIGpwLFxyXG4gIGtvLFxyXG4gIGlkLFxyXG4gIGZyLFxyXG4gIGVzLFxyXG4gIGl0LFxyXG4gIHRyLFxyXG4gIGRlLFxyXG4gIHZpLFxyXG4gIHJ1LFxyXG4gIGNzLFxyXG4gIG5vLFxyXG4gIGFyLFxyXG4gIGJuLFxyXG4gIHNrLFxyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgTGFuZyA9IGtleW9mIHR5cGVvZiBBTExfTEFOR1M7XHJcblxyXG5leHBvcnQgY29uc3QgQWxsTGFuZ3MgPSBPYmplY3Qua2V5cyhBTExfTEFOR1MpIGFzIExhbmdbXTtcclxuXHJcbmV4cG9ydCBjb25zdCBBTExfTEFOR19PUFRJT05TOiBSZWNvcmQ8TGFuZywgc3RyaW5nPiA9IHtcclxuICBjbjogXCLnroDkvZPkuK3mlodcIixcclxuICBlbjogXCJFbmdsaXNoXCIsXHJcbiAgcHQ6IFwiUG9ydHVndcOqc1wiLFxyXG4gIHR3OiBcIue5gemrlOS4reaWh1wiLFxyXG4gIGpwOiBcIuaXpeacrOiqnlwiLFxyXG4gIGtvOiBcIu2VnOq1reyWtFwiLFxyXG4gIGlkOiBcIkluZG9uZXNpYVwiLFxyXG4gIGZyOiBcIkZyYW7Dp2Fpc1wiLFxyXG4gIGVzOiBcIkVzcGHDsW9sXCIsXHJcbiAgaXQ6IFwiSXRhbGlhbm9cIixcclxuICB0cjogXCJUw7xya8OnZVwiLFxyXG4gIGRlOiBcIkRldXRzY2hcIixcclxuICB2aTogXCJUaeG6v25nIFZp4buHdFwiLFxyXG4gIHJ1OiBcItCg0YPRgdGB0LrQuNC5XCIsXHJcbiAgY3M6IFwixIxlxaF0aW5hXCIsXHJcbiAgbm86IFwiTnlub3Jza1wiLFxyXG4gIGFyOiBcItin2YTYudix2KjZitipXCIsXHJcbiAgYm46IFwi4Kas4Ka+4KaC4Kay4Ka+XCIsXHJcbiAgc2s6IFwiU2xvdmVuc2t5XCIsXHJcbn07XHJcblxyXG5jb25zdCBMQU5HX0tFWSA9IFwibGFuZ1wiO1xyXG5jb25zdCBERUZBVUxUX0xBTkcgPSBcImVuXCI7XHJcblxyXG5jb25zdCBmYWxsYmFja0xhbmcgPSBlbjtcclxuY29uc3QgdGFyZ2V0TGFuZyA9IEFMTF9MQU5HU1tnZXRMYW5nKCldIGFzIExvY2FsZVR5cGU7XHJcblxyXG4vLyBpZiB0YXJnZXQgbGFuZyBtaXNzaW5nIHNvbWUgZmllbGRzLCBpdCB3aWxsIHVzZSBmYWxsYmFjayBsYW5nIHN0cmluZ1xyXG5tZXJnZShmYWxsYmFja0xhbmcsIHRhcmdldExhbmcpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZmFsbGJhY2tMYW5nIGFzIExvY2FsZVR5cGU7XHJcblxyXG5mdW5jdGlvbiBnZXRJdGVtKGtleTogc3RyaW5nKSB7XHJcbiAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcclxuICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIHZhbHVlKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0TGFuZ3VhZ2UoKSB7XHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGxvY2FsZSA9IG5ldyBJbnRsLkxvY2FsZShuYXZpZ2F0b3IubGFuZ3VhZ2UpLm1heGltaXplKCk7XHJcbiAgICBjb25zdCByZWdpb24gPSBsb2NhbGU/LnJlZ2lvbj8udG9Mb3dlckNhc2UoKTtcclxuICAgIC8vIDEuIGNoZWNrIHJlZ2lvbiBjb2RlIGluIEFMTF9MQU5HU1xyXG4gICAgaWYgKEFsbExhbmdzLmluY2x1ZGVzKHJlZ2lvbiBhcyBMYW5nKSkge1xyXG4gICAgICByZXR1cm4gcmVnaW9uIGFzIExhbmc7XHJcbiAgICB9XHJcbiAgICAvLyAyLiBjaGVjayBsYW5ndWFnZSBjb2RlIGluIEFMTF9MQU5HU1xyXG4gICAgaWYgKEFsbExhbmdzLmluY2x1ZGVzKGxvY2FsZS5sYW5ndWFnZSBhcyBMYW5nKSkge1xyXG4gICAgICByZXR1cm4gbG9jYWxlLmxhbmd1YWdlIGFzIExhbmc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gREVGQVVMVF9MQU5HO1xyXG4gIH0gY2F0Y2gge1xyXG4gICAgcmV0dXJuIERFRkFVTFRfTEFORztcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRMYW5nKCk6IExhbmcge1xyXG4gIGNvbnN0IHNhdmVkTGFuZyA9IGdldEl0ZW0oTEFOR19LRVkpO1xyXG5cclxuICBpZiAoQWxsTGFuZ3MuaW5jbHVkZXMoKHNhdmVkTGFuZyA/PyBcIlwiKSBhcyBMYW5nKSkge1xyXG4gICAgcmV0dXJuIHNhdmVkTGFuZyBhcyBMYW5nO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGdldExhbmd1YWdlKCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjaGFuZ2VMYW5nKGxhbmc6IExhbmcpIHtcclxuICBzZXRJdGVtKExBTkdfS0VZLCBsYW5nKTtcclxuICBsb2NhdGlvbi5yZWxvYWQoKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldElTT0xhbmcoKSB7XHJcbiAgY29uc3QgaXNvTGFuZ1N0cmluZzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcclxuICAgIGNuOiBcInpoLUhhbnNcIixcclxuICAgIHR3OiBcInpoLUhhbnRcIixcclxuICB9O1xyXG5cclxuICBjb25zdCBsYW5nID0gZ2V0TGFuZygpO1xyXG4gIHJldHVybiBpc29MYW5nU3RyaW5nW2xhbmddID8/IGxhbmc7XHJcbn1cclxuXHJcbmNvbnN0IERFRkFVTFRfU1RUX0xBTkcgPSBcInpoLUNOXCI7XHJcbmV4cG9ydCBjb25zdCBTVFRfTEFOR19NQVA6IFJlY29yZDxMYW5nLCBzdHJpbmc+ID0ge1xyXG4gIGNuOiBcInpoLUNOXCIsXHJcbiAgZW46IFwiZW4tVVNcIixcclxuICBwdDogXCJwdC1CUlwiLFxyXG4gIHR3OiBcInpoLVRXXCIsXHJcbiAganA6IFwiamEtSlBcIixcclxuICBrbzogXCJrby1LUlwiLFxyXG4gIGlkOiBcImlkLUlEXCIsXHJcbiAgZnI6IFwiZnItRlJcIixcclxuICBlczogXCJlcy1FU1wiLFxyXG4gIGl0OiBcIml0LUlUXCIsXHJcbiAgdHI6IFwidHItVFJcIixcclxuICBkZTogXCJkZS1ERVwiLFxyXG4gIHZpOiBcInZpLVZOXCIsXHJcbiAgcnU6IFwicnUtUlVcIixcclxuICBjczogXCJjcy1DWlwiLFxyXG4gIG5vOiBcIm5vLU5PXCIsXHJcbiAgYXI6IFwiYXItU0FcIixcclxuICBibjogXCJibi1CRFwiLFxyXG4gIHNrOiBcInNrLVNLXCIsXHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0U1RUTGFuZygpOiBzdHJpbmcge1xyXG4gIHRyeSB7XHJcbiAgICByZXR1cm4gU1RUX0xBTkdfTUFQW2dldExhbmcoKV07XHJcbiAgfSBjYXRjaCB7XHJcbiAgICByZXR1cm4gREVGQVVMVF9TVFRfTEFORztcclxuICB9XHJcbn1cclxuIl0sIm5hbWVzIjpbImNuIiwiZW4iLCJwdCIsInR3IiwiaWQiLCJmciIsImVzIiwiaXQiLCJ0ciIsImpwIiwiZGUiLCJ2aSIsInJ1Iiwibm8iLCJjcyIsImtvIiwiYXIiLCJibiIsInNrIiwibWVyZ2UiLCJzYWZlTG9jYWxTdG9yYWdlIiwibG9jYWxTdG9yYWdlIiwiQUxMX0xBTkdTIiwiQWxsTGFuZ3MiLCJPYmplY3QiLCJrZXlzIiwiQUxMX0xBTkdfT1BUSU9OUyIsIkxBTkdfS0VZIiwiREVGQVVMVF9MQU5HIiwiZmFsbGJhY2tMYW5nIiwidGFyZ2V0TGFuZyIsImdldExhbmciLCJnZXRJdGVtIiwia2V5Iiwic2V0SXRlbSIsInZhbHVlIiwiZ2V0TGFuZ3VhZ2UiLCJsb2NhbGUiLCJJbnRsIiwiTG9jYWxlIiwibmF2aWdhdG9yIiwibGFuZ3VhZ2UiLCJtYXhpbWl6ZSIsInJlZ2lvbiIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJzYXZlZExhbmciLCJjaGFuZ2VMYW5nIiwibGFuZyIsImxvY2F0aW9uIiwicmVsb2FkIiwiZ2V0SVNPTGFuZyIsImlzb0xhbmdTdHJpbmciLCJERUZBVUxUX1NUVF9MQU5HIiwiU1RUX0xBTkdfTUFQIiwiZ2V0U1RUTGFuZyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/locales/index.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/locales/it.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/locales/it.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _store_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../store/config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n\n\n\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_1__.getClientConfig)()?.isApp;\nconst it = {\n WIP: \"Work in progress...\",\n Error: {\n Unauthorized: isApp ? `😆 La conversazione ha incontrato alcuni problemi, non preoccuparti:\r\n \\\\ 1️⃣ Se vuoi iniziare senza configurazione, [clicca qui per iniziare a chattare immediatamente 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\\\ 2️⃣ Se vuoi utilizzare le tue risorse OpenAI, clicca [qui](/#/settings) per modificare le impostazioni ⚙️` : `😆 La conversazione ha incontrato alcuni problemi, non preoccuparti:\r\n \\ 1️⃣ Se vuoi iniziare senza configurazione, [clicca qui per iniziare a chattare immediatamente 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\ 2️⃣ Se stai utilizzando una versione di distribuzione privata, clicca [qui](/#/auth) per inserire la chiave di accesso 🔑\r\n \\ 3️⃣ Se vuoi utilizzare le tue risorse OpenAI, clicca [qui](/#/settings) per modificare le impostazioni ⚙️\r\n `\n },\n Auth: {\n Title: \"Password richiesta\",\n Tips: \"L'amministratore ha abilitato la verifica della password. Inserisci il codice di accesso qui sotto\",\n SubTips: \"O inserisci la tua chiave API OpenAI o Google\",\n Input: \"Inserisci il codice di accesso qui\",\n Confirm: \"Conferma\",\n Later: \"Pi\\xf9 tardi\",\n Return: \"Ritorna\",\n SaasTips: \"La configurazione \\xe8 troppo complicata, voglio usarlo immediatamente\",\n TopTips: \"\\uD83E\\uDD73 Offerta di lancio NextChat AI, sblocca OpenAI o1, GPT-4o, Claude-3.5 e i pi\\xf9 recenti modelli di grandi dimensioni\"\n },\n ChatItem: {\n ChatItemCount: (count)=>`${count} conversazioni`\n },\n Chat: {\n SubTitle: (count)=>`Totale ${count} conversazioni`,\n EditMessage: {\n Title: \"Modifica cronologia messaggi\",\n Topic: {\n Title: \"Argomento della chat\",\n SubTitle: \"Modifica l'argomento della chat corrente\"\n }\n },\n Actions: {\n ChatList: \"Visualizza l'elenco dei messaggi\",\n CompressedHistory: \"Visualizza la cronologia Prompt compressa\",\n Export: \"Esporta la cronologia chat\",\n Copy: \"Copia\",\n Stop: \"Interrompi\",\n Retry: \"Riprova\",\n Pin: \"Fissa\",\n PinToastContent: \"1 conversazione fissata ai suggerimenti predefiniti\",\n PinToastAction: \"Visualizza\",\n Delete: \"Elimina\",\n Edit: \"Modifica\",\n RefreshTitle: \"Aggiorna titolo\",\n RefreshToast: \"Richiesta di aggiornamento del titolo inviata\"\n },\n Commands: {\n new: \"Nuova chat\",\n newm: \"Nuova chat da maschera\",\n next: \"Chat successiva\",\n prev: \"Chat precedente\",\n clear: \"Pulisci contesto\",\n del: \"Elimina chat\"\n },\n InputActions: {\n Stop: \"Interrompi risposta\",\n ToBottom: \"Scorri fino al pi\\xf9 recente\",\n Theme: {\n auto: \"Tema automatico\",\n light: \"Tema chiaro\",\n dark: \"Tema scuro\"\n },\n Prompt: \"Comandi rapidi\",\n Masks: \"Tutte le maschere\",\n Clear: \"Pulisci chat\",\n Settings: \"Impostazioni conversazione\",\n UploadImage: \"Carica immagine\"\n },\n Rename: \"Rinomina conversazione\",\n Typing: \"Digitazione in corso…\",\n Input: (submitKey)=>{\n var inputHints = `${submitKey} per inviare`;\n if (submitKey === String(_store_config__WEBPACK_IMPORTED_MODULE_0__.SubmitKey.Enter)) {\n inputHints += \",Shift + Enter per andare a capo\";\n }\n return inputHints + \",/ per attivare il completamento automatico, : per attivare il comando\";\n },\n Send: \"Invia\",\n Config: {\n Reset: \"Pulisci memoria\",\n SaveAs: \"Salva come maschera\"\n },\n IsContext: \"Suggerimenti predefiniti\"\n },\n Export: {\n Title: \"Condividi cronologia chat\",\n Copy: \"Copia tutto\",\n Download: \"Scarica file\",\n Share: \"Condividi su ShareGPT\",\n MessageFromYou: \"Utente\",\n MessageFromChatGPT: \"ChatGPT\",\n Format: {\n Title: \"Formato di esportazione\",\n SubTitle: \"Puoi esportare come testo Markdown o immagine PNG\"\n },\n IncludeContext: {\n Title: \"Includi contesto maschera\",\n SubTitle: \"Mostrare il contesto della maschera nei messaggi\"\n },\n Steps: {\n Select: \"Seleziona\",\n Preview: \"Anteprima\"\n },\n Image: {\n Toast: \"Generazione dello screenshot in corso\",\n Modal: \"Tieni premuto o fai clic con il tasto destro per salvare l'immagine\"\n }\n },\n Select: {\n Search: \"Cerca messaggi\",\n All: \"Seleziona tutto\",\n Latest: \"Ultimi messaggi\",\n Clear: \"Pulisci selezione\"\n },\n Memory: {\n Title: \"Riassunto storico\",\n EmptyContent: \"Il contenuto della conversazione \\xe8 troppo breve, nessun riassunto necessario\",\n Send: \"Comprimi automaticamente la cronologia chat e inviala come contesto\",\n Copy: \"Copia riassunto\",\n Reset: \"[unused]\",\n ResetConfirm: \"Confermi la cancellazione del riassunto storico?\"\n },\n Home: {\n NewChat: \"Nuova chat\",\n DeleteChat: \"Confermi l'eliminazione della conversazione selezionata?\",\n DeleteToast: \"Conversazione eliminata\",\n Revert: \"Annulla\"\n },\n Settings: {\n Title: \"Impostazioni\",\n SubTitle: \"Tutte le opzioni di impostazione\",\n Danger: {\n Reset: {\n Title: \"Ripristina tutte le impostazioni\",\n SubTitle: \"Ripristina tutte le opzioni ai valori predefiniti\",\n Action: \"Ripristina subito\",\n Confirm: \"Confermi il ripristino di tutte le impostazioni?\"\n },\n Clear: {\n Title: \"Elimina tutti i dati\",\n SubTitle: \"Elimina tutte le chat e i dati delle impostazioni\",\n Action: \"Elimina subito\",\n Confirm: \"Confermi l'eliminazione di tutte le chat e dei dati delle impostazioni?\"\n }\n },\n Lang: {\n Name: \"Language\",\n All: \"Tutte le lingue\"\n },\n Avatar: \"Avatar\",\n FontSize: {\n Title: \"Dimensione del carattere\",\n SubTitle: \"Dimensione del carattere per il contenuto della chat\"\n },\n FontFamily: {\n Title: \"Font della Chat\",\n SubTitle: \"Carattere del contenuto della chat, lascia vuoto per applicare il carattere predefinito globale\",\n Placeholder: \"Nome del Font\"\n },\n InjectSystemPrompts: {\n Title: \"Inserisci suggerimenti di sistema\",\n SubTitle: \"Aggiungi forzatamente un suggerimento di sistema simulato di ChatGPT all'inizio della lista dei messaggi per ogni richiesta\"\n },\n InputTemplate: {\n Title: \"Preprocessing dell'input utente\",\n SubTitle: \"L'ultimo messaggio dell'utente verr\\xe0 inserito in questo modello\"\n },\n Update: {\n Version: (x)=>`Versione attuale: ${x}`,\n IsLatest: \"\\xc8 l'ultima versione\",\n CheckUpdate: \"Controlla aggiornamenti\",\n IsChecking: \"Verifica aggiornamenti in corso...\",\n FoundUpdate: (x)=>`Nuova versione trovata: ${x}`,\n GoToUpdate: \"Vai all'aggiornamento\"\n },\n SendKey: \"Tasto di invio\",\n Theme: \"Tema\",\n TightBorder: \"Modalit\\xe0 senza bordi\",\n SendPreviewBubble: {\n Title: \"Bolla di anteprima\",\n SubTitle: \"Anteprima del contenuto Markdown nella bolla di anteprima\"\n },\n AutoGenerateTitle: {\n Title: \"Generazione automatica del titolo\",\n SubTitle: \"Genera un titolo appropriato in base al contenuto della conversazione\"\n },\n Sync: {\n CloudState: \"Dati cloud\",\n NotSyncYet: \"Non \\xe8 ancora avvenuta alcuna sincronizzazione\",\n Success: \"Sincronizzazione riuscita\",\n Fail: \"Sincronizzazione fallita\",\n Config: {\n Modal: {\n Title: \"Configura sincronizzazione cloud\",\n Check: \"Controlla disponibilit\\xe0\"\n },\n SyncType: {\n Title: \"Tipo di sincronizzazione\",\n SubTitle: \"Scegli il server di sincronizzazione preferito\"\n },\n Proxy: {\n Title: \"Abilita proxy\",\n SubTitle: \"Durante la sincronizzazione nel browser, \\xe8 necessario abilitare il proxy per evitare restrizioni CORS\"\n },\n ProxyUrl: {\n Title: \"Indirizzo proxy\",\n SubTitle: \"Solo per il proxy CORS fornito con questo progetto\"\n },\n WebDav: {\n Endpoint: \"Indirizzo WebDAV\",\n UserName: \"Nome utente\",\n Password: \"Password\"\n },\n UpStash: {\n Endpoint: \"URL REST di UpStash Redis\",\n UserName: \"Nome di backup\",\n Password: \"Token REST di UpStash Redis\"\n }\n },\n LocalState: \"Dati locali\",\n Overview: (overview)=>{\n return `${overview.chat} chat, ${overview.message} messaggi, ${overview.prompt} suggerimenti, ${overview.mask} maschere`;\n },\n ImportFailed: \"Importazione fallita\"\n },\n Mask: {\n Splash: {\n Title: \"Pagina di avvio delle maschere\",\n SubTitle: \"Mostra la pagina di avvio delle maschere quando si avvia una nuova chat\"\n },\n Builtin: {\n Title: \"Nascondi maschere predefinite\",\n SubTitle: \"Nascondi le maschere predefinite in tutte le liste delle maschere\"\n }\n },\n Prompt: {\n Disable: {\n Title: \"Disabilita completamento automatico dei suggerimenti\",\n SubTitle: \"Inserisci / all'inizio della casella di input per attivare il completamento automatico\"\n },\n List: \"Elenco dei suggerimenti personalizzati\",\n ListCount: (builtin, custom)=>`${builtin} predefiniti, ${custom} definiti dall'utente`,\n Edit: \"Modifica\",\n Modal: {\n Title: \"Elenco dei suggerimenti\",\n Add: \"Nuovo\",\n Search: \"Cerca suggerimenti\"\n },\n EditModal: {\n Title: \"Modifica suggerimenti\"\n }\n },\n HistoryCount: {\n Title: \"Numero di messaggi storici inclusi\",\n SubTitle: \"Numero di messaggi storici inclusi in ogni richiesta\"\n },\n CompressThreshold: {\n Title: \"Soglia di compressione dei messaggi storici\",\n SubTitle: \"Quando i messaggi storici non compressi superano questo valore, verranno compressi\"\n },\n Usage: {\n Title: \"Verifica saldo\",\n SubTitle (used, total) {\n return `Utilizzato questo mese $${used}, totale abbonamento $${total}`;\n },\n IsChecking: \"Verifica in corso…\",\n Check: \"Verifica di nuovo\",\n NoAccess: \"Inserisci API Key o password di accesso per visualizzare il saldo\"\n },\n Access: {\n SaasStart: {\n Title: \"Usa NextChat AI\",\n Label: \"(La soluzione pi\\xf9 conveniente)\",\n SubTitle: \"Mantenuto ufficialmente da NextChat, pronto all'uso senza configurazione, supporta i modelli pi\\xf9 recenti come OpenAI o1, GPT-4o e Claude-3.5\",\n ChatNow: \"Chatta ora\"\n },\n AccessCode: {\n Title: \"Password di accesso\",\n SubTitle: \"L'amministratore ha abilitato l'accesso criptato\",\n Placeholder: \"Inserisci la password di accesso\"\n },\n CustomEndpoint: {\n Title: \"Interfaccia personalizzata\",\n SubTitle: \"Utilizzare servizi Azure o OpenAI personalizzati\"\n },\n Provider: {\n Title: \"Fornitore del modello\",\n SubTitle: \"Cambia fornitore di servizi\"\n },\n OpenAI: {\n ApiKey: {\n Title: \"API Key\",\n SubTitle: \"Utilizza una chiave OpenAI personalizzata per bypassare le limitazioni di accesso\",\n Placeholder: \"API Key OpenAI\"\n },\n Endpoint: {\n Title: \"Indirizzo dell'interfaccia\",\n SubTitle: \"Deve includere http(s):// oltre all'indirizzo predefinito\"\n }\n },\n Azure: {\n ApiKey: {\n Title: \"Chiave dell'interfaccia\",\n SubTitle: \"Utilizza una chiave Azure personalizzata per bypassare le limitazioni di accesso\",\n Placeholder: \"Chiave API Azure\"\n },\n Endpoint: {\n Title: \"Indirizzo dell'interfaccia\",\n SubTitle: \"Esempio:\"\n },\n ApiVerion: {\n Title: \"Versione dell'interfaccia (versione api azure)\",\n SubTitle: \"Scegli una versione specifica\"\n }\n },\n Anthropic: {\n ApiKey: {\n Title: \"Chiave dell'interfaccia\",\n SubTitle: \"Utilizza una chiave Anthropic personalizzata per bypassare le limitazioni di accesso\",\n Placeholder: \"API Key Anthropic\"\n },\n Endpoint: {\n Title: \"Indirizzo dell'interfaccia\",\n SubTitle: \"Esempio:\"\n },\n ApiVerion: {\n Title: \"Versione dell'interfaccia (versione api claude)\",\n SubTitle: \"Scegli una versione API specifica\"\n }\n },\n Google: {\n ApiKey: {\n Title: \"API Key\",\n SubTitle: \"Ottieni la tua chiave API da Google AI\",\n Placeholder: \"Inserisci la tua chiave API Google AI Studio\"\n },\n Endpoint: {\n Title: \"Indirizzo dell'interfaccia\",\n SubTitle: \"Esempio:\"\n },\n ApiVersion: {\n Title: \"Versione API (solo per gemini-pro)\",\n SubTitle: \"Scegli una versione API specifica\"\n },\n GoogleSafetySettings: {\n Title: \"Livello di filtraggio sicurezza Google\",\n SubTitle: \"Imposta il livello di filtraggio dei contenuti\"\n }\n },\n Baidu: {\n ApiKey: {\n Title: \"API Key\",\n SubTitle: \"Utilizza una chiave API Baidu personalizzata\",\n Placeholder: \"API Key Baidu\"\n },\n SecretKey: {\n Title: \"Secret Key\",\n SubTitle: \"Utilizza una chiave segreta Baidu personalizzata\",\n Placeholder: \"Secret Key Baidu\"\n },\n Endpoint: {\n Title: \"Indirizzo dell'interfaccia\",\n SubTitle: \"Non supporta configurazioni personalizzate, andare su .env\"\n }\n },\n ByteDance: {\n ApiKey: {\n Title: \"Chiave dell'interfaccia\",\n SubTitle: \"Utilizza una chiave API ByteDance personalizzata\",\n Placeholder: \"API Key ByteDance\"\n },\n Endpoint: {\n Title: \"Indirizzo dell'interfaccia\",\n SubTitle: \"Esempio:\"\n }\n },\n Alibaba: {\n ApiKey: {\n Title: \"Chiave dell'interfaccia\",\n SubTitle: \"Utilizza una chiave API Alibaba Cloud personalizzata\",\n Placeholder: \"API Key Alibaba Cloud\"\n },\n Endpoint: {\n Title: \"Indirizzo dell'interfaccia\",\n SubTitle: \"Esempio:\"\n }\n },\n CustomModel: {\n Title: \"Nome del modello personalizzato\",\n SubTitle: \"Aggiungi opzioni di modelli personalizzati, separati da virgole\"\n }\n },\n Model: \"Modello (model)\",\n CompressModel: {\n Title: \"Modello di compressione\",\n SubTitle: \"Modello utilizzato per comprimere la cronologia\"\n },\n Temperature: {\n Title: \"Casualit\\xe0 (temperature)\",\n SubTitle: \"Valore pi\\xf9 alto, risposte pi\\xf9 casuali\"\n },\n TopP: {\n Title: \"Campionamento nucleare (top_p)\",\n SubTitle: \"Simile alla casualit\\xe0, ma non cambiarlo insieme alla casualit\\xe0\"\n },\n MaxTokens: {\n Title: \"Limite di token per risposta (max_tokens)\",\n SubTitle: \"Numero massimo di token per ogni interazione\"\n },\n PresencePenalty: {\n Title: \"Novit\\xe0 del tema (presence_penalty)\",\n SubTitle: \"Valore pi\\xf9 alto, maggiore possibilit\\xe0 di espandere a nuovi argomenti\"\n },\n FrequencyPenalty: {\n Title: \"Penalit\\xe0 di frequenza (frequency_penalty)\",\n SubTitle: \"Valore pi\\xf9 alto, maggiore possibilit\\xe0 di ridurre le ripetizioni\"\n }\n },\n Store: {\n DefaultTopic: \"Nuova chat\",\n BotHello: \"Come posso aiutarti?\",\n Error: \"Si \\xe8 verificato un errore, riprova pi\\xf9 tardi\",\n Prompt: {\n History: (content)=>\"Questo \\xe8 un riassunto della chat storica come contesto: \" + content,\n Topic: \"Riporta il tema di questa frase in modo conciso con quattro o cinque parole, senza spiegazioni, punteggiatura, interiezioni, testo superfluo e senza grassetto. Se non c'\\xe8 un tema, rispondi direttamente con 'chit-chat'\",\n Summarize: \"Riassumi brevemente il contenuto della conversazione come prompt di contesto per il seguito, mantenendolo entro 200 parole\"\n }\n },\n Copy: {\n Success: \"Copiato negli appunti\",\n Failed: \"Copia fallita, concedi i permessi per gli appunti\"\n },\n Download: {\n Success: \"Contenuto scaricato nella tua directory.\",\n Failed: \"Download fallito.\"\n },\n Context: {\n Toast: (x)=>`Include ${x} suggerimenti predefiniti`,\n Edit: \"Impostazioni della conversazione attuale\",\n Add: \"Aggiungi una conversazione\",\n Clear: \"Contesto cancellato\",\n Revert: \"Ripristina contesto\"\n },\n Plugin: {\n Name: \"Plugin\"\n },\n FineTuned: {\n Sysmessage: \"Sei un assistente\"\n },\n SearchChat: {\n Name: \"Cerca\",\n Page: {\n Title: \"Cerca nei messaggi\",\n Search: \"Inserisci parole chiave per la ricerca\",\n NoResult: \"Nessun risultato trovato\",\n NoData: \"Nessun dato\",\n Loading: \"Caricamento in corso\",\n SubTitle: (count)=>`Trovati ${count} risultati`\n },\n Item: {\n View: \"Visualizza\"\n }\n },\n Mask: {\n Name: \"Maschera\",\n Page: {\n Title: \"Maschere dei ruoli predefiniti\",\n SubTitle: (count)=>`${count} definizioni di ruoli predefiniti`,\n Search: \"Cerca maschere di ruolo\",\n Create: \"Crea nuovo\"\n },\n Item: {\n Info: (count)=>`Include ${count} conversazioni predefinite`,\n Chat: \"Conversazione\",\n View: \"Visualizza\",\n Edit: \"Modifica\",\n Delete: \"Elimina\",\n DeleteConfirm: \"Confermi eliminazione?\"\n },\n EditModal: {\n Title: (readonly)=>`Modifica maschera predefinita ${readonly ? \"(sola lettura)\" : \"\"}`,\n Download: \"Scarica predefinito\",\n Clone: \"Clona predefinito\"\n },\n Config: {\n Avatar: \"Avatar del ruolo\",\n Name: \"Nome del ruolo\",\n Sync: {\n Title: \"Utilizza impostazioni globali\",\n SubTitle: \"La conversazione attuale utilizzer\\xe0 le impostazioni globali del modello\",\n Confirm: \"Le impostazioni personalizzate della conversazione attuale verranno sovrascritte automaticamente, confermi l'attivazione delle impostazioni globali?\"\n },\n HideContext: {\n Title: \"Nascondi conversazioni predefinite\",\n SubTitle: \"Le conversazioni predefinite non appariranno nella finestra della chat dopo averle nascoste\"\n },\n Share: {\n Title: \"Condividi questa maschera\",\n SubTitle: \"Genera un link diretto a questa maschera\",\n Action: \"Copia link\"\n }\n }\n },\n NewChat: {\n Return: \"Torna\",\n Skip: \"Inizia subito\",\n NotShow: \"Non mostrare pi\\xf9\",\n ConfirmNoShow: \"Confermi di disabilitare? Dopo la disabilitazione, puoi riattivare in qualsiasi momento dalle impostazioni.\",\n Title: \"Scegli una maschera\",\n SubTitle: \"Inizia ora e interagisci con il pensiero dietro la maschera\",\n More: \"Vedi tutto\"\n },\n URLCommand: {\n Code: \"Codice di accesso rilevato nel link, riempirlo automaticamente?\",\n Settings: \"Impostazioni predefinite rilevate nel link, riempirle automaticamente?\"\n },\n UI: {\n Confirm: \"Conferma\",\n Cancel: \"Annulla\",\n Close: \"Chiudi\",\n Create: \"Crea\",\n Edit: \"Modifica\",\n Export: \"Esporta\",\n Import: \"Importa\",\n Sync: \"Sincronizza\",\n Config: \"Configura\"\n },\n Exporter: {\n Description: {\n Title: \"Solo i messaggi dopo la cancellazione del contesto verranno visualizzati\"\n },\n Model: \"Modello\",\n Messages: \"Messaggi\",\n Topic: \"Tema\",\n Time: \"Tempo\"\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (it);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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O1FBQ1Z1TCxNQUFNO0lBQ1I7SUFFQUMsWUFBWTtRQUNWQyxNQUFNO1FBQ054SixVQUNFO0lBQ0o7SUFFQXlKLElBQUk7UUFDRm5NLFNBQVM7UUFDVG9NLFFBQVE7UUFDUkMsT0FBTztRQUNQZCxRQUFRO1FBQ1JoSyxNQUFNO1FBQ05SLFFBQVE7UUFDUnVMLFFBQVE7UUFDUmxHLE1BQU07UUFDTmpELFFBQVE7SUFDVjtJQUNBb0osVUFBVTtRQUNSQyxhQUFhO1lBQ1g1TSxPQUNFO1FBQ0o7UUFDQWtLLE9BQU87UUFDUDJDLFVBQVU7UUFDVjlMLE9BQU87UUFDUCtMLE1BQU07SUFDUjtBQUNGO0FBRUEsaUVBQWVuTixFQUFFQSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvbG9jYWxlcy9pdC50cz8wOTQ1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1Ym1pdEtleSB9IGZyb20gXCIuLi9zdG9yZS9jb25maWdcIjtcclxuaW1wb3J0IHR5cGUgeyBQYXJ0aWFsTG9jYWxlVHlwZSB9IGZyb20gXCIuL2luZGV4XCI7XHJcbmltcG9ydCB7IGdldENsaWVudENvbmZpZyB9IGZyb20gXCIuLi9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB7IFNBQVNfQ0hBVF9VVE1fVVJMIH0gZnJvbSBcIkAvYXBwL2NvbnN0YW50XCI7XHJcbmNvbnN0IGlzQXBwID0gISFnZXRDbGllbnRDb25maWcoKT8uaXNBcHA7XHJcblxyXG5jb25zdCBpdDogUGFydGlhbExvY2FsZVR5cGUgPSB7XHJcbiAgV0lQOiBcIldvcmsgaW4gcHJvZ3Jlc3MuLi5cIixcclxuICBFcnJvcjoge1xyXG4gICAgVW5hdXRob3JpemVkOiBpc0FwcFxyXG4gICAgICA/IGDwn5iGIExhIGNvbnZlcnNhemlvbmUgaGEgaW5jb250cmF0byBhbGN1bmkgcHJvYmxlbWksIG5vbiBwcmVvY2N1cGFydGk6XHJcbiAgICBcXFxcIDHvuI/ig6MgU2UgdnVvaSBpbml6aWFyZSBzZW56YSBjb25maWd1cmF6aW9uZSwgW2NsaWNjYSBxdWkgcGVyIGluaXppYXJlIGEgY2hhdHRhcmUgaW1tZWRpYXRhbWVudGUg8J+agF0oJHtTQUFTX0NIQVRfVVRNX1VSTH0pXHJcbiAgICBcXFxcIDLvuI/ig6MgU2UgdnVvaSB1dGlsaXp6YXJlIGxlIHR1ZSByaXNvcnNlIE9wZW5BSSwgY2xpY2NhIFtxdWldKC8jL3NldHRpbmdzKSBwZXIgbW9kaWZpY2FyZSBsZSBpbXBvc3Rhemlvbmkg4pqZ77iPYFxyXG4gICAgICA6IGDwn5iGIExhIGNvbnZlcnNhemlvbmUgaGEgaW5jb250cmF0byBhbGN1bmkgcHJvYmxlbWksIG5vbiBwcmVvY2N1cGFydGk6XHJcbiAgICBcXCAx77iP4oOjIFNlIHZ1b2kgaW5pemlhcmUgc2VuemEgY29uZmlndXJhemlvbmUsIFtjbGljY2EgcXVpIHBlciBpbml6aWFyZSBhIGNoYXR0YXJlIGltbWVkaWF0YW1lbnRlIPCfmoBdKCR7U0FBU19DSEFUX1VUTV9VUkx9KVxyXG4gICAgXFwgMu+4j+KDoyBTZSBzdGFpIHV0aWxpenphbmRvIHVuYSB2ZXJzaW9uZSBkaSBkaXN0cmlidXppb25lIHByaXZhdGEsIGNsaWNjYSBbcXVpXSgvIy9hdXRoKSBwZXIgaW5zZXJpcmUgbGEgY2hpYXZlIGRpIGFjY2Vzc28g8J+UkVxyXG4gICAgXFwgM++4j+KDoyBTZSB2dW9pIHV0aWxpenphcmUgbGUgdHVlIHJpc29yc2UgT3BlbkFJLCBjbGljY2EgW3F1aV0oLyMvc2V0dGluZ3MpIHBlciBtb2RpZmljYXJlIGxlIGltcG9zdGF6aW9uaSDimpnvuI9cclxuIGAsXHJcbiAgfSxcclxuICBBdXRoOiB7XHJcbiAgICBUaXRsZTogXCJQYXNzd29yZCByaWNoaWVzdGFcIixcclxuICAgIFRpcHM6IFwiTCdhbW1pbmlzdHJhdG9yZSBoYSBhYmlsaXRhdG8gbGEgdmVyaWZpY2EgZGVsbGEgcGFzc3dvcmQuIEluc2VyaXNjaSBpbCBjb2RpY2UgZGkgYWNjZXNzbyBxdWkgc290dG9cIixcclxuICAgIFN1YlRpcHM6IFwiTyBpbnNlcmlzY2kgbGEgdHVhIGNoaWF2ZSBBUEkgT3BlbkFJIG8gR29vZ2xlXCIsXHJcbiAgICBJbnB1dDogXCJJbnNlcmlzY2kgaWwgY29kaWNlIGRpIGFjY2Vzc28gcXVpXCIsXHJcbiAgICBDb25maXJtOiBcIkNvbmZlcm1hXCIsXHJcbiAgICBMYXRlcjogXCJQacO5IHRhcmRpXCIsXHJcbiAgICBSZXR1cm46IFwiUml0b3JuYVwiLFxyXG4gICAgU2Fhc1RpcHM6XHJcbiAgICAgIFwiTGEgY29uZmlndXJhemlvbmUgw6ggdHJvcHBvIGNvbXBsaWNhdGEsIHZvZ2xpbyB1c2FybG8gaW1tZWRpYXRhbWVudGVcIixcclxuICAgIFRvcFRpcHM6XHJcbiAgICAgIFwi8J+lsyBPZmZlcnRhIGRpIGxhbmNpbyBOZXh0Q2hhdCBBSSwgc2Jsb2NjYSBPcGVuQUkgbzEsIEdQVC00bywgQ2xhdWRlLTMuNSBlIGkgcGnDuSByZWNlbnRpIG1vZGVsbGkgZGkgZ3JhbmRpIGRpbWVuc2lvbmlcIixcclxuICB9LFxyXG4gIENoYXRJdGVtOiB7XHJcbiAgICBDaGF0SXRlbUNvdW50OiAoY291bnQ6IG51bWJlcikgPT4gYCR7Y291bnR9IGNvbnZlcnNhemlvbmlgLFxyXG4gIH0sXHJcbiAgQ2hhdDoge1xyXG4gICAgU3ViVGl0bGU6IChjb3VudDogbnVtYmVyKSA9PiBgVG90YWxlICR7Y291bnR9IGNvbnZlcnNhemlvbmlgLFxyXG4gICAgRWRpdE1lc3NhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwiTW9kaWZpY2EgY3Jvbm9sb2dpYSBtZXNzYWdnaVwiLFxyXG4gICAgICBUb3BpYzoge1xyXG4gICAgICAgIFRpdGxlOiBcIkFyZ29tZW50byBkZWxsYSBjaGF0XCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiTW9kaWZpY2EgbCdhcmdvbWVudG8gZGVsbGEgY2hhdCBjb3JyZW50ZVwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIEFjdGlvbnM6IHtcclxuICAgICAgQ2hhdExpc3Q6IFwiVmlzdWFsaXp6YSBsJ2VsZW5jbyBkZWkgbWVzc2FnZ2lcIixcclxuICAgICAgQ29tcHJlc3NlZEhpc3Rvcnk6IFwiVmlzdWFsaXp6YSBsYSBjcm9ub2xvZ2lhIFByb21wdCBjb21wcmVzc2FcIixcclxuICAgICAgRXhwb3J0OiBcIkVzcG9ydGEgbGEgY3Jvbm9sb2dpYSBjaGF0XCIsXHJcbiAgICAgIENvcHk6IFwiQ29waWFcIixcclxuICAgICAgU3RvcDogXCJJbnRlcnJvbXBpXCIsXHJcbiAgICAgIFJldHJ5OiBcIlJpcHJvdmFcIixcclxuICAgICAgUGluOiBcIkZpc3NhXCIsXHJcbiAgICAgIFBpblRvYXN0Q29udGVudDogXCIxIGNvbnZlcnNhemlvbmUgZmlzc2F0YSBhaSBzdWdnZXJpbWVudGkgcHJlZGVmaW5pdGlcIixcclxuICAgICAgUGluVG9hc3RBY3Rpb246IFwiVmlzdWFsaXp6YVwiLFxyXG4gICAgICBEZWxldGU6IFwiRWxpbWluYVwiLFxyXG4gICAgICBFZGl0OiBcIk1vZGlmaWNhXCIsXHJcbiAgICAgIFJlZnJlc2hUaXRsZTogXCJBZ2dpb3JuYSB0aXRvbG9cIixcclxuICAgICAgUmVmcmVzaFRvYXN0OiBcIlJpY2hpZXN0YSBkaSBhZ2dpb3JuYW1lbnRvIGRlbCB0aXRvbG8gaW52aWF0YVwiLFxyXG4gICAgfSxcclxuICAgIENvbW1hbmRzOiB7XHJcbiAgICAgIG5ldzogXCJOdW92YSBjaGF0XCIsXHJcbiAgICAgIG5ld206IFwiTnVvdmEgY2hhdCBkYSBtYXNjaGVyYVwiLFxyXG4gICAgICBuZXh0OiBcIkNoYXQgc3VjY2Vzc2l2YVwiLFxyXG4gICAgICBwcmV2OiBcIkNoYXQgcHJlY2VkZW50ZVwiLFxyXG4gICAgICBjbGVhcjogXCJQdWxpc2NpIGNvbnRlc3RvXCIsXHJcbiAgICAgIGRlbDogXCJFbGltaW5hIGNoYXRcIixcclxuICAgIH0sXHJcbiAgICBJbnB1dEFjdGlvbnM6IHtcclxuICAgICAgU3RvcDogXCJJbnRlcnJvbXBpIHJpc3Bvc3RhXCIsXHJcbiAgICAgIFRvQm90dG9tOiBcIlNjb3JyaSBmaW5vIGFsIHBpw7kgcmVjZW50ZVwiLFxyXG4gICAgICBUaGVtZToge1xyXG4gICAgICAgIGF1dG86IFwiVGVtYSBhdXRvbWF0aWNvXCIsXHJcbiAgICAgICAgbGlnaHQ6IFwiVGVtYSBjaGlhcm9cIixcclxuICAgICAgICBkYXJrOiBcIlRlbWEgc2N1cm9cIixcclxuICAgICAgfSxcclxuICAgICAgUHJvbXB0OiBcIkNvbWFuZGkgcmFwaWRpXCIsXHJcbiAgICAgIE1hc2tzOiBcIlR1dHRlIGxlIG1hc2NoZXJlXCIsXHJcbiAgICAgIENsZWFyOiBcIlB1bGlzY2kgY2hhdFwiLFxyXG4gICAgICBTZXR0aW5nczogXCJJbXBvc3RhemlvbmkgY29udmVyc2F6aW9uZVwiLFxyXG4gICAgICBVcGxvYWRJbWFnZTogXCJDYXJpY2EgaW1tYWdpbmVcIixcclxuICAgIH0sXHJcbiAgICBSZW5hbWU6IFwiUmlub21pbmEgY29udmVyc2F6aW9uZVwiLFxyXG4gICAgVHlwaW5nOiBcIkRpZ2l0YXppb25lIGluIGNvcnNv4oCmXCIsXHJcbiAgICBJbnB1dDogKHN1Ym1pdEtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHZhciBpbnB1dEhpbnRzID0gYCR7c3VibWl0S2V5fSBwZXIgaW52aWFyZWA7XHJcbiAgICAgIGlmIChzdWJtaXRLZXkgPT09IFN0cmluZyhTdWJtaXRLZXkuRW50ZXIpKSB7XHJcbiAgICAgICAgaW5wdXRIaW50cyArPSBcIu+8jFNoaWZ0ICsgRW50ZXIgcGVyIGFuZGFyZSBhIGNhcG9cIjtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIGlucHV0SGludHMgK1xyXG4gICAgICAgIFwi77yMLyBwZXIgYXR0aXZhcmUgaWwgY29tcGxldGFtZW50byBhdXRvbWF0aWNvLCA6IHBlciBhdHRpdmFyZSBpbCBjb21hbmRvXCJcclxuICAgICAgKTtcclxuICAgIH0sXHJcbiAgICBTZW5kOiBcIkludmlhXCIsXHJcbiAgICBDb25maWc6IHtcclxuICAgICAgUmVzZXQ6IFwiUHVsaXNjaSBtZW1vcmlhXCIsXHJcbiAgICAgIFNhdmVBczogXCJTYWx2YSBjb21lIG1hc2NoZXJhXCIsXHJcbiAgICB9LFxyXG4gICAgSXNDb250ZXh0OiBcIlN1Z2dlcmltZW50aSBwcmVkZWZpbml0aVwiLFxyXG4gIH0sXHJcbiAgRXhwb3J0OiB7XHJcbiAgICBUaXRsZTogXCJDb25kaXZpZGkgY3Jvbm9sb2dpYSBjaGF0XCIsXHJcbiAgICBDb3B5OiBcIkNvcGlhIHR1dHRvXCIsXHJcbiAgICBEb3dubG9hZDogXCJTY2FyaWNhIGZpbGVcIixcclxuICAgIFNoYXJlOiBcIkNvbmRpdmlkaSBzdSBTaGFyZUdQVFwiLFxyXG4gICAgTWVzc2FnZUZyb21Zb3U6IFwiVXRlbnRlXCIsXHJcbiAgICBNZXNzYWdlRnJvbUNoYXRHUFQ6IFwiQ2hhdEdQVFwiLFxyXG4gICAgRm9ybWF0OiB7XHJcbiAgICAgIFRpdGxlOiBcIkZvcm1hdG8gZGkgZXNwb3J0YXppb25lXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIlB1b2kgZXNwb3J0YXJlIGNvbWUgdGVzdG8gTWFya2Rvd24gbyBpbW1hZ2luZSBQTkdcIixcclxuICAgIH0sXHJcbiAgICBJbmNsdWRlQ29udGV4dDoge1xyXG4gICAgICBUaXRsZTogXCJJbmNsdWRpIGNvbnRlc3RvIG1hc2NoZXJhXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIk1vc3RyYXJlIGlsIGNvbnRlc3RvIGRlbGxhIG1hc2NoZXJhIG5laSBtZXNzYWdnaVwiLFxyXG4gICAgfSxcclxuICAgIFN0ZXBzOiB7XHJcbiAgICAgIFNlbGVjdDogXCJTZWxlemlvbmFcIixcclxuICAgICAgUHJldmlldzogXCJBbnRlcHJpbWFcIixcclxuICAgIH0sXHJcbiAgICBJbWFnZToge1xyXG4gICAgICBUb2FzdDogXCJHZW5lcmF6aW9uZSBkZWxsbyBzY3JlZW5zaG90IGluIGNvcnNvXCIsXHJcbiAgICAgIE1vZGFsOlxyXG4gICAgICAgIFwiVGllbmkgcHJlbXV0byBvIGZhaSBjbGljIGNvbiBpbCB0YXN0byBkZXN0cm8gcGVyIHNhbHZhcmUgbCdpbW1hZ2luZVwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIFNlbGVjdDoge1xyXG4gICAgU2VhcmNoOiBcIkNlcmNhIG1lc3NhZ2dpXCIsXHJcbiAgICBBbGw6IFwiU2VsZXppb25hIHR1dHRvXCIsXHJcbiAgICBMYXRlc3Q6IFwiVWx0aW1pIG1lc3NhZ2dpXCIsXHJcbiAgICBDbGVhcjogXCJQdWxpc2NpIHNlbGV6aW9uZVwiLFxyXG4gIH0sXHJcbiAgTWVtb3J5OiB7XHJcbiAgICBUaXRsZTogXCJSaWFzc3VudG8gc3Rvcmljb1wiLFxyXG4gICAgRW1wdHlDb250ZW50OlxyXG4gICAgICBcIklsIGNvbnRlbnV0byBkZWxsYSBjb252ZXJzYXppb25lIMOoIHRyb3BwbyBicmV2ZSwgbmVzc3VuIHJpYXNzdW50byBuZWNlc3NhcmlvXCIsXHJcbiAgICBTZW5kOiBcIkNvbXByaW1pIGF1dG9tYXRpY2FtZW50ZSBsYSBjcm9ub2xvZ2lhIGNoYXQgZSBpbnZpYWxhIGNvbWUgY29udGVzdG9cIixcclxuICAgIENvcHk6IFwiQ29waWEgcmlhc3N1bnRvXCIsXHJcbiAgICBSZXNldDogXCJbdW51c2VkXVwiLFxyXG4gICAgUmVzZXRDb25maXJtOiBcIkNvbmZlcm1pIGxhIGNhbmNlbGxhemlvbmUgZGVsIHJpYXNzdW50byBzdG9yaWNvP1wiLFxyXG4gIH0sXHJcbiAgSG9tZToge1xyXG4gICAgTmV3Q2hhdDogXCJOdW92YSBjaGF0XCIsXHJcbiAgICBEZWxldGVDaGF0OiBcIkNvbmZlcm1pIGwnZWxpbWluYXppb25lIGRlbGxhIGNvbnZlcnNhemlvbmUgc2VsZXppb25hdGE/XCIsXHJcbiAgICBEZWxldGVUb2FzdDogXCJDb252ZXJzYXppb25lIGVsaW1pbmF0YVwiLFxyXG4gICAgUmV2ZXJ0OiBcIkFubnVsbGFcIixcclxuICB9LFxyXG4gIFNldHRpbmdzOiB7XHJcbiAgICBUaXRsZTogXCJJbXBvc3RhemlvbmlcIixcclxuICAgIFN1YlRpdGxlOiBcIlR1dHRlIGxlIG9wemlvbmkgZGkgaW1wb3N0YXppb25lXCIsXHJcblxyXG4gICAgRGFuZ2VyOiB7XHJcbiAgICAgIFJlc2V0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiUmlwcmlzdGluYSB0dXR0ZSBsZSBpbXBvc3RhemlvbmlcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJSaXByaXN0aW5hIHR1dHRlIGxlIG9wemlvbmkgYWkgdmFsb3JpIHByZWRlZmluaXRpXCIsXHJcbiAgICAgICAgQWN0aW9uOiBcIlJpcHJpc3RpbmEgc3ViaXRvXCIsXHJcbiAgICAgICAgQ29uZmlybTogXCJDb25mZXJtaSBpbCByaXByaXN0aW5vIGRpIHR1dHRlIGxlIGltcG9zdGF6aW9uaT9cIixcclxuICAgICAgfSxcclxuICAgICAgQ2xlYXI6IHtcclxuICAgICAgICBUaXRsZTogXCJFbGltaW5hIHR1dHRpIGkgZGF0aVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIkVsaW1pbmEgdHV0dGUgbGUgY2hhdCBlIGkgZGF0aSBkZWxsZSBpbXBvc3RhemlvbmlcIixcclxuICAgICAgICBBY3Rpb246IFwiRWxpbWluYSBzdWJpdG9cIixcclxuICAgICAgICBDb25maXJtOlxyXG4gICAgICAgICAgXCJDb25mZXJtaSBsJ2VsaW1pbmF6aW9uZSBkaSB0dXR0ZSBsZSBjaGF0IGUgZGVpIGRhdGkgZGVsbGUgaW1wb3N0YXppb25pP1wiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIExhbmc6IHtcclxuICAgICAgTmFtZTogXCJMYW5ndWFnZVwiLCAvLyBBVFRFTlpJT05FOiBzZSB2dW9pIGFnZ2l1bmdlcmUgdW5hIG51b3ZhIHRyYWR1emlvbmUsIG5vbiB0cmFkdXJyZSBxdWVzdG8gdmFsb3JlLCBsYXNjaWFsbyBjb21lIGBMYW5ndWFnZWBcclxuICAgICAgQWxsOiBcIlR1dHRlIGxlIGxpbmd1ZVwiLFxyXG4gICAgfSxcclxuICAgIEF2YXRhcjogXCJBdmF0YXJcIixcclxuICAgIEZvbnRTaXplOiB7XHJcbiAgICAgIFRpdGxlOiBcIkRpbWVuc2lvbmUgZGVsIGNhcmF0dGVyZVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJEaW1lbnNpb25lIGRlbCBjYXJhdHRlcmUgcGVyIGlsIGNvbnRlbnV0byBkZWxsYSBjaGF0XCIsXHJcbiAgICB9LFxyXG4gICAgRm9udEZhbWlseToge1xyXG4gICAgICBUaXRsZTogXCJGb250IGRlbGxhIENoYXRcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJDYXJhdHRlcmUgZGVsIGNvbnRlbnV0byBkZWxsYSBjaGF0LCBsYXNjaWEgdnVvdG8gcGVyIGFwcGxpY2FyZSBpbCBjYXJhdHRlcmUgcHJlZGVmaW5pdG8gZ2xvYmFsZVwiLFxyXG4gICAgICBQbGFjZWhvbGRlcjogXCJOb21lIGRlbCBGb250XCIsXHJcbiAgICB9LFxyXG4gICAgSW5qZWN0U3lzdGVtUHJvbXB0czoge1xyXG4gICAgICBUaXRsZTogXCJJbnNlcmlzY2kgc3VnZ2VyaW1lbnRpIGRpIHNpc3RlbWFcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJBZ2dpdW5naSBmb3J6YXRhbWVudGUgdW4gc3VnZ2VyaW1lbnRvIGRpIHNpc3RlbWEgc2ltdWxhdG8gZGkgQ2hhdEdQVCBhbGwnaW5pemlvIGRlbGxhIGxpc3RhIGRlaSBtZXNzYWdnaSBwZXIgb2duaSByaWNoaWVzdGFcIixcclxuICAgIH0sXHJcbiAgICBJbnB1dFRlbXBsYXRlOiB7XHJcbiAgICAgIFRpdGxlOiBcIlByZXByb2Nlc3NpbmcgZGVsbCdpbnB1dCB1dGVudGVcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJMJ3VsdGltbyBtZXNzYWdnaW8gZGVsbCd1dGVudGUgdmVycsOgIGluc2VyaXRvIGluIHF1ZXN0byBtb2RlbGxvXCIsXHJcbiAgICB9LFxyXG5cclxuICAgIFVwZGF0ZToge1xyXG4gICAgICBWZXJzaW9uOiAoeDogc3RyaW5nKSA9PiBgVmVyc2lvbmUgYXR0dWFsZTogJHt4fWAsXHJcbiAgICAgIElzTGF0ZXN0OiBcIsOIIGwndWx0aW1hIHZlcnNpb25lXCIsXHJcbiAgICAgIENoZWNrVXBkYXRlOiBcIkNvbnRyb2xsYSBhZ2dpb3JuYW1lbnRpXCIsXHJcbiAgICAgIElzQ2hlY2tpbmc6IFwiVmVyaWZpY2EgYWdnaW9ybmFtZW50aSBpbiBjb3Jzby4uLlwiLFxyXG4gICAgICBGb3VuZFVwZGF0ZTogKHg6IHN0cmluZykgPT4gYE51b3ZhIHZlcnNpb25lIHRyb3ZhdGE6ICR7eH1gLFxyXG4gICAgICBHb1RvVXBkYXRlOiBcIlZhaSBhbGwnYWdnaW9ybmFtZW50b1wiLFxyXG4gICAgfSxcclxuICAgIFNlbmRLZXk6IFwiVGFzdG8gZGkgaW52aW9cIixcclxuICAgIFRoZW1lOiBcIlRlbWFcIixcclxuICAgIFRpZ2h0Qm9yZGVyOiBcIk1vZGFsaXTDoCBzZW56YSBib3JkaVwiLFxyXG4gICAgU2VuZFByZXZpZXdCdWJibGU6IHtcclxuICAgICAgVGl0bGU6IFwiQm9sbGEgZGkgYW50ZXByaW1hXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIkFudGVwcmltYSBkZWwgY29udGVudXRvIE1hcmtkb3duIG5lbGxhIGJvbGxhIGRpIGFudGVwcmltYVwiLFxyXG4gICAgfSxcclxuICAgIEF1dG9HZW5lcmF0ZVRpdGxlOiB7XHJcbiAgICAgIFRpdGxlOiBcIkdlbmVyYXppb25lIGF1dG9tYXRpY2EgZGVsIHRpdG9sb1wiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIkdlbmVyYSB1biB0aXRvbG8gYXBwcm9wcmlhdG8gaW4gYmFzZSBhbCBjb250ZW51dG8gZGVsbGEgY29udmVyc2F6aW9uZVwiLFxyXG4gICAgfSxcclxuICAgIFN5bmM6IHtcclxuICAgICAgQ2xvdWRTdGF0ZTogXCJEYXRpIGNsb3VkXCIsXHJcbiAgICAgIE5vdFN5bmNZZXQ6IFwiTm9uIMOoIGFuY29yYSBhdnZlbnV0YSBhbGN1bmEgc2luY3Jvbml6emF6aW9uZVwiLFxyXG4gICAgICBTdWNjZXNzOiBcIlNpbmNyb25penphemlvbmUgcml1c2NpdGFcIixcclxuICAgICAgRmFpbDogXCJTaW5jcm9uaXp6YXppb25lIGZhbGxpdGFcIixcclxuXHJcbiAgICAgIENvbmZpZzoge1xyXG4gICAgICAgIE1vZGFsOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJDb25maWd1cmEgc2luY3Jvbml6emF6aW9uZSBjbG91ZFwiLFxyXG4gICAgICAgICAgQ2hlY2s6IFwiQ29udHJvbGxhIGRpc3BvbmliaWxpdMOgXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBTeW5jVHlwZToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiVGlwbyBkaSBzaW5jcm9uaXp6YXppb25lXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJTY2VnbGkgaWwgc2VydmVyIGRpIHNpbmNyb25penphemlvbmUgcHJlZmVyaXRvXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQcm94eToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQWJpbGl0YSBwcm94eVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiRHVyYW50ZSBsYSBzaW5jcm9uaXp6YXppb25lIG5lbCBicm93c2VyLCDDqCBuZWNlc3NhcmlvIGFiaWxpdGFyZSBpbCBwcm94eSBwZXIgZXZpdGFyZSByZXN0cml6aW9uaSBDT1JTXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQcm94eVVybDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiSW5kaXJpenpvIHByb3h5XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJTb2xvIHBlciBpbCBwcm94eSBDT1JTIGZvcm5pdG8gY29uIHF1ZXN0byBwcm9nZXR0b1wiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIFdlYkRhdjoge1xyXG4gICAgICAgICAgRW5kcG9pbnQ6IFwiSW5kaXJpenpvIFdlYkRBVlwiLFxyXG4gICAgICAgICAgVXNlck5hbWU6IFwiTm9tZSB1dGVudGVcIixcclxuICAgICAgICAgIFBhc3N3b3JkOiBcIlBhc3N3b3JkXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgVXBTdGFzaDoge1xyXG4gICAgICAgICAgRW5kcG9pbnQ6IFwiVVJMIFJFU1QgZGkgVXBTdGFzaCBSZWRpc1wiLFxyXG4gICAgICAgICAgVXNlck5hbWU6IFwiTm9tZSBkaSBiYWNrdXBcIixcclxuICAgICAgICAgIFBhc3N3b3JkOiBcIlRva2VuIFJFU1QgZGkgVXBTdGFzaCBSZWRpc1wiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICBMb2NhbFN0YXRlOiBcIkRhdGkgbG9jYWxpXCIsXHJcbiAgICAgIE92ZXJ2aWV3OiAob3ZlcnZpZXc6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBgJHtvdmVydmlldy5jaGF0fSBjaGF0LCAke292ZXJ2aWV3Lm1lc3NhZ2V9IG1lc3NhZ2dpLCAke292ZXJ2aWV3LnByb21wdH0gc3VnZ2VyaW1lbnRpLCAke292ZXJ2aWV3Lm1hc2t9IG1hc2NoZXJlYDtcclxuICAgICAgfSxcclxuICAgICAgSW1wb3J0RmFpbGVkOiBcIkltcG9ydGF6aW9uZSBmYWxsaXRhXCIsXHJcbiAgICB9LFxyXG4gICAgTWFzazoge1xyXG4gICAgICBTcGxhc2g6IHtcclxuICAgICAgICBUaXRsZTogXCJQYWdpbmEgZGkgYXZ2aW8gZGVsbGUgbWFzY2hlcmVcIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiTW9zdHJhIGxhIHBhZ2luYSBkaSBhdnZpbyBkZWxsZSBtYXNjaGVyZSBxdWFuZG8gc2kgYXZ2aWEgdW5hIG51b3ZhIGNoYXRcIixcclxuICAgICAgfSxcclxuICAgICAgQnVpbHRpbjoge1xyXG4gICAgICAgIFRpdGxlOiBcIk5hc2NvbmRpIG1hc2NoZXJlIHByZWRlZmluaXRlXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIk5hc2NvbmRpIGxlIG1hc2NoZXJlIHByZWRlZmluaXRlIGluIHR1dHRlIGxlIGxpc3RlIGRlbGxlIG1hc2NoZXJlXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgUHJvbXB0OiB7XHJcbiAgICAgIERpc2FibGU6IHtcclxuICAgICAgICBUaXRsZTogXCJEaXNhYmlsaXRhIGNvbXBsZXRhbWVudG8gYXV0b21hdGljbyBkZWkgc3VnZ2VyaW1lbnRpXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIkluc2VyaXNjaSAvIGFsbCdpbml6aW8gZGVsbGEgY2FzZWxsYSBkaSBpbnB1dCBwZXIgYXR0aXZhcmUgaWwgY29tcGxldGFtZW50byBhdXRvbWF0aWNvXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIExpc3Q6IFwiRWxlbmNvIGRlaSBzdWdnZXJpbWVudGkgcGVyc29uYWxpenphdGlcIixcclxuICAgICAgTGlzdENvdW50OiAoYnVpbHRpbjogbnVtYmVyLCBjdXN0b206IG51bWJlcikgPT5cclxuICAgICAgICBgJHtidWlsdGlufSBwcmVkZWZpbml0aSwgJHtjdXN0b219IGRlZmluaXRpIGRhbGwndXRlbnRlYCxcclxuICAgICAgRWRpdDogXCJNb2RpZmljYVwiLFxyXG4gICAgICBNb2RhbDoge1xyXG4gICAgICAgIFRpdGxlOiBcIkVsZW5jbyBkZWkgc3VnZ2VyaW1lbnRpXCIsXHJcbiAgICAgICAgQWRkOiBcIk51b3ZvXCIsXHJcbiAgICAgICAgU2VhcmNoOiBcIkNlcmNhIHN1Z2dlcmltZW50aVwiLFxyXG4gICAgICB9LFxyXG4gICAgICBFZGl0TW9kYWw6IHtcclxuICAgICAgICBUaXRsZTogXCJNb2RpZmljYSBzdWdnZXJpbWVudGlcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBIaXN0b3J5Q291bnQ6IHtcclxuICAgICAgVGl0bGU6IFwiTnVtZXJvIGRpIG1lc3NhZ2dpIHN0b3JpY2kgaW5jbHVzaVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJOdW1lcm8gZGkgbWVzc2FnZ2kgc3RvcmljaSBpbmNsdXNpIGluIG9nbmkgcmljaGllc3RhXCIsXHJcbiAgICB9LFxyXG4gICAgQ29tcHJlc3NUaHJlc2hvbGQ6IHtcclxuICAgICAgVGl0bGU6IFwiU29nbGlhIGRpIGNvbXByZXNzaW9uZSBkZWkgbWVzc2FnZ2kgc3RvcmljaVwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIlF1YW5kbyBpIG1lc3NhZ2dpIHN0b3JpY2kgbm9uIGNvbXByZXNzaSBzdXBlcmFubyBxdWVzdG8gdmFsb3JlLCB2ZXJyYW5ubyBjb21wcmVzc2lcIixcclxuICAgIH0sXHJcblxyXG4gICAgVXNhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwiVmVyaWZpY2Egc2FsZG9cIixcclxuICAgICAgU3ViVGl0bGUodXNlZDogYW55LCB0b3RhbDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIGBVdGlsaXp6YXRvIHF1ZXN0byBtZXNlICQke3VzZWR9LCB0b3RhbGUgYWJib25hbWVudG8gJCR7dG90YWx9YDtcclxuICAgICAgfSxcclxuICAgICAgSXNDaGVja2luZzogXCJWZXJpZmljYSBpbiBjb3Jzb+KAplwiLFxyXG4gICAgICBDaGVjazogXCJWZXJpZmljYSBkaSBudW92b1wiLFxyXG4gICAgICBOb0FjY2VzczpcclxuICAgICAgICBcIkluc2VyaXNjaSBBUEkgS2V5IG8gcGFzc3dvcmQgZGkgYWNjZXNzbyBwZXIgdmlzdWFsaXp6YXJlIGlsIHNhbGRvXCIsXHJcbiAgICB9LFxyXG5cclxuICAgIEFjY2Vzczoge1xyXG4gICAgICBTYWFzU3RhcnQ6IHtcclxuICAgICAgICBUaXRsZTogXCJVc2EgTmV4dENoYXQgQUlcIixcclxuICAgICAgICBMYWJlbDogXCIoTGEgc29sdXppb25lIHBpw7kgY29udmVuaWVudGUpXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIk1hbnRlbnV0byB1ZmZpY2lhbG1lbnRlIGRhIE5leHRDaGF0LCBwcm9udG8gYWxsJ3VzbyBzZW56YSBjb25maWd1cmF6aW9uZSwgc3VwcG9ydGEgaSBtb2RlbGxpIHBpw7kgcmVjZW50aSBjb21lIE9wZW5BSSBvMSwgR1BULTRvIGUgQ2xhdWRlLTMuNVwiLFxyXG4gICAgICAgIENoYXROb3c6IFwiQ2hhdHRhIG9yYVwiLFxyXG4gICAgICB9LFxyXG5cclxuICAgICAgQWNjZXNzQ29kZToge1xyXG4gICAgICAgIFRpdGxlOiBcIlBhc3N3b3JkIGRpIGFjY2Vzc29cIixcclxuICAgICAgICBTdWJUaXRsZTogXCJMJ2FtbWluaXN0cmF0b3JlIGhhIGFiaWxpdGF0byBsJ2FjY2Vzc28gY3JpcHRhdG9cIixcclxuICAgICAgICBQbGFjZWhvbGRlcjogXCJJbnNlcmlzY2kgbGEgcGFzc3dvcmQgZGkgYWNjZXNzb1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBDdXN0b21FbmRwb2ludDoge1xyXG4gICAgICAgIFRpdGxlOiBcIkludGVyZmFjY2lhIHBlcnNvbmFsaXp6YXRhXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiVXRpbGl6emFyZSBzZXJ2aXppIEF6dXJlIG8gT3BlbkFJIHBlcnNvbmFsaXp6YXRpXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFByb3ZpZGVyOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiRm9ybml0b3JlIGRlbCBtb2RlbGxvXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiQ2FtYmlhIGZvcm5pdG9yZSBkaSBzZXJ2aXppXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIE9wZW5BSToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIEtleVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiVXRpbGl6emEgdW5hIGNoaWF2ZSBPcGVuQUkgcGVyc29uYWxpenphdGEgcGVyIGJ5cGFzc2FyZSBsZSBsaW1pdGF6aW9uaSBkaSBhY2Nlc3NvXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJBUEkgS2V5IE9wZW5BSVwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJJbmRpcml6em8gZGVsbCdpbnRlcmZhY2NpYVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiRGV2ZSBpbmNsdWRlcmUgaHR0cChzKTovLyBvbHRyZSBhbGwnaW5kaXJpenpvIHByZWRlZmluaXRvXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQXp1cmU6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkNoaWF2ZSBkZWxsJ2ludGVyZmFjY2lhXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgICAgXCJVdGlsaXp6YSB1bmEgY2hpYXZlIEF6dXJlIHBlcnNvbmFsaXp6YXRhIHBlciBieXBhc3NhcmUgbGUgbGltaXRhemlvbmkgZGkgYWNjZXNzb1wiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQ2hpYXZlIEFQSSBBenVyZVwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJJbmRpcml6em8gZGVsbCdpbnRlcmZhY2NpYVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiRXNlbXBpbzpcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBBcGlWZXJpb246IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlZlcnNpb25lIGRlbGwnaW50ZXJmYWNjaWEgKHZlcnNpb25lIGFwaSBhenVyZSlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlNjZWdsaSB1bmEgdmVyc2lvbmUgc3BlY2lmaWNhXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQW50aHJvcGljOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJDaGlhdmUgZGVsbCdpbnRlcmZhY2NpYVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiVXRpbGl6emEgdW5hIGNoaWF2ZSBBbnRocm9waWMgcGVyc29uYWxpenphdGEgcGVyIGJ5cGFzc2FyZSBsZSBsaW1pdGF6aW9uaSBkaSBhY2Nlc3NvXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJBUEkgS2V5IEFudGhyb3BpY1wiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJJbmRpcml6em8gZGVsbCdpbnRlcmZhY2NpYVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiRXNlbXBpbzpcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBBcGlWZXJpb246IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlZlcnNpb25lIGRlbGwnaW50ZXJmYWNjaWEgKHZlcnNpb25lIGFwaSBjbGF1ZGUpXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJTY2VnbGkgdW5hIHZlcnNpb25lIEFQSSBzcGVjaWZpY2FcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBHb29nbGU6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSSBLZXlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIk90dGllbmkgbGEgdHVhIGNoaWF2ZSBBUEkgZGEgR29vZ2xlIEFJXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJJbnNlcmlzY2kgbGEgdHVhIGNoaWF2ZSBBUEkgR29vZ2xlIEFJIFN0dWRpb1wiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJJbmRpcml6em8gZGVsbCdpbnRlcmZhY2NpYVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiRXNlbXBpbzpcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBBcGlWZXJzaW9uOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJWZXJzaW9uZSBBUEkgKHNvbG8gcGVyIGdlbWluaS1wcm8pXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJTY2VnbGkgdW5hIHZlcnNpb25lIEFQSSBzcGVjaWZpY2FcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEdvb2dsZVNhZmV0eVNldHRpbmdzOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJMaXZlbGxvIGRpIGZpbHRyYWdnaW8gc2ljdXJlenphIEdvb2dsZVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiSW1wb3N0YSBpbCBsaXZlbGxvIGRpIGZpbHRyYWdnaW8gZGVpIGNvbnRlbnV0aVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEJhaWR1OiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEkgS2V5XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJVdGlsaXp6YSB1bmEgY2hpYXZlIEFQSSBCYWlkdSBwZXJzb25hbGl6emF0YVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQVBJIEtleSBCYWlkdVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgU2VjcmV0S2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJTZWNyZXQgS2V5XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJVdGlsaXp6YSB1bmEgY2hpYXZlIHNlZ3JldGEgQmFpZHUgcGVyc29uYWxpenphdGFcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIlNlY3JldCBLZXkgQmFpZHVcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJJbmRpcml6em8gZGVsbCdpbnRlcmZhY2NpYVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiTm9uIHN1cHBvcnRhIGNvbmZpZ3VyYXppb25pIHBlcnNvbmFsaXp6YXRlLCBhbmRhcmUgc3UgLmVudlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEJ5dGVEYW5jZToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQ2hpYXZlIGRlbGwnaW50ZXJmYWNjaWFcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlV0aWxpenphIHVuYSBjaGlhdmUgQVBJIEJ5dGVEYW5jZSBwZXJzb25hbGl6emF0YVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQVBJIEtleSBCeXRlRGFuY2VcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJJbmRpcml6em8gZGVsbCdpbnRlcmZhY2NpYVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiRXNlbXBpbzpcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBBbGliYWJhOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJDaGlhdmUgZGVsbCdpbnRlcmZhY2NpYVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiVXRpbGl6emEgdW5hIGNoaWF2ZSBBUEkgQWxpYmFiYSBDbG91ZCBwZXJzb25hbGl6emF0YVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQVBJIEtleSBBbGliYWJhIENsb3VkXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiSW5kaXJpenpvIGRlbGwnaW50ZXJmYWNjaWFcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkVzZW1waW86XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQ3VzdG9tTW9kZWw6IHtcclxuICAgICAgICBUaXRsZTogXCJOb21lIGRlbCBtb2RlbGxvIHBlcnNvbmFsaXp6YXRvXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIkFnZ2l1bmdpIG9wemlvbmkgZGkgbW9kZWxsaSBwZXJzb25hbGl6emF0aSwgc2VwYXJhdGkgZGEgdmlyZ29sZVwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuXHJcbiAgICBNb2RlbDogXCJNb2RlbGxvIChtb2RlbClcIixcclxuICAgIENvbXByZXNzTW9kZWw6IHtcclxuICAgICAgVGl0bGU6IFwiTW9kZWxsbyBkaSBjb21wcmVzc2lvbmVcIixcclxuICAgICAgU3ViVGl0bGU6IFwiTW9kZWxsbyB1dGlsaXp6YXRvIHBlciBjb21wcmltZXJlIGxhIGNyb25vbG9naWFcIixcclxuICAgIH0sXHJcbiAgICBUZW1wZXJhdHVyZToge1xyXG4gICAgICBUaXRsZTogXCJDYXN1YWxpdMOgICh0ZW1wZXJhdHVyZSlcIixcclxuICAgICAgU3ViVGl0bGU6IFwiVmFsb3JlIHBpw7kgYWx0bywgcmlzcG9zdGUgcGnDuSBjYXN1YWxpXCIsXHJcbiAgICB9LFxyXG4gICAgVG9wUDoge1xyXG4gICAgICBUaXRsZTogXCJDYW1waW9uYW1lbnRvIG51Y2xlYXJlICh0b3BfcClcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJTaW1pbGUgYWxsYSBjYXN1YWxpdMOgLCBtYSBub24gY2FtYmlhcmxvIGluc2llbWUgYWxsYSBjYXN1YWxpdMOgXCIsXHJcbiAgICB9LFxyXG4gICAgTWF4VG9rZW5zOiB7XHJcbiAgICAgIFRpdGxlOiBcIkxpbWl0ZSBkaSB0b2tlbiBwZXIgcmlzcG9zdGEgKG1heF90b2tlbnMpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIk51bWVybyBtYXNzaW1vIGRpIHRva2VuIHBlciBvZ25pIGludGVyYXppb25lXCIsXHJcbiAgICB9LFxyXG4gICAgUHJlc2VuY2VQZW5hbHR5OiB7XHJcbiAgICAgIFRpdGxlOiBcIk5vdml0w6AgZGVsIHRlbWEgKHByZXNlbmNlX3BlbmFsdHkpXCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwiVmFsb3JlIHBpw7kgYWx0bywgbWFnZ2lvcmUgcG9zc2liaWxpdMOgIGRpIGVzcGFuZGVyZSBhIG51b3ZpIGFyZ29tZW50aVwiLFxyXG4gICAgfSxcclxuICAgIEZyZXF1ZW5jeVBlbmFsdHk6IHtcclxuICAgICAgVGl0bGU6IFwiUGVuYWxpdMOgIGRpIGZyZXF1ZW56YSAoZnJlcXVlbmN5X3BlbmFsdHkpXCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwiVmFsb3JlIHBpw7kgYWx0bywgbWFnZ2lvcmUgcG9zc2liaWxpdMOgIGRpIHJpZHVycmUgbGUgcmlwZXRpemlvbmlcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBTdG9yZToge1xyXG4gICAgRGVmYXVsdFRvcGljOiBcIk51b3ZhIGNoYXRcIixcclxuICAgIEJvdEhlbGxvOiBcIkNvbWUgcG9zc28gYWl1dGFydGk/XCIsXHJcbiAgICBFcnJvcjogXCJTaSDDqCB2ZXJpZmljYXRvIHVuIGVycm9yZSwgcmlwcm92YSBwacO5IHRhcmRpXCIsXHJcbiAgICBQcm9tcHQ6IHtcclxuICAgICAgSGlzdG9yeTogKGNvbnRlbnQ6IHN0cmluZykgPT5cclxuICAgICAgICBcIlF1ZXN0byDDqCB1biByaWFzc3VudG8gZGVsbGEgY2hhdCBzdG9yaWNhIGNvbWUgY29udGVzdG86IFwiICsgY29udGVudCxcclxuICAgICAgVG9waWM6XHJcbiAgICAgICAgXCJSaXBvcnRhIGlsIHRlbWEgZGkgcXVlc3RhIGZyYXNlIGluIG1vZG8gY29uY2lzbyBjb24gcXVhdHRybyBvIGNpbnF1ZSBwYXJvbGUsIHNlbnphIHNwaWVnYXppb25pLCBwdW50ZWdnaWF0dXJhLCBpbnRlcmllemlvbmksIHRlc3RvIHN1cGVyZmx1byBlIHNlbnphIGdyYXNzZXR0by4gU2Ugbm9uIGMnw6ggdW4gdGVtYSwgcmlzcG9uZGkgZGlyZXR0YW1lbnRlIGNvbiAnY2hpdC1jaGF0J1wiLFxyXG4gICAgICBTdW1tYXJpemU6XHJcbiAgICAgICAgXCJSaWFzc3VtaSBicmV2ZW1lbnRlIGlsIGNvbnRlbnV0byBkZWxsYSBjb252ZXJzYXppb25lIGNvbWUgcHJvbXB0IGRpIGNvbnRlc3RvIHBlciBpbCBzZWd1aXRvLCBtYW50ZW5lbmRvbG8gZW50cm8gMjAwIHBhcm9sZVwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIENvcHk6IHtcclxuICAgIFN1Y2Nlc3M6IFwiQ29waWF0byBuZWdsaSBhcHB1bnRpXCIsXHJcbiAgICBGYWlsZWQ6IFwiQ29waWEgZmFsbGl0YSwgY29uY2VkaSBpIHBlcm1lc3NpIHBlciBnbGkgYXBwdW50aVwiLFxyXG4gIH0sXHJcbiAgRG93bmxvYWQ6IHtcclxuICAgIFN1Y2Nlc3M6IFwiQ29udGVudXRvIHNjYXJpY2F0byBuZWxsYSB0dWEgZGlyZWN0b3J5LlwiLFxyXG4gICAgRmFpbGVkOiBcIkRvd25sb2FkIGZhbGxpdG8uXCIsXHJcbiAgfSxcclxuICBDb250ZXh0OiB7XHJcbiAgICBUb2FzdDogKHg6IGFueSkgPT4gYEluY2x1ZGUgJHt4fSBzdWdnZXJpbWVudGkgcHJlZGVmaW5pdGlgLFxyXG4gICAgRWRpdDogXCJJbXBvc3RhemlvbmkgZGVsbGEgY29udmVyc2F6aW9uZSBhdHR1YWxlXCIsXHJcbiAgICBBZGQ6IFwiQWdnaXVuZ2kgdW5hIGNvbnZlcnNhemlvbmVcIixcclxuICAgIENsZWFyOiBcIkNvbnRlc3RvIGNhbmNlbGxhdG9cIixcclxuICAgIFJldmVydDogXCJSaXByaXN0aW5hIGNvbnRlc3RvXCIsXHJcbiAgfSxcclxuICBQbHVnaW46IHtcclxuICAgIE5hbWU6IFwiUGx1Z2luXCIsXHJcbiAgfSxcclxuICBGaW5lVHVuZWQ6IHtcclxuICAgIFN5c21lc3NhZ2U6IFwiU2VpIHVuIGFzc2lzdGVudGVcIixcclxuICB9LFxyXG4gIFNlYXJjaENoYXQ6IHtcclxuICAgIE5hbWU6IFwiQ2VyY2FcIixcclxuICAgIFBhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwiQ2VyY2EgbmVpIG1lc3NhZ2dpXCIsXHJcbiAgICAgIFNlYXJjaDogXCJJbnNlcmlzY2kgcGFyb2xlIGNoaWF2ZSBwZXIgbGEgcmljZXJjYVwiLFxyXG4gICAgICBOb1Jlc3VsdDogXCJOZXNzdW4gcmlzdWx0YXRvIHRyb3ZhdG9cIixcclxuICAgICAgTm9EYXRhOiBcIk5lc3N1biBkYXRvXCIsXHJcbiAgICAgIExvYWRpbmc6IFwiQ2FyaWNhbWVudG8gaW4gY29yc29cIixcclxuXHJcbiAgICAgIFN1YlRpdGxlOiAoY291bnQ6IG51bWJlcikgPT4gYFRyb3ZhdGkgJHtjb3VudH0gcmlzdWx0YXRpYCxcclxuICAgIH0sXHJcbiAgICBJdGVtOiB7XHJcbiAgICAgIFZpZXc6IFwiVmlzdWFsaXp6YVwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIE1hc2s6IHtcclxuICAgIE5hbWU6IFwiTWFzY2hlcmFcIixcclxuICAgIFBhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwiTWFzY2hlcmUgZGVpIHJ1b2xpIHByZWRlZmluaXRpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiAoY291bnQ6IG51bWJlcikgPT4gYCR7Y291bnR9IGRlZmluaXppb25pIGRpIHJ1b2xpIHByZWRlZmluaXRpYCxcclxuICAgICAgU2VhcmNoOiBcIkNlcmNhIG1hc2NoZXJlIGRpIHJ1b2xvXCIsXHJcbiAgICAgIENyZWF0ZTogXCJDcmVhIG51b3ZvXCIsXHJcbiAgICB9LFxyXG4gICAgSXRlbToge1xyXG4gICAgICBJbmZvOiAoY291bnQ6IG51bWJlcikgPT4gYEluY2x1ZGUgJHtjb3VudH0gY29udmVyc2F6aW9uaSBwcmVkZWZpbml0ZWAsXHJcbiAgICAgIENoYXQ6IFwiQ29udmVyc2F6aW9uZVwiLFxyXG4gICAgICBWaWV3OiBcIlZpc3VhbGl6emFcIixcclxuICAgICAgRWRpdDogXCJNb2RpZmljYVwiLFxyXG4gICAgICBEZWxldGU6IFwiRWxpbWluYVwiLFxyXG4gICAgICBEZWxldGVDb25maXJtOiBcIkNvbmZlcm1pIGVsaW1pbmF6aW9uZT9cIixcclxuICAgIH0sXHJcbiAgICBFZGl0TW9kYWw6IHtcclxuICAgICAgVGl0bGU6IChyZWFkb25seTogYm9vbGVhbikgPT5cclxuICAgICAgICBgTW9kaWZpY2EgbWFzY2hlcmEgcHJlZGVmaW5pdGEgJHtyZWFkb25seSA/IFwiKHNvbGEgbGV0dHVyYSlcIiA6IFwiXCJ9YCxcclxuICAgICAgRG93bmxvYWQ6IFwiU2NhcmljYSBwcmVkZWZpbml0b1wiLFxyXG4gICAgICBDbG9uZTogXCJDbG9uYSBwcmVkZWZpbml0b1wiLFxyXG4gICAgfSxcclxuICAgIENvbmZpZzoge1xyXG4gICAgICBBdmF0YXI6IFwiQXZhdGFyIGRlbCBydW9sb1wiLFxyXG4gICAgICBOYW1lOiBcIk5vbWUgZGVsIHJ1b2xvXCIsXHJcbiAgICAgIFN5bmM6IHtcclxuICAgICAgICBUaXRsZTogXCJVdGlsaXp6YSBpbXBvc3RhemlvbmkgZ2xvYmFsaVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCJMYSBjb252ZXJzYXppb25lIGF0dHVhbGUgdXRpbGl6emVyw6AgbGUgaW1wb3N0YXppb25pIGdsb2JhbGkgZGVsIG1vZGVsbG9cIixcclxuICAgICAgICBDb25maXJtOlxyXG4gICAgICAgICAgXCJMZSBpbXBvc3RhemlvbmkgcGVyc29uYWxpenphdGUgZGVsbGEgY29udmVyc2F6aW9uZSBhdHR1YWxlIHZlcnJhbm5vIHNvdnJhc2NyaXR0ZSBhdXRvbWF0aWNhbWVudGUsIGNvbmZlcm1pIGwnYXR0aXZhemlvbmUgZGVsbGUgaW1wb3N0YXppb25pIGdsb2JhbGk/XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEhpZGVDb250ZXh0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiTmFzY29uZGkgY29udmVyc2F6aW9uaSBwcmVkZWZpbml0ZVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCJMZSBjb252ZXJzYXppb25pIHByZWRlZmluaXRlIG5vbiBhcHBhcmlyYW5ubyBuZWxsYSBmaW5lc3RyYSBkZWxsYSBjaGF0IGRvcG8gYXZlcmxlIG5hc2Nvc3RlXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFNoYXJlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiQ29uZGl2aWRpIHF1ZXN0YSBtYXNjaGVyYVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIkdlbmVyYSB1biBsaW5rIGRpcmV0dG8gYSBxdWVzdGEgbWFzY2hlcmFcIixcclxuICAgICAgICBBY3Rpb246IFwiQ29waWEgbGlua1wiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9LFxyXG4gIE5ld0NoYXQ6IHtcclxuICAgIFJldHVybjogXCJUb3JuYVwiLFxyXG4gICAgU2tpcDogXCJJbml6aWEgc3ViaXRvXCIsXHJcbiAgICBOb3RTaG93OiBcIk5vbiBtb3N0cmFyZSBwacO5XCIsXHJcbiAgICBDb25maXJtTm9TaG93OlxyXG4gICAgICBcIkNvbmZlcm1pIGRpIGRpc2FiaWxpdGFyZT8gRG9wbyBsYSBkaXNhYmlsaXRhemlvbmUsIHB1b2kgcmlhdHRpdmFyZSBpbiBxdWFsc2lhc2kgbW9tZW50byBkYWxsZSBpbXBvc3RhemlvbmkuXCIsXHJcbiAgICBUaXRsZTogXCJTY2VnbGkgdW5hIG1hc2NoZXJhXCIsXHJcbiAgICBTdWJUaXRsZTogXCJJbml6aWEgb3JhIGUgaW50ZXJhZ2lzY2kgY29uIGlsIHBlbnNpZXJvIGRpZXRybyBsYSBtYXNjaGVyYVwiLFxyXG4gICAgTW9yZTogXCJWZWRpIHR1dHRvXCIsXHJcbiAgfSxcclxuXHJcbiAgVVJMQ29tbWFuZDoge1xyXG4gICAgQ29kZTogXCJDb2RpY2UgZGkgYWNjZXNzbyByaWxldmF0byBuZWwgbGluaywgcmllbXBpcmxvIGF1dG9tYXRpY2FtZW50ZT9cIixcclxuICAgIFNldHRpbmdzOlxyXG4gICAgICBcIkltcG9zdGF6aW9uaSBwcmVkZWZpbml0ZSByaWxldmF0ZSBuZWwgbGluaywgcmllbXBpcmxlIGF1dG9tYXRpY2FtZW50ZT9cIixcclxuICB9LFxyXG5cclxuICBVSToge1xyXG4gICAgQ29uZmlybTogXCJDb25mZXJtYVwiLFxyXG4gICAgQ2FuY2VsOiBcIkFubnVsbGFcIixcclxuICAgIENsb3NlOiBcIkNoaXVkaVwiLFxyXG4gICAgQ3JlYXRlOiBcIkNyZWFcIixcclxuICAgIEVkaXQ6IFwiTW9kaWZpY2FcIixcclxuICAgIEV4cG9ydDogXCJFc3BvcnRhXCIsXHJcbiAgICBJbXBvcnQ6IFwiSW1wb3J0YVwiLFxyXG4gICAgU3luYzogXCJTaW5jcm9uaXp6YVwiLFxyXG4gICAgQ29uZmlnOiBcIkNvbmZpZ3VyYVwiLFxyXG4gIH0sXHJcbiAgRXhwb3J0ZXI6IHtcclxuICAgIERlc2NyaXB0aW9uOiB7XHJcbiAgICAgIFRpdGxlOlxyXG4gICAgICAgIFwiU29sbyBpIG1lc3NhZ2dpIGRvcG8gbGEgY2FuY2VsbGF6aW9uZSBkZWwgY29udGVzdG8gdmVycmFubm8gdmlzdWFsaXp6YXRpXCIsXHJcbiAgICB9LFxyXG4gICAgTW9kZWw6IFwiTW9kZWxsb1wiLFxyXG4gICAgTWVzc2FnZXM6IFwiTWVzc2FnZ2lcIixcclxuICAgIFRvcGljOiBcIlRlbWFcIixcclxuICAgIFRpbWU6IFwiVGVtcG9cIixcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgaXQ7XHJcbiJdLCJuYW1lcyI6WyJTdWJtaXRLZXkiLCJnZXRDbGllbnRDb25maWciLCJTQUFTX0NIQVRfVVRNX1VSTCIsImlzQXBwIiwiaXQiLCJXSVAiLCJFcnJvciIsIlVuYXV0aG9yaXplZCIsIkF1dGgiLCJUaXRsZSIsIlRpcHMiLCJTdWJUaXBzIiwiSW5wdXQiLCJDb25maXJtIiwiTGF0ZXIiLCJSZXR1cm4iLCJTYWFzVGlwcyIsIlRvcFRpcHMiLCJDaGF0SXRlbSIsIkNoYXRJdGVtQ291bnQiLCJjb3VudCIsIkNoYXQiLCJTdWJUaXRsZSIsIkVkaXRNZXNzYWdlIiwiVG9waWMiLCJBY3Rpb25zIiwiQ2hhdExpc3QiLCJDb21wcmVzc2VkSGlzdG9yeSIsIkV4cG9ydCIsIkNvcHkiLCJTdG9wIiwiUmV0cnkiLCJQaW4iLCJQaW5Ub2FzdENvbnRlbnQiLCJQaW5Ub2FzdEFjdGlvbiIsIkRlbGV0ZSIsIkVkaXQiLCJSZWZyZXNoVGl0bGUiLCJSZWZyZXNoVG9hc3QiLCJDb21tYW5kcyIsIm5ldyIsIm5ld20iLCJuZXh0IiwicHJldiIsImNsZWFyIiwiZGVsIiwiSW5wdXRBY3Rpb25zIiwiVG9Cb3R0b20iLCJUaGVtZSIsImF1dG8iLCJsaWdodCIsImRhcmsiLCJQcm9tcHQiLCJNYXNrcyIsIkNsZWFyIiwiU2V0dGluZ3MiLCJVcGxvYWRJbWFnZSIsIlJlbmFtZSIsIlR5cGluZyIsInN1Ym1pdEtleSIsImlucHV0SGludHMiLCJTdHJpbmciLCJFbnRlciIsIlNlbmQiLCJDb25maWciLCJSZXNldCIsIlNhdmVBcyIsIklzQ29udGV4dCIsIkRvd25sb2FkIiwiU2hhcmUiLCJNZXNzYWdlRnJvbVlvdSIsIk1lc3NhZ2VGcm9tQ2hhdEdQVCIsIkZvcm1hdCIsIkluY2x1ZGVDb250ZXh0IiwiU3RlcHMiLCJTZWxlY3QiLCJQcmV2aWV3IiwiSW1hZ2UiLCJUb2FzdCIsIk1vZGFsIiwiU2VhcmNoIiwiQWxsIiwiTGF0ZXN0IiwiTWVtb3J5IiwiRW1wdHlDb250ZW50IiwiUmVzZXRDb25maXJtIiwiSG9tZSIsIk5ld0NoYXQiLCJEZWxldGVDaGF0IiwiRGVsZXRlVG9hc3QiLCJSZXZlcnQiLCJEYW5nZXIiLCJBY3Rpb24iLCJMYW5nIiwiTmFtZSIsIkF2YXRhciIsIkZvbnRTaXplIiwiRm9udEZhbWlseSIsIlBsYWNlaG9sZGVyIiwiSW5qZWN0U3lzdGVtUHJvbXB0cyIsIklucHV0VGVtcGxhdGUiLCJVcGRhdGUiLCJWZXJzaW9uIiwieCIsIklzTGF0ZXN0IiwiQ2hlY2tVcGRhdGUiLCJJc0NoZWNraW5nIiwiRm91bmRVcGRhdGUiLCJHb1RvVXBkYXRlIiwiU2VuZEtleSIsIlRpZ2h0Qm9yZGVyIiwiU2VuZFByZXZpZXdCdWJibGUiLCJBdXRvR2VuZXJhdGVUaXRsZSIsIlN5bmMiLCJDbG91ZFN0YXRlIiwiTm90U3luY1lldCIsIlN1Y2Nlc3MiLCJGYWlsIiwiQ2hlY2siLCJTeW5jVHlwZSIsIlByb3h5IiwiUHJveHlVcmwiLCJXZWJEYXYiLCJFbmRwb2ludCIsIlVzZXJOYW1lIiwiUGFzc3dvcmQiLCJVcFN0YXNoIiwiTG9jYWxTdGF0ZSIsIk92ZXJ2aWV3Iiwib3ZlcnZpZXciLCJjaGF0IiwibWVzc2FnZSIsInByb21wdCIsIm1hc2siLCJJbXBvcnRGYWlsZWQiLCJNYXNrIiwiU3BsYXNoIiwiQnVpbHRpbiIsIkRpc2FibGUiLCJMaXN0IiwiTGlzdENvdW50IiwiYnVpbHRpbiIsImN1c3RvbSIsIkFkZCIsIkVkaXRNb2RhbCIsIkhpc3RvcnlDb3VudCIsIkNvbXByZXNzVGhyZXNob2xkIiwiVXNhZ2UiLCJ1c2VkIiwidG90YWwiLCJOb0FjY2VzcyIsIkFjY2VzcyIsIlNhYXNTdGFydCIsIkxhYmVsIiwiQ2hhdE5vdyIsIkFjY2Vzc0NvZGUiLCJDdXN0b21FbmRwb2ludCIsIlByb3ZpZGVyIiwiT3BlbkFJIiwiQXBpS2V5IiwiQXp1cmUiLCJBcGlWZXJpb24iLCJBbnRocm9waWMiLCJHb29nbGUiLCJBcGlWZXJzaW9uIiwiR29vZ2xlU2FmZXR5U2V0dGluZ3MiLCJCYWlkdSIsIlNlY3JldEtleSIsIkJ5dGVEYW5jZSIsIkFsaWJhYmEiLCJDdXN0b21Nb2RlbCIsIk1vZGVsIiwiQ29tcHJlc3NNb2RlbCIsIlRlbXBlcmF0dXJlIiwiVG9wUCIsIk1heFRva2VucyIsIlByZXNlbmNlUGVuYWx0eSIsIkZyZXF1ZW5jeVBlbmFsdHkiLCJTdG9yZSIsIkRlZmF1bHRUb3BpYyIsIkJvdEhlbGxvIiwiSGlzdG9yeSIsImNvbnRlbnQiLCJTdW1tYXJpemUiLCJGYWlsZWQiLCJDb250ZXh0IiwiUGx1Z2luIiwiRmluZVR1bmVkIiwiU3lzbWVzc2FnZSIsIlNlYXJjaENoYXQiLCJQYWdlIiwiTm9SZXN1bHQiLCJOb0RhdGEiLCJMb2FkaW5nIiwiSXRlbSIsIlZpZXciLCJDcmVhdGUiLCJJbmZvIiwiRGVsZXRlQ29uZmlybSIsInJlYWRvbmx5IiwiQ2xvbmUiLCJIaWRlQ29udGV4dCIsIlNraXAiLCJOb3RTaG93IiwiQ29uZmlybU5vU2hvdyIsIk1vcmUiLCJVUkxDb21tYW5kIiwiQ29kZSIsIlVJIiwiQ2FuY2VsIiwiQ2xvc2UiLCJJbXBvcnQiLCJFeHBvcnRlciIsIkRlc2NyaXB0aW9uIiwiTWVzc2FnZXMiLCJUaW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/locales/it.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/locales/jp.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/locales/jp.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _store_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../store/config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n\n\n\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_1__.getClientConfig)()?.isApp;\nconst jp = {\n WIP: \"この機能は開発中です\",\n Error: {\n Unauthorized: isApp ? `😆 会話中に問題が発生しましたが、心配しないでください:\r\n \\\\ 1️⃣ 設定なしで始めたい場合は、[ここをクリックしてすぐにチャットを開始 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\\\ 2️⃣ 自分のOpenAIリソースを使用したい場合は、[ここをクリックして](/#/settings)設定を変更してください ⚙️` : `😆 会話中に問題が発生しましたが、心配しないでください:\r\n \\ 1️⃣ 設定なしで始めたい場合は、[ここをクリックしてすぐにチャットを開始 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\ 2️⃣ プライベートデプロイ版を使用している場合は、[ここをクリックして](/#/auth)アクセストークンを入力してください 🔑\r\n \\ 3️⃣ 自分のOpenAIリソースを使用したい場合は、[ここをクリックして](/#/settings)設定を変更してください ⚙️\r\n `\n },\n Auth: {\n Title: \"パスワードが必要です\",\n Tips: \"管理者がパスワード認証を有効にしました。以下にアクセスコードを入力してください\",\n SubTips: \"または、OpenAIまたはGoogle APIキーを入力してください\",\n Input: \"ここにアクセスコードを入力\",\n Confirm: \"確認\",\n Later: \"後で\",\n Return: \"戻る\",\n SaasTips: \"設定が面倒すぎる、すぐに使いたい\",\n TopTips: \"\\uD83E\\uDD73 NextChat AIの発売特典で、OpenAI o1、GPT-4o、Claude-3.5などの最新の大規模モデルを今すぐアンロック\"\n },\n ChatItem: {\n ChatItemCount: (count)=>`${count}件の会話`\n },\n Chat: {\n SubTitle: (count)=>`合計${count}件の会話`,\n EditMessage: {\n Title: \"メッセージ履歴を編集\",\n Topic: {\n Title: \"チャットテーマ\",\n SubTitle: \"現在のチャットテーマを変更\"\n }\n },\n Actions: {\n ChatList: \"メッセージリストを見る\",\n CompressedHistory: \"圧縮された履歴プロンプトを見る\",\n Export: \"チャット履歴をエクスポート\",\n Copy: \"コピー\",\n Stop: \"停止\",\n Retry: \"再試行\",\n Pin: \"固定\",\n PinToastContent: \"1件の会話をプリセットプロンプトに固定しました\",\n PinToastAction: \"見る\",\n Delete: \"削除\",\n Edit: \"編集\",\n RefreshTitle: \"タイトルを更新\",\n RefreshToast: \"タイトル更新リクエストが送信されました\"\n },\n Commands: {\n new: \"新しいチャット\",\n newm: \"マスクから新しいチャット\",\n next: \"次のチャット\",\n prev: \"前のチャット\",\n clear: \"コンテキストをクリア\",\n del: \"チャットを削除\"\n },\n InputActions: {\n Stop: \"応答を停止\",\n ToBottom: \"最新へスクロール\",\n Theme: {\n auto: \"自動テーマ\",\n light: \"ライトモード\",\n dark: \"ダークモード\"\n },\n Prompt: \"クイックコマンド\",\n Masks: \"すべてのマスク\",\n Clear: \"チャットをクリア\",\n Settings: \"チャット設定\",\n UploadImage: \"画像をアップロード\"\n },\n Rename: \"チャットの名前を変更\",\n Typing: \"入力中…\",\n Input: (submitKey)=>{\n var inputHints = `${submitKey}で送信`;\n if (submitKey === String(_store_config__WEBPACK_IMPORTED_MODULE_0__.SubmitKey.Enter)) {\n inputHints += \"、Shift + Enterで改行\";\n }\n return inputHints + \"、/で補完をトリガー、:でコマンドをトリガー\";\n },\n Send: \"送信\",\n Config: {\n Reset: \"メモリをクリア\",\n SaveAs: \"マスクとして保存\"\n },\n IsContext: \"プリセットプロンプト\"\n },\n Export: {\n Title: \"チャット履歴を共有\",\n Copy: \"すべてコピー\",\n Download: \"ファイルをダウンロード\",\n Share: \"ShareGPTに共有\",\n MessageFromYou: \"ユーザー\",\n MessageFromChatGPT: \"ChatGPT\",\n Format: {\n Title: \"エクスポート形式\",\n SubTitle: \"MarkdownテキストまたはPNG画像としてエクスポートできます\"\n },\n IncludeContext: {\n Title: \"マスクコンテキストを含む\",\n SubTitle: \"メッセージにマスクコンテキストを表示するかどうか\"\n },\n Steps: {\n Select: \"選択\",\n Preview: \"プレビュー\"\n },\n Image: {\n Toast: \"スクリーンショットを生成中\",\n Modal: \"長押しまたは右クリックして画像を保存\"\n }\n },\n Select: {\n Search: \"メッセージを検索\",\n All: \"すべて選択\",\n Latest: \"最新の数件\",\n Clear: \"選択をクリア\"\n },\n Memory: {\n Title: \"履歴の要約\",\n EmptyContent: \"対話内容が短いため、要約は不要です\",\n Send: \"チャット履歴を自動的に圧縮し、コンテキストとして送信\",\n Copy: \"要約をコピー\",\n Reset: \"[unused]\",\n ResetConfirm: \"履歴の要約をリセットしてもよろしいですか?\"\n },\n Home: {\n NewChat: \"新しいチャット\",\n DeleteChat: \"選択した会話を削除してもよろしいですか?\",\n DeleteToast: \"会話を削除しました\",\n Revert: \"元に戻す\"\n },\n Settings: {\n Title: \"設定\",\n SubTitle: \"すべての設定オプション\",\n Danger: {\n Reset: {\n Title: \"すべての設定をリセット\",\n SubTitle: \"すべての設定項目をデフォルト値にリセット\",\n Action: \"今すぐリセット\",\n Confirm: \"すべての設定をリセットしてもよろしいですか?\"\n },\n Clear: {\n Title: \"すべてのデータをクリア\",\n SubTitle: \"すべてのチャット、設定データをクリア\",\n Action: \"今すぐクリア\",\n Confirm: \"すべてのチャット、設定データをクリアしてもよろしいですか?\"\n }\n },\n Lang: {\n Name: \"Language\",\n All: \"すべての言語\"\n },\n Avatar: \"アバター\",\n FontSize: {\n Title: \"フォントサイズ\",\n SubTitle: \"チャット内容のフォントサイズ\"\n },\n FontFamily: {\n Title: \"チャットフォント\",\n SubTitle: \"チャットコンテンツのフォント、空白の場合はグローバルデフォルトフォントを適用します\",\n Placeholder: \"フォント名\"\n },\n InjectSystemPrompts: {\n Title: \"システムプロンプトの注入\",\n SubTitle: \"すべてのリクエストメッセージリストの先頭にChatGPTのシステムプロンプトを強制的に追加\"\n },\n InputTemplate: {\n Title: \"ユーザー入力のプリプロセス\",\n SubTitle: \"最新のメッセージをこのテンプレートに埋め込む\"\n },\n Update: {\n Version: (x)=>`現在のバージョン:${x}`,\n IsLatest: \"最新バージョンです\",\n CheckUpdate: \"更新を確認\",\n IsChecking: \"更新を確認中...\",\n FoundUpdate: (x)=>`新しいバージョンを発見:${x}`,\n GoToUpdate: \"更新へ進む\"\n },\n SendKey: \"送信キー\",\n Theme: \"テーマ\",\n TightBorder: \"ボーダーレスモード\",\n SendPreviewBubble: {\n Title: \"プレビューバブル\",\n SubTitle: \"プレビューバブルでMarkdownコンテンツをプレビュー\"\n },\n AutoGenerateTitle: {\n Title: \"自動タイトル生成\",\n SubTitle: \"チャット内容に基づいて適切なタイトルを生成\"\n },\n Sync: {\n CloudState: \"クラウドデータ\",\n NotSyncYet: \"まだ同期されていません\",\n Success: \"同期に成功しました\",\n Fail: \"同期に失敗しました\",\n Config: {\n Modal: {\n Title: \"クラウド同期の設定\",\n Check: \"可用性を確認\"\n },\n SyncType: {\n Title: \"同期タイプ\",\n SubTitle: \"好きな同期サーバーを選択\"\n },\n Proxy: {\n Title: \"プロキシを有効化\",\n SubTitle: \"ブラウザで同期する場合、クロスオリジン制限を避けるためにプロキシを有効にする必要があります\"\n },\n ProxyUrl: {\n Title: \"プロキシURL\",\n SubTitle: \"このプロジェクトに組み込まれたクロスオリジンプロキシ専用\"\n },\n WebDav: {\n Endpoint: \"WebDAV エンドポイント\",\n UserName: \"ユーザー名\",\n Password: \"パスワード\"\n },\n UpStash: {\n Endpoint: \"UpStash Redis REST URL\",\n UserName: \"バックアップ名\",\n Password: \"UpStash Redis REST トークン\"\n }\n },\n LocalState: \"ローカルデータ\",\n Overview: (overview)=>{\n return `${overview.chat} 回の対話、${overview.message} 件のメッセージ、${overview.prompt} 件のプロンプト、${overview.mask} 件のマスク`;\n },\n ImportFailed: \"インポートに失敗しました\"\n },\n Mask: {\n Splash: {\n Title: \"マスク起動画面\",\n SubTitle: \"新しいチャットを作成する際にマスク起動画面を表示\"\n },\n Builtin: {\n Title: \"内蔵マスクを非表示\",\n SubTitle: \"すべてのマスクリストで内蔵マスクを非表示\"\n }\n },\n Prompt: {\n Disable: {\n Title: \"プロンプトの自動補完を無効化\",\n SubTitle: \"入力フィールドの先頭に / を入力して自動補完をトリガー\"\n },\n List: \"カスタムプロンプトリスト\",\n ListCount: (builtin, custom)=>`内蔵 ${builtin} 件、ユーザー定義 ${custom} 件`,\n Edit: \"編集\",\n Modal: {\n Title: \"プロンプトリスト\",\n Add: \"新規作成\",\n Search: \"プロンプトを検索\"\n },\n EditModal: {\n Title: \"プロンプトを編集\"\n }\n },\n HistoryCount: {\n Title: \"履歴メッセージ数\",\n SubTitle: \"各リクエストに含まれる履歴メッセージの数\"\n },\n CompressThreshold: {\n Title: \"履歴メッセージの圧縮閾値\",\n SubTitle: \"未圧縮の履歴メッセージがこの値を超えた場合、圧縮が行われます\"\n },\n Usage: {\n Title: \"残高確認\",\n SubTitle (used, total) {\n return `今月の使用量 $${used}、サブスクリプション合計 $${total}`;\n },\n IsChecking: \"確認中…\",\n Check: \"再確認\",\n NoAccess: \"APIキーまたはアクセスパスワードを入力して残高を確認\"\n },\n Access: {\n SaasStart: {\n Title: \"NextChat AIを使用する\",\n Label: \"(コストパフォーマンスの最も高いソリューション)\",\n SubTitle: \"NextChatによって公式に管理されており、設定なしですぐに使用でき、OpenAI o1、GPT-4o、Claude-3.5などの最新の大規模モデルをサポートしています\",\n ChatNow: \"今すぐチャット\"\n },\n AccessCode: {\n Title: \"アクセスパスワード\",\n SubTitle: \"管理者が暗号化アクセスを有効にしました\",\n Placeholder: \"アクセスパスワードを入力してください\"\n },\n CustomEndpoint: {\n Title: \"カスタムエンドポイント\",\n SubTitle: \"カスタムAzureまたはOpenAIサービスを使用するかどうか\"\n },\n Provider: {\n Title: \"モデルプロバイダー\",\n SubTitle: \"異なるプロバイダーに切り替える\"\n },\n OpenAI: {\n ApiKey: {\n Title: \"APIキー\",\n SubTitle: \"カスタムOpenAIキーを使用してパスワードアクセス制限を回避\",\n Placeholder: \"OpenAI APIキー\"\n },\n Endpoint: {\n Title: \"エンドポイント\",\n SubTitle: \"デフォルト以外のアドレスにはhttp(s)://を含める必要があります\"\n }\n },\n Azure: {\n ApiKey: {\n Title: \"APIキー\",\n SubTitle: \"カスタムAzureキーを使用してパスワードアクセス制限を回避\",\n Placeholder: \"Azure APIキー\"\n },\n Endpoint: {\n Title: \"エンドポイント\",\n SubTitle: \"例:\"\n },\n ApiVerion: {\n Title: \"APIバージョン (azure api version)\",\n SubTitle: \"特定のバージョンを選択\"\n }\n },\n Anthropic: {\n ApiKey: {\n Title: \"APIキー\",\n SubTitle: \"カスタムAnthropicキーを使用してパスワードアクセス制限を回避\",\n Placeholder: \"Anthropic APIキー\"\n },\n Endpoint: {\n Title: \"エンドポイント\",\n SubTitle: \"例:\"\n },\n ApiVerion: {\n Title: \"APIバージョン (claude api version)\",\n SubTitle: \"特定のAPIバージョンを選択\"\n }\n },\n Google: {\n ApiKey: {\n Title: \"APIキー\",\n SubTitle: \"Google AIからAPIキーを取得\",\n Placeholder: \"Google AI Studio APIキーを入力\"\n },\n Endpoint: {\n Title: \"エンドポイント\",\n SubTitle: \"例:\"\n },\n ApiVersion: {\n Title: \"APIバージョン(gemini-pro専用)\",\n SubTitle: \"特定のAPIバージョンを選択\"\n },\n GoogleSafetySettings: {\n Title: \"Google セーフティ設定\",\n SubTitle: \"コンテンツフィルタリングレベルを設定\"\n }\n },\n Baidu: {\n ApiKey: {\n Title: \"APIキー\",\n SubTitle: \"カスタムBaidu APIキーを使用\",\n Placeholder: \"Baidu APIキー\"\n },\n SecretKey: {\n Title: \"シークレットキー\",\n SubTitle: \"カスタムBaiduシークレットキーを使用\",\n Placeholder: \"Baiduシークレットキー\"\n },\n Endpoint: {\n Title: \"エンドポイント\",\n SubTitle: \"カスタムはサポートしていません、.env設定に進んでください\"\n }\n },\n ByteDance: {\n ApiKey: {\n Title: \"APIキー\",\n SubTitle: \"カスタムByteDance APIキーを使用\",\n Placeholder: \"ByteDance APIキー\"\n },\n Endpoint: {\n Title: \"エンドポイント\",\n SubTitle: \"例:\"\n }\n },\n Alibaba: {\n ApiKey: {\n Title: \"APIキー\",\n SubTitle: \"カスタムAlibaba Cloud APIキーを使用\",\n Placeholder: \"Alibaba Cloud APIキー\"\n },\n Endpoint: {\n Title: \"エンドポイント\",\n SubTitle: \"例:\"\n }\n },\n CustomModel: {\n Title: \"カスタムモデル名\",\n SubTitle: \"カスタムモデルの選択肢を追加、英語のカンマで区切る\"\n }\n },\n Model: \"モデル (model)\",\n CompressModel: {\n Title: \"圧縮モデル\",\n SubTitle: \"履歴を圧縮するために使用されるモデル\"\n },\n Temperature: {\n Title: \"ランダム性 (temperature)\",\n SubTitle: \"値が大きいほど応答がランダムになります\"\n },\n TopP: {\n Title: \"トップP (top_p)\",\n SubTitle: \"ランダム性に似ていますが、ランダム性と一緒に変更しないでください\"\n },\n MaxTokens: {\n Title: \"1回の応答制限 (max_tokens)\",\n SubTitle: \"1回の対話で使用される最大トークン数\"\n },\n PresencePenalty: {\n Title: \"新鮮度 (presence_penalty)\",\n SubTitle: \"値が大きいほど新しいトピックに移行する可能性が高くなります\"\n },\n FrequencyPenalty: {\n Title: \"頻度ペナルティ (frequency_penalty)\",\n SubTitle: \"値が大きいほど繰り返しの単語が減少します\"\n }\n },\n Store: {\n DefaultTopic: \"新しいチャット\",\n BotHello: \"何かお手伝いできますか?\",\n Error: \"エラーが発生しました。後でもう一度試してください\",\n Prompt: {\n History: (content)=>\"これは前提としての履歴チャットの要約です:\" + content,\n Topic: \"この文の簡潔なテーマを四から五文字で返してください。説明、句読点、感嘆詞、余計なテキストは不要です。太字も不要です。テーマがない場合は「雑談」と返してください\",\n Summarize: \"対話の内容を簡潔に要約し、後続のコンテキストプロンプトとして使用します。200文字以内に抑えてください\"\n }\n },\n Copy: {\n Success: \"クリップボードに書き込みました\",\n Failed: \"コピーに失敗しました。クリップボードの権限を付与してください\"\n },\n Download: {\n Success: \"内容がダウンロードされました\",\n Failed: \"ダウンロードに失敗しました\"\n },\n Context: {\n Toast: (x)=>`${x} 件のプリセットプロンプトが含まれています`,\n Edit: \"現在の対話設定\",\n Add: \"対話を追加\",\n Clear: \"コンテキストがクリアされました\",\n Revert: \"コンテキストを元に戻す\"\n },\n Plugin: {\n Name: \"プラグイン\"\n },\n Discovery: {\n Name: \"発見\"\n },\n FineTuned: {\n Sysmessage: \"あなたはアシスタントです\"\n },\n SearchChat: {\n Name: \"検索\",\n Page: {\n Title: \"チャット履歴を検索\",\n Search: \"検索キーワードを入力\",\n NoResult: \"結果が見つかりませんでした\",\n NoData: \"データがありません\",\n Loading: \"読み込み中\",\n SubTitle: (count)=>`${count} 件の結果が見つかりました`\n },\n Item: {\n View: \"表示\"\n }\n },\n Mask: {\n Name: \"マスク\",\n Page: {\n Title: \"プリセットキャラクターマスク\",\n SubTitle: (count)=>`${count} 件のプリセットキャラクター定義`,\n Search: \"キャラクターマスクを検索\",\n Create: \"新規作成\"\n },\n Item: {\n Info: (count)=>`${count} 件のプリセット対話が含まれています`,\n Chat: \"対話\",\n View: \"表示\",\n Edit: \"編集\",\n Delete: \"削除\",\n DeleteConfirm: \"削除してもよろしいですか?\"\n },\n EditModal: {\n Title: (readonly)=>`プリセットマスクの編集 ${readonly ? \"(読み取り専用)\" : \"\"}`,\n Download: \"プリセットをダウンロード\",\n Clone: \"プリセットをクローン\"\n },\n Config: {\n Avatar: \"キャラクターアバター\",\n Name: \"キャラクター名\",\n Sync: {\n Title: \"グローバル設定を使用\",\n SubTitle: \"現在の対話でグローバルモデル設定を使用するかどうか\",\n Confirm: \"現在の対話のカスタム設定が自動的に上書きされます。グローバル設定を有効にしてもよろしいですか?\"\n },\n HideContext: {\n Title: \"プリセット対話を非表示\",\n SubTitle: \"非表示にすると、プリセット対話はチャット画面に表示されません\"\n },\n Share: {\n Title: \"このマスクを共有\",\n SubTitle: \"このマスクの直リンクを生成\",\n Action: \"リンクをコピー\"\n }\n }\n },\n NewChat: {\n Return: \"戻る\",\n Skip: \"直接開始\",\n NotShow: \"今後表示しない\",\n ConfirmNoShow: \"無効にしてもよろしいですか?無効にした後、設定でいつでも再度有効にできます。\",\n Title: \"マスクを選択\",\n SubTitle: \"今すぐ始めよう、マスクの背後にある魂と思考の衝突\",\n More: \"すべて表示\"\n },\n URLCommand: {\n Code: \"リンクにアクセスコードが含まれています。自動入力しますか?\",\n Settings: \"リンクにプリセット設定が含まれています。自動入力しますか?\"\n },\n UI: {\n Confirm: \"確認\",\n Cancel: \"キャンセル\",\n Close: \"閉じる\",\n Create: \"新規作成\",\n Edit: \"編集\",\n Export: \"エクスポート\",\n Import: \"インポート\",\n Sync: \"同期\",\n Config: \"設定\"\n },\n Exporter: {\n Description: {\n Title: \"コンテキストをクリアした後のメッセージのみが表示されます\"\n },\n Model: \"モデル\",\n Messages: \"メッセージ\",\n Topic: \"テーマ\",\n Time: \"時間\"\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (jp);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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YSxVQUFVO1FBQ1Z3TCxNQUFNO0lBQ1I7SUFFQUMsWUFBWTtRQUNWQyxNQUFNO1FBQ056SixVQUFVO0lBQ1o7SUFFQTBKLElBQUk7UUFDRnBNLFNBQVM7UUFDVHFNLFFBQVE7UUFDUkMsT0FBTztRQUNQZCxRQUFRO1FBQ1JqSyxNQUFNO1FBQ05SLFFBQVE7UUFDUndMLFFBQVE7UUFDUm5HLE1BQU07UUFDTmpELFFBQVE7SUFDVjtJQUVBcUosVUFBVTtRQUNSQyxhQUFhO1lBQ1g3TSxPQUFPO1FBQ1Q7UUFDQWtLLE9BQU87UUFDUDRDLFVBQVU7UUFDVi9MLE9BQU87UUFDUGdNLE1BQU07SUFDUjtBQUNGO0FBRUEsaUVBQWVwTixFQUFFQSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvbG9jYWxlcy9qcC50cz81NmI5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1Ym1pdEtleSB9IGZyb20gXCIuLi9zdG9yZS9jb25maWdcIjtcclxuaW1wb3J0IHR5cGUgeyBQYXJ0aWFsTG9jYWxlVHlwZSB9IGZyb20gXCIuL2luZGV4XCI7XHJcbmltcG9ydCB7IGdldENsaWVudENvbmZpZyB9IGZyb20gXCIuLi9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB7IFNBQVNfQ0hBVF9VVE1fVVJMIH0gZnJvbSBcIkAvYXBwL2NvbnN0YW50XCI7XHJcbmNvbnN0IGlzQXBwID0gISFnZXRDbGllbnRDb25maWcoKT8uaXNBcHA7XHJcblxyXG5jb25zdCBqcDogUGFydGlhbExvY2FsZVR5cGUgPSB7XHJcbiAgV0lQOiBcIuOBk+OBruapn+iDveOBr+mWi+eZuuS4reOBp+OBmVwiLFxyXG4gIEVycm9yOiB7XHJcbiAgICBVbmF1dGhvcml6ZWQ6IGlzQXBwXHJcbiAgICAgID8gYPCfmIYg5Lya6Kmx5Lit44Gr5ZWP6aGM44GM55m655Sf44GX44G+44GX44Gf44GM44CB5b+D6YWN44GX44Gq44GE44Gn44GP44Gg44GV44GEOlxyXG4gICAgXFxcXCAx77iP4oOjIOioreWumuOBquOBl+OBp+Wni+OCgeOBn+OBhOWgtOWQiOOBr+OAgVvjgZPjgZPjgpLjgq/jg6rjg4Pjgq/jgZfjgabjgZnjgZDjgavjg4Hjg6Pjg4Pjg4jjgpLplovlp4sg8J+agF0oJHtTQUFTX0NIQVRfVVRNX1VSTH0pXHJcbiAgICBcXFxcIDLvuI/ig6Mg6Ieq5YiG44GuT3BlbkFJ44Oq44K944O844K544KS5L2/55So44GX44Gf44GE5aC05ZCI44Gv44CBW+OBk+OBk+OCkuOCr+ODquODg+OCr+OBl+OBpl0oLyMvc2V0dGluZ3Mp6Kit5a6a44KS5aSJ5pu044GX44Gm44GP44Gg44GV44GEIOKame+4j2BcclxuICAgICAgOiBg8J+YhiDkvJroqbHkuK3jgavllY/poYzjgYznmbrnlJ/jgZfjgb7jgZfjgZ/jgYzjgIHlv4PphY3jgZfjgarjgYTjgafjgY/jgaDjgZXjgYQ6XHJcbiAgICBcXCAx77iP4oOjIOioreWumuOBquOBl+OBp+Wni+OCgeOBn+OBhOWgtOWQiOOBr+OAgVvjgZPjgZPjgpLjgq/jg6rjg4Pjgq/jgZfjgabjgZnjgZDjgavjg4Hjg6Pjg4Pjg4jjgpLplovlp4sg8J+agF0oJHtTQUFTX0NIQVRfVVRNX1VSTH0pXHJcbiAgICBcXCAy77iP4oOjIOODl+ODqeOCpOODmeODvOODiOODh+ODl+ODreOCpOeJiOOCkuS9v+eUqOOBl+OBpuOBhOOCi+WgtOWQiOOBr+OAgVvjgZPjgZPjgpLjgq/jg6rjg4Pjgq/jgZfjgaZdKC8jL2F1dGgp44Ki44Kv44K744K544OI44O844Kv44Oz44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEIPCflJFcclxuICAgIFxcIDPvuI/ig6Mg6Ieq5YiG44GuT3BlbkFJ44Oq44K944O844K544KS5L2/55So44GX44Gf44GE5aC05ZCI44Gv44CBW+OBk+OBk+OCkuOCr+ODquODg+OCr+OBl+OBpl0oLyMvc2V0dGluZ3Mp6Kit5a6a44KS5aSJ5pu044GX44Gm44GP44Gg44GV44GEIOKame+4j1xyXG4gYCxcclxuICB9LFxyXG4gIEF1dGg6IHtcclxuICAgIFRpdGxlOiBcIuODkeOCueODr+ODvOODieOBjOW/heimgeOBp+OBmVwiLFxyXG4gICAgVGlwczogXCLnrqHnkIbogIXjgYzjg5Hjgrnjg6/jg7zjg4noqo3oqLzjgpLmnInlirnjgavjgZfjgb7jgZfjgZ/jgILku6XkuIvjgavjgqLjgq/jgrvjgrnjgrPjg7zjg4njgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYRcIixcclxuICAgIFN1YlRpcHM6IFwi44G+44Gf44Gv44CBT3BlbkFJ44G+44Gf44GvR29vZ2xlIEFQSeOCreODvOOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhFwiLFxyXG4gICAgSW5wdXQ6IFwi44GT44GT44Gr44Ki44Kv44K744K544Kz44O844OJ44KS5YWl5YqbXCIsXHJcbiAgICBDb25maXJtOiBcIueiuuiqjVwiLFxyXG4gICAgTGF0ZXI6IFwi5b6M44GnXCIsXHJcbiAgICBSZXR1cm46IFwi5oi744KLXCIsXHJcbiAgICBTYWFzVGlwczogXCLoqK3lrprjgYzpnaLlgJLjgZnjgY7jgovjgIHjgZnjgZDjgavkvb/jgYTjgZ/jgYRcIixcclxuICAgIFRvcFRpcHM6XHJcbiAgICAgIFwi8J+lsyBOZXh0Q2hhdCBBSeOBrueZuuWjsueJueWFuOOBp+OAgU9wZW5BSSBvMeOAgUdQVC00b+OAgUNsYXVkZS0zLjXjgarjganjga7mnIDmlrDjga7lpKfopo/mqKHjg6Ljg4fjg6vjgpLku4rjgZnjgZDjgqLjg7Pjg63jg4Pjgq9cIixcclxuICB9LFxyXG4gIENoYXRJdGVtOiB7XHJcbiAgICBDaGF0SXRlbUNvdW50OiAoY291bnQ6IG51bWJlcikgPT4gYCR7Y291bnR95Lu244Gu5Lya6KmxYCxcclxuICB9LFxyXG4gIENoYXQ6IHtcclxuICAgIFN1YlRpdGxlOiAoY291bnQ6IG51bWJlcikgPT4gYOWQiOioiCR7Y291bnR95Lu244Gu5Lya6KmxYCxcclxuICAgIEVkaXRNZXNzYWdlOiB7XHJcbiAgICAgIFRpdGxlOiBcIuODoeODg+OCu+ODvOOCuOWxpeattOOCkue3qOmbhlwiLFxyXG4gICAgICBUb3BpYzoge1xyXG4gICAgICAgIFRpdGxlOiBcIuODgeODo+ODg+ODiOODhuODvOODnlwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIuePvuWcqOOBruODgeODo+ODg+ODiOODhuODvOODnuOCkuWkieabtFwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIEFjdGlvbnM6IHtcclxuICAgICAgQ2hhdExpc3Q6IFwi44Oh44OD44K744O844K444Oq44K544OI44KS6KaL44KLXCIsXHJcbiAgICAgIENvbXByZXNzZWRIaXN0b3J5OiBcIuWcp+e4ruOBleOCjOOBn+WxpeattOODl+ODreODs+ODl+ODiOOCkuimi+OCi1wiLFxyXG4gICAgICBFeHBvcnQ6IFwi44OB44Oj44OD44OI5bGl5q2044KS44Ko44Kv44K544Od44O844OIXCIsXHJcbiAgICAgIENvcHk6IFwi44Kz44OU44O8XCIsXHJcbiAgICAgIFN0b3A6IFwi5YGc5q2iXCIsXHJcbiAgICAgIFJldHJ5OiBcIuWGjeippuihjFwiLFxyXG4gICAgICBQaW46IFwi5Zu65a6aXCIsXHJcbiAgICAgIFBpblRvYXN0Q29udGVudDogXCIx5Lu244Gu5Lya6Kmx44KS44OX44Oq44K744OD44OI44OX44Ot44Oz44OX44OI44Gr5Zu65a6a44GX44G+44GX44GfXCIsXHJcbiAgICAgIFBpblRvYXN0QWN0aW9uOiBcIuimi+OCi1wiLFxyXG4gICAgICBEZWxldGU6IFwi5YmK6ZmkXCIsXHJcbiAgICAgIEVkaXQ6IFwi57eo6ZuGXCIsXHJcbiAgICAgIFJlZnJlc2hUaXRsZTogXCLjgr/jgqTjg4jjg6vjgpLmm7TmlrBcIixcclxuICAgICAgUmVmcmVzaFRvYXN0OiBcIuOCv+OCpOODiOODq+abtOaWsOODquOCr+OCqOOCueODiOOBjOmAgeS/oeOBleOCjOOBvuOBl+OBn1wiLFxyXG4gICAgfSxcclxuICAgIENvbW1hbmRzOiB7XHJcbiAgICAgIG5ldzogXCLmlrDjgZfjgYTjg4Hjg6Pjg4Pjg4hcIixcclxuICAgICAgbmV3bTogXCLjg57jgrnjgq/jgYvjgonmlrDjgZfjgYTjg4Hjg6Pjg4Pjg4hcIixcclxuICAgICAgbmV4dDogXCLmrKHjga7jg4Hjg6Pjg4Pjg4hcIixcclxuICAgICAgcHJldjogXCLliY3jga7jg4Hjg6Pjg4Pjg4hcIixcclxuICAgICAgY2xlYXI6IFwi44Kz44Oz44OG44Kt44K544OI44KS44Kv44Oq44KiXCIsXHJcbiAgICAgIGRlbDogXCLjg4Hjg6Pjg4Pjg4jjgpLliYrpmaRcIixcclxuICAgIH0sXHJcbiAgICBJbnB1dEFjdGlvbnM6IHtcclxuICAgICAgU3RvcDogXCLlv5znrZTjgpLlgZzmraJcIixcclxuICAgICAgVG9Cb3R0b206IFwi5pyA5paw44G444K544Kv44Ot44O844OrXCIsXHJcbiAgICAgIFRoZW1lOiB7XHJcbiAgICAgICAgYXV0bzogXCLoh6rli5Xjg4bjg7zjg55cIixcclxuICAgICAgICBsaWdodDogXCLjg6njgqTjg4jjg6Ljg7zjg4lcIixcclxuICAgICAgICBkYXJrOiBcIuODgOODvOOCr+ODouODvOODiVwiLFxyXG4gICAgICB9LFxyXG4gICAgICBQcm9tcHQ6IFwi44Kv44Kk44OD44Kv44Kz44Oe44Oz44OJXCIsXHJcbiAgICAgIE1hc2tzOiBcIuOBmeOBueOBpuOBruODnuOCueOCr1wiLFxyXG4gICAgICBDbGVhcjogXCLjg4Hjg6Pjg4Pjg4jjgpLjgq/jg6rjgqJcIixcclxuICAgICAgU2V0dGluZ3M6IFwi44OB44Oj44OD44OI6Kit5a6aXCIsXHJcbiAgICAgIFVwbG9hZEltYWdlOiBcIueUu+WDj+OCkuOCouODg+ODl+ODreODvOODiVwiLFxyXG4gICAgfSxcclxuICAgIFJlbmFtZTogXCLjg4Hjg6Pjg4Pjg4jjga7lkI3liY3jgpLlpInmm7RcIixcclxuICAgIFR5cGluZzogXCLlhaXlipvkuK3igKZcIixcclxuICAgIElucHV0OiAoc3VibWl0S2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgdmFyIGlucHV0SGludHMgPSBgJHtzdWJtaXRLZXl944Gn6YCB5L+hYDtcclxuICAgICAgaWYgKHN1Ym1pdEtleSA9PT0gU3RyaW5nKFN1Ym1pdEtleS5FbnRlcikpIHtcclxuICAgICAgICBpbnB1dEhpbnRzICs9IFwi44CBU2hpZnQgKyBFbnRlcuOBp+aUueihjFwiO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBpbnB1dEhpbnRzICsgXCLjgIEv44Gn6KOc5a6M44KS44OI44Oq44Ks44O844CBOuOBp+OCs+ODnuODs+ODieOCkuODiOODquOCrOODvFwiO1xyXG4gICAgfSxcclxuICAgIFNlbmQ6IFwi6YCB5L+hXCIsXHJcbiAgICBDb25maWc6IHtcclxuICAgICAgUmVzZXQ6IFwi44Oh44Oi44Oq44KS44Kv44Oq44KiXCIsXHJcbiAgICAgIFNhdmVBczogXCLjg57jgrnjgq/jgajjgZfjgabkv53lrZhcIixcclxuICAgIH0sXHJcbiAgICBJc0NvbnRleHQ6IFwi44OX44Oq44K744OD44OI44OX44Ot44Oz44OX44OIXCIsXHJcbiAgfSxcclxuICBFeHBvcnQ6IHtcclxuICAgIFRpdGxlOiBcIuODgeODo+ODg+ODiOWxpeattOOCkuWFseaciVwiLFxyXG4gICAgQ29weTogXCLjgZnjgbnjgabjgrPjg5Tjg7xcIixcclxuICAgIERvd25sb2FkOiBcIuODleOCoeOCpOODq+OCkuODgOOCpuODs+ODreODvOODiVwiLFxyXG4gICAgU2hhcmU6IFwiU2hhcmVHUFTjgavlhbHmnIlcIixcclxuICAgIE1lc3NhZ2VGcm9tWW91OiBcIuODpuODvOOCtuODvFwiLFxyXG4gICAgTWVzc2FnZUZyb21DaGF0R1BUOiBcIkNoYXRHUFRcIixcclxuICAgIEZvcm1hdDoge1xyXG4gICAgICBUaXRsZTogXCLjgqjjgq/jgrnjg53jg7zjg4jlvaLlvI9cIixcclxuICAgICAgU3ViVGl0bGU6IFwiTWFya2Rvd27jg4bjgq3jgrnjg4jjgb7jgZ/jga9QTkfnlLvlg4/jgajjgZfjgabjgqjjgq/jgrnjg53jg7zjg4jjgafjgY3jgb7jgZlcIixcclxuICAgIH0sXHJcbiAgICBJbmNsdWRlQ29udGV4dDoge1xyXG4gICAgICBUaXRsZTogXCLjg57jgrnjgq/jgrPjg7Pjg4bjgq3jgrnjg4jjgpLlkKvjgoBcIixcclxuICAgICAgU3ViVGl0bGU6IFwi44Oh44OD44K744O844K444Gr44Oe44K544Kv44Kz44Oz44OG44Kt44K544OI44KS6KGo56S644GZ44KL44GL44Gp44GG44GLXCIsXHJcbiAgICB9LFxyXG4gICAgU3RlcHM6IHtcclxuICAgICAgU2VsZWN0OiBcIumBuOaKnlwiLFxyXG4gICAgICBQcmV2aWV3OiBcIuODl+ODrOODk+ODpeODvFwiLFxyXG4gICAgfSxcclxuICAgIEltYWdlOiB7XHJcbiAgICAgIFRvYXN0OiBcIuOCueOCr+ODquODvOODs+OCt+ODp+ODg+ODiOOCkueUn+aIkOS4rVwiLFxyXG4gICAgICBNb2RhbDogXCLplbfmirzjgZfjgb7jgZ/jga/lj7Pjgq/jg6rjg4Pjgq/jgZfjgabnlLvlg4/jgpLkv53lrZhcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBTZWxlY3Q6IHtcclxuICAgIFNlYXJjaDogXCLjg6Hjg4Pjgrvjg7zjgrjjgpLmpJzntKJcIixcclxuICAgIEFsbDogXCLjgZnjgbnjgabpgbjmip5cIixcclxuICAgIExhdGVzdDogXCLmnIDmlrDjga7mlbDku7ZcIixcclxuICAgIENsZWFyOiBcIumBuOaKnuOCkuOCr+ODquOColwiLFxyXG4gIH0sXHJcbiAgTWVtb3J5OiB7XHJcbiAgICBUaXRsZTogXCLlsaXmrbTjga7opoHntIRcIixcclxuICAgIEVtcHR5Q29udGVudDogXCLlr77oqbHlhoXlrrnjgYznn63jgYTjgZ/jgoHjgIHopoHntITjga/kuI3opoHjgafjgZlcIixcclxuICAgIFNlbmQ6IFwi44OB44Oj44OD44OI5bGl5q2044KS6Ieq5YuV55qE44Gr5Zyn57iu44GX44CB44Kz44Oz44OG44Kt44K544OI44Go44GX44Gm6YCB5L+hXCIsXHJcbiAgICBDb3B5OiBcIuimgee0hOOCkuOCs+ODlOODvFwiLFxyXG4gICAgUmVzZXQ6IFwiW3VudXNlZF1cIixcclxuICAgIFJlc2V0Q29uZmlybTogXCLlsaXmrbTjga7opoHntITjgpLjg6rjgrvjg4Pjg4jjgZfjgabjgoLjgojjgo3jgZfjgYTjgafjgZnjgYvvvJ9cIixcclxuICB9LFxyXG4gIEhvbWU6IHtcclxuICAgIE5ld0NoYXQ6IFwi5paw44GX44GE44OB44Oj44OD44OIXCIsXHJcbiAgICBEZWxldGVDaGF0OiBcIumBuOaKnuOBl+OBn+S8muipseOCkuWJiumZpOOBl+OBpuOCguOCiOOCjeOBl+OBhOOBp+OBmeOBi++8n1wiLFxyXG4gICAgRGVsZXRlVG9hc3Q6IFwi5Lya6Kmx44KS5YmK6Zmk44GX44G+44GX44GfXCIsXHJcbiAgICBSZXZlcnQ6IFwi5YWD44Gr5oi744GZXCIsXHJcbiAgfSxcclxuICBTZXR0aW5nczoge1xyXG4gICAgVGl0bGU6IFwi6Kit5a6aXCIsXHJcbiAgICBTdWJUaXRsZTogXCLjgZnjgbnjgabjga7oqK3lrprjgqrjg5fjgrfjg6fjg7NcIixcclxuXHJcbiAgICBEYW5nZXI6IHtcclxuICAgICAgUmVzZXQ6IHtcclxuICAgICAgICBUaXRsZTogXCLjgZnjgbnjgabjga7oqK3lrprjgpLjg6rjgrvjg4Pjg4hcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLjgZnjgbnjgabjga7oqK3lrprpoIXnm67jgpLjg4fjg5Xjgqnjg6vjg4jlgKTjgavjg6rjgrvjg4Pjg4hcIixcclxuICAgICAgICBBY3Rpb246IFwi5LuK44GZ44GQ44Oq44K744OD44OIXCIsXHJcbiAgICAgICAgQ29uZmlybTogXCLjgZnjgbnjgabjga7oqK3lrprjgpLjg6rjgrvjg4Pjg4jjgZfjgabjgoLjgojjgo3jgZfjgYTjgafjgZnjgYvvvJ9cIixcclxuICAgICAgfSxcclxuICAgICAgQ2xlYXI6IHtcclxuICAgICAgICBUaXRsZTogXCLjgZnjgbnjgabjga7jg4fjg7zjgr/jgpLjgq/jg6rjgqJcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLjgZnjgbnjgabjga7jg4Hjg6Pjg4Pjg4jjgIHoqK3lrprjg4fjg7zjgr/jgpLjgq/jg6rjgqJcIixcclxuICAgICAgICBBY3Rpb246IFwi5LuK44GZ44GQ44Kv44Oq44KiXCIsXHJcbiAgICAgICAgQ29uZmlybTogXCLjgZnjgbnjgabjga7jg4Hjg6Pjg4Pjg4jjgIHoqK3lrprjg4fjg7zjgr/jgpLjgq/jg6rjgqLjgZfjgabjgoLjgojjgo3jgZfjgYTjgafjgZnjgYvvvJ9cIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBMYW5nOiB7XHJcbiAgICAgIE5hbWU6IFwiTGFuZ3VhZ2VcIiwgLy8gQVRURU5USU9OOiBpZiB5b3Ugd2FubmEgYWRkIGEgbmV3IHRyYW5zbGF0aW9uLCBwbGVhc2UgZG8gbm90IHRyYW5zbGF0ZSB0aGlzIHZhbHVlLCBsZWF2ZSBpdCBhcyBgTGFuZ3VhZ2VgXHJcbiAgICAgIEFsbDogXCLjgZnjgbnjgabjga7oqIDoqp5cIixcclxuICAgIH0sXHJcbiAgICBBdmF0YXI6IFwi44Ki44OQ44K/44O8XCIsXHJcbiAgICBGb250U2l6ZToge1xyXG4gICAgICBUaXRsZTogXCLjg5Xjgqnjg7Pjg4jjgrXjgqTjgrpcIixcclxuICAgICAgU3ViVGl0bGU6IFwi44OB44Oj44OD44OI5YaF5a6544Gu44OV44Kp44Oz44OI44K144Kk44K6XCIsXHJcbiAgICB9LFxyXG4gICAgRm9udEZhbWlseToge1xyXG4gICAgICBUaXRsZTogXCLjg4Hjg6Pjg4Pjg4jjg5Xjgqnjg7Pjg4hcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCLjg4Hjg6Pjg4Pjg4jjgrPjg7Pjg4bjg7Pjg4Tjga7jg5Xjgqnjg7Pjg4jjgIHnqbrnmb3jga7loLTlkIjjga/jgrDjg63jg7zjg5Djg6vjg4fjg5Xjgqnjg6vjg4jjg5Xjgqnjg7Pjg4jjgpLpgannlKjjgZfjgb7jgZlcIixcclxuICAgICAgUGxhY2Vob2xkZXI6IFwi44OV44Kp44Oz44OI5ZCNXCIsXHJcbiAgICB9LFxyXG4gICAgSW5qZWN0U3lzdGVtUHJvbXB0czoge1xyXG4gICAgICBUaXRsZTogXCLjgrfjgrnjg4bjg6Djg5fjg63jg7Pjg5fjg4jjga7ms6jlhaVcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCLjgZnjgbnjgabjga7jg6rjgq/jgqjjgrnjg4jjg6Hjg4Pjgrvjg7zjgrjjg6rjgrnjg4jjga7lhYjpoK3jgatDaGF0R1BU44Gu44K344K544OG44Og44OX44Ot44Oz44OX44OI44KS5by35Yi255qE44Gr6L+95YqgXCIsXHJcbiAgICB9LFxyXG4gICAgSW5wdXRUZW1wbGF0ZToge1xyXG4gICAgICBUaXRsZTogXCLjg6bjg7zjgrbjg7zlhaXlipvjga7jg5fjg6rjg5fjg63jgrvjgrlcIixcclxuICAgICAgU3ViVGl0bGU6IFwi5pyA5paw44Gu44Oh44OD44K744O844K444KS44GT44Gu44OG44Oz44OX44Os44O844OI44Gr5Z+L44KB6L6844KAXCIsXHJcbiAgICB9LFxyXG5cclxuICAgIFVwZGF0ZToge1xyXG4gICAgICBWZXJzaW9uOiAoeDogc3RyaW5nKSA9PiBg54++5Zyo44Gu44OQ44O844K444On44Oz77yaJHt4fWAsXHJcbiAgICAgIElzTGF0ZXN0OiBcIuacgOaWsOODkOODvOOCuOODp+ODs+OBp+OBmVwiLFxyXG4gICAgICBDaGVja1VwZGF0ZTogXCLmm7TmlrDjgpLnorroqo1cIixcclxuICAgICAgSXNDaGVja2luZzogXCLmm7TmlrDjgpLnorroqo3kuK0uLi5cIixcclxuICAgICAgRm91bmRVcGRhdGU6ICh4OiBzdHJpbmcpID0+IGDmlrDjgZfjgYTjg5Djg7zjgrjjg6fjg7PjgpLnmbropovvvJoke3h9YCxcclxuICAgICAgR29Ub1VwZGF0ZTogXCLmm7TmlrDjgbjpgLLjgoBcIixcclxuICAgIH0sXHJcbiAgICBTZW5kS2V5OiBcIumAgeS/oeOCreODvFwiLFxyXG4gICAgVGhlbWU6IFwi44OG44O844OeXCIsXHJcbiAgICBUaWdodEJvcmRlcjogXCLjg5zjg7zjg4Djg7zjg6zjgrnjg6Ljg7zjg4lcIixcclxuICAgIFNlbmRQcmV2aWV3QnViYmxlOiB7XHJcbiAgICAgIFRpdGxlOiBcIuODl+ODrOODk+ODpeODvOODkOODluODq1wiLFxyXG4gICAgICBTdWJUaXRsZTogXCLjg5fjg6zjg5Pjg6Xjg7zjg5Djg5bjg6vjgadNYXJrZG93buOCs+ODs+ODhuODs+ODhOOCkuODl+ODrOODk+ODpeODvFwiLFxyXG4gICAgfSxcclxuICAgIEF1dG9HZW5lcmF0ZVRpdGxlOiB7XHJcbiAgICAgIFRpdGxlOiBcIuiHquWLleOCv+OCpOODiOODq+eUn+aIkFwiLFxyXG4gICAgICBTdWJUaXRsZTogXCLjg4Hjg6Pjg4Pjg4jlhoXlrrnjgavln7rjgaXjgYTjgabpganliIfjgarjgr/jgqTjg4jjg6vjgpLnlJ/miJBcIixcclxuICAgIH0sXHJcbiAgICBTeW5jOiB7XHJcbiAgICAgIENsb3VkU3RhdGU6IFwi44Kv44Op44Km44OJ44OH44O844K/XCIsXHJcbiAgICAgIE5vdFN5bmNZZXQ6IFwi44G+44Gg5ZCM5pyf44GV44KM44Gm44GE44G+44Gb44KTXCIsXHJcbiAgICAgIFN1Y2Nlc3M6IFwi5ZCM5pyf44Gr5oiQ5Yqf44GX44G+44GX44GfXCIsXHJcbiAgICAgIEZhaWw6IFwi5ZCM5pyf44Gr5aSx5pWX44GX44G+44GX44GfXCIsXHJcblxyXG4gICAgICBDb25maWc6IHtcclxuICAgICAgICBNb2RhbDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi44Kv44Op44Km44OJ5ZCM5pyf44Gu6Kit5a6aXCIsXHJcbiAgICAgICAgICBDaGVjazogXCLlj6/nlKjmgKfjgpLnorroqo1cIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFN5bmNUeXBlOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLlkIzmnJ/jgr/jgqTjg5dcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuWlveOBjeOBquWQjOacn+OCteODvOODkOODvOOCkumBuOaKnlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgUHJveHk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuODl+ODreOCreOCt+OCkuacieWKueWMllwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwi44OW44Op44Km44K244Gn5ZCM5pyf44GZ44KL5aC05ZCI44CB44Kv44Ot44K544Kq44Oq44K444Oz5Yi26ZmQ44KS6YG/44GR44KL44Gf44KB44Gr44OX44Ot44Kt44K344KS5pyJ5Yq544Gr44GZ44KL5b+F6KaB44GM44GC44KK44G+44GZXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQcm94eVVybDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi44OX44Ot44Kt44K3VVJMXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLjgZPjga7jg5fjg63jgrjjgqfjgq/jg4jjgavntYTjgb/ovrzjgb7jgozjgZ/jgq/jg63jgrnjgqrjg6rjgrjjg7Pjg5fjg63jgq3jgrflsILnlKhcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBXZWJEYXY6IHtcclxuICAgICAgICAgIEVuZHBvaW50OiBcIldlYkRBViDjgqjjg7Pjg4njg53jgqTjg7Pjg4hcIixcclxuICAgICAgICAgIFVzZXJOYW1lOiBcIuODpuODvOOCtuODvOWQjVwiLFxyXG4gICAgICAgICAgUGFzc3dvcmQ6IFwi44OR44K544Ov44O844OJXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgVXBTdGFzaDoge1xyXG4gICAgICAgICAgRW5kcG9pbnQ6IFwiVXBTdGFzaCBSZWRpcyBSRVNUIFVSTFwiLFxyXG4gICAgICAgICAgVXNlck5hbWU6IFwi44OQ44OD44Kv44Ki44OD44OX5ZCNXCIsXHJcbiAgICAgICAgICBQYXNzd29yZDogXCJVcFN0YXNoIFJlZGlzIFJFU1Qg44OI44O844Kv44OzXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuXHJcbiAgICAgIExvY2FsU3RhdGU6IFwi44Ot44O844Kr44Or44OH44O844K/XCIsXHJcbiAgICAgIE92ZXJ2aWV3OiAob3ZlcnZpZXc6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBgJHtvdmVydmlldy5jaGF0fSDlm57jga7lr77oqbHjgIEke292ZXJ2aWV3Lm1lc3NhZ2V9IOS7tuOBruODoeODg+OCu+ODvOOCuOOAgSR7b3ZlcnZpZXcucHJvbXB0fSDku7bjga7jg5fjg63jg7Pjg5fjg4jjgIEke292ZXJ2aWV3Lm1hc2t9IOS7tuOBruODnuOCueOCr2A7XHJcbiAgICAgIH0sXHJcbiAgICAgIEltcG9ydEZhaWxlZDogXCLjgqTjg7Pjg53jg7zjg4jjgavlpLHmlZfjgZfjgb7jgZfjgZ9cIixcclxuICAgIH0sXHJcbiAgICBNYXNrOiB7XHJcbiAgICAgIFNwbGFzaDoge1xyXG4gICAgICAgIFRpdGxlOiBcIuODnuOCueOCr+i1t+WLleeUu+mdolwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIuaWsOOBl+OBhOODgeODo+ODg+ODiOOCkuS9nOaIkOOBmeOCi+mam+OBq+ODnuOCueOCr+i1t+WLleeUu+mdouOCkuihqOekulwiLFxyXG4gICAgICB9LFxyXG4gICAgICBCdWlsdGluOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi5YaF6JS144Oe44K544Kv44KS6Z2e6KGo56S6XCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi44GZ44G544Gm44Gu44Oe44K544Kv44Oq44K544OI44Gn5YaF6JS144Oe44K544Kv44KS6Z2e6KGo56S6XCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgUHJvbXB0OiB7XHJcbiAgICAgIERpc2FibGU6IHtcclxuICAgICAgICBUaXRsZTogXCLjg5fjg63jg7Pjg5fjg4jjga7oh6rli5Xoo5zlrozjgpLnhKHlirnljJZcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLlhaXlipvjg5XjgqPjg7zjg6vjg4njga7lhYjpoK3jgasgLyDjgpLlhaXlipvjgZfjgaboh6rli5Xoo5zlrozjgpLjg4jjg6rjgqzjg7xcIixcclxuICAgICAgfSxcclxuICAgICAgTGlzdDogXCLjgqvjgrnjgr/jg6Djg5fjg63jg7Pjg5fjg4jjg6rjgrnjg4hcIixcclxuICAgICAgTGlzdENvdW50OiAoYnVpbHRpbjogbnVtYmVyLCBjdXN0b206IG51bWJlcikgPT5cclxuICAgICAgICBg5YaF6JS1ICR7YnVpbHRpbn0g5Lu244CB44Om44O844K244O85a6a576pICR7Y3VzdG9tfSDku7ZgLFxyXG4gICAgICBFZGl0OiBcIue3qOmbhlwiLFxyXG4gICAgICBNb2RhbDoge1xyXG4gICAgICAgIFRpdGxlOiBcIuODl+ODreODs+ODl+ODiOODquOCueODiFwiLFxyXG4gICAgICAgIEFkZDogXCLmlrDopo/kvZzmiJBcIixcclxuICAgICAgICBTZWFyY2g6IFwi44OX44Ot44Oz44OX44OI44KS5qSc57SiXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEVkaXRNb2RhbDoge1xyXG4gICAgICAgIFRpdGxlOiBcIuODl+ODreODs+ODl+ODiOOCkue3qOmbhlwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIEhpc3RvcnlDb3VudDoge1xyXG4gICAgICBUaXRsZTogXCLlsaXmrbTjg6Hjg4Pjgrvjg7zjgrjmlbBcIixcclxuICAgICAgU3ViVGl0bGU6IFwi5ZCE44Oq44Kv44Ko44K544OI44Gr5ZCr44G+44KM44KL5bGl5q2044Oh44OD44K744O844K444Gu5pWwXCIsXHJcbiAgICB9LFxyXG4gICAgQ29tcHJlc3NUaHJlc2hvbGQ6IHtcclxuICAgICAgVGl0bGU6IFwi5bGl5q2044Oh44OD44K744O844K444Gu5Zyn57iu6Za+5YCkXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuacquWcp+e4ruOBruWxpeattOODoeODg+OCu+ODvOOCuOOBjOOBk+OBruWApOOCkui2heOBiOOBn+WgtOWQiOOAgeWcp+e4ruOBjOihjOOCj+OCjOOBvuOBmVwiLFxyXG4gICAgfSxcclxuXHJcbiAgICBVc2FnZToge1xyXG4gICAgICBUaXRsZTogXCLmrovpq5jnorroqo1cIixcclxuICAgICAgU3ViVGl0bGUodXNlZDogYW55LCB0b3RhbDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIGDku4rmnIjjga7kvb/nlKjph48gJCR7dXNlZH3jgIHjgrXjg5bjgrnjgq/jg6rjg5fjgrfjg6fjg7PlkIjoqIggJCR7dG90YWx9YDtcclxuICAgICAgfSxcclxuICAgICAgSXNDaGVja2luZzogXCLnorroqo3kuK3igKZcIixcclxuICAgICAgQ2hlY2s6IFwi5YaN56K66KqNXCIsXHJcbiAgICAgIE5vQWNjZXNzOiBcIkFQSeOCreODvOOBvuOBn+OBr+OCouOCr+OCu+OCueODkeOCueODr+ODvOODieOCkuWFpeWKm+OBl+OBpuaui+mrmOOCkueiuuiqjVwiLFxyXG4gICAgfSxcclxuXHJcbiAgICBBY2Nlc3M6IHtcclxuICAgICAgU2Fhc1N0YXJ0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiTmV4dENoYXQgQUnjgpLkvb/nlKjjgZnjgotcIixcclxuICAgICAgICBMYWJlbDogXCIo44Kz44K544OI44OR44OV44Kp44O844Oe44Oz44K544Gu5pyA44KC6auY44GE44K944Oq44Ol44O844K344On44OzKVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCJOZXh0Q2hhdOOBq+OCiOOBo+OBpuWFrOW8j+OBq+euoeeQhuOBleOCjOOBpuOBiuOCiuOAgeioreWumuOBquOBl+OBp+OBmeOBkOOBq+S9v+eUqOOBp+OBjeOAgU9wZW5BSSBvMeOAgUdQVC00b+OAgUNsYXVkZS0zLjXjgarjganjga7mnIDmlrDjga7lpKfopo/mqKHjg6Ljg4fjg6vjgpLjgrXjg53jg7zjg4jjgZfjgabjgYTjgb7jgZlcIixcclxuICAgICAgICBDaGF0Tm93OiBcIuS7iuOBmeOBkOODgeODo+ODg+ODiFwiLFxyXG4gICAgICB9LFxyXG5cclxuICAgICAgQWNjZXNzQ29kZToge1xyXG4gICAgICAgIFRpdGxlOiBcIuOCouOCr+OCu+OCueODkeOCueODr+ODvOODiVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIueuoeeQhuiAheOBjOaal+WPt+WMluOCouOCr+OCu+OCueOCkuacieWKueOBq+OBl+OBvuOBl+OBn1wiLFxyXG4gICAgICAgIFBsYWNlaG9sZGVyOiBcIuOCouOCr+OCu+OCueODkeOCueODr+ODvOODieOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhFwiLFxyXG4gICAgICB9LFxyXG4gICAgICBDdXN0b21FbmRwb2ludDoge1xyXG4gICAgICAgIFRpdGxlOiBcIuOCq+OCueOCv+ODoOOCqOODs+ODieODneOCpOODs+ODiFwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIuOCq+OCueOCv+ODoEF6dXJl44G+44Gf44GvT3BlbkFJ44K144O844OT44K544KS5L2/55So44GZ44KL44GL44Gp44GG44GLXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFByb3ZpZGVyOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi44Oi44OH44Or44OX44Ot44OQ44Kk44OA44O8XCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi55Ww44Gq44KL44OX44Ot44OQ44Kk44OA44O844Gr5YiH44KK5pu/44GI44KLXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIE9wZW5BSToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJ44Kt44O8XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLjgqvjgrnjgr/jg6BPcGVuQUnjgq3jg7zjgpLkvb/nlKjjgZfjgabjg5Hjgrnjg6/jg7zjg4njgqLjgq/jgrvjgrnliLbpmZDjgpLlm57pgb9cIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIk9wZW5BSSBBUEnjgq3jg7xcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi44Ko44Oz44OJ44Od44Kk44Oz44OIXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgICAgXCLjg4fjg5Xjgqnjg6vjg4jku6XlpJbjga7jgqLjg4njg6zjgrnjgavjga9odHRwKHMpOi8v44KS5ZCr44KB44KL5b+F6KaB44GM44GC44KK44G+44GZXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQXp1cmU6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSeOCreODvFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi44Kr44K544K/44OgQXp1cmXjgq3jg7zjgpLkvb/nlKjjgZfjgabjg5Hjgrnjg6/jg7zjg4njgqLjgq/jgrvjgrnliLbpmZDjgpLlm57pgb9cIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkF6dXJlIEFQSeOCreODvFwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLjgqjjg7Pjg4njg53jgqTjg7Pjg4hcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuS+i++8mlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcmlvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJ44OQ44O844K444On44OzIChhenVyZSBhcGkgdmVyc2lvbilcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIueJueWumuOBruODkOODvOOCuOODp+ODs+OCkumBuOaKnlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEFudGhyb3BpYzoge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJ44Kt44O8XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgICAgXCLjgqvjgrnjgr/jg6BBbnRocm9waWPjgq3jg7zjgpLkvb/nlKjjgZfjgabjg5Hjgrnjg6/jg7zjg4njgqLjgq/jgrvjgrnliLbpmZDjgpLlm57pgb9cIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkFudGhyb3BpYyBBUEnjgq3jg7xcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi44Ko44Oz44OJ44Od44Kk44Oz44OIXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLkvovvvJpcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBBcGlWZXJpb246IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSeODkOODvOOCuOODp+ODsyAoY2xhdWRlIGFwaSB2ZXJzaW9uKVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi54m55a6a44GuQVBJ44OQ44O844K444On44Oz44KS6YG45oqeXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgR29vZ2xlOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEnjgq3jg7xcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkdvb2dsZSBBSeOBi+OCiUFQSeOCreODvOOCkuWPluW+l1wiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiR29vZ2xlIEFJIFN0dWRpbyBBUEnjgq3jg7zjgpLlhaXliptcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi44Ko44Oz44OJ44Od44Kk44Oz44OIXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLkvovvvJpcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBBcGlWZXJzaW9uOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEnjg5Djg7zjgrjjg6fjg7PvvIhnZW1pbmktcHJv5bCC55So77yJXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLnibnlrprjga5BUEnjg5Djg7zjgrjjg6fjg7PjgpLpgbjmip5cIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEdvb2dsZVNhZmV0eVNldHRpbmdzOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJHb29nbGUg44K744O844OV44OG44Kj6Kit5a6aXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLjgrPjg7Pjg4bjg7Pjg4Tjg5XjgqPjg6vjgr/jg6rjg7PjgrDjg6zjg5njg6vjgpLoqK3lrppcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBCYWlkdToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJ44Kt44O8XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLjgqvjgrnjgr/jg6BCYWlkdSBBUEnjgq3jg7zjgpLkvb/nlKhcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkJhaWR1IEFQSeOCreODvFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgU2VjcmV0S2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLjgrfjg7zjgq/jg6zjg4Pjg4jjgq3jg7xcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuOCq+OCueOCv+ODoEJhaWR144K344O844Kv44Os44OD44OI44Kt44O844KS5L2/55SoXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJCYWlkdeOCt+ODvOOCr+ODrOODg+ODiOOCreODvFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuOCqOODs+ODieODneOCpOODs+ODiFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi44Kr44K544K/44Og44Gv44K144Od44O844OI44GX44Gm44GE44G+44Gb44KT44CBLmVuduioreWumuOBq+mAsuOCk+OBp+OBj+OBoOOBleOBhFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEJ5dGVEYW5jZToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJ44Kt44O8XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLjgqvjgrnjgr/jg6BCeXRlRGFuY2UgQVBJ44Kt44O844KS5L2/55SoXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJCeXRlRGFuY2UgQVBJ44Kt44O8XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi44Ko44Oz44OJ44Od44Kk44Oz44OIXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLkvovvvJpcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBBbGliYWJhOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEnjgq3jg7xcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuOCq+OCueOCv+ODoEFsaWJhYmEgQ2xvdWQgQVBJ44Kt44O844KS5L2/55SoXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJBbGliYWJhIENsb3VkIEFQSeOCreODvFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuOCqOODs+ODieODneOCpOODs+ODiFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi5L6L77yaXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQ3VzdG9tTW9kZWw6IHtcclxuICAgICAgICBUaXRsZTogXCLjgqvjgrnjgr/jg6Djg6Ljg4fjg6vlkI1cIixcclxuICAgICAgICBTdWJUaXRsZTogXCLjgqvjgrnjgr/jg6Djg6Ljg4fjg6vjga7pgbjmip7ogqLjgpLov73liqDjgIHoi7Hoqp7jga7jgqvjg7Pjg57jgafljLrliIfjgotcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcblxyXG4gICAgTW9kZWw6IFwi44Oi44OH44OrIChtb2RlbClcIixcclxuICAgIENvbXByZXNzTW9kZWw6IHtcclxuICAgICAgVGl0bGU6IFwi5Zyn57iu44Oi44OH44OrXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuWxpeattOOCkuWcp+e4ruOBmeOCi+OBn+OCgeOBq+S9v+eUqOOBleOCjOOCi+ODouODh+ODq1wiLFxyXG4gICAgfSxcclxuICAgIFRlbXBlcmF0dXJlOiB7XHJcbiAgICAgIFRpdGxlOiBcIuODqeODs+ODgOODoOaApyAodGVtcGVyYXR1cmUpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuWApOOBjOWkp+OBjeOBhOOBu+OBqeW/nOetlOOBjOODqeODs+ODgOODoOOBq+OBquOCiuOBvuOBmVwiLFxyXG4gICAgfSxcclxuICAgIFRvcFA6IHtcclxuICAgICAgVGl0bGU6IFwi44OI44OD44OXUCAodG9wX3ApXCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwi44Op44Oz44OA44Og5oCn44Gr5Ly844Gm44GE44G+44GZ44GM44CB44Op44Oz44OA44Og5oCn44Go5LiA57eS44Gr5aSJ5pu044GX44Gq44GE44Gn44GP44Gg44GV44GEXCIsXHJcbiAgICB9LFxyXG4gICAgTWF4VG9rZW5zOiB7XHJcbiAgICAgIFRpdGxlOiBcIjHlm57jga7lv5znrZTliLbpmZAgKG1heF90b2tlbnMpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIjHlm57jga7lr77oqbHjgafkvb/nlKjjgZXjgozjgovmnIDlpKfjg4jjg7zjgq/jg7PmlbBcIixcclxuICAgIH0sXHJcbiAgICBQcmVzZW5jZVBlbmFsdHk6IHtcclxuICAgICAgVGl0bGU6IFwi5paw6a6u5bqmIChwcmVzZW5jZV9wZW5hbHR5KVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCLlgKTjgYzlpKfjgY3jgYTjgbvjganmlrDjgZfjgYTjg4jjg5Tjg4Pjgq/jgavnp7vooYzjgZnjgovlj6/og73mgKfjgYzpq5jjgY/jgarjgorjgb7jgZlcIixcclxuICAgIH0sXHJcbiAgICBGcmVxdWVuY3lQZW5hbHR5OiB7XHJcbiAgICAgIFRpdGxlOiBcIumgu+W6puODmuODiuODq+ODhuOCoyAoZnJlcXVlbmN5X3BlbmFsdHkpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuWApOOBjOWkp+OBjeOBhOOBu+OBqee5sOOCiui/lOOBl+OBruWNmOiqnuOBjOa4m+WwkeOBl+OBvuOBmVwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIFN0b3JlOiB7XHJcbiAgICBEZWZhdWx0VG9waWM6IFwi5paw44GX44GE44OB44Oj44OD44OIXCIsXHJcbiAgICBCb3RIZWxsbzogXCLkvZXjgYvjgYrmiYvkvJ3jgYTjgafjgY3jgb7jgZnjgYvvvJ9cIixcclxuICAgIEVycm9yOiBcIuOCqOODqeODvOOBjOeZuueUn+OBl+OBvuOBl+OBn+OAguW+jOOBp+OCguOBhuS4gOW6puippuOBl+OBpuOBj+OBoOOBleOBhFwiLFxyXG4gICAgUHJvbXB0OiB7XHJcbiAgICAgIEhpc3Rvcnk6IChjb250ZW50OiBzdHJpbmcpID0+XHJcbiAgICAgICAgXCLjgZPjgozjga/liY3mj5DjgajjgZfjgabjga7lsaXmrbTjg4Hjg6Pjg4Pjg4jjga7opoHntITjgafjgZnvvJpcIiArIGNvbnRlbnQsXHJcbiAgICAgIFRvcGljOlxyXG4gICAgICAgIFwi44GT44Gu5paH44Gu57Ch5r2U44Gq44OG44O844Oe44KS5Zub44GL44KJ5LqU5paH5a2X44Gn6L+U44GX44Gm44GP44Gg44GV44GE44CC6Kqs5piO44CB5Y+l6Kqt54K544CB5oSf5ZiG6Kme44CB5L2Z6KiI44Gq44OG44Kt44K544OI44Gv5LiN6KaB44Gn44GZ44CC5aSq5a2X44KC5LiN6KaB44Gn44GZ44CC44OG44O844Oe44GM44Gq44GE5aC05ZCI44Gv44CM6ZuR6KuH44CN44Go6L+U44GX44Gm44GP44Gg44GV44GEXCIsXHJcbiAgICAgIFN1bW1hcml6ZTpcclxuICAgICAgICBcIuWvvuipseOBruWGheWuueOCkuewoea9lOOBq+imgee0hOOBl+OAgeW+jOe2muOBruOCs+ODs+ODhuOCreOCueODiOODl+ODreODs+ODl+ODiOOBqOOBl+OBpuS9v+eUqOOBl+OBvuOBmeOAgjIwMOaWh+Wtl+S7peWGheOBq+aKkeOBiOOBpuOBj+OBoOOBleOBhFwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIENvcHk6IHtcclxuICAgIFN1Y2Nlc3M6IFwi44Kv44Oq44OD44OX44Oc44O844OJ44Gr5pu444GN6L6844G/44G+44GX44GfXCIsXHJcbiAgICBGYWlsZWQ6IFwi44Kz44OU44O844Gr5aSx5pWX44GX44G+44GX44Gf44CC44Kv44Oq44OD44OX44Oc44O844OJ44Gu5qip6ZmQ44KS5LuY5LiO44GX44Gm44GP44Gg44GV44GEXCIsXHJcbiAgfSxcclxuICBEb3dubG9hZDoge1xyXG4gICAgU3VjY2VzczogXCLlhoXlrrnjgYzjg4Djgqbjg7Pjg63jg7zjg4njgZXjgozjgb7jgZfjgZ9cIixcclxuICAgIEZhaWxlZDogXCLjg4Djgqbjg7Pjg63jg7zjg4njgavlpLHmlZfjgZfjgb7jgZfjgZ9cIixcclxuICB9LFxyXG4gIENvbnRleHQ6IHtcclxuICAgIFRvYXN0OiAoeDogYW55KSA9PiBgJHt4fSDku7bjga7jg5fjg6rjgrvjg4Pjg4jjg5fjg63jg7Pjg5fjg4jjgYzlkKvjgb7jgozjgabjgYTjgb7jgZlgLFxyXG4gICAgRWRpdDogXCLnj77lnKjjga7lr77oqbHoqK3lrppcIixcclxuICAgIEFkZDogXCLlr77oqbHjgpLov73liqBcIixcclxuICAgIENsZWFyOiBcIuOCs+ODs+ODhuOCreOCueODiOOBjOOCr+ODquOCouOBleOCjOOBvuOBl+OBn1wiLFxyXG4gICAgUmV2ZXJ0OiBcIuOCs+ODs+ODhuOCreOCueODiOOCkuWFg+OBq+aIu+OBmVwiLFxyXG4gIH0sXHJcbiAgUGx1Z2luOiB7XHJcbiAgICBOYW1lOiBcIuODl+ODqeOCsOOCpOODs1wiLFxyXG4gIH0sXHJcbiAgRGlzY292ZXJ5OiB7XHJcbiAgICBOYW1lOiBcIueZuuimi1wiLFxyXG4gIH0sXHJcbiAgRmluZVR1bmVkOiB7XHJcbiAgICBTeXNtZXNzYWdlOiBcIuOBguOBquOBn+OBr+OCouOCt+OCueOCv+ODs+ODiOOBp+OBmVwiLFxyXG4gIH0sXHJcbiAgU2VhcmNoQ2hhdDoge1xyXG4gICAgTmFtZTogXCLmpJzntKJcIixcclxuICAgIFBhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwi44OB44Oj44OD44OI5bGl5q2044KS5qSc57SiXCIsXHJcbiAgICAgIFNlYXJjaDogXCLmpJzntKLjgq3jg7zjg6/jg7zjg4njgpLlhaXliptcIixcclxuICAgICAgTm9SZXN1bHQ6IFwi57WQ5p6c44GM6KaL44Gk44GL44KK44G+44Gb44KT44Gn44GX44GfXCIsXHJcbiAgICAgIE5vRGF0YTogXCLjg4fjg7zjgr/jgYzjgYLjgorjgb7jgZvjgpNcIixcclxuICAgICAgTG9hZGluZzogXCLoqq3jgb/ovrzjgb/kuK1cIixcclxuXHJcbiAgICAgIFN1YlRpdGxlOiAoY291bnQ6IG51bWJlcikgPT4gYCR7Y291bnR9IOS7tuOBrue1kOaenOOBjOimi+OBpOOBi+OCiuOBvuOBl+OBn2AsXHJcbiAgICB9LFxyXG4gICAgSXRlbToge1xyXG4gICAgICBWaWV3OiBcIuihqOekulwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIE1hc2s6IHtcclxuICAgIE5hbWU6IFwi44Oe44K544KvXCIsXHJcbiAgICBQYWdlOiB7XHJcbiAgICAgIFRpdGxlOiBcIuODl+ODquOCu+ODg+ODiOOCreODo+ODqeOCr+OCv+ODvOODnuOCueOCr1wiLFxyXG4gICAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50fSDku7bjga7jg5fjg6rjgrvjg4Pjg4jjgq3jg6Pjg6njgq/jgr/jg7zlrprnvqlgLFxyXG4gICAgICBTZWFyY2g6IFwi44Kt44Oj44Op44Kv44K/44O844Oe44K544Kv44KS5qSc57SiXCIsXHJcbiAgICAgIENyZWF0ZTogXCLmlrDopo/kvZzmiJBcIixcclxuICAgIH0sXHJcbiAgICBJdGVtOiB7XHJcbiAgICAgIEluZm86IChjb3VudDogbnVtYmVyKSA9PiBgJHtjb3VudH0g5Lu244Gu44OX44Oq44K744OD44OI5a++6Kmx44GM5ZCr44G+44KM44Gm44GE44G+44GZYCxcclxuICAgICAgQ2hhdDogXCLlr77oqbFcIixcclxuICAgICAgVmlldzogXCLooajnpLpcIixcclxuICAgICAgRWRpdDogXCLnt6jpm4ZcIixcclxuICAgICAgRGVsZXRlOiBcIuWJiumZpFwiLFxyXG4gICAgICBEZWxldGVDb25maXJtOiBcIuWJiumZpOOBl+OBpuOCguOCiOOCjeOBl+OBhOOBp+OBmeOBi++8n1wiLFxyXG4gICAgfSxcclxuICAgIEVkaXRNb2RhbDoge1xyXG4gICAgICBUaXRsZTogKHJlYWRvbmx5OiBib29sZWFuKSA9PlxyXG4gICAgICAgIGDjg5fjg6rjgrvjg4Pjg4jjg57jgrnjgq/jga7nt6jpm4YgJHtyZWFkb25seSA/IFwi77yI6Kqt44G/5Y+W44KK5bCC55So77yJXCIgOiBcIlwifWAsXHJcbiAgICAgIERvd25sb2FkOiBcIuODl+ODquOCu+ODg+ODiOOCkuODgOOCpuODs+ODreODvOODiVwiLFxyXG4gICAgICBDbG9uZTogXCLjg5fjg6rjgrvjg4Pjg4jjgpLjgq/jg63jg7zjg7NcIixcclxuICAgIH0sXHJcbiAgICBDb25maWc6IHtcclxuICAgICAgQXZhdGFyOiBcIuOCreODo+ODqeOCr+OCv+ODvOOCouODkOOCv+ODvFwiLFxyXG4gICAgICBOYW1lOiBcIuOCreODo+ODqeOCr+OCv+ODvOWQjVwiLFxyXG4gICAgICBTeW5jOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi44Kw44Ot44O844OQ44Or6Kit5a6a44KS5L2/55SoXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi54++5Zyo44Gu5a++6Kmx44Gn44Kw44Ot44O844OQ44Or44Oi44OH44Or6Kit5a6a44KS5L2/55So44GZ44KL44GL44Gp44GG44GLXCIsXHJcbiAgICAgICAgQ29uZmlybTpcclxuICAgICAgICAgIFwi54++5Zyo44Gu5a++6Kmx44Gu44Kr44K544K/44Og6Kit5a6a44GM6Ieq5YuV55qE44Gr5LiK5pu444GN44GV44KM44G+44GZ44CC44Kw44Ot44O844OQ44Or6Kit5a6a44KS5pyJ5Yq544Gr44GX44Gm44KC44KI44KN44GX44GE44Gn44GZ44GL77yfXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEhpZGVDb250ZXh0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwi44OX44Oq44K744OD44OI5a++6Kmx44KS6Z2e6KGo56S6XCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIumdnuihqOekuuOBq+OBmeOCi+OBqOOAgeODl+ODquOCu+ODg+ODiOWvvuipseOBr+ODgeODo+ODg+ODiOeUu+mdouOBq+ihqOekuuOBleOCjOOBvuOBm+OCk1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBTaGFyZToge1xyXG4gICAgICAgIFRpdGxlOiBcIuOBk+OBruODnuOCueOCr+OCkuWFseaciVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIuOBk+OBruODnuOCueOCr+OBruebtOODquODs+OCr+OCkueUn+aIkFwiLFxyXG4gICAgICAgIEFjdGlvbjogXCLjg6rjg7Pjgq/jgpLjgrPjg5Tjg7xcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBOZXdDaGF0OiB7XHJcbiAgICBSZXR1cm46IFwi5oi744KLXCIsXHJcbiAgICBTa2lwOiBcIuebtOaOpemWi+Wni1wiLFxyXG4gICAgTm90U2hvdzogXCLku4rlvozooajnpLrjgZfjgarjgYRcIixcclxuICAgIENvbmZpcm1Ob1Nob3c6XHJcbiAgICAgIFwi54Sh5Yq544Gr44GX44Gm44KC44KI44KN44GX44GE44Gn44GZ44GL77yf54Sh5Yq544Gr44GX44Gf5b6M44CB6Kit5a6a44Gn44GE44Gk44Gn44KC5YaN5bqm5pyJ5Yq544Gr44Gn44GN44G+44GZ44CCXCIsXHJcbiAgICBUaXRsZTogXCLjg57jgrnjgq/jgpLpgbjmip5cIixcclxuICAgIFN1YlRpdGxlOiBcIuS7iuOBmeOBkOWni+OCgeOCiOOBhuOAgeODnuOCueOCr+OBruiDjOW+jOOBq+OBguOCi+mtguOBqOaAneiAg+OBruihneeqgVwiLFxyXG4gICAgTW9yZTogXCLjgZnjgbnjgabooajnpLpcIixcclxuICB9LFxyXG5cclxuICBVUkxDb21tYW5kOiB7XHJcbiAgICBDb2RlOiBcIuODquODs+OCr+OBq+OCouOCr+OCu+OCueOCs+ODvOODieOBjOWQq+OBvuOCjOOBpuOBhOOBvuOBmeOAguiHquWLleWFpeWKm+OBl+OBvuOBmeOBi++8n1wiLFxyXG4gICAgU2V0dGluZ3M6IFwi44Oq44Oz44Kv44Gr44OX44Oq44K744OD44OI6Kit5a6a44GM5ZCr44G+44KM44Gm44GE44G+44GZ44CC6Ieq5YuV5YWl5Yqb44GX44G+44GZ44GL77yfXCIsXHJcbiAgfSxcclxuXHJcbiAgVUk6IHtcclxuICAgIENvbmZpcm06IFwi56K66KqNXCIsXHJcbiAgICBDYW5jZWw6IFwi44Kt44Oj44Oz44K744OrXCIsXHJcbiAgICBDbG9zZTogXCLplonjgZjjgotcIixcclxuICAgIENyZWF0ZTogXCLmlrDopo/kvZzmiJBcIixcclxuICAgIEVkaXQ6IFwi57eo6ZuGXCIsXHJcbiAgICBFeHBvcnQ6IFwi44Ko44Kv44K544Od44O844OIXCIsXHJcbiAgICBJbXBvcnQ6IFwi44Kk44Oz44Od44O844OIXCIsXHJcbiAgICBTeW5jOiBcIuWQjOacn1wiLFxyXG4gICAgQ29uZmlnOiBcIuioreWumlwiLFxyXG4gIH0sXHJcblxyXG4gIEV4cG9ydGVyOiB7XHJcbiAgICBEZXNjcmlwdGlvbjoge1xyXG4gICAgICBUaXRsZTogXCLjgrPjg7Pjg4bjgq3jgrnjg4jjgpLjgq/jg6rjgqLjgZfjgZ/lvozjga7jg6Hjg4Pjgrvjg7zjgrjjga7jgb/jgYzooajnpLrjgZXjgozjgb7jgZlcIixcclxuICAgIH0sXHJcbiAgICBNb2RlbDogXCLjg6Ljg4fjg6tcIixcclxuICAgIE1lc3NhZ2VzOiBcIuODoeODg+OCu+ODvOOCuFwiLFxyXG4gICAgVG9waWM6IFwi44OG44O844OeXCIsXHJcbiAgICBUaW1lOiBcIuaZgumWk1wiLFxyXG4gIH0sXHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBqcDtcclxuIl0sIm5hbWVzIjpbIlN1Ym1pdEtleSIsImdldENsaWVudENvbmZpZyIsIlNBQVNfQ0hBVF9VVE1fVVJMIiwiaXNBcHAiLCJqcCIsIldJUCIsIkVycm9yIiwiVW5hdXRob3JpemVkIiwiQXV0aCIsIlRpdGxlIiwiVGlwcyIsIlN1YlRpcHMiLCJJbnB1dCIsIkNvbmZpcm0iLCJMYXRlciIsIlJldHVybiIsIlNhYXNUaXBzIiwiVG9wVGlwcyIsIkNoYXRJdGVtIiwiQ2hhdEl0ZW1Db3VudCIsImNvdW50IiwiQ2hhdCIsIlN1YlRpdGxlIiwiRWRpdE1lc3NhZ2UiLCJUb3BpYyIsIkFjdGlvbnMiLCJDaGF0TGlzdCIsIkNvbXByZXNzZWRIaXN0b3J5IiwiRXhwb3J0IiwiQ29weSIsIlN0b3AiLCJSZXRyeSIsIlBpbiIsIlBpblRvYXN0Q29udGVudCIsIlBpblRvYXN0QWN0aW9uIiwiRGVsZXRlIiwiRWRpdCIsIlJlZnJlc2hUaXRsZSIsIlJlZnJlc2hUb2FzdCIsIkNvbW1hbmRzIiwibmV3IiwibmV3bSIsIm5leHQiLCJwcmV2IiwiY2xlYXIiLCJkZWwiLCJJbnB1dEFjdGlvbnMiLCJUb0JvdHRvbSIsIlRoZW1lIiwiYXV0byIsImxpZ2h0IiwiZGFyayIsIlByb21wdCIsIk1hc2tzIiwiQ2xlYXIiLCJTZXR0aW5ncyIsIlVwbG9hZEltYWdlIiwiUmVuYW1lIiwiVHlwaW5nIiwic3VibWl0S2V5IiwiaW5wdXRIaW50cyIsIlN0cmluZyIsIkVudGVyIiwiU2VuZCIsIkNvbmZpZyIsIlJlc2V0IiwiU2F2ZUFzIiwiSXNDb250ZXh0IiwiRG93bmxvYWQiLCJTaGFyZSIsIk1lc3NhZ2VGcm9tWW91IiwiTWVzc2FnZUZyb21DaGF0R1BUIiwiRm9ybWF0IiwiSW5jbHVkZUNvbnRleHQiLCJTdGVwcyIsIlNlbGVjdCIsIlByZXZpZXciLCJJbWFnZSIsIlRvYXN0IiwiTW9kYWwiLCJTZWFyY2giLCJBbGwiLCJMYXRlc3QiLCJNZW1vcnkiLCJFbXB0eUNvbnRlbnQiLCJSZXNldENvbmZpcm0iLCJIb21lIiwiTmV3Q2hhdCIsIkRlbGV0ZUNoYXQiLCJEZWxldGVUb2FzdCIsIlJldmVydCIsIkRhbmdlciIsIkFjdGlvbiIsIkxhbmciLCJOYW1lIiwiQXZhdGFyIiwiRm9udFNpemUiLCJGb250RmFtaWx5IiwiUGxhY2Vob2xkZXIiLCJJbmplY3RTeXN0ZW1Qcm9tcHRzIiwiSW5wdXRUZW1wbGF0ZSIsIlVwZGF0ZSIsIlZlcnNpb24iLCJ4IiwiSXNMYXRlc3QiLCJDaGVja1VwZGF0ZSIsIklzQ2hlY2tpbmciLCJGb3VuZFVwZGF0ZSIsIkdvVG9VcGRhdGUiLCJTZW5kS2V5IiwiVGlnaHRCb3JkZXIiLCJTZW5kUHJldmlld0J1YmJsZSIsIkF1dG9HZW5lcmF0ZVRpdGxlIiwiU3luYyIsIkNsb3VkU3RhdGUiLCJOb3RTeW5jWWV0IiwiU3VjY2VzcyIsIkZhaWwiLCJDaGVjayIsIlN5bmNUeXBlIiwiUHJveHkiLCJQcm94eVVybCIsIldlYkRhdiIsIkVuZHBvaW50IiwiVXNlck5hbWUiLCJQYXNzd29yZCIsIlVwU3Rhc2giLCJMb2NhbFN0YXRlIiwiT3ZlcnZpZXciLCJvdmVydmlldyIsImNoYXQiLCJtZXNzYWdlIiwicHJvbXB0IiwibWFzayIsIkltcG9ydEZhaWxlZCIsIk1hc2siLCJTcGxhc2giLCJCdWlsdGluIiwiRGlzYWJsZSIsIkxpc3QiLCJMaXN0Q291bnQiLCJidWlsdGluIiwiY3VzdG9tIiwiQWRkIiwiRWRpdE1vZGFsIiwiSGlzdG9yeUNvdW50IiwiQ29tcHJlc3NUaHJlc2hvbGQiLCJVc2FnZSIsInVzZWQiLCJ0b3RhbCIsIk5vQWNjZXNzIiwiQWNjZXNzIiwiU2Fhc1N0YXJ0IiwiTGFiZWwiLCJDaGF0Tm93IiwiQWNjZXNzQ29kZSIsIkN1c3RvbUVuZHBvaW50IiwiUHJvdmlkZXIiLCJPcGVuQUkiLCJBcGlLZXkiLCJBenVyZSIsIkFwaVZlcmlvbiIsIkFudGhyb3BpYyIsIkdvb2dsZSIsIkFwaVZlcnNpb24iLCJHb29nbGVTYWZldHlTZXR0aW5ncyIsIkJhaWR1IiwiU2VjcmV0S2V5IiwiQnl0ZURhbmNlIiwiQWxpYmFiYSIsIkN1c3RvbU1vZGVsIiwiTW9kZWwiLCJDb21wcmVzc01vZGVsIiwiVGVtcGVyYXR1cmUiLCJUb3BQIiwiTWF4VG9rZW5zIiwiUHJlc2VuY2VQZW5hbHR5IiwiRnJlcXVlbmN5UGVuYWx0eSIsIlN0b3JlIiwiRGVmYXVsdFRvcGljIiwiQm90SGVsbG8iLCJIaXN0b3J5IiwiY29udGVudCIsIlN1bW1hcml6ZSIsIkZhaWxlZCIsIkNvbnRleHQiLCJQbHVnaW4iLCJEaXNjb3ZlcnkiLCJGaW5lVHVuZWQiLCJTeXNtZXNzYWdlIiwiU2VhcmNoQ2hhdCIsIlBhZ2UiLCJOb1Jlc3VsdCIsIk5vRGF0YSIsIkxvYWRpbmciLCJJdGVtIiwiVmlldyIsIkNyZWF0ZSIsIkluZm8iLCJEZWxldGVDb25maXJtIiwicmVhZG9ubHkiLCJDbG9uZSIsIkhpZGVDb250ZXh0IiwiU2tpcCIsIk5vdFNob3ciLCJDb25maXJtTm9TaG93IiwiTW9yZSIsIlVSTENvbW1hbmQiLCJDb2RlIiwiVUkiLCJDYW5jZWwiLCJDbG9zZSIsIkltcG9ydCIsIkV4cG9ydGVyIiwiRGVzY3JpcHRpb24iLCJNZXNzYWdlcyIsIlRpbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/locales/jp.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/locales/ko.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/locales/ko.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _store_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../store/config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n\n\n\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_1__.getClientConfig)()?.isApp;\nconst ko = {\n WIP: \"곧 출시 예정...\",\n Error: {\n Unauthorized: isApp ? `😆 대화 중 문제가 발생했습니다, 걱정하지 마세요:\r\n \\\\ 1️⃣ 제로 구성으로 시작하고 싶다면, [여기를 클릭하여 즉시 대화를 시작하세요 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\\\ 2️⃣ 자신의 OpenAI 리소스를 사용하고 싶다면, [여기를 클릭하여](/#/settings) 설정을 수정하세요 ⚙️` : `😆 대화 중 문제가 발생했습니다, 걱정하지 마세요:\r\n \\ 1️⃣ 제로 구성으로 시작하고 싶다면, [여기를 클릭하여 즉시 대화를 시작하세요 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\ 2️⃣ 개인 배포 버전을 사용하고 있다면, [여기를 클릭하여](/#/auth) 접근 키를 입력하세요 🔑\r\n \\ 3️⃣ 자신의 OpenAI 리소스를 사용하고 싶다면, [여기를 클릭하여](/#/settings) 설정을 수정하세요 ⚙️\r\n `\n },\n Auth: {\n Title: \"비밀번호 필요\",\n Tips: \"관리자가 비밀번호 인증을 활성화했습니다. 아래에 접근 코드를 입력하십시오.\",\n SubTips: \"또는 OpenAI 또는 Google API 키를 입력하십시오.\",\n Input: \"여기에 접근 코드를 입력하십시오.\",\n Confirm: \"확인\",\n Later: \"나중에 하기\",\n Return: \"돌아가기\",\n SaasTips: \"설정이 너무 복잡합니다. 즉시 사용하고 싶습니다.\",\n TopTips: \"\\uD83E\\uDD73 NextChat AI 출시 기념 할인, 지금 OpenAI o1, GPT-4o, Claude-3.5 및 최신 대형 모델을 해제하세요\"\n },\n ChatItem: {\n ChatItemCount: (count)=>`${count} 개의 대화`\n },\n Chat: {\n SubTitle: (count)=>`총 ${count} 개의 대화`,\n EditMessage: {\n Title: \"메시지 기록 편집\",\n Topic: {\n Title: \"채팅 주제\",\n SubTitle: \"현재 채팅 주제 변경\"\n }\n },\n Actions: {\n ChatList: \"메시지 목록 보기\",\n CompressedHistory: \"압축된 히스토리 프롬프트 보기\",\n Export: \"채팅 기록 내보내기\",\n Copy: \"복사\",\n Stop: \"정지\",\n Retry: \"다시 시도\",\n Pin: \"고정\",\n PinToastContent: \"1 개의 대화를 프롬프트에 고정했습니다.\",\n PinToastAction: \"보기\",\n Delete: \"삭제\",\n Edit: \"편집\",\n RefreshTitle: \"제목 새로고침\",\n RefreshToast: \"제목 새로고침 요청이 전송되었습니다\"\n },\n Commands: {\n new: \"새 채팅\",\n newm: \"마스크에서 새 채팅\",\n next: \"다음 채팅\",\n prev: \"이전 채팅\",\n clear: \"컨텍스트 지우기\",\n del: \"채팅 삭제\"\n },\n InputActions: {\n Stop: \"응답 중지\",\n ToBottom: \"최신으로 스크롤\",\n Theme: {\n auto: \"자동 테마\",\n light: \"라이트 모드\",\n dark: \"다크 모드\"\n },\n Prompt: \"빠른 명령\",\n Masks: \"모든 마스크\",\n Clear: \"채팅 지우기\",\n Settings: \"채팅 설정\",\n UploadImage: \"이미지 업로드\"\n },\n Rename: \"채팅 이름 변경\",\n Typing: \"입력 중…\",\n Input: (submitKey)=>{\n var inputHints = `${submitKey} 전송`;\n if (submitKey === String(_store_config__WEBPACK_IMPORTED_MODULE_0__.SubmitKey.Enter)) {\n inputHints += \",Shift + Enter 줄 바꿈\";\n }\n return inputHints + \",/ 자동 완성,: 명령어 입력\";\n },\n Send: \"전송\",\n Config: {\n Reset: \"기억 지우기\",\n SaveAs: \"마스크로 저장\"\n },\n IsContext: \"프롬프트 설정\"\n },\n Export: {\n Title: \"채팅 기록 공유\",\n Copy: \"모두 복사\",\n Download: \"파일 다운로드\",\n Share: \"ShareGPT에 공유\",\n MessageFromYou: \"사용자\",\n MessageFromChatGPT: \"ChatGPT\",\n Format: {\n Title: \"내보내기 형식\",\n SubTitle: \"Markdown 텍스트 또는 PNG 이미지로 내보낼 수 있습니다.\"\n },\n IncludeContext: {\n Title: \"프롬프트 컨텍스트 포함\",\n SubTitle: \"메시지에 프롬프트 컨텍스트를 표시할지 여부\"\n },\n Steps: {\n Select: \"선택\",\n Preview: \"미리보기\"\n },\n Image: {\n Toast: \"스크린샷 생성 중\",\n Modal: \"길게 누르거나 오른쪽 클릭하여 이미지를 저장하십시오.\"\n }\n },\n Select: {\n Search: \"메시지 검색\",\n All: \"모두 선택\",\n Latest: \"최근 몇 개\",\n Clear: \"선택 지우기\"\n },\n Memory: {\n Title: \"기록 요약\",\n EmptyContent: \"대화 내용이 너무 짧아 요약할 필요 없음\",\n Send: \"자동으로 채팅 기록을 압축하여 컨텍스트로 전송\",\n Copy: \"요약 복사\",\n Reset: \"[사용되지 않음]\",\n ResetConfirm: \"기록 요약을 지우겠습니까?\"\n },\n Home: {\n NewChat: \"새 채팅\",\n DeleteChat: \"선택한 대화를 삭제하시겠습니까?\",\n DeleteToast: \"대화가 삭제되었습니다.\",\n Revert: \"되돌리기\"\n },\n Settings: {\n Title: \"설정\",\n SubTitle: \"모든 설정 옵션\",\n Danger: {\n Reset: {\n Title: \"모든 설정 초기화\",\n SubTitle: \"모든 설정 항목을 기본값으로 초기화\",\n Action: \"지금 초기화\",\n Confirm: \"모든 설정을 초기화하시겠습니까?\"\n },\n Clear: {\n Title: \"모든 데이터 지우기\",\n SubTitle: \"모든 채팅 및 설정 데이터 지우기\",\n Action: \"지금 지우기\",\n Confirm: \"모든 채팅 및 설정 데이터를 지우시겠습니까?\"\n }\n },\n Lang: {\n Name: \"Language\",\n All: \"모든 언어\"\n },\n Avatar: \"아바타\",\n FontSize: {\n Title: \"글꼴 크기\",\n SubTitle: \"채팅 내용의 글꼴 크기\"\n },\n FontFamily: {\n Title: \"채팅 폰트\",\n SubTitle: \"채팅 내용의 폰트, 비워 두면 글로벌 기본 폰트를 적용\",\n Placeholder: \"폰트 이름\"\n },\n InjectSystemPrompts: {\n Title: \"시스템 수준 프롬프트 삽입\",\n SubTitle: \"각 요청 메시지 목록의 시작 부분에 ChatGPT 시스템 프롬프트를 강제로 추가\"\n },\n InputTemplate: {\n Title: \"사용자 입력 전처리\",\n SubTitle: \"사용자의 최신 메시지가 이 템플릿에 채워집니다.\"\n },\n Update: {\n Version: (x)=>`현재 버전: ${x}`,\n IsLatest: \"최신 버전입니다.\",\n CheckUpdate: \"업데이트 확인\",\n IsChecking: \"업데이트 확인 중...\",\n FoundUpdate: (x)=>`새 버전 발견: ${x}`,\n GoToUpdate: \"업데이트로 이동\"\n },\n SendKey: \"전송 키\",\n Theme: \"테마\",\n TightBorder: \"테두리 없는 모드\",\n SendPreviewBubble: {\n Title: \"미리보기 버블\",\n SubTitle: \"미리보기 버블에서 Markdown 콘텐츠 미리보기\"\n },\n AutoGenerateTitle: {\n Title: \"제목 자동 생성\",\n SubTitle: \"대화 내용에 따라 적절한 제목 생성\"\n },\n Sync: {\n CloudState: \"클라우드 데이터\",\n NotSyncYet: \"아직 동기화되지 않았습니다.\",\n Success: \"동기화 성공\",\n Fail: \"동기화 실패\",\n Config: {\n Modal: {\n Title: \"클라우드 동기화 구성\",\n Check: \"사용 가능성 확인\"\n },\n SyncType: {\n Title: \"동기화 유형\",\n SubTitle: \"선호하는 동기화 서버 선택\"\n },\n Proxy: {\n Title: \"프록시 사용\",\n SubTitle: \"브라우저에서 동기화할 때 프록시를 활성화하여 교차 출처 제한을 피해야 함\"\n },\n ProxyUrl: {\n Title: \"프록시 주소\",\n SubTitle: \"이 프로젝트에서 제공하는 교차 출처 프록시만 해당\"\n },\n WebDav: {\n Endpoint: \"WebDAV 주소\",\n UserName: \"사용자 이름\",\n Password: \"비밀번호\"\n },\n UpStash: {\n Endpoint: \"UpStash Redis REST URL\",\n UserName: \"백업 이름\",\n Password: \"UpStash Redis REST Token\"\n }\n },\n LocalState: \"로컬 데이터\",\n Overview: (overview)=>{\n return `${overview.chat} 회의 대화, ${overview.message} 개의 메시지, ${overview.prompt} 개의 프롬프트, ${overview.mask} 개의 마스크`;\n },\n ImportFailed: \"가져오기 실패\"\n },\n Mask: {\n Splash: {\n Title: \"마스크 시작 페이지\",\n SubTitle: \"새 채팅 시 마스크 시작 페이지 표시\"\n },\n Builtin: {\n Title: \"내장 마스크 숨기기\",\n SubTitle: \"모든 마스크 목록에서 내장 마스크 숨기기\"\n }\n },\n Prompt: {\n Disable: {\n Title: \"프롬프트 자동 완성 비활성화\",\n SubTitle: \"입력 상자 시작 부분에 / 를 입력하여 자동 완성 활성화\"\n },\n List: \"사용자 정의 프롬프트 목록\",\n ListCount: (builtin, custom)=>`내장 ${builtin} 개, 사용자 정의 ${custom} 개`,\n Edit: \"편집\",\n Modal: {\n Title: \"프롬프트 목록\",\n Add: \"새로 만들기\",\n Search: \"프롬프트 검색\"\n },\n EditModal: {\n Title: \"프롬프트 편집\"\n }\n },\n HistoryCount: {\n Title: \"히스토리 메시지 수\",\n SubTitle: \"각 요청에 포함된 히스토리 메시지 수\"\n },\n CompressThreshold: {\n Title: \"히스토리 메시지 길이 압축 임계값\",\n SubTitle: \"압축되지 않은 히스토리 메시지가 이 값을 초과하면 압축 수행\"\n },\n Usage: {\n Title: \"잔액 조회\",\n SubTitle (used, total) {\n return `이번 달 사용된 금액: $${used},총 구독 금액: $${total}`;\n },\n IsChecking: \"확인 중...\",\n Check: \"다시 확인\",\n NoAccess: \"잔액을 보려면 API 키 또는 접근 비밀번호를 입력하십시오.\"\n },\n Access: {\n SaasStart: {\n Title: \"NextChat AI 사용하기\",\n Label: \"(가장 비용 효율적인 솔루션)\",\n SubTitle: \"NextChat에 의해 공식적으로 유지 관리되며, 제로 구성으로 즉시 사용할 수 있으며, OpenAI o1, GPT-4o, Claude-3.5와 같은 최신 대형 모델을 지원합니다\",\n ChatNow: \"지금 채팅하기\"\n },\n AccessCode: {\n Title: \"접근 비밀번호\",\n SubTitle: \"관리자가 암호화된 접근을 활성화했습니다.\",\n Placeholder: \"접근 비밀번호를 입력하십시오.\"\n },\n CustomEndpoint: {\n Title: \"커스텀 엔드포인트\",\n SubTitle: \"커스텀 Azure 또는 OpenAI 서비스를 사용할지 여부\"\n },\n Provider: {\n Title: \"모델 서비스 제공업체\",\n SubTitle: \"다른 서비스 제공업체로 전환\"\n },\n OpenAI: {\n ApiKey: {\n Title: \"API 키\",\n SubTitle: \"커스텀 OpenAI 키를 사용하여 비밀번호 접근 제한 우회\",\n Placeholder: \"OpenAI API 키\"\n },\n Endpoint: {\n Title: \"엔드포인트 주소\",\n SubTitle: \"기본 주소 외에 http(s)://을 포함해야 함\"\n }\n },\n Azure: {\n ApiKey: {\n Title: \"엔드포인트 키\",\n SubTitle: \"커스텀 Azure 키를 사용하여 비밀번호 접근 제한 우회\",\n Placeholder: \"Azure API 키\"\n },\n Endpoint: {\n Title: \"엔드포인트 주소\",\n SubTitle: \"예: \"\n },\n ApiVerion: {\n Title: \"API 버전 (azure api version)\",\n SubTitle: \"특정 부분 버전 선택\"\n }\n },\n Anthropic: {\n ApiKey: {\n Title: \"엔드포인트 키\",\n SubTitle: \"커스텀 Anthropic 키를 사용하여 비밀번호 접근 제한 우회\",\n Placeholder: \"Anthropic API 키\"\n },\n Endpoint: {\n Title: \"엔드포인트 주소\",\n SubTitle: \"예: \"\n },\n ApiVerion: {\n Title: \"API 버전 (claude api version)\",\n SubTitle: \"특정 API 버전 입력\"\n }\n },\n Google: {\n ApiKey: {\n Title: \"API 키\",\n SubTitle: \"Google AI에서 API 키를 가져오세요.\",\n Placeholder: \"Google AI Studio API 키 입력\"\n },\n Endpoint: {\n Title: \"엔드포인트 주소\",\n SubTitle: \"예: \"\n },\n ApiVersion: {\n Title: \"API 버전 (gemini-pro 전용)\",\n SubTitle: \"특정 API 버전 선택\"\n },\n GoogleSafetySettings: {\n Title: \"Google 안전 필터링 수준\",\n SubTitle: \"콘텐츠 필터링 수준 설정\"\n }\n },\n Baidu: {\n ApiKey: {\n Title: \"API 키\",\n SubTitle: \"커스텀 Baidu API 키 사용\",\n Placeholder: \"Baidu API 키\"\n },\n SecretKey: {\n Title: \"Secret 키\",\n SubTitle: \"커스텀 Baidu Secret 키 사용\",\n Placeholder: \"Baidu Secret 키\"\n },\n Endpoint: {\n Title: \"엔드포인트 주소\",\n SubTitle: \"커스터마이즈는 .env에서 설정\"\n }\n },\n ByteDance: {\n ApiKey: {\n Title: \"엔드포인트 키\",\n SubTitle: \"커스텀 ByteDance API 키 사용\",\n Placeholder: \"ByteDance API 키\"\n },\n Endpoint: {\n Title: \"엔드포인트 주소\",\n SubTitle: \"예: \"\n }\n },\n Alibaba: {\n ApiKey: {\n Title: \"엔드포인트 키\",\n SubTitle: \"커스텀 Alibaba Cloud API 키 사용\",\n Placeholder: \"Alibaba Cloud API 키\"\n },\n Endpoint: {\n Title: \"엔드포인트 주소\",\n SubTitle: \"예: \"\n }\n },\n CustomModel: {\n Title: \"커스텀 모델 이름\",\n SubTitle: \"커스텀 모델 옵션 추가, 영어 쉼표로 구분\"\n }\n },\n Model: \"모델 (model)\",\n CompressModel: {\n Title: \"압축 모델\",\n SubTitle: \"기록을 압축하는 데 사용되는 모델\"\n },\n Temperature: {\n Title: \"무작위성 (temperature)\",\n SubTitle: \"값이 클수록 응답이 더 무작위적\"\n },\n TopP: {\n Title: \"탑 P 샘플링 (top_p)\",\n SubTitle: \"무작위성과 유사하지만, 무작위성과 함께 변경하지 마십시오.\"\n },\n MaxTokens: {\n Title: \"단일 응답 제한 (max_tokens)\",\n SubTitle: \"단일 상호작용에 사용되는 최대 토큰 수\"\n },\n PresencePenalty: {\n Title: \"주제 신선도 (presence_penalty)\",\n SubTitle: \"값이 클수록 새로운 주제로 확장할 가능성이 높음\"\n },\n FrequencyPenalty: {\n Title: \"빈도 벌점 (frequency_penalty)\",\n SubTitle: \"값이 클수록 중복 단어 감소 가능성 높음\"\n }\n },\n Store: {\n DefaultTopic: \"새 채팅\",\n BotHello: \"무엇을 도와드릴까요?\",\n Error: \"오류가 발생했습니다. 나중에 다시 시도해 주세요.\",\n Prompt: {\n History: (content)=>\"이것은 이전 채팅 요약입니다: \" + content,\n Topic: \"네 글자에서 다섯 글자로 이 문장의 간략한 주제를 반환하세요. 설명이나 문장 부호, 어미, 불필요한 텍스트, 굵은 글씨는 필요 없습니다. 주제가 없다면 '잡담'이라고만 반환하세요.\",\n Summarize: \"대화 내용을 간략히 요약하여 후속 컨텍스트 프롬프트로 사용하세요. 200자 이내로 작성하세요.\"\n }\n },\n Copy: {\n Success: \"클립보드에 복사되었습니다.\",\n Failed: \"복사 실패, 클립보드 권한을 부여해주세요.\"\n },\n Download: {\n Success: \"내용이 디렉토리에 다운로드되었습니다.\",\n Failed: \"다운로드 실패.\"\n },\n Context: {\n Toast: (x)=>` ${x} 개의 프리셋 프롬프트 포함됨`,\n Edit: \"현재 대화 설정\",\n Add: \"대화 추가\",\n Clear: \"컨텍스트가 지워졌습니다.\",\n Revert: \"컨텍스트 복원\"\n },\n Plugin: {\n Name: \"플러그인\"\n },\n FineTuned: {\n Sysmessage: \"당신은 보조자입니다.\"\n },\n SearchChat: {\n Name: \"검색\",\n Page: {\n Title: \"채팅 기록 검색\",\n Search: \"검색어 입력\",\n NoResult: \"결과를 찾을 수 없습니다\",\n NoData: \"데이터가 없습니다\",\n Loading: \"로딩 중\",\n SubTitle: (count)=>`${count}개의 결과를 찾았습니다`\n },\n Item: {\n View: \"보기\"\n }\n },\n Mask: {\n Name: \"마스크\",\n Page: {\n Title: \"프리셋 캐릭터 마스크\",\n SubTitle: (count)=>`${count} 개의 프리셋 캐릭터 정의`,\n Search: \"캐릭터 마스크 검색\",\n Create: \"새로 만들기\"\n },\n Item: {\n Info: (count)=>` ${count} 개의 프리셋 대화 포함`,\n Chat: \"대화\",\n View: \"보기\",\n Edit: \"편집\",\n Delete: \"삭제\",\n DeleteConfirm: \"삭제를 확인하시겠습니까?\"\n },\n EditModal: {\n Title: (readonly)=>`프리셋 마스크 편집 ${readonly ? \"(읽기 전용)\" : \"\"}`,\n Download: \"프리셋 다운로드\",\n Clone: \"프리셋 복제\"\n },\n Config: {\n Avatar: \"캐릭터 아바타\",\n Name: \"캐릭터 이름\",\n Sync: {\n Title: \"전역 설정 사용\",\n SubTitle: \"현재 대화가 전역 모델 설정을 사용하는지 여부\",\n Confirm: \"현재 대화의 사용자 정의 설정이 자동으로 덮어쓰여질 것입니다. 전역 설정을 활성화하시겠습니까?\"\n },\n HideContext: {\n Title: \"프리셋 대화 숨기기\",\n SubTitle: \"숨기면 프리셋 대화가 채팅 화면에 나타나지 않습니다.\"\n },\n Share: {\n Title: \"이 마스크 공유하기\",\n SubTitle: \"이 마스크의 직접 링크 생성\",\n Action: \"링크 복사\"\n }\n }\n },\n NewChat: {\n Return: \"돌아가기\",\n Skip: \"바로 시작\",\n NotShow: \"다시 보지 않기\",\n ConfirmNoShow: \"비활성화하시겠습니까? 비활성화 후 언제든지 설정에서 다시 활성화할 수 있습니다.\",\n Title: \"마스크 선택\",\n SubTitle: \"지금 시작하여 마스크 뒤의 사고와 교류해보세요.\",\n More: \"모두 보기\"\n },\n URLCommand: {\n Code: \"링크에 액세스 코드가 포함되어 있습니다. 자동으로 입력하시겠습니까?\",\n Settings: \"링크에 프리셋 설정이 포함되어 있습니다. 자동으로 입력하시겠습니까?\"\n },\n UI: {\n Confirm: \"확인\",\n Cancel: \"취소\",\n Close: \"닫기\",\n Create: \"새로 만들기\",\n Edit: \"편집\",\n Export: \"내보내기\",\n Import: \"가져오기\",\n Sync: \"동기화\",\n Config: \"구성\"\n },\n Exporter: {\n Description: {\n Title: \"컨텍스트가 지워진 후의 메시지만 표시됩니다.\"\n },\n Model: \"모델\",\n Messages: \"메시지\",\n Topic: \"주제\",\n Time: \"시간\"\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ko);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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UjtJQUVBQyxZQUFZO1FBQ1ZDLE1BQU07UUFDTnhKLFVBQ0U7SUFDSjtJQUVBeUosSUFBSTtRQUNGbk0sU0FBUztRQUNUb00sUUFBUTtRQUNSQyxPQUFPO1FBQ1BkLFFBQVE7UUFDUmhLLE1BQU07UUFDTlIsUUFBUTtRQUNSdUwsUUFBUTtRQUNSbEcsTUFBTTtRQUNOakQsUUFBUTtJQUNWO0lBQ0FvSixVQUFVO1FBQ1JDLGFBQWE7WUFDWDVNLE9BQU87UUFDVDtRQUNBa0ssT0FBTztRQUNQMkMsVUFBVTtRQUNWOUwsT0FBTztRQUNQK0wsTUFBTTtJQUNSO0FBQ0Y7QUFFQSxpRUFBZW5OLEVBQUVBLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9sb2NhbGVzL2tvLnRzP2NjZTUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3VibWl0S2V5IH0gZnJvbSBcIi4uL3N0b3JlL2NvbmZpZ1wiO1xyXG5pbXBvcnQgdHlwZSB7IFBhcnRpYWxMb2NhbGVUeXBlIH0gZnJvbSBcIi4vaW5kZXhcIjtcclxuaW1wb3J0IHsgZ2V0Q2xpZW50Q29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9jbGllbnRcIjtcclxuaW1wb3J0IHsgU0FBU19DSEFUX1VUTV9VUkwgfSBmcm9tIFwiQC9hcHAvY29uc3RhbnRcIjtcclxuY29uc3QgaXNBcHAgPSAhIWdldENsaWVudENvbmZpZygpPy5pc0FwcDtcclxuXHJcbmNvbnN0IGtvOiBQYXJ0aWFsTG9jYWxlVHlwZSA9IHtcclxuICBXSVA6IFwi6rOnIOy2nOyLnCDsmIjsoJUuLi5cIixcclxuICBFcnJvcjoge1xyXG4gICAgVW5hdXRob3JpemVkOiBpc0FwcFxyXG4gICAgICA/IGDwn5iGIOuMgO2ZlCDspJEg66y47KCc6rCAIOuwnOyDne2WiOyKteuLiOuLpCwg6rGx7KCV7ZWY7KeAIOuniOyEuOyalDpcclxuICAgIFxcXFwgMe+4j+KDoyDsoJzroZwg6rWs7ISx7Jy866GcIOyLnOyeke2VmOqzoCDsi7bri6TrqbQsIFvsl6zquLDrpbwg7YG066at7ZWY7JesIOymieyLnCDrjIDtmZTrpbwg7Iuc7J6R7ZWY7IS47JqUIPCfmoBdKCR7U0FBU19DSEFUX1VUTV9VUkx9KVxyXG4gICAgXFxcXCAy77iP4oOjIOyekOyLoOydmCBPcGVuQUkg66as7IaM7Iqk66W8IOyCrOyaqe2VmOqzoCDsi7bri6TrqbQsIFvsl6zquLDrpbwg7YG066at7ZWY7JesXSgvIy9zZXR0aW5ncykg7ISk7KCV7J2EIOyImOygle2VmOyEuOyalCDimpnvuI9gXHJcbiAgICAgIDogYPCfmIYg64yA7ZmUIOykkSDrrLjsoJzqsIAg67Cc7IOd7ZaI7Iq164uI64ukLCDqsbHsoJXtlZjsp4Ag66eI7IS47JqUOlxyXG4gICAgXFwgMe+4j+KDoyDsoJzroZwg6rWs7ISx7Jy866GcIOyLnOyeke2VmOqzoCDsi7bri6TrqbQsIFvsl6zquLDrpbwg7YG066at7ZWY7JesIOymieyLnCDrjIDtmZTrpbwg7Iuc7J6R7ZWY7IS47JqUIPCfmoBdKCR7U0FBU19DSEFUX1VUTV9VUkx9KVxyXG4gICAgXFwgMu+4j+KDoyDqsJzsnbgg67Cw7Y+sIOuyhOyghOydhCDsgqzsmqntlZjqs6Ag7J6I64uk66m0LCBb7Jes6riw66W8IO2BtOumre2VmOyXrF0oLyMvYXV0aCkg7KCR6re8IO2CpOulvCDsnoXroKXtlZjshLjsmpQg8J+UkVxyXG4gICAgXFwgM++4j+KDoyDsnpDsi6DsnZggT3BlbkFJIOumrOyGjOyKpOulvCDsgqzsmqntlZjqs6Ag7Iu264uk66m0LCBb7Jes6riw66W8IO2BtOumre2VmOyXrF0oLyMvc2V0dGluZ3MpIOyEpOygleydhCDsiJjsoJXtlZjshLjsmpQg4pqZ77iPXHJcbiBgLFxyXG4gIH0sXHJcbiAgQXV0aDoge1xyXG4gICAgVGl0bGU6IFwi67mE67CA67KI7Zi4IO2VhOyalFwiLFxyXG4gICAgVGlwczogXCLqtIDrpqzsnpDqsIAg67mE67CA67KI7Zi4IOyduOymneydhCDtmZzshLHtmZTtlojsirXri4jri6QuIOyVhOuemOyXkCDsoJHqt7wg7L2U65Oc66W8IOyeheugpe2VmOyLreyLnOyYpC5cIixcclxuICAgIFN1YlRpcHM6IFwi65iQ64qUIE9wZW5BSSDrmJDripQgR29vZ2xlIEFQSSDtgqTrpbwg7J6F66Cl7ZWY7Iut7Iuc7JikLlwiLFxyXG4gICAgSW5wdXQ6IFwi7Jes6riw7JeQIOygkeq3vCDsvZTrk5zrpbwg7J6F66Cl7ZWY7Iut7Iuc7JikLlwiLFxyXG4gICAgQ29uZmlybTogXCLtmZXsnbhcIixcclxuICAgIExhdGVyOiBcIuuCmOykkeyXkCDtlZjquLBcIixcclxuICAgIFJldHVybjogXCLrj4zslYTqsIDquLBcIixcclxuICAgIFNhYXNUaXBzOiBcIuyEpOygleydtCDrhIjrrLQg67O17J6h7ZWp64uI64ukLiDsponsi5wg7IKs7Jqp7ZWY6rOgIOyLtuyKteuLiOuLpC5cIixcclxuICAgIFRvcFRpcHM6XHJcbiAgICAgIFwi8J+lsyBOZXh0Q2hhdCBBSSDstpzsi5wg6riw64WQIO2VoOyduCwg7KeA6riIIE9wZW5BSSBvMSwgR1BULTRvLCBDbGF1ZGUtMy41IOuwjyDstZzsi6Ag64yA7ZiVIOuqqOuNuOydhCDtlbTsoJztlZjshLjsmpRcIixcclxuICB9LFxyXG4gIENoYXRJdGVtOiB7XHJcbiAgICBDaGF0SXRlbUNvdW50OiAoY291bnQ6IG51bWJlcikgPT4gYCR7Y291bnR9IOqwnOydmCDrjIDtmZRgLFxyXG4gIH0sXHJcbiAgQ2hhdDoge1xyXG4gICAgU3ViVGl0bGU6IChjb3VudDogbnVtYmVyKSA9PiBg7LSdICR7Y291bnR9IOqwnOydmCDrjIDtmZRgLFxyXG4gICAgRWRpdE1lc3NhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwi66mU7Iuc7KeAIOq4sOuhnSDtjrjsp5FcIixcclxuICAgICAgVG9waWM6IHtcclxuICAgICAgICBUaXRsZTogXCLssYTtjIUg7KO87KCcXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi7ZiE7J6sIOyxhO2MhSDso7zsoJwg67OA6rK9XCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgQWN0aW9uczoge1xyXG4gICAgICBDaGF0TGlzdDogXCLrqZTsi5zsp4Ag66qp66GdIOuztOq4sFwiLFxyXG4gICAgICBDb21wcmVzc2VkSGlzdG9yeTogXCLslZXstpXrkJwg7Z6I7Iqk7Yag66asIO2UhOuhrO2UhO2KuCDrs7TquLBcIixcclxuICAgICAgRXhwb3J0OiBcIuyxhO2MhSDquLDroZ0g64K067O064K06riwXCIsXHJcbiAgICAgIENvcHk6IFwi67O17IKsXCIsXHJcbiAgICAgIFN0b3A6IFwi7KCV7KeAXCIsXHJcbiAgICAgIFJldHJ5OiBcIuuLpOyLnCDsi5zrj4RcIixcclxuICAgICAgUGluOiBcIuqzoOyglVwiLFxyXG4gICAgICBQaW5Ub2FzdENvbnRlbnQ6IFwiMSDqsJzsnZgg64yA7ZmU66W8IO2UhOuhrO2UhO2KuOyXkCDqs6DsoJXtlojsirXri4jri6QuXCIsXHJcbiAgICAgIFBpblRvYXN0QWN0aW9uOiBcIuuztOq4sFwiLFxyXG4gICAgICBEZWxldGU6IFwi7IKt7KCcXCIsXHJcbiAgICAgIEVkaXQ6IFwi7Y647KeRXCIsXHJcbiAgICAgIFJlZnJlc2hUaXRsZTogXCLsoJzrqqkg7IOI66Gc6rOg7LmoXCIsXHJcbiAgICAgIFJlZnJlc2hUb2FzdDogXCLsoJzrqqkg7IOI66Gc6rOg7LmoIOyalOyyreydtCDsoITshqHrkJjsl4jsirXri4jri6RcIixcclxuICAgIH0sXHJcbiAgICBDb21tYW5kczoge1xyXG4gICAgICBuZXc6IFwi7IOIIOyxhO2MhVwiLFxyXG4gICAgICBuZXdtOiBcIuuniOyKpO2BrOyXkOyEnCDsg4gg7LGE7YyFXCIsXHJcbiAgICAgIG5leHQ6IFwi64uk7J2MIOyxhO2MhVwiLFxyXG4gICAgICBwcmV2OiBcIuydtOyghCDssYTtjIVcIixcclxuICAgICAgY2xlYXI6IFwi7Luo7YWN7Iqk7Yq4IOyngOyasOq4sFwiLFxyXG4gICAgICBkZWw6IFwi7LGE7YyFIOyCreygnFwiLFxyXG4gICAgfSxcclxuICAgIElucHV0QWN0aW9uczoge1xyXG4gICAgICBTdG9wOiBcIuydkeuLtSDspJHsp4BcIixcclxuICAgICAgVG9Cb3R0b206IFwi7LWc7Iug7Jy866GcIOyKpO2BrOuhpFwiLFxyXG4gICAgICBUaGVtZToge1xyXG4gICAgICAgIGF1dG86IFwi7J6Q64+ZIO2FjOuniFwiLFxyXG4gICAgICAgIGxpZ2h0OiBcIuudvOydtO2KuCDrqqjrk5xcIixcclxuICAgICAgICBkYXJrOiBcIuuLpO2BrCDrqqjrk5xcIixcclxuICAgICAgfSxcclxuICAgICAgUHJvbXB0OiBcIuu5oOuluCDrqoXroLlcIixcclxuICAgICAgTWFza3M6IFwi66qo65OgIOuniOyKpO2BrFwiLFxyXG4gICAgICBDbGVhcjogXCLssYTtjIUg7KeA7Jqw6riwXCIsXHJcbiAgICAgIFNldHRpbmdzOiBcIuyxhO2MhSDshKTsoJVcIixcclxuICAgICAgVXBsb2FkSW1hZ2U6IFwi7J2066+47KeAIOyXheuhnOuTnFwiLFxyXG4gICAgfSxcclxuICAgIFJlbmFtZTogXCLssYTtjIUg7J2066aEIOuzgOqyvVwiLFxyXG4gICAgVHlwaW5nOiBcIuyeheugpSDspJHigKZcIixcclxuICAgIElucHV0OiAoc3VibWl0S2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgdmFyIGlucHV0SGludHMgPSBgJHtzdWJtaXRLZXl9IOyghOyGoWA7XHJcbiAgICAgIGlmIChzdWJtaXRLZXkgPT09IFN0cmluZyhTdWJtaXRLZXkuRW50ZXIpKSB7XHJcbiAgICAgICAgaW5wdXRIaW50cyArPSBcIu+8jFNoaWZ0ICsgRW50ZXIg7KSEIOuwlOq/iFwiO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBpbnB1dEhpbnRzICsgXCLvvIwvIOyekOuPmSDsmYTshLHvvIw6IOuqheugueyWtCDsnoXroKVcIjtcclxuICAgIH0sXHJcbiAgICBTZW5kOiBcIuyghOyGoVwiLFxyXG4gICAgQ29uZmlnOiB7XHJcbiAgICAgIFJlc2V0OiBcIuq4sOyWtSDsp4DsmrDquLBcIixcclxuICAgICAgU2F2ZUFzOiBcIuuniOyKpO2BrOuhnCDsoIDsnqVcIixcclxuICAgIH0sXHJcbiAgICBJc0NvbnRleHQ6IFwi7ZSE66Gs7ZSE7Yq4IOyEpOyglVwiLFxyXG4gIH0sXHJcbiAgRXhwb3J0OiB7XHJcbiAgICBUaXRsZTogXCLssYTtjIUg6riw66GdIOqzteycoFwiLFxyXG4gICAgQ29weTogXCLrqqjrkZAg67O17IKsXCIsXHJcbiAgICBEb3dubG9hZDogXCLtjIzsnbwg64uk7Jq066Gc65OcXCIsXHJcbiAgICBTaGFyZTogXCJTaGFyZUdQVOyXkCDqs7XsnKBcIixcclxuICAgIE1lc3NhZ2VGcm9tWW91OiBcIuyCrOyaqeyekFwiLFxyXG4gICAgTWVzc2FnZUZyb21DaGF0R1BUOiBcIkNoYXRHUFRcIixcclxuICAgIEZvcm1hdDoge1xyXG4gICAgICBUaXRsZTogXCLrgrTrs7TrgrTquLAg7ZiV7IudXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIk1hcmtkb3duIO2FjeyKpO2KuCDrmJDripQgUE5HIOydtOuvuOyngOuhnCDrgrTrs7Trgrwg7IiYIOyeiOyKteuLiOuLpC5cIixcclxuICAgIH0sXHJcbiAgICBJbmNsdWRlQ29udGV4dDoge1xyXG4gICAgICBUaXRsZTogXCLtlITroaztlITtirgg7Luo7YWN7Iqk7Yq4IO2PrO2VqFwiLFxyXG4gICAgICBTdWJUaXRsZTogXCLrqZTsi5zsp4Dsl5Ag7ZSE66Gs7ZSE7Yq4IOy7qO2FjeyKpO2KuOulvCDtkZzsi5ztlaDsp4Ag7Jes67aAXCIsXHJcbiAgICB9LFxyXG4gICAgU3RlcHM6IHtcclxuICAgICAgU2VsZWN0OiBcIuyEoO2DnVwiLFxyXG4gICAgICBQcmV2aWV3OiBcIuuvuOumrOuztOq4sFwiLFxyXG4gICAgfSxcclxuICAgIEltYWdlOiB7XHJcbiAgICAgIFRvYXN0OiBcIuyKpO2BrOumsOyDtyDsg53shLEg7KSRXCIsXHJcbiAgICAgIE1vZGFsOiBcIuq4uOqyjCDriITrpbTqsbDrgpgg7Jik66W47Kq9IO2BtOumre2VmOyXrCDsnbTrr7jsp4Drpbwg7KCA7J6l7ZWY7Iut7Iuc7JikLlwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIFNlbGVjdDoge1xyXG4gICAgU2VhcmNoOiBcIuuplOyLnOyngCDqsoDsg4lcIixcclxuICAgIEFsbDogXCLrqqjrkZAg7ISg7YOdXCIsXHJcbiAgICBMYXRlc3Q6IFwi7LWc6re8IOuqhyDqsJxcIixcclxuICAgIENsZWFyOiBcIuyEoO2DnSDsp4DsmrDquLBcIixcclxuICB9LFxyXG4gIE1lbW9yeToge1xyXG4gICAgVGl0bGU6IFwi6riw66GdIOyalOyVvVwiLFxyXG4gICAgRW1wdHlDb250ZW50OiBcIuuMgO2ZlCDrgrTsmqnsnbQg64SI66y0IOynp+yVhCDsmpTslb3tlaAg7ZWE7JqUIOyXhuydjFwiLFxyXG4gICAgU2VuZDogXCLsnpDrj5nsnLzroZwg7LGE7YyFIOq4sOuhneydhCDslZXstpXtlZjsl6wg7Luo7YWN7Iqk7Yq466GcIOyghOyGoVwiLFxyXG4gICAgQ29weTogXCLsmpTslb0g67O17IKsXCIsXHJcbiAgICBSZXNldDogXCJb7IKs7Jqp65CY7KeAIOyViuydjF1cIixcclxuICAgIFJlc2V0Q29uZmlybTogXCLquLDroZ0g7JqU7JW97J2EIOyngOyasOqyoOyKteuLiOq5jD9cIixcclxuICB9LFxyXG4gIEhvbWU6IHtcclxuICAgIE5ld0NoYXQ6IFwi7IOIIOyxhO2MhVwiLFxyXG4gICAgRGVsZXRlQ2hhdDogXCLshKDtg53tlZwg64yA7ZmU66W8IOyCreygnO2VmOyLnOqyoOyKteuLiOq5jD9cIixcclxuICAgIERlbGV0ZVRvYXN0OiBcIuuMgO2ZlOqwgCDsgq3soJzrkJjsl4jsirXri4jri6QuXCIsXHJcbiAgICBSZXZlcnQ6IFwi65CY64+M66as6riwXCIsXHJcbiAgfSxcclxuICBTZXR0aW5nczoge1xyXG4gICAgVGl0bGU6IFwi7ISk7KCVXCIsXHJcbiAgICBTdWJUaXRsZTogXCLrqqjrk6Ag7ISk7KCVIOyYteyFmFwiLFxyXG5cclxuICAgIERhbmdlcjoge1xyXG4gICAgICBSZXNldDoge1xyXG4gICAgICAgIFRpdGxlOiBcIuuqqOuToCDshKTsoJUg7LSI6riw7ZmUXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi66qo65OgIOyEpOyglSDtla3rqqnsnYQg6riw67O46rCS7Jy866GcIOy0iOq4sO2ZlFwiLFxyXG4gICAgICAgIEFjdGlvbjogXCLsp4DquIgg7LSI6riw7ZmUXCIsXHJcbiAgICAgICAgQ29uZmlybTogXCLrqqjrk6Ag7ISk7KCV7J2EIOy0iOq4sO2ZlO2VmOyLnOqyoOyKteuLiOq5jD9cIixcclxuICAgICAgfSxcclxuICAgICAgQ2xlYXI6IHtcclxuICAgICAgICBUaXRsZTogXCLrqqjrk6Ag642w7J207YSwIOyngOyasOq4sFwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIuuqqOuToCDssYTtjIUg67CPIOyEpOyglSDrjbDsnbTthLAg7KeA7Jqw6riwXCIsXHJcbiAgICAgICAgQWN0aW9uOiBcIuyngOq4iCDsp4DsmrDquLBcIixcclxuICAgICAgICBDb25maXJtOiBcIuuqqOuToCDssYTtjIUg67CPIOyEpOyglSDrjbDsnbTthLDrpbwg7KeA7Jqw7Iuc6rKg7Iq164uI6rmMP1wiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIExhbmc6IHtcclxuICAgICAgTmFtZTogXCJMYW5ndWFnZVwiLCAvLyDso7zsnZg6IOyDiCDrsojsl63snYQg7LaU6rCA7ZWY66Ck66m0IOydtCDqsJLsnYQg67KI7Jet7ZWY7KeAIOunkOqzoCDqt7jrjIDroZwg7Jyg7KeA7ZWY7IS47JqULlxyXG4gICAgICBBbGw6IFwi66qo65OgIOyWuOyWtFwiLFxyXG4gICAgfSxcclxuICAgIEF2YXRhcjogXCLslYTrsJTtg4BcIixcclxuICAgIEZvbnRTaXplOiB7XHJcbiAgICAgIFRpdGxlOiBcIuq4gOq8tCDtgazquLBcIixcclxuICAgICAgU3ViVGl0bGU6IFwi7LGE7YyFIOuCtOyaqeydmCDquIDqvLQg7YGs6riwXCIsXHJcbiAgICB9LFxyXG4gICAgRm9udEZhbWlseToge1xyXG4gICAgICBUaXRsZTogXCLssYTtjIUg7Y+w7Yq4XCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuyxhO2MhSDrgrTsmqnsnZgg7Y+w7Yq4LCDruYTsm4wg65GQ66m0IOq4gOuhnOuyjCDquLDrs7gg7Y+w7Yq466W8IOyggeyaqVwiLFxyXG4gICAgICBQbGFjZWhvbGRlcjogXCLtj7Dtirgg7J2066aEXCIsXHJcbiAgICB9LFxyXG4gICAgSW5qZWN0U3lzdGVtUHJvbXB0czoge1xyXG4gICAgICBUaXRsZTogXCLsi5zsiqTthZwg7IiY7KSAIO2UhOuhrO2UhO2KuCDsgr3snoVcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCLqsIEg7JqU7LKtIOuplOyLnOyngCDrqqnroZ3snZgg7Iuc7J6RIOu2gOu2hOyXkCBDaGF0R1BUIOyLnOyKpO2FnCDtlITroaztlITtirjrpbwg6rCV7KCc66GcIOy2lOqwgFwiLFxyXG4gICAgfSxcclxuICAgIElucHV0VGVtcGxhdGU6IHtcclxuICAgICAgVGl0bGU6IFwi7IKs7Jqp7J6QIOyeheugpSDsoITsspjrpqxcIixcclxuICAgICAgU3ViVGl0bGU6IFwi7IKs7Jqp7J6Q7J2YIOy1nOyLoCDrqZTsi5zsp4DqsIAg7J20IO2FnO2UjOumv+yXkCDssYTsm4zsp5Hri4jri6QuXCIsXHJcbiAgICB9LFxyXG5cclxuICAgIFVwZGF0ZToge1xyXG4gICAgICBWZXJzaW9uOiAoeDogc3RyaW5nKSA9PiBg7ZiE7J6sIOuyhOyghDogJHt4fWAsXHJcbiAgICAgIElzTGF0ZXN0OiBcIuy1nOyLoCDrsoTsoITsnoXri4jri6QuXCIsXHJcbiAgICAgIENoZWNrVXBkYXRlOiBcIuyXheuNsOydtO2KuCDtmZXsnbhcIixcclxuICAgICAgSXNDaGVja2luZzogXCLsl4XrjbDsnbTtirgg7ZmV7J24IOykkS4uLlwiLFxyXG4gICAgICBGb3VuZFVwZGF0ZTogKHg6IHN0cmluZykgPT4gYOyDiCDrsoTsoIQg67Cc6rKsOiAke3h9YCxcclxuICAgICAgR29Ub1VwZGF0ZTogXCLsl4XrjbDsnbTtirjroZwg7J2064+ZXCIsXHJcbiAgICB9LFxyXG4gICAgU2VuZEtleTogXCLsoITshqEg7YKkXCIsXHJcbiAgICBUaGVtZTogXCLthYzrp4hcIixcclxuICAgIFRpZ2h0Qm9yZGVyOiBcIu2FjOuRkOumrCDsl4bripQg66qo65OcXCIsXHJcbiAgICBTZW5kUHJldmlld0J1YmJsZToge1xyXG4gICAgICBUaXRsZTogXCLrr7jrpqzrs7TquLAg67KE67iUXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuuvuOumrOuztOq4sCDrsoTruJTsl5DshJwgTWFya2Rvd24g7L2Y7YWQ7LigIOuvuOumrOuztOq4sFwiLFxyXG4gICAgfSxcclxuICAgIEF1dG9HZW5lcmF0ZVRpdGxlOiB7XHJcbiAgICAgIFRpdGxlOiBcIuygnOuqqSDsnpDrj5kg7IOd7ISxXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuuMgO2ZlCDrgrTsmqnsl5Ag65Sw6528IOyggeygiO2VnCDsoJzrqqkg7IOd7ISxXCIsXHJcbiAgICB9LFxyXG4gICAgU3luYzoge1xyXG4gICAgICBDbG91ZFN0YXRlOiBcIu2BtOudvOyasOuTnCDrjbDsnbTthLBcIixcclxuICAgICAgTm90U3luY1lldDogXCLslYTsp4Eg64+Z6riw7ZmU65CY7KeAIOyViuyVmOyKteuLiOuLpC5cIixcclxuICAgICAgU3VjY2VzczogXCLrj5nquLDtmZQg7ISx6rO1XCIsXHJcbiAgICAgIEZhaWw6IFwi64+Z6riw7ZmUIOyLpO2MqFwiLFxyXG5cclxuICAgICAgQ29uZmlnOiB7XHJcbiAgICAgICAgTW9kYWw6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIu2BtOudvOyasOuTnCDrj5nquLDtmZQg6rWs7ISxXCIsXHJcbiAgICAgICAgICBDaGVjazogXCLsgqzsmqkg6rCA64ql7ISxIO2ZleyduFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgU3luY1R5cGU6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuuPmeq4sO2ZlCDsnKDtmJVcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuyEoO2YuO2VmOuKlCDrj5nquLDtmZQg7ISc67KEIOyEoO2DnVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgUHJveHk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIu2UhOuhneyLnCDsgqzsmqlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgICBcIuu4jOudvOyasOyggOyXkOyEnCDrj5nquLDtmZTtlaAg65WMIO2UhOuhneyLnOulvCDtmZzshLHtmZTtlZjsl6wg6rWQ7LCoIOy2nOyymCDsoJztlZzsnYQg7ZS87ZW07JW8IO2VqFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgUHJveHlVcmw6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIu2UhOuhneyLnCDso7zshoxcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuydtCDtlITroZzsoJ3tirjsl5DshJwg7KCc6rO17ZWY64qUIOq1kOywqCDstpzsspgg7ZSE66Gd7Iuc66eMIO2VtOuLuVwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIFdlYkRhdjoge1xyXG4gICAgICAgICAgRW5kcG9pbnQ6IFwiV2ViREFWIOyjvOyGjFwiLFxyXG4gICAgICAgICAgVXNlck5hbWU6IFwi7IKs7Jqp7J6QIOydtOumhFwiLFxyXG4gICAgICAgICAgUGFzc3dvcmQ6IFwi67mE67CA67KI7Zi4XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgVXBTdGFzaDoge1xyXG4gICAgICAgICAgRW5kcG9pbnQ6IFwiVXBTdGFzaCBSZWRpcyBSRVNUIFVSTFwiLFxyXG4gICAgICAgICAgVXNlck5hbWU6IFwi67Cx7JeFIOydtOumhFwiLFxyXG4gICAgICAgICAgUGFzc3dvcmQ6IFwiVXBTdGFzaCBSZWRpcyBSRVNUIFRva2VuXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuXHJcbiAgICAgIExvY2FsU3RhdGU6IFwi66Gc7LusIOuNsOydtO2EsFwiLFxyXG4gICAgICBPdmVydmlldzogKG92ZXJ2aWV3OiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gYCR7b3ZlcnZpZXcuY2hhdH0g7ZqM7J2YIOuMgO2ZlCwgJHtvdmVydmlldy5tZXNzYWdlfSDqsJzsnZgg66mU7Iuc7KeALCAke292ZXJ2aWV3LnByb21wdH0g6rCc7J2YIO2UhOuhrO2UhO2KuCwgJHtvdmVydmlldy5tYXNrfSDqsJzsnZgg66eI7Iqk7YGsYDtcclxuICAgICAgfSxcclxuICAgICAgSW1wb3J0RmFpbGVkOiBcIuqwgOyguOyYpOq4sCDsi6TtjKhcIixcclxuICAgIH0sXHJcbiAgICBNYXNrOiB7XHJcbiAgICAgIFNwbGFzaDoge1xyXG4gICAgICAgIFRpdGxlOiBcIuuniOyKpO2BrCDsi5zsnpEg7Y6Y7J207KeAXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi7IOIIOyxhO2MhSDsi5wg66eI7Iqk7YGsIOyLnOyekSDtjpjsnbTsp4Ag7ZGc7IucXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEJ1aWx0aW46IHtcclxuICAgICAgICBUaXRsZTogXCLrgrTsnqUg66eI7Iqk7YGsIOyIqOq4sOq4sFwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIuuqqOuToCDrp4jsiqTtgawg66qp66Gd7JeQ7IScIOuCtOyepSDrp4jsiqTtgawg7Iio6riw6riwXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgUHJvbXB0OiB7XHJcbiAgICAgIERpc2FibGU6IHtcclxuICAgICAgICBUaXRsZTogXCLtlITroaztlITtirgg7J6Q64+ZIOyZhOyEsSDruYTtmZzshLHtmZRcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLsnoXroKUg7IOB7J6QIOyLnOyekSDrtoDrtoTsl5AgLyDrpbwg7J6F66Cl7ZWY7JesIOyekOuPmSDsmYTshLEg7Zmc7ISx7ZmUXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIExpc3Q6IFwi7IKs7Jqp7J6QIOygleydmCDtlITroaztlITtirgg66qp66GdXCIsXHJcbiAgICAgIExpc3RDb3VudDogKGJ1aWx0aW46IG51bWJlciwgY3VzdG9tOiBudW1iZXIpID0+XHJcbiAgICAgICAgYOuCtOyepSAke2J1aWx0aW59IOqwnCwg7IKs7Jqp7J6QIOygleydmCAke2N1c3RvbX0g6rCcYCxcclxuICAgICAgRWRpdDogXCLtjrjsp5FcIixcclxuICAgICAgTW9kYWw6IHtcclxuICAgICAgICBUaXRsZTogXCLtlITroaztlITtirgg66qp66GdXCIsXHJcbiAgICAgICAgQWRkOiBcIuyDiOuhnCDrp4zrk6TquLBcIixcclxuICAgICAgICBTZWFyY2g6IFwi7ZSE66Gs7ZSE7Yq4IOqygOyDiVwiLFxyXG4gICAgICB9LFxyXG4gICAgICBFZGl0TW9kYWw6IHtcclxuICAgICAgICBUaXRsZTogXCLtlITroaztlITtirgg7Y647KeRXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgSGlzdG9yeUNvdW50OiB7XHJcbiAgICAgIFRpdGxlOiBcIu2eiOyKpO2GoOumrCDrqZTsi5zsp4Ag7IiYXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuqwgSDsmpTssq3sl5Ag7Y+s7ZWo65CcIO2eiOyKpO2GoOumrCDrqZTsi5zsp4Ag7IiYXCIsXHJcbiAgICB9LFxyXG4gICAgQ29tcHJlc3NUaHJlc2hvbGQ6IHtcclxuICAgICAgVGl0bGU6IFwi7Z6I7Iqk7Yag66asIOuplOyLnOyngCDquLjsnbQg7JWV7LaVIOyehOqzhOqwklwiLFxyXG4gICAgICBTdWJUaXRsZTogXCLslZXstpXrkJjsp4Ag7JWK7J2AIO2eiOyKpO2GoOumrCDrqZTsi5zsp4DqsIAg7J20IOqwkuydhCDstIjqs7ztlZjrqbQg7JWV7LaVIOyImO2WiVwiLFxyXG4gICAgfSxcclxuXHJcbiAgICBVc2FnZToge1xyXG4gICAgICBUaXRsZTogXCLsnpTslaEg7KGw7ZqMXCIsXHJcbiAgICAgIFN1YlRpdGxlKHVzZWQ6IGFueSwgdG90YWw6IGFueSkge1xyXG4gICAgICAgIHJldHVybiBg7J2067KIIOuLrCDsgqzsmqnrkJwg6riI7JWhOiAkJHt1c2Vkfe+8jOy0nSDqtazrj4Ug6riI7JWhOiAkJHt0b3RhbH1gO1xyXG4gICAgICB9LFxyXG4gICAgICBJc0NoZWNraW5nOiBcIu2ZleyduCDspJEuLi5cIixcclxuICAgICAgQ2hlY2s6IFwi64uk7IucIO2ZleyduFwiLFxyXG4gICAgICBOb0FjY2VzczogXCLsnpTslaHsnYQg67O066Ck66m0IEFQSSDtgqQg65iQ64qUIOygkeq3vCDruYTrsIDrsojtmLjrpbwg7J6F66Cl7ZWY7Iut7Iuc7JikLlwiLFxyXG4gICAgfSxcclxuXHJcbiAgICBBY2Nlc3M6IHtcclxuICAgICAgU2Fhc1N0YXJ0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiTmV4dENoYXQgQUkg7IKs7Jqp7ZWY6riwXCIsXHJcbiAgICAgICAgTGFiZWw6IFwiKOqwgOyepSDruYTsmqkg7Zqo7Jyo7KCB7J24IOyGlOujqOyFmClcIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiTmV4dENoYXTsl5Ag7J2Y7ZW0IOqzteyLneyggeycvOuhnCDsnKDsp4Ag6rSA66as65CY66mwLCDsoJzroZwg6rWs7ISx7Jy866GcIOymieyLnCDsgqzsmqntlaAg7IiYIOyeiOycvOupsCwgT3BlbkFJIG8xLCBHUFQtNG8sIENsYXVkZS0zLjXsmYAg6rCZ7J2AIOy1nOyLoCDrjIDtmJUg66qo64247J2EIOyngOybkO2VqeuLiOuLpFwiLFxyXG4gICAgICAgIENoYXROb3c6IFwi7KeA6riIIOyxhO2Mhe2VmOq4sFwiLFxyXG4gICAgICB9LFxyXG5cclxuICAgICAgQWNjZXNzQ29kZToge1xyXG4gICAgICAgIFRpdGxlOiBcIuygkeq3vCDruYTrsIDrsojtmLhcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLqtIDrpqzsnpDqsIAg7JWU7Zi47ZmU65CcIOygkeq3vOydhCDtmZzshLHtmZTtlojsirXri4jri6QuXCIsXHJcbiAgICAgICAgUGxhY2Vob2xkZXI6IFwi7KCR6re8IOu5hOuwgOuyiO2YuOulvCDsnoXroKXtlZjsi63si5zsmKQuXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEN1c3RvbUVuZHBvaW50OiB7XHJcbiAgICAgICAgVGl0bGU6IFwi7Luk7Iqk7YWAIOyXlOuTnO2PrOyduO2KuFwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIuy7pOyKpO2FgCBBenVyZSDrmJDripQgT3BlbkFJIOyEnOu5hOyKpOulvCDsgqzsmqntlaDsp4Ag7Jes67aAXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFByb3ZpZGVyOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi66qo6424IOyEnOu5hOyKpCDsoJzqs7Xsl4XssrRcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLri6Trpbgg7ISc67mE7IqkIOygnOqzteyXheyytOuhnCDsoITtmZhcIixcclxuICAgICAgfSxcclxuICAgICAgT3BlbkFJOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEkg7YKkXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLsu6TsiqTthYAgT3BlbkFJIO2CpOulvCDsgqzsmqntlZjsl6wg67mE67CA67KI7Zi4IOygkeq3vCDsoJztlZwg7Jqw7ZqMXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJPcGVuQUkgQVBJIO2CpFwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLsl5Trk5ztj6zsnbjtirgg7KO87IaMXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLquLDrs7gg7KO87IaMIOyZuOyXkCBodHRwKHMpOi8v7J2EIO2PrO2VqO2VtOyVvCDtlahcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBBenVyZToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwi7JeU65Oc7Y+s7J247Yq4IO2CpFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi7Luk7Iqk7YWAIEF6dXJlIO2CpOulvCDsgqzsmqntlZjsl6wg67mE67CA67KI7Zi4IOygkeq3vCDsoJztlZwg7Jqw7ZqMXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJBenVyZSBBUEkg7YKkXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuyXlOuTnO2PrOyduO2KuCDso7zshoxcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuyYiDogXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgQXBpVmVyaW9uOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEkg67KE7KCEIChhenVyZSBhcGkgdmVyc2lvbilcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIu2KueyglSDrtoDrtoQg67KE7KCEIOyEoO2DnVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEFudGhyb3BpYzoge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwi7JeU65Oc7Y+s7J247Yq4IO2CpFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi7Luk7Iqk7YWAIEFudGhyb3BpYyDtgqTrpbwg7IKs7Jqp7ZWY7JesIOu5hOuwgOuyiO2YuCDsoJHqt7wg7KCc7ZWcIOyasO2ajFwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQW50aHJvcGljIEFQSSDtgqRcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi7JeU65Oc7Y+s7J247Yq4IOyjvOyGjFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi7JiIOiBcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBBcGlWZXJpb246IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSSDrsoTsoIQgKGNsYXVkZSBhcGkgdmVyc2lvbilcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIu2KueyglSBBUEkg67KE7KCEIOyeheugpVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEdvb2dsZToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIO2CpFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiR29vZ2xlIEFJ7JeQ7IScIEFQSSDtgqTrpbwg6rCA7KC47Jik7IS47JqULlwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiR29vZ2xlIEFJIFN0dWRpbyBBUEkg7YKkIOyeheugpVwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLsl5Trk5ztj6zsnbjtirgg7KO87IaMXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLsmIg6IFwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcnNpb246IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSSDrsoTsoIQgKGdlbWluaS1wcm8g7KCE7JqpKVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi7Yq57KCVIEFQSSDrsoTsoIQg7ISg7YOdXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBHb29nbGVTYWZldHlTZXR0aW5nczoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiR29vZ2xlIOyViOyghCDtlYTthLDrp4Eg7IiY7KSAXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLsvZjthZDsuKAg7ZWE7YSw66eBIOyImOykgCDshKTsoJVcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBCYWlkdToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIO2CpFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi7Luk7Iqk7YWAIEJhaWR1IEFQSSDtgqQg7IKs7JqpXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJCYWlkdSBBUEkg7YKkXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBTZWNyZXRLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlNlY3JldCDtgqRcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuy7pOyKpO2FgCBCYWlkdSBTZWNyZXQg7YKkIOyCrOyaqVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQmFpZHUgU2VjcmV0IO2CpFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuyXlOuTnO2PrOyduO2KuCDso7zshoxcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuy7pOyKpO2EsOuniOydtOymiOuKlCAuZW527JeQ7IScIOyEpOyglVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEJ5dGVEYW5jZToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwi7JeU65Oc7Y+s7J247Yq4IO2CpFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi7Luk7Iqk7YWAIEJ5dGVEYW5jZSBBUEkg7YKkIOyCrOyaqVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQnl0ZURhbmNlIEFQSSDtgqRcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLsl5Trk5ztj6zsnbjtirgg7KO87IaMXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLsmIg6IFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEFsaWJhYmE6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuyXlOuTnO2PrOyduO2KuCDtgqRcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuy7pOyKpO2FgCBBbGliYWJhIENsb3VkIEFQSSDtgqQg7IKs7JqpXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJBbGliYWJhIENsb3VkIEFQSSDtgqRcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLsl5Trk5ztj6zsnbjtirgg7KO87IaMXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLsmIg6IFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEN1c3RvbU1vZGVsOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi7Luk7Iqk7YWAIOuqqOuNuCDsnbTrpoRcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLsu6TsiqTthYAg66qo6424IOyYteyFmCDstpTqsIAsIOyYgeyWtCDsibztkZzroZwg6rWs67aEXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG5cclxuICAgIE1vZGVsOiBcIuuqqOuNuCAobW9kZWwpXCIsXHJcbiAgICBDb21wcmVzc01vZGVsOiB7XHJcbiAgICAgIFRpdGxlOiBcIuyVley2lSDrqqjrjbhcIixcclxuICAgICAgU3ViVGl0bGU6IFwi6riw66Gd7J2EIOyVley2le2VmOuKlCDrjbAg7IKs7Jqp65CY64qUIOuqqOuNuFwiLFxyXG4gICAgfSxcclxuICAgIFRlbXBlcmF0dXJlOiB7XHJcbiAgICAgIFRpdGxlOiBcIuustOyekeychOyEsSAodGVtcGVyYXR1cmUpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuqwkuydtCDtgbTsiJjroZ0g7J2R64u17J20IOuNlCDrrLTsnpHsnITsoIFcIixcclxuICAgIH0sXHJcbiAgICBUb3BQOiB7XHJcbiAgICAgIFRpdGxlOiBcIu2DkSBQIOyDmO2UjOungSAodG9wX3ApXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuustOyekeychOyEseqzvCDsnKDsgqztlZjsp4Drp4wsIOustOyekeychOyEseqzvCDtlajqu5gg67OA6rK97ZWY7KeAIOuniOyLreyLnOyYpC5cIixcclxuICAgIH0sXHJcbiAgICBNYXhUb2tlbnM6IHtcclxuICAgICAgVGl0bGU6IFwi64uo7J28IOydkeuLtSDsoJztlZwgKG1heF90b2tlbnMpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuuLqOydvCDsg4HtmLjsnpHsmqnsl5Ag7IKs7Jqp65CY64qUIOy1nOuMgCDthqDtgbAg7IiYXCIsXHJcbiAgICB9LFxyXG4gICAgUHJlc2VuY2VQZW5hbHR5OiB7XHJcbiAgICAgIFRpdGxlOiBcIuyjvOygnCDsi6DshKDrj4QgKHByZXNlbmNlX3BlbmFsdHkpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuqwkuydtCDtgbTsiJjroZ0g7IOI66Gc7Jq0IOyjvOygnOuhnCDtmZXsnqXtlaAg6rCA64ql7ISx7J20IOuGkuydjFwiLFxyXG4gICAgfSxcclxuICAgIEZyZXF1ZW5jeVBlbmFsdHk6IHtcclxuICAgICAgVGl0bGU6IFwi67mI64+EIOuyjOygkCAoZnJlcXVlbmN5X3BlbmFsdHkpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuqwkuydtCDtgbTsiJjroZ0g7KSR67O1IOuLqOyWtCDqsJDshowg6rCA64ql7ISxIOuGkuydjFwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIFN0b3JlOiB7XHJcbiAgICBEZWZhdWx0VG9waWM6IFwi7IOIIOyxhO2MhVwiLFxyXG4gICAgQm90SGVsbG86IFwi66y07JeH7J2EIOuPhOyZgOuTnOumtOq5jOyalD9cIixcclxuICAgIEVycm9yOiBcIuyYpOulmOqwgCDrsJzsg53tlojsirXri4jri6QuIOuCmOykkeyXkCDri6Tsi5wg7Iuc64+E7ZW0IOyjvOyEuOyalC5cIixcclxuICAgIFByb21wdDoge1xyXG4gICAgICBIaXN0b3J5OiAoY29udGVudDogc3RyaW5nKSA9PiBcIuydtOqyg+ydgCDsnbTsoIQg7LGE7YyFIOyalOyVveyeheuLiOuLpDogXCIgKyBjb250ZW50LFxyXG4gICAgICBUb3BpYzpcclxuICAgICAgICBcIuuEpCDquIDsnpDsl5DshJwg64uk7ISvIOq4gOyekOuhnCDsnbQg66y47J6l7J2YIOqwhOuete2VnCDso7zsoJzrpbwg67CY7ZmY7ZWY7IS47JqULiDshKTrqoXsnbTrgpgg66y47J6lIOu2gO2YuCwg7Ja066+4LCDrtojtlYTsmpTtlZwg7YWN7Iqk7Yq4LCDqtbXsnYAg6riA7JSo64qUIO2VhOyalCDsl4bsirXri4jri6QuIOyjvOygnOqwgCDsl4bri6TrqbQgJ+yeoeuLtCfsnbTrnbzqs6Drp4wg67CY7ZmY7ZWY7IS47JqULlwiLFxyXG4gICAgICBTdW1tYXJpemU6XHJcbiAgICAgICAgXCLrjIDtmZQg64K07Jqp7J2EIOqwhOuete2eiCDsmpTslb3tlZjsl6wg7ZuE7IaNIOy7qO2FjeyKpO2KuCDtlITroaztlITtirjroZwg7IKs7Jqp7ZWY7IS47JqULiAyMDDsnpAg7J2064K066GcIOyekeyEse2VmOyEuOyalC5cIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBDb3B5OiB7XHJcbiAgICBTdWNjZXNzOiBcIu2BtOumveuztOuTnOyXkCDrs7XsgqzrkJjsl4jsirXri4jri6QuXCIsXHJcbiAgICBGYWlsZWQ6IFwi67O17IKsIOyLpO2MqCwg7YG066a967O065OcIOq2jO2VnOydhCDrtoDsl6ztlbTso7zshLjsmpQuXCIsXHJcbiAgfSxcclxuICBEb3dubG9hZDoge1xyXG4gICAgU3VjY2VzczogXCLrgrTsmqnsnbQg65SU66CJ7Yag66as7JeQIOuLpOyatOuhnOuTnOuQmOyXiOyKteuLiOuLpC5cIixcclxuICAgIEZhaWxlZDogXCLri6TsmrTroZzrk5wg7Iuk7YyoLlwiLFxyXG4gIH0sXHJcbiAgQ29udGV4dDoge1xyXG4gICAgVG9hc3Q6ICh4OiBhbnkpID0+IGAgJHt4fSDqsJzsnZgg7ZSE66as7IWLIO2UhOuhrO2UhO2KuCDtj6ztlajrkKhgLFxyXG4gICAgRWRpdDogXCLtmITsnqwg64yA7ZmUIOyEpOyglVwiLFxyXG4gICAgQWRkOiBcIuuMgO2ZlCDstpTqsIBcIixcclxuICAgIENsZWFyOiBcIuy7qO2FjeyKpO2KuOqwgCDsp4Dsm4zsoYzsirXri4jri6QuXCIsXHJcbiAgICBSZXZlcnQ6IFwi7Luo7YWN7Iqk7Yq4IOuzteybkFwiLFxyXG4gIH0sXHJcbiAgUGx1Z2luOiB7XHJcbiAgICBOYW1lOiBcIu2UjOufrOq3uOyduFwiLFxyXG4gIH0sXHJcbiAgRmluZVR1bmVkOiB7XHJcbiAgICBTeXNtZXNzYWdlOiBcIuuLueyLoOydgCDrs7TsobDsnpDsnoXri4jri6QuXCIsXHJcbiAgfSxcclxuICBTZWFyY2hDaGF0OiB7XHJcbiAgICBOYW1lOiBcIuqygOyDiVwiLFxyXG4gICAgUGFnZToge1xyXG4gICAgICBUaXRsZTogXCLssYTtjIUg6riw66GdIOqygOyDiVwiLFxyXG4gICAgICBTZWFyY2g6IFwi6rKA7IOJ7Ja0IOyeheugpVwiLFxyXG4gICAgICBOb1Jlc3VsdDogXCLqsrDqs7zrpbwg7LC+7J2EIOyImCDsl4bsirXri4jri6RcIixcclxuICAgICAgTm9EYXRhOiBcIuuNsOydtO2EsOqwgCDsl4bsirXri4jri6RcIixcclxuICAgICAgTG9hZGluZzogXCLroZzrlKkg7KSRXCIsXHJcblxyXG4gICAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50feqwnOydmCDqsrDqs7zrpbwg7LC+7JWY7Iq164uI64ukYCxcclxuICAgIH0sXHJcbiAgICBJdGVtOiB7XHJcbiAgICAgIFZpZXc6IFwi67O06riwXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgTWFzazoge1xyXG4gICAgTmFtZTogXCLrp4jsiqTtgaxcIixcclxuICAgIFBhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwi7ZSE66as7IWLIOy6kOumre2EsCDrp4jsiqTtgaxcIixcclxuICAgICAgU3ViVGl0bGU6IChjb3VudDogbnVtYmVyKSA9PiBgJHtjb3VudH0g6rCc7J2YIO2UhOumrOyFiyDsupDrpq3thLAg7KCV7J2YYCxcclxuICAgICAgU2VhcmNoOiBcIuy6kOumre2EsCDrp4jsiqTtgawg6rKA7IOJXCIsXHJcbiAgICAgIENyZWF0ZTogXCLsg4jroZwg66eM65Ok6riwXCIsXHJcbiAgICB9LFxyXG4gICAgSXRlbToge1xyXG4gICAgICBJbmZvOiAoY291bnQ6IG51bWJlcikgPT4gYCAke2NvdW50fSDqsJzsnZgg7ZSE66as7IWLIOuMgO2ZlCDtj6ztlahgLFxyXG4gICAgICBDaGF0OiBcIuuMgO2ZlFwiLFxyXG4gICAgICBWaWV3OiBcIuuztOq4sFwiLFxyXG4gICAgICBFZGl0OiBcIu2OuOynkVwiLFxyXG4gICAgICBEZWxldGU6IFwi7IKt7KCcXCIsXHJcbiAgICAgIERlbGV0ZUNvbmZpcm06IFwi7IKt7KCc66W8IO2ZleyduO2VmOyLnOqyoOyKteuLiOq5jD9cIixcclxuICAgIH0sXHJcbiAgICBFZGl0TW9kYWw6IHtcclxuICAgICAgVGl0bGU6IChyZWFkb25seTogYm9vbGVhbikgPT5cclxuICAgICAgICBg7ZSE66as7IWLIOuniOyKpO2BrCDtjrjsp5EgJHtyZWFkb25seSA/IFwi77yI7J296riwIOyghOyaqe+8iVwiIDogXCJcIn1gLFxyXG4gICAgICBEb3dubG9hZDogXCLtlITrpqzshYsg64uk7Jq066Gc65OcXCIsXHJcbiAgICAgIENsb25lOiBcIu2UhOumrOyFiyDrs7XsoJxcIixcclxuICAgIH0sXHJcbiAgICBDb25maWc6IHtcclxuICAgICAgQXZhdGFyOiBcIuy6kOumre2EsCDslYTrsJTtg4BcIixcclxuICAgICAgTmFtZTogXCLsupDrpq3thLAg7J2066aEXCIsXHJcbiAgICAgIFN5bmM6IHtcclxuICAgICAgICBUaXRsZTogXCLsoITsl60g7ISk7KCVIOyCrOyaqVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIu2YhOyerCDrjIDtmZTqsIAg7KCE7JetIOuqqOuNuCDshKTsoJXsnYQg7IKs7Jqp7ZWY64qU7KeAIOyXrOu2gFwiLFxyXG4gICAgICAgIENvbmZpcm06XHJcbiAgICAgICAgICBcIu2YhOyerCDrjIDtmZTsnZgg7IKs7Jqp7J6QIOygleydmCDshKTsoJXsnbQg7J6Q64+Z7Jy866GcIOuNruyWtOyTsOyXrOyniCDqsoPsnoXri4jri6QuIOyghOyXrSDshKTsoJXsnYQg7Zmc7ISx7ZmU7ZWY7Iuc6rKg7Iq164uI6rmMP1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBIaWRlQ29udGV4dDoge1xyXG4gICAgICAgIFRpdGxlOiBcIu2UhOumrOyFiyDrjIDtmZQg7Iio6riw6riwXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi7Iio6riw66m0IO2UhOumrOyFiyDrjIDtmZTqsIAg7LGE7YyFIO2ZlOuptOyXkCDrgpjtg4Drgpjsp4Ag7JWK7Iq164uI64ukLlwiLFxyXG4gICAgICB9LFxyXG4gICAgICBTaGFyZToge1xyXG4gICAgICAgIFRpdGxlOiBcIuydtCDrp4jsiqTtgawg6rO17Jyg7ZWY6riwXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi7J20IOuniOyKpO2BrOydmCDsp4HsoJEg66eB7YGsIOyDneyEsVwiLFxyXG4gICAgICAgIEFjdGlvbjogXCLrp4Htgawg67O17IKsXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgTmV3Q2hhdDoge1xyXG4gICAgUmV0dXJuOiBcIuuPjOyVhOqwgOq4sFwiLFxyXG4gICAgU2tpcDogXCLrsJTroZwg7Iuc7J6RXCIsXHJcbiAgICBOb3RTaG93OiBcIuuLpOyLnCDrs7Tsp4Ag7JWK6riwXCIsXHJcbiAgICBDb25maXJtTm9TaG93OlxyXG4gICAgICBcIuu5hO2ZnOyEse2ZlO2VmOyLnOqyoOyKteuLiOq5jD8g67mE7Zmc7ISx7ZmUIO2bhCDslrjsoJzrk6Dsp4Ag7ISk7KCV7JeQ7IScIOuLpOyLnCDtmZzshLHtmZTtlaAg7IiYIOyeiOyKteuLiOuLpC5cIixcclxuICAgIFRpdGxlOiBcIuuniOyKpO2BrCDshKDtg51cIixcclxuICAgIFN1YlRpdGxlOiBcIuyngOq4iCDsi5zsnpHtlZjsl6wg66eI7Iqk7YGsIOuSpOydmCDsgqzqs6DsmYAg6rWQ66WY7ZW067O07IS47JqULlwiLFxyXG4gICAgTW9yZTogXCLrqqjrkZAg67O06riwXCIsXHJcbiAgfSxcclxuXHJcbiAgVVJMQ29tbWFuZDoge1xyXG4gICAgQ29kZTogXCLrp4Htgazsl5Ag7JWh7IS47IqkIOy9lOuTnOqwgCDtj6ztlajrkJjslrQg7J6I7Iq164uI64ukLiDsnpDrj5nsnLzroZwg7J6F66Cl7ZWY7Iuc6rKg7Iq164uI6rmMP1wiLFxyXG4gICAgU2V0dGluZ3M6XHJcbiAgICAgIFwi66eB7YGs7JeQIO2UhOumrOyFiyDshKTsoJXsnbQg7Y+s7ZWo65CY7Ja0IOyeiOyKteuLiOuLpC4g7J6Q64+Z7Jy866GcIOyeheugpe2VmOyLnOqyoOyKteuLiOq5jD9cIixcclxuICB9LFxyXG5cclxuICBVSToge1xyXG4gICAgQ29uZmlybTogXCLtmZXsnbhcIixcclxuICAgIENhbmNlbDogXCLst6jshoxcIixcclxuICAgIENsb3NlOiBcIuuLq+q4sFwiLFxyXG4gICAgQ3JlYXRlOiBcIuyDiOuhnCDrp4zrk6TquLBcIixcclxuICAgIEVkaXQ6IFwi7Y647KeRXCIsXHJcbiAgICBFeHBvcnQ6IFwi64K067O064K06riwXCIsXHJcbiAgICBJbXBvcnQ6IFwi6rCA7KC47Jik6riwXCIsXHJcbiAgICBTeW5jOiBcIuuPmeq4sO2ZlFwiLFxyXG4gICAgQ29uZmlnOiBcIuq1rOyEsVwiLFxyXG4gIH0sXHJcbiAgRXhwb3J0ZXI6IHtcclxuICAgIERlc2NyaXB0aW9uOiB7XHJcbiAgICAgIFRpdGxlOiBcIuy7qO2FjeyKpO2KuOqwgCDsp4Dsm4zsp4Qg7ZuE7J2YIOuplOyLnOyngOunjCDtkZzsi5zrkKnri4jri6QuXCIsXHJcbiAgICB9LFxyXG4gICAgTW9kZWw6IFwi66qo6424XCIsXHJcbiAgICBNZXNzYWdlczogXCLrqZTsi5zsp4BcIixcclxuICAgIFRvcGljOiBcIuyjvOygnFwiLFxyXG4gICAgVGltZTogXCLsi5zqsIRcIixcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQga287XHJcbiJdLCJuYW1lcyI6WyJTdWJtaXRLZXkiLCJnZXRDbGllbnRDb25maWciLCJTQUFTX0NIQVRfVVRNX1VSTCIsImlzQXBwIiwia28iLCJXSVAiLCJFcnJvciIsIlVuYXV0aG9yaXplZCIsIkF1dGgiLCJUaXRsZSIsIlRpcHMiLCJTdWJUaXBzIiwiSW5wdXQiLCJDb25maXJtIiwiTGF0ZXIiLCJSZXR1cm4iLCJTYWFzVGlwcyIsIlRvcFRpcHMiLCJDaGF0SXRlbSIsIkNoYXRJdGVtQ291bnQiLCJjb3VudCIsIkNoYXQiLCJTdWJUaXRsZSIsIkVkaXRNZXNzYWdlIiwiVG9waWMiLCJBY3Rpb25zIiwiQ2hhdExpc3QiLCJDb21wcmVzc2VkSGlzdG9yeSIsIkV4cG9ydCIsIkNvcHkiLCJTdG9wIiwiUmV0cnkiLCJQaW4iLCJQaW5Ub2FzdENvbnRlbnQiLCJQaW5Ub2FzdEFjdGlvbiIsIkRlbGV0ZSIsIkVkaXQiLCJSZWZyZXNoVGl0bGUiLCJSZWZyZXNoVG9hc3QiLCJDb21tYW5kcyIsIm5ldyIsIm5ld20iLCJuZXh0IiwicHJldiIsImNsZWFyIiwiZGVsIiwiSW5wdXRBY3Rpb25zIiwiVG9Cb3R0b20iLCJUaGVtZSIsImF1dG8iLCJsaWdodCIsImRhcmsiLCJQcm9tcHQiLCJNYXNrcyIsIkNsZWFyIiwiU2V0dGluZ3MiLCJVcGxvYWRJbWFnZSIsIlJlbmFtZSIsIlR5cGluZyIsInN1Ym1pdEtleSIsImlucHV0SGludHMiLCJTdHJpbmciLCJFbnRlciIsIlNlbmQiLCJDb25maWciLCJSZXNldCIsIlNhdmVBcyIsIklzQ29udGV4dCIsIkRvd25sb2FkIiwiU2hhcmUiLCJNZXNzYWdlRnJvbVlvdSIsIk1lc3NhZ2VGcm9tQ2hhdEdQVCIsIkZvcm1hdCIsIkluY2x1ZGVDb250ZXh0IiwiU3RlcHMiLCJTZWxlY3QiLCJQcmV2aWV3IiwiSW1hZ2UiLCJUb2FzdCIsIk1vZGFsIiwiU2VhcmNoIiwiQWxsIiwiTGF0ZXN0IiwiTWVtb3J5IiwiRW1wdHlDb250ZW50IiwiUmVzZXRDb25maXJtIiwiSG9tZSIsIk5ld0NoYXQiLCJEZWxldGVDaGF0IiwiRGVsZXRlVG9hc3QiLCJSZXZlcnQiLCJEYW5nZXIiLCJBY3Rpb24iLCJMYW5nIiwiTmFtZSIsIkF2YXRhciIsIkZvbnRTaXplIiwiRm9udEZhbWlseSIsIlBsYWNlaG9sZGVyIiwiSW5qZWN0U3lzdGVtUHJvbXB0cyIsIklucHV0VGVtcGxhdGUiLCJVcGRhdGUiLCJWZXJzaW9uIiwieCIsIklzTGF0ZXN0IiwiQ2hlY2tVcGRhdGUiLCJJc0NoZWNraW5nIiwiRm91bmRVcGRhdGUiLCJHb1RvVXBkYXRlIiwiU2VuZEtleSIsIlRpZ2h0Qm9yZGVyIiwiU2VuZFByZXZpZXdCdWJibGUiLCJBdXRvR2VuZXJhdGVUaXRsZSIsIlN5bmMiLCJDbG91ZFN0YXRlIiwiTm90U3luY1lldCIsIlN1Y2Nlc3MiLCJGYWlsIiwiQ2hlY2siLCJTeW5jVHlwZSIsIlByb3h5IiwiUHJveHlVcmwiLCJXZWJEYXYiLCJFbmRwb2ludCIsIlVzZXJOYW1lIiwiUGFzc3dvcmQiLCJVcFN0YXNoIiwiTG9jYWxTdGF0ZSIsIk92ZXJ2aWV3Iiwib3ZlcnZpZXciLCJjaGF0IiwibWVzc2FnZSIsInByb21wdCIsIm1hc2siLCJJbXBvcnRGYWlsZWQiLCJNYXNrIiwiU3BsYXNoIiwiQnVpbHRpbiIsIkRpc2FibGUiLCJMaXN0IiwiTGlzdENvdW50IiwiYnVpbHRpbiIsImN1c3RvbSIsIkFkZCIsIkVkaXRNb2RhbCIsIkhpc3RvcnlDb3VudCIsIkNvbXByZXNzVGhyZXNob2xkIiwiVXNhZ2UiLCJ1c2VkIiwidG90YWwiLCJOb0FjY2VzcyIsIkFjY2VzcyIsIlNhYXNTdGFydCIsIkxhYmVsIiwiQ2hhdE5vdyIsIkFjY2Vzc0NvZGUiLCJDdXN0b21FbmRwb2ludCIsIlByb3ZpZGVyIiwiT3BlbkFJIiwiQXBpS2V5IiwiQXp1cmUiLCJBcGlWZXJpb24iLCJBbnRocm9waWMiLCJHb29nbGUiLCJBcGlWZXJzaW9uIiwiR29vZ2xlU2FmZXR5U2V0dGluZ3MiLCJCYWlkdSIsIlNlY3JldEtleSIsIkJ5dGVEYW5jZSIsIkFsaWJhYmEiLCJDdXN0b21Nb2RlbCIsIk1vZGVsIiwiQ29tcHJlc3NNb2RlbCIsIlRlbXBlcmF0dXJlIiwiVG9wUCIsIk1heFRva2VucyIsIlByZXNlbmNlUGVuYWx0eSIsIkZyZXF1ZW5jeVBlbmFsdHkiLCJTdG9yZSIsIkRlZmF1bHRUb3BpYyIsIkJvdEhlbGxvIiwiSGlzdG9yeSIsImNvbnRlbnQiLCJTdW1tYXJpemUiLCJGYWlsZWQiLCJDb250ZXh0IiwiUGx1Z2luIiwiRmluZVR1bmVkIiwiU3lzbWVzc2FnZSIsIlNlYXJjaENoYXQiLCJQYWdlIiwiTm9SZXN1bHQiLCJOb0RhdGEiLCJMb2FkaW5nIiwiSXRlbSIsIlZpZXciLCJDcmVhdGUiLCJJbmZvIiwiRGVsZXRlQ29uZmlybSIsInJlYWRvbmx5IiwiQ2xvbmUiLCJIaWRlQ29udGV4dCIsIlNraXAiLCJOb3RTaG93IiwiQ29uZmlybU5vU2hvdyIsIk1vcmUiLCJVUkxDb21tYW5kIiwiQ29kZSIsIlVJIiwiQ2FuY2VsIiwiQ2xvc2UiLCJJbXBvcnQiLCJFeHBvcnRlciIsIkRlc2NyaXB0aW9uIiwiTWVzc2FnZXMiLCJUaW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/locales/ko.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/locales/no.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/locales/no.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _store_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../store/config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n\n\n\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_1__.getClientConfig)()?.isApp;\nconst no = {\n WIP: \"Arbeid p\\xe5g\\xe5r ...\",\n Error: {\n Unauthorized: isApp ? `😆 Samtalen har støtt på noen problemer, ikke bekymre deg:\r\n \\\\ 1️⃣ Hvis du vil starte uten konfigurasjon, [klikk her for å begynne å chatte umiddelbart 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\\\ 2️⃣ Hvis du vil bruke dine egne OpenAI-ressurser, klikk [her](/#/settings) for å endre innstillingene ⚙️` : `😆 Samtalen har støtt på noen problemer, ikke bekymre deg:\r\n \\ 1️⃣ Hvis du vil starte uten konfigurasjon, [klikk her for å begynne å chatte umiddelbart 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\ 2️⃣ Hvis du bruker en privat distribusjonsversjon, klikk [her](/#/auth) for å skrive inn tilgangsnøkkelen 🔑\r\n \\ 3️⃣ Hvis du vil bruke dine egne OpenAI-ressurser, klikk [her](/#/settings) for å endre innstillingene ⚙️\r\n `\n },\n Auth: {\n Title: \"Passord p\\xe5krevd\",\n Tips: \"Administrator har aktivert passordbeskyttelse. Vennligst skriv inn tilgangskoden nedenfor\",\n SubTips: \"Eller skriv inn din OpenAI eller Google API-n\\xf8kkel\",\n Input: \"Skriv tilgangskoden her\",\n Confirm: \"Bekreft\",\n Later: \"Kom tilbake senere\",\n Return: \"Tilbake\",\n SaasTips: \"Konfigurasjonen er for komplisert, jeg vil bruke det med en gang\",\n TopTips: \"\\uD83E\\uDD73 NextChat AI lanseringstilbud, l\\xe5s opp OpenAI o1, GPT-4o, Claude-3.5 og de nyeste store modellene n\\xe5\"\n },\n ChatItem: {\n ChatItemCount: (count)=>`${count} samtaler`\n },\n Chat: {\n SubTitle: (count)=>`Totalt ${count} samtaler`,\n EditMessage: {\n Title: \"Rediger meldingshistorikk\",\n Topic: {\n Title: \"Samtaleemne\",\n SubTitle: \"Endre n\\xe5v\\xe6rende samtaleemne\"\n }\n },\n Actions: {\n ChatList: \"Vis meldingsliste\",\n CompressedHistory: \"Vis komprimert historikk\",\n Export: \"Eksporter samtaler\",\n Copy: \"Kopier\",\n Stop: \"Stopp\",\n Retry: \"Pr\\xf8v igjen\",\n Pin: \"Fest\",\n PinToastContent: \"1 samtale er festet til forh\\xe5ndsdefinerte oppfordringer\",\n PinToastAction: \"Se\",\n Delete: \"Slett\",\n Edit: \"Rediger\",\n RefreshTitle: \"Oppdater tittel\",\n RefreshToast: \"Foresp\\xf8rsel om titteloppdatering sendt\"\n },\n Commands: {\n new: \"Ny samtale\",\n newm: \"Start samtale fra maske\",\n next: \"Neste samtale\",\n prev: \"Forrige samtale\",\n clear: \"Rydd kontekst\",\n del: \"Slett samtale\"\n },\n InputActions: {\n Stop: \"Stopp respons\",\n ToBottom: \"Rull til nyeste\",\n Theme: {\n auto: \"Automatisk tema\",\n light: \"Lyst tema\",\n dark: \"M\\xf8rkt tema\"\n },\n Prompt: \"Hurtigkommando\",\n Masks: \"Alle masker\",\n Clear: \"Rydd samtale\",\n Settings: \"Samtaleinnstillinger\",\n UploadImage: \"Last opp bilde\"\n },\n Rename: \"Gi nytt navn til samtale\",\n Typing: \"Skriver…\",\n Input: (submitKey)=>{\n var inputHints = `${submitKey} send`;\n if (submitKey === String(_store_config__WEBPACK_IMPORTED_MODULE_0__.SubmitKey.Enter)) {\n inputHints += \",Shift + Enter for linjeskift\";\n }\n return inputHints + \",/ for \\xe5 utl\\xf8se autoutfylling, : for \\xe5 utl\\xf8se kommando\";\n },\n Send: \"Send\",\n Config: {\n Reset: \"Fjern minne\",\n SaveAs: \"Lagre som maske\"\n },\n IsContext: \"Forh\\xe5ndsdefinerte oppfordringer\"\n },\n Export: {\n Title: \"Del samtalehistorikk\",\n Copy: \"Kopier alt\",\n Download: \"Last ned fil\",\n Share: \"Del til ShareGPT\",\n MessageFromYou: \"Bruker\",\n MessageFromChatGPT: \"ChatGPT\",\n Format: {\n Title: \"Eksporterformat\",\n SubTitle: \"Kan eksporteres som Markdown-tekst eller PNG-bilde\"\n },\n IncludeContext: {\n Title: \"Inkluder maske kontekst\",\n SubTitle: \"Skal maske kontekst vises i meldinger\"\n },\n Steps: {\n Select: \"Velg\",\n Preview: \"Forh\\xe5ndsvis\"\n },\n Image: {\n Toast: \"Genererer skjermbilde\",\n Modal: \"Langtrykk eller h\\xf8yreklikk for \\xe5 lagre bilde\"\n }\n },\n Select: {\n Search: \"S\\xf8k meldinger\",\n All: \"Velg alle\",\n Latest: \"Siste meldinger\",\n Clear: \"Fjern valg\"\n },\n Memory: {\n Title: \"Historisk sammendrag\",\n EmptyContent: \"Samtaleinnholdet er for kort, ingen oppsummering n\\xf8dvendig\",\n Send: \"Automatisk komprimere samtalehistorikk og sende som kontekst\",\n Copy: \"Kopier sammendrag\",\n Reset: \"[unused]\",\n ResetConfirm: \"Er du sikker p\\xe5 at du vil t\\xf8mme historisk sammendrag?\"\n },\n Home: {\n NewChat: \"Ny samtale\",\n DeleteChat: \"Er du sikker p\\xe5 at du vil slette den valgte samtalen?\",\n DeleteToast: \"Samtale slettet\",\n Revert: \"Angre\"\n },\n Settings: {\n Title: \"Innstillinger\",\n SubTitle: \"Alle innstillingsalternativer\",\n Danger: {\n Reset: {\n Title: \"Tilbakestill alle innstillinger\",\n SubTitle: \"Tilbakestill alle innstillingsalternativer til standardverdier\",\n Action: \"Tilbakestill n\\xe5\",\n Confirm: \"Bekreft tilbakestilling av alle innstillinger?\"\n },\n Clear: {\n Title: \"Slett alle data\",\n SubTitle: \"Slett alle samtaler og innstillingsdata\",\n Action: \"Slett n\\xe5\",\n Confirm: \"Bekreft sletting av alle samtaler og innstillingsdata?\"\n }\n },\n Lang: {\n Name: \"Language\",\n All: \"Alle spr\\xe5k\"\n },\n Avatar: \"Profilbilde\",\n FontSize: {\n Title: \"Skriftst\\xf8rrelse\",\n SubTitle: \"Skriftst\\xf8rrelse for samtaleinnhold\"\n },\n FontFamily: {\n Title: \"Chat-skrifttype\",\n SubTitle: \"Skrifttypen for chatinnhold, la st\\xe5 tom for \\xe5 bruke global standardskrifttype\",\n Placeholder: \"Skriftnavn\"\n },\n InjectSystemPrompts: {\n Title: \"Injiser systemprompter\",\n SubTitle: \"Tving inn et systemprompt som simulerer ChatGPT i starten av hver foresp\\xf8rsel\"\n },\n InputTemplate: {\n Title: \"Forh\\xe5ndsbehandling av brukerinput\",\n SubTitle: \"Den nyeste meldingen fra brukeren vil bli fylt ut i denne malen\"\n },\n Update: {\n Version: (x)=>`Nåværende versjon: ${x}`,\n IsLatest: \"Er den nyeste versjonen\",\n CheckUpdate: \"Sjekk oppdateringer\",\n IsChecking: \"Sjekker oppdateringer...\",\n FoundUpdate: (x)=>`Ny versjon oppdaget: ${x}`,\n GoToUpdate: \"G\\xe5 til oppdatering\"\n },\n SendKey: \"Send-knapp\",\n Theme: \"Tema\",\n TightBorder: \"Ingen ramme-modus\",\n SendPreviewBubble: {\n Title: \"Forh\\xe5ndsvisningsboble\",\n SubTitle: \"Forh\\xe5ndsvis Markdown-innhold i en forh\\xe5ndsvisningsboble\"\n },\n AutoGenerateTitle: {\n Title: \"Automatisk generere tittel\",\n SubTitle: \"Generer en passende tittel basert p\\xe5 samtaleinnholdet\"\n },\n Sync: {\n CloudState: \"Skydatasynkronisering\",\n NotSyncYet: \"Har ikke blitt synkronisert enn\\xe5\",\n Success: \"Synkronisering vellykket\",\n Fail: \"Synkronisering mislyktes\",\n Config: {\n Modal: {\n Title: \"Konfigurer sky-synkronisering\",\n Check: \"Sjekk tilgjengelighet\"\n },\n SyncType: {\n Title: \"Synkroniseringstype\",\n SubTitle: \"Velg \\xf8nsket synkroniseringsserver\"\n },\n Proxy: {\n Title: \"Aktiver proxy\",\n SubTitle: \"N\\xe5r du synkroniserer i nettleseren, m\\xe5 proxy v\\xe6re aktivert for \\xe5 unng\\xe5 CORS-restriksjoner\"\n },\n ProxyUrl: {\n Title: \"Proxy-URL\",\n SubTitle: \"Kun for prosjektets innebygde CORS-proxy\"\n },\n WebDav: {\n Endpoint: \"WebDAV-adresse\",\n UserName: \"Brukernavn\",\n Password: \"Passord\"\n },\n UpStash: {\n Endpoint: \"UpStash Redis REST-URL\",\n UserName: \"Sikkerhetskopinavn\",\n Password: \"UpStash Redis REST-token\"\n }\n },\n LocalState: \"Lokal data\",\n Overview: (overview)=>{\n return `${overview.chat} samtaler, ${overview.message} meldinger, ${overview.prompt} oppfordringer, ${overview.mask} masker`;\n },\n ImportFailed: \"Import mislyktes\"\n },\n Mask: {\n Splash: {\n Title: \"Maskestartside\",\n SubTitle: \"Vis maskestartside n\\xe5r du oppretter en ny samtale\"\n },\n Builtin: {\n Title: \"Skjul innebygde masker\",\n SubTitle: \"Skjul innebygde masker i alle maskelister\"\n }\n },\n Prompt: {\n Disable: {\n Title: \"Deaktiver automatisk fullf\\xf8ring av oppfordringer\",\n SubTitle: \"Skriv / i tekstboksen for \\xe5 utl\\xf8se automatisk fullf\\xf8ring\"\n },\n List: \"Egendefinerte oppfordringer\",\n ListCount: (builtin, custom)=>`Innebygde ${builtin}, brukerdedefinerte ${custom}`,\n Edit: \"Rediger\",\n Modal: {\n Title: \"Oppfordringsliste\",\n Add: \"Ny\",\n Search: \"S\\xf8k oppfordringer\"\n },\n EditModal: {\n Title: \"Rediger oppfordring\"\n }\n },\n HistoryCount: {\n Title: \"Antall historiske meldinger\",\n SubTitle: \"Antall historiske meldinger som sendes med hver foresp\\xf8rsel\"\n },\n CompressThreshold: {\n Title: \"Kompressterskel for historiske meldinger\",\n SubTitle: \"N\\xe5r ukomprimerte historiske meldinger overskrider denne verdien, vil de bli komprimert\"\n },\n Usage: {\n Title: \"Saldoforesp\\xf8rsel\",\n SubTitle (used, total) {\n return `Brukt denne måneden $${used}, total abonnementsbeløp $${total}`;\n },\n IsChecking: \"Sjekker...\",\n Check: \"Sjekk p\\xe5 nytt\",\n NoAccess: \"Skriv inn API-n\\xf8kkel eller tilgangspassord for \\xe5 se saldo\"\n },\n Access: {\n SaasStart: {\n Title: \"Bruk NextChat AI\",\n Label: \"(Den mest kostnadseffektive l\\xf8sningen)\",\n SubTitle: \"Offisielt vedlikeholdt av NextChat, klar til bruk uten konfigurasjon, st\\xf8tter de nyeste store modellene som OpenAI o1, GPT-4o og Claude-3.5\",\n ChatNow: \"Chat n\\xe5\"\n },\n AccessCode: {\n Title: \"Adgangskode\",\n SubTitle: \"Administrator har aktivert kryptert tilgang\",\n Placeholder: \"Skriv inn tilgangskoden\"\n },\n CustomEndpoint: {\n Title: \"Egendefinert API\",\n SubTitle: \"Bruk egendefinerte Azure- eller OpenAI-tjenester\"\n },\n Provider: {\n Title: \"Modelltilbyder\",\n SubTitle: \"Bytt til forskjellige tilbydere\"\n },\n OpenAI: {\n ApiKey: {\n Title: \"API-n\\xf8kkel\",\n SubTitle: \"Bruk egendefinert OpenAI-n\\xf8kkel for \\xe5 omg\\xe5 passordtilgangsbegrensninger\",\n Placeholder: \"OpenAI API-n\\xf8kkel\"\n },\n Endpoint: {\n Title: \"API-adresse\",\n SubTitle: \"M\\xe5 inkludere http(s):// utenom standardadresse\"\n }\n },\n Azure: {\n ApiKey: {\n Title: \"API-n\\xf8kkel\",\n SubTitle: \"Bruk egendefinert Azure-n\\xf8kkel for \\xe5 omg\\xe5 passordtilgangsbegrensninger\",\n Placeholder: \"Azure API-n\\xf8kkel\"\n },\n Endpoint: {\n Title: \"API-adresse\",\n SubTitle: \"Eksempel:\"\n },\n ApiVerion: {\n Title: \"API-versjon (azure api versjon)\",\n SubTitle: \"Velg en spesifikk delversjon\"\n }\n },\n Anthropic: {\n ApiKey: {\n Title: \"API-n\\xf8kkel\",\n SubTitle: \"Bruk egendefinert Anthropic-n\\xf8kkel for \\xe5 omg\\xe5 passordtilgangsbegrensninger\",\n Placeholder: \"Anthropic API-n\\xf8kkel\"\n },\n Endpoint: {\n Title: \"API-adresse\",\n SubTitle: \"Eksempel:\"\n },\n ApiVerion: {\n Title: \"API-versjon (claude api versjon)\",\n SubTitle: \"Velg en spesifikk API-versjon\"\n }\n },\n Google: {\n ApiKey: {\n Title: \"API-n\\xf8kkel\",\n SubTitle: \"Hent din API-n\\xf8kkel fra Google AI\",\n Placeholder: \"Skriv inn din Google AI Studio API-n\\xf8kkel\"\n },\n Endpoint: {\n Title: \"Endepunktadresse\",\n SubTitle: \"Eksempel:\"\n },\n ApiVersion: {\n Title: \"API-versjon (kun for gemini-pro)\",\n SubTitle: \"Velg en spesifikk API-versjon\"\n },\n GoogleSafetySettings: {\n Title: \"Google sikkerhetsfiltreringsniv\\xe5\",\n SubTitle: \"Sett innholdsfiltreringsniv\\xe5\"\n }\n },\n Baidu: {\n ApiKey: {\n Title: \"API-n\\xf8kkel\",\n SubTitle: \"Bruk egendefinert Baidu API-n\\xf8kkel\",\n Placeholder: \"Baidu API-n\\xf8kkel\"\n },\n SecretKey: {\n Title: \"Hemmelig n\\xf8kkel\",\n SubTitle: \"Bruk egendefinert Baidu hemmelig n\\xf8kkel\",\n Placeholder: \"Baidu hemmelig n\\xf8kkel\"\n },\n Endpoint: {\n Title: \"API-adresse\",\n SubTitle: \"St\\xf8tter ikke egendefinerte konfigurasjoner. Se .env-konfigurasjon.\"\n }\n },\n ByteDance: {\n ApiKey: {\n Title: \"API-n\\xf8kkel\",\n SubTitle: \"Bruk egendefinert ByteDance API-n\\xf8kkel\",\n Placeholder: \"ByteDance API-n\\xf8kkel\"\n },\n Endpoint: {\n Title: \"API-adresse\",\n SubTitle: \"Eksempel:\"\n }\n },\n Alibaba: {\n ApiKey: {\n Title: \"API-n\\xf8kkel\",\n SubTitle: \"Bruk egendefinert Alibaba Cloud API-n\\xf8kkel\",\n Placeholder: \"Alibaba Cloud API-n\\xf8kkel\"\n },\n Endpoint: {\n Title: \"API-adresse\",\n SubTitle: \"Eksempel:\"\n }\n },\n CustomModel: {\n Title: \"Egendefinert modellnavn\",\n SubTitle: \"Legg til egendefinerte modellalternativer, skill med komma\"\n }\n },\n Model: \"Modell\",\n CompressModel: {\n Title: \"Komprimeringsmodell\",\n SubTitle: \"Modell brukt for \\xe5 komprimere historikken\"\n },\n Temperature: {\n Title: \"Tilfeldighet (temperature)\",\n SubTitle: \"H\\xf8yere verdi gir mer tilfeldige svar\"\n },\n TopP: {\n Title: \"Kjernepr\\xf8vetaking (top_p)\",\n SubTitle: \"Ligner p\\xe5 tilfeldighet, men endre ikke sammen med tilfeldighet\"\n },\n MaxTokens: {\n Title: \"Maksimalt antall tokens per svar (max_tokens)\",\n SubTitle: \"Maksimalt antall tokens brukt i en enkelt interaksjon\"\n },\n PresencePenalty: {\n Title: \"Emnens ferskhet (presence_penalty)\",\n SubTitle: \"H\\xf8yere verdi gir st\\xf8rre sannsynlighet for \\xe5 utvide til nye emner\"\n },\n FrequencyPenalty: {\n Title: \"Frekvensstraff (frequency_penalty)\",\n SubTitle: \"H\\xf8yere verdi gir st\\xf8rre sannsynlighet for \\xe5 redusere gjentakende ord\"\n }\n },\n Store: {\n DefaultTopic: \"Ny samtale\",\n BotHello: \"Hva kan jeg hjelpe deg med?\",\n Error: \"Noe gikk galt, pr\\xf8v igjen senere\",\n Prompt: {\n History: (content)=>\"Dette er oppsummeringen av historiske samtaler som bakgrunn:\" + content,\n Topic: 'Bruk fire til fem ord for \\xe5 returnere en kort oppsummering av temaet, uten forklaring, uten tegnsetting, uten fyllord, uten ekstra tekst, uten fet skrift. Hvis det ikke er noe tema, returner bare \"sladder\".',\n Summarize: \"Oppsummer samtalen kort som en kontekstuell prompt for fremtidige referanser, hold det innen 200 tegn\"\n }\n },\n Copy: {\n Success: \"Kopiert til utklippstavlen\",\n Failed: \"Kopiering mislyktes, vennligst gi tillatelse til utklippstavlen\"\n },\n Download: {\n Success: \"Innholdet er lastet ned til katalogen din.\",\n Failed: \"Nedlasting mislyktes.\"\n },\n Context: {\n Toast: (x)=>`Inneholder ${x} forhåndsinnstilte oppfordringer`,\n Edit: \"N\\xe5v\\xe6rende samtaleinnstillinger\",\n Add: \"Legg til en ny samtale\",\n Clear: \"Konteksten er t\\xf8mt\",\n Revert: \"Gjenopprett konteksten\"\n },\n Plugin: {\n Name: \"Plugin\"\n },\n FineTuned: {\n Sysmessage: \"Du er en assistent\"\n },\n SearchChat: {\n Name: \"S\\xf8k\",\n Page: {\n Title: \"S\\xf8k i chatthistorikk\",\n Search: \"Skriv inn s\\xf8keord\",\n NoResult: \"Ingen resultater funnet\",\n NoData: \"Ingen data\",\n Loading: \"Laster inn\",\n SubTitle: (count)=>`Fant ${count} resultater`\n },\n Item: {\n View: \"Vis\"\n }\n },\n Mask: {\n Name: \"Maske\",\n Page: {\n Title: \"Forh\\xe5ndsdefinerte rollemasker\",\n SubTitle: (count)=>`${count} forhåndsdefinerte rolledefinisjoner`,\n Search: \"S\\xf8k etter rollemasker\",\n Create: \"Opprett ny\"\n },\n Item: {\n Info: (count)=>`Inneholder ${count} forhåndsdefinerte samtaler`,\n Chat: \"Samtale\",\n View: \"Vis\",\n Edit: \"Rediger\",\n Delete: \"Slett\",\n DeleteConfirm: \"Bekreft sletting?\"\n },\n EditModal: {\n Title: (readonly)=>`Rediger forhåndsdefinert maske ${readonly ? \"(kun lesing)\" : \"\"}`,\n Download: \"Last ned forh\\xe5ndsdefinert\",\n Clone: \"Kopier forh\\xe5ndsdefinert\"\n },\n Config: {\n Avatar: \"Rollebilde\",\n Name: \"Rolle navn\",\n Sync: {\n Title: \"Bruk globale innstillinger\",\n SubTitle: \"Bruker n\\xe5v\\xe6rende samtale globale modellinnstillinger\",\n Confirm: \"De tilpassede innstillingene for den n\\xe5v\\xe6rende samtalen vil bli overskrevet automatisk. Bekreft at du vil bruke globale innstillinger?\"\n },\n HideContext: {\n Title: \"Skjul forh\\xe5ndsdefinerte samtaler\",\n SubTitle: \"N\\xe5r skjult, vil forh\\xe5ndsdefinerte samtaler ikke vises i chat-grensesnittet\"\n },\n Share: {\n Title: \"Del denne masken\",\n SubTitle: \"Generer en direkte lenke til denne masken\",\n Action: \"Kopier lenke\"\n }\n }\n },\n NewChat: {\n Return: \"Tilbake\",\n Skip: \"Start direkte\",\n NotShow: \"Vis ikke igjen\",\n ConfirmNoShow: \"Bekreft deaktivering? Du kan aktivere det igjen i innstillingene n\\xe5r som helst.\",\n Title: \"Velg en maske\",\n SubTitle: \"Start n\\xe5, og f\\xe5 tanker som kolliderer med sjelen bak masken\",\n More: \"Se alle\"\n },\n URLCommand: {\n Code: \"Oppdaget at lenken allerede inneholder tilgangskode. \\xd8nsker du \\xe5 fylle den ut automatisk?\",\n Settings: \"Oppdaget at lenken inneholder forh\\xe5ndsinnstillinger. \\xd8nsker du \\xe5 fylle dem ut automatisk?\"\n },\n UI: {\n Confirm: \"Bekreft\",\n Cancel: \"Avbryt\",\n Close: \"Lukk\",\n Create: \"Opprett\",\n Edit: \"Rediger\",\n Export: \"Eksporter\",\n Import: \"Importer\",\n Sync: \"Synkroniser\",\n Config: \"Konfigurer\"\n },\n Exporter: {\n Description: {\n Title: \"Bare meldinger etter at konteksten er ryddet vil bli vist\"\n },\n Model: \"Modell\",\n Messages: \"Meldinger\",\n Topic: \"Emne\",\n Time: \"Tid\"\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (no);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUNWdUwsTUFBTTtJQUNSO0lBRUFDLFlBQVk7UUFDVkMsTUFBTTtRQUNOeEosVUFDRTtJQUNKO0lBRUF5SixJQUFJO1FBQ0ZuTSxTQUFTO1FBQ1RvTSxRQUFRO1FBQ1JDLE9BQU87UUFDUGQsUUFBUTtRQUNSaEssTUFBTTtRQUNOUixRQUFRO1FBQ1J1TCxRQUFRO1FBQ1JsRyxNQUFNO1FBQ05qRCxRQUFRO0lBQ1Y7SUFDQW9KLFVBQVU7UUFDUkMsYUFBYTtZQUNYNU0sT0FBTztRQUNUO1FBQ0FrSyxPQUFPO1FBQ1AyQyxVQUFVO1FBQ1Y5TCxPQUFPO1FBQ1ArTCxNQUFNO0lBQ1I7QUFDRjtBQUVBLGlFQUFlbk4sRUFBRUEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2xvY2FsZXMvbm8udHM/ZTlmNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJtaXRLZXkgfSBmcm9tIFwiLi4vc3RvcmUvY29uZmlnXCI7XHJcbmltcG9ydCB0eXBlIHsgUGFydGlhbExvY2FsZVR5cGUgfSBmcm9tIFwiLi9pbmRleFwiO1xyXG5pbXBvcnQgeyBnZXRDbGllbnRDb25maWcgfSBmcm9tIFwiLi4vY29uZmlnL2NsaWVudFwiO1xyXG5pbXBvcnQgeyBTQUFTX0NIQVRfVVRNX1VSTCB9IGZyb20gXCJAL2FwcC9jb25zdGFudFwiO1xyXG5jb25zdCBpc0FwcCA9ICEhZ2V0Q2xpZW50Q29uZmlnKCk/LmlzQXBwO1xyXG5cclxuY29uc3Qgbm86IFBhcnRpYWxMb2NhbGVUeXBlID0ge1xyXG4gIFdJUDogXCJBcmJlaWQgcMOlZ8OlciAuLi5cIixcclxuICBFcnJvcjoge1xyXG4gICAgVW5hdXRob3JpemVkOiBpc0FwcFxyXG4gICAgICA/IGDwn5iGIFNhbXRhbGVuIGhhciBzdMO4dHQgcMOlIG5vZW4gcHJvYmxlbWVyLCBpa2tlIGJla3ltcmUgZGVnOlxyXG4gICAgXFxcXCAx77iP4oOjIEh2aXMgZHUgdmlsIHN0YXJ0ZSB1dGVuIGtvbmZpZ3VyYXNqb24sIFtrbGlrayBoZXIgZm9yIMOlIGJlZ3lubmUgw6UgY2hhdHRlIHVtaWRkZWxiYXJ0IPCfmoBdKCR7U0FBU19DSEFUX1VUTV9VUkx9KVxyXG4gICAgXFxcXCAy77iP4oOjIEh2aXMgZHUgdmlsIGJydWtlIGRpbmUgZWduZSBPcGVuQUktcmVzc3Vyc2VyLCBrbGlrayBbaGVyXSgvIy9zZXR0aW5ncykgZm9yIMOlIGVuZHJlIGlubnN0aWxsaW5nZW5lIOKame+4j2BcclxuICAgICAgOiBg8J+YhiBTYW10YWxlbiBoYXIgc3TDuHR0IHDDpSBub2VuIHByb2JsZW1lciwgaWtrZSBiZWt5bXJlIGRlZzpcclxuICAgIFxcIDHvuI/ig6MgSHZpcyBkdSB2aWwgc3RhcnRlIHV0ZW4ga29uZmlndXJhc2pvbiwgW2tsaWtrIGhlciBmb3Igw6UgYmVneW5uZSDDpSBjaGF0dGUgdW1pZGRlbGJhcnQg8J+agF0oJHtTQUFTX0NIQVRfVVRNX1VSTH0pXHJcbiAgICBcXCAy77iP4oOjIEh2aXMgZHUgYnJ1a2VyIGVuIHByaXZhdCBkaXN0cmlidXNqb25zdmVyc2pvbiwga2xpa2sgW2hlcl0oLyMvYXV0aCkgZm9yIMOlIHNrcml2ZSBpbm4gdGlsZ2FuZ3Nuw7hra2VsZW4g8J+UkVxyXG4gICAgXFwgM++4j+KDoyBIdmlzIGR1IHZpbCBicnVrZSBkaW5lIGVnbmUgT3BlbkFJLXJlc3N1cnNlciwga2xpa2sgW2hlcl0oLyMvc2V0dGluZ3MpIGZvciDDpSBlbmRyZSBpbm5zdGlsbGluZ2VuZSDimpnvuI9cclxuIGAsXHJcbiAgfSxcclxuICBBdXRoOiB7XHJcbiAgICBUaXRsZTogXCJQYXNzb3JkIHDDpWtyZXZkXCIsXHJcbiAgICBUaXBzOiBcIkFkbWluaXN0cmF0b3IgaGFyIGFrdGl2ZXJ0IHBhc3NvcmRiZXNreXR0ZWxzZS4gVmVubmxpZ3N0IHNrcml2IGlubiB0aWxnYW5nc2tvZGVuIG5lZGVuZm9yXCIsXHJcbiAgICBTdWJUaXBzOiBcIkVsbGVyIHNrcml2IGlubiBkaW4gT3BlbkFJIGVsbGVyIEdvb2dsZSBBUEktbsO4a2tlbFwiLFxyXG4gICAgSW5wdXQ6IFwiU2tyaXYgdGlsZ2FuZ3Nrb2RlbiBoZXJcIixcclxuICAgIENvbmZpcm06IFwiQmVrcmVmdFwiLFxyXG4gICAgTGF0ZXI6IFwiS29tIHRpbGJha2Ugc2VuZXJlXCIsXHJcbiAgICBSZXR1cm46IFwiVGlsYmFrZVwiLFxyXG4gICAgU2Fhc1RpcHM6XHJcbiAgICAgIFwiS29uZmlndXJhc2pvbmVuIGVyIGZvciBrb21wbGlzZXJ0LCBqZWcgdmlsIGJydWtlIGRldCBtZWQgZW4gZ2FuZ1wiLFxyXG4gICAgVG9wVGlwczpcclxuICAgICAgXCLwn6WzIE5leHRDaGF0IEFJIGxhbnNlcmluZ3N0aWxidWQsIGzDpXMgb3BwIE9wZW5BSSBvMSwgR1BULTRvLCBDbGF1ZGUtMy41IG9nIGRlIG55ZXN0ZSBzdG9yZSBtb2RlbGxlbmUgbsOlXCIsXHJcbiAgfSxcclxuICBDaGF0SXRlbToge1xyXG4gICAgQ2hhdEl0ZW1Db3VudDogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50fSBzYW10YWxlcmAsXHJcbiAgfSxcclxuICBDaGF0OiB7XHJcbiAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGBUb3RhbHQgJHtjb3VudH0gc2FtdGFsZXJgLFxyXG4gICAgRWRpdE1lc3NhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwiUmVkaWdlciBtZWxkaW5nc2hpc3Rvcmlra1wiLFxyXG4gICAgICBUb3BpYzoge1xyXG4gICAgICAgIFRpdGxlOiBcIlNhbXRhbGVlbW5lXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiRW5kcmUgbsOldsOmcmVuZGUgc2FtdGFsZWVtbmVcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBBY3Rpb25zOiB7XHJcbiAgICAgIENoYXRMaXN0OiBcIlZpcyBtZWxkaW5nc2xpc3RlXCIsXHJcbiAgICAgIENvbXByZXNzZWRIaXN0b3J5OiBcIlZpcyBrb21wcmltZXJ0IGhpc3Rvcmlra1wiLFxyXG4gICAgICBFeHBvcnQ6IFwiRWtzcG9ydGVyIHNhbXRhbGVyXCIsXHJcbiAgICAgIENvcHk6IFwiS29waWVyXCIsXHJcbiAgICAgIFN0b3A6IFwiU3RvcHBcIixcclxuICAgICAgUmV0cnk6IFwiUHLDuHYgaWdqZW5cIixcclxuICAgICAgUGluOiBcIkZlc3RcIixcclxuICAgICAgUGluVG9hc3RDb250ZW50OlxyXG4gICAgICAgIFwiMSBzYW10YWxlIGVyIGZlc3RldCB0aWwgZm9yaMOlbmRzZGVmaW5lcnRlIG9wcGZvcmRyaW5nZXJcIixcclxuICAgICAgUGluVG9hc3RBY3Rpb246IFwiU2VcIixcclxuICAgICAgRGVsZXRlOiBcIlNsZXR0XCIsXHJcbiAgICAgIEVkaXQ6IFwiUmVkaWdlclwiLFxyXG4gICAgICBSZWZyZXNoVGl0bGU6IFwiT3BwZGF0ZXIgdGl0dGVsXCIsXHJcbiAgICAgIFJlZnJlc2hUb2FzdDogXCJGb3Jlc3DDuHJzZWwgb20gdGl0dGVsb3BwZGF0ZXJpbmcgc2VuZHRcIixcclxuICAgIH0sXHJcbiAgICBDb21tYW5kczoge1xyXG4gICAgICBuZXc6IFwiTnkgc2FtdGFsZVwiLFxyXG4gICAgICBuZXdtOiBcIlN0YXJ0IHNhbXRhbGUgZnJhIG1hc2tlXCIsXHJcbiAgICAgIG5leHQ6IFwiTmVzdGUgc2FtdGFsZVwiLFxyXG4gICAgICBwcmV2OiBcIkZvcnJpZ2Ugc2FtdGFsZVwiLFxyXG4gICAgICBjbGVhcjogXCJSeWRkIGtvbnRla3N0XCIsXHJcbiAgICAgIGRlbDogXCJTbGV0dCBzYW10YWxlXCIsXHJcbiAgICB9LFxyXG4gICAgSW5wdXRBY3Rpb25zOiB7XHJcbiAgICAgIFN0b3A6IFwiU3RvcHAgcmVzcG9uc1wiLFxyXG4gICAgICBUb0JvdHRvbTogXCJSdWxsIHRpbCBueWVzdGVcIixcclxuICAgICAgVGhlbWU6IHtcclxuICAgICAgICBhdXRvOiBcIkF1dG9tYXRpc2sgdGVtYVwiLFxyXG4gICAgICAgIGxpZ2h0OiBcIkx5c3QgdGVtYVwiLFxyXG4gICAgICAgIGRhcms6IFwiTcO4cmt0IHRlbWFcIixcclxuICAgICAgfSxcclxuICAgICAgUHJvbXB0OiBcIkh1cnRpZ2tvbW1hbmRvXCIsXHJcbiAgICAgIE1hc2tzOiBcIkFsbGUgbWFza2VyXCIsXHJcbiAgICAgIENsZWFyOiBcIlJ5ZGQgc2FtdGFsZVwiLFxyXG4gICAgICBTZXR0aW5nczogXCJTYW10YWxlaW5uc3RpbGxpbmdlclwiLFxyXG4gICAgICBVcGxvYWRJbWFnZTogXCJMYXN0IG9wcCBiaWxkZVwiLFxyXG4gICAgfSxcclxuICAgIFJlbmFtZTogXCJHaSBueXR0IG5hdm4gdGlsIHNhbXRhbGVcIixcclxuICAgIFR5cGluZzogXCJTa3JpdmVy4oCmXCIsXHJcbiAgICBJbnB1dDogKHN1Ym1pdEtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHZhciBpbnB1dEhpbnRzID0gYCR7c3VibWl0S2V5fSBzZW5kYDtcclxuICAgICAgaWYgKHN1Ym1pdEtleSA9PT0gU3RyaW5nKFN1Ym1pdEtleS5FbnRlcikpIHtcclxuICAgICAgICBpbnB1dEhpbnRzICs9IFwi77yMU2hpZnQgKyBFbnRlciBmb3IgbGluamVza2lmdFwiO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgaW5wdXRIaW50cyArIFwi77yMLyBmb3Igw6UgdXRsw7hzZSBhdXRvdXRmeWxsaW5nLCA6IGZvciDDpSB1dGzDuHNlIGtvbW1hbmRvXCJcclxuICAgICAgKTtcclxuICAgIH0sXHJcbiAgICBTZW5kOiBcIlNlbmRcIixcclxuICAgIENvbmZpZzoge1xyXG4gICAgICBSZXNldDogXCJGamVybiBtaW5uZVwiLFxyXG4gICAgICBTYXZlQXM6IFwiTGFncmUgc29tIG1hc2tlXCIsXHJcbiAgICB9LFxyXG4gICAgSXNDb250ZXh0OiBcIkZvcmjDpW5kc2RlZmluZXJ0ZSBvcHBmb3JkcmluZ2VyXCIsXHJcbiAgfSxcclxuICBFeHBvcnQ6IHtcclxuICAgIFRpdGxlOiBcIkRlbCBzYW10YWxlaGlzdG9yaWtrXCIsXHJcbiAgICBDb3B5OiBcIktvcGllciBhbHRcIixcclxuICAgIERvd25sb2FkOiBcIkxhc3QgbmVkIGZpbFwiLFxyXG4gICAgU2hhcmU6IFwiRGVsIHRpbCBTaGFyZUdQVFwiLFxyXG4gICAgTWVzc2FnZUZyb21Zb3U6IFwiQnJ1a2VyXCIsXHJcbiAgICBNZXNzYWdlRnJvbUNoYXRHUFQ6IFwiQ2hhdEdQVFwiLFxyXG4gICAgRm9ybWF0OiB7XHJcbiAgICAgIFRpdGxlOiBcIkVrc3BvcnRlcmZvcm1hdFwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJLYW4gZWtzcG9ydGVyZXMgc29tIE1hcmtkb3duLXRla3N0IGVsbGVyIFBORy1iaWxkZVwiLFxyXG4gICAgfSxcclxuICAgIEluY2x1ZGVDb250ZXh0OiB7XHJcbiAgICAgIFRpdGxlOiBcIklua2x1ZGVyIG1hc2tlIGtvbnRla3N0XCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIlNrYWwgbWFza2Uga29udGVrc3QgdmlzZXMgaSBtZWxkaW5nZXJcIixcclxuICAgIH0sXHJcbiAgICBTdGVwczoge1xyXG4gICAgICBTZWxlY3Q6IFwiVmVsZ1wiLFxyXG4gICAgICBQcmV2aWV3OiBcIkZvcmjDpW5kc3Zpc1wiLFxyXG4gICAgfSxcclxuICAgIEltYWdlOiB7XHJcbiAgICAgIFRvYXN0OiBcIkdlbmVyZXJlciBza2plcm1iaWxkZVwiLFxyXG4gICAgICBNb2RhbDogXCJMYW5ndHJ5a2sgZWxsZXIgaMO4eXJla2xpa2sgZm9yIMOlIGxhZ3JlIGJpbGRlXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgU2VsZWN0OiB7XHJcbiAgICBTZWFyY2g6IFwiU8O4ayBtZWxkaW5nZXJcIixcclxuICAgIEFsbDogXCJWZWxnIGFsbGVcIixcclxuICAgIExhdGVzdDogXCJTaXN0ZSBtZWxkaW5nZXJcIixcclxuICAgIENsZWFyOiBcIkZqZXJuIHZhbGdcIixcclxuICB9LFxyXG4gIE1lbW9yeToge1xyXG4gICAgVGl0bGU6IFwiSGlzdG9yaXNrIHNhbW1lbmRyYWdcIixcclxuICAgIEVtcHR5Q29udGVudDogXCJTYW10YWxlaW5uaG9sZGV0IGVyIGZvciBrb3J0LCBpbmdlbiBvcHBzdW1tZXJpbmcgbsO4ZHZlbmRpZ1wiLFxyXG4gICAgU2VuZDogXCJBdXRvbWF0aXNrIGtvbXByaW1lcmUgc2FtdGFsZWhpc3RvcmlrayBvZyBzZW5kZSBzb20ga29udGVrc3RcIixcclxuICAgIENvcHk6IFwiS29waWVyIHNhbW1lbmRyYWdcIixcclxuICAgIFJlc2V0OiBcIlt1bnVzZWRdXCIsXHJcbiAgICBSZXNldENvbmZpcm06IFwiRXIgZHUgc2lra2VyIHDDpSBhdCBkdSB2aWwgdMO4bW1lIGhpc3RvcmlzayBzYW1tZW5kcmFnP1wiLFxyXG4gIH0sXHJcbiAgSG9tZToge1xyXG4gICAgTmV3Q2hhdDogXCJOeSBzYW10YWxlXCIsXHJcbiAgICBEZWxldGVDaGF0OiBcIkVyIGR1IHNpa2tlciBww6UgYXQgZHUgdmlsIHNsZXR0ZSBkZW4gdmFsZ3RlIHNhbXRhbGVuP1wiLFxyXG4gICAgRGVsZXRlVG9hc3Q6IFwiU2FtdGFsZSBzbGV0dGV0XCIsXHJcbiAgICBSZXZlcnQ6IFwiQW5ncmVcIixcclxuICB9LFxyXG4gIFNldHRpbmdzOiB7XHJcbiAgICBUaXRsZTogXCJJbm5zdGlsbGluZ2VyXCIsXHJcbiAgICBTdWJUaXRsZTogXCJBbGxlIGlubnN0aWxsaW5nc2FsdGVybmF0aXZlclwiLFxyXG5cclxuICAgIERhbmdlcjoge1xyXG4gICAgICBSZXNldDoge1xyXG4gICAgICAgIFRpdGxlOiBcIlRpbGJha2VzdGlsbCBhbGxlIGlubnN0aWxsaW5nZXJcIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiVGlsYmFrZXN0aWxsIGFsbGUgaW5uc3RpbGxpbmdzYWx0ZXJuYXRpdmVyIHRpbCBzdGFuZGFyZHZlcmRpZXJcIixcclxuICAgICAgICBBY3Rpb246IFwiVGlsYmFrZXN0aWxsIG7DpVwiLFxyXG4gICAgICAgIENvbmZpcm06IFwiQmVrcmVmdCB0aWxiYWtlc3RpbGxpbmcgYXYgYWxsZSBpbm5zdGlsbGluZ2VyP1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBDbGVhcjoge1xyXG4gICAgICAgIFRpdGxlOiBcIlNsZXR0IGFsbGUgZGF0YVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIlNsZXR0IGFsbGUgc2FtdGFsZXIgb2cgaW5uc3RpbGxpbmdzZGF0YVwiLFxyXG4gICAgICAgIEFjdGlvbjogXCJTbGV0dCBuw6VcIixcclxuICAgICAgICBDb25maXJtOiBcIkJla3JlZnQgc2xldHRpbmcgYXYgYWxsZSBzYW10YWxlciBvZyBpbm5zdGlsbGluZ3NkYXRhP1wiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIExhbmc6IHtcclxuICAgICAgTmFtZTogXCJMYW5ndWFnZVwiLCAvLyBBVFRFTlRJT046IGlmIHlvdSB3YW5uYSBhZGQgYSBuZXcgdHJhbnNsYXRpb24sIHBsZWFzZSBkbyBub3QgdHJhbnNsYXRlIHRoaXMgdmFsdWUsIGxlYXZlIGl0IGFzIGBMYW5ndWFnZWBcclxuICAgICAgQWxsOiBcIkFsbGUgc3Byw6VrXCIsXHJcbiAgICB9LFxyXG4gICAgQXZhdGFyOiBcIlByb2ZpbGJpbGRlXCIsXHJcbiAgICBGb250U2l6ZToge1xyXG4gICAgICBUaXRsZTogXCJTa3JpZnRzdMO4cnJlbHNlXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIlNrcmlmdHN0w7hycmVsc2UgZm9yIHNhbXRhbGVpbm5ob2xkXCIsXHJcbiAgICB9LFxyXG4gICAgRm9udEZhbWlseToge1xyXG4gICAgICBUaXRsZTogXCJDaGF0LXNrcmlmdHR5cGVcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJTa3JpZnR0eXBlbiBmb3IgY2hhdGlubmhvbGQsIGxhIHN0w6UgdG9tIGZvciDDpSBicnVrZSBnbG9iYWwgc3RhbmRhcmRza3JpZnR0eXBlXCIsXHJcbiAgICAgIFBsYWNlaG9sZGVyOiBcIlNrcmlmdG5hdm5cIixcclxuICAgIH0sXHJcbiAgICBJbmplY3RTeXN0ZW1Qcm9tcHRzOiB7XHJcbiAgICAgIFRpdGxlOiBcIkluamlzZXIgc3lzdGVtcHJvbXB0ZXJcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJUdmluZyBpbm4gZXQgc3lzdGVtcHJvbXB0IHNvbSBzaW11bGVyZXIgQ2hhdEdQVCBpIHN0YXJ0ZW4gYXYgaHZlciBmb3Jlc3DDuHJzZWxcIixcclxuICAgIH0sXHJcbiAgICBJbnB1dFRlbXBsYXRlOiB7XHJcbiAgICAgIFRpdGxlOiBcIkZvcmjDpW5kc2JlaGFuZGxpbmcgYXYgYnJ1a2VyaW5wdXRcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJEZW4gbnllc3RlIG1lbGRpbmdlbiBmcmEgYnJ1a2VyZW4gdmlsIGJsaSBmeWx0IHV0IGkgZGVubmUgbWFsZW5cIixcclxuICAgIH0sXHJcblxyXG4gICAgVXBkYXRlOiB7XHJcbiAgICAgIFZlcnNpb246ICh4OiBzdHJpbmcpID0+IGBOw6V2w6ZyZW5kZSB2ZXJzam9uOiAke3h9YCxcclxuICAgICAgSXNMYXRlc3Q6IFwiRXIgZGVuIG55ZXN0ZSB2ZXJzam9uZW5cIixcclxuICAgICAgQ2hlY2tVcGRhdGU6IFwiU2pla2sgb3BwZGF0ZXJpbmdlclwiLFxyXG4gICAgICBJc0NoZWNraW5nOiBcIlNqZWtrZXIgb3BwZGF0ZXJpbmdlci4uLlwiLFxyXG4gICAgICBGb3VuZFVwZGF0ZTogKHg6IHN0cmluZykgPT4gYE55IHZlcnNqb24gb3BwZGFnZXQ6ICR7eH1gLFxyXG4gICAgICBHb1RvVXBkYXRlOiBcIkfDpSB0aWwgb3BwZGF0ZXJpbmdcIixcclxuICAgIH0sXHJcbiAgICBTZW5kS2V5OiBcIlNlbmQta25hcHBcIixcclxuICAgIFRoZW1lOiBcIlRlbWFcIixcclxuICAgIFRpZ2h0Qm9yZGVyOiBcIkluZ2VuIHJhbW1lLW1vZHVzXCIsXHJcbiAgICBTZW5kUHJldmlld0J1YmJsZToge1xyXG4gICAgICBUaXRsZTogXCJGb3Jow6VuZHN2aXNuaW5nc2JvYmxlXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIkZvcmjDpW5kc3ZpcyBNYXJrZG93bi1pbm5ob2xkIGkgZW4gZm9yaMOlbmRzdmlzbmluZ3Nib2JsZVwiLFxyXG4gICAgfSxcclxuICAgIEF1dG9HZW5lcmF0ZVRpdGxlOiB7XHJcbiAgICAgIFRpdGxlOiBcIkF1dG9tYXRpc2sgZ2VuZXJlcmUgdGl0dGVsXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIkdlbmVyZXIgZW4gcGFzc2VuZGUgdGl0dGVsIGJhc2VydCBww6Ugc2FtdGFsZWlubmhvbGRldFwiLFxyXG4gICAgfSxcclxuICAgIFN5bmM6IHtcclxuICAgICAgQ2xvdWRTdGF0ZTogXCJTa3lkYXRhc3lua3JvbmlzZXJpbmdcIixcclxuICAgICAgTm90U3luY1lldDogXCJIYXIgaWtrZSBibGl0dCBzeW5rcm9uaXNlcnQgZW5uw6VcIixcclxuICAgICAgU3VjY2VzczogXCJTeW5rcm9uaXNlcmluZyB2ZWxseWtrZXRcIixcclxuICAgICAgRmFpbDogXCJTeW5rcm9uaXNlcmluZyBtaXNseWt0ZXNcIixcclxuXHJcbiAgICAgIENvbmZpZzoge1xyXG4gICAgICAgIE1vZGFsOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJLb25maWd1cmVyIHNreS1zeW5rcm9uaXNlcmluZ1wiLFxyXG4gICAgICAgICAgQ2hlY2s6IFwiU2pla2sgdGlsZ2plbmdlbGlnaGV0XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBTeW5jVHlwZToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiU3lua3JvbmlzZXJpbmdzdHlwZVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiVmVsZyDDuG5za2V0IHN5bmtyb25pc2VyaW5nc3NlcnZlclwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgUHJveHk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFrdGl2ZXIgcHJveHlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgICBcIk7DpXIgZHUgc3lua3JvbmlzZXJlciBpIG5ldHRsZXNlcmVuLCBtw6UgcHJveHkgdsOmcmUgYWt0aXZlcnQgZm9yIMOlIHVubmfDpSBDT1JTLXJlc3RyaWtzam9uZXJcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFByb3h5VXJsOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJQcm94eS1VUkxcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkt1biBmb3IgcHJvc2pla3RldHMgaW5uZWJ5Z2RlIENPUlMtcHJveHlcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBXZWJEYXY6IHtcclxuICAgICAgICAgIEVuZHBvaW50OiBcIldlYkRBVi1hZHJlc3NlXCIsXHJcbiAgICAgICAgICBVc2VyTmFtZTogXCJCcnVrZXJuYXZuXCIsXHJcbiAgICAgICAgICBQYXNzd29yZDogXCJQYXNzb3JkXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgVXBTdGFzaDoge1xyXG4gICAgICAgICAgRW5kcG9pbnQ6IFwiVXBTdGFzaCBSZWRpcyBSRVNULVVSTFwiLFxyXG4gICAgICAgICAgVXNlck5hbWU6IFwiU2lra2VyaGV0c2tvcGluYXZuXCIsXHJcbiAgICAgICAgICBQYXNzd29yZDogXCJVcFN0YXNoIFJlZGlzIFJFU1QtdG9rZW5cIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG5cclxuICAgICAgTG9jYWxTdGF0ZTogXCJMb2thbCBkYXRhXCIsXHJcbiAgICAgIE92ZXJ2aWV3OiAob3ZlcnZpZXc6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBgJHtvdmVydmlldy5jaGF0fSBzYW10YWxlciwgJHtvdmVydmlldy5tZXNzYWdlfSBtZWxkaW5nZXIsICR7b3ZlcnZpZXcucHJvbXB0fSBvcHBmb3JkcmluZ2VyLCAke292ZXJ2aWV3Lm1hc2t9IG1hc2tlcmA7XHJcbiAgICAgIH0sXHJcbiAgICAgIEltcG9ydEZhaWxlZDogXCJJbXBvcnQgbWlzbHlrdGVzXCIsXHJcbiAgICB9LFxyXG4gICAgTWFzazoge1xyXG4gICAgICBTcGxhc2g6IHtcclxuICAgICAgICBUaXRsZTogXCJNYXNrZXN0YXJ0c2lkZVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIlZpcyBtYXNrZXN0YXJ0c2lkZSBuw6VyIGR1IG9wcHJldHRlciBlbiBueSBzYW10YWxlXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEJ1aWx0aW46IHtcclxuICAgICAgICBUaXRsZTogXCJTa2p1bCBpbm5lYnlnZGUgbWFza2VyXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiU2tqdWwgaW5uZWJ5Z2RlIG1hc2tlciBpIGFsbGUgbWFza2VsaXN0ZXJcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBQcm9tcHQ6IHtcclxuICAgICAgRGlzYWJsZToge1xyXG4gICAgICAgIFRpdGxlOiBcIkRlYWt0aXZlciBhdXRvbWF0aXNrIGZ1bGxmw7hyaW5nIGF2IG9wcGZvcmRyaW5nZXJcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJTa3JpdiAvIGkgdGVrc3Rib2tzZW4gZm9yIMOlIHV0bMO4c2UgYXV0b21hdGlzayBmdWxsZsO4cmluZ1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBMaXN0OiBcIkVnZW5kZWZpbmVydGUgb3BwZm9yZHJpbmdlclwiLFxyXG4gICAgICBMaXN0Q291bnQ6IChidWlsdGluOiBudW1iZXIsIGN1c3RvbTogbnVtYmVyKSA9PlxyXG4gICAgICAgIGBJbm5lYnlnZGUgJHtidWlsdGlufSwgYnJ1a2VyZGVkZWZpbmVydGUgJHtjdXN0b219YCxcclxuICAgICAgRWRpdDogXCJSZWRpZ2VyXCIsXHJcbiAgICAgIE1vZGFsOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiT3BwZm9yZHJpbmdzbGlzdGVcIixcclxuICAgICAgICBBZGQ6IFwiTnlcIixcclxuICAgICAgICBTZWFyY2g6IFwiU8O4ayBvcHBmb3JkcmluZ2VyXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEVkaXRNb2RhbDoge1xyXG4gICAgICAgIFRpdGxlOiBcIlJlZGlnZXIgb3BwZm9yZHJpbmdcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBIaXN0b3J5Q291bnQ6IHtcclxuICAgICAgVGl0bGU6IFwiQW50YWxsIGhpc3Rvcmlza2UgbWVsZGluZ2VyXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIkFudGFsbCBoaXN0b3Jpc2tlIG1lbGRpbmdlciBzb20gc2VuZGVzIG1lZCBodmVyIGZvcmVzcMO4cnNlbFwiLFxyXG4gICAgfSxcclxuICAgIENvbXByZXNzVGhyZXNob2xkOiB7XHJcbiAgICAgIFRpdGxlOiBcIktvbXByZXNzdGVyc2tlbCBmb3IgaGlzdG9yaXNrZSBtZWxkaW5nZXJcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJOw6VyIHVrb21wcmltZXJ0ZSBoaXN0b3Jpc2tlIG1lbGRpbmdlciBvdmVyc2tyaWRlciBkZW5uZSB2ZXJkaWVuLCB2aWwgZGUgYmxpIGtvbXByaW1lcnRcIixcclxuICAgIH0sXHJcblxyXG4gICAgVXNhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwiU2FsZG9mb3Jlc3DDuHJzZWxcIixcclxuICAgICAgU3ViVGl0bGUodXNlZDogYW55LCB0b3RhbDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIGBCcnVrdCBkZW5uZSBtw6VuZWRlbiAkJHt1c2VkfSwgdG90YWwgYWJvbm5lbWVudHNiZWzDuHAgJCR7dG90YWx9YDtcclxuICAgICAgfSxcclxuICAgICAgSXNDaGVja2luZzogXCJTamVra2VyLi4uXCIsXHJcbiAgICAgIENoZWNrOiBcIlNqZWtrIHDDpSBueXR0XCIsXHJcbiAgICAgIE5vQWNjZXNzOiBcIlNrcml2IGlubiBBUEktbsO4a2tlbCBlbGxlciB0aWxnYW5nc3Bhc3NvcmQgZm9yIMOlIHNlIHNhbGRvXCIsXHJcbiAgICB9LFxyXG5cclxuICAgIEFjY2Vzczoge1xyXG4gICAgICBTYWFzU3RhcnQ6IHtcclxuICAgICAgICBUaXRsZTogXCJCcnVrIE5leHRDaGF0IEFJXCIsXHJcbiAgICAgICAgTGFiZWw6IFwiKERlbiBtZXN0IGtvc3RuYWRzZWZmZWt0aXZlIGzDuHNuaW5nZW4pXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIk9mZmlzaWVsdCB2ZWRsaWtlaG9sZHQgYXYgTmV4dENoYXQsIGtsYXIgdGlsIGJydWsgdXRlbiBrb25maWd1cmFzam9uLCBzdMO4dHRlciBkZSBueWVzdGUgc3RvcmUgbW9kZWxsZW5lIHNvbSBPcGVuQUkgbzEsIEdQVC00byBvZyBDbGF1ZGUtMy41XCIsXHJcbiAgICAgICAgQ2hhdE5vdzogXCJDaGF0IG7DpVwiLFxyXG4gICAgICB9LFxyXG5cclxuICAgICAgQWNjZXNzQ29kZToge1xyXG4gICAgICAgIFRpdGxlOiBcIkFkZ2FuZ3Nrb2RlXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiQWRtaW5pc3RyYXRvciBoYXIgYWt0aXZlcnQga3J5cHRlcnQgdGlsZ2FuZ1wiLFxyXG4gICAgICAgIFBsYWNlaG9sZGVyOiBcIlNrcml2IGlubiB0aWxnYW5nc2tvZGVuXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEN1c3RvbUVuZHBvaW50OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiRWdlbmRlZmluZXJ0IEFQSVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIkJydWsgZWdlbmRlZmluZXJ0ZSBBenVyZS0gZWxsZXIgT3BlbkFJLXRqZW5lc3RlclwiLFxyXG4gICAgICB9LFxyXG4gICAgICBQcm92aWRlcjoge1xyXG4gICAgICAgIFRpdGxlOiBcIk1vZGVsbHRpbGJ5ZGVyXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiQnl0dCB0aWwgZm9yc2tqZWxsaWdlIHRpbGJ5ZGVyZVwiLFxyXG4gICAgICB9LFxyXG4gICAgICBPcGVuQUk6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSS1uw7hra2VsXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgICAgXCJCcnVrIGVnZW5kZWZpbmVydCBPcGVuQUktbsO4a2tlbCBmb3Igw6Ugb21nw6UgcGFzc29yZHRpbGdhbmdzYmVncmVuc25pbmdlclwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiT3BlbkFJIEFQSS1uw7hra2VsXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSS1hZHJlc3NlXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJNw6UgaW5rbHVkZXJlIGh0dHAocyk6Ly8gdXRlbm9tIHN0YW5kYXJkYWRyZXNzZVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEF6dXJlOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEktbsO4a2tlbFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiQnJ1ayBlZ2VuZGVmaW5lcnQgQXp1cmUtbsO4a2tlbCBmb3Igw6Ugb21nw6UgcGFzc29yZHRpbGdhbmdzYmVncmVuc25pbmdlclwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQXp1cmUgQVBJLW7DuGtrZWxcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJLWFkcmVzc2VcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkVrc2VtcGVsOlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcmlvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJLXZlcnNqb24gKGF6dXJlIGFwaSB2ZXJzam9uKVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiVmVsZyBlbiBzcGVzaWZpa2sgZGVsdmVyc2pvblwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEFudGhyb3BpYzoge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJLW7DuGtrZWxcIixcclxuICAgICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgICBcIkJydWsgZWdlbmRlZmluZXJ0IEFudGhyb3BpYy1uw7hra2VsIGZvciDDpSBvbWfDpSBwYXNzb3JkdGlsZ2FuZ3NiZWdyZW5zbmluZ2VyXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJBbnRocm9waWMgQVBJLW7DuGtrZWxcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJLWFkcmVzc2VcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkVrc2VtcGVsOlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcmlvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJLXZlcnNqb24gKGNsYXVkZSBhcGkgdmVyc2pvbilcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlZlbGcgZW4gc3Blc2lmaWtrIEFQSS12ZXJzam9uXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgR29vZ2xlOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEktbsO4a2tlbFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiSGVudCBkaW4gQVBJLW7DuGtrZWwgZnJhIEdvb2dsZSBBSVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiU2tyaXYgaW5uIGRpbiBHb29nbGUgQUkgU3R1ZGlvIEFQSS1uw7hra2VsXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkVuZGVwdW5rdGFkcmVzc2VcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkVrc2VtcGVsOlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcnNpb246IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSS12ZXJzam9uIChrdW4gZm9yIGdlbWluaS1wcm8pXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJWZWxnIGVuIHNwZXNpZmlrayBBUEktdmVyc2pvblwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgR29vZ2xlU2FmZXR5U2V0dGluZ3M6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkdvb2dsZSBzaWtrZXJoZXRzZmlsdHJlcmluZ3NuaXbDpVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiU2V0dCBpbm5ob2xkc2ZpbHRyZXJpbmdzbml2w6VcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBCYWlkdToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJLW7DuGtrZWxcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkJydWsgZWdlbmRlZmluZXJ0IEJhaWR1IEFQSS1uw7hra2VsXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJCYWlkdSBBUEktbsO4a2tlbFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgU2VjcmV0S2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJIZW1tZWxpZyBuw7hra2VsXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJCcnVrIGVnZW5kZWZpbmVydCBCYWlkdSBoZW1tZWxpZyBuw7hra2VsXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJCYWlkdSBoZW1tZWxpZyBuw7hra2VsXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJLWFkcmVzc2VcIixcclxuICAgICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgICBcIlN0w7h0dGVyIGlra2UgZWdlbmRlZmluZXJ0ZSBrb25maWd1cmFzam9uZXIuIFNlIC5lbnYta29uZmlndXJhc2pvbi5cIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBCeXRlRGFuY2U6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSS1uw7hra2VsXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJCcnVrIGVnZW5kZWZpbmVydCBCeXRlRGFuY2UgQVBJLW7DuGtrZWxcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkJ5dGVEYW5jZSBBUEktbsO4a2tlbFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSS1hZHJlc3NlXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJFa3NlbXBlbDpcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBBbGliYWJhOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEktbsO4a2tlbFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiQnJ1ayBlZ2VuZGVmaW5lcnQgQWxpYmFiYSBDbG91ZCBBUEktbsO4a2tlbFwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQWxpYmFiYSBDbG91ZCBBUEktbsO4a2tlbFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSS1hZHJlc3NlXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJFa3NlbXBlbDpcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBDdXN0b21Nb2RlbDoge1xyXG4gICAgICAgIFRpdGxlOiBcIkVnZW5kZWZpbmVydCBtb2RlbGxuYXZuXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiTGVnZyB0aWwgZWdlbmRlZmluZXJ0ZSBtb2RlbGxhbHRlcm5hdGl2ZXIsIHNraWxsIG1lZCBrb21tYVwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuXHJcbiAgICBNb2RlbDogXCJNb2RlbGxcIixcclxuICAgIENvbXByZXNzTW9kZWw6IHtcclxuICAgICAgVGl0bGU6IFwiS29tcHJpbWVyaW5nc21vZGVsbFwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJNb2RlbGwgYnJ1a3QgZm9yIMOlIGtvbXByaW1lcmUgaGlzdG9yaWtrZW5cIixcclxuICAgIH0sXHJcbiAgICBUZW1wZXJhdHVyZToge1xyXG4gICAgICBUaXRsZTogXCJUaWxmZWxkaWdoZXQgKHRlbXBlcmF0dXJlKVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJIw7h5ZXJlIHZlcmRpIGdpciBtZXIgdGlsZmVsZGlnZSBzdmFyXCIsXHJcbiAgICB9LFxyXG4gICAgVG9wUDoge1xyXG4gICAgICBUaXRsZTogXCJLamVybmVwcsO4dmV0YWtpbmcgKHRvcF9wKVwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIkxpZ25lciBww6UgdGlsZmVsZGlnaGV0LCBtZW4gZW5kcmUgaWtrZSBzYW1tZW4gbWVkIHRpbGZlbGRpZ2hldFwiLFxyXG4gICAgfSxcclxuICAgIE1heFRva2Vuczoge1xyXG4gICAgICBUaXRsZTogXCJNYWtzaW1hbHQgYW50YWxsIHRva2VucyBwZXIgc3ZhciAobWF4X3Rva2VucylcIixcclxuICAgICAgU3ViVGl0bGU6IFwiTWFrc2ltYWx0IGFudGFsbCB0b2tlbnMgYnJ1a3QgaSBlbiBlbmtlbHQgaW50ZXJha3Nqb25cIixcclxuICAgIH0sXHJcbiAgICBQcmVzZW5jZVBlbmFsdHk6IHtcclxuICAgICAgVGl0bGU6IFwiRW1uZW5zIGZlcnNraGV0IChwcmVzZW5jZV9wZW5hbHR5KVwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIkjDuHllcmUgdmVyZGkgZ2lyIHN0w7hycmUgc2FubnN5bmxpZ2hldCBmb3Igw6UgdXR2aWRlIHRpbCBueWUgZW1uZXJcIixcclxuICAgIH0sXHJcbiAgICBGcmVxdWVuY3lQZW5hbHR5OiB7XHJcbiAgICAgIFRpdGxlOiBcIkZyZWt2ZW5zc3RyYWZmIChmcmVxdWVuY3lfcGVuYWx0eSlcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJIw7h5ZXJlIHZlcmRpIGdpciBzdMO4cnJlIHNhbm5zeW5saWdoZXQgZm9yIMOlIHJlZHVzZXJlIGdqZW50YWtlbmRlIG9yZFwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIFN0b3JlOiB7XHJcbiAgICBEZWZhdWx0VG9waWM6IFwiTnkgc2FtdGFsZVwiLFxyXG4gICAgQm90SGVsbG86IFwiSHZhIGthbiBqZWcgaGplbHBlIGRlZyBtZWQ/XCIsXHJcbiAgICBFcnJvcjogXCJOb2UgZ2lrayBnYWx0LCBwcsO4diBpZ2plbiBzZW5lcmVcIixcclxuICAgIFByb21wdDoge1xyXG4gICAgICBIaXN0b3J5OiAoY29udGVudDogc3RyaW5nKSA9PlxyXG4gICAgICAgIFwiRGV0dGUgZXIgb3Bwc3VtbWVyaW5nZW4gYXYgaGlzdG9yaXNrZSBzYW10YWxlciBzb20gYmFrZ3J1bm46XCIgK1xyXG4gICAgICAgIGNvbnRlbnQsXHJcbiAgICAgIFRvcGljOlxyXG4gICAgICAgICdCcnVrIGZpcmUgdGlsIGZlbSBvcmQgZm9yIMOlIHJldHVybmVyZSBlbiBrb3J0IG9wcHN1bW1lcmluZyBhdiB0ZW1hZXQsIHV0ZW4gZm9ya2xhcmluZywgdXRlbiB0ZWduc2V0dGluZywgdXRlbiBmeWxsb3JkLCB1dGVuIGVrc3RyYSB0ZWtzdCwgdXRlbiBmZXQgc2tyaWZ0LiBIdmlzIGRldCBpa2tlIGVyIG5vZSB0ZW1hLCByZXR1cm5lciBiYXJlIFwic2xhZGRlclwiLicsXHJcbiAgICAgIFN1bW1hcml6ZTpcclxuICAgICAgICBcIk9wcHN1bW1lciBzYW10YWxlbiBrb3J0IHNvbSBlbiBrb250ZWtzdHVlbGwgcHJvbXB0IGZvciBmcmVtdGlkaWdlIHJlZmVyYW5zZXIsIGhvbGQgZGV0IGlubmVuIDIwMCB0ZWduXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgQ29weToge1xyXG4gICAgU3VjY2VzczogXCJLb3BpZXJ0IHRpbCB1dGtsaXBwc3RhdmxlblwiLFxyXG4gICAgRmFpbGVkOiBcIktvcGllcmluZyBtaXNseWt0ZXMsIHZlbm5saWdzdCBnaSB0aWxsYXRlbHNlIHRpbCB1dGtsaXBwc3RhdmxlblwiLFxyXG4gIH0sXHJcbiAgRG93bmxvYWQ6IHtcclxuICAgIFN1Y2Nlc3M6IFwiSW5uaG9sZGV0IGVyIGxhc3RldCBuZWQgdGlsIGthdGFsb2dlbiBkaW4uXCIsXHJcbiAgICBGYWlsZWQ6IFwiTmVkbGFzdGluZyBtaXNseWt0ZXMuXCIsXHJcbiAgfSxcclxuICBDb250ZXh0OiB7XHJcbiAgICBUb2FzdDogKHg6IGFueSkgPT4gYElubmVob2xkZXIgJHt4fSBmb3Jow6VuZHNpbm5zdGlsdGUgb3BwZm9yZHJpbmdlcmAsXHJcbiAgICBFZGl0OiBcIk7DpXbDpnJlbmRlIHNhbXRhbGVpbm5zdGlsbGluZ2VyXCIsXHJcbiAgICBBZGQ6IFwiTGVnZyB0aWwgZW4gbnkgc2FtdGFsZVwiLFxyXG4gICAgQ2xlYXI6IFwiS29udGVrc3RlbiBlciB0w7htdFwiLFxyXG4gICAgUmV2ZXJ0OiBcIkdqZW5vcHByZXR0IGtvbnRla3N0ZW5cIixcclxuICB9LFxyXG4gIFBsdWdpbjoge1xyXG4gICAgTmFtZTogXCJQbHVnaW5cIixcclxuICB9LFxyXG4gIEZpbmVUdW5lZDoge1xyXG4gICAgU3lzbWVzc2FnZTogXCJEdSBlciBlbiBhc3Npc3RlbnRcIixcclxuICB9LFxyXG4gIFNlYXJjaENoYXQ6IHtcclxuICAgIE5hbWU6IFwiU8O4a1wiLFxyXG4gICAgUGFnZToge1xyXG4gICAgICBUaXRsZTogXCJTw7hrIGkgY2hhdHRoaXN0b3Jpa2tcIixcclxuICAgICAgU2VhcmNoOiBcIlNrcml2IGlubiBzw7hrZW9yZFwiLFxyXG4gICAgICBOb1Jlc3VsdDogXCJJbmdlbiByZXN1bHRhdGVyIGZ1bm5ldFwiLFxyXG4gICAgICBOb0RhdGE6IFwiSW5nZW4gZGF0YVwiLFxyXG4gICAgICBMb2FkaW5nOiBcIkxhc3RlciBpbm5cIixcclxuXHJcbiAgICAgIFN1YlRpdGxlOiAoY291bnQ6IG51bWJlcikgPT4gYEZhbnQgJHtjb3VudH0gcmVzdWx0YXRlcmAsXHJcbiAgICB9LFxyXG4gICAgSXRlbToge1xyXG4gICAgICBWaWV3OiBcIlZpc1wiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIE1hc2s6IHtcclxuICAgIE5hbWU6IFwiTWFza2VcIixcclxuICAgIFBhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwiRm9yaMOlbmRzZGVmaW5lcnRlIHJvbGxlbWFza2VyXCIsXHJcbiAgICAgIFN1YlRpdGxlOiAoY291bnQ6IG51bWJlcikgPT5cclxuICAgICAgICBgJHtjb3VudH0gZm9yaMOlbmRzZGVmaW5lcnRlIHJvbGxlZGVmaW5pc2pvbmVyYCxcclxuICAgICAgU2VhcmNoOiBcIlPDuGsgZXR0ZXIgcm9sbGVtYXNrZXJcIixcclxuICAgICAgQ3JlYXRlOiBcIk9wcHJldHQgbnlcIixcclxuICAgIH0sXHJcbiAgICBJdGVtOiB7XHJcbiAgICAgIEluZm86IChjb3VudDogbnVtYmVyKSA9PiBgSW5uZWhvbGRlciAke2NvdW50fSBmb3Jow6VuZHNkZWZpbmVydGUgc2FtdGFsZXJgLFxyXG4gICAgICBDaGF0OiBcIlNhbXRhbGVcIixcclxuICAgICAgVmlldzogXCJWaXNcIixcclxuICAgICAgRWRpdDogXCJSZWRpZ2VyXCIsXHJcbiAgICAgIERlbGV0ZTogXCJTbGV0dFwiLFxyXG4gICAgICBEZWxldGVDb25maXJtOiBcIkJla3JlZnQgc2xldHRpbmc/XCIsXHJcbiAgICB9LFxyXG4gICAgRWRpdE1vZGFsOiB7XHJcbiAgICAgIFRpdGxlOiAocmVhZG9ubHk6IGJvb2xlYW4pID0+XHJcbiAgICAgICAgYFJlZGlnZXIgZm9yaMOlbmRzZGVmaW5lcnQgbWFza2UgJHtyZWFkb25seSA/IFwi77yIa3VuIGxlc2luZ++8iVwiIDogXCJcIn1gLFxyXG4gICAgICBEb3dubG9hZDogXCJMYXN0IG5lZCBmb3Jow6VuZHNkZWZpbmVydFwiLFxyXG4gICAgICBDbG9uZTogXCJLb3BpZXIgZm9yaMOlbmRzZGVmaW5lcnRcIixcclxuICAgIH0sXHJcbiAgICBDb25maWc6IHtcclxuICAgICAgQXZhdGFyOiBcIlJvbGxlYmlsZGVcIixcclxuICAgICAgTmFtZTogXCJSb2xsZSBuYXZuXCIsXHJcbiAgICAgIFN5bmM6IHtcclxuICAgICAgICBUaXRsZTogXCJCcnVrIGdsb2JhbGUgaW5uc3RpbGxpbmdlclwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIkJydWtlciBuw6V2w6ZyZW5kZSBzYW10YWxlIGdsb2JhbGUgbW9kZWxsaW5uc3RpbGxpbmdlclwiLFxyXG4gICAgICAgIENvbmZpcm06XHJcbiAgICAgICAgICBcIkRlIHRpbHBhc3NlZGUgaW5uc3RpbGxpbmdlbmUgZm9yIGRlbiBuw6V2w6ZyZW5kZSBzYW10YWxlbiB2aWwgYmxpIG92ZXJza3JldmV0IGF1dG9tYXRpc2suIEJla3JlZnQgYXQgZHUgdmlsIGJydWtlIGdsb2JhbGUgaW5uc3RpbGxpbmdlcj9cIixcclxuICAgICAgfSxcclxuICAgICAgSGlkZUNvbnRleHQ6IHtcclxuICAgICAgICBUaXRsZTogXCJTa2p1bCBmb3Jow6VuZHNkZWZpbmVydGUgc2FtdGFsZXJcIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiTsOlciBza2p1bHQsIHZpbCBmb3Jow6VuZHNkZWZpbmVydGUgc2FtdGFsZXIgaWtrZSB2aXNlcyBpIGNoYXQtZ3JlbnNlc25pdHRldFwiLFxyXG4gICAgICB9LFxyXG4gICAgICBTaGFyZToge1xyXG4gICAgICAgIFRpdGxlOiBcIkRlbCBkZW5uZSBtYXNrZW5cIixcclxuICAgICAgICBTdWJUaXRsZTogXCJHZW5lcmVyIGVuIGRpcmVrdGUgbGVua2UgdGlsIGRlbm5lIG1hc2tlblwiLFxyXG4gICAgICAgIEFjdGlvbjogXCJLb3BpZXIgbGVua2VcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBOZXdDaGF0OiB7XHJcbiAgICBSZXR1cm46IFwiVGlsYmFrZVwiLFxyXG4gICAgU2tpcDogXCJTdGFydCBkaXJla3RlXCIsXHJcbiAgICBOb3RTaG93OiBcIlZpcyBpa2tlIGlnamVuXCIsXHJcbiAgICBDb25maXJtTm9TaG93OlxyXG4gICAgICBcIkJla3JlZnQgZGVha3RpdmVyaW5nPyBEdSBrYW4gYWt0aXZlcmUgZGV0IGlnamVuIGkgaW5uc3RpbGxpbmdlbmUgbsOlciBzb20gaGVsc3QuXCIsXHJcbiAgICBUaXRsZTogXCJWZWxnIGVuIG1hc2tlXCIsXHJcbiAgICBTdWJUaXRsZTogXCJTdGFydCBuw6UsIG9nIGbDpSB0YW5rZXIgc29tIGtvbGxpZGVyZXIgbWVkIHNqZWxlbiBiYWsgbWFza2VuXCIsXHJcbiAgICBNb3JlOiBcIlNlIGFsbGVcIixcclxuICB9LFxyXG5cclxuICBVUkxDb21tYW5kOiB7XHJcbiAgICBDb2RlOiBcIk9wcGRhZ2V0IGF0IGxlbmtlbiBhbGxlcmVkZSBpbm5laG9sZGVyIHRpbGdhbmdza29kZS4gw5huc2tlciBkdSDDpSBmeWxsZSBkZW4gdXQgYXV0b21hdGlzaz9cIixcclxuICAgIFNldHRpbmdzOlxyXG4gICAgICBcIk9wcGRhZ2V0IGF0IGxlbmtlbiBpbm5laG9sZGVyIGZvcmjDpW5kc2lubnN0aWxsaW5nZXIuIMOYbnNrZXIgZHUgw6UgZnlsbGUgZGVtIHV0IGF1dG9tYXRpc2s/XCIsXHJcbiAgfSxcclxuXHJcbiAgVUk6IHtcclxuICAgIENvbmZpcm06IFwiQmVrcmVmdFwiLFxyXG4gICAgQ2FuY2VsOiBcIkF2YnJ5dFwiLFxyXG4gICAgQ2xvc2U6IFwiTHVra1wiLFxyXG4gICAgQ3JlYXRlOiBcIk9wcHJldHRcIixcclxuICAgIEVkaXQ6IFwiUmVkaWdlclwiLFxyXG4gICAgRXhwb3J0OiBcIkVrc3BvcnRlclwiLFxyXG4gICAgSW1wb3J0OiBcIkltcG9ydGVyXCIsXHJcbiAgICBTeW5jOiBcIlN5bmtyb25pc2VyXCIsXHJcbiAgICBDb25maWc6IFwiS29uZmlndXJlclwiLFxyXG4gIH0sXHJcbiAgRXhwb3J0ZXI6IHtcclxuICAgIERlc2NyaXB0aW9uOiB7XHJcbiAgICAgIFRpdGxlOiBcIkJhcmUgbWVsZGluZ2VyIGV0dGVyIGF0IGtvbnRla3N0ZW4gZXIgcnlkZGV0IHZpbCBibGkgdmlzdFwiLFxyXG4gICAgfSxcclxuICAgIE1vZGVsOiBcIk1vZGVsbFwiLFxyXG4gICAgTWVzc2FnZXM6IFwiTWVsZGluZ2VyXCIsXHJcbiAgICBUb3BpYzogXCJFbW5lXCIsXHJcbiAgICBUaW1lOiBcIlRpZFwiLFxyXG4gIH0sXHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBubztcclxuIl0sIm5hbWVzIjpbIlN1Ym1pdEtleSIsImdldENsaWVudENvbmZpZyIsIlNBQVNfQ0hBVF9VVE1fVVJMIiwiaXNBcHAiLCJubyIsIldJUCIsIkVycm9yIiwiVW5hdXRob3JpemVkIiwiQXV0aCIsIlRpdGxlIiwiVGlwcyIsIlN1YlRpcHMiLCJJbnB1dCIsIkNvbmZpcm0iLCJMYXRlciIsIlJldHVybiIsIlNhYXNUaXBzIiwiVG9wVGlwcyIsIkNoYXRJdGVtIiwiQ2hhdEl0ZW1Db3VudCIsImNvdW50IiwiQ2hhdCIsIlN1YlRpdGxlIiwiRWRpdE1lc3NhZ2UiLCJUb3BpYyIsIkFjdGlvbnMiLCJDaGF0TGlzdCIsIkNvbXByZXNzZWRIaXN0b3J5IiwiRXhwb3J0IiwiQ29weSIsIlN0b3AiLCJSZXRyeSIsIlBpbiIsIlBpblRvYXN0Q29udGVudCIsIlBpblRvYXN0QWN0aW9uIiwiRGVsZXRlIiwiRWRpdCIsIlJlZnJlc2hUaXRsZSIsIlJlZnJlc2hUb2FzdCIsIkNvbW1hbmRzIiwibmV3IiwibmV3bSIsIm5leHQiLCJwcmV2IiwiY2xlYXIiLCJkZWwiLCJJbnB1dEFjdGlvbnMiLCJUb0JvdHRvbSIsIlRoZW1lIiwiYXV0byIsImxpZ2h0IiwiZGFyayIsIlByb21wdCIsIk1hc2tzIiwiQ2xlYXIiLCJTZXR0aW5ncyIsIlVwbG9hZEltYWdlIiwiUmVuYW1lIiwiVHlwaW5nIiwic3VibWl0S2V5IiwiaW5wdXRIaW50cyIsIlN0cmluZyIsIkVudGVyIiwiU2VuZCIsIkNvbmZpZyIsIlJlc2V0IiwiU2F2ZUFzIiwiSXNDb250ZXh0IiwiRG93bmxvYWQiLCJTaGFyZSIsIk1lc3NhZ2VGcm9tWW91IiwiTWVzc2FnZUZyb21DaGF0R1BUIiwiRm9ybWF0IiwiSW5jbHVkZUNvbnRleHQiLCJTdGVwcyIsIlNlbGVjdCIsIlByZXZpZXciLCJJbWFnZSIsIlRvYXN0IiwiTW9kYWwiLCJTZWFyY2giLCJBbGwiLCJMYXRlc3QiLCJNZW1vcnkiLCJFbXB0eUNvbnRlbnQiLCJSZXNldENvbmZpcm0iLCJIb21lIiwiTmV3Q2hhdCIsIkRlbGV0ZUNoYXQiLCJEZWxldGVUb2FzdCIsIlJldmVydCIsIkRhbmdlciIsIkFjdGlvbiIsIkxhbmciLCJOYW1lIiwiQXZhdGFyIiwiRm9udFNpemUiLCJGb250RmFtaWx5IiwiUGxhY2Vob2xkZXIiLCJJbmplY3RTeXN0ZW1Qcm9tcHRzIiwiSW5wdXRUZW1wbGF0ZSIsIlVwZGF0ZSIsIlZlcnNpb24iLCJ4IiwiSXNMYXRlc3QiLCJDaGVja1VwZGF0ZSIsIklzQ2hlY2tpbmciLCJGb3VuZFVwZGF0ZSIsIkdvVG9VcGRhdGUiLCJTZW5kS2V5IiwiVGlnaHRCb3JkZXIiLCJTZW5kUHJldmlld0J1YmJsZSIsIkF1dG9HZW5lcmF0ZVRpdGxlIiwiU3luYyIsIkNsb3VkU3RhdGUiLCJOb3RTeW5jWWV0IiwiU3VjY2VzcyIsIkZhaWwiLCJDaGVjayIsIlN5bmNUeXBlIiwiUHJveHkiLCJQcm94eVVybCIsIldlYkRhdiIsIkVuZHBvaW50IiwiVXNlck5hbWUiLCJQYXNzd29yZCIsIlVwU3Rhc2giLCJMb2NhbFN0YXRlIiwiT3ZlcnZpZXciLCJvdmVydmlldyIsImNoYXQiLCJtZXNzYWdlIiwicHJvbXB0IiwibWFzayIsIkltcG9ydEZhaWxlZCIsIk1hc2siLCJTcGxhc2giLCJCdWlsdGluIiwiRGlzYWJsZSIsIkxpc3QiLCJMaXN0Q291bnQiLCJidWlsdGluIiwiY3VzdG9tIiwiQWRkIiwiRWRpdE1vZGFsIiwiSGlzdG9yeUNvdW50IiwiQ29tcHJlc3NUaHJlc2hvbGQiLCJVc2FnZSIsInVzZWQiLCJ0b3RhbCIsIk5vQWNjZXNzIiwiQWNjZXNzIiwiU2Fhc1N0YXJ0IiwiTGFiZWwiLCJDaGF0Tm93IiwiQWNjZXNzQ29kZSIsIkN1c3RvbUVuZHBvaW50IiwiUHJvdmlkZXIiLCJPcGVuQUkiLCJBcGlLZXkiLCJBenVyZSIsIkFwaVZlcmlvbiIsIkFudGhyb3BpYyIsIkdvb2dsZSIsIkFwaVZlcnNpb24iLCJHb29nbGVTYWZldHlTZXR0aW5ncyIsIkJhaWR1IiwiU2VjcmV0S2V5IiwiQnl0ZURhbmNlIiwiQWxpYmFiYSIsIkN1c3RvbU1vZGVsIiwiTW9kZWwiLCJDb21wcmVzc01vZGVsIiwiVGVtcGVyYXR1cmUiLCJUb3BQIiwiTWF4VG9rZW5zIiwiUHJlc2VuY2VQZW5hbHR5IiwiRnJlcXVlbmN5UGVuYWx0eSIsIlN0b3JlIiwiRGVmYXVsdFRvcGljIiwiQm90SGVsbG8iLCJIaXN0b3J5IiwiY29udGVudCIsIlN1bW1hcml6ZSIsIkZhaWxlZCIsIkNvbnRleHQiLCJQbHVnaW4iLCJGaW5lVHVuZWQiLCJTeXNtZXNzYWdlIiwiU2VhcmNoQ2hhdCIsIlBhZ2UiLCJOb1Jlc3VsdCIsIk5vRGF0YSIsIkxvYWRpbmciLCJJdGVtIiwiVmlldyIsIkNyZWF0ZSIsIkluZm8iLCJEZWxldGVDb25maXJtIiwicmVhZG9ubHkiLCJDbG9uZSIsIkhpZGVDb250ZXh0IiwiU2tpcCIsIk5vdFNob3ciLCJDb25maXJtTm9TaG93IiwiTW9yZSIsIlVSTENvbW1hbmQiLCJDb2RlIiwiVUkiLCJDYW5jZWwiLCJDbG9zZSIsIkltcG9ydCIsIkV4cG9ydGVyIiwiRGVzY3JpcHRpb24iLCJNZXNzYWdlcyIsIlRpbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/locales/no.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/locales/pt.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/locales/pt.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _store_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../store/config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n\n\n\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_1__.getClientConfig)()?.isApp;\nconst pt = {\n WIP: \"Em breve...\",\n Error: {\n Unauthorized: isApp ? `😆 A conversa encontrou alguns problemas, não se preocupe:\r\n \\\\ 1️⃣ Se você quiser começar sem configuração, [clique aqui para começar a conversar imediatamente 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\\\ 2️⃣ Se você deseja usar seus próprios recursos OpenAI, clique [aqui](/#/settings) para modificar as configurações ⚙️` : `😆 A conversa encontrou alguns problemas, não se preocupe:\r\n \\ 1️⃣ Se você quiser começar sem configuração, [clique aqui para começar a conversar imediatamente 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\ 2️⃣ Se você estiver usando uma versão de implantação privada, clique [aqui](/#/auth) para inserir a chave de acesso 🔑\r\n \\ 3️⃣ Se você deseja usar seus próprios recursos OpenAI, clique [aqui](/#/settings) para modificar as configurações ⚙️\r\n`\n },\n Auth: {\n Title: \"Necess\\xe1rio C\\xf3digo de Acesso\",\n Tips: \"Por favor, insira o c\\xf3digo de acesso abaixo\",\n SubTips: \"Ou insira sua Chave API OpenAI\",\n Input: \"c\\xf3digo de acesso\",\n Confirm: \"Confirmar\",\n Later: \"Depois\",\n Return: \"Voltar\",\n SaasTips: \"A configura\\xe7\\xe3o \\xe9 muito complicada, quero us\\xe1-la imediatamente\",\n TopTips: \"\\uD83E\\uDD73 Oferta de Lan\\xe7amento do NextChat AI, desbloqueie o OpenAI o1, GPT-4o, Claude-3.5 e os mais recentes grandes modelos agora\"\n },\n ChatItem: {\n ChatItemCount: (count)=>`${count} mensagens`\n },\n Chat: {\n SubTitle: (count)=>`${count} mensagens`,\n EditMessage: {\n Title: \"Editar Todas as Mensagens\",\n Topic: {\n Title: \"T\\xf3pico\",\n SubTitle: \"Mudar o t\\xf3pico atual\"\n }\n },\n Actions: {\n ChatList: \"Ir Para Lista de Chat\",\n CompressedHistory: \"Prompt de Mem\\xf3ria Hist\\xf3rica Comprimida\",\n Export: \"Exportar Todas as Mensagens como Markdown\",\n Copy: \"Copiar\",\n Stop: \"Parar\",\n Retry: \"Tentar Novamente\",\n Pin: \"Fixar\",\n PinToastContent: \"Fixada 1 mensagem para prompts contextuais\",\n PinToastAction: \"Visualizar\",\n Delete: \"Deletar\",\n Edit: \"Editar\",\n RefreshTitle: \"Atualizar T\\xedtulo\",\n RefreshToast: \"Solicita\\xe7\\xe3o de atualiza\\xe7\\xe3o de t\\xedtulo enviada\"\n },\n Commands: {\n new: \"Iniciar um novo chat\",\n newm: \"Iniciar um novo chat com m\\xe1scara\",\n next: \"Pr\\xf3ximo Chat\",\n prev: \"Chat Anterior\",\n clear: \"Limpar Contexto\",\n del: \"Deletar Chat\"\n },\n InputActions: {\n Stop: \"Parar\",\n ToBottom: \"Para o Mais Recente\",\n Theme: {\n auto: \"Autom\\xe1tico\",\n light: \"Tema Claro\",\n dark: \"Tema Escuro\"\n },\n Prompt: \"Prompts\",\n Masks: \"M\\xe1scaras\",\n Clear: \"Limpar Contexto\",\n Settings: \"Configura\\xe7\\xf5es\"\n },\n Rename: \"Renomear Chat\",\n Typing: \"Digitando…\",\n Input: (submitKey)=>{\n var inputHints = `${submitKey} para enviar`;\n if (submitKey === String(_store_config__WEBPACK_IMPORTED_MODULE_0__.SubmitKey.Enter)) {\n inputHints += \", Shift + Enter para quebrar linha\";\n }\n return inputHints + \", / para buscar prompts, : para usar comandos\";\n },\n Send: \"Enviar\",\n Config: {\n Reset: \"Redefinir para Padr\\xe3o\",\n SaveAs: \"Salvar como M\\xe1scara\"\n },\n IsContext: \"Prompt Contextual\"\n },\n Export: {\n Title: \"Exportar Mensagens\",\n Copy: \"Copiar Tudo\",\n Download: \"Baixar\",\n MessageFromYou: \"Mensagem De Voc\\xea\",\n MessageFromChatGPT: \"Mensagem De ChatGPT\",\n Share: \"Compartilhar para ShareGPT\",\n Format: {\n Title: \"Formato de Exporta\\xe7\\xe3o\",\n SubTitle: \"Markdown ou Imagem PNG\"\n },\n IncludeContext: {\n Title: \"Incluindo Contexto\",\n SubTitle: \"Exportar prompts de contexto na m\\xe1scara ou n\\xe3o\"\n },\n Steps: {\n Select: \"Selecionar\",\n Preview: \"Pr\\xe9-visualizar\"\n },\n Image: {\n Toast: \"Capturando Imagem...\",\n Modal: \"Pressione longamente ou clique com o bot\\xe3o direito para salvar a imagem\"\n }\n },\n Select: {\n Search: \"Buscar\",\n All: \"Selecionar Tudo\",\n Latest: \"Selecionar Mais Recente\",\n Clear: \"Limpar\"\n },\n Memory: {\n Title: \"Prompt de Mem\\xf3ria\",\n EmptyContent: \"Nada ainda.\",\n Send: \"Enviar Mem\\xf3ria\",\n Copy: \"Copiar Mem\\xf3ria\",\n Reset: \"Resetar Sess\\xe3o\",\n ResetConfirm: \"Resetar ir\\xe1 limpar o hist\\xf3rico de conversa atual e a mem\\xf3ria hist\\xf3rica. Voc\\xea tem certeza que quer resetar?\"\n },\n Home: {\n NewChat: \"Novo Chat\",\n DeleteChat: \"Confirmar para deletar a conversa selecionada?\",\n DeleteToast: \"Chat Deletado\",\n Revert: \"Reverter\"\n },\n Settings: {\n Title: \"Configura\\xe7\\xf5es\",\n SubTitle: \"Todas as Configura\\xe7\\xf5es\",\n Danger: {\n Reset: {\n Title: \"Resetar Todas as Configura\\xe7\\xf5es\",\n SubTitle: \"Resetar todos os itens de configura\\xe7\\xe3o para o padr\\xe3o\",\n Action: \"Resetar\",\n Confirm: \"Confirmar para resetar todas as configura\\xe7\\xf5es para o padr\\xe3o?\"\n },\n Clear: {\n Title: \"Limpar Todos os Dados\",\n SubTitle: \"Limpar todas as mensagens e configura\\xe7\\xf5es\",\n Action: \"Limpar\",\n Confirm: \"Confirmar para limpar todas as mensagens e configura\\xe7\\xf5es?\"\n }\n },\n Lang: {\n Name: \"Language\",\n All: \"Todos os Idiomas\"\n },\n Avatar: \"Avatar\",\n FontSize: {\n Title: \"Tamanho da Fonte\",\n SubTitle: \"Ajustar o tamanho da fonte do conte\\xfado do chat\"\n },\n FontFamily: {\n Title: \"Fonte do Chat\",\n SubTitle: \"Fonte do conte\\xfado do chat, deixe vazio para aplicar a fonte padr\\xe3o global\",\n Placeholder: \"Nome da Fonte\"\n },\n InjectSystemPrompts: {\n Title: \"Inserir Prompts de Sistema\",\n SubTitle: \"Inserir um prompt de sistema global para cada requisi\\xe7\\xe3o\"\n },\n InputTemplate: {\n Title: \"Modelo de Entrada\",\n SubTitle: \"A mensagem mais recente ser\\xe1 preenchida neste modelo\"\n },\n Update: {\n Version: (x)=>`Versão: ${x}`,\n IsLatest: \"\\xdaltima vers\\xe3o\",\n CheckUpdate: \"Verificar Atualiza\\xe7\\xe3o\",\n IsChecking: \"Verificando atualiza\\xe7\\xe3o...\",\n FoundUpdate: (x)=>`Nova versão encontrada: ${x}`,\n GoToUpdate: \"Atualizar\"\n },\n SendKey: \"Tecla de Envio\",\n Theme: \"Tema\",\n TightBorder: \"Borda Ajustada\",\n SendPreviewBubble: {\n Title: \"Bolha de Pr\\xe9-visualiza\\xe7\\xe3o de Envio\",\n SubTitle: \"Pr\\xe9-visualizar markdown na bolha\"\n },\n AutoGenerateTitle: {\n Title: \"Gerar T\\xedtulo Automaticamente\",\n SubTitle: \"Gerar um t\\xedtulo adequado baseado no conte\\xfado da conversa\"\n },\n Sync: {\n CloudState: \"\\xdaltima Atualiza\\xe7\\xe3o\",\n NotSyncYet: \"Ainda n\\xe3o sincronizado\",\n Success: \"Sincroniza\\xe7\\xe3o bem sucedida\",\n Fail: \"Falha na sincroniza\\xe7\\xe3o\",\n Config: {\n Modal: {\n Title: \"Configurar Sincroniza\\xe7\\xe3o\",\n Check: \"Verificar Conex\\xe3o\"\n },\n SyncType: {\n Title: \"Tipo de Sincroniza\\xe7\\xe3o\",\n SubTitle: \"Escolha seu servi\\xe7o de sincroniza\\xe7\\xe3o favorito\"\n },\n Proxy: {\n Title: \"Habilitar Proxy CORS\",\n SubTitle: \"Habilitar um proxy para evitar restri\\xe7\\xf5es de cross-origin\"\n },\n ProxyUrl: {\n Title: \"Endpoint de Proxy\",\n SubTitle: \"Apenas aplic\\xe1vel ao proxy CORS embutido para este projeto\"\n },\n WebDav: {\n Endpoint: \"Endpoint WebDAV\",\n UserName: \"Nome de Usu\\xe1rio\",\n Password: \"Senha\"\n },\n UpStash: {\n Endpoint: \"URL REST Redis UpStash\",\n UserName: \"Nome do Backup\",\n Password: \"Token REST Redis UpStash\"\n }\n },\n LocalState: \"Dados Locais\",\n Overview: (overview)=>{\n return `${overview.chat} chats,${overview.message} mensagens,${overview.prompt} prompts,${overview.mask} máscaras`;\n },\n ImportFailed: \"Falha ao importar do arquivo\"\n },\n Mask: {\n Splash: {\n Title: \"Tela de In\\xedcio da M\\xe1scara\",\n SubTitle: \"Mostrar uma tela de in\\xedcio da m\\xe1scara antes de iniciar novo chat\"\n },\n Builtin: {\n Title: \"Esconder M\\xe1scaras Embutidas\",\n SubTitle: \"Esconder m\\xe1scaras embutidas na lista de m\\xe1scaras\"\n }\n },\n Prompt: {\n Disable: {\n Title: \"Desabilitar auto-completar\",\n SubTitle: \"Digite / para acionar auto-completar\"\n },\n List: \"Lista de Prompts\",\n ListCount: (builtin, custom)=>`${builtin} embutidos, ${custom} definidos pelo usuário`,\n Edit: \"Editar\",\n Modal: {\n Title: \"Lista de Prompts\",\n Add: \"Adicionar Um\",\n Search: \"Buscar Prompts\"\n },\n EditModal: {\n Title: \"Editar Prompt\"\n }\n },\n HistoryCount: {\n Title: \"Contagem de Mensagens Anexadas\",\n SubTitle: \"N\\xfamero de mensagens enviadas anexadas por requisi\\xe7\\xe3o\"\n },\n CompressThreshold: {\n Title: \"Limite de Compress\\xe3o de Hist\\xf3rico\",\n SubTitle: \"Ir\\xe1 comprimir se o comprimento das mensagens n\\xe3o comprimidas exceder o valor\"\n },\n Usage: {\n Title: \"Saldo da Conta\",\n SubTitle (used, total) {\n return `Usado este mês ${used}, assinatura ${total}`;\n },\n IsChecking: \"Verificando...\",\n Check: \"Verificar\",\n NoAccess: \"Insira a Chave API para verificar o saldo\"\n },\n Access: {\n SaasStart: {\n Title: \"Usar NextChat AI\",\n Label: \"(A solu\\xe7\\xe3o mais econ\\xf4mica)\",\n SubTitle: \"Mantido oficialmente pelo NextChat, pronto para uso sem configura\\xe7\\xe3o, suporta os mais recentes grandes modelos como OpenAI o1, GPT-4o e Claude-3.5\",\n ChatNow: \"Conversar agora\"\n },\n AccessCode: {\n Title: \"C\\xf3digo de Acesso\",\n SubTitle: \"Controle de Acesso Habilitado\",\n Placeholder: \"Insira o C\\xf3digo\"\n },\n CustomEndpoint: {\n Title: \"Endpoint Personalizado\",\n SubTitle: \"Use servi\\xe7o personalizado Azure ou OpenAI\"\n },\n Provider: {\n Title: \"Provedor do Modelo\",\n SubTitle: \"Selecione Azure ou OpenAI\"\n },\n OpenAI: {\n ApiKey: {\n Title: \"Chave API OpenAI\",\n SubTitle: \"Usar Chave API OpenAI personalizada\",\n Placeholder: \"sk-xxx\"\n },\n Endpoint: {\n Title: \"Endpoint OpenAI\",\n SubTitle: \"Deve come\\xe7ar com http(s):// ou usar /api/openai como padr\\xe3o\"\n }\n },\n Azure: {\n ApiKey: {\n Title: \"Chave API Azure\",\n SubTitle: \"Verifique sua chave API do console Azure\",\n Placeholder: \"Chave API Azure\"\n },\n Endpoint: {\n Title: \"Endpoint Azure\",\n SubTitle: \"Exemplo: \"\n },\n ApiVerion: {\n Title: \"Vers\\xe3o API Azure\",\n SubTitle: \"Verifique sua vers\\xe3o API do console Azure\"\n }\n },\n Anthropic: {\n ApiKey: {\n Title: \"Chave API Anthropic\",\n SubTitle: \"Verifique sua chave API do console Anthropic\",\n Placeholder: \"Chave API Anthropic\"\n },\n Endpoint: {\n Title: \"Endpoint Address\",\n SubTitle: \"Exemplo: \"\n },\n ApiVerion: {\n Title: \"Vers\\xe3o API (Vers\\xe3o api claude)\",\n SubTitle: \"Verifique sua vers\\xe3o API do console Anthropic\"\n }\n },\n CustomModel: {\n Title: \"Modelos Personalizados\",\n SubTitle: \"Op\\xe7\\xf5es de modelo personalizado, separados por v\\xedrgula\"\n }\n },\n Model: \"Modelo\",\n CompressModel: {\n Title: \"Modelo de Compress\\xe3o\",\n SubTitle: \"Modelo usado para comprimir o hist\\xf3rico\"\n },\n Temperature: {\n Title: \"Temperatura\",\n SubTitle: \"Um valor maior torna a sa\\xedda mais aleat\\xf3ria\"\n },\n TopP: {\n Title: \"Top P\",\n SubTitle: \"N\\xe3o altere este valor junto com a temperatura\"\n },\n MaxTokens: {\n Title: \"M\\xe1ximo de Tokens\",\n SubTitle: \"Comprimento m\\xe1ximo de tokens de entrada e tokens gerados\"\n },\n PresencePenalty: {\n Title: \"Penalidade de Presen\\xe7a\",\n SubTitle: \"Um valor maior aumenta a probabilidade de falar sobre novos t\\xf3picos\"\n },\n FrequencyPenalty: {\n Title: \"Penalidade de Frequ\\xeancia\",\n SubTitle: \"Um valor maior diminui a probabilidade de repetir a mesma linha\"\n }\n },\n Store: {\n DefaultTopic: \"Nova Conversa\",\n BotHello: \"Ol\\xe1! Como posso ajud\\xe1-lo hoje?\",\n Error: \"Algo deu errado, por favor tente novamente mais tarde.\",\n Prompt: {\n History: (content)=>\"Este \\xe9 um resumo do hist\\xf3rico de chat como um recapitulativo: \" + content,\n Topic: \"Por favor, gere um t\\xedtulo de quatro a cinco palavras resumindo nossa conversa sem qualquer introdu\\xe7\\xe3o, pontua\\xe7\\xe3o, aspas, per\\xedodos, s\\xedmbolos ou texto adicional. Remova as aspas que o envolvem.\",\n Summarize: \"Resuma a discuss\\xe3o brevemente em 200 palavras ou menos para usar como um prompt para o contexto futuro.\"\n }\n },\n Copy: {\n Success: \"Copiado para a \\xe1rea de transfer\\xeancia\",\n Failed: \"Falha na c\\xf3pia, por favor conceda permiss\\xe3o para acessar a \\xe1rea de transfer\\xeancia\"\n },\n Download: {\n Success: \"Conte\\xfado baixado para seu diret\\xf3rio.\",\n Failed: \"Falha no download.\"\n },\n Context: {\n Toast: (x)=>`Com ${x} prompts contextuais`,\n Edit: \"Configura\\xe7\\xf5es do Chat Atual\",\n Add: \"Adicionar um Prompt\",\n Clear: \"Contexto Limpo\",\n Revert: \"Reverter\"\n },\n Plugin: {\n Name: \"Plugin\"\n },\n FineTuned: {\n Sysmessage: \"Voc\\xea \\xe9 um assistente que\"\n },\n SearchChat: {\n Name: \"Pesquisar\",\n Page: {\n Title: \"Pesquisar hist\\xf3rico de chat\",\n Search: \"Digite palavras-chave para pesquisa\",\n NoResult: \"Nenhum resultado encontrado\",\n NoData: \"Sem dados\",\n Loading: \"Carregando\",\n SubTitle: (count)=>`Encontrado ${count} resultados`\n },\n Item: {\n View: \"Ver\"\n }\n },\n Mask: {\n Name: \"M\\xe1scara\",\n Page: {\n Title: \"Template de Prompt\",\n SubTitle: (count)=>`${count} templates de prompt`,\n Search: \"Buscar Templates\",\n Create: \"Criar\"\n },\n Item: {\n Info: (count)=>`${count} prompts`,\n Chat: \"Chat\",\n View: \"Visualizar\",\n Edit: \"Editar\",\n Delete: \"Deletar\",\n DeleteConfirm: \"Confirmar para deletar?\"\n },\n EditModal: {\n Title: (readonly)=>`Editar Template de Prompt ${readonly ? \"(somente leitura)\" : \"\"}`,\n Download: \"Baixar\",\n Clone: \"Clonar\"\n },\n Config: {\n Avatar: \"Avatar do Bot\",\n Name: \"Nome do Bot\",\n Sync: {\n Title: \"Usar Configura\\xe7\\xe3o Global\",\n SubTitle: \"Usar configura\\xe7\\xe3o global neste chat\",\n Confirm: \"Confirmar para substituir a configura\\xe7\\xe3o personalizada pela configura\\xe7\\xe3o global?\"\n },\n HideContext: {\n Title: \"Esconder Prompts de Contexto\",\n SubTitle: \"N\\xe3o mostrar prompts de contexto no chat\"\n },\n Share: {\n Title: \"Compartilhar Esta M\\xe1scara\",\n SubTitle: \"Gerar um link para esta m\\xe1scara\",\n Action: \"Copiar Link\"\n }\n }\n },\n NewChat: {\n Return: \"Retornar\",\n Skip: \"Apenas Come\\xe7ar\",\n Title: \"Escolher uma M\\xe1scara\",\n SubTitle: \"Converse com a Alma por tr\\xe1s da M\\xe1scara\",\n More: \"Encontre Mais\",\n NotShow: \"Nunca Mostrar Novamente\",\n ConfirmNoShow: \"Confirmar para desabilitar?Voc\\xea pode habilitar nas configura\\xe7\\xf5es depois.\"\n },\n UI: {\n Confirm: \"Confirmar\",\n Cancel: \"Cancelar\",\n Close: \"Fechar\",\n Create: \"Criar\",\n Edit: \"Editar\",\n Export: \"Exportar\",\n Import: \"Importar\",\n Sync: \"Sincronizar\",\n Config: \"Configurar\"\n },\n Exporter: {\n Description: {\n Title: \"Apenas mensagens ap\\xf3s a limpeza do contexto ser\\xe3o exibidas\"\n },\n Model: \"Modelo\",\n Messages: \"Mensagens\",\n Topic: \"T\\xf3pico\",\n Time: \"Tempo\"\n },\n URLCommand: {\n Code: \"C\\xf3digo de acesso detectado a partir da url, confirmar para aplicar? \",\n Settings: \"Configura\\xe7\\xf5es detectadas a partir da url, confirmar para aplicar?\"\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (pt);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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UTtZQUNSRCxNQUFNO1lBQ05tQixNQUFNO2dCQUNKdkcsT0FBTztnQkFDUGEsVUFBVTtnQkFDVlQsU0FDRTtZQUNKO1lBQ0FvTCxhQUFhO2dCQUNYeEwsT0FBTztnQkFDUGEsVUFBVTtZQUNaO1lBQ0FnRCxPQUFPO2dCQUNMN0QsT0FBTztnQkFDUGEsVUFBVTtnQkFDVnFFLFFBQVE7WUFDVjtRQUNGO0lBQ0Y7SUFDQUwsU0FBUztRQUNQdkUsUUFBUTtRQUNSbUwsTUFBTTtRQUNOekwsT0FBTztRQUNQYSxVQUFVO1FBQ1Y2SyxNQUFNO1FBQ05DLFNBQVM7UUFDVEMsZUFDRTtJQUNKO0lBRUFDLElBQUk7UUFDRnpMLFNBQVM7UUFDVDBMLFFBQVE7UUFDUkMsT0FBTztRQUNQWixRQUFRO1FBQ1J4SixNQUFNO1FBQ05SLFFBQVE7UUFDUjZLLFFBQVE7UUFDUnpGLE1BQU07UUFDTmpELFFBQVE7SUFDVjtJQUNBMkksVUFBVTtRQUNSQyxhQUFhO1lBQ1hsTSxPQUFPO1FBQ1Q7UUFDQTBKLE9BQU87UUFDUHlDLFVBQVU7UUFDVnBMLE9BQU87UUFDUHFMLE1BQU07SUFDUjtJQUVBQyxZQUFZO1FBQ1ZDLE1BQU07UUFDTnhKLFVBQ0U7SUFDSjtBQUNGO0FBRUEsaUVBQWVuRCxFQUFFQSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvbG9jYWxlcy9wdC50cz9hNThhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1Ym1pdEtleSB9IGZyb20gXCIuLi9zdG9yZS9jb25maWdcIjtcclxuaW1wb3J0IHsgUGFydGlhbExvY2FsZVR5cGUgfSBmcm9tIFwiLi4vbG9jYWxlcy9pbmRleFwiO1xyXG5pbXBvcnQgeyBnZXRDbGllbnRDb25maWcgfSBmcm9tIFwiLi4vY29uZmlnL2NsaWVudFwiO1xyXG5pbXBvcnQgeyBTQUFTX0NIQVRfVVRNX1VSTCB9IGZyb20gXCJAL2FwcC9jb25zdGFudFwiO1xyXG5jb25zdCBpc0FwcCA9ICEhZ2V0Q2xpZW50Q29uZmlnKCk/LmlzQXBwO1xyXG5cclxuY29uc3QgcHQ6IFBhcnRpYWxMb2NhbGVUeXBlID0ge1xyXG4gIFdJUDogXCJFbSBicmV2ZS4uLlwiLFxyXG4gIEVycm9yOiB7XHJcbiAgICBVbmF1dGhvcml6ZWQ6IGlzQXBwXHJcbiAgICAgID8gYPCfmIYgQSBjb252ZXJzYSBlbmNvbnRyb3UgYWxndW5zIHByb2JsZW1hcywgbsOjbyBzZSBwcmVvY3VwZTpcclxuICAgXFxcXCAx77iP4oOjIFNlIHZvY8OqIHF1aXNlciBjb21lw6dhciBzZW0gY29uZmlndXJhw6fDo28sIFtjbGlxdWUgYXF1aSBwYXJhIGNvbWXDp2FyIGEgY29udmVyc2FyIGltZWRpYXRhbWVudGUg8J+agF0oJHtTQUFTX0NIQVRfVVRNX1VSTH0pXHJcbiAgIFxcXFwgMu+4j+KDoyBTZSB2b2PDqiBkZXNlamEgdXNhciBzZXVzIHByw7NwcmlvcyByZWN1cnNvcyBPcGVuQUksIGNsaXF1ZSBbYXF1aV0oLyMvc2V0dGluZ3MpIHBhcmEgbW9kaWZpY2FyIGFzIGNvbmZpZ3VyYcOnw7VlcyDimpnvuI9gXHJcbiAgICAgIDogYPCfmIYgQSBjb252ZXJzYSBlbmNvbnRyb3UgYWxndW5zIHByb2JsZW1hcywgbsOjbyBzZSBwcmVvY3VwZTpcclxuICAgXFwgMe+4j+KDoyBTZSB2b2PDqiBxdWlzZXIgY29tZcOnYXIgc2VtIGNvbmZpZ3VyYcOnw6NvLCBbY2xpcXVlIGFxdWkgcGFyYSBjb21lw6dhciBhIGNvbnZlcnNhciBpbWVkaWF0YW1lbnRlIPCfmoBdKCR7U0FBU19DSEFUX1VUTV9VUkx9KVxyXG4gICBcXCAy77iP4oOjIFNlIHZvY8OqIGVzdGl2ZXIgdXNhbmRvIHVtYSB2ZXJzw6NvIGRlIGltcGxhbnRhw6fDo28gcHJpdmFkYSwgY2xpcXVlIFthcXVpXSgvIy9hdXRoKSBwYXJhIGluc2VyaXIgYSBjaGF2ZSBkZSBhY2Vzc28g8J+UkVxyXG4gICBcXCAz77iP4oOjIFNlIHZvY8OqIGRlc2VqYSB1c2FyIHNldXMgcHLDs3ByaW9zIHJlY3Vyc29zIE9wZW5BSSwgY2xpcXVlIFthcXVpXSgvIy9zZXR0aW5ncykgcGFyYSBtb2RpZmljYXIgYXMgY29uZmlndXJhw6fDtWVzIOKame+4j1xyXG5gLFxyXG4gIH0sXHJcbiAgQXV0aDoge1xyXG4gICAgVGl0bGU6IFwiTmVjZXNzw6FyaW8gQ8OzZGlnbyBkZSBBY2Vzc29cIixcclxuICAgIFRpcHM6IFwiUG9yIGZhdm9yLCBpbnNpcmEgbyBjw7NkaWdvIGRlIGFjZXNzbyBhYmFpeG9cIixcclxuICAgIFN1YlRpcHM6IFwiT3UgaW5zaXJhIHN1YSBDaGF2ZSBBUEkgT3BlbkFJXCIsXHJcbiAgICBJbnB1dDogXCJjw7NkaWdvIGRlIGFjZXNzb1wiLFxyXG4gICAgQ29uZmlybTogXCJDb25maXJtYXJcIixcclxuICAgIExhdGVyOiBcIkRlcG9pc1wiLFxyXG4gICAgUmV0dXJuOiBcIlZvbHRhclwiLFxyXG4gICAgU2Fhc1RpcHM6IFwiQSBjb25maWd1cmHDp8OjbyDDqSBtdWl0byBjb21wbGljYWRhLCBxdWVybyB1c8OhLWxhIGltZWRpYXRhbWVudGVcIixcclxuICAgIFRvcFRpcHM6XHJcbiAgICAgIFwi8J+lsyBPZmVydGEgZGUgTGFuw6dhbWVudG8gZG8gTmV4dENoYXQgQUksIGRlc2Jsb3F1ZWllIG8gT3BlbkFJIG8xLCBHUFQtNG8sIENsYXVkZS0zLjUgZSBvcyBtYWlzIHJlY2VudGVzIGdyYW5kZXMgbW9kZWxvcyBhZ29yYVwiLFxyXG4gIH0sXHJcbiAgQ2hhdEl0ZW06IHtcclxuICAgIENoYXRJdGVtQ291bnQ6IChjb3VudDogbnVtYmVyKSA9PiBgJHtjb3VudH0gbWVuc2FnZW5zYCxcclxuICB9LFxyXG4gIENoYXQ6IHtcclxuICAgIFN1YlRpdGxlOiAoY291bnQ6IG51bWJlcikgPT4gYCR7Y291bnR9IG1lbnNhZ2Vuc2AsXHJcbiAgICBFZGl0TWVzc2FnZToge1xyXG4gICAgICBUaXRsZTogXCJFZGl0YXIgVG9kYXMgYXMgTWVuc2FnZW5zXCIsXHJcbiAgICAgIFRvcGljOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiVMOzcGljb1wiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIk11ZGFyIG8gdMOzcGljbyBhdHVhbFwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIEFjdGlvbnM6IHtcclxuICAgICAgQ2hhdExpc3Q6IFwiSXIgUGFyYSBMaXN0YSBkZSBDaGF0XCIsXHJcbiAgICAgIENvbXByZXNzZWRIaXN0b3J5OiBcIlByb21wdCBkZSBNZW3Ds3JpYSBIaXN0w7NyaWNhIENvbXByaW1pZGFcIixcclxuICAgICAgRXhwb3J0OiBcIkV4cG9ydGFyIFRvZGFzIGFzIE1lbnNhZ2VucyBjb21vIE1hcmtkb3duXCIsXHJcbiAgICAgIENvcHk6IFwiQ29waWFyXCIsXHJcbiAgICAgIFN0b3A6IFwiUGFyYXJcIixcclxuICAgICAgUmV0cnk6IFwiVGVudGFyIE5vdmFtZW50ZVwiLFxyXG4gICAgICBQaW46IFwiRml4YXJcIixcclxuICAgICAgUGluVG9hc3RDb250ZW50OiBcIkZpeGFkYSAxIG1lbnNhZ2VtIHBhcmEgcHJvbXB0cyBjb250ZXh0dWFpc1wiLFxyXG4gICAgICBQaW5Ub2FzdEFjdGlvbjogXCJWaXN1YWxpemFyXCIsXHJcbiAgICAgIERlbGV0ZTogXCJEZWxldGFyXCIsXHJcbiAgICAgIEVkaXQ6IFwiRWRpdGFyXCIsXHJcbiAgICAgIFJlZnJlc2hUaXRsZTogXCJBdHVhbGl6YXIgVMOtdHVsb1wiLFxyXG4gICAgICBSZWZyZXNoVG9hc3Q6IFwiU29saWNpdGHDp8OjbyBkZSBhdHVhbGl6YcOnw6NvIGRlIHTDrXR1bG8gZW52aWFkYVwiLFxyXG4gICAgfSxcclxuICAgIENvbW1hbmRzOiB7XHJcbiAgICAgIG5ldzogXCJJbmljaWFyIHVtIG5vdm8gY2hhdFwiLFxyXG4gICAgICBuZXdtOiBcIkluaWNpYXIgdW0gbm92byBjaGF0IGNvbSBtw6FzY2FyYVwiLFxyXG4gICAgICBuZXh0OiBcIlByw7N4aW1vIENoYXRcIixcclxuICAgICAgcHJldjogXCJDaGF0IEFudGVyaW9yXCIsXHJcbiAgICAgIGNsZWFyOiBcIkxpbXBhciBDb250ZXh0b1wiLFxyXG4gICAgICBkZWw6IFwiRGVsZXRhciBDaGF0XCIsXHJcbiAgICB9LFxyXG4gICAgSW5wdXRBY3Rpb25zOiB7XHJcbiAgICAgIFN0b3A6IFwiUGFyYXJcIixcclxuICAgICAgVG9Cb3R0b206IFwiUGFyYSBvIE1haXMgUmVjZW50ZVwiLFxyXG4gICAgICBUaGVtZToge1xyXG4gICAgICAgIGF1dG86IFwiQXV0b23DoXRpY29cIixcclxuICAgICAgICBsaWdodDogXCJUZW1hIENsYXJvXCIsXHJcbiAgICAgICAgZGFyazogXCJUZW1hIEVzY3Vyb1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBQcm9tcHQ6IFwiUHJvbXB0c1wiLFxyXG4gICAgICBNYXNrczogXCJNw6FzY2FyYXNcIixcclxuICAgICAgQ2xlYXI6IFwiTGltcGFyIENvbnRleHRvXCIsXHJcbiAgICAgIFNldHRpbmdzOiBcIkNvbmZpZ3VyYcOnw7Vlc1wiLFxyXG4gICAgfSxcclxuICAgIFJlbmFtZTogXCJSZW5vbWVhciBDaGF0XCIsXHJcbiAgICBUeXBpbmc6IFwiRGlnaXRhbmRv4oCmXCIsXHJcbiAgICBJbnB1dDogKHN1Ym1pdEtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHZhciBpbnB1dEhpbnRzID0gYCR7c3VibWl0S2V5fSBwYXJhIGVudmlhcmA7XHJcbiAgICAgIGlmIChzdWJtaXRLZXkgPT09IFN0cmluZyhTdWJtaXRLZXkuRW50ZXIpKSB7XHJcbiAgICAgICAgaW5wdXRIaW50cyArPSBcIiwgU2hpZnQgKyBFbnRlciBwYXJhIHF1ZWJyYXIgbGluaGFcIjtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gaW5wdXRIaW50cyArIFwiLCAvIHBhcmEgYnVzY2FyIHByb21wdHMsIDogcGFyYSB1c2FyIGNvbWFuZG9zXCI7XHJcbiAgICB9LFxyXG4gICAgU2VuZDogXCJFbnZpYXJcIixcclxuICAgIENvbmZpZzoge1xyXG4gICAgICBSZXNldDogXCJSZWRlZmluaXIgcGFyYSBQYWRyw6NvXCIsXHJcbiAgICAgIFNhdmVBczogXCJTYWx2YXIgY29tbyBNw6FzY2FyYVwiLFxyXG4gICAgfSxcclxuICAgIElzQ29udGV4dDogXCJQcm9tcHQgQ29udGV4dHVhbFwiLFxyXG4gIH0sXHJcbiAgRXhwb3J0OiB7XHJcbiAgICBUaXRsZTogXCJFeHBvcnRhciBNZW5zYWdlbnNcIixcclxuICAgIENvcHk6IFwiQ29waWFyIFR1ZG9cIixcclxuICAgIERvd25sb2FkOiBcIkJhaXhhclwiLFxyXG4gICAgTWVzc2FnZUZyb21Zb3U6IFwiTWVuc2FnZW0gRGUgVm9jw6pcIixcclxuICAgIE1lc3NhZ2VGcm9tQ2hhdEdQVDogXCJNZW5zYWdlbSBEZSBDaGF0R1BUXCIsXHJcbiAgICBTaGFyZTogXCJDb21wYXJ0aWxoYXIgcGFyYSBTaGFyZUdQVFwiLFxyXG4gICAgRm9ybWF0OiB7XHJcbiAgICAgIFRpdGxlOiBcIkZvcm1hdG8gZGUgRXhwb3J0YcOnw6NvXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIk1hcmtkb3duIG91IEltYWdlbSBQTkdcIixcclxuICAgIH0sXHJcbiAgICBJbmNsdWRlQ29udGV4dDoge1xyXG4gICAgICBUaXRsZTogXCJJbmNsdWluZG8gQ29udGV4dG9cIixcclxuICAgICAgU3ViVGl0bGU6IFwiRXhwb3J0YXIgcHJvbXB0cyBkZSBjb250ZXh0byBuYSBtw6FzY2FyYSBvdSBuw6NvXCIsXHJcbiAgICB9LFxyXG4gICAgU3RlcHM6IHtcclxuICAgICAgU2VsZWN0OiBcIlNlbGVjaW9uYXJcIixcclxuICAgICAgUHJldmlldzogXCJQcsOpLXZpc3VhbGl6YXJcIixcclxuICAgIH0sXHJcbiAgICBJbWFnZToge1xyXG4gICAgICBUb2FzdDogXCJDYXB0dXJhbmRvIEltYWdlbS4uLlwiLFxyXG4gICAgICBNb2RhbDpcclxuICAgICAgICBcIlByZXNzaW9uZSBsb25nYW1lbnRlIG91IGNsaXF1ZSBjb20gbyBib3TDo28gZGlyZWl0byBwYXJhIHNhbHZhciBhIGltYWdlbVwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIFNlbGVjdDoge1xyXG4gICAgU2VhcmNoOiBcIkJ1c2NhclwiLFxyXG4gICAgQWxsOiBcIlNlbGVjaW9uYXIgVHVkb1wiLFxyXG4gICAgTGF0ZXN0OiBcIlNlbGVjaW9uYXIgTWFpcyBSZWNlbnRlXCIsXHJcbiAgICBDbGVhcjogXCJMaW1wYXJcIixcclxuICB9LFxyXG4gIE1lbW9yeToge1xyXG4gICAgVGl0bGU6IFwiUHJvbXB0IGRlIE1lbcOzcmlhXCIsXHJcbiAgICBFbXB0eUNvbnRlbnQ6IFwiTmFkYSBhaW5kYS5cIixcclxuICAgIFNlbmQ6IFwiRW52aWFyIE1lbcOzcmlhXCIsXHJcbiAgICBDb3B5OiBcIkNvcGlhciBNZW3Ds3JpYVwiLFxyXG4gICAgUmVzZXQ6IFwiUmVzZXRhciBTZXNzw6NvXCIsXHJcbiAgICBSZXNldENvbmZpcm06XHJcbiAgICAgIFwiUmVzZXRhciBpcsOhIGxpbXBhciBvIGhpc3TDs3JpY28gZGUgY29udmVyc2EgYXR1YWwgZSBhIG1lbcOzcmlhIGhpc3TDs3JpY2EuIFZvY8OqIHRlbSBjZXJ0ZXphIHF1ZSBxdWVyIHJlc2V0YXI/XCIsXHJcbiAgfSxcclxuICBIb21lOiB7XHJcbiAgICBOZXdDaGF0OiBcIk5vdm8gQ2hhdFwiLFxyXG4gICAgRGVsZXRlQ2hhdDogXCJDb25maXJtYXIgcGFyYSBkZWxldGFyIGEgY29udmVyc2Egc2VsZWNpb25hZGE/XCIsXHJcbiAgICBEZWxldGVUb2FzdDogXCJDaGF0IERlbGV0YWRvXCIsXHJcbiAgICBSZXZlcnQ6IFwiUmV2ZXJ0ZXJcIixcclxuICB9LFxyXG4gIFNldHRpbmdzOiB7XHJcbiAgICBUaXRsZTogXCJDb25maWd1cmHDp8O1ZXNcIixcclxuICAgIFN1YlRpdGxlOiBcIlRvZGFzIGFzIENvbmZpZ3VyYcOnw7Vlc1wiLFxyXG4gICAgRGFuZ2VyOiB7XHJcbiAgICAgIFJlc2V0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiUmVzZXRhciBUb2RhcyBhcyBDb25maWd1cmHDp8O1ZXNcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJSZXNldGFyIHRvZG9zIG9zIGl0ZW5zIGRlIGNvbmZpZ3VyYcOnw6NvIHBhcmEgbyBwYWRyw6NvXCIsXHJcbiAgICAgICAgQWN0aW9uOiBcIlJlc2V0YXJcIixcclxuICAgICAgICBDb25maXJtOiBcIkNvbmZpcm1hciBwYXJhIHJlc2V0YXIgdG9kYXMgYXMgY29uZmlndXJhw6fDtWVzIHBhcmEgbyBwYWRyw6NvP1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBDbGVhcjoge1xyXG4gICAgICAgIFRpdGxlOiBcIkxpbXBhciBUb2RvcyBvcyBEYWRvc1wiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIkxpbXBhciB0b2RhcyBhcyBtZW5zYWdlbnMgZSBjb25maWd1cmHDp8O1ZXNcIixcclxuICAgICAgICBBY3Rpb246IFwiTGltcGFyXCIsXHJcbiAgICAgICAgQ29uZmlybTogXCJDb25maXJtYXIgcGFyYSBsaW1wYXIgdG9kYXMgYXMgbWVuc2FnZW5zIGUgY29uZmlndXJhw6fDtWVzP1wiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIExhbmc6IHtcclxuICAgICAgTmFtZTogXCJMYW5ndWFnZVwiLFxyXG4gICAgICBBbGw6IFwiVG9kb3Mgb3MgSWRpb21hc1wiLFxyXG4gICAgfSxcclxuICAgIEF2YXRhcjogXCJBdmF0YXJcIixcclxuICAgIEZvbnRTaXplOiB7XHJcbiAgICAgIFRpdGxlOiBcIlRhbWFuaG8gZGEgRm9udGVcIixcclxuICAgICAgU3ViVGl0bGU6IFwiQWp1c3RhciBvIHRhbWFuaG8gZGEgZm9udGUgZG8gY29udGXDumRvIGRvIGNoYXRcIixcclxuICAgIH0sXHJcbiAgICBGb250RmFtaWx5OiB7XHJcbiAgICAgIFRpdGxlOiBcIkZvbnRlIGRvIENoYXRcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJGb250ZSBkbyBjb250ZcO6ZG8gZG8gY2hhdCwgZGVpeGUgdmF6aW8gcGFyYSBhcGxpY2FyIGEgZm9udGUgcGFkcsOjbyBnbG9iYWxcIixcclxuICAgICAgUGxhY2Vob2xkZXI6IFwiTm9tZSBkYSBGb250ZVwiLFxyXG4gICAgfSxcclxuICAgIEluamVjdFN5c3RlbVByb21wdHM6IHtcclxuICAgICAgVGl0bGU6IFwiSW5zZXJpciBQcm9tcHRzIGRlIFNpc3RlbWFcIixcclxuICAgICAgU3ViVGl0bGU6IFwiSW5zZXJpciB1bSBwcm9tcHQgZGUgc2lzdGVtYSBnbG9iYWwgcGFyYSBjYWRhIHJlcXVpc2nDp8Ojb1wiLFxyXG4gICAgfSxcclxuICAgIElucHV0VGVtcGxhdGU6IHtcclxuICAgICAgVGl0bGU6IFwiTW9kZWxvIGRlIEVudHJhZGFcIixcclxuICAgICAgU3ViVGl0bGU6IFwiQSBtZW5zYWdlbSBtYWlzIHJlY2VudGUgc2Vyw6EgcHJlZW5jaGlkYSBuZXN0ZSBtb2RlbG9cIixcclxuICAgIH0sXHJcblxyXG4gICAgVXBkYXRlOiB7XHJcbiAgICAgIFZlcnNpb246ICh4OiBzdHJpbmcpID0+IGBWZXJzw6NvOiAke3h9YCxcclxuICAgICAgSXNMYXRlc3Q6IFwiw5psdGltYSB2ZXJzw6NvXCIsXHJcbiAgICAgIENoZWNrVXBkYXRlOiBcIlZlcmlmaWNhciBBdHVhbGl6YcOnw6NvXCIsXHJcbiAgICAgIElzQ2hlY2tpbmc6IFwiVmVyaWZpY2FuZG8gYXR1YWxpemHDp8Ojby4uLlwiLFxyXG4gICAgICBGb3VuZFVwZGF0ZTogKHg6IHN0cmluZykgPT4gYE5vdmEgdmVyc8OjbyBlbmNvbnRyYWRhOiAke3h9YCxcclxuICAgICAgR29Ub1VwZGF0ZTogXCJBdHVhbGl6YXJcIixcclxuICAgIH0sXHJcbiAgICBTZW5kS2V5OiBcIlRlY2xhIGRlIEVudmlvXCIsXHJcbiAgICBUaGVtZTogXCJUZW1hXCIsXHJcbiAgICBUaWdodEJvcmRlcjogXCJCb3JkYSBBanVzdGFkYVwiLFxyXG4gICAgU2VuZFByZXZpZXdCdWJibGU6IHtcclxuICAgICAgVGl0bGU6IFwiQm9saGEgZGUgUHLDqS12aXN1YWxpemHDp8OjbyBkZSBFbnZpb1wiLFxyXG4gICAgICBTdWJUaXRsZTogXCJQcsOpLXZpc3VhbGl6YXIgbWFya2Rvd24gbmEgYm9saGFcIixcclxuICAgIH0sXHJcbiAgICBBdXRvR2VuZXJhdGVUaXRsZToge1xyXG4gICAgICBUaXRsZTogXCJHZXJhciBUw610dWxvIEF1dG9tYXRpY2FtZW50ZVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJHZXJhciB1bSB0w610dWxvIGFkZXF1YWRvIGJhc2VhZG8gbm8gY29udGXDumRvIGRhIGNvbnZlcnNhXCIsXHJcbiAgICB9LFxyXG4gICAgU3luYzoge1xyXG4gICAgICBDbG91ZFN0YXRlOiBcIsOabHRpbWEgQXR1YWxpemHDp8Ojb1wiLFxyXG4gICAgICBOb3RTeW5jWWV0OiBcIkFpbmRhIG7Do28gc2luY3Jvbml6YWRvXCIsXHJcbiAgICAgIFN1Y2Nlc3M6IFwiU2luY3Jvbml6YcOnw6NvIGJlbSBzdWNlZGlkYVwiLFxyXG4gICAgICBGYWlsOiBcIkZhbGhhIG5hIHNpbmNyb25pemHDp8Ojb1wiLFxyXG5cclxuICAgICAgQ29uZmlnOiB7XHJcbiAgICAgICAgTW9kYWw6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkNvbmZpZ3VyYXIgU2luY3Jvbml6YcOnw6NvXCIsXHJcbiAgICAgICAgICBDaGVjazogXCJWZXJpZmljYXIgQ29uZXjDo29cIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFN5bmNUeXBlOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJUaXBvIGRlIFNpbmNyb25pemHDp8Ojb1wiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiRXNjb2xoYSBzZXUgc2VydmnDp28gZGUgc2luY3Jvbml6YcOnw6NvIGZhdm9yaXRvXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQcm94eToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiSGFiaWxpdGFyIFByb3h5IENPUlNcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkhhYmlsaXRhciB1bSBwcm94eSBwYXJhIGV2aXRhciByZXN0cmnDp8O1ZXMgZGUgY3Jvc3Mtb3JpZ2luXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQcm94eVVybDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiRW5kcG9pbnQgZGUgUHJveHlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkFwZW5hcyBhcGxpY8OhdmVsIGFvIHByb3h5IENPUlMgZW1idXRpZG8gcGFyYSBlc3RlIHByb2pldG9cIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBXZWJEYXY6IHtcclxuICAgICAgICAgIEVuZHBvaW50OiBcIkVuZHBvaW50IFdlYkRBVlwiLFxyXG4gICAgICAgICAgVXNlck5hbWU6IFwiTm9tZSBkZSBVc3XDoXJpb1wiLFxyXG4gICAgICAgICAgUGFzc3dvcmQ6IFwiU2VuaGFcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBVcFN0YXNoOiB7XHJcbiAgICAgICAgICBFbmRwb2ludDogXCJVUkwgUkVTVCBSZWRpcyBVcFN0YXNoXCIsXHJcbiAgICAgICAgICBVc2VyTmFtZTogXCJOb21lIGRvIEJhY2t1cFwiLFxyXG4gICAgICAgICAgUGFzc3dvcmQ6IFwiVG9rZW4gUkVTVCBSZWRpcyBVcFN0YXNoXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuXHJcbiAgICAgIExvY2FsU3RhdGU6IFwiRGFkb3MgTG9jYWlzXCIsXHJcbiAgICAgIE92ZXJ2aWV3OiAob3ZlcnZpZXc6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBgJHtvdmVydmlldy5jaGF0fSBjaGF0c++8jCR7b3ZlcnZpZXcubWVzc2FnZX0gbWVuc2FnZW5z77yMJHtvdmVydmlldy5wcm9tcHR9IHByb21wdHPvvIwke292ZXJ2aWV3Lm1hc2t9IG3DoXNjYXJhc2A7XHJcbiAgICAgIH0sXHJcbiAgICAgIEltcG9ydEZhaWxlZDogXCJGYWxoYSBhbyBpbXBvcnRhciBkbyBhcnF1aXZvXCIsXHJcbiAgICB9LFxyXG4gICAgTWFzazoge1xyXG4gICAgICBTcGxhc2g6IHtcclxuICAgICAgICBUaXRsZTogXCJUZWxhIGRlIEluw61jaW8gZGEgTcOhc2NhcmFcIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiTW9zdHJhciB1bWEgdGVsYSBkZSBpbsOtY2lvIGRhIG3DoXNjYXJhIGFudGVzIGRlIGluaWNpYXIgbm92byBjaGF0XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEJ1aWx0aW46IHtcclxuICAgICAgICBUaXRsZTogXCJFc2NvbmRlciBNw6FzY2FyYXMgRW1idXRpZGFzXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiRXNjb25kZXIgbcOhc2NhcmFzIGVtYnV0aWRhcyBuYSBsaXN0YSBkZSBtw6FzY2FyYXNcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBQcm9tcHQ6IHtcclxuICAgICAgRGlzYWJsZToge1xyXG4gICAgICAgIFRpdGxlOiBcIkRlc2FiaWxpdGFyIGF1dG8tY29tcGxldGFyXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiRGlnaXRlIC8gcGFyYSBhY2lvbmFyIGF1dG8tY29tcGxldGFyXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIExpc3Q6IFwiTGlzdGEgZGUgUHJvbXB0c1wiLFxyXG4gICAgICBMaXN0Q291bnQ6IChidWlsdGluOiBudW1iZXIsIGN1c3RvbTogbnVtYmVyKSA9PlxyXG4gICAgICAgIGAke2J1aWx0aW59IGVtYnV0aWRvcywgJHtjdXN0b219IGRlZmluaWRvcyBwZWxvIHVzdcOhcmlvYCxcclxuICAgICAgRWRpdDogXCJFZGl0YXJcIixcclxuICAgICAgTW9kYWw6IHtcclxuICAgICAgICBUaXRsZTogXCJMaXN0YSBkZSBQcm9tcHRzXCIsXHJcbiAgICAgICAgQWRkOiBcIkFkaWNpb25hciBVbVwiLFxyXG4gICAgICAgIFNlYXJjaDogXCJCdXNjYXIgUHJvbXB0c1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBFZGl0TW9kYWw6IHtcclxuICAgICAgICBUaXRsZTogXCJFZGl0YXIgUHJvbXB0XCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgSGlzdG9yeUNvdW50OiB7XHJcbiAgICAgIFRpdGxlOiBcIkNvbnRhZ2VtIGRlIE1lbnNhZ2VucyBBbmV4YWRhc1wiLFxyXG4gICAgICBTdWJUaXRsZTogXCJOw7ptZXJvIGRlIG1lbnNhZ2VucyBlbnZpYWRhcyBhbmV4YWRhcyBwb3IgcmVxdWlzacOnw6NvXCIsXHJcbiAgICB9LFxyXG4gICAgQ29tcHJlc3NUaHJlc2hvbGQ6IHtcclxuICAgICAgVGl0bGU6IFwiTGltaXRlIGRlIENvbXByZXNzw6NvIGRlIEhpc3TDs3JpY29cIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJJcsOhIGNvbXByaW1pciBzZSBvIGNvbXByaW1lbnRvIGRhcyBtZW5zYWdlbnMgbsOjbyBjb21wcmltaWRhcyBleGNlZGVyIG8gdmFsb3JcIixcclxuICAgIH0sXHJcblxyXG4gICAgVXNhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwiU2FsZG8gZGEgQ29udGFcIixcclxuICAgICAgU3ViVGl0bGUodXNlZDogYW55LCB0b3RhbDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIGBVc2FkbyBlc3RlIG3DqnMgJHt1c2VkfSwgYXNzaW5hdHVyYSAke3RvdGFsfWA7XHJcbiAgICAgIH0sXHJcbiAgICAgIElzQ2hlY2tpbmc6IFwiVmVyaWZpY2FuZG8uLi5cIixcclxuICAgICAgQ2hlY2s6IFwiVmVyaWZpY2FyXCIsXHJcbiAgICAgIE5vQWNjZXNzOiBcIkluc2lyYSBhIENoYXZlIEFQSSBwYXJhIHZlcmlmaWNhciBvIHNhbGRvXCIsXHJcbiAgICB9LFxyXG4gICAgQWNjZXNzOiB7XHJcbiAgICAgIFNhYXNTdGFydDoge1xyXG4gICAgICAgIFRpdGxlOiBcIlVzYXIgTmV4dENoYXQgQUlcIixcclxuICAgICAgICBMYWJlbDogXCIoQSBzb2x1w6fDo28gbWFpcyBlY29uw7RtaWNhKVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCJNYW50aWRvIG9maWNpYWxtZW50ZSBwZWxvIE5leHRDaGF0LCBwcm9udG8gcGFyYSB1c28gc2VtIGNvbmZpZ3VyYcOnw6NvLCBzdXBvcnRhIG9zIG1haXMgcmVjZW50ZXMgZ3JhbmRlcyBtb2RlbG9zIGNvbW8gT3BlbkFJIG8xLCBHUFQtNG8gZSBDbGF1ZGUtMy41XCIsXHJcbiAgICAgICAgQ2hhdE5vdzogXCJDb252ZXJzYXIgYWdvcmFcIixcclxuICAgICAgfSxcclxuXHJcbiAgICAgIEFjY2Vzc0NvZGU6IHtcclxuICAgICAgICBUaXRsZTogXCJDw7NkaWdvIGRlIEFjZXNzb1wiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIkNvbnRyb2xlIGRlIEFjZXNzbyBIYWJpbGl0YWRvXCIsXHJcbiAgICAgICAgUGxhY2Vob2xkZXI6IFwiSW5zaXJhIG8gQ8OzZGlnb1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBDdXN0b21FbmRwb2ludDoge1xyXG4gICAgICAgIFRpdGxlOiBcIkVuZHBvaW50IFBlcnNvbmFsaXphZG9cIixcclxuICAgICAgICBTdWJUaXRsZTogXCJVc2Ugc2VydmnDp28gcGVyc29uYWxpemFkbyBBenVyZSBvdSBPcGVuQUlcIixcclxuICAgICAgfSxcclxuICAgICAgUHJvdmlkZXI6IHtcclxuICAgICAgICBUaXRsZTogXCJQcm92ZWRvciBkbyBNb2RlbG9cIixcclxuICAgICAgICBTdWJUaXRsZTogXCJTZWxlY2lvbmUgQXp1cmUgb3UgT3BlbkFJXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIE9wZW5BSToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQ2hhdmUgQVBJIE9wZW5BSVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiVXNhciBDaGF2ZSBBUEkgT3BlbkFJIHBlcnNvbmFsaXphZGFcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcInNrLXh4eFwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJFbmRwb2ludCBPcGVuQUlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgICBcIkRldmUgY29tZcOnYXIgY29tIGh0dHAocyk6Ly8gb3UgdXNhciAvYXBpL29wZW5haSBjb21vIHBhZHLDo29cIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBBenVyZToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQ2hhdmUgQVBJIEF6dXJlXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJWZXJpZmlxdWUgc3VhIGNoYXZlIEFQSSBkbyBjb25zb2xlIEF6dXJlXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJDaGF2ZSBBUEkgQXp1cmVcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiRW5kcG9pbnQgQXp1cmVcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkV4ZW1wbG86IFwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcmlvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiVmVyc8OjbyBBUEkgQXp1cmVcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlZlcmlmaXF1ZSBzdWEgdmVyc8OjbyBBUEkgZG8gY29uc29sZSBBenVyZVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEFudGhyb3BpYzoge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQ2hhdmUgQVBJIEFudGhyb3BpY1wiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiVmVyaWZpcXVlIHN1YSBjaGF2ZSBBUEkgZG8gY29uc29sZSBBbnRocm9waWNcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkNoYXZlIEFQSSBBbnRocm9waWNcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiRW5kcG9pbnQgQWRkcmVzc1wiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiRXhlbXBsbzogXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgQXBpVmVyaW9uOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJWZXJzw6NvIEFQSSAoVmVyc8OjbyBhcGkgY2xhdWRlKVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiVmVyaWZpcXVlIHN1YSB2ZXJzw6NvIEFQSSBkbyBjb25zb2xlIEFudGhyb3BpY1wiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEN1c3RvbU1vZGVsOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiTW9kZWxvcyBQZXJzb25hbGl6YWRvc1wiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIk9ww6fDtWVzIGRlIG1vZGVsbyBwZXJzb25hbGl6YWRvLCBzZXBhcmFkb3MgcG9yIHbDrXJndWxhXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG5cclxuICAgIE1vZGVsOiBcIk1vZGVsb1wiLFxyXG4gICAgQ29tcHJlc3NNb2RlbDoge1xyXG4gICAgICBUaXRsZTogXCJNb2RlbG8gZGUgQ29tcHJlc3PDo29cIixcclxuICAgICAgU3ViVGl0bGU6IFwiTW9kZWxvIHVzYWRvIHBhcmEgY29tcHJpbWlyIG8gaGlzdMOzcmljb1wiLFxyXG4gICAgfSxcclxuICAgIFRlbXBlcmF0dXJlOiB7XHJcbiAgICAgIFRpdGxlOiBcIlRlbXBlcmF0dXJhXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIlVtIHZhbG9yIG1haW9yIHRvcm5hIGEgc2HDrWRhIG1haXMgYWxlYXTDs3JpYVwiLFxyXG4gICAgfSxcclxuICAgIFRvcFA6IHtcclxuICAgICAgVGl0bGU6IFwiVG9wIFBcIixcclxuICAgICAgU3ViVGl0bGU6IFwiTsOjbyBhbHRlcmUgZXN0ZSB2YWxvciBqdW50byBjb20gYSB0ZW1wZXJhdHVyYVwiLFxyXG4gICAgfSxcclxuICAgIE1heFRva2Vuczoge1xyXG4gICAgICBUaXRsZTogXCJNw6F4aW1vIGRlIFRva2Vuc1wiLFxyXG4gICAgICBTdWJUaXRsZTogXCJDb21wcmltZW50byBtw6F4aW1vIGRlIHRva2VucyBkZSBlbnRyYWRhIGUgdG9rZW5zIGdlcmFkb3NcIixcclxuICAgIH0sXHJcbiAgICBQcmVzZW5jZVBlbmFsdHk6IHtcclxuICAgICAgVGl0bGU6IFwiUGVuYWxpZGFkZSBkZSBQcmVzZW7Dp2FcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJVbSB2YWxvciBtYWlvciBhdW1lbnRhIGEgcHJvYmFiaWxpZGFkZSBkZSBmYWxhciBzb2JyZSBub3ZvcyB0w7NwaWNvc1wiLFxyXG4gICAgfSxcclxuICAgIEZyZXF1ZW5jeVBlbmFsdHk6IHtcclxuICAgICAgVGl0bGU6IFwiUGVuYWxpZGFkZSBkZSBGcmVxdcOqbmNpYVwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIlVtIHZhbG9yIG1haW9yIGRpbWludWkgYSBwcm9iYWJpbGlkYWRlIGRlIHJlcGV0aXIgYSBtZXNtYSBsaW5oYVwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIFN0b3JlOiB7XHJcbiAgICBEZWZhdWx0VG9waWM6IFwiTm92YSBDb252ZXJzYVwiLFxyXG4gICAgQm90SGVsbG86IFwiT2zDoSEgQ29tbyBwb3NzbyBhanVkw6EtbG8gaG9qZT9cIixcclxuICAgIEVycm9yOiBcIkFsZ28gZGV1IGVycmFkbywgcG9yIGZhdm9yIHRlbnRlIG5vdmFtZW50ZSBtYWlzIHRhcmRlLlwiLFxyXG4gICAgUHJvbXB0OiB7XHJcbiAgICAgIEhpc3Rvcnk6IChjb250ZW50OiBzdHJpbmcpID0+XHJcbiAgICAgICAgXCJFc3RlIMOpIHVtIHJlc3VtbyBkbyBoaXN0w7NyaWNvIGRlIGNoYXQgY29tbyB1bSByZWNhcGl0dWxhdGl2bzogXCIgK1xyXG4gICAgICAgIGNvbnRlbnQsXHJcbiAgICAgIFRvcGljOlxyXG4gICAgICAgIFwiUG9yIGZhdm9yLCBnZXJlIHVtIHTDrXR1bG8gZGUgcXVhdHJvIGEgY2luY28gcGFsYXZyYXMgcmVzdW1pbmRvIG5vc3NhIGNvbnZlcnNhIHNlbSBxdWFscXVlciBpbnRyb2R1w6fDo28sIHBvbnR1YcOnw6NvLCBhc3BhcywgcGVyw61vZG9zLCBzw61tYm9sb3Mgb3UgdGV4dG8gYWRpY2lvbmFsLiBSZW1vdmEgYXMgYXNwYXMgcXVlIG8gZW52b2x2ZW0uXCIsXHJcbiAgICAgIFN1bW1hcml6ZTpcclxuICAgICAgICBcIlJlc3VtYSBhIGRpc2N1c3PDo28gYnJldmVtZW50ZSBlbSAyMDAgcGFsYXZyYXMgb3UgbWVub3MgcGFyYSB1c2FyIGNvbW8gdW0gcHJvbXB0IHBhcmEgbyBjb250ZXh0byBmdXR1cm8uXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgQ29weToge1xyXG4gICAgU3VjY2VzczogXCJDb3BpYWRvIHBhcmEgYSDDoXJlYSBkZSB0cmFuc2ZlcsOqbmNpYVwiLFxyXG4gICAgRmFpbGVkOlxyXG4gICAgICBcIkZhbGhhIG5hIGPDs3BpYSwgcG9yIGZhdm9yIGNvbmNlZGEgcGVybWlzc8OjbyBwYXJhIGFjZXNzYXIgYSDDoXJlYSBkZSB0cmFuc2ZlcsOqbmNpYVwiLFxyXG4gIH0sXHJcbiAgRG93bmxvYWQ6IHtcclxuICAgIFN1Y2Nlc3M6IFwiQ29udGXDumRvIGJhaXhhZG8gcGFyYSBzZXUgZGlyZXTDs3Jpby5cIixcclxuICAgIEZhaWxlZDogXCJGYWxoYSBubyBkb3dubG9hZC5cIixcclxuICB9LFxyXG4gIENvbnRleHQ6IHtcclxuICAgIFRvYXN0OiAoeDogYW55KSA9PiBgQ29tICR7eH0gcHJvbXB0cyBjb250ZXh0dWFpc2AsXHJcbiAgICBFZGl0OiBcIkNvbmZpZ3VyYcOnw7VlcyBkbyBDaGF0IEF0dWFsXCIsXHJcbiAgICBBZGQ6IFwiQWRpY2lvbmFyIHVtIFByb21wdFwiLFxyXG4gICAgQ2xlYXI6IFwiQ29udGV4dG8gTGltcG9cIixcclxuICAgIFJldmVydDogXCJSZXZlcnRlclwiLFxyXG4gIH0sXHJcbiAgUGx1Z2luOiB7XHJcbiAgICBOYW1lOiBcIlBsdWdpblwiLFxyXG4gIH0sXHJcbiAgRmluZVR1bmVkOiB7XHJcbiAgICBTeXNtZXNzYWdlOiBcIlZvY8OqIMOpIHVtIGFzc2lzdGVudGUgcXVlXCIsXHJcbiAgfSxcclxuICBTZWFyY2hDaGF0OiB7XHJcbiAgICBOYW1lOiBcIlBlc3F1aXNhclwiLFxyXG4gICAgUGFnZToge1xyXG4gICAgICBUaXRsZTogXCJQZXNxdWlzYXIgaGlzdMOzcmljbyBkZSBjaGF0XCIsXHJcbiAgICAgIFNlYXJjaDogXCJEaWdpdGUgcGFsYXZyYXMtY2hhdmUgcGFyYSBwZXNxdWlzYVwiLFxyXG4gICAgICBOb1Jlc3VsdDogXCJOZW5odW0gcmVzdWx0YWRvIGVuY29udHJhZG9cIixcclxuICAgICAgTm9EYXRhOiBcIlNlbSBkYWRvc1wiLFxyXG4gICAgICBMb2FkaW5nOiBcIkNhcnJlZ2FuZG9cIixcclxuXHJcbiAgICAgIFN1YlRpdGxlOiAoY291bnQ6IG51bWJlcikgPT4gYEVuY29udHJhZG8gJHtjb3VudH0gcmVzdWx0YWRvc2AsXHJcbiAgICB9LFxyXG4gICAgSXRlbToge1xyXG4gICAgICBWaWV3OiBcIlZlclwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIE1hc2s6IHtcclxuICAgIE5hbWU6IFwiTcOhc2NhcmFcIixcclxuICAgIFBhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwiVGVtcGxhdGUgZGUgUHJvbXB0XCIsXHJcbiAgICAgIFN1YlRpdGxlOiAoY291bnQ6IG51bWJlcikgPT4gYCR7Y291bnR9IHRlbXBsYXRlcyBkZSBwcm9tcHRgLFxyXG4gICAgICBTZWFyY2g6IFwiQnVzY2FyIFRlbXBsYXRlc1wiLFxyXG4gICAgICBDcmVhdGU6IFwiQ3JpYXJcIixcclxuICAgIH0sXHJcbiAgICBJdGVtOiB7XHJcbiAgICAgIEluZm86IChjb3VudDogbnVtYmVyKSA9PiBgJHtjb3VudH0gcHJvbXB0c2AsXHJcbiAgICAgIENoYXQ6IFwiQ2hhdFwiLFxyXG4gICAgICBWaWV3OiBcIlZpc3VhbGl6YXJcIixcclxuICAgICAgRWRpdDogXCJFZGl0YXJcIixcclxuICAgICAgRGVsZXRlOiBcIkRlbGV0YXJcIixcclxuICAgICAgRGVsZXRlQ29uZmlybTogXCJDb25maXJtYXIgcGFyYSBkZWxldGFyP1wiLFxyXG4gICAgfSxcclxuICAgIEVkaXRNb2RhbDoge1xyXG4gICAgICBUaXRsZTogKHJlYWRvbmx5OiBib29sZWFuKSA9PlxyXG4gICAgICAgIGBFZGl0YXIgVGVtcGxhdGUgZGUgUHJvbXB0ICR7cmVhZG9ubHkgPyBcIihzb21lbnRlIGxlaXR1cmEpXCIgOiBcIlwifWAsXHJcbiAgICAgIERvd25sb2FkOiBcIkJhaXhhclwiLFxyXG4gICAgICBDbG9uZTogXCJDbG9uYXJcIixcclxuICAgIH0sXHJcbiAgICBDb25maWc6IHtcclxuICAgICAgQXZhdGFyOiBcIkF2YXRhciBkbyBCb3RcIixcclxuICAgICAgTmFtZTogXCJOb21lIGRvIEJvdFwiLFxyXG4gICAgICBTeW5jOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiVXNhciBDb25maWd1cmHDp8OjbyBHbG9iYWxcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJVc2FyIGNvbmZpZ3VyYcOnw6NvIGdsb2JhbCBuZXN0ZSBjaGF0XCIsXHJcbiAgICAgICAgQ29uZmlybTpcclxuICAgICAgICAgIFwiQ29uZmlybWFyIHBhcmEgc3Vic3RpdHVpciBhIGNvbmZpZ3VyYcOnw6NvIHBlcnNvbmFsaXphZGEgcGVsYSBjb25maWd1cmHDp8OjbyBnbG9iYWw/XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEhpZGVDb250ZXh0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiRXNjb25kZXIgUHJvbXB0cyBkZSBDb250ZXh0b1wiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIk7Do28gbW9zdHJhciBwcm9tcHRzIGRlIGNvbnRleHRvIG5vIGNoYXRcIixcclxuICAgICAgfSxcclxuICAgICAgU2hhcmU6IHtcclxuICAgICAgICBUaXRsZTogXCJDb21wYXJ0aWxoYXIgRXN0YSBNw6FzY2FyYVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIkdlcmFyIHVtIGxpbmsgcGFyYSBlc3RhIG3DoXNjYXJhXCIsXHJcbiAgICAgICAgQWN0aW9uOiBcIkNvcGlhciBMaW5rXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgTmV3Q2hhdDoge1xyXG4gICAgUmV0dXJuOiBcIlJldG9ybmFyXCIsXHJcbiAgICBTa2lwOiBcIkFwZW5hcyBDb21lw6dhclwiLFxyXG4gICAgVGl0bGU6IFwiRXNjb2xoZXIgdW1hIE3DoXNjYXJhXCIsXHJcbiAgICBTdWJUaXRsZTogXCJDb252ZXJzZSBjb20gYSBBbG1hIHBvciB0csOhcyBkYSBNw6FzY2FyYVwiLFxyXG4gICAgTW9yZTogXCJFbmNvbnRyZSBNYWlzXCIsXHJcbiAgICBOb3RTaG93OiBcIk51bmNhIE1vc3RyYXIgTm92YW1lbnRlXCIsXHJcbiAgICBDb25maXJtTm9TaG93OlxyXG4gICAgICBcIkNvbmZpcm1hciBwYXJhIGRlc2FiaWxpdGFy77yfVm9jw6ogcG9kZSBoYWJpbGl0YXIgbmFzIGNvbmZpZ3VyYcOnw7VlcyBkZXBvaXMuXCIsXHJcbiAgfSxcclxuXHJcbiAgVUk6IHtcclxuICAgIENvbmZpcm06IFwiQ29uZmlybWFyXCIsXHJcbiAgICBDYW5jZWw6IFwiQ2FuY2VsYXJcIixcclxuICAgIENsb3NlOiBcIkZlY2hhclwiLFxyXG4gICAgQ3JlYXRlOiBcIkNyaWFyXCIsXHJcbiAgICBFZGl0OiBcIkVkaXRhclwiLFxyXG4gICAgRXhwb3J0OiBcIkV4cG9ydGFyXCIsXHJcbiAgICBJbXBvcnQ6IFwiSW1wb3J0YXJcIixcclxuICAgIFN5bmM6IFwiU2luY3Jvbml6YXJcIixcclxuICAgIENvbmZpZzogXCJDb25maWd1cmFyXCIsXHJcbiAgfSxcclxuICBFeHBvcnRlcjoge1xyXG4gICAgRGVzY3JpcHRpb246IHtcclxuICAgICAgVGl0bGU6IFwiQXBlbmFzIG1lbnNhZ2VucyBhcMOzcyBhIGxpbXBlemEgZG8gY29udGV4dG8gc2Vyw6NvIGV4aWJpZGFzXCIsXHJcbiAgICB9LFxyXG4gICAgTW9kZWw6IFwiTW9kZWxvXCIsXHJcbiAgICBNZXNzYWdlczogXCJNZW5zYWdlbnNcIixcclxuICAgIFRvcGljOiBcIlTDs3BpY29cIixcclxuICAgIFRpbWU6IFwiVGVtcG9cIixcclxuICB9LFxyXG5cclxuICBVUkxDb21tYW5kOiB7XHJcbiAgICBDb2RlOiBcIkPDs2RpZ28gZGUgYWNlc3NvIGRldGVjdGFkbyBhIHBhcnRpciBkYSB1cmwsIGNvbmZpcm1hciBwYXJhIGFwbGljYXI/IFwiLFxyXG4gICAgU2V0dGluZ3M6XHJcbiAgICAgIFwiQ29uZmlndXJhw6fDtWVzIGRldGVjdGFkYXMgYSBwYXJ0aXIgZGEgdXJsLCBjb25maXJtYXIgcGFyYSBhcGxpY2FyP1wiLFxyXG4gIH0sXHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBwdDtcclxuIl0sIm5hbWVzIjpbIlN1Ym1pdEtleSIsImdldENsaWVudENvbmZpZyIsIlNBQVNfQ0hBVF9VVE1fVVJMIiwiaXNBcHAiLCJwdCIsIldJUCIsIkVycm9yIiwiVW5hdXRob3JpemVkIiwiQXV0aCIsIlRpdGxlIiwiVGlwcyIsIlN1YlRpcHMiLCJJbnB1dCIsIkNvbmZpcm0iLCJMYXRlciIsIlJldHVybiIsIlNhYXNUaXBzIiwiVG9wVGlwcyIsIkNoYXRJdGVtIiwiQ2hhdEl0ZW1Db3VudCIsImNvdW50IiwiQ2hhdCIsIlN1YlRpdGxlIiwiRWRpdE1lc3NhZ2UiLCJUb3BpYyIsIkFjdGlvbnMiLCJDaGF0TGlzdCIsIkNvbXByZXNzZWRIaXN0b3J5IiwiRXhwb3J0IiwiQ29weSIsIlN0b3AiLCJSZXRyeSIsIlBpbiIsIlBpblRvYXN0Q29udGVudCIsIlBpblRvYXN0QWN0aW9uIiwiRGVsZXRlIiwiRWRpdCIsIlJlZnJlc2hUaXRsZSIsIlJlZnJlc2hUb2FzdCIsIkNvbW1hbmRzIiwibmV3IiwibmV3bSIsIm5leHQiLCJwcmV2IiwiY2xlYXIiLCJkZWwiLCJJbnB1dEFjdGlvbnMiLCJUb0JvdHRvbSIsIlRoZW1lIiwiYXV0byIsImxpZ2h0IiwiZGFyayIsIlByb21wdCIsIk1hc2tzIiwiQ2xlYXIiLCJTZXR0aW5ncyIsIlJlbmFtZSIsIlR5cGluZyIsInN1Ym1pdEtleSIsImlucHV0SGludHMiLCJTdHJpbmciLCJFbnRlciIsIlNlbmQiLCJDb25maWciLCJSZXNldCIsIlNhdmVBcyIsIklzQ29udGV4dCIsIkRvd25sb2FkIiwiTWVzc2FnZUZyb21Zb3UiLCJNZXNzYWdlRnJvbUNoYXRHUFQiLCJTaGFyZSIsIkZvcm1hdCIsIkluY2x1ZGVDb250ZXh0IiwiU3RlcHMiLCJTZWxlY3QiLCJQcmV2aWV3IiwiSW1hZ2UiLCJUb2FzdCIsIk1vZGFsIiwiU2VhcmNoIiwiQWxsIiwiTGF0ZXN0IiwiTWVtb3J5IiwiRW1wdHlDb250ZW50IiwiUmVzZXRDb25maXJtIiwiSG9tZSIsIk5ld0NoYXQiLCJEZWxldGVDaGF0IiwiRGVsZXRlVG9hc3QiLCJSZXZlcnQiLCJEYW5nZXIiLCJBY3Rpb24iLCJMYW5nIiwiTmFtZSIsIkF2YXRhciIsIkZvbnRTaXplIiwiRm9udEZhbWlseSIsIlBsYWNlaG9sZGVyIiwiSW5qZWN0U3lzdGVtUHJvbXB0cyIsIklucHV0VGVtcGxhdGUiLCJVcGRhdGUiLCJWZXJzaW9uIiwieCIsIklzTGF0ZXN0IiwiQ2hlY2tVcGRhdGUiLCJJc0NoZWNraW5nIiwiRm91bmRVcGRhdGUiLCJHb1RvVXBkYXRlIiwiU2VuZEtleSIsIlRpZ2h0Qm9yZGVyIiwiU2VuZFByZXZpZXdCdWJibGUiLCJBdXRvR2VuZXJhdGVUaXRsZSIsIlN5bmMiLCJDbG91ZFN0YXRlIiwiTm90U3luY1lldCIsIlN1Y2Nlc3MiLCJGYWlsIiwiQ2hlY2siLCJTeW5jVHlwZSIsIlByb3h5IiwiUHJveHlVcmwiLCJXZWJEYXYiLCJFbmRwb2ludCIsIlVzZXJOYW1lIiwiUGFzc3dvcmQiLCJVcFN0YXNoIiwiTG9jYWxTdGF0ZSIsIk92ZXJ2aWV3Iiwib3ZlcnZpZXciLCJjaGF0IiwibWVzc2FnZSIsInByb21wdCIsIm1hc2siLCJJbXBvcnRGYWlsZWQiLCJNYXNrIiwiU3BsYXNoIiwiQnVpbHRpbiIsIkRpc2FibGUiLCJMaXN0IiwiTGlzdENvdW50IiwiYnVpbHRpbiIsImN1c3RvbSIsIkFkZCIsIkVkaXRNb2RhbCIsIkhpc3RvcnlDb3VudCIsIkNvbXByZXNzVGhyZXNob2xkIiwiVXNhZ2UiLCJ1c2VkIiwidG90YWwiLCJOb0FjY2VzcyIsIkFjY2VzcyIsIlNhYXNTdGFydCIsIkxhYmVsIiwiQ2hhdE5vdyIsIkFjY2Vzc0NvZGUiLCJDdXN0b21FbmRwb2ludCIsIlByb3ZpZGVyIiwiT3BlbkFJIiwiQXBpS2V5IiwiQXp1cmUiLCJBcGlWZXJpb24iLCJBbnRocm9waWMiLCJDdXN0b21Nb2RlbCIsIk1vZGVsIiwiQ29tcHJlc3NNb2RlbCIsIlRlbXBlcmF0dXJlIiwiVG9wUCIsIk1heFRva2VucyIsIlByZXNlbmNlUGVuYWx0eSIsIkZyZXF1ZW5jeVBlbmFsdHkiLCJTdG9yZSIsIkRlZmF1bHRUb3BpYyIsIkJvdEhlbGxvIiwiSGlzdG9yeSIsImNvbnRlbnQiLCJTdW1tYXJpemUiLCJGYWlsZWQiLCJDb250ZXh0IiwiUGx1Z2luIiwiRmluZVR1bmVkIiwiU3lzbWVzc2FnZSIsIlNlYXJjaENoYXQiLCJQYWdlIiwiTm9SZXN1bHQiLCJOb0RhdGEiLCJMb2FkaW5nIiwiSXRlbSIsIlZpZXciLCJDcmVhdGUiLCJJbmZvIiwiRGVsZXRlQ29uZmlybSIsInJlYWRvbmx5IiwiQ2xvbmUiLCJIaWRlQ29udGV4dCIsIlNraXAiLCJNb3JlIiwiTm90U2hvdyIsIkNvbmZpcm1Ob1Nob3ciLCJVSSIsIkNhbmNlbCIsIkNsb3NlIiwiSW1wb3J0IiwiRXhwb3J0ZXIiLCJEZXNjcmlwdGlvbiIsIk1lc3NhZ2VzIiwiVGltZSIsIlVSTENvbW1hbmQiLCJDb2RlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/locales/pt.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/locales/ru.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/locales/ru.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _store_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../store/config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n\n\n\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_1__.getClientConfig)()?.isApp;\nconst ru = {\n WIP: \"Скоро...\",\n Error: {\n Unauthorized: isApp ? `😆 В разговоре возникли некоторые проблемы, не переживайте:\r\n \\\\ 1️⃣ Если вы хотите начать без настройки, [нажмите здесь, чтобы немедленно начать разговор 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\\\ 2️⃣ Если вы хотите использовать свои ресурсы OpenAI, нажмите [здесь](/#/settings), чтобы изменить настройки ⚙️` : `😆 В разговоре возникли некоторые проблемы, не переживайте:\r\n \\ 1️⃣ Если вы хотите начать без настройки, [нажмите здесь, чтобы немедленно начать разговор 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\ 2️⃣ Если вы используете частную версию развертывания, нажмите [здесь](/#/auth), чтобы ввести ключ доступа 🔑\r\n \\ 3️⃣ Если вы хотите использовать свои ресурсы OpenAI, нажмите [здесь](/#/settings), чтобы изменить настройки ⚙️\r\n `\n },\n Auth: {\n Title: \"Требуется пароль\",\n Tips: \"Администратор включил проверку пароля. Пожалуйста, введите код доступа ниже\",\n SubTips: \"Или введите ваш API-ключ OpenAI или Google\",\n Input: \"Введите код доступа здесь\",\n Confirm: \"Подтвердить\",\n Later: \"Позже\",\n Return: \"Назад\",\n SaasTips: \"Настройка слишком сложна, я хочу использовать это немедленно\",\n TopTips: \"\\uD83E\\uDD73 Предложение по запуску NextChat AI: разблокируйте OpenAI o1, GPT-4o, Claude-3.5 и новейшие большие модели прямо сейчас\"\n },\n ChatItem: {\n ChatItemCount: (count)=>`${count} бесед`\n },\n Chat: {\n SubTitle: (count)=>`Всего ${count} бесед`,\n EditMessage: {\n Title: \"Редактировать сообщение\",\n Topic: {\n Title: \"Тема чата\",\n SubTitle: \"Изменить текущую тему чата\"\n }\n },\n Actions: {\n ChatList: \"Просмотреть список сообщений\",\n CompressedHistory: \"Просмотреть сжатую историю подсказок\",\n Export: \"Экспортировать чат\",\n Copy: \"Копировать\",\n Stop: \"Остановить\",\n Retry: \"Повторить\",\n Pin: \"Закрепить\",\n PinToastContent: \"1 беседа закреплена в предустановленных подсказках\",\n PinToastAction: \"Просмотреть\",\n Delete: \"Удалить\",\n Edit: \"Редактировать\",\n RefreshTitle: \"Обновить заголовок\",\n RefreshToast: \"Запрос на обновление заголовка отправлен\"\n },\n Commands: {\n new: \"Новый чат\",\n newm: \"Создать чат из маски\",\n next: \"Следующий чат\",\n prev: \"Предыдущий чат\",\n clear: \"Очистить контекст\",\n del: \"Удалить чат\"\n },\n InputActions: {\n Stop: \"Остановить ответ\",\n ToBottom: \"Перейти к последнему\",\n Theme: {\n auto: \"Автоматическая тема\",\n light: \"Светлая тема\",\n dark: \"Темная тема\"\n },\n Prompt: \"Быстрая команда\",\n Masks: \"Все маски\",\n Clear: \"Очистить чат\",\n Settings: \"Настройки чата\",\n UploadImage: \"Загрузить изображение\"\n },\n Rename: \"Переименовать чат\",\n Typing: \"Печатает…\",\n Input: (submitKey)=>{\n var inputHints = `${submitKey} Отправить`;\n if (submitKey === String(_store_config__WEBPACK_IMPORTED_MODULE_0__.SubmitKey.Enter)) {\n inputHints += \",Shift + Enter для новой строки\";\n }\n return inputHints + \",/ для автозаполнения,: для команд\";\n },\n Send: \"Отправить\",\n Config: {\n Reset: \"Очистить память\",\n SaveAs: \"Сохранить как маску\"\n },\n IsContext: \"Предустановленные подсказки\"\n },\n Export: {\n Title: \"Поделиться историей чата\",\n Copy: \"Копировать все\",\n Download: \"Скачать файл\",\n Share: \"Поделиться в ShareGPT\",\n MessageFromYou: \"Пользователь\",\n MessageFromChatGPT: \"ChatGPT\",\n Format: {\n Title: \"Формат экспорта\",\n SubTitle: \"Можно экспортировать как Markdown текст или PNG изображение\"\n },\n IncludeContext: {\n Title: \"Включить контекст маски\",\n SubTitle: \"Показывать ли контекст маски в сообщениях\"\n },\n Steps: {\n Select: \"Выбрать\",\n Preview: \"Предпросмотр\"\n },\n Image: {\n Toast: \"Создание скриншота\",\n Modal: \"Длительное нажатие или правый клик для сохранения изображения\"\n }\n },\n Select: {\n Search: \"Поиск сообщений\",\n All: \"Выбрать все\",\n Latest: \"Последние сообщения\",\n Clear: \"Очистить выбор\"\n },\n Memory: {\n Title: \"Историческое резюме\",\n EmptyContent: \"Содержимое чата слишком короткое, чтобы суммировать\",\n Send: \"Автоматически сжать историю чата и отправить как контекст\",\n Copy: \"Копировать резюме\",\n Reset: \"[не используется]\",\n ResetConfirm: \"Подтвердить очистку исторического резюме?\"\n },\n Home: {\n NewChat: \"Новый чат\",\n DeleteChat: \"Подтвердить удаление выбранного чата?\",\n DeleteToast: \"Беседа удалена\",\n Revert: \"Отменить\"\n },\n Settings: {\n Title: \"Настройки\",\n SubTitle: \"Все параметры настроек\",\n Danger: {\n Reset: {\n Title: \"Сброс всех настроек\",\n SubTitle: \"Сброс всех параметров до значений по умолчанию\",\n Action: \"Сбросить сейчас\",\n Confirm: \"Подтвердить сброс всех настроек?\"\n },\n Clear: {\n Title: \"Очистить все данные\",\n SubTitle: \"Очистить все чаты и данные настроек\",\n Action: \"Очистить сейчас\",\n Confirm: \"Подтвердить очистку всех чатов и данных настроек?\"\n }\n },\n Lang: {\n Name: \"Language\",\n All: \"Все языки\"\n },\n Avatar: \"Аватар\",\n FontSize: {\n Title: \"Размер шрифта\",\n SubTitle: \"Размер шрифта в чате\"\n },\n FontFamily: {\n Title: \"Шрифт чата\",\n SubTitle: \"Шрифт содержимого чата, оставьте пустым для применения глобального шрифта по умолчанию\",\n Placeholder: \"Название шрифта\"\n },\n InjectSystemPrompts: {\n Title: \"Вставить системные подсказки\",\n SubTitle: \"Принудительно добавлять системную подсказку, имитирующую ChatGPT, в начале каждого запроса\"\n },\n InputTemplate: {\n Title: \"Предварительная обработка пользовательского ввода\",\n SubTitle: \"Последнее сообщение пользователя будет подставлено в этот шаблон\"\n },\n Update: {\n Version: (x)=>`Текущая версия: ${x}`,\n IsLatest: \"Установлена последняя версия\",\n CheckUpdate: \"Проверить обновления\",\n IsChecking: \"Проверка обновлений...\",\n FoundUpdate: (x)=>`Найдено новое обновление: ${x}`,\n GoToUpdate: \"Перейти к обновлению\"\n },\n SendKey: \"Кнопка отправки\",\n Theme: \"Тема\",\n TightBorder: \"Режим без границ\",\n SendPreviewBubble: {\n Title: \"Предварительный просмотр пузырьков\",\n SubTitle: \"Просмотр содержимого Markdown в пузырьках предварительного просмотра\"\n },\n AutoGenerateTitle: {\n Title: \"Автоматическое создание заголовка\",\n SubTitle: \"Создание подходящего заголовка на основе содержания беседы\"\n },\n Sync: {\n CloudState: \"Облачные данные\",\n NotSyncYet: \"Синхронизация еще не проводилась\",\n Success: \"Синхронизация успешна\",\n Fail: \"Не удалось синхронизировать\",\n Config: {\n Modal: {\n Title: \"Настройки облачной синхронизации\",\n Check: \"Проверить доступность\"\n },\n SyncType: {\n Title: \"Тип синхронизации\",\n SubTitle: \"Выберите предпочитаемый сервер синхронизации\"\n },\n Proxy: {\n Title: \"Включить прокси\",\n SubTitle: \"При синхронизации в браузере необходимо включить прокси для предотвращения ограничений кросс-домена\"\n },\n ProxyUrl: {\n Title: \"Адрес прокси\",\n SubTitle: \"Только для встроенного прокси в проекте\"\n },\n WebDav: {\n Endpoint: \"WebDAV адрес\",\n UserName: \"Имя пользователя\",\n Password: \"Пароль\"\n },\n UpStash: {\n Endpoint: \"UpStash Redis REST Url\",\n UserName: \"Имя резервной копии\",\n Password: \"UpStash Redis REST Token\"\n }\n },\n LocalState: \"Локальные данные\",\n Overview: (overview)=>{\n return `${overview.chat} бесед, ${overview.message} сообщений, ${overview.prompt} подсказок, ${overview.mask} масок`;\n },\n ImportFailed: \"Не удалось импортировать\"\n },\n Mask: {\n Splash: {\n Title: \"Стартовая страница масок\",\n SubTitle: \"При создании нового чата отображать стартовую страницу масок\"\n },\n Builtin: {\n Title: \"Скрыть встроенные маски\",\n SubTitle: \"Скрыть встроенные маски во всех списках масок\"\n }\n },\n Prompt: {\n Disable: {\n Title: \"Отключить автозаполнение подсказок\",\n SubTitle: \"Введите / в начале строки для активации автозаполнения\"\n },\n List: \"Список пользовательских подсказок\",\n ListCount: (builtin, custom)=>`Встроенные ${builtin}, пользовательские ${custom}`,\n Edit: \"Редактировать\",\n Modal: {\n Title: \"Список подсказок\",\n Add: \"Создать\",\n Search: \"Поиск подсказок\"\n },\n EditModal: {\n Title: \"Редактировать подсказки\"\n }\n },\n HistoryCount: {\n Title: \"Количество истории сообщений\",\n SubTitle: \"Количество историй сообщений, отправляемых с каждым запросом\"\n },\n CompressThreshold: {\n Title: \"Порог сжатия длины истории сообщений\",\n SubTitle: \"Когда не сжатая история сообщений превышает это значение, происходит сжатие\"\n },\n Usage: {\n Title: \"Проверка баланса\",\n SubTitle (used, total) {\n return `Использовано в этом месяце $${used}, всего по подписке $${total}`;\n },\n IsChecking: \"Проверка…\",\n Check: \"Проверить снова\",\n NoAccess: \"Введите API-ключ или пароль доступа для просмотра баланса\"\n },\n Access: {\n SaasStart: {\n Title: \"Используйте NextChat AI\",\n Label: \"(Самое экономичное решение)\",\n SubTitle: \"Официально поддерживается NextChat, готов к использованию без настройки, поддерживает последние крупные модели, такие как OpenAI o1, GPT-4o и Claude-3.5\",\n ChatNow: \"Начать чат\"\n },\n AccessCode: {\n Title: \"Пароль доступа\",\n SubTitle: \"Администратор включил защиту паролем\",\n Placeholder: \"Введите пароль доступа\"\n },\n CustomEndpoint: {\n Title: \"Пользовательский интерфейс\",\n SubTitle: \"Использовать ли пользовательский Azure или OpenAI сервис\"\n },\n Provider: {\n Title: \"Провайдер модели\",\n SubTitle: \"Переключиться на другого провайдера\"\n },\n OpenAI: {\n ApiKey: {\n Title: \"API-ключ\",\n SubTitle: \"Использовать пользовательский OpenAI-ключ для обхода ограничений пароля\",\n Placeholder: \"OpenAI API-ключ\"\n },\n Endpoint: {\n Title: \"Адрес интерфейса\",\n SubTitle: \"Кроме адреса по умолчанию, должен содержать http(s)://\"\n }\n },\n Azure: {\n ApiKey: {\n Title: \"Ключ интерфейса\",\n SubTitle: \"Использовать пользовательский Azure-ключ для обхода ограничений пароля\",\n Placeholder: \"Azure API-ключ\"\n },\n Endpoint: {\n Title: \"Адрес интерфейса\",\n SubTitle: \"Пример:\"\n },\n ApiVerion: {\n Title: \"Версия интерфейса (azure api version)\",\n SubTitle: \"Выберите конкретную версию\"\n }\n },\n Anthropic: {\n ApiKey: {\n Title: \"Ключ интерфейса\",\n SubTitle: \"Использовать пользовательский Anthropic-ключ для обхода ограничений пароля\",\n Placeholder: \"Anthropic API-ключ\"\n },\n Endpoint: {\n Title: \"Адрес интерфейса\",\n SubTitle: \"Пример:\"\n },\n ApiVerion: {\n Title: \"Версия интерфейса (claude api version)\",\n SubTitle: \"Выберите конкретную версию API\"\n }\n },\n Google: {\n ApiKey: {\n Title: \"API-ключ\",\n SubTitle: \"Получите ваш API-ключ Google AI\",\n Placeholder: \"Введите ваш API-ключ Google AI Studio\"\n },\n Endpoint: {\n Title: \"Адрес интерфейса\",\n SubTitle: \"Пример:\"\n },\n ApiVersion: {\n Title: \"Версия API (только для gemini-pro)\",\n SubTitle: \"Выберите конкретную версию API\"\n },\n GoogleSafetySettings: {\n Title: \"Уровень фильтрации Google\",\n SubTitle: \"Настроить уровень фильтрации контента\"\n }\n },\n Baidu: {\n ApiKey: {\n Title: \"API-ключ\",\n SubTitle: \"Использовать пользовательский Baidu API-ключ\",\n Placeholder: \"Baidu API-ключ\"\n },\n SecretKey: {\n Title: \"Секретный ключ\",\n SubTitle: \"Использовать пользовательский Baidu Secret Key\",\n Placeholder: \"Baidu Secret Key\"\n },\n Endpoint: {\n Title: \"Адрес интерфейса\",\n SubTitle: \"Не поддерживает пользовательскую настройку, перейдите в .env\"\n }\n },\n ByteDance: {\n ApiKey: {\n Title: \"Ключ интерфейса\",\n SubTitle: \"Использовать пользовательский ByteDance API-ключ\",\n Placeholder: \"ByteDance API-ключ\"\n },\n Endpoint: {\n Title: \"Адрес интерфейса\",\n SubTitle: \"Пример:\"\n }\n },\n Alibaba: {\n ApiKey: {\n Title: \"Ключ интерфейса\",\n SubTitle: \"Использовать пользовательский Alibaba Cloud API-ключ\",\n Placeholder: \"Alibaba Cloud API-ключ\"\n },\n Endpoint: {\n Title: \"Адрес интерфейса\",\n SubTitle: \"Пример:\"\n }\n },\n CustomModel: {\n Title: \"Название пользовательской модели\",\n SubTitle: \"Добавьте варианты пользовательских моделей, разделяя запятыми\"\n }\n },\n Model: \"Модель\",\n CompressModel: {\n Title: \"Модель сжатия\",\n SubTitle: \"Модель, используемая для сжатия истории\"\n },\n Temperature: {\n Title: \"Случайность (temperature)\",\n SubTitle: \"Чем больше значение, тем более случайные ответы\"\n },\n TopP: {\n Title: \"Ядро выборки (top_p)\",\n SubTitle: \"Похожие на случайность, но не изменяйте вместе с случайностью\"\n },\n MaxTokens: {\n Title: \"Ограничение на количество токенов за один раз (max_tokens)\",\n SubTitle: \"Максимальное количество токенов на одно взаимодействие\"\n },\n PresencePenalty: {\n Title: \"Наказание за новизну тем (presence_penalty)\",\n SubTitle: \"Чем больше значение, тем выше вероятность расширения на новые темы\"\n },\n FrequencyPenalty: {\n Title: \"Наказание за частоту (frequency_penalty)\",\n SubTitle: \"Чем больше значение, тем выше вероятность уменьшения повторяющихся слов\"\n }\n },\n Store: {\n DefaultTopic: \"Новый чат\",\n BotHello: \"Чем могу помочь?\",\n Error: \"Произошла ошибка, попробуйте позже\",\n Prompt: {\n History: (content)=>\"Это резюме истории чата как предыстория: \" + content,\n Topic: \"Укажите краткую тему этого сообщения в четырех-пяти словах, без объяснений, знаков препинания, междометий, лишнего текста или выделения. Если темы нет, просто напишите 'Болтовня'\",\n Summarize: \"Кратко подведите итоги содержимого беседы для использования в качестве последующего контекстного запроса, не более 200 слов\"\n }\n },\n Copy: {\n Success: \"Скопировано в буфер обмена\",\n Failed: \"Не удалось скопировать, предоставьте доступ к буферу обмена\"\n },\n Download: {\n Success: \"Содержимое успешно загружено в вашу директорию.\",\n Failed: \"Не удалось загрузить.\"\n },\n Context: {\n Toast: (x)=>`Содержит ${x} предустановленных подсказок`,\n Edit: \"Текущие настройки чата\",\n Add: \"Добавить новый чат\",\n Clear: \"Контекст очищен\",\n Revert: \"Восстановить контекст\"\n },\n Plugin: {\n Name: \"Плагины\"\n },\n FineTuned: {\n Sysmessage: \"Вы - помощник\"\n },\n SearchChat: {\n Name: \"Поиск\",\n Page: {\n Title: \"Поиск в истории чатов\",\n Search: \"Введите ключевые слова для поиска\",\n NoResult: \"Результатов не найдено\",\n NoData: \"Нет данных\",\n Loading: \"Загрузка\",\n SubTitle: (count)=>`Найдено ${count} результатов`\n },\n Item: {\n View: \"Просмотр\"\n }\n },\n Mask: {\n Name: \"Маска\",\n Page: {\n Title: \"Предустановленные роли\",\n SubTitle: (count)=>`${count} предустановленных ролей`,\n Search: \"Поиск ролей\",\n Create: \"Создать\"\n },\n Item: {\n Info: (count)=>`Содержит ${count} предустановленных диалогов`,\n Chat: \"Диалог\",\n View: \"Просмотреть\",\n Edit: \"Редактировать\",\n Delete: \"Удалить\",\n DeleteConfirm: \"Подтвердить удаление?\"\n },\n EditModal: {\n Title: (readonly)=>`Редактирование предустановленной маски ${readonly ? \"(только для чтения)\" : \"\"}`,\n Download: \"Скачать предустановку\",\n Clone: \"Клонировать предустановку\"\n },\n Config: {\n Avatar: \"Аватар роли\",\n Name: \"Название роли\",\n Sync: {\n Title: \"Использовать глобальные настройки\",\n SubTitle: \"Будет ли текущий чат использовать глобальные настройки модели\",\n Confirm: \"Пользовательские настройки текущего чата будут автоматически заменены, подтвердите активацию глобальных настроек?\"\n },\n HideContext: {\n Title: \"Скрыть предустановленные диалоги\",\n SubTitle: \"После скрытия предустановленные диалоги не будут отображаться в чате\"\n },\n Share: {\n Title: \"Поделиться этой маской\",\n SubTitle: \"Создать прямую ссылку на эту маску\",\n Action: \"Скопировать ссылку\"\n }\n }\n },\n NewChat: {\n Return: \"Вернуться\",\n Skip: \"Начать сразу\",\n NotShow: \"Больше не показывать\",\n ConfirmNoShow: \"Подтвердить отключение? После отключения вы всегда сможете включить его снова в настройках.\",\n Title: \"Выберите маску\",\n SubTitle: \"Начните сейчас, столкнитесь с мыслями за маской\",\n More: \"Показать все\"\n },\n URLCommand: {\n Code: \"Обнаружен код доступа в ссылке, автоматически заполнить?\",\n Settings: \"Обнаружены предустановленные настройки в ссылке, автоматически заполнить?\"\n },\n UI: {\n Confirm: \"Подтвердить\",\n Cancel: \"Отмена\",\n Close: \"Закрыть\",\n Create: \"Создать\",\n Edit: \"Редактировать\",\n Export: \"Экспортировать\",\n Import: \"Импортировать\",\n Sync: \"Синхронизировать\",\n Config: \"Настройки\"\n },\n Exporter: {\n Description: {\n Title: \"Только сообщения после очистки контекста будут отображаться\"\n },\n Model: \"Модель\",\n Messages: \"Сообщения\",\n Topic: \"Тема\",\n Time: \"Время\"\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ru);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QVU7UUFDVnVMLE1BQU07SUFDUjtJQUVBQyxZQUFZO1FBQ1ZDLE1BQU07UUFDTnhKLFVBQ0U7SUFDSjtJQUVBeUosSUFBSTtRQUNGbk0sU0FBUztRQUNUb00sUUFBUTtRQUNSQyxPQUFPO1FBQ1BkLFFBQVE7UUFDUmhLLE1BQU07UUFDTlIsUUFBUTtRQUNSdUwsUUFBUTtRQUNSbEcsTUFBTTtRQUNOakQsUUFBUTtJQUNWO0lBQ0FvSixVQUFVO1FBQ1JDLGFBQWE7WUFDWDVNLE9BQU87UUFDVDtRQUNBa0ssT0FBTztRQUNQMkMsVUFBVTtRQUNWOUwsT0FBTztRQUNQK0wsTUFBTTtJQUNSO0FBQ0Y7QUFFQSxpRUFBZW5OLEVBQUVBLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9sb2NhbGVzL3J1LnRzPzU5NzciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3VibWl0S2V5IH0gZnJvbSBcIi4uL3N0b3JlL2NvbmZpZ1wiO1xyXG5pbXBvcnQgeyBQYXJ0aWFsTG9jYWxlVHlwZSB9IGZyb20gXCIuLi9sb2NhbGVzL2luZGV4XCI7XHJcbmltcG9ydCB7IGdldENsaWVudENvbmZpZyB9IGZyb20gXCIuLi9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB7IFNBQVNfQ0hBVF9VVE1fVVJMIH0gZnJvbSBcIkAvYXBwL2NvbnN0YW50XCI7XHJcbmNvbnN0IGlzQXBwID0gISFnZXRDbGllbnRDb25maWcoKT8uaXNBcHA7XHJcblxyXG5jb25zdCBydTogUGFydGlhbExvY2FsZVR5cGUgPSB7XHJcbiAgV0lQOiBcItCh0LrQvtGA0L4uLi5cIixcclxuICBFcnJvcjoge1xyXG4gICAgVW5hdXRob3JpemVkOiBpc0FwcFxyXG4gICAgICA/IGDwn5iGINCSINGA0LDQt9Cz0L7QstC+0YDQtSDQstC+0LfQvdC40LrQu9C4INC90LXQutC+0YLQvtGA0YvQtSDQv9GA0L7QsdC70LXQvNGLLCDQvdC1INC/0LXRgNC10LbQuNCy0LDQudGC0LU6XHJcbiAgICBcXFxcIDHvuI/ig6Mg0JXRgdC70Lgg0LLRiyDRhdC+0YLQuNGC0LUg0L3QsNGH0LDRgtGMINCx0LXQtyDQvdCw0YHRgtGA0L7QudC60LgsIFvQvdCw0LbQvNC40YLQtSDQt9C00LXRgdGMLCDRh9GC0L7QsdGLINC90LXQvNC10LTQu9C10L3QvdC+INC90LDRh9Cw0YLRjCDRgNCw0LfQs9C+0LLQvtGAIPCfmoBdKCR7U0FBU19DSEFUX1VUTV9VUkx9KVxyXG4gICAgXFxcXCAy77iP4oOjINCV0YHQu9C4INCy0Ysg0YXQvtGC0LjRgtC1INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDRgdCy0L7QuCDRgNC10YHRg9GA0YHRiyBPcGVuQUksINC90LDQttC80LjRgtC1IFvQt9C00LXRgdGMXSgvIy9zZXR0aW5ncyksINGH0YLQvtCx0Ysg0LjQt9C80LXQvdC40YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg4pqZ77iPYFxyXG4gICAgICA6IGDwn5iGINCSINGA0LDQt9Cz0L7QstC+0YDQtSDQstC+0LfQvdC40LrQu9C4INC90LXQutC+0YLQvtGA0YvQtSDQv9GA0L7QsdC70LXQvNGLLCDQvdC1INC/0LXRgNC10LbQuNCy0LDQudGC0LU6XHJcbiAgICBcXCAx77iP4oOjINCV0YHQu9C4INCy0Ysg0YXQvtGC0LjRgtC1INC90LDRh9Cw0YLRjCDQsdC10Lcg0L3QsNGB0YLRgNC+0LnQutC4LCBb0L3QsNC20LzQuNGC0LUg0LfQtNC10YHRjCwg0YfRgtC+0LHRiyDQvdC10LzQtdC00LvQtdC90L3QviDQvdCw0YfQsNGC0Ywg0YDQsNC30LPQvtCy0L7RgCDwn5qAXSgke1NBQVNfQ0hBVF9VVE1fVVJMfSlcclxuICAgIFxcIDLvuI/ig6Mg0JXRgdC70Lgg0LLRiyDQuNGB0L/QvtC70YzQt9GD0LXRgtC1INGH0LDRgdGC0L3Rg9GOINCy0LXRgNGB0LjRjiDRgNCw0LfQstC10YDRgtGL0LLQsNC90LjRjywg0L3QsNC20LzQuNGC0LUgW9C30LTQtdGB0YxdKC8jL2F1dGgpLCDRh9GC0L7QsdGLINCy0LLQtdGB0YLQuCDQutC70Y7RhyDQtNC+0YHRgtGD0L/QsCDwn5SRXHJcbiAgICBcXCAz77iP4oOjINCV0YHQu9C4INCy0Ysg0YXQvtGC0LjRgtC1INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDRgdCy0L7QuCDRgNC10YHRg9GA0YHRiyBPcGVuQUksINC90LDQttC80LjRgtC1IFvQt9C00LXRgdGMXSgvIy9zZXR0aW5ncyksINGH0YLQvtCx0Ysg0LjQt9C80LXQvdC40YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg4pqZ77iPXHJcbiBgLFxyXG4gIH0sXHJcbiAgQXV0aDoge1xyXG4gICAgVGl0bGU6IFwi0KLRgNC10LHRg9C10YLRgdGPINC/0LDRgNC+0LvRjFwiLFxyXG4gICAgVGlwczogXCLQkNC00LzQuNC90LjRgdGC0YDQsNGC0L7RgCDQstC60LvRjtGH0LjQuyDQv9GA0L7QstC10YDQutGDINC/0LDRgNC+0LvRjy4g0J/QvtC20LDQu9GD0LnRgdGC0LAsINCy0LLQtdC00LjRgtC1INC60L7QtCDQtNC+0YHRgtGD0L/QsCDQvdC40LbQtVwiLFxyXG4gICAgU3ViVGlwczogXCLQmNC70Lgg0LLQstC10LTQuNGC0LUg0LLQsNGIIEFQSS3QutC70Y7RhyBPcGVuQUkg0LjQu9C4IEdvb2dsZVwiLFxyXG4gICAgSW5wdXQ6IFwi0JLQstC10LTQuNGC0LUg0LrQvtC0INC00L7RgdGC0YPQv9CwINC30LTQtdGB0YxcIixcclxuICAgIENvbmZpcm06IFwi0J/QvtC00YLQstC10YDQtNC40YLRjFwiLFxyXG4gICAgTGF0ZXI6IFwi0J/QvtC30LbQtVwiLFxyXG4gICAgUmV0dXJuOiBcItCd0LDQt9Cw0LRcIixcclxuICAgIFNhYXNUaXBzOiBcItCd0LDRgdGC0YDQvtC50LrQsCDRgdC70LjRiNC60L7QvCDRgdC70L7QttC90LAsINGPINGF0L7Rh9GDINC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDRjdGC0L4g0L3QtdC80LXQtNC70LXQvdC90L5cIixcclxuICAgIFRvcFRpcHM6XHJcbiAgICAgIFwi8J+lsyDQn9GA0LXQtNC70L7QttC10L3QuNC1INC/0L4g0LfQsNC/0YPRgdC60YMgTmV4dENoYXQgQUk6INGA0LDQt9Cx0LvQvtC60LjRgNGD0LnRgtC1IE9wZW5BSSBvMSwgR1BULTRvLCBDbGF1ZGUtMy41INC4INC90L7QstC10LnRiNC40LUg0LHQvtC70YzRiNC40LUg0LzQvtC00LXQu9C4INC/0YDRj9C80L4g0YHQtdC50YfQsNGBXCIsXHJcbiAgfSxcclxuICBDaGF0SXRlbToge1xyXG4gICAgQ2hhdEl0ZW1Db3VudDogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50fSDQsdC10YHQtdC0YCxcclxuICB9LFxyXG4gIENoYXQ6IHtcclxuICAgIFN1YlRpdGxlOiAoY291bnQ6IG51bWJlcikgPT4gYNCS0YHQtdCz0L4gJHtjb3VudH0g0LHQtdGB0LXQtGAsXHJcbiAgICBFZGl0TWVzc2FnZToge1xyXG4gICAgICBUaXRsZTogXCLQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDRgdC+0L7QsdGJ0LXQvdC40LVcIixcclxuICAgICAgVG9waWM6IHtcclxuICAgICAgICBUaXRsZTogXCLQotC10LzQsCDRh9Cw0YLQsFwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcItCY0LfQvNC10L3QuNGC0Ywg0YLQtdC60YPRidGD0Y4g0YLQtdC80YMg0YfQsNGC0LBcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBBY3Rpb25zOiB7XHJcbiAgICAgIENoYXRMaXN0OiBcItCf0YDQvtGB0LzQvtGC0YDQtdGC0Ywg0YHQv9C40YHQvtC6INGB0L7QvtCx0YnQtdC90LjQuVwiLFxyXG4gICAgICBDb21wcmVzc2VkSGlzdG9yeTogXCLQn9GA0L7RgdC80L7RgtGA0LXRgtGMINGB0LbQsNGC0YPRjiDQuNGB0YLQvtGA0LjRjiDQv9C+0LTRgdC60LDQt9C+0LpcIixcclxuICAgICAgRXhwb3J0OiBcItCt0LrRgdC/0L7RgNGC0LjRgNC+0LLQsNGC0Ywg0YfQsNGCXCIsXHJcbiAgICAgIENvcHk6IFwi0JrQvtC/0LjRgNC+0LLQsNGC0YxcIixcclxuICAgICAgU3RvcDogXCLQntGB0YLQsNC90L7QstC40YLRjFwiLFxyXG4gICAgICBSZXRyeTogXCLQn9C+0LLRgtC+0YDQuNGC0YxcIixcclxuICAgICAgUGluOiBcItCX0LDQutGA0LXQv9C40YLRjFwiLFxyXG4gICAgICBQaW5Ub2FzdENvbnRlbnQ6IFwiMSDQsdC10YHQtdC00LAg0LfQsNC60YDQtdC/0LvQtdC90LAg0LIg0L/RgNC10LTRg9GB0YLQsNC90L7QstC70LXQvdC90YvRhSDQv9C+0LTRgdC60LDQt9C60LDRhVwiLFxyXG4gICAgICBQaW5Ub2FzdEFjdGlvbjogXCLQn9GA0L7RgdC80L7RgtGA0LXRgtGMXCIsXHJcbiAgICAgIERlbGV0ZTogXCLQo9C00LDQu9C40YLRjFwiLFxyXG4gICAgICBFZGl0OiBcItCg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMXCIsXHJcbiAgICAgIFJlZnJlc2hUaXRsZTogXCLQntCx0L3QvtCy0LjRgtGMINC30LDQs9C+0LvQvtCy0L7QulwiLFxyXG4gICAgICBSZWZyZXNoVG9hc3Q6IFwi0JfQsNC/0YDQvtGBINC90LAg0L7QsdC90L7QstC70LXQvdC40LUg0LfQsNCz0L7Qu9C+0LLQutCwINC+0YLQv9GA0LDQstC70LXQvVwiLFxyXG4gICAgfSxcclxuICAgIENvbW1hbmRzOiB7XHJcbiAgICAgIG5ldzogXCLQndC+0LLRi9C5INGH0LDRglwiLFxyXG4gICAgICBuZXdtOiBcItCh0L7Qt9C00LDRgtGMINGH0LDRgiDQuNC3INC80LDRgdC60LhcIixcclxuICAgICAgbmV4dDogXCLQodC70LXQtNGD0Y7RidC40Lkg0YfQsNGCXCIsXHJcbiAgICAgIHByZXY6IFwi0J/RgNC10LTRi9C00YPRidC40Lkg0YfQsNGCXCIsXHJcbiAgICAgIGNsZWFyOiBcItCe0YfQuNGB0YLQuNGC0Ywg0LrQvtC90YLQtdC60YHRglwiLFxyXG4gICAgICBkZWw6IFwi0KPQtNCw0LvQuNGC0Ywg0YfQsNGCXCIsXHJcbiAgICB9LFxyXG4gICAgSW5wdXRBY3Rpb25zOiB7XHJcbiAgICAgIFN0b3A6IFwi0J7RgdGC0LDQvdC+0LLQuNGC0Ywg0L7RgtCy0LXRglwiLFxyXG4gICAgICBUb0JvdHRvbTogXCLQn9C10YDQtdC50YLQuCDQuiDQv9C+0YHQu9C10LTQvdC10LzRg1wiLFxyXG4gICAgICBUaGVtZToge1xyXG4gICAgICAgIGF1dG86IFwi0JDQstGC0L7QvNCw0YLQuNGH0LXRgdC60LDRjyDRgtC10LzQsFwiLFxyXG4gICAgICAgIGxpZ2h0OiBcItCh0LLQtdGC0LvQsNGPINGC0LXQvNCwXCIsXHJcbiAgICAgICAgZGFyazogXCLQotC10LzQvdCw0Y8g0YLQtdC80LBcIixcclxuICAgICAgfSxcclxuICAgICAgUHJvbXB0OiBcItCR0YvRgdGC0YDQsNGPINC60L7QvNCw0L3QtNCwXCIsXHJcbiAgICAgIE1hc2tzOiBcItCS0YHQtSDQvNCw0YHQutC4XCIsXHJcbiAgICAgIENsZWFyOiBcItCe0YfQuNGB0YLQuNGC0Ywg0YfQsNGCXCIsXHJcbiAgICAgIFNldHRpbmdzOiBcItCd0LDRgdGC0YDQvtC50LrQuCDRh9Cw0YLQsFwiLFxyXG4gICAgICBVcGxvYWRJbWFnZTogXCLQl9Cw0LPRgNGD0LfQuNGC0Ywg0LjQt9C+0LHRgNCw0LbQtdC90LjQtVwiLFxyXG4gICAgfSxcclxuICAgIFJlbmFtZTogXCLQn9C10YDQtdC40LzQtdC90L7QstCw0YLRjCDRh9Cw0YJcIixcclxuICAgIFR5cGluZzogXCLQn9C10YfQsNGC0LDQtdGC4oCmXCIsXHJcbiAgICBJbnB1dDogKHN1Ym1pdEtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHZhciBpbnB1dEhpbnRzID0gYCR7c3VibWl0S2V5fSDQntGC0L/RgNCw0LLQuNGC0YxgO1xyXG4gICAgICBpZiAoc3VibWl0S2V5ID09PSBTdHJpbmcoU3VibWl0S2V5LkVudGVyKSkge1xyXG4gICAgICAgIGlucHV0SGludHMgKz0gXCLvvIxTaGlmdCArIEVudGVyINC00LvRjyDQvdC+0LLQvtC5INGB0YLRgNC+0LrQuFwiO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBpbnB1dEhpbnRzICsgXCLvvIwvINC00LvRjyDQsNCy0YLQvtC30LDQv9C+0LvQvdC10L3QuNGP77yMOiDQtNC70Y8g0LrQvtC80LDQvdC0XCI7XHJcbiAgICB9LFxyXG4gICAgU2VuZDogXCLQntGC0L/RgNCw0LLQuNGC0YxcIixcclxuICAgIENvbmZpZzoge1xyXG4gICAgICBSZXNldDogXCLQntGH0LjRgdGC0LjRgtGMINC/0LDQvNGP0YLRjFwiLFxyXG4gICAgICBTYXZlQXM6IFwi0KHQvtGF0YDQsNC90LjRgtGMINC60LDQuiDQvNCw0YHQutGDXCIsXHJcbiAgICB9LFxyXG4gICAgSXNDb250ZXh0OiBcItCf0YDQtdC00YPRgdGC0LDQvdC+0LLQu9C10L3QvdGL0LUg0L/QvtC00YHQutCw0LfQutC4XCIsXHJcbiAgfSxcclxuICBFeHBvcnQ6IHtcclxuICAgIFRpdGxlOiBcItCf0L7QtNC10LvQuNGC0YzRgdGPINC40YHRgtC+0YDQuNC10Lkg0YfQsNGC0LBcIixcclxuICAgIENvcHk6IFwi0JrQvtC/0LjRgNC+0LLQsNGC0Ywg0LLRgdC1XCIsXHJcbiAgICBEb3dubG9hZDogXCLQodC60LDRh9Cw0YLRjCDRhNCw0LnQu1wiLFxyXG4gICAgU2hhcmU6IFwi0J/QvtC00LXQu9C40YLRjNGB0Y8g0LIgU2hhcmVHUFRcIixcclxuICAgIE1lc3NhZ2VGcm9tWW91OiBcItCf0L7Qu9GM0LfQvtCy0LDRgtC10LvRjFwiLFxyXG4gICAgTWVzc2FnZUZyb21DaGF0R1BUOiBcIkNoYXRHUFRcIixcclxuICAgIEZvcm1hdDoge1xyXG4gICAgICBUaXRsZTogXCLQpNC+0YDQvNCw0YIg0Y3QutGB0L/QvtGA0YLQsFwiLFxyXG4gICAgICBTdWJUaXRsZTogXCLQnNC+0LbQvdC+INGN0LrRgdC/0L7RgNGC0LjRgNC+0LLQsNGC0Ywg0LrQsNC6IE1hcmtkb3duINGC0LXQutGB0YIg0LjQu9C4IFBORyDQuNC30L7QsdGA0LDQttC10L3QuNC1XCIsXHJcbiAgICB9LFxyXG4gICAgSW5jbHVkZUNvbnRleHQ6IHtcclxuICAgICAgVGl0bGU6IFwi0JLQutC70Y7Rh9C40YLRjCDQutC+0L3RgtC10LrRgdGCINC80LDRgdC60LhcIixcclxuICAgICAgU3ViVGl0bGU6IFwi0J/QvtC60LDQt9GL0LLQsNGC0Ywg0LvQuCDQutC+0L3RgtC10LrRgdGCINC80LDRgdC60Lgg0LIg0YHQvtC+0LHRidC10L3QuNGP0YVcIixcclxuICAgIH0sXHJcbiAgICBTdGVwczoge1xyXG4gICAgICBTZWxlY3Q6IFwi0JLRi9Cx0YDQsNGC0YxcIixcclxuICAgICAgUHJldmlldzogXCLQn9GA0LXQtNC/0YDQvtGB0LzQvtGC0YBcIixcclxuICAgIH0sXHJcbiAgICBJbWFnZToge1xyXG4gICAgICBUb2FzdDogXCLQodC+0LfQtNCw0L3QuNC1INGB0LrRgNC40L3RiNC+0YLQsFwiLFxyXG4gICAgICBNb2RhbDogXCLQlNC70LjRgtC10LvRjNC90L7QtSDQvdCw0LbQsNGC0LjQtSDQuNC70Lgg0L/RgNCw0LLRi9C5INC60LvQuNC6INC00LvRjyDRgdC+0YXRgNCw0L3QtdC90LjRjyDQuNC30L7QsdGA0LDQttC10L3QuNGPXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgU2VsZWN0OiB7XHJcbiAgICBTZWFyY2g6IFwi0J/QvtC40YHQuiDRgdC+0L7QsdGJ0LXQvdC40LlcIixcclxuICAgIEFsbDogXCLQktGL0LHRgNCw0YLRjCDQstGB0LVcIixcclxuICAgIExhdGVzdDogXCLQn9C+0YHQu9C10LTQvdC40LUg0YHQvtC+0LHRidC10L3QuNGPXCIsXHJcbiAgICBDbGVhcjogXCLQntGH0LjRgdGC0LjRgtGMINCy0YvQsdC+0YBcIixcclxuICB9LFxyXG4gIE1lbW9yeToge1xyXG4gICAgVGl0bGU6IFwi0JjRgdGC0L7RgNC40YfQtdGB0LrQvtC1INGA0LXQt9GO0LzQtVwiLFxyXG4gICAgRW1wdHlDb250ZW50OiBcItCh0L7QtNC10YDQttC40LzQvtC1INGH0LDRgtCwINGB0LvQuNGI0LrQvtC8INC60L7RgNC+0YLQutC+0LUsINGH0YLQvtCx0Ysg0YHRg9C80LzQuNGA0L7QstCw0YLRjFwiLFxyXG4gICAgU2VuZDogXCLQkNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCDRgdC20LDRgtGMINC40YHRgtC+0YDQuNGOINGH0LDRgtCwINC4INC+0YLQv9GA0LDQstC40YLRjCDQutCw0Log0LrQvtC90YLQtdC60YHRglwiLFxyXG4gICAgQ29weTogXCLQmtC+0L/QuNGA0L7QstCw0YLRjCDRgNC10LfRjtC80LVcIixcclxuICAgIFJlc2V0OiBcIlvQvdC1INC40YHQv9C+0LvRjNC30YPQtdGC0YHRj11cIixcclxuICAgIFJlc2V0Q29uZmlybTogXCLQn9C+0LTRgtCy0LXRgNC00LjRgtGMINC+0YfQuNGB0YLQutGDINC40YHRgtC+0YDQuNGH0LXRgdC60L7Qs9C+INGA0LXQt9GO0LzQtT9cIixcclxuICB9LFxyXG4gIEhvbWU6IHtcclxuICAgIE5ld0NoYXQ6IFwi0J3QvtCy0YvQuSDRh9Cw0YJcIixcclxuICAgIERlbGV0ZUNoYXQ6IFwi0J/QvtC00YLQstC10YDQtNC40YLRjCDRg9C00LDQu9C10L3QuNC1INCy0YvQsdGA0LDQvdC90L7Qs9C+INGH0LDRgtCwP1wiLFxyXG4gICAgRGVsZXRlVG9hc3Q6IFwi0JHQtdGB0LXQtNCwINGD0LTQsNC70LXQvdCwXCIsXHJcbiAgICBSZXZlcnQ6IFwi0J7RgtC80LXQvdC40YLRjFwiLFxyXG4gIH0sXHJcbiAgU2V0dGluZ3M6IHtcclxuICAgIFRpdGxlOiBcItCd0LDRgdGC0YDQvtC50LrQuFwiLFxyXG4gICAgU3ViVGl0bGU6IFwi0JLRgdC1INC/0LDRgNCw0LzQtdGC0YDRiyDQvdCw0YHRgtGA0L7QtdC6XCIsXHJcblxyXG4gICAgRGFuZ2VyOiB7XHJcbiAgICAgIFJlc2V0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwi0KHQsdGA0L7RgSDQstGB0LXRhSDQvdCw0YHRgtGA0L7QtdC6XCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi0KHQsdGA0L7RgSDQstGB0LXRhSDQv9Cw0YDQsNC80LXRgtGA0L7QsiDQtNC+INC30L3QsNGH0LXQvdC40Lkg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y5cIixcclxuICAgICAgICBBY3Rpb246IFwi0KHQsdGA0L7RgdC40YLRjCDRgdC10LnRh9Cw0YFcIixcclxuICAgICAgICBDb25maXJtOiBcItCf0L7QtNGC0LLQtdGA0LTQuNGC0Ywg0YHQsdGA0L7RgSDQstGB0LXRhSDQvdCw0YHRgtGA0L7QtdC6P1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBDbGVhcjoge1xyXG4gICAgICAgIFRpdGxlOiBcItCe0YfQuNGB0YLQuNGC0Ywg0LLRgdC1INC00LDQvdC90YvQtVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcItCe0YfQuNGB0YLQuNGC0Ywg0LLRgdC1INGH0LDRgtGLINC4INC00LDQvdC90YvQtSDQvdCw0YHRgtGA0L7QtdC6XCIsXHJcbiAgICAgICAgQWN0aW9uOiBcItCe0YfQuNGB0YLQuNGC0Ywg0YHQtdC50YfQsNGBXCIsXHJcbiAgICAgICAgQ29uZmlybTogXCLQn9C+0LTRgtCy0LXRgNC00LjRgtGMINC+0YfQuNGB0YLQutGDINCy0YHQtdGFINGH0LDRgtC+0LIg0Lgg0LTQsNC90L3Ri9GFINC90LDRgdGC0YDQvtC10Lo/XCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgTGFuZzoge1xyXG4gICAgICBOYW1lOiBcIkxhbmd1YWdlXCIsIC8vIEFUVEVOVElPTjog0LXRgdC70Lgg0LLRiyDRhdC+0YLQuNGC0LUg0LTQvtCx0LDQstC40YLRjCDQvdC+0LLRi9C5INC/0LXRgNC10LLQvtC0LCDQvdC1INC/0LXRgNC10LLQvtC00LjRgtC1INGN0YLQviDQt9C90LDRh9C10L3QuNC1LCDQvtGB0YLQsNCy0YzRgtC1INC10LPQviDQutCw0LogYExhbmd1YWdlYFxyXG4gICAgICBBbGw6IFwi0JLRgdC1INGP0LfRi9C60LhcIixcclxuICAgIH0sXHJcbiAgICBBdmF0YXI6IFwi0JDQstCw0YLQsNGAXCIsXHJcbiAgICBGb250U2l6ZToge1xyXG4gICAgICBUaXRsZTogXCLQoNCw0LfQvNC10YAg0YjRgNC40YTRgtCwXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcItCg0LDQt9C80LXRgCDRiNGA0LjRhNGC0LAg0LIg0YfQsNGC0LVcIixcclxuICAgIH0sXHJcbiAgICBGb250RmFtaWx5OiB7XHJcbiAgICAgIFRpdGxlOiBcItCo0YDQuNGE0YIg0YfQsNGC0LBcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCLQqNGA0LjRhNGCINGB0L7QtNC10YDQttC40LzQvtCz0L4g0YfQsNGC0LAsINC+0YHRgtCw0LLRjNGC0LUg0L/Rg9GB0YLRi9C8INC00LvRjyDQv9GA0LjQvNC10L3QtdC90LjRjyDQs9C70L7QsdCw0LvRjNC90L7Qs9C+INGI0YDQuNGE0YLQsCDQv9C+INGD0LzQvtC70YfQsNC90LjRjlwiLFxyXG4gICAgICBQbGFjZWhvbGRlcjogXCLQndCw0LfQstCw0L3QuNC1INGI0YDQuNGE0YLQsFwiLFxyXG4gICAgfSxcclxuICAgIEluamVjdFN5c3RlbVByb21wdHM6IHtcclxuICAgICAgVGl0bGU6IFwi0JLRgdGC0LDQstC40YLRjCDRgdC40YHRgtC10LzQvdGL0LUg0L/QvtC00YHQutCw0LfQutC4XCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwi0J/RgNC40L3Rg9C00LjRgtC10LvRjNC90L4g0LTQvtCx0LDQstC70Y/RgtGMINGB0LjRgdGC0LXQvNC90YPRjiDQv9C+0LTRgdC60LDQt9C60YMsINC40LzQuNGC0LjRgNGD0Y7RidGD0Y4gQ2hhdEdQVCwg0LIg0L3QsNGH0LDQu9C1INC60LDQttC00L7Qs9C+INC30LDQv9GA0L7RgdCwXCIsXHJcbiAgICB9LFxyXG4gICAgSW5wdXRUZW1wbGF0ZToge1xyXG4gICAgICBUaXRsZTogXCLQn9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdCw0Y8g0L7QsdGA0LDQsdC+0YLQutCwINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQvtCz0L4g0LLQstC+0LTQsFwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcItCf0L7RgdC70LXQtNC90LXQtSDRgdC+0L7QsdGJ0LXQvdC40LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINCx0YPQtNC10YIg0L/QvtC00YHRgtCw0LLQu9C10L3QviDQsiDRjdGC0L7RgiDRiNCw0LHQu9C+0L1cIixcclxuICAgIH0sXHJcblxyXG4gICAgVXBkYXRlOiB7XHJcbiAgICAgIFZlcnNpb246ICh4OiBzdHJpbmcpID0+IGDQotC10LrRg9GJ0LDRjyDQstC10YDRgdC40Y86ICR7eH1gLFxyXG4gICAgICBJc0xhdGVzdDogXCLQo9GB0YLQsNC90L7QstC70LXQvdCwINC/0L7RgdC70LXQtNC90Y/RjyDQstC10YDRgdC40Y9cIixcclxuICAgICAgQ2hlY2tVcGRhdGU6IFwi0J/RgNC+0LLQtdGA0LjRgtGMINC+0LHQvdC+0LLQu9C10L3QuNGPXCIsXHJcbiAgICAgIElzQ2hlY2tpbmc6IFwi0J/RgNC+0LLQtdGA0LrQsCDQvtCx0L3QvtCy0LvQtdC90LjQuS4uLlwiLFxyXG4gICAgICBGb3VuZFVwZGF0ZTogKHg6IHN0cmluZykgPT4gYNCd0LDQudC00LXQvdC+INC90L7QstC+0LUg0L7QsdC90L7QstC70LXQvdC40LU6ICR7eH1gLFxyXG4gICAgICBHb1RvVXBkYXRlOiBcItCf0LXRgNC10LnRgtC4INC6INC+0LHQvdC+0LLQu9C10L3QuNGOXCIsXHJcbiAgICB9LFxyXG4gICAgU2VuZEtleTogXCLQmtC90L7Qv9C60LAg0L7RgtC/0YDQsNCy0LrQuFwiLFxyXG4gICAgVGhlbWU6IFwi0KLQtdC80LBcIixcclxuICAgIFRpZ2h0Qm9yZGVyOiBcItCg0LXQttC40Lwg0LHQtdC3INCz0YDQsNC90LjRhlwiLFxyXG4gICAgU2VuZFByZXZpZXdCdWJibGU6IHtcclxuICAgICAgVGl0bGU6IFwi0J/RgNC10LTQstCw0YDQuNGC0LXQu9GM0L3Ri9C5INC/0YDQvtGB0LzQvtGC0YAg0L/Rg9C30YvRgNGM0LrQvtCyXCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwi0J/RgNC+0YHQvNC+0YLRgCDRgdC+0LTQtdGA0LbQuNC80L7Qs9C+IE1hcmtkb3duINCyINC/0YPQt9GL0YDRjNC60LDRhSDQv9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdC+0LPQviDQv9GA0L7RgdC80L7RgtGA0LBcIixcclxuICAgIH0sXHJcbiAgICBBdXRvR2VuZXJhdGVUaXRsZToge1xyXG4gICAgICBUaXRsZTogXCLQkNCy0YLQvtC80LDRgtC40YfQtdGB0LrQvtC1INGB0L7Qt9C00LDQvdC40LUg0LfQsNCz0L7Qu9C+0LLQutCwXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcItCh0L7Qt9C00LDQvdC40LUg0L/QvtC00YXQvtC00Y/RidC10LPQviDQt9Cw0LPQvtC70L7QstC60LAg0L3QsCDQvtGB0L3QvtCy0LUg0YHQvtC00LXRgNC20LDQvdC40Y8g0LHQtdGB0LXQtNGLXCIsXHJcbiAgICB9LFxyXG4gICAgU3luYzoge1xyXG4gICAgICBDbG91ZFN0YXRlOiBcItCe0LHQu9Cw0YfQvdGL0LUg0LTQsNC90L3Ri9C1XCIsXHJcbiAgICAgIE5vdFN5bmNZZXQ6IFwi0KHQuNC90YXRgNC+0L3QuNC30LDRhtC40Y8g0LXRidC1INC90LUg0L/RgNC+0LLQvtC00LjQu9Cw0YHRjFwiLFxyXG4gICAgICBTdWNjZXNzOiBcItCh0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPINGD0YHQv9C10YjQvdCwXCIsXHJcbiAgICAgIEZhaWw6IFwi0J3QtSDRg9C00LDQu9C+0YHRjCDRgdC40L3RhdGA0L7QvdC40LfQuNGA0L7QstCw0YLRjFwiLFxyXG5cclxuICAgICAgQ29uZmlnOiB7XHJcbiAgICAgICAgTW9kYWw6IHtcclxuICAgICAgICAgIFRpdGxlOiBcItCd0LDRgdGC0YDQvtC50LrQuCDQvtCx0LvQsNGH0L3QvtC5INGB0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNC4XCIsXHJcbiAgICAgICAgICBDaGVjazogXCLQn9GA0L7QstC10YDQuNGC0Ywg0LTQvtGB0YLRg9C/0L3QvtGB0YLRjFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgU3luY1R5cGU6IHtcclxuICAgICAgICAgIFRpdGxlOiBcItCi0LjQvyDRgdC40L3RhdGA0L7QvdC40LfQsNGG0LjQuFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi0JLRi9Cx0LXRgNC40YLQtSDQv9GA0LXQtNC/0L7Rh9C40YLQsNC10LzRi9C5INGB0LXRgNCy0LXRgCDRgdC40L3RhdGA0L7QvdC40LfQsNGG0LjQuFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgUHJveHk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcItCS0LrQu9GO0YfQuNGC0Ywg0L/RgNC+0LrRgdC4XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgICAgXCLQn9GA0Lgg0YHQuNC90YXRgNC+0L3QuNC30LDRhtC40Lgg0LIg0LHRgNCw0YPQt9C10YDQtSDQvdC10L7QsdGF0L7QtNC40LzQviDQstC60LvRjtGH0LjRgtGMINC/0YDQvtC60YHQuCDQtNC70Y8g0L/RgNC10LTQvtGC0LLRgNCw0YnQtdC90LjRjyDQvtCz0YDQsNC90LjRh9C10L3QuNC5INC60YDQvtGB0YEt0LTQvtC80LXQvdCwXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQcm94eVVybDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi0JDQtNGA0LXRgSDQv9GA0L7QutGB0LhcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcItCi0L7Qu9GM0LrQviDQtNC70Y8g0LLRgdGC0YDQvtC10L3QvdC+0LPQviDQv9GA0L7QutGB0Lgg0LIg0L/RgNC+0LXQutGC0LVcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBXZWJEYXY6IHtcclxuICAgICAgICAgIEVuZHBvaW50OiBcIldlYkRBViDQsNC00YDQtdGBXCIsXHJcbiAgICAgICAgICBVc2VyTmFtZTogXCLQmNC80Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPXCIsXHJcbiAgICAgICAgICBQYXNzd29yZDogXCLQn9Cw0YDQvtC70YxcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBVcFN0YXNoOiB7XHJcbiAgICAgICAgICBFbmRwb2ludDogXCJVcFN0YXNoIFJlZGlzIFJFU1QgVXJsXCIsXHJcbiAgICAgICAgICBVc2VyTmFtZTogXCLQmNC80Y8g0YDQtdC30LXRgNCy0L3QvtC5INC60L7Qv9C40LhcIixcclxuICAgICAgICAgIFBhc3N3b3JkOiBcIlVwU3Rhc2ggUmVkaXMgUkVTVCBUb2tlblwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICBMb2NhbFN0YXRlOiBcItCb0L7QutCw0LvRjNC90YvQtSDQtNCw0L3QvdGL0LVcIixcclxuICAgICAgT3ZlcnZpZXc6IChvdmVydmlldzogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGAke292ZXJ2aWV3LmNoYXR9INCx0LXRgdC10LQsICR7b3ZlcnZpZXcubWVzc2FnZX0g0YHQvtC+0LHRidC10L3QuNC5LCAke292ZXJ2aWV3LnByb21wdH0g0L/QvtC00YHQutCw0LfQvtC6LCAke292ZXJ2aWV3Lm1hc2t9INC80LDRgdC+0LpgO1xyXG4gICAgICB9LFxyXG4gICAgICBJbXBvcnRGYWlsZWQ6IFwi0J3QtSDRg9C00LDQu9C+0YHRjCDQuNC80L/QvtGA0YLQuNGA0L7QstCw0YLRjFwiLFxyXG4gICAgfSxcclxuICAgIE1hc2s6IHtcclxuICAgICAgU3BsYXNoOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi0KHRgtCw0YDRgtC+0LLQsNGPINGB0YLRgNCw0L3QuNGG0LAg0LzQsNGB0L7QulwiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCLQn9GA0Lgg0YHQvtC30LTQsNC90LjQuCDQvdC+0LLQvtCz0L4g0YfQsNGC0LAg0L7RgtC+0LHRgNCw0LbQsNGC0Ywg0YHRgtCw0YDRgtC+0LLRg9GOINGB0YLRgNCw0L3QuNGG0YMg0LzQsNGB0L7QulwiLFxyXG4gICAgICB9LFxyXG4gICAgICBCdWlsdGluOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi0KHQutGA0YvRgtGMINCy0YHRgtGA0L7QtdC90L3Ri9C1INC80LDRgdC60LhcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLQodC60YDRi9GC0Ywg0LLRgdGC0YDQvtC10L3QvdGL0LUg0LzQsNGB0LrQuCDQstC+INCy0YHQtdGFINGB0L/QuNGB0LrQsNGFINC80LDRgdC+0LpcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBQcm9tcHQ6IHtcclxuICAgICAgRGlzYWJsZToge1xyXG4gICAgICAgIFRpdGxlOiBcItCe0YLQutC70Y7Rh9C40YLRjCDQsNCy0YLQvtC30LDQv9C+0LvQvdC10L3QuNC1INC/0L7QtNGB0LrQsNC30L7QulwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcItCS0LLQtdC00LjRgtC1IC8g0LIg0L3QsNGH0LDQu9C1INGB0YLRgNC+0LrQuCDQtNC70Y8g0LDQutGC0LjQstCw0YbQuNC4INCw0LLRgtC+0LfQsNC/0L7Qu9C90LXQvdC40Y9cIixcclxuICAgICAgfSxcclxuICAgICAgTGlzdDogXCLQodC/0LjRgdC+0Log0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GM0YHQutC40YUg0L/QvtC00YHQutCw0LfQvtC6XCIsXHJcbiAgICAgIExpc3RDb3VudDogKGJ1aWx0aW46IG51bWJlciwgY3VzdG9tOiBudW1iZXIpID0+XHJcbiAgICAgICAgYNCS0YHRgtGA0L7QtdC90L3Ri9C1ICR7YnVpbHRpbn0sINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQuNC1ICR7Y3VzdG9tfWAsXHJcbiAgICAgIEVkaXQ6IFwi0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0YxcIixcclxuICAgICAgTW9kYWw6IHtcclxuICAgICAgICBUaXRsZTogXCLQodC/0LjRgdC+0Log0L/QvtC00YHQutCw0LfQvtC6XCIsXHJcbiAgICAgICAgQWRkOiBcItCh0L7Qt9C00LDRgtGMXCIsXHJcbiAgICAgICAgU2VhcmNoOiBcItCf0L7QuNGB0Log0L/QvtC00YHQutCw0LfQvtC6XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEVkaXRNb2RhbDoge1xyXG4gICAgICAgIFRpdGxlOiBcItCg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC/0L7QtNGB0LrQsNC30LrQuFwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIEhpc3RvcnlDb3VudDoge1xyXG4gICAgICBUaXRsZTogXCLQmtC+0LvQuNGH0LXRgdGC0LLQviDQuNGB0YLQvtGA0LjQuCDRgdC+0L7QsdGJ0LXQvdC40LlcIixcclxuICAgICAgU3ViVGl0bGU6IFwi0JrQvtC70LjRh9C10YHRgtCy0L4g0LjRgdGC0L7RgNC40Lkg0YHQvtC+0LHRidC10L3QuNC5LCDQvtGC0L/RgNCw0LLQu9GP0LXQvNGL0YUg0YEg0LrQsNC20LTRi9C8INC30LDQv9GA0L7RgdC+0LxcIixcclxuICAgIH0sXHJcbiAgICBDb21wcmVzc1RocmVzaG9sZDoge1xyXG4gICAgICBUaXRsZTogXCLQn9C+0YDQvtCzINGB0LbQsNGC0LjRjyDQtNC70LjQvdGLINC40YHRgtC+0YDQuNC4INGB0L7QvtCx0YnQtdC90LjQuVwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcItCa0L7Qs9C00LAg0L3QtSDRgdC20LDRgtCw0Y8g0LjRgdGC0L7RgNC40Y8g0YHQvtC+0LHRidC10L3QuNC5INC/0YDQtdCy0YvRiNCw0LXRgiDRjdGC0L4g0LfQvdCw0YfQtdC90LjQtSwg0L/RgNC+0LjRgdGF0L7QtNC40YIg0YHQttCw0YLQuNC1XCIsXHJcbiAgICB9LFxyXG5cclxuICAgIFVzYWdlOiB7XHJcbiAgICAgIFRpdGxlOiBcItCf0YDQvtCy0LXRgNC60LAg0LHQsNC70LDQvdGB0LBcIixcclxuICAgICAgU3ViVGl0bGUodXNlZDogYW55LCB0b3RhbDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIGDQmNGB0L/QvtC70YzQt9C+0LLQsNC90L4g0LIg0Y3RgtC+0Lwg0LzQtdGB0Y/RhtC1ICQke3VzZWR9LCDQstGB0LXQs9C+INC/0L4g0L/QvtC00L/QuNGB0LrQtSAkJHt0b3RhbH1gO1xyXG4gICAgICB9LFxyXG4gICAgICBJc0NoZWNraW5nOiBcItCf0YDQvtCy0LXRgNC60LDigKZcIixcclxuICAgICAgQ2hlY2s6IFwi0J/RgNC+0LLQtdGA0LjRgtGMINGB0L3QvtCy0LBcIixcclxuICAgICAgTm9BY2Nlc3M6IFwi0JLQstC10LTQuNGC0LUgQVBJLdC60LvRjtGHINC40LvQuCDQv9Cw0YDQvtC70Ywg0LTQvtGB0YLRg9C/0LAg0LTQu9GPINC/0YDQvtGB0LzQvtGC0YDQsCDQsdCw0LvQsNC90YHQsFwiLFxyXG4gICAgfSxcclxuXHJcbiAgICBBY2Nlc3M6IHtcclxuICAgICAgU2Fhc1N0YXJ0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwi0JjRgdC/0L7Qu9GM0LfRg9C50YLQtSBOZXh0Q2hhdCBBSVwiLFxyXG4gICAgICAgIExhYmVsOiBcIijQodCw0LzQvtC1INGN0LrQvtC90L7QvNC40YfQvdC+0LUg0YDQtdGI0LXQvdC40LUpXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcItCe0YTQuNGG0LjQsNC70YzQvdC+INC/0L7QtNC00LXRgNC20LjQstCw0LXRgtGB0Y8gTmV4dENoYXQsINCz0L7RgtC+0LIg0Log0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y4g0LHQtdC3INC90LDRgdGC0YDQvtC50LrQuCwg0L/QvtC00LTQtdGA0LbQuNCy0LDQtdGCINC/0L7RgdC70LXQtNC90LjQtSDQutGA0YPQv9C90YvQtSDQvNC+0LTQtdC70LgsINGC0LDQutC40LUg0LrQsNC6IE9wZW5BSSBvMSwgR1BULTRvINC4IENsYXVkZS0zLjVcIixcclxuICAgICAgICBDaGF0Tm93OiBcItCd0LDRh9Cw0YLRjCDRh9Cw0YJcIixcclxuICAgICAgfSxcclxuXHJcbiAgICAgIEFjY2Vzc0NvZGU6IHtcclxuICAgICAgICBUaXRsZTogXCLQn9Cw0YDQvtC70Ywg0LTQvtGB0YLRg9C/0LBcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLQkNC00LzQuNC90LjRgdGC0YDQsNGC0L7RgCDQstC60LvRjtGH0LjQuyDQt9Cw0YnQuNGC0YMg0L/QsNGA0L7Qu9C10LxcIixcclxuICAgICAgICBQbGFjZWhvbGRlcjogXCLQktCy0LXQtNC40YLQtSDQv9Cw0YDQvtC70Ywg0LTQvtGB0YLRg9C/0LBcIixcclxuICAgICAgfSxcclxuICAgICAgQ3VzdG9tRW5kcG9pbnQ6IHtcclxuICAgICAgICBUaXRsZTogXCLQn9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60LjQuSDQuNC90YLQtdGA0YTQtdC50YFcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLQmNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LvQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60LjQuSBBenVyZSDQuNC70LggT3BlbkFJINGB0LXRgNCy0LjRgVwiLFxyXG4gICAgICB9LFxyXG4gICAgICBQcm92aWRlcjoge1xyXG4gICAgICAgIFRpdGxlOiBcItCf0YDQvtCy0LDQudC00LXRgCDQvNC+0LTQtdC70LhcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLQn9C10YDQtdC60LvRjtGH0LjRgtGM0YHRjyDQvdCwINC00YDRg9Cz0L7Qs9C+INC/0YDQvtCy0LDQudC00LXRgNCwXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIE9wZW5BSToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJLdC60LvRjtGHXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgICAgXCLQmNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GM0YHQutC40LkgT3BlbkFJLdC60LvRjtGHINC00LvRjyDQvtCx0YXQvtC00LAg0L7Qs9GA0LDQvdC40YfQtdC90LjQuSDQv9Cw0YDQvtC70Y9cIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIk9wZW5BSSBBUEkt0LrQu9GO0YdcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi0JDQtNGA0LXRgSDQuNC90YLQtdGA0YTQtdC50YHQsFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi0JrRgNC+0LzQtSDQsNC00YDQtdGB0LAg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4sINC00L7Qu9C20LXQvSDRgdC+0LTQtdGA0LbQsNGC0YwgaHR0cChzKTovL1wiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEF6dXJlOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLQmtC70Y7RhyDQuNC90YLQtdGA0YTQtdC50YHQsFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwi0JjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQuNC5IEF6dXJlLdC60LvRjtGHINC00LvRjyDQvtCx0YXQvtC00LAg0L7Qs9GA0LDQvdC40YfQtdC90LjQuSDQv9Cw0YDQvtC70Y9cIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkF6dXJlIEFQSS3QutC70Y7Rh1wiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLQkNC00YDQtdGBINC40L3RgtC10YDRhNC10LnRgdCwXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLQn9GA0LjQvNC10YA6XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgQXBpVmVyaW9uOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLQktC10YDRgdC40Y8g0LjQvdGC0LXRgNGE0LXQudGB0LAgKGF6dXJlIGFwaSB2ZXJzaW9uKVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi0JLRi9Cx0LXRgNC40YLQtSDQutC+0L3QutGA0LXRgtC90YPRjiDQstC10YDRgdC40Y5cIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBBbnRocm9waWM6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcItCa0LvRjtGHINC40L3RgtC10YDRhNC10LnRgdCwXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgICAgXCLQmNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GM0YHQutC40LkgQW50aHJvcGljLdC60LvRjtGHINC00LvRjyDQvtCx0YXQvtC00LAg0L7Qs9GA0LDQvdC40YfQtdC90LjQuSDQv9Cw0YDQvtC70Y9cIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkFudGhyb3BpYyBBUEkt0LrQu9GO0YdcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi0JDQtNGA0LXRgSDQuNC90YLQtdGA0YTQtdC50YHQsFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi0J/RgNC40LzQtdGAOlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcmlvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi0JLQtdGA0YHQuNGPINC40L3RgtC10YDRhNC10LnRgdCwIChjbGF1ZGUgYXBpIHZlcnNpb24pXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLQktGL0LHQtdGA0LjRgtC1INC60L7QvdC60YDQtdGC0L3Rg9GOINCy0LXRgNGB0LjRjiBBUElcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBHb29nbGU6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSS3QutC70Y7Rh1wiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi0J/QvtC70YPRh9C40YLQtSDQstCw0YggQVBJLdC60LvRjtGHIEdvb2dsZSBBSVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwi0JLQstC10LTQuNGC0LUg0LLQsNGIIEFQSS3QutC70Y7RhyBHb29nbGUgQUkgU3R1ZGlvXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcItCQ0LTRgNC10YEg0LjQvdGC0LXRgNGE0LXQudGB0LBcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcItCf0YDQuNC80LXRgDpcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBBcGlWZXJzaW9uOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLQktC10YDRgdC40Y8gQVBJICjRgtC+0LvRjNC60L4g0LTQu9GPIGdlbWluaS1wcm8pXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLQktGL0LHQtdGA0LjRgtC1INC60L7QvdC60YDQtdGC0L3Rg9GOINCy0LXRgNGB0LjRjiBBUElcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEdvb2dsZVNhZmV0eVNldHRpbmdzOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLQo9GA0L7QstC10L3RjCDRhNC40LvRjNGC0YDQsNGG0LjQuCBHb29nbGVcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcItCd0LDRgdGC0YDQvtC40YLRjCDRg9GA0L7QstC10L3RjCDRhNC40LvRjNGC0YDQsNGG0LjQuCDQutC+0L3RgtC10L3RgtCwXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQmFpZHU6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSS3QutC70Y7Rh1wiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi0JjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQuNC5IEJhaWR1IEFQSS3QutC70Y7Rh1wiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQmFpZHUgQVBJLdC60LvRjtGHXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBTZWNyZXRLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcItCh0LXQutGA0LXRgtC90YvQuSDQutC70Y7Rh1wiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi0JjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQuNC5IEJhaWR1IFNlY3JldCBLZXlcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkJhaWR1IFNlY3JldCBLZXlcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLQkNC00YDQtdGBINC40L3RgtC10YDRhNC10LnRgdCwXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgICAgXCLQndC1INC/0L7QtNC00LXRgNC20LjQstCw0LXRgiDQv9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60YPRjiDQvdCw0YHRgtGA0L7QudC60YMsINC/0LXRgNC10LnQtNC40YLQtSDQsiAuZW52XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQnl0ZURhbmNlOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLQmtC70Y7RhyDQuNC90YLQtdGA0YTQtdC50YHQsFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi0JjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQuNC5IEJ5dGVEYW5jZSBBUEkt0LrQu9GO0YdcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkJ5dGVEYW5jZSBBUEkt0LrQu9GO0YdcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLQkNC00YDQtdGBINC40L3RgtC10YDRhNC10LnRgdCwXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLQn9GA0LjQvNC10YA6XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQWxpYmFiYToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwi0JrQu9GO0Ycg0LjQvdGC0LXRgNGE0LXQudGB0LBcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcItCY0YHQv9C+0LvRjNC30L7QstCw0YLRjCDQv9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60LjQuSBBbGliYWJhIENsb3VkIEFQSS3QutC70Y7Rh1wiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQWxpYmFiYSBDbG91ZCBBUEkt0LrQu9GO0YdcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLQkNC00YDQtdGBINC40L3RgtC10YDRhNC10LnRgdCwXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLQn9GA0LjQvNC10YA6XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQ3VzdG9tTW9kZWw6IHtcclxuICAgICAgICBUaXRsZTogXCLQndCw0LfQstCw0L3QuNC1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQvtC5INC80L7QtNC10LvQuFwiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCLQlNC+0LHQsNCy0YzRgtC1INCy0LDRgNC40LDQvdGC0Ysg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GM0YHQutC40YUg0LzQvtC00LXQu9C10LksINGA0LDQt9C00LXQu9GP0Y8g0LfQsNC/0Y/RgtGL0LzQuFwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuXHJcbiAgICBNb2RlbDogXCLQnNC+0LTQtdC70YxcIixcclxuICAgIENvbXByZXNzTW9kZWw6IHtcclxuICAgICAgVGl0bGU6IFwi0JzQvtC00LXQu9GMINGB0LbQsNGC0LjRj1wiLFxyXG4gICAgICBTdWJUaXRsZTogXCLQnNC+0LTQtdC70YwsINC40YHQv9C+0LvRjNC30YPQtdC80LDRjyDQtNC70Y8g0YHQttCw0YLQuNGPINC40YHRgtC+0YDQuNC4XCIsXHJcbiAgICB9LFxyXG4gICAgVGVtcGVyYXR1cmU6IHtcclxuICAgICAgVGl0bGU6IFwi0KHQu9GD0YfQsNC50L3QvtGB0YLRjCAodGVtcGVyYXR1cmUpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcItCn0LXQvCDQsdC+0LvRjNGI0LUg0LfQvdCw0YfQtdC90LjQtSwg0YLQtdC8INCx0L7Qu9C10LUg0YHQu9GD0YfQsNC50L3Ri9C1INC+0YLQstC10YLRi1wiLFxyXG4gICAgfSxcclxuICAgIFRvcFA6IHtcclxuICAgICAgVGl0bGU6IFwi0K/QtNGA0L4g0LLRi9Cx0L7RgNC60LggKHRvcF9wKVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCLQn9C+0YXQvtC20LjQtSDQvdCwINGB0LvRg9GH0LDQudC90L7RgdGC0YwsINC90L4g0L3QtSDQuNC30LzQtdC90Y/QudGC0LUg0LLQvNC10YHRgtC1INGBINGB0LvRg9GH0LDQudC90L7RgdGC0YzRjlwiLFxyXG4gICAgfSxcclxuICAgIE1heFRva2Vuczoge1xyXG4gICAgICBUaXRsZTogXCLQntCz0YDQsNC90LjRh9C10L3QuNC1INC90LAg0LrQvtC70LjRh9C10YHRgtCy0L4g0YLQvtC60LXQvdC+0LIg0LfQsCDQvtC00LjQvSDRgNCw0LcgKG1heF90b2tlbnMpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcItCc0LDQutGB0LjQvNCw0LvRjNC90L7QtSDQutC+0LvQuNGH0LXRgdGC0LLQviDRgtC+0LrQtdC90L7QsiDQvdCwINC+0LTQvdC+INCy0LfQsNC40LzQvtC00LXQudGB0YLQstC40LVcIixcclxuICAgIH0sXHJcbiAgICBQcmVzZW5jZVBlbmFsdHk6IHtcclxuICAgICAgVGl0bGU6IFwi0J3QsNC60LDQt9Cw0L3QuNC1INC30LAg0L3QvtCy0LjQt9C90YMg0YLQtdC8IChwcmVzZW5jZV9wZW5hbHR5KVwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcItCn0LXQvCDQsdC+0LvRjNGI0LUg0LfQvdCw0YfQtdC90LjQtSwg0YLQtdC8INCy0YvRiNC1INCy0LXRgNC+0Y/RgtC90L7RgdGC0Ywg0YDQsNGB0YjQuNGA0LXQvdC40Y8g0L3QsCDQvdC+0LLRi9C1INGC0LXQvNGLXCIsXHJcbiAgICB9LFxyXG4gICAgRnJlcXVlbmN5UGVuYWx0eToge1xyXG4gICAgICBUaXRsZTogXCLQndCw0LrQsNC30LDQvdC40LUg0LfQsCDRh9Cw0YHRgtC+0YLRgyAoZnJlcXVlbmN5X3BlbmFsdHkpXCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwi0KfQtdC8INCx0L7Qu9GM0YjQtSDQt9C90LDRh9C10L3QuNC1LCDRgtC10Lwg0LLRi9GI0LUg0LLQtdGA0L7Rj9GC0L3QvtGB0YLRjCDRg9C80LXQvdGM0YjQtdC90LjRjyDQv9C+0LLRgtC+0YDRj9GO0YnQuNGF0YHRjyDRgdC70L7QslwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIFN0b3JlOiB7XHJcbiAgICBEZWZhdWx0VG9waWM6IFwi0J3QvtCy0YvQuSDRh9Cw0YJcIixcclxuICAgIEJvdEhlbGxvOiBcItCn0LXQvCDQvNC+0LPRgyDQv9C+0LzQvtGH0Yw/XCIsXHJcbiAgICBFcnJvcjogXCLQn9GA0L7QuNC30L7RiNC70LAg0L7RiNC40LHQutCwLCDQv9C+0L/RgNC+0LHRg9C50YLQtSDQv9C+0LfQttC1XCIsXHJcbiAgICBQcm9tcHQ6IHtcclxuICAgICAgSGlzdG9yeTogKGNvbnRlbnQ6IHN0cmluZykgPT5cclxuICAgICAgICBcItCt0YLQviDRgNC10LfRjtC80LUg0LjRgdGC0L7RgNC40Lgg0YfQsNGC0LAg0LrQsNC6INC/0YDQtdC00YvRgdGC0L7RgNC40Y86IFwiICsgY29udGVudCxcclxuICAgICAgVG9waWM6XHJcbiAgICAgICAgXCLQo9C60LDQttC40YLQtSDQutGA0LDRgtC60YPRjiDRgtC10LzRgyDRjdGC0L7Qs9C+INGB0L7QvtCx0YnQtdC90LjRjyDQsiDRh9C10YLRi9GA0LXRhS3Qv9GP0YLQuCDRgdC70L7QstCw0YUsINCx0LXQtyDQvtCx0YrRj9GB0L3QtdC90LjQuSwg0LfQvdCw0LrQvtCyINC/0YDQtdC/0LjQvdCw0L3QuNGPLCDQvNC10LbQtNC+0LzQtdGC0LjQuSwg0LvQuNGI0L3QtdCz0L4g0YLQtdC60YHRgtCwINC40LvQuCDQstGL0LTQtdC70LXQvdC40Y8uINCV0YHQu9C4INGC0LXQvNGLINC90LXRgiwg0L/RgNC+0YHRgtC+INC90LDQv9C40YjQuNGC0LUgJ9CR0L7Qu9GC0L7QstC90Y8nXCIsXHJcbiAgICAgIFN1bW1hcml6ZTpcclxuICAgICAgICBcItCa0YDQsNGC0LrQviDQv9C+0LTQstC10LTQuNGC0LUg0LjRgtC+0LPQuCDRgdC+0LTQtdGA0LbQuNC80L7Qs9C+INCx0LXRgdC10LTRiyDQtNC70Y8g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8g0LIg0LrQsNGH0LXRgdGC0LLQtSDQv9C+0YHQu9C10LTRg9GO0YnQtdCz0L4g0LrQvtC90YLQtdC60YHRgtC90L7Qs9C+INC30LDQv9GA0L7RgdCwLCDQvdC1INCx0L7Qu9C10LUgMjAwINGB0LvQvtCyXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgQ29weToge1xyXG4gICAgU3VjY2VzczogXCLQodC60L7Qv9C40YDQvtCy0LDQvdC+INCyINCx0YPRhNC10YAg0L7QsdC80LXQvdCwXCIsXHJcbiAgICBGYWlsZWQ6IFwi0J3QtSDRg9C00LDQu9C+0YHRjCDRgdC60L7Qv9C40YDQvtCy0LDRgtGMLCDQv9GA0LXQtNC+0YHRgtCw0LLRjNGC0LUg0LTQvtGB0YLRg9C/INC6INCx0YPRhNC10YDRgyDQvtCx0LzQtdC90LBcIixcclxuICB9LFxyXG4gIERvd25sb2FkOiB7XHJcbiAgICBTdWNjZXNzOiBcItCh0L7QtNC10YDQttC40LzQvtC1INGD0YHQv9C10YjQvdC+INC30LDQs9GA0YPQttC10L3QviDQsiDQstCw0YjRgyDQtNC40YDQtdC60YLQvtGA0LjRji5cIixcclxuICAgIEZhaWxlZDogXCLQndC1INGD0LTQsNC70L7RgdGMINC30LDQs9GA0YPQt9C40YLRjC5cIixcclxuICB9LFxyXG4gIENvbnRleHQ6IHtcclxuICAgIFRvYXN0OiAoeDogYW55KSA9PiBg0KHQvtC00LXRgNC20LjRgiAke3h9INC/0YDQtdC00YPRgdGC0LDQvdC+0LLQu9C10L3QvdGL0YUg0L/QvtC00YHQutCw0LfQvtC6YCxcclxuICAgIEVkaXQ6IFwi0KLQtdC60YPRidC40LUg0L3QsNGB0YLRgNC+0LnQutC4INGH0LDRgtCwXCIsXHJcbiAgICBBZGQ6IFwi0JTQvtCx0LDQstC40YLRjCDQvdC+0LLRi9C5INGH0LDRglwiLFxyXG4gICAgQ2xlYXI6IFwi0JrQvtC90YLQtdC60YHRgiDQvtGH0LjRidC10L1cIixcclxuICAgIFJldmVydDogXCLQktC+0YHRgdGC0LDQvdC+0LLQuNGC0Ywg0LrQvtC90YLQtdC60YHRglwiLFxyXG4gIH0sXHJcbiAgUGx1Z2luOiB7XHJcbiAgICBOYW1lOiBcItCf0LvQsNCz0LjQvdGLXCIsXHJcbiAgfSxcclxuICBGaW5lVHVuZWQ6IHtcclxuICAgIFN5c21lc3NhZ2U6IFwi0JLRiyAtINC/0L7QvNC+0YnQvdC40LpcIixcclxuICB9LFxyXG4gIFNlYXJjaENoYXQ6IHtcclxuICAgIE5hbWU6IFwi0J/QvtC40YHQulwiLFxyXG4gICAgUGFnZToge1xyXG4gICAgICBUaXRsZTogXCLQn9C+0LjRgdC6INCyINC40YHRgtC+0YDQuNC4INGH0LDRgtC+0LJcIixcclxuICAgICAgU2VhcmNoOiBcItCS0LLQtdC00LjRgtC1INC60LvRjtGH0LXQstGL0LUg0YHQu9C+0LLQsCDQtNC70Y8g0L/QvtC40YHQutCwXCIsXHJcbiAgICAgIE5vUmVzdWx0OiBcItCg0LXQt9GD0LvRjNGC0LDRgtC+0LIg0L3QtSDQvdCw0LnQtNC10L3QvlwiLFxyXG4gICAgICBOb0RhdGE6IFwi0J3QtdGCINC00LDQvdC90YvRhVwiLFxyXG4gICAgICBMb2FkaW5nOiBcItCX0LDQs9GA0YPQt9C60LBcIixcclxuXHJcbiAgICAgIFN1YlRpdGxlOiAoY291bnQ6IG51bWJlcikgPT4gYNCd0LDQudC00LXQvdC+ICR7Y291bnR9INGA0LXQt9GD0LvRjNGC0LDRgtC+0LJgLFxyXG4gICAgfSxcclxuICAgIEl0ZW06IHtcclxuICAgICAgVmlldzogXCLQn9GA0L7RgdC80L7RgtGAXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgTWFzazoge1xyXG4gICAgTmFtZTogXCLQnNCw0YHQutCwXCIsXHJcbiAgICBQYWdlOiB7XHJcbiAgICAgIFRpdGxlOiBcItCf0YDQtdC00YPRgdGC0LDQvdC+0LLQu9C10L3QvdGL0LUg0YDQvtC70LhcIixcclxuICAgICAgU3ViVGl0bGU6IChjb3VudDogbnVtYmVyKSA9PiBgJHtjb3VudH0g0L/RgNC10LTRg9GB0YLQsNC90L7QstC70LXQvdC90YvRhSDRgNC+0LvQtdC5YCxcclxuICAgICAgU2VhcmNoOiBcItCf0L7QuNGB0Log0YDQvtC70LXQuVwiLFxyXG4gICAgICBDcmVhdGU6IFwi0KHQvtC30LTQsNGC0YxcIixcclxuICAgIH0sXHJcbiAgICBJdGVtOiB7XHJcbiAgICAgIEluZm86IChjb3VudDogbnVtYmVyKSA9PiBg0KHQvtC00LXRgNC20LjRgiAke2NvdW50fSDQv9GA0LXQtNGD0YHRgtCw0L3QvtCy0LvQtdC90L3Ri9GFINC00LjQsNC70L7Qs9C+0LJgLFxyXG4gICAgICBDaGF0OiBcItCU0LjQsNC70L7Qs1wiLFxyXG4gICAgICBWaWV3OiBcItCf0YDQvtGB0LzQvtGC0YDQtdGC0YxcIixcclxuICAgICAgRWRpdDogXCLQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjFwiLFxyXG4gICAgICBEZWxldGU6IFwi0KPQtNCw0LvQuNGC0YxcIixcclxuICAgICAgRGVsZXRlQ29uZmlybTogXCLQn9C+0LTRgtCy0LXRgNC00LjRgtGMINGD0LTQsNC70LXQvdC40LU/XCIsXHJcbiAgICB9LFxyXG4gICAgRWRpdE1vZGFsOiB7XHJcbiAgICAgIFRpdGxlOiAocmVhZG9ubHk6IGJvb2xlYW4pID0+XHJcbiAgICAgICAgYNCg0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40LUg0L/RgNC10LTRg9GB0YLQsNC90L7QstC70LXQvdC90L7QuSDQvNCw0YHQutC4ICR7XHJcbiAgICAgICAgICByZWFkb25seSA/IFwi77yI0YLQvtC70YzQutC+INC00LvRjyDRh9GC0LXQvdC40Y/vvIlcIiA6IFwiXCJcclxuICAgICAgICB9YCxcclxuICAgICAgRG93bmxvYWQ6IFwi0KHQutCw0YfQsNGC0Ywg0L/RgNC10LTRg9GB0YLQsNC90L7QstC60YNcIixcclxuICAgICAgQ2xvbmU6IFwi0JrQu9C+0L3QuNGA0L7QstCw0YLRjCDQv9GA0LXQtNGD0YHRgtCw0L3QvtCy0LrRg1wiLFxyXG4gICAgfSxcclxuICAgIENvbmZpZzoge1xyXG4gICAgICBBdmF0YXI6IFwi0JDQstCw0YLQsNGAINGA0L7Qu9C4XCIsXHJcbiAgICAgIE5hbWU6IFwi0J3QsNC30LLQsNC90LjQtSDRgNC+0LvQuFwiLFxyXG4gICAgICBTeW5jOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi0JjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINCz0LvQvtCx0LDQu9GM0L3Ri9C1INC90LDRgdGC0YDQvtC50LrQuFwiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCLQkdGD0LTQtdGCINC70Lgg0YLQtdC60YPRidC40Lkg0YfQsNGCINC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQs9C70L7QsdCw0LvRjNC90YvQtSDQvdCw0YHRgtGA0L7QudC60Lgg0LzQvtC00LXQu9C4XCIsXHJcbiAgICAgICAgQ29uZmlybTpcclxuICAgICAgICAgIFwi0J/QvtC70YzQt9C+0LLQsNGC0LXQu9GM0YHQutC40LUg0L3QsNGB0YLRgNC+0LnQutC4INGC0LXQutGD0YnQtdCz0L4g0YfQsNGC0LAg0LHRg9C00YPRgiDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCDQt9Cw0LzQtdC90LXQvdGLLCDQv9C+0LTRgtCy0LXRgNC00LjRgtC1INCw0LrRgtC40LLQsNGG0LjRjiDQs9C70L7QsdCw0LvRjNC90YvRhSDQvdCw0YHRgtGA0L7QtdC6P1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBIaWRlQ29udGV4dDoge1xyXG4gICAgICAgIFRpdGxlOiBcItCh0LrRgNGL0YLRjCDQv9GA0LXQtNGD0YHRgtCw0L3QvtCy0LvQtdC90L3Ri9C1INC00LjQsNC70L7Qs9C4XCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcItCf0L7RgdC70LUg0YHQutGA0YvRgtC40Y8g0L/RgNC10LTRg9GB0YLQsNC90L7QstC70LXQvdC90YvQtSDQtNC40LDQu9C+0LPQuCDQvdC1INCx0YPQtNGD0YIg0L7RgtC+0LHRgNCw0LbQsNGC0YzRgdGPINCyINGH0LDRgtC1XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFNoYXJlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi0J/QvtC00LXQu9C40YLRjNGB0Y8g0Y3RgtC+0Lkg0LzQsNGB0LrQvtC5XCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi0KHQvtC30LTQsNGC0Ywg0L/RgNGP0LzRg9GOINGB0YHRi9C70LrRgyDQvdCwINGN0YLRgyDQvNCw0YHQutGDXCIsXHJcbiAgICAgICAgQWN0aW9uOiBcItCh0LrQvtC/0LjRgNC+0LLQsNGC0Ywg0YHRgdGL0LvQutGDXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgTmV3Q2hhdDoge1xyXG4gICAgUmV0dXJuOiBcItCS0LXRgNC90YPRgtGM0YHRj1wiLFxyXG4gICAgU2tpcDogXCLQndCw0YfQsNGC0Ywg0YHRgNCw0LfRg1wiLFxyXG4gICAgTm90U2hvdzogXCLQkdC+0LvRjNGI0LUg0L3QtSDQv9C+0LrQsNC30YvQstCw0YLRjFwiLFxyXG4gICAgQ29uZmlybU5vU2hvdzpcclxuICAgICAgXCLQn9C+0LTRgtCy0LXRgNC00LjRgtGMINC+0YLQutC70Y7Rh9C10L3QuNC1PyDQn9C+0YHQu9C1INC+0YLQutC70Y7Rh9C10L3QuNGPINCy0Ysg0LLRgdC10LPQtNCwINGB0LzQvtC20LXRgtC1INCy0LrQu9GO0YfQuNGC0Ywg0LXQs9C+INGB0L3QvtCy0LAg0LIg0L3QsNGB0YLRgNC+0LnQutCw0YUuXCIsXHJcbiAgICBUaXRsZTogXCLQktGL0LHQtdGA0LjRgtC1INC80LDRgdC60YNcIixcclxuICAgIFN1YlRpdGxlOiBcItCd0LDRh9C90LjRgtC1INGB0LXQudGH0LDRgSwg0YHRgtC+0LvQutC90LjRgtC10YHRjCDRgSDQvNGL0YHQu9GP0LzQuCDQt9CwINC80LDRgdC60L7QuVwiLFxyXG4gICAgTW9yZTogXCLQn9C+0LrQsNC30LDRgtGMINCy0YHQtVwiLFxyXG4gIH0sXHJcblxyXG4gIFVSTENvbW1hbmQ6IHtcclxuICAgIENvZGU6IFwi0J7QsdC90LDRgNGD0LbQtdC9INC60L7QtCDQtNC+0YHRgtGD0L/QsCDQsiDRgdGB0YvQu9C60LUsINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4INC30LDQv9C+0LvQvdC40YLRjD9cIixcclxuICAgIFNldHRpbmdzOlxyXG4gICAgICBcItCe0LHQvdCw0YDRg9C20LXQvdGLINC/0YDQtdC00YPRgdGC0LDQvdC+0LLQu9C10L3QvdGL0LUg0L3QsNGB0YLRgNC+0LnQutC4INCyINGB0YHRi9C70LrQtSwg0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60Lgg0LfQsNC/0L7Qu9C90LjRgtGMP1wiLFxyXG4gIH0sXHJcblxyXG4gIFVJOiB7XHJcbiAgICBDb25maXJtOiBcItCf0L7QtNGC0LLQtdGA0LTQuNGC0YxcIixcclxuICAgIENhbmNlbDogXCLQntGC0LzQtdC90LBcIixcclxuICAgIENsb3NlOiBcItCX0LDQutGA0YvRgtGMXCIsXHJcbiAgICBDcmVhdGU6IFwi0KHQvtC30LTQsNGC0YxcIixcclxuICAgIEVkaXQ6IFwi0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0YxcIixcclxuICAgIEV4cG9ydDogXCLQrdC60YHQv9C+0YDRgtC40YDQvtCy0LDRgtGMXCIsXHJcbiAgICBJbXBvcnQ6IFwi0JjQvNC/0L7RgNGC0LjRgNC+0LLQsNGC0YxcIixcclxuICAgIFN5bmM6IFwi0KHQuNC90YXRgNC+0L3QuNC30LjRgNC+0LLQsNGC0YxcIixcclxuICAgIENvbmZpZzogXCLQndCw0YHRgtGA0L7QudC60LhcIixcclxuICB9LFxyXG4gIEV4cG9ydGVyOiB7XHJcbiAgICBEZXNjcmlwdGlvbjoge1xyXG4gICAgICBUaXRsZTogXCLQotC+0LvRjNC60L4g0YHQvtC+0LHRidC10L3QuNGPINC/0L7RgdC70LUg0L7Rh9C40YHRgtC60Lgg0LrQvtC90YLQtdC60YHRgtCwINCx0YPQtNGD0YIg0L7RgtC+0LHRgNCw0LbQsNGC0YzRgdGPXCIsXHJcbiAgICB9LFxyXG4gICAgTW9kZWw6IFwi0JzQvtC00LXQu9GMXCIsXHJcbiAgICBNZXNzYWdlczogXCLQodC+0L7QsdGJ0LXQvdC40Y9cIixcclxuICAgIFRvcGljOiBcItCi0LXQvNCwXCIsXHJcbiAgICBUaW1lOiBcItCS0YDQtdC80Y9cIixcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgcnU7XHJcbiJdLCJuYW1lcyI6WyJTdWJtaXRLZXkiLCJnZXRDbGllbnRDb25maWciLCJTQUFTX0NIQVRfVVRNX1VSTCIsImlzQXBwIiwicnUiLCJXSVAiLCJFcnJvciIsIlVuYXV0aG9yaXplZCIsIkF1dGgiLCJUaXRsZSIsIlRpcHMiLCJTdWJUaXBzIiwiSW5wdXQiLCJDb25maXJtIiwiTGF0ZXIiLCJSZXR1cm4iLCJTYWFzVGlwcyIsIlRvcFRpcHMiLCJDaGF0SXRlbSIsIkNoYXRJdGVtQ291bnQiLCJjb3VudCIsIkNoYXQiLCJTdWJUaXRsZSIsIkVkaXRNZXNzYWdlIiwiVG9waWMiLCJBY3Rpb25zIiwiQ2hhdExpc3QiLCJDb21wcmVzc2VkSGlzdG9yeSIsIkV4cG9ydCIsIkNvcHkiLCJTdG9wIiwiUmV0cnkiLCJQaW4iLCJQaW5Ub2FzdENvbnRlbnQiLCJQaW5Ub2FzdEFjdGlvbiIsIkRlbGV0ZSIsIkVkaXQiLCJSZWZyZXNoVGl0bGUiLCJSZWZyZXNoVG9hc3QiLCJDb21tYW5kcyIsIm5ldyIsIm5ld20iLCJuZXh0IiwicHJldiIsImNsZWFyIiwiZGVsIiwiSW5wdXRBY3Rpb25zIiwiVG9Cb3R0b20iLCJUaGVtZSIsImF1dG8iLCJsaWdodCIsImRhcmsiLCJQcm9tcHQiLCJNYXNrcyIsIkNsZWFyIiwiU2V0dGluZ3MiLCJVcGxvYWRJbWFnZSIsIlJlbmFtZSIsIlR5cGluZyIsInN1Ym1pdEtleSIsImlucHV0SGludHMiLCJTdHJpbmciLCJFbnRlciIsIlNlbmQiLCJDb25maWciLCJSZXNldCIsIlNhdmVBcyIsIklzQ29udGV4dCIsIkRvd25sb2FkIiwiU2hhcmUiLCJNZXNzYWdlRnJvbVlvdSIsIk1lc3NhZ2VGcm9tQ2hhdEdQVCIsIkZvcm1hdCIsIkluY2x1ZGVDb250ZXh0IiwiU3RlcHMiLCJTZWxlY3QiLCJQcmV2aWV3IiwiSW1hZ2UiLCJUb2FzdCIsIk1vZGFsIiwiU2VhcmNoIiwiQWxsIiwiTGF0ZXN0IiwiTWVtb3J5IiwiRW1wdHlDb250ZW50IiwiUmVzZXRDb25maXJtIiwiSG9tZSIsIk5ld0NoYXQiLCJEZWxldGVDaGF0IiwiRGVsZXRlVG9hc3QiLCJSZXZlcnQiLCJEYW5nZXIiLCJBY3Rpb24iLCJMYW5nIiwiTmFtZSIsIkF2YXRhciIsIkZvbnRTaXplIiwiRm9udEZhbWlseSIsIlBsYWNlaG9sZGVyIiwiSW5qZWN0U3lzdGVtUHJvbXB0cyIsIklucHV0VGVtcGxhdGUiLCJVcGRhdGUiLCJWZXJzaW9uIiwieCIsIklzTGF0ZXN0IiwiQ2hlY2tVcGRhdGUiLCJJc0NoZWNraW5nIiwiRm91bmRVcGRhdGUiLCJHb1RvVXBkYXRlIiwiU2VuZEtleSIsIlRpZ2h0Qm9yZGVyIiwiU2VuZFByZXZpZXdCdWJibGUiLCJBdXRvR2VuZXJhdGVUaXRsZSIsIlN5bmMiLCJDbG91ZFN0YXRlIiwiTm90U3luY1lldCIsIlN1Y2Nlc3MiLCJGYWlsIiwiQ2hlY2siLCJTeW5jVHlwZSIsIlByb3h5IiwiUHJveHlVcmwiLCJXZWJEYXYiLCJFbmRwb2ludCIsIlVzZXJOYW1lIiwiUGFzc3dvcmQiLCJVcFN0YXNoIiwiTG9jYWxTdGF0ZSIsIk92ZXJ2aWV3Iiwib3ZlcnZpZXciLCJjaGF0IiwibWVzc2FnZSIsInByb21wdCIsIm1hc2siLCJJbXBvcnRGYWlsZWQiLCJNYXNrIiwiU3BsYXNoIiwiQnVpbHRpbiIsIkRpc2FibGUiLCJMaXN0IiwiTGlzdENvdW50IiwiYnVpbHRpbiIsImN1c3RvbSIsIkFkZCIsIkVkaXRNb2RhbCIsIkhpc3RvcnlDb3VudCIsIkNvbXByZXNzVGhyZXNob2xkIiwiVXNhZ2UiLCJ1c2VkIiwidG90YWwiLCJOb0FjY2VzcyIsIkFjY2VzcyIsIlNhYXNTdGFydCIsIkxhYmVsIiwiQ2hhdE5vdyIsIkFjY2Vzc0NvZGUiLCJDdXN0b21FbmRwb2ludCIsIlByb3ZpZGVyIiwiT3BlbkFJIiwiQXBpS2V5IiwiQXp1cmUiLCJBcGlWZXJpb24iLCJBbnRocm9waWMiLCJHb29nbGUiLCJBcGlWZXJzaW9uIiwiR29vZ2xlU2FmZXR5U2V0dGluZ3MiLCJCYWlkdSIsIlNlY3JldEtleSIsIkJ5dGVEYW5jZSIsIkFsaWJhYmEiLCJDdXN0b21Nb2RlbCIsIk1vZGVsIiwiQ29tcHJlc3NNb2RlbCIsIlRlbXBlcmF0dXJlIiwiVG9wUCIsIk1heFRva2VucyIsIlByZXNlbmNlUGVuYWx0eSIsIkZyZXF1ZW5jeVBlbmFsdHkiLCJTdG9yZSIsIkRlZmF1bHRUb3BpYyIsIkJvdEhlbGxvIiwiSGlzdG9yeSIsImNvbnRlbnQiLCJTdW1tYXJpemUiLCJGYWlsZWQiLCJDb250ZXh0IiwiUGx1Z2luIiwiRmluZVR1bmVkIiwiU3lzbWVzc2FnZSIsIlNlYXJjaENoYXQiLCJQYWdlIiwiTm9SZXN1bHQiLCJOb0RhdGEiLCJMb2FkaW5nIiwiSXRlbSIsIlZpZXciLCJDcmVhdGUiLCJJbmZvIiwiRGVsZXRlQ29uZmlybSIsInJlYWRvbmx5IiwiQ2xvbmUiLCJIaWRlQ29udGV4dCIsIlNraXAiLCJOb3RTaG93IiwiQ29uZmlybU5vU2hvdyIsIk1vcmUiLCJVUkxDb21tYW5kIiwiQ29kZSIsIlVJIiwiQ2FuY2VsIiwiQ2xvc2UiLCJJbXBvcnQiLCJFeHBvcnRlciIsIkRlc2NyaXB0aW9uIiwiTWVzc2FnZXMiLCJUaW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/locales/ru.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/locales/sk.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/locales/sk.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _store_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../store/config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n\n\n\n// if you are adding a new translation, please use PartialLocaleType instead of LocaleType\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_0__.getClientConfig)()?.isApp;\nconst sk = {\n WIP: \"Už čoskoro...\",\n Error: {\n Unauthorized: isApp ? `😆 Rozhovor narazil na nejaké problémy, nebojte sa:\r\n \\\\ 1️⃣ Ak chcete začať bez konfigurácie, [kliknite sem, aby ste okamžite začali chatovať 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\\\ 2️⃣ Ak chcete používať svoje vlastné zdroje OpenAI, kliknite [sem](/#/settings), aby ste upravili nastavenia ⚙️` : `😆 Rozhovor narazil na nejaké problémy, nebojte sa:\r\n \\ 1️⃣ Ak chcete začať bez konfigurácie, [kliknite sem, aby ste okamžite začali chatovať 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\ 2️⃣ Ak používate verziu súkromného nasadenia, kliknite [sem](/#/auth), aby ste zadali prístupový kľúč 🔑\r\n \\ 3️⃣ Ak chcete používať svoje vlastné zdroje OpenAI, kliknite [sem](/#/settings), aby ste upravili nastavenia ⚙️\r\n `\n },\n Auth: {\n Title: \"Potrebn\\xfd pr\\xedstupov\\xfd k\\xf3d\",\n Tips: \"Pros\\xedm, zadajte pr\\xedstupov\\xfd k\\xf3d nižšie\",\n SubTips: \"Alebo zadajte v\\xe1š OpenAI alebo Google API kľ\\xfač\",\n Input: \"pr\\xedstupov\\xfd k\\xf3d\",\n Confirm: \"Potvrdiť\",\n Later: \"Nesk\\xf4r\",\n Return: \"N\\xe1vrat\",\n SaasTips: \"Nastavenie je pr\\xedliš zložit\\xe9, chcem to okamžite použiť\",\n TopTips: \"\\uD83E\\uDD73 Uv\\xedtacia ponuka NextChat AI, okamžite odomknite OpenAI o1, GPT-4o, Claude-3.5 a najnovšie veľk\\xe9 modely\"\n },\n ChatItem: {\n ChatItemCount: (count)=>`${count} správ`\n },\n Chat: {\n SubTitle: (count)=>`${count} správ`,\n EditMessage: {\n Title: \"Upraviť všetky spr\\xe1vy\",\n Topic: {\n Title: \"T\\xe9ma\",\n SubTitle: \"Zmeniť aktu\\xe1lnu t\\xe9mu\"\n }\n },\n Actions: {\n ChatList: \"Prejsť na zoznam chatov\",\n CompressedHistory: \"Komprimovan\\xe1 hist\\xf3ria v\\xfdziev\",\n Export: \"Exportovať všetky spr\\xe1vy ako Markdown\",\n Copy: \"Kop\\xedrovať\",\n Stop: \"Zastaviť\",\n Retry: \"Sk\\xfasiť znova\",\n Pin: \"Pripn\\xfať\",\n PinToastContent: \"Pripnut\\xe9 1 spr\\xe1vy do kontextov\\xfdch v\\xfdziev\",\n PinToastAction: \"Zobraziť\",\n Delete: \"Vymazať\",\n Edit: \"Upraviť\",\n RefreshTitle: \"Obnoviť n\\xe1zov\",\n RefreshToast: \"Požiadavka na obnovenie n\\xe1zvu bola odoslan\\xe1\"\n },\n Commands: {\n new: \"Začať nov\\xfd chat\",\n newm: \"Začať nov\\xfd chat s maskou\",\n next: \"Ďalš\\xed Chat\",\n prev: \"Predch\\xe1dzaj\\xfaci Chat\",\n clear: \"Vymazať kontext\",\n del: \"Vymazať Chat\"\n },\n InputActions: {\n Stop: \"Zastaviť\",\n ToBottom: \"Na najnovšie\",\n Theme: {\n auto: \"Automaticky\",\n light: \"Svetl\\xfd mot\\xedv\",\n dark: \"Tmav\\xfd mot\\xedv\"\n },\n Prompt: \"V\\xfdzvy\",\n Masks: \"Masky\",\n Clear: \"Vymazať kontext\",\n Settings: \"Nastavenia\"\n },\n Rename: \"Premenovať Chat\",\n Typing: \"P\\xedsanie…\",\n Input: (submitKey)=>{\n var inputHints = `${submitKey} na odoslanie`;\n if (submitKey === String(_store_config__WEBPACK_IMPORTED_MODULE_1__.SubmitKey.Enter)) {\n inputHints += \", Shift + Enter na zalomenie\";\n }\n return inputHints + \", / na vyhľad\\xe1vanie v\\xfdziev, : na použitie pr\\xedkazov\";\n },\n Send: \"Odoslať\",\n Config: {\n Reset: \"Resetovať na predvolen\\xe9\",\n SaveAs: \"Uložiť ako masku\"\n },\n IsContext: \"Kontextov\\xe1 v\\xfdzva\"\n },\n Export: {\n Title: \"Export spr\\xe1v\",\n Copy: \"Kop\\xedrovať všetko\",\n Download: \"Stiahnuť\",\n MessageFromYou: \"Spr\\xe1va od v\\xe1s\",\n MessageFromChatGPT: \"Spr\\xe1va od ChatGPT\",\n Share: \"Zdieľať na ShareGPT\",\n Format: {\n Title: \"Form\\xe1t exportu\",\n SubTitle: \"Markdown alebo PNG obr\\xe1zok\"\n },\n IncludeContext: {\n Title: \"Vr\\xe1tane kontextu\",\n SubTitle: \"Exportovať kontextov\\xe9 v\\xfdzvy v maske alebo nie\"\n },\n Steps: {\n Select: \"Vybrať\",\n Preview: \"N\\xe1hľad\"\n },\n Image: {\n Toast: \"Sn\\xedmanie obr\\xe1zka...\",\n Modal: \"Dlh\\xfdm stlačen\\xedm alebo kliknut\\xedm prav\\xfdm tlačidlom myši uložte obr\\xe1zok\"\n }\n },\n Select: {\n Search: \"Hľadať\",\n All: \"Vybrať všetko\",\n Latest: \"Vybrať najnovšie\",\n Clear: \"Vymazať\"\n },\n Memory: {\n Title: \"V\\xfdzva pam\\xe4ti\",\n EmptyContent: \"Zatiaľ nič.\",\n Send: \"Odoslať pam\\xe4ť\",\n Copy: \"Kop\\xedrovať pam\\xe4ť\",\n Reset: \"Resetovať rel\\xe1ciu\",\n ResetConfirm: \"Resetovan\\xedm sa vymaže aktu\\xe1lna hist\\xf3ria konverz\\xe1cie a historick\\xe1 pam\\xe4ť. Ste si ist\\xed, že chcete resetovať?\"\n },\n Home: {\n NewChat: \"Nov\\xfd Chat\",\n DeleteChat: \"Potvrdiť vymazanie vybranej konverz\\xe1cie?\",\n DeleteToast: \"Chat vymazan\\xfd\",\n Revert: \"Vr\\xe1tiť sp\\xe4ť\"\n },\n Settings: {\n Title: \"Nastavenia\",\n SubTitle: \"Všetky nastavenia\",\n Danger: {\n Reset: {\n Title: \"Resetovať všetky nastavenia\",\n SubTitle: \"Resetovať všetky položky nastaven\\xed na predvolen\\xe9\",\n Action: \"Resetovať\",\n Confirm: \"Potvrdiť resetovanie všetk\\xfdch nastaven\\xed na predvolen\\xe9?\"\n },\n Clear: {\n Title: \"Vymazať všetky \\xfadaje\",\n SubTitle: \"Vymazať všetky spr\\xe1vy a nastavenia\",\n Action: \"Vymazať\",\n Confirm: \"Potvrdiť vymazanie všetk\\xfdch spr\\xe1v a nastaven\\xed?\"\n }\n },\n Lang: {\n Name: \"Jazyk\",\n All: \"Všetky jazyky\"\n },\n Avatar: \"Avatar\",\n FontSize: {\n Title: \"Veľkosť p\\xedsma\",\n SubTitle: \"Nastaviť veľkosť p\\xedsma obsahu chatu\"\n },\n FontFamily: {\n Title: \"Chatov\\xe9 P\\xedsmo\",\n SubTitle: \"P\\xedsmo obsahu chatu, ponechajte pr\\xe1zdne pre použitie glob\\xe1lneho predvolen\\xe9ho p\\xedsma\",\n Placeholder: \"N\\xe1zov P\\xedsma\"\n },\n InjectSystemPrompts: {\n Title: \"Vložiť syst\\xe9mov\\xe9 v\\xfdzvy\",\n SubTitle: \"Vložiť glob\\xe1lnu syst\\xe9mov\\xfa v\\xfdzvu pre každ\\xfa požiadavku\"\n },\n InputTemplate: {\n Title: \"Šabl\\xf3na vstupu\",\n SubTitle: \"Najnovšia spr\\xe1va bude vyplnen\\xe1 do tejto šabl\\xf3ny\"\n },\n Update: {\n Version: (x)=>`Verzia: ${x}`,\n IsLatest: \"Najnovšia verzia\",\n CheckUpdate: \"Skontrolovať aktualiz\\xe1cie\",\n IsChecking: \"Kontrola aktualiz\\xe1ci\\xed...\",\n FoundUpdate: (x)=>`Nájdená nová verzia: ${x}`,\n GoToUpdate: \"Aktualizovať\"\n },\n SendKey: \"Odoslať kľ\\xfač\",\n Theme: \"Mot\\xedv\",\n TightBorder: \"Tesn\\xfd okraj\",\n SendPreviewBubble: {\n Title: \"Bublina n\\xe1hľadu odoslania\",\n SubTitle: \"N\\xe1hľad markdownu v bubline\"\n },\n AutoGenerateTitle: {\n Title: \"Automaticky generovať n\\xe1zov\",\n SubTitle: \"Generovať vhodn\\xfd n\\xe1zov na z\\xe1klade obsahu konverz\\xe1cie\"\n },\n Sync: {\n CloudState: \"Posledn\\xe1 aktualiz\\xe1cia\",\n NotSyncYet: \"Zatiaľ nesynchronizovan\\xe9\",\n Success: \"Synchroniz\\xe1cia \\xfaspešn\\xe1\",\n Fail: \"Synchroniz\\xe1cia zlyhala\",\n Config: {\n Modal: {\n Title: \"Konfigur\\xe1cia synchroniz\\xe1cie\",\n Check: \"Skontrolovať pripojenie\"\n },\n SyncType: {\n Title: \"Typ synchroniz\\xe1cie\",\n SubTitle: \"Vyberte svoju obľ\\xfaben\\xfa službu synchroniz\\xe1cie\"\n },\n Proxy: {\n Title: \"Povoliť CORS Proxy\",\n SubTitle: \"Povoliť proxy na ob\\xeddenie obmedzen\\xed cross-origin\"\n },\n ProxyUrl: {\n Title: \"Koncov\\xfd bod Proxy\",\n SubTitle: \"Platn\\xe9 len pre vstavan\\xfd CORS proxy tohto projektu\"\n },\n WebDav: {\n Endpoint: \"Koncov\\xfd bod WebDAV\",\n UserName: \"Meno použ\\xedvateľa\",\n Password: \"Heslo\"\n },\n UpStash: {\n Endpoint: \"URL REST služby UpStash Redis\",\n UserName: \"N\\xe1zov z\\xe1lohy\",\n Password: \"Token REST služby UpStash Redis\"\n }\n },\n LocalState: \"Lok\\xe1lne \\xfadaje\",\n Overview: (overview)=>{\n return `${overview.chat} chaty, ${overview.message} správy, ${overview.prompt} výzvy, ${overview.mask} masky`;\n },\n ImportFailed: \"Import z s\\xfaboru zlyhal\"\n },\n Mask: {\n Splash: {\n Title: \"\\xdavodn\\xe1 obrazovka masky\",\n SubTitle: \"Zobraziť \\xfavodn\\xfa obrazovku masky pred začat\\xedm nov\\xe9ho chatu\"\n },\n Builtin: {\n Title: \"Skryť vstavan\\xe9 masky\",\n SubTitle: \"Skryť vstavan\\xe9 masky v zozname masiek\"\n }\n },\n Prompt: {\n Disable: {\n Title: \"Zak\\xe1zať automatick\\xe9 dopĺňanie\",\n SubTitle: \"Zadajte / na spustenie automatick\\xe9ho dopĺňania\"\n },\n List: \"Zoznam v\\xfdziev\",\n ListCount: (builtin, custom)=>`${builtin} vstavaných, ${custom} užívateľsky definovaných`,\n Edit: \"Upraviť\",\n Modal: {\n Title: \"Zoznam v\\xfdziev\",\n Add: \"Pridať jednu\",\n Search: \"Hľadať v\\xfdzvy\"\n },\n EditModal: {\n Title: \"Upraviť v\\xfdzvu\"\n }\n },\n HistoryCount: {\n Title: \"Počet pripojen\\xfdch spr\\xe1v\",\n SubTitle: \"Počet odoslan\\xfdch spr\\xe1v pripojen\\xfdch na požiadavku\"\n },\n CompressThreshold: {\n Title: \"Pr\\xe1h kompresie hist\\xf3rie\",\n SubTitle: \"Bude komprimovan\\xe9, ak dĺžka nekomprimovan\\xfdch spr\\xe1v presiahne t\\xfato hodnotu\"\n },\n Usage: {\n Title: \"Stav \\xfačtu\",\n SubTitle (used, total) {\n return `Tento mesiac použité ${used}, predplatné ${total}`;\n },\n IsChecking: \"Kontroluje sa...\",\n Check: \"Skontrolovať\",\n NoAccess: \"Zadajte API kľ\\xfač na skontrolovanie zostatku\"\n },\n Access: {\n SaasStart: {\n Title: \"Použite NextChat AI\",\n Label: \"(Najv\\xfdhodnejšie riešenie)\",\n SubTitle: \"Ofici\\xe1lne udržiavan\\xe9 NextChat, pripraven\\xe9 na použitie bez konfigur\\xe1cie, podporuje najnovšie veľk\\xe9 modely ako OpenAI o1, GPT-4o a Claude-3.5\",\n ChatNow: \"Chatovať teraz\"\n },\n AccessCode: {\n Title: \"Pr\\xedstupov\\xfd k\\xf3d\",\n SubTitle: \"Povolen\\xfd pr\\xedstupov\\xfd k\\xf3d\",\n Placeholder: \"Zadajte k\\xf3d\"\n },\n CustomEndpoint: {\n Title: \"Vlastn\\xfd koncov\\xfd bod\",\n SubTitle: \"Použiť vlastn\\xfa službu Azure alebo OpenAI\"\n },\n Provider: {\n Title: \"Poskytovateľ modelu\",\n SubTitle: \"Vyberte Azure alebo OpenAI\"\n },\n OpenAI: {\n ApiKey: {\n Title: \"API kľ\\xfač OpenAI\",\n SubTitle: \"Použiť vlastn\\xfd API kľ\\xfač OpenAI\",\n Placeholder: \"sk-xxx\"\n },\n Endpoint: {\n Title: \"Koncov\\xfd bod OpenAI\",\n SubTitle: \"Mus\\xed zač\\xednať http(s):// alebo použiť /api/openai ako predvolen\\xfd\"\n }\n },\n Azure: {\n ApiKey: {\n Title: \"API kľ\\xfač Azure\",\n SubTitle: \"Skontrolujte svoj API kľ\\xfač v Azure konzole\",\n Placeholder: \"API kľ\\xfač Azure\"\n },\n Endpoint: {\n Title: \"Koncov\\xfd bod Azure\",\n SubTitle: \"Pr\\xedklad: \"\n },\n ApiVerion: {\n Title: \"Verzia API Azure\",\n SubTitle: \"Skontrolujte svoju verziu API v Azure konzole\"\n }\n },\n Anthropic: {\n ApiKey: {\n Title: \"API kľ\\xfač Anthropic\",\n SubTitle: \"Skontrolujte svoj API kľ\\xfač v Anthropic konzole\",\n Placeholder: \"API kľ\\xfač Anthropic\"\n },\n Endpoint: {\n Title: \"Adresa koncov\\xe9ho bodu\",\n SubTitle: \"Pr\\xedklad:\"\n },\n ApiVerion: {\n Title: \"Verzia API (claude verzia API)\",\n SubTitle: \"Vyberte špecifick\\xfa verziu časti\"\n }\n },\n CustomModel: {\n Title: \"Vlastn\\xe9 modely\",\n SubTitle: \"Možnosti vlastn\\xe9ho modelu, oddelen\\xe9 čiarkou\"\n },\n Google: {\n ApiKey: {\n Title: \"API kľ\\xfač\",\n SubTitle: \"Ob\\xedsť obmedzenia pr\\xedstupu heslom pomocou vlastn\\xe9ho API kľ\\xfača Google AI Studio\",\n Placeholder: \"API kľ\\xfač Google AI Studio\"\n },\n Endpoint: {\n Title: \"Adresa koncov\\xe9ho bodu\",\n SubTitle: \"Pr\\xedklad:\"\n },\n ApiVersion: {\n Title: \"Verzia API (gemini-pro verzia API)\",\n SubTitle: \"Vyberte špecifick\\xfa verziu časti\"\n }\n }\n },\n Model: \"Model\",\n CompressModel: {\n Title: \"Kompresn\\xfd model\",\n SubTitle: \"Model použ\\xedvan\\xfd na kompresiu hist\\xf3rie\"\n },\n Temperature: {\n Title: \"Teplota\",\n SubTitle: \"Vyššia hodnota rob\\xed v\\xfdstup n\\xe1hodnejš\\xedm\"\n },\n TopP: {\n Title: \"Top P\",\n SubTitle: \"Neupravujte t\\xfato hodnotu spolu s teplotou\"\n },\n MaxTokens: {\n Title: \"Maxim\\xe1lny počet tokenov\",\n SubTitle: \"Maxim\\xe1lna dĺžka vstupn\\xfdch tokenov a generovan\\xfdch tokenov\"\n },\n PresencePenalty: {\n Title: \"Penaliz\\xe1cia za pr\\xedtomnosť\",\n SubTitle: \"Vyššia hodnota zvyšuje pravdepodobnosť hovorenia o nov\\xfdch t\\xe9mach\"\n },\n FrequencyPenalty: {\n Title: \"Penaliz\\xe1cia za frekvenciu\",\n SubTitle: \"Vyššia hodnota znižuje pravdepodobnosť opakovania rovnakej l\\xednie\"\n }\n },\n Store: {\n DefaultTopic: \"Nov\\xe1 konverz\\xe1cia\",\n BotHello: \"Ahoj! Ako v\\xe1m dnes m\\xf4žem pom\\xf4cť?\",\n Error: \"Niečo sa pokazilo, sk\\xfaste to pros\\xedm nesk\\xf4r znova.\",\n Prompt: {\n History: (content)=>\"Toto je zhrnutie hist\\xf3rie chatu ako rekapitul\\xe1cia: \" + content,\n Topic: \"Pros\\xedm, vygenerujte štvor- až p\\xe4ťslovn\\xfd titul, ktor\\xfd zhrnie našu konverz\\xe1ciu bez ak\\xe9hokoľvek \\xfavodu, interpunkcie, \\xfavodzoviek, bodiek, symbolov, tučn\\xe9ho textu alebo ďalšieho textu. Odstr\\xe1ňte uzatv\\xe1racie \\xfavodzovky.\",\n Summarize: \"Stručne zhrňte diskusiu na menej ako 200 slov, aby ste ju mohli použiť ako v\\xfdzvu pre bud\\xfaci kontext.\"\n }\n },\n Copy: {\n Success: \"Skop\\xedrovan\\xe9 do schr\\xe1nky\",\n Failed: \"Kop\\xedrovanie zlyhalo, pros\\xedm udeľte povolenie na pr\\xedstup k schr\\xe1nke\"\n },\n Download: {\n Success: \"Obsah stiahnut\\xfd do v\\xe1šho adres\\xe1ra.\",\n Failed: \"Stiahnutie zlyhalo.\"\n },\n Context: {\n Toast: (x)=>`S ${x} kontextovými výzvami`,\n Edit: \"Aktu\\xe1lne nastavenia chatu\",\n Add: \"Pridať v\\xfdzvu\",\n Clear: \"Kontext vyčisten\\xfd\",\n Revert: \"Vr\\xe1tiť sp\\xe4ť\"\n },\n Plugin: {\n Name: \"Plugin\"\n },\n FineTuned: {\n Sysmessage: \"Ste asistent, ktor\\xfd\"\n },\n SearchChat: {\n Name: \"Hľadať\",\n Page: {\n Title: \"Hľadať v hist\\xf3rii chatu\",\n Search: \"Zadajte kľ\\xfačov\\xe9 slov\\xe1 na vyhľad\\xe1vanie\",\n NoResult: \"Nenašli sa žiadne v\\xfdsledky\",\n NoData: \"Žiadne \\xfadaje\",\n Loading: \"Nač\\xedtava sa\",\n SubTitle: (count)=>`Nájdených ${count} výsledkov`\n },\n Item: {\n View: \"Zobraziť\"\n }\n },\n Mask: {\n Name: \"Maska\",\n Page: {\n Title: \"Šabl\\xf3na v\\xfdziev\",\n SubTitle: (count)=>`${count} šablón výziev`,\n Search: \"Hľadať šabl\\xf3ny\",\n Create: \"Vytvoriť\"\n },\n Item: {\n Info: (count)=>`${count} výziev`,\n Chat: \"Chat\",\n View: \"Zobraziť\",\n Edit: \"Upraviť\",\n Delete: \"Vymazať\",\n DeleteConfirm: \"Potvrdiť vymazanie?\"\n },\n EditModal: {\n Title: (readonly)=>`Upraviť šablónu výziev ${readonly ? \"(iba na č\\xedtanie)\" : \"\"}`,\n Download: \"Stiahnuť\",\n Clone: \"Klonovať\"\n },\n Config: {\n Avatar: \"Avatar robota\",\n Name: \"Meno robota\",\n Sync: {\n Title: \"Použiť glob\\xe1lne nastavenia\",\n SubTitle: \"Použiť glob\\xe1lne nastavenia v tomto chate\",\n Confirm: \"Potvrdiť prep\\xedsanie vlastn\\xe9ho nastavenia glob\\xe1lnym?\"\n },\n HideContext: {\n Title: \"Skryť kontextov\\xe9 v\\xfdzvy\",\n SubTitle: \"Nezobrazovať kontextov\\xe9 v\\xfdzvy v chate\"\n },\n Share: {\n Title: \"Zdieľať t\\xfato masku\",\n SubTitle: \"Vygenerovať odkaz na t\\xfato masku\",\n Action: \"Kop\\xedrovať odkaz\"\n }\n }\n },\n NewChat: {\n Return: \"Vr\\xe1tiť sa\",\n Skip: \"Len začať\",\n Title: \"Vybrať masku\",\n SubTitle: \"Chatovať s dušou za maskou\",\n More: \"N\\xe1jsť viac\",\n NotShow: \"Už nezobrazovať\",\n ConfirmNoShow: \"Potvrdiť deaktiv\\xe1ciu? M\\xf4žete ju nesk\\xf4r znova povoliť v nastaveniach.\"\n },\n UI: {\n Confirm: \"Potvrdiť\",\n Cancel: \"Zrušiť\",\n Close: \"Zavrieť\",\n Create: \"Vytvoriť\",\n Edit: \"Upraviť\",\n Export: \"Exportovať\",\n Import: \"Importovať\",\n Sync: \"Synchronizovať\",\n Config: \"Konfigur\\xe1cia\"\n },\n Exporter: {\n Description: {\n Title: \"Zobrazia sa len spr\\xe1vy po vyčisten\\xed kontextu\"\n },\n Model: \"Model\",\n Messages: \"Spr\\xe1vy\",\n Topic: \"T\\xe9ma\",\n Time: \"Čas\"\n },\n URLCommand: {\n Code: \"Zisten\\xfd pr\\xedstupov\\xfd k\\xf3d z URL, potvrdiť na aplikovanie?\",\n Settings: \"Zisten\\xe9 nastavenia z URL, potvrdiť na aplikovanie?\"\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (sk);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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SyxNQUFNO1lBQ056SixNQUFNO1lBQ05ELFFBQVE7WUFDUjZKLGVBQWU7UUFDakI7UUFDQWpELFdBQVc7WUFDVHRJLE9BQU8sQ0FBQ3dMLFdBQ04sQ0FBQyx1QkFBdUIsRUFBRUEsV0FBVyx3QkFBcUIsR0FBRyxDQUFDO1lBQ2hFOUgsVUFBVTtZQUNWK0gsT0FBTztRQUNUO1FBQ0FuSSxRQUFRO1lBQ04rQixRQUFRO1lBQ1JELE1BQU07WUFDTm1CLE1BQU07Z0JBQ0p2RyxPQUFPO2dCQUNQYSxVQUFVO2dCQUNWVCxTQUFTO1lBQ1g7WUFDQXNMLGFBQWE7Z0JBQ1gxTCxPQUFPO2dCQUNQYSxVQUFVO1lBQ1o7WUFDQWdELE9BQU87Z0JBQ0w3RCxPQUFPO2dCQUNQYSxVQUFVO2dCQUNWcUUsUUFBUTtZQUNWO1FBQ0Y7SUFDRjtJQUNBTCxTQUFTO1FBQ1B2RSxRQUFRO1FBQ1JxTCxNQUFNO1FBQ04zTCxPQUFPO1FBQ1BhLFVBQVU7UUFDVitLLE1BQU07UUFDTkMsU0FBUztRQUNUQyxlQUNFO0lBQ0o7SUFFQUMsSUFBSTtRQUNGM0wsU0FBUztRQUNUNEwsUUFBUTtRQUNSQyxPQUFPO1FBQ1BaLFFBQVE7UUFDUjFKLE1BQU07UUFDTlIsUUFBUTtRQUNSK0ssUUFBUTtRQUNSM0YsTUFBTTtRQUNOakQsUUFBUTtJQUNWO0lBQ0E2SSxVQUFVO1FBQ1JDLGFBQWE7WUFDWHBNLE9BQU87UUFDVDtRQUNBNEosT0FBTztRQUNQeUMsVUFBVTtRQUNWdEwsT0FBTztRQUNQdUwsTUFBTTtJQUNSO0lBRUFDLFlBQVk7UUFDVkMsTUFBTTtRQUNOMUosVUFBVTtJQUNaO0FBQ0Y7QUFFQSxpRUFBZW5ELEVBQUVBLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9sb2NhbGVzL3NrLnRzPzk4MzIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0Q2xpZW50Q29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9jbGllbnRcIjtcclxuaW1wb3J0IHsgU3VibWl0S2V5IH0gZnJvbSBcIi4uL3N0b3JlL2NvbmZpZ1wiO1xyXG5pbXBvcnQgdHlwZSB7IFBhcnRpYWxMb2NhbGVUeXBlIH0gZnJvbSBcIi4vaW5kZXhcIjtcclxuaW1wb3J0IHsgU0FBU19DSEFUX1VUTV9VUkwgfSBmcm9tIFwiQC9hcHAvY29uc3RhbnRcIjtcclxuLy8gaWYgeW91IGFyZSBhZGRpbmcgYSBuZXcgdHJhbnNsYXRpb24sIHBsZWFzZSB1c2UgUGFydGlhbExvY2FsZVR5cGUgaW5zdGVhZCBvZiBMb2NhbGVUeXBlXHJcblxyXG5jb25zdCBpc0FwcCA9ICEhZ2V0Q2xpZW50Q29uZmlnKCk/LmlzQXBwO1xyXG5jb25zdCBzazogUGFydGlhbExvY2FsZVR5cGUgPSB7XHJcbiAgV0lQOiBcIlXFviDEjW9za29yby4uLlwiLFxyXG4gIEVycm9yOiB7XHJcbiAgICBVbmF1dGhvcml6ZWQ6IGlzQXBwXHJcbiAgICAgID8gYPCfmIYgUm96aG92b3IgbmFyYXppbCBuYSBuZWpha8OpIHByb2Jsw6lteSwgbmVib2p0ZSBzYTpcclxuICAgIFxcXFwgMe+4j+KDoyBBayBjaGNldGUgemHEjWHFpSBiZXoga29uZmlndXLDoWNpZSwgW2tsaWtuaXRlIHNlbSwgYWJ5IHN0ZSBva2Ftxb5pdGUgemHEjWFsaSBjaGF0b3ZhxaUg8J+agF0oJHtTQUFTX0NIQVRfVVRNX1VSTH0pXHJcbiAgICBcXFxcIDLvuI/ig6MgQWsgY2hjZXRlIHBvdcW+w612YcWlIHN2b2plIHZsYXN0bsOpIHpkcm9qZSBPcGVuQUksIGtsaWtuaXRlIFtzZW1dKC8jL3NldHRpbmdzKSwgYWJ5IHN0ZSB1cHJhdmlsaSBuYXN0YXZlbmlhIOKame+4j2BcclxuICAgICAgOiBg8J+YhiBSb3pob3ZvciBuYXJhemlsIG5hIG5lamFrw6kgcHJvYmzDqW15LCBuZWJvanRlIHNhOlxyXG4gICAgXFwgMe+4j+KDoyBBayBjaGNldGUgemHEjWHFpSBiZXoga29uZmlndXLDoWNpZSwgW2tsaWtuaXRlIHNlbSwgYWJ5IHN0ZSBva2Ftxb5pdGUgemHEjWFsaSBjaGF0b3ZhxaUg8J+agF0oJHtTQUFTX0NIQVRfVVRNX1VSTH0pXHJcbiAgICBcXCAy77iP4oOjIEFrIHBvdcW+w612YXRlIHZlcnppdSBzw7prcm9tbsOpaG8gbmFzYWRlbmlhLCBrbGlrbml0ZSBbc2VtXSgvIy9hdXRoKSwgYWJ5IHN0ZSB6YWRhbGkgcHLDrXN0dXBvdsO9IGvEvsO6xI0g8J+UkVxyXG4gICAgXFwgM++4j+KDoyBBayBjaGNldGUgcG91xb7DrXZhxaUgc3ZvamUgdmxhc3Ruw6kgemRyb2plIE9wZW5BSSwga2xpa25pdGUgW3NlbV0oLyMvc2V0dGluZ3MpLCBhYnkgc3RlIHVwcmF2aWxpIG5hc3RhdmVuaWEg4pqZ77iPXHJcbiBgLFxyXG4gIH0sXHJcbiAgQXV0aDoge1xyXG4gICAgVGl0bGU6IFwiUG90cmVibsO9IHByw61zdHVwb3bDvSBrw7NkXCIsXHJcbiAgICBUaXBzOiBcIlByb3PDrW0sIHphZGFqdGUgcHLDrXN0dXBvdsO9IGvDs2QgbmnFvsWhaWVcIixcclxuICAgIFN1YlRpcHM6IFwiQWxlYm8gemFkYWp0ZSB2w6HFoSBPcGVuQUkgYWxlYm8gR29vZ2xlIEFQSSBrxL7DusSNXCIsXHJcbiAgICBJbnB1dDogXCJwcsOtc3R1cG92w70ga8OzZFwiLFxyXG4gICAgQ29uZmlybTogXCJQb3R2cmRpxaVcIixcclxuICAgIExhdGVyOiBcIk5lc2vDtHJcIixcclxuICAgIFJldHVybjogXCJOw6F2cmF0XCIsXHJcbiAgICBTYWFzVGlwczogXCJOYXN0YXZlbmllIGplIHByw61sacWhIHpsb8W+aXTDqSwgY2hjZW0gdG8gb2thbcW+aXRlIHBvdcW+acWlXCIsXHJcbiAgICBUb3BUaXBzOlxyXG4gICAgICBcIvCfpbMgVXbDrXRhY2lhIHBvbnVrYSBOZXh0Q2hhdCBBSSwgb2thbcW+aXRlIG9kb21rbml0ZSBPcGVuQUkgbzEsIEdQVC00bywgQ2xhdWRlLTMuNSBhIG5ham5vdsWhaWUgdmXEvmvDqSBtb2RlbHlcIixcclxuICB9LFxyXG4gIENoYXRJdGVtOiB7XHJcbiAgICBDaGF0SXRlbUNvdW50OiAoY291bnQ6IG51bWJlcikgPT4gYCR7Y291bnR9IHNwcsOhdmAsXHJcbiAgfSxcclxuICBDaGF0OiB7XHJcbiAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50fSBzcHLDoXZgLFxyXG4gICAgRWRpdE1lc3NhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwiVXByYXZpxaUgdsWhZXRreSBzcHLDoXZ5XCIsXHJcbiAgICAgIFRvcGljOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiVMOpbWFcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJabWVuacWlIGFrdHXDoWxudSB0w6ltdVwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIEFjdGlvbnM6IHtcclxuICAgICAgQ2hhdExpc3Q6IFwiUHJlanPFpSBuYSB6b3puYW0gY2hhdG92XCIsXHJcbiAgICAgIENvbXByZXNzZWRIaXN0b3J5OiBcIktvbXByaW1vdmFuw6EgaGlzdMOzcmlhIHbDvXppZXZcIixcclxuICAgICAgRXhwb3J0OiBcIkV4cG9ydG92YcWlIHbFoWV0a3kgc3Byw6F2eSBha28gTWFya2Rvd25cIixcclxuICAgICAgQ29weTogXCJLb3DDrXJvdmHFpVwiLFxyXG4gICAgICBTdG9wOiBcIlphc3RhdmnFpVwiLFxyXG4gICAgICBSZXRyeTogXCJTa8O6c2nFpSB6bm92YVwiLFxyXG4gICAgICBQaW46IFwiUHJpcG7DusWlXCIsXHJcbiAgICAgIFBpblRvYXN0Q29udGVudDogXCJQcmlwbnV0w6kgMSBzcHLDoXZ5IGRvIGtvbnRleHRvdsO9Y2ggdsO9emlldlwiLFxyXG4gICAgICBQaW5Ub2FzdEFjdGlvbjogXCJab2JyYXppxaVcIixcclxuICAgICAgRGVsZXRlOiBcIlZ5bWF6YcWlXCIsXHJcbiAgICAgIEVkaXQ6IFwiVXByYXZpxaVcIixcclxuICAgICAgUmVmcmVzaFRpdGxlOiBcIk9ibm92acWlIG7DoXpvdlwiLFxyXG4gICAgICBSZWZyZXNoVG9hc3Q6IFwiUG/FvmlhZGF2a2EgbmEgb2Jub3ZlbmllIG7DoXp2dSBib2xhIG9kb3NsYW7DoVwiLFxyXG4gICAgfSxcclxuICAgIENvbW1hbmRzOiB7XHJcbiAgICAgIG5ldzogXCJaYcSNYcWlIG5vdsO9IGNoYXRcIixcclxuICAgICAgbmV3bTogXCJaYcSNYcWlIG5vdsO9IGNoYXQgcyBtYXNrb3VcIixcclxuICAgICAgbmV4dDogXCLEjmFsxaHDrSBDaGF0XCIsXHJcbiAgICAgIHByZXY6IFwiUHJlZGNow6FkemFqw7pjaSBDaGF0XCIsXHJcbiAgICAgIGNsZWFyOiBcIlZ5bWF6YcWlIGtvbnRleHRcIixcclxuICAgICAgZGVsOiBcIlZ5bWF6YcWlIENoYXRcIixcclxuICAgIH0sXHJcbiAgICBJbnB1dEFjdGlvbnM6IHtcclxuICAgICAgU3RvcDogXCJaYXN0YXZpxaVcIixcclxuICAgICAgVG9Cb3R0b206IFwiTmEgbmFqbm92xaFpZVwiLFxyXG4gICAgICBUaGVtZToge1xyXG4gICAgICAgIGF1dG86IFwiQXV0b21hdGlja3lcIixcclxuICAgICAgICBsaWdodDogXCJTdmV0bMO9IG1vdMOtdlwiLFxyXG4gICAgICAgIGRhcms6IFwiVG1hdsO9IG1vdMOtdlwiLFxyXG4gICAgICB9LFxyXG4gICAgICBQcm9tcHQ6IFwiVsO9enZ5XCIsXHJcbiAgICAgIE1hc2tzOiBcIk1hc2t5XCIsXHJcbiAgICAgIENsZWFyOiBcIlZ5bWF6YcWlIGtvbnRleHRcIixcclxuICAgICAgU2V0dGluZ3M6IFwiTmFzdGF2ZW5pYVwiLFxyXG4gICAgfSxcclxuICAgIFJlbmFtZTogXCJQcmVtZW5vdmHFpSBDaGF0XCIsXHJcbiAgICBUeXBpbmc6IFwiUMOtc2FuaWXigKZcIixcclxuICAgIElucHV0OiAoc3VibWl0S2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgdmFyIGlucHV0SGludHMgPSBgJHtzdWJtaXRLZXl9IG5hIG9kb3NsYW5pZWA7XHJcbiAgICAgIGlmIChzdWJtaXRLZXkgPT09IFN0cmluZyhTdWJtaXRLZXkuRW50ZXIpKSB7XHJcbiAgICAgICAgaW5wdXRIaW50cyArPSBcIiwgU2hpZnQgKyBFbnRlciBuYSB6YWxvbWVuaWVcIjtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gaW5wdXRIaW50cyArIFwiLCAvIG5hIHZ5aMS+YWTDoXZhbmllIHbDvXppZXYsIDogbmEgcG91xb5pdGllIHByw61rYXpvdlwiO1xyXG4gICAgfSxcclxuICAgIFNlbmQ6IFwiT2Rvc2xhxaVcIixcclxuICAgIENvbmZpZzoge1xyXG4gICAgICBSZXNldDogXCJSZXNldG92YcWlIG5hIHByZWR2b2xlbsOpXCIsXHJcbiAgICAgIFNhdmVBczogXCJVbG/FvmnFpSBha28gbWFza3VcIixcclxuICAgIH0sXHJcbiAgICBJc0NvbnRleHQ6IFwiS29udGV4dG92w6EgdsO9enZhXCIsXHJcbiAgfSxcclxuICBFeHBvcnQ6IHtcclxuICAgIFRpdGxlOiBcIkV4cG9ydCBzcHLDoXZcIixcclxuICAgIENvcHk6IFwiS29ww61yb3ZhxaUgdsWhZXRrb1wiLFxyXG4gICAgRG93bmxvYWQ6IFwiU3RpYWhudcWlXCIsXHJcbiAgICBNZXNzYWdlRnJvbVlvdTogXCJTcHLDoXZhIG9kIHbDoXNcIixcclxuICAgIE1lc3NhZ2VGcm9tQ2hhdEdQVDogXCJTcHLDoXZhIG9kIENoYXRHUFRcIixcclxuICAgIFNoYXJlOiBcIlpkaWXEvmHFpSBuYSBTaGFyZUdQVFwiLFxyXG4gICAgRm9ybWF0OiB7XHJcbiAgICAgIFRpdGxlOiBcIkZvcm3DoXQgZXhwb3J0dVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJNYXJrZG93biBhbGVibyBQTkcgb2Jyw6F6b2tcIixcclxuICAgIH0sXHJcbiAgICBJbmNsdWRlQ29udGV4dDoge1xyXG4gICAgICBUaXRsZTogXCJWcsOhdGFuZSBrb250ZXh0dVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJFeHBvcnRvdmHFpSBrb250ZXh0b3bDqSB2w716dnkgdiBtYXNrZSBhbGVibyBuaWVcIixcclxuICAgIH0sXHJcbiAgICBTdGVwczoge1xyXG4gICAgICBTZWxlY3Q6IFwiVnlicmHFpVwiLFxyXG4gICAgICBQcmV2aWV3OiBcIk7DoWjEvmFkXCIsXHJcbiAgICB9LFxyXG4gICAgSW1hZ2U6IHtcclxuICAgICAgVG9hc3Q6IFwiU27DrW1hbmllIG9icsOhemthLi4uXCIsXHJcbiAgICAgIE1vZGFsOlxyXG4gICAgICAgIFwiRGxow71tIHN0bGHEjWVuw61tIGFsZWJvIGtsaWtudXTDrW0gcHJhdsO9bSB0bGHEjWlkbG9tIG15xaFpIHVsb8W+dGUgb2Jyw6F6b2tcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBTZWxlY3Q6IHtcclxuICAgIFNlYXJjaDogXCJIxL5hZGHFpVwiLFxyXG4gICAgQWxsOiBcIlZ5YnJhxaUgdsWhZXRrb1wiLFxyXG4gICAgTGF0ZXN0OiBcIlZ5YnJhxaUgbmFqbm92xaFpZVwiLFxyXG4gICAgQ2xlYXI6IFwiVnltYXphxaVcIixcclxuICB9LFxyXG4gIE1lbW9yeToge1xyXG4gICAgVGl0bGU6IFwiVsO9enZhIHBhbcOkdGlcIixcclxuICAgIEVtcHR5Q29udGVudDogXCJaYXRpYcS+IG5pxI0uXCIsXHJcbiAgICBTZW5kOiBcIk9kb3NsYcWlIHBhbcOkxaVcIixcclxuICAgIENvcHk6IFwiS29ww61yb3ZhxaUgcGFtw6TFpVwiLFxyXG4gICAgUmVzZXQ6IFwiUmVzZXRvdmHFpSByZWzDoWNpdVwiLFxyXG4gICAgUmVzZXRDb25maXJtOlxyXG4gICAgICBcIlJlc2V0b3ZhbsOtbSBzYSB2eW1hxb5lIGFrdHXDoWxuYSBoaXN0w7NyaWEga29udmVyesOhY2llIGEgaGlzdG9yaWNrw6EgcGFtw6TFpS4gU3RlIHNpIGlzdMOtLCDFvmUgY2hjZXRlIHJlc2V0b3ZhxaU/XCIsXHJcbiAgfSxcclxuICBIb21lOiB7XHJcbiAgICBOZXdDaGF0OiBcIk5vdsO9IENoYXRcIixcclxuICAgIERlbGV0ZUNoYXQ6IFwiUG90dnJkacWlIHZ5bWF6YW5pZSB2eWJyYW5laiBrb252ZXJ6w6FjaWU/XCIsXHJcbiAgICBEZWxldGVUb2FzdDogXCJDaGF0IHZ5bWF6YW7DvVwiLFxyXG4gICAgUmV2ZXJ0OiBcIlZyw6F0acWlIHNww6TFpVwiLFxyXG4gIH0sXHJcbiAgU2V0dGluZ3M6IHtcclxuICAgIFRpdGxlOiBcIk5hc3RhdmVuaWFcIixcclxuICAgIFN1YlRpdGxlOiBcIlbFoWV0a3kgbmFzdGF2ZW5pYVwiLFxyXG4gICAgRGFuZ2VyOiB7XHJcbiAgICAgIFJlc2V0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiUmVzZXRvdmHFpSB2xaFldGt5IG5hc3RhdmVuaWFcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJSZXNldG92YcWlIHbFoWV0a3kgcG9sb8W+a3kgbmFzdGF2ZW7DrSBuYSBwcmVkdm9sZW7DqVwiLFxyXG4gICAgICAgIEFjdGlvbjogXCJSZXNldG92YcWlXCIsXHJcbiAgICAgICAgQ29uZmlybTogXCJQb3R2cmRpxaUgcmVzZXRvdmFuaWUgdsWhZXRrw71jaCBuYXN0YXZlbsOtIG5hIHByZWR2b2xlbsOpP1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBDbGVhcjoge1xyXG4gICAgICAgIFRpdGxlOiBcIlZ5bWF6YcWlIHbFoWV0a3kgw7pkYWplXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiVnltYXphxaUgdsWhZXRreSBzcHLDoXZ5IGEgbmFzdGF2ZW5pYVwiLFxyXG4gICAgICAgIEFjdGlvbjogXCJWeW1hemHFpVwiLFxyXG4gICAgICAgIENvbmZpcm06IFwiUG90dnJkacWlIHZ5bWF6YW5pZSB2xaFldGvDvWNoIHNwcsOhdiBhIG5hc3RhdmVuw60/XCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgTGFuZzoge1xyXG4gICAgICBOYW1lOiBcIkphenlrXCIsIC8vIFBPWk9SOiBhayBwcmlkw6F2YXRlIG5vdsO9IHByZWtsYWQsIHByb3PDrW0gbmVwcmVrbGFkYWp0ZSB0w7p0byBob2Rub3R1LCBuZWNoYWp0ZSBqdSBha28gXCJKYXp5a1wiXHJcbiAgICAgIEFsbDogXCJWxaFldGt5IGphenlreVwiLFxyXG4gICAgfSxcclxuICAgIEF2YXRhcjogXCJBdmF0YXJcIixcclxuICAgIEZvbnRTaXplOiB7XHJcbiAgICAgIFRpdGxlOiBcIlZlxL5rb3PFpSBww61zbWFcIixcclxuICAgICAgU3ViVGl0bGU6IFwiTmFzdGF2acWlIHZlxL5rb3PFpSBww61zbWEgb2JzYWh1IGNoYXR1XCIsXHJcbiAgICB9LFxyXG4gICAgRm9udEZhbWlseToge1xyXG4gICAgICBUaXRsZTogXCJDaGF0b3bDqSBQw61zbW9cIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJQw61zbW8gb2JzYWh1IGNoYXR1LCBwb25lY2hhanRlIHByw6F6ZG5lIHByZSBwb3XFvml0aWUgZ2xvYsOhbG5laG8gcHJlZHZvbGVuw6lobyBww61zbWFcIixcclxuICAgICAgUGxhY2Vob2xkZXI6IFwiTsOhem92IFDDrXNtYVwiLFxyXG4gICAgfSxcclxuICAgIEluamVjdFN5c3RlbVByb21wdHM6IHtcclxuICAgICAgVGl0bGU6IFwiVmxvxb5pxaUgc3lzdMOpbW92w6kgdsO9enZ5XCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIlZsb8W+acWlIGdsb2LDoWxudSBzeXN0w6ltb3bDuiB2w716dnUgcHJlIGthxb5kw7ogcG/FvmlhZGF2a3VcIixcclxuICAgIH0sXHJcbiAgICBJbnB1dFRlbXBsYXRlOiB7XHJcbiAgICAgIFRpdGxlOiBcIsWgYWJsw7NuYSB2c3R1cHVcIixcclxuICAgICAgU3ViVGl0bGU6IFwiTmFqbm92xaFpYSBzcHLDoXZhIGJ1ZGUgdnlwbG5lbsOhIGRvIHRlanRvIMWhYWJsw7NueVwiLFxyXG4gICAgfSxcclxuXHJcbiAgICBVcGRhdGU6IHtcclxuICAgICAgVmVyc2lvbjogKHg6IHN0cmluZykgPT4gYFZlcnppYTogJHt4fWAsXHJcbiAgICAgIElzTGF0ZXN0OiBcIk5ham5vdsWhaWEgdmVyemlhXCIsXHJcbiAgICAgIENoZWNrVXBkYXRlOiBcIlNrb250cm9sb3ZhxaUgYWt0dWFsaXrDoWNpZVwiLFxyXG4gICAgICBJc0NoZWNraW5nOiBcIktvbnRyb2xhIGFrdHVhbGl6w6FjacOtLi4uXCIsXHJcbiAgICAgIEZvdW5kVXBkYXRlOiAoeDogc3RyaW5nKSA9PiBgTsOhamRlbsOhIG5vdsOhIHZlcnppYTogJHt4fWAsXHJcbiAgICAgIEdvVG9VcGRhdGU6IFwiQWt0dWFsaXpvdmHFpVwiLFxyXG4gICAgfSxcclxuICAgIFNlbmRLZXk6IFwiT2Rvc2xhxaUga8S+w7rEjVwiLFxyXG4gICAgVGhlbWU6IFwiTW90w612XCIsXHJcbiAgICBUaWdodEJvcmRlcjogXCJUZXNuw70gb2tyYWpcIixcclxuICAgIFNlbmRQcmV2aWV3QnViYmxlOiB7XHJcbiAgICAgIFRpdGxlOiBcIkJ1YmxpbmEgbsOhaMS+YWR1IG9kb3NsYW5pYVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJOw6FoxL5hZCBtYXJrZG93bnUgdiBidWJsaW5lXCIsXHJcbiAgICB9LFxyXG4gICAgQXV0b0dlbmVyYXRlVGl0bGU6IHtcclxuICAgICAgVGl0bGU6IFwiQXV0b21hdGlja3kgZ2VuZXJvdmHFpSBuw6F6b3ZcIixcclxuICAgICAgU3ViVGl0bGU6IFwiR2VuZXJvdmHFpSB2aG9kbsO9IG7DoXpvdiBuYSB6w6FrbGFkZSBvYnNhaHUga29udmVyesOhY2llXCIsXHJcbiAgICB9LFxyXG4gICAgU3luYzoge1xyXG4gICAgICBDbG91ZFN0YXRlOiBcIlBvc2xlZG7DoSBha3R1YWxpesOhY2lhXCIsXHJcbiAgICAgIE5vdFN5bmNZZXQ6IFwiWmF0aWHEviBuZXN5bmNocm9uaXpvdmFuw6lcIixcclxuICAgICAgU3VjY2VzczogXCJTeW5jaHJvbml6w6FjaWEgw7pzcGXFoW7DoVwiLFxyXG4gICAgICBGYWlsOiBcIlN5bmNocm9uaXrDoWNpYSB6bHloYWxhXCIsXHJcblxyXG4gICAgICBDb25maWc6IHtcclxuICAgICAgICBNb2RhbDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiS29uZmlndXLDoWNpYSBzeW5jaHJvbml6w6FjaWVcIixcclxuICAgICAgICAgIENoZWNrOiBcIlNrb250cm9sb3ZhxaUgcHJpcG9qZW5pZVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgU3luY1R5cGU6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlR5cCBzeW5jaHJvbml6w6FjaWVcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlZ5YmVydGUgc3ZvanUgb2LEvsO6YmVuw7ogc2x1xb5idSBzeW5jaHJvbml6w6FjaWVcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFByb3h5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJQb3ZvbGnFpSBDT1JTIFByb3h5XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJQb3ZvbGnFpSBwcm94eSBuYSBvYsOtZGVuaWUgb2JtZWR6ZW7DrSBjcm9zcy1vcmlnaW5cIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFByb3h5VXJsOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJLb25jb3bDvSBib2QgUHJveHlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlBsYXRuw6kgbGVuIHByZSB2c3RhdmFuw70gQ09SUyBwcm94eSB0b2h0byBwcm9qZWt0dVwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIFdlYkRhdjoge1xyXG4gICAgICAgICAgRW5kcG9pbnQ6IFwiS29uY292w70gYm9kIFdlYkRBVlwiLFxyXG4gICAgICAgICAgVXNlck5hbWU6IFwiTWVubyBwb3XFvsOtdmF0ZcS+YVwiLFxyXG4gICAgICAgICAgUGFzc3dvcmQ6IFwiSGVzbG9cIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBVcFN0YXNoOiB7XHJcbiAgICAgICAgICBFbmRwb2ludDogXCJVUkwgUkVTVCBzbHXFvmJ5IFVwU3Rhc2ggUmVkaXNcIixcclxuICAgICAgICAgIFVzZXJOYW1lOiBcIk7DoXpvdiB6w6Fsb2h5XCIsXHJcbiAgICAgICAgICBQYXNzd29yZDogXCJUb2tlbiBSRVNUIHNsdcW+YnkgVXBTdGFzaCBSZWRpc1wiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICBMb2NhbFN0YXRlOiBcIkxva8OhbG5lIMO6ZGFqZVwiLFxyXG4gICAgICBPdmVydmlldzogKG92ZXJ2aWV3OiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gYCR7b3ZlcnZpZXcuY2hhdH0gY2hhdHksICR7b3ZlcnZpZXcubWVzc2FnZX0gc3Byw6F2eSwgJHtvdmVydmlldy5wcm9tcHR9IHbDvXp2eSwgJHtvdmVydmlldy5tYXNrfSBtYXNreWA7XHJcbiAgICAgIH0sXHJcbiAgICAgIEltcG9ydEZhaWxlZDogXCJJbXBvcnQgeiBzw7pib3J1IHpseWhhbFwiLFxyXG4gICAgfSxcclxuICAgIE1hc2s6IHtcclxuICAgICAgU3BsYXNoOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiw5p2b2Ruw6Egb2JyYXpvdmthIG1hc2t5XCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiWm9icmF6acWlIMO6dm9kbsO6IG9icmF6b3ZrdSBtYXNreSBwcmVkIHphxI1hdMOtbSBub3bDqWhvIGNoYXR1XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEJ1aWx0aW46IHtcclxuICAgICAgICBUaXRsZTogXCJTa3J5xaUgdnN0YXZhbsOpIG1hc2t5XCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiU2tyecWlIHZzdGF2YW7DqSBtYXNreSB2IHpvem5hbWUgbWFzaWVrXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgUHJvbXB0OiB7XHJcbiAgICAgIERpc2FibGU6IHtcclxuICAgICAgICBUaXRsZTogXCJaYWvDoXphxaUgYXV0b21hdGlja8OpIGRvcMS6xYhhbmllXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiWmFkYWp0ZSAvIG5hIHNwdXN0ZW5pZSBhdXRvbWF0aWNrw6lobyBkb3DEusWIYW5pYVwiLFxyXG4gICAgICB9LFxyXG4gICAgICBMaXN0OiBcIlpvem5hbSB2w716aWV2XCIsXHJcbiAgICAgIExpc3RDb3VudDogKGJ1aWx0aW46IG51bWJlciwgY3VzdG9tOiBudW1iZXIpID0+XHJcbiAgICAgICAgYCR7YnVpbHRpbn0gdnN0YXZhbsO9Y2gsICR7Y3VzdG9tfSB1xb7DrXZhdGXEvnNreSBkZWZpbm92YW7DvWNoYCxcclxuICAgICAgRWRpdDogXCJVcHJhdmnFpVwiLFxyXG4gICAgICBNb2RhbDoge1xyXG4gICAgICAgIFRpdGxlOiBcIlpvem5hbSB2w716aWV2XCIsXHJcbiAgICAgICAgQWRkOiBcIlByaWRhxaUgamVkbnVcIixcclxuICAgICAgICBTZWFyY2g6IFwiSMS+YWRhxaUgdsO9enZ5XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEVkaXRNb2RhbDoge1xyXG4gICAgICAgIFRpdGxlOiBcIlVwcmF2acWlIHbDvXp2dVwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIEhpc3RvcnlDb3VudDoge1xyXG4gICAgICBUaXRsZTogXCJQb8SNZXQgcHJpcG9qZW7DvWNoIHNwcsOhdlwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJQb8SNZXQgb2Rvc2xhbsO9Y2ggc3Byw6F2IHByaXBvamVuw71jaCBuYSBwb8W+aWFkYXZrdVwiLFxyXG4gICAgfSxcclxuICAgIENvbXByZXNzVGhyZXNob2xkOiB7XHJcbiAgICAgIFRpdGxlOiBcIlByw6FoIGtvbXByZXNpZSBoaXN0w7NyaWVcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJCdWRlIGtvbXByaW1vdmFuw6ksIGFrIGTEusW+a2EgbmVrb21wcmltb3ZhbsO9Y2ggc3Byw6F2IHByZXNpYWhuZSB0w7p0byBob2Rub3R1XCIsXHJcbiAgICB9LFxyXG5cclxuICAgIFVzYWdlOiB7XHJcbiAgICAgIFRpdGxlOiBcIlN0YXYgw7rEjXR1XCIsXHJcbiAgICAgIFN1YlRpdGxlKHVzZWQ6IGFueSwgdG90YWw6IGFueSkge1xyXG4gICAgICAgIHJldHVybiBgVGVudG8gbWVzaWFjIHBvdcW+aXTDqSAke3VzZWR9LCBwcmVkcGxhdG7DqSAke3RvdGFsfWA7XHJcbiAgICAgIH0sXHJcbiAgICAgIElzQ2hlY2tpbmc6IFwiS29udHJvbHVqZSBzYS4uLlwiLFxyXG4gICAgICBDaGVjazogXCJTa29udHJvbG92YcWlXCIsXHJcbiAgICAgIE5vQWNjZXNzOiBcIlphZGFqdGUgQVBJIGvEvsO6xI0gbmEgc2tvbnRyb2xvdmFuaWUgem9zdGF0a3VcIixcclxuICAgIH0sXHJcbiAgICBBY2Nlc3M6IHtcclxuICAgICAgU2Fhc1N0YXJ0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiUG91xb5pdGUgTmV4dENoYXQgQUlcIixcclxuICAgICAgICBMYWJlbDogXCIoTmFqdsO9aG9kbmVqxaFpZSByaWXFoWVuaWUpXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIk9maWNpw6FsbmUgdWRyxb5pYXZhbsOpIE5leHRDaGF0LCBwcmlwcmF2ZW7DqSBuYSBwb3XFvml0aWUgYmV6IGtvbmZpZ3Vyw6FjaWUsIHBvZHBvcnVqZSBuYWpub3bFoWllIHZlxL5rw6kgbW9kZWx5IGFrbyBPcGVuQUkgbzEsIEdQVC00byBhIENsYXVkZS0zLjVcIixcclxuICAgICAgICBDaGF0Tm93OiBcIkNoYXRvdmHFpSB0ZXJhelwiLFxyXG4gICAgICB9LFxyXG5cclxuICAgICAgQWNjZXNzQ29kZToge1xyXG4gICAgICAgIFRpdGxlOiBcIlByw61zdHVwb3bDvSBrw7NkXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiUG92b2xlbsO9IHByw61zdHVwb3bDvSBrw7NkXCIsXHJcbiAgICAgICAgUGxhY2Vob2xkZXI6IFwiWmFkYWp0ZSBrw7NkXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEN1c3RvbUVuZHBvaW50OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiVmxhc3Ruw70ga29uY292w70gYm9kXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiUG91xb5pxaUgdmxhc3Ruw7ogc2x1xb5idSBBenVyZSBhbGVibyBPcGVuQUlcIixcclxuICAgICAgfSxcclxuICAgICAgUHJvdmlkZXI6IHtcclxuICAgICAgICBUaXRsZTogXCJQb3NreXRvdmF0ZcS+IG1vZGVsdVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIlZ5YmVydGUgQXp1cmUgYWxlYm8gT3BlbkFJXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIE9wZW5BSToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIGvEvsO6xI0gT3BlbkFJXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJQb3XFvmnFpSB2bGFzdG7DvSBBUEkga8S+w7rEjSBPcGVuQUlcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcInNrLXh4eFwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJLb25jb3bDvSBib2QgT3BlbkFJXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgICAgXCJNdXPDrSB6YcSNw61uYcWlIGh0dHAocyk6Ly8gYWxlYm8gcG91xb5pxaUgL2FwaS9vcGVuYWkgYWtvIHByZWR2b2xlbsO9XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQXp1cmU6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSSBrxL7DusSNIEF6dXJlXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJTa29udHJvbHVqdGUgc3ZvaiBBUEkga8S+w7rEjSB2IEF6dXJlIGtvbnpvbGVcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkFQSSBrxL7DusSNIEF6dXJlXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIktvbmNvdsO9IGJvZCBBenVyZVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiUHLDrWtsYWQ6IFwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcmlvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiVmVyemlhIEFQSSBBenVyZVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiU2tvbnRyb2x1anRlIHN2b2p1IHZlcnppdSBBUEkgdiBBenVyZSBrb256b2xlXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQW50aHJvcGljOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEkga8S+w7rEjSBBbnRocm9waWNcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlNrb250cm9sdWp0ZSBzdm9qIEFQSSBrxL7DusSNIHYgQW50aHJvcGljIGtvbnpvbGVcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkFQSSBrxL7DusSNIEFudGhyb3BpY1wiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBZHJlc2Ega29uY292w6lobyBib2R1XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJQcsOta2xhZDpcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBBcGlWZXJpb246IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlZlcnppYSBBUEkgKGNsYXVkZSB2ZXJ6aWEgQVBJKVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiVnliZXJ0ZSDFoXBlY2lmaWNrw7ogdmVyeml1IMSNYXN0aVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEN1c3RvbU1vZGVsOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiVmxhc3Ruw6kgbW9kZWx5XCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiTW/Fvm5vc3RpIHZsYXN0bsOpaG8gbW9kZWx1LCBvZGRlbGVuw6kgxI1pYXJrb3VcIixcclxuICAgICAgfSxcclxuICAgICAgR29vZ2xlOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEkga8S+w7rEjVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiT2LDrXPFpSBvYm1lZHplbmlhIHByw61zdHVwdSBoZXNsb20gcG9tb2NvdSB2bGFzdG7DqWhvIEFQSSBrxL7DusSNYSBHb29nbGUgQUkgU3R1ZGlvXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJBUEkga8S+w7rEjSBHb29nbGUgQUkgU3R1ZGlvXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFkcmVzYSBrb25jb3bDqWhvIGJvZHVcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlByw61rbGFkOlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcnNpb246IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlZlcnppYSBBUEkgKGdlbWluaS1wcm8gdmVyemlhIEFQSSlcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlZ5YmVydGUgxaFwZWNpZmlja8O6IHZlcnppdSDEjWFzdGlcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuXHJcbiAgICBNb2RlbDogXCJNb2RlbFwiLFxyXG4gICAgQ29tcHJlc3NNb2RlbDoge1xyXG4gICAgICBUaXRsZTogXCJLb21wcmVzbsO9IG1vZGVsXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIk1vZGVsIHBvdcW+w612YW7DvSBuYSBrb21wcmVzaXUgaGlzdMOzcmllXCIsXHJcbiAgICB9LFxyXG4gICAgVGVtcGVyYXR1cmU6IHtcclxuICAgICAgVGl0bGU6IFwiVGVwbG90YVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJWecWhxaFpYSBob2Rub3RhIHJvYsOtIHbDvXN0dXAgbsOhaG9kbmVqxaHDrW1cIixcclxuICAgIH0sXHJcbiAgICBUb3BQOiB7XHJcbiAgICAgIFRpdGxlOiBcIlRvcCBQXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIk5ldXByYXZ1anRlIHTDunRvIGhvZG5vdHUgc3BvbHUgcyB0ZXBsb3RvdVwiLFxyXG4gICAgfSxcclxuICAgIE1heFRva2Vuczoge1xyXG4gICAgICBUaXRsZTogXCJNYXhpbcOhbG55IHBvxI1ldCB0b2tlbm92XCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIk1heGltw6FsbmEgZMS6xb5rYSB2c3R1cG7DvWNoIHRva2Vub3YgYSBnZW5lcm92YW7DvWNoIHRva2Vub3ZcIixcclxuICAgIH0sXHJcbiAgICBQcmVzZW5jZVBlbmFsdHk6IHtcclxuICAgICAgVGl0bGU6IFwiUGVuYWxpesOhY2lhIHphIHByw610b21ub3PFpVwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIlZ5xaHFoWlhIGhvZG5vdGEgenZ5xaF1amUgcHJhdmRlcG9kb2Jub3PFpSBob3ZvcmVuaWEgbyBub3bDvWNoIHTDqW1hY2hcIixcclxuICAgIH0sXHJcbiAgICBGcmVxdWVuY3lQZW5hbHR5OiB7XHJcbiAgICAgIFRpdGxlOiBcIlBlbmFsaXrDoWNpYSB6YSBmcmVrdmVuY2l1XCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwiVnnFocWhaWEgaG9kbm90YSB6bmnFvnVqZSBwcmF2ZGVwb2RvYm5vc8WlIG9wYWtvdmFuaWEgcm92bmFrZWogbMOtbmllXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgU3RvcmU6IHtcclxuICAgIERlZmF1bHRUb3BpYzogXCJOb3bDoSBrb252ZXJ6w6FjaWFcIixcclxuICAgIEJvdEhlbGxvOiBcIkFob2ohIEFrbyB2w6FtIGRuZXMgbcO0xb5lbSBwb23DtGPFpT9cIixcclxuICAgIEVycm9yOiBcIk5pZcSNbyBzYSBwb2themlsbywgc2vDunN0ZSB0byBwcm9zw61tIG5lc2vDtHIgem5vdmEuXCIsXHJcbiAgICBQcm9tcHQ6IHtcclxuICAgICAgSGlzdG9yeTogKGNvbnRlbnQ6IHN0cmluZykgPT5cclxuICAgICAgICBcIlRvdG8gamUgemhybnV0aWUgaGlzdMOzcmllIGNoYXR1IGFrbyByZWthcGl0dWzDoWNpYTogXCIgKyBjb250ZW50LFxyXG4gICAgICBUb3BpYzpcclxuICAgICAgICBcIlByb3PDrW0sIHZ5Z2VuZXJ1anRlIMWhdHZvci0gYcW+IHDDpMWlc2xvdm7DvSB0aXR1bCwga3RvcsO9IHpocm5pZSBuYcWhdSBrb252ZXJ6w6FjaXUgYmV6IGFrw6lob2tvxL52ZWsgw7p2b2R1LCBpbnRlcnB1bmtjaWUsIMO6dm9kem92aWVrLCBib2RpZWssIHN5bWJvbG92LCB0dcSNbsOpaG8gdGV4dHUgYWxlYm8gxI9hbMWhaWVobyB0ZXh0dS4gT2RzdHLDocWIdGUgdXphdHbDoXJhY2llIMO6dm9kem92a3kuXCIsXHJcbiAgICAgIFN1bW1hcml6ZTpcclxuICAgICAgICBcIlN0cnXEjW5lIHpocsWIdGUgZGlza3VzaXUgbmEgbWVuZWogYWtvIDIwMCBzbG92LCBhYnkgc3RlIGp1IG1vaGxpIHBvdcW+acWlIGFrbyB2w716dnUgcHJlIGJ1ZMO6Y2kga29udGV4dC5cIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBDb3B5OiB7XHJcbiAgICBTdWNjZXNzOiBcIlNrb3DDrXJvdmFuw6kgZG8gc2NocsOhbmt5XCIsXHJcbiAgICBGYWlsZWQ6XHJcbiAgICAgIFwiS29ww61yb3ZhbmllIHpseWhhbG8sIHByb3PDrW0gdWRlxL50ZSBwb3ZvbGVuaWUgbmEgcHLDrXN0dXAgayBzY2hyw6Fua2VcIixcclxuICB9LFxyXG4gIERvd25sb2FkOiB7XHJcbiAgICBTdWNjZXNzOiBcIk9ic2FoIHN0aWFobnV0w70gZG8gdsOhxaFobyBhZHJlc8OhcmEuXCIsXHJcbiAgICBGYWlsZWQ6IFwiU3RpYWhudXRpZSB6bHloYWxvLlwiLFxyXG4gIH0sXHJcbiAgQ29udGV4dDoge1xyXG4gICAgVG9hc3Q6ICh4OiBhbnkpID0+IGBTICR7eH0ga29udGV4dG92w71taSB2w716dmFtaWAsXHJcbiAgICBFZGl0OiBcIkFrdHXDoWxuZSBuYXN0YXZlbmlhIGNoYXR1XCIsXHJcbiAgICBBZGQ6IFwiUHJpZGHFpSB2w716dnVcIixcclxuICAgIENsZWFyOiBcIktvbnRleHQgdnnEjWlzdGVuw71cIixcclxuICAgIFJldmVydDogXCJWcsOhdGnFpSBzcMOkxaVcIixcclxuICB9LFxyXG4gIFBsdWdpbjoge1xyXG4gICAgTmFtZTogXCJQbHVnaW5cIixcclxuICB9LFxyXG4gIEZpbmVUdW5lZDoge1xyXG4gICAgU3lzbWVzc2FnZTogXCJTdGUgYXNpc3RlbnQsIGt0b3LDvVwiLFxyXG4gIH0sXHJcbiAgU2VhcmNoQ2hhdDoge1xyXG4gICAgTmFtZTogXCJIxL5hZGHFpVwiLFxyXG4gICAgUGFnZToge1xyXG4gICAgICBUaXRsZTogXCJIxL5hZGHFpSB2IGhpc3TDs3JpaSBjaGF0dVwiLFxyXG4gICAgICBTZWFyY2g6IFwiWmFkYWp0ZSBrxL7DusSNb3bDqSBzbG92w6EgbmEgdnloxL5hZMOhdmFuaWVcIixcclxuICAgICAgTm9SZXN1bHQ6IFwiTmVuYcWhbGkgc2Egxb5pYWRuZSB2w71zbGVka3lcIixcclxuICAgICAgTm9EYXRhOiBcIsW9aWFkbmUgw7pkYWplXCIsXHJcbiAgICAgIExvYWRpbmc6IFwiTmHEjcOtdGF2YSBzYVwiLFxyXG5cclxuICAgICAgU3ViVGl0bGU6IChjb3VudDogbnVtYmVyKSA9PiBgTsOhamRlbsO9Y2ggJHtjb3VudH0gdsO9c2xlZGtvdmAsXHJcbiAgICB9LFxyXG4gICAgSXRlbToge1xyXG4gICAgICBWaWV3OiBcIlpvYnJhemnFpVwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIE1hc2s6IHtcclxuICAgIE5hbWU6IFwiTWFza2FcIixcclxuICAgIFBhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwixaBhYmzDs25hIHbDvXppZXZcIixcclxuICAgICAgU3ViVGl0bGU6IChjb3VudDogbnVtYmVyKSA9PiBgJHtjb3VudH0gxaFhYmzDs24gdsO9emlldmAsXHJcbiAgICAgIFNlYXJjaDogXCJIxL5hZGHFpSDFoWFibMOzbnlcIixcclxuICAgICAgQ3JlYXRlOiBcIlZ5dHZvcmnFpVwiLFxyXG4gICAgfSxcclxuICAgIEl0ZW06IHtcclxuICAgICAgSW5mbzogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50fSB2w716aWV2YCxcclxuICAgICAgQ2hhdDogXCJDaGF0XCIsXHJcbiAgICAgIFZpZXc6IFwiWm9icmF6acWlXCIsXHJcbiAgICAgIEVkaXQ6IFwiVXByYXZpxaVcIixcclxuICAgICAgRGVsZXRlOiBcIlZ5bWF6YcWlXCIsXHJcbiAgICAgIERlbGV0ZUNvbmZpcm06IFwiUG90dnJkacWlIHZ5bWF6YW5pZT9cIixcclxuICAgIH0sXHJcbiAgICBFZGl0TW9kYWw6IHtcclxuICAgICAgVGl0bGU6IChyZWFkb25seTogYm9vbGVhbikgPT5cclxuICAgICAgICBgVXByYXZpxaUgxaFhYmzDs251IHbDvXppZXYgJHtyZWFkb25seSA/IFwiKGliYSBuYSDEjcOtdGFuaWUpXCIgOiBcIlwifWAsXHJcbiAgICAgIERvd25sb2FkOiBcIlN0aWFobnXFpVwiLFxyXG4gICAgICBDbG9uZTogXCJLbG9ub3ZhxaVcIixcclxuICAgIH0sXHJcbiAgICBDb25maWc6IHtcclxuICAgICAgQXZhdGFyOiBcIkF2YXRhciByb2JvdGFcIixcclxuICAgICAgTmFtZTogXCJNZW5vIHJvYm90YVwiLFxyXG4gICAgICBTeW5jOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiUG91xb5pxaUgZ2xvYsOhbG5lIG5hc3RhdmVuaWFcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJQb3XFvmnFpSBnbG9iw6FsbmUgbmFzdGF2ZW5pYSB2IHRvbXRvIGNoYXRlXCIsXHJcbiAgICAgICAgQ29uZmlybTogXCJQb3R2cmRpxaUgcHJlcMOtc2FuaWUgdmxhc3Ruw6lobyBuYXN0YXZlbmlhIGdsb2LDoWxueW0/XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEhpZGVDb250ZXh0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiU2tyecWlIGtvbnRleHRvdsOpIHbDvXp2eVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIk5lem9icmF6b3ZhxaUga29udGV4dG92w6kgdsO9enZ5IHYgY2hhdGVcIixcclxuICAgICAgfSxcclxuICAgICAgU2hhcmU6IHtcclxuICAgICAgICBUaXRsZTogXCJaZGllxL5hxaUgdMO6dG8gbWFza3VcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJWeWdlbmVyb3ZhxaUgb2RrYXogbmEgdMO6dG8gbWFza3VcIixcclxuICAgICAgICBBY3Rpb246IFwiS29ww61yb3ZhxaUgb2RrYXpcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBOZXdDaGF0OiB7XHJcbiAgICBSZXR1cm46IFwiVnLDoXRpxaUgc2FcIixcclxuICAgIFNraXA6IFwiTGVuIHphxI1hxaVcIixcclxuICAgIFRpdGxlOiBcIlZ5YnJhxaUgbWFza3VcIixcclxuICAgIFN1YlRpdGxlOiBcIkNoYXRvdmHFpSBzIGR1xaFvdSB6YSBtYXNrb3VcIixcclxuICAgIE1vcmU6IFwiTsOhanPFpSB2aWFjXCIsXHJcbiAgICBOb3RTaG93OiBcIlXFviBuZXpvYnJhem92YcWlXCIsXHJcbiAgICBDb25maXJtTm9TaG93OlxyXG4gICAgICBcIlBvdHZyZGnFpSBkZWFrdGl2w6FjaXU/IE3DtMW+ZXRlIGp1IG5lc2vDtHIgem5vdmEgcG92b2xpxaUgdiBuYXN0YXZlbmlhY2guXCIsXHJcbiAgfSxcclxuXHJcbiAgVUk6IHtcclxuICAgIENvbmZpcm06IFwiUG90dnJkacWlXCIsXHJcbiAgICBDYW5jZWw6IFwiWnJ1xaFpxaVcIixcclxuICAgIENsb3NlOiBcIlphdnJpZcWlXCIsXHJcbiAgICBDcmVhdGU6IFwiVnl0dm9yacWlXCIsXHJcbiAgICBFZGl0OiBcIlVwcmF2acWlXCIsXHJcbiAgICBFeHBvcnQ6IFwiRXhwb3J0b3ZhxaVcIixcclxuICAgIEltcG9ydDogXCJJbXBvcnRvdmHFpVwiLFxyXG4gICAgU3luYzogXCJTeW5jaHJvbml6b3ZhxaVcIixcclxuICAgIENvbmZpZzogXCJLb25maWd1csOhY2lhXCIsXHJcbiAgfSxcclxuICBFeHBvcnRlcjoge1xyXG4gICAgRGVzY3JpcHRpb246IHtcclxuICAgICAgVGl0bGU6IFwiWm9icmF6aWEgc2EgbGVuIHNwcsOhdnkgcG8gdnnEjWlzdGVuw60ga29udGV4dHVcIixcclxuICAgIH0sXHJcbiAgICBNb2RlbDogXCJNb2RlbFwiLFxyXG4gICAgTWVzc2FnZXM6IFwiU3Byw6F2eVwiLFxyXG4gICAgVG9waWM6IFwiVMOpbWFcIixcclxuICAgIFRpbWU6IFwixIxhc1wiLFxyXG4gIH0sXHJcblxyXG4gIFVSTENvbW1hbmQ6IHtcclxuICAgIENvZGU6IFwiWmlzdGVuw70gcHLDrXN0dXBvdsO9IGvDs2QgeiBVUkwsIHBvdHZyZGnFpSBuYSBhcGxpa292YW5pZT9cIixcclxuICAgIFNldHRpbmdzOiBcIlppc3RlbsOpIG5hc3RhdmVuaWEgeiBVUkwsIHBvdHZyZGnFpSBuYSBhcGxpa292YW5pZT9cIixcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgc2s7XHJcbiJdLCJuYW1lcyI6WyJnZXRDbGllbnRDb25maWciLCJTdWJtaXRLZXkiLCJTQUFTX0NIQVRfVVRNX1VSTCIsImlzQXBwIiwic2siLCJXSVAiLCJFcnJvciIsIlVuYXV0aG9yaXplZCIsIkF1dGgiLCJUaXRsZSIsIlRpcHMiLCJTdWJUaXBzIiwiSW5wdXQiLCJDb25maXJtIiwiTGF0ZXIiLCJSZXR1cm4iLCJTYWFzVGlwcyIsIlRvcFRpcHMiLCJDaGF0SXRlbSIsIkNoYXRJdGVtQ291bnQiLCJjb3VudCIsIkNoYXQiLCJTdWJUaXRsZSIsIkVkaXRNZXNzYWdlIiwiVG9waWMiLCJBY3Rpb25zIiwiQ2hhdExpc3QiLCJDb21wcmVzc2VkSGlzdG9yeSIsIkV4cG9ydCIsIkNvcHkiLCJTdG9wIiwiUmV0cnkiLCJQaW4iLCJQaW5Ub2FzdENvbnRlbnQiLCJQaW5Ub2FzdEFjdGlvbiIsIkRlbGV0ZSIsIkVkaXQiLCJSZWZyZXNoVGl0bGUiLCJSZWZyZXNoVG9hc3QiLCJDb21tYW5kcyIsIm5ldyIsIm5ld20iLCJuZXh0IiwicHJldiIsImNsZWFyIiwiZGVsIiwiSW5wdXRBY3Rpb25zIiwiVG9Cb3R0b20iLCJUaGVtZSIsImF1dG8iLCJsaWdodCIsImRhcmsiLCJQcm9tcHQiLCJNYXNrcyIsIkNsZWFyIiwiU2V0dGluZ3MiLCJSZW5hbWUiLCJUeXBpbmciLCJzdWJtaXRLZXkiLCJpbnB1dEhpbnRzIiwiU3RyaW5nIiwiRW50ZXIiLCJTZW5kIiwiQ29uZmlnIiwiUmVzZXQiLCJTYXZlQXMiLCJJc0NvbnRleHQiLCJEb3dubG9hZCIsIk1lc3NhZ2VGcm9tWW91IiwiTWVzc2FnZUZyb21DaGF0R1BUIiwiU2hhcmUiLCJGb3JtYXQiLCJJbmNsdWRlQ29udGV4dCIsIlN0ZXBzIiwiU2VsZWN0IiwiUHJldmlldyIsIkltYWdlIiwiVG9hc3QiLCJNb2RhbCIsIlNlYXJjaCIsIkFsbCIsIkxhdGVzdCIsIk1lbW9yeSIsIkVtcHR5Q29udGVudCIsIlJlc2V0Q29uZmlybSIsIkhvbWUiLCJOZXdDaGF0IiwiRGVsZXRlQ2hhdCIsIkRlbGV0ZVRvYXN0IiwiUmV2ZXJ0IiwiRGFuZ2VyIiwiQWN0aW9uIiwiTGFuZyIsIk5hbWUiLCJBdmF0YXIiLCJGb250U2l6ZSIsIkZvbnRGYW1pbHkiLCJQbGFjZWhvbGRlciIsIkluamVjdFN5c3RlbVByb21wdHMiLCJJbnB1dFRlbXBsYXRlIiwiVXBkYXRlIiwiVmVyc2lvbiIsIngiLCJJc0xhdGVzdCIsIkNoZWNrVXBkYXRlIiwiSXNDaGVja2luZyIsIkZvdW5kVXBkYXRlIiwiR29Ub1VwZGF0ZSIsIlNlbmRLZXkiLCJUaWdodEJvcmRlciIsIlNlbmRQcmV2aWV3QnViYmxlIiwiQXV0b0dlbmVyYXRlVGl0bGUiLCJTeW5jIiwiQ2xvdWRTdGF0ZSIsIk5vdFN5bmNZZXQiLCJTdWNjZXNzIiwiRmFpbCIsIkNoZWNrIiwiU3luY1R5cGUiLCJQcm94eSIsIlByb3h5VXJsIiwiV2ViRGF2IiwiRW5kcG9pbnQiLCJVc2VyTmFtZSIsIlBhc3N3b3JkIiwiVXBTdGFzaCIsIkxvY2FsU3RhdGUiLCJPdmVydmlldyIsIm92ZXJ2aWV3IiwiY2hhdCIsIm1lc3NhZ2UiLCJwcm9tcHQiLCJtYXNrIiwiSW1wb3J0RmFpbGVkIiwiTWFzayIsIlNwbGFzaCIsIkJ1aWx0aW4iLCJEaXNhYmxlIiwiTGlzdCIsIkxpc3RDb3VudCIsImJ1aWx0aW4iLCJjdXN0b20iLCJBZGQiLCJFZGl0TW9kYWwiLCJIaXN0b3J5Q291bnQiLCJDb21wcmVzc1RocmVzaG9sZCIsIlVzYWdlIiwidXNlZCIsInRvdGFsIiwiTm9BY2Nlc3MiLCJBY2Nlc3MiLCJTYWFzU3RhcnQiLCJMYWJlbCIsIkNoYXROb3ciLCJBY2Nlc3NDb2RlIiwiQ3VzdG9tRW5kcG9pbnQiLCJQcm92aWRlciIsIk9wZW5BSSIsIkFwaUtleSIsIkF6dXJlIiwiQXBpVmVyaW9uIiwiQW50aHJvcGljIiwiQ3VzdG9tTW9kZWwiLCJHb29nbGUiLCJBcGlWZXJzaW9uIiwiTW9kZWwiLCJDb21wcmVzc01vZGVsIiwiVGVtcGVyYXR1cmUiLCJUb3BQIiwiTWF4VG9rZW5zIiwiUHJlc2VuY2VQZW5hbHR5IiwiRnJlcXVlbmN5UGVuYWx0eSIsIlN0b3JlIiwiRGVmYXVsdFRvcGljIiwiQm90SGVsbG8iLCJIaXN0b3J5IiwiY29udGVudCIsIlN1bW1hcml6ZSIsIkZhaWxlZCIsIkNvbnRleHQiLCJQbHVnaW4iLCJGaW5lVHVuZWQiLCJTeXNtZXNzYWdlIiwiU2VhcmNoQ2hhdCIsIlBhZ2UiLCJOb1Jlc3VsdCIsIk5vRGF0YSIsIkxvYWRpbmciLCJJdGVtIiwiVmlldyIsIkNyZWF0ZSIsIkluZm8iLCJEZWxldGVDb25maXJtIiwicmVhZG9ubHkiLCJDbG9uZSIsIkhpZGVDb250ZXh0IiwiU2tpcCIsIk1vcmUiLCJOb3RTaG93IiwiQ29uZmlybU5vU2hvdyIsIlVJIiwiQ2FuY2VsIiwiQ2xvc2UiLCJJbXBvcnQiLCJFeHBvcnRlciIsIkRlc2NyaXB0aW9uIiwiTWVzc2FnZXMiLCJUaW1lIiwiVVJMQ29tbWFuZCIsIkNvZGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/locales/sk.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/locales/tr.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/locales/tr.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _store_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../store/config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n\n\n\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_1__.getClientConfig)()?.isApp;\nconst tr = {\n WIP: \"\\xc7alışma devam ediyor...\",\n Error: {\n Unauthorized: isApp ? `😆 Sohbet bazı sorunlarla karşılaştı, endişelenmeyin:\r\n \\\\ 1️⃣ Eğer sıfır yapılandırma ile başlamak istiyorsanız, [buraya tıklayarak hemen sohbete başlayın 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\\\ 2️⃣ Kendi OpenAI kaynaklarınızı kullanmak istiyorsanız, [buraya tıklayarak](/#/settings) ayarları değiştirin ⚙️` : `😆 Sohbet bazı sorunlarla karşılaştı, endişelenmeyin:\r\n \\ 1️⃣ Eğer sıfır yapılandırma ile başlamak istiyorsanız, [buraya tıklayarak hemen sohbete başlayın 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\ 2️⃣ Eğer özel dağıtım sürümü kullanıyorsanız, [buraya tıklayarak](/#/auth) erişim anahtarını girin 🔑\r\n \\ 3️⃣ Kendi OpenAI kaynaklarınızı kullanmak istiyorsanız, [buraya tıklayarak](/#/settings) ayarları değiştirin ⚙️\r\n `\n },\n Auth: {\n Title: \"Şifre Gerekli\",\n Tips: \"Y\\xf6netici şifre doğrulamasını etkinleştirdi, l\\xfctfen aşağıya erişim kodunu girin\",\n SubTips: \"Veya OpenAI veya Google API anahtarınızı girin\",\n Input: \"Erişim kodunu buraya girin\",\n Confirm: \"Onayla\",\n Later: \"Sonra\",\n Return: \"Geri\",\n SaasTips: \"Ayarlar \\xe7ok karmaşık, hemen kullanmak istiyorum\",\n TopTips: \"\\uD83E\\uDD73 NextChat AI lansman teklifi, OpenAI o1, GPT-4o, Claude-3.5 ve en son b\\xfcy\\xfck modelleri şimdi a\\xe7ın\"\n },\n ChatItem: {\n ChatItemCount: (count)=>`${count} konuşma`\n },\n Chat: {\n SubTitle: (count)=>`Toplam ${count} konuşma`,\n EditMessage: {\n Title: \"Mesaj Kayıtlarını D\\xfczenle\",\n Topic: {\n Title: \"Sohbet Konusu\",\n SubTitle: \"Ge\\xe7erli sohbet konusunu değiştir\"\n }\n },\n Actions: {\n ChatList: \"Mesaj listesine bak\",\n CompressedHistory: \"Sıkıştırılmış ge\\xe7mişi g\\xf6r\",\n Export: \"Sohbet kayıtlarını dışa aktar\",\n Copy: \"Kopyala\",\n Stop: \"Durdur\",\n Retry: \"Yeniden dene\",\n Pin: \"Sabitlenmiş\",\n PinToastContent: \"1 konuşma varsayılan ifadeye sabitlendi\",\n PinToastAction: \"G\\xf6r\\xfcn\\xfcm\",\n Delete: \"Sil\",\n Edit: \"D\\xfczenle\",\n RefreshTitle: \"Başlığı Yenile\",\n RefreshToast: \"Başlık yenileme isteği g\\xf6nderildi\"\n },\n Commands: {\n new: \"Yeni sohbet\",\n newm: \"Maske ile yeni sohbet oluştur\",\n next: \"Sonraki sohbet\",\n prev: \"\\xd6nceki sohbet\",\n clear: \"Konteksti temizle\",\n del: \"Sohbeti sil\"\n },\n InputActions: {\n Stop: \"Yanıtı durdur\",\n ToBottom: \"En alta git\",\n Theme: {\n auto: \"Otomatik tema\",\n light: \"A\\xe7ık mod\",\n dark: \"Koyu mod\"\n },\n Prompt: \"Kısayol komutu\",\n Masks: \"T\\xfcm maskeler\",\n Clear: \"Sohbeti temizle\",\n Settings: \"Sohbet ayarları\",\n UploadImage: \"Resim y\\xfckle\"\n },\n Rename: \"Sohbeti yeniden adlandır\",\n Typing: \"Yazıyor…\",\n Input: (submitKey)=>{\n var inputHints = `${submitKey} gönder`;\n if (submitKey === String(_store_config__WEBPACK_IMPORTED_MODULE_0__.SubmitKey.Enter)) {\n inputHints += \" Shift + Enter satır sonu i\\xe7in\";\n }\n return inputHints + \" / tamamlama i\\xe7in, : komutlar i\\xe7in\";\n },\n Send: \"G\\xf6nder\",\n Config: {\n Reset: \"Hafızayı temizle\",\n SaveAs: \"Maske olarak kaydet\"\n },\n IsContext: \"Varsayılan ifade\"\n },\n Export: {\n Title: \"Sohbet kayıtlarını paylaş\",\n Copy: \"Hepsini kopyala\",\n Download: \"Dosyayı indir\",\n Share: \"ShareGPT'ye paylaş\",\n MessageFromYou: \"Kullanıcı\",\n MessageFromChatGPT: \"ChatGPT\",\n Format: {\n Title: \"Dışa aktarma formatı\",\n SubTitle: \"Markdown metni veya PNG resmi olarak dışa aktarabilirsiniz\"\n },\n IncludeContext: {\n Title: \"Maske bağlamını dahil et\",\n SubTitle: \"Mesajlarda maske bağlamını g\\xf6stermek ister misiniz\"\n },\n Steps: {\n Select: \"Se\\xe7\",\n Preview: \"\\xd6nizleme\"\n },\n Image: {\n Toast: \"Ekran g\\xf6r\\xfcnt\\xfcs\\xfc oluşturuluyor\",\n Modal: \"Resmi uzun basın veya sağ tıklayın ve kaydedin\"\n }\n },\n Select: {\n Search: \"Mesajları ara\",\n All: \"Hepsini se\\xe7\",\n Latest: \"Son birka\\xe7 mesaj\",\n Clear: \"Se\\xe7imi temizle\"\n },\n Memory: {\n Title: \"Ge\\xe7miş \\xd6zeti\",\n EmptyContent: \"Sohbet i\\xe7eriği \\xe7ok kısa, \\xf6zetleme gerek yok\",\n Send: \"Sohbet kayıtlarını otomatik olarak sıkıştır ve bağlam olarak g\\xf6nder\",\n Copy: \"\\xd6zeti kopyala\",\n Reset: \"[kullanılmadı]\",\n ResetConfirm: \"Ge\\xe7miş \\xf6zetini temizlemek istediğinize emin misiniz?\"\n },\n Home: {\n NewChat: \"Yeni sohbet\",\n DeleteChat: \"Se\\xe7ilen sohbeti silmek istediğinize emin misiniz?\",\n DeleteToast: \"Sohbet silindi\",\n Revert: \"Geri al\"\n },\n Settings: {\n Title: \"Ayarlar\",\n SubTitle: \"T\\xfcm ayar se\\xe7enekleri\",\n Danger: {\n Reset: {\n Title: \"T\\xfcm ayarları sıfırla\",\n SubTitle: \"T\\xfcm ayarları varsayılan değerlere sıfırla\",\n Action: \"Hemen sıfırla\",\n Confirm: \"T\\xfcm ayarları sıfırlamak istediğinizden emin misiniz?\"\n },\n Clear: {\n Title: \"T\\xfcm verileri temizle\",\n SubTitle: \"T\\xfcm sohbet ve ayar verilerini temizle\",\n Action: \"Hemen temizle\",\n Confirm: \"T\\xfcm sohbet ve ayar verilerini temizlemek istediğinizden emin misiniz?\"\n }\n },\n Lang: {\n Name: \"Language\",\n All: \"T\\xfcm diller\"\n },\n Avatar: \"Profil Resmi\",\n FontSize: {\n Title: \"Yazı Boyutu\",\n SubTitle: \"Sohbet i\\xe7eriğinin yazı boyutu\"\n },\n FontFamily: {\n Title: \"Sohbet Yazı Tipi\",\n SubTitle: \"Sohbet i\\xe7eriğinin yazı tipi, boş bırakıldığında k\\xfcresel varsayılan yazı tipi uygulanır\",\n Placeholder: \"Yazı Tipi Adı\"\n },\n InjectSystemPrompts: {\n Title: \"Sistem Seviyesi İpucu Enjeksiyonu\",\n SubTitle: \"Her isteğin başına ChatGPT benzeri bir sistem ipucu ekle\"\n },\n InputTemplate: {\n Title: \"Kullanıcı Girdisi \\xd6n İşleme\",\n SubTitle: \"Kullanıcının en son mesajı bu şablona doldurulur\"\n },\n Update: {\n Version: (x)=>`Mevcut sürüm: ${x}`,\n IsLatest: \"En son s\\xfcr\\xfcm\",\n CheckUpdate: \"G\\xfcncellemeleri kontrol et\",\n IsChecking: \"G\\xfcncellemeler kontrol ediliyor...\",\n FoundUpdate: (x)=>`Yeni sürüm bulundu: ${x}`,\n GoToUpdate: \"G\\xfcncellemeye git\"\n },\n SendKey: \"G\\xf6nderme Tuşu\",\n Theme: \"Tema\",\n TightBorder: \"Sınır Yok Modu\",\n SendPreviewBubble: {\n Title: \"\\xd6nizleme Balonu\",\n SubTitle: \"Markdown i\\xe7eriğini \\xf6nizleme balonunda g\\xf6r\\xfcnt\\xfcle\"\n },\n AutoGenerateTitle: {\n Title: \"Başlığı Otomatik Oluştur\",\n SubTitle: \"Sohbet i\\xe7eriğine g\\xf6re uygun başlık oluştur\"\n },\n Sync: {\n CloudState: \"Bulut Verisi\",\n NotSyncYet: \"Hen\\xfcz senkronize edilmedi\",\n Success: \"Senkronizasyon başarılı\",\n Fail: \"Senkronizasyon başarısız\",\n Config: {\n Modal: {\n Title: \"Bulut Senkronizasyonu Yapılandır\",\n Check: \"Kullanılabilirliği kontrol et\"\n },\n SyncType: {\n Title: \"Senkronizasyon T\\xfcr\\xfc\",\n SubTitle: \"Tercih ettiğiniz senkronizasyon sunucusunu se\\xe7in\"\n },\n Proxy: {\n Title: \"Proxy'yi Etkinleştir\",\n SubTitle: \"Tarayıcıda senkronize ederken proxy'yi etkinleştirin, aksi takdirde \\xe7apraz kaynak kısıtlamalarıyla karşılaşabilirsiniz\"\n },\n ProxyUrl: {\n Title: \"Proxy Adresi\",\n SubTitle: \"Sadece bu projeye ait \\xe7apraz kaynak proxy i\\xe7in\"\n },\n WebDav: {\n Endpoint: \"WebDAV Adresi\",\n UserName: \"Kullanıcı Adı\",\n Password: \"Şifre\"\n },\n UpStash: {\n Endpoint: \"UpStash Redis REST Url\",\n UserName: \"Yedekleme Adı\",\n Password: \"UpStash Redis REST Token\"\n }\n },\n LocalState: \"Yerel Veri\",\n Overview: (overview)=>{\n return `${overview.chat} konuşma, ${overview.message} mesaj, ${overview.prompt} ipucu, ${overview.mask} maske`;\n },\n ImportFailed: \"İ\\xe7eri aktarma başarısız\"\n },\n Mask: {\n Splash: {\n Title: \"Maske Başlangı\\xe7 Sayfası\",\n SubTitle: \"Yeni sohbet başlatıldığında maske başlangı\\xe7 sayfasını g\\xf6ster\"\n },\n Builtin: {\n Title: \"Yerleşik Maskeleri Gizle\",\n SubTitle: \"T\\xfcm maskeler listesindeki yerleşik maskeleri gizle\"\n }\n },\n Prompt: {\n Disable: {\n Title: \"İpucu Tamamlamayı Devre Dışı Bırak\",\n SubTitle: \"Giriş kutusunun başına / yazarak otomatik tamamlamayı tetikle\"\n },\n List: \"\\xd6zelleştirilmiş İpucu Listesi\",\n ListCount: (builtin, custom)=>`Yerleşik ${builtin} tane, kullanıcı tanımlı ${custom} tane`,\n Edit: \"D\\xfczenle\",\n Modal: {\n Title: \"İpucu Listesi\",\n Add: \"Yeni Ekle\",\n Search: \"İpucu Ara\"\n },\n EditModal: {\n Title: \"İpucu D\\xfczenle\"\n }\n },\n HistoryCount: {\n Title: \"Ekli Ge\\xe7miş Mesaj Sayısı\",\n SubTitle: \"Her istekte taşınan ge\\xe7miş mesaj sayısı\"\n },\n CompressThreshold: {\n Title: \"Ge\\xe7miş Mesaj Uzunluğu Sıkıştırma Eşiği\",\n SubTitle: \"Sıkıştırılmamış ge\\xe7miş mesaj bu değeri aştığında sıkıştırma yapılır\"\n },\n Usage: {\n Title: \"Bakiye Sorgulama\",\n SubTitle (used, total) {\n return `Bu ay kullanılan $${used}, toplam abonelik ücreti $${total}`;\n },\n IsChecking: \"Kontrol ediliyor…\",\n Check: \"Yeniden kontrol et\",\n NoAccess: \"Bakiye g\\xf6r\\xfcnt\\xfclemek i\\xe7in API Anahtarı veya erişim şifresi girin\"\n },\n Access: {\n SaasStart: {\n Title: \"NextChat AI kullanın\",\n Label: \"(En maliyet etkin \\xe7\\xf6z\\xfcm)\",\n SubTitle: \"NextChat tarafından resmi olarak y\\xf6netilmektedir, yapılandırma olmadan hemen kullanıma hazırdır, OpenAI o1, GPT-4o, Claude-3.5 gibi en son b\\xfcy\\xfck modelleri destekler\",\n ChatNow: \"Şimdi sohbet et\"\n },\n AccessCode: {\n Title: \"Erişim Şifresi\",\n SubTitle: \"Y\\xf6netici şifreli erişimi etkinleştirdi\",\n Placeholder: \"Erişim şifrenizi girin\"\n },\n CustomEndpoint: {\n Title: \"\\xd6zelleştirilmiş API\",\n SubTitle: \"\\xd6zelleştirilmiş Azure veya OpenAI hizmeti kullanmak ister misiniz?\"\n },\n Provider: {\n Title: \"Model Sağlayıcısı\",\n SubTitle: \"Farklı sağlayıcılara ge\\xe7iş yapın\"\n },\n OpenAI: {\n ApiKey: {\n Title: \"API Anahtarı\",\n SubTitle: \"\\xd6zelleştirilmiş OpenAI Anahtarı kullanarak şifreli erişim kısıtlamalarını atlayın\",\n Placeholder: \"OpenAI API Anahtarı\"\n },\n Endpoint: {\n Title: \"API Adresi\",\n SubTitle: \"Varsayılan adres dışında, http(s):// i\\xe7ermelidir\"\n }\n },\n Azure: {\n ApiKey: {\n Title: \"API Anahtarı\",\n SubTitle: \"\\xd6zelleştirilmiş Azure Anahtarı kullanarak şifreli erişim kısıtlamalarını atlayın\",\n Placeholder: \"Azure API Anahtarı\"\n },\n Endpoint: {\n Title: \"API Adresi\",\n SubTitle: \"\\xd6rnek:\"\n },\n ApiVerion: {\n Title: \"API Versiyonu (azure api version)\",\n SubTitle: \"Belirli bir versiyonu se\\xe7in\"\n }\n },\n Anthropic: {\n ApiKey: {\n Title: \"API Anahtarı\",\n SubTitle: \"\\xd6zelleştirilmiş Anthropic Anahtarı kullanarak şifreli erişim kısıtlamalarını atlayın\",\n Placeholder: \"Anthropic API Anahtarı\"\n },\n Endpoint: {\n Title: \"API Adresi\",\n SubTitle: \"\\xd6rnek:\"\n },\n ApiVerion: {\n Title: \"API Versiyonu (claude api version)\",\n SubTitle: \"Belirli bir API versiyonunu se\\xe7in\"\n }\n },\n Google: {\n ApiKey: {\n Title: \"API Anahtarı\",\n SubTitle: \"Google AI'den API Anahtarınızı alın\",\n Placeholder: \"Google AI Studio API Anahtarınızı girin\"\n },\n Endpoint: {\n Title: \"U\\xe7 Nokta Adresi\",\n SubTitle: \"\\xd6rnek:\"\n },\n ApiVersion: {\n Title: \"API Versiyonu (sadece gemini-pro)\",\n SubTitle: \"Belirli bir API versiyonunu se\\xe7in\"\n },\n GoogleSafetySettings: {\n Title: \"Google G\\xfcvenlik Filtreleme Seviyesi\",\n SubTitle: \"İ\\xe7erik filtreleme seviyesini ayarlayın\"\n }\n },\n Baidu: {\n ApiKey: {\n Title: \"API Anahtarı\",\n SubTitle: \"\\xd6zelleştirilmiş Baidu API Anahtarı kullanın\",\n Placeholder: \"Baidu API Anahtarı\"\n },\n SecretKey: {\n Title: \"Secret Anahtarı\",\n SubTitle: \"\\xd6zelleştirilmiş Baidu Secret Anahtarı kullanın\",\n Placeholder: \"Baidu Secret Anahtarı\"\n },\n Endpoint: {\n Title: \"API Adresi\",\n SubTitle: \"\\xd6zelleştirilmiş yapılandırma i\\xe7in .env'ye gidin\"\n }\n },\n ByteDance: {\n ApiKey: {\n Title: \"API Anahtarı\",\n SubTitle: \"\\xd6zelleştirilmiş ByteDance API Anahtarı kullanın\",\n Placeholder: \"ByteDance API Anahtarı\"\n },\n Endpoint: {\n Title: \"API Adresi\",\n SubTitle: \"\\xd6rnek:\"\n }\n },\n Alibaba: {\n ApiKey: {\n Title: \"API Anahtarı\",\n SubTitle: \"\\xd6zelleştirilmiş Alibaba Cloud API Anahtarı kullanın\",\n Placeholder: \"Alibaba Cloud API Anahtarı\"\n },\n Endpoint: {\n Title: \"API Adresi\",\n SubTitle: \"\\xd6rnek:\"\n }\n },\n CustomModel: {\n Title: \"\\xd6zelleştirilmiş Model Adı\",\n SubTitle: \"\\xd6zelleştirilmiş model se\\xe7enekleri ekleyin, İngilizce virg\\xfcl ile ayırın\"\n }\n },\n Model: \"Model (model)\",\n CompressModel: {\n Title: \"Sıkıştırma Modeli\",\n SubTitle: \"Ge\\xe7mişi sıkıştırmak i\\xe7in kullanılan model\"\n },\n Temperature: {\n Title: \"Rastgelelik (temperature)\",\n SubTitle: \"Değer arttık\\xe7a yanıt daha rastgele olur\"\n },\n TopP: {\n Title: \"N\\xfckleer \\xd6rnekleme (top_p)\",\n SubTitle: \"Rastgeleliğe benzer, ancak rastgelelik ile birlikte değiştirmeyin\"\n },\n MaxTokens: {\n Title: \"Tek Yanıt Limiti (max_tokens)\",\n SubTitle: \"Tek etkileşimde kullanılan maksimum Token sayısı\"\n },\n PresencePenalty: {\n Title: \"Konu Tazeliği (presence_penalty)\",\n SubTitle: \"Değer arttık\\xe7a, yeni konulara ge\\xe7iş olasılığı artar\"\n },\n FrequencyPenalty: {\n Title: \"Frekans Cezası (frequency_penalty)\",\n SubTitle: \"Değer arttık\\xe7a, tekrar eden kelimelerin azalması olasılığı artar\"\n }\n },\n Store: {\n DefaultTopic: \"Yeni Sohbet\",\n BotHello: \"Size nasıl yardımcı olabilirim?\",\n Error: \"Bir hata oluştu, l\\xfctfen daha sonra tekrar deneyin\",\n Prompt: {\n History: (content)=>\"Bu, ge\\xe7miş sohbetin \\xf6zeti: \" + content,\n Topic: \"Bu c\\xfcmlenin d\\xf6rt ila beş kelimelik kısa başlığını doğrudan verin, a\\xe7ıklama yapmayın, noktalama işareti, duygu kelimesi veya fazla metin eklemeyin, kalın yapmayın. Başlık yoksa, doğrudan 'Sohbet' yanıtını verin.\",\n Summarize: \"Sohbet i\\xe7eriğini kısaca \\xf6zetleyin, bu \\xf6zet sonraki bağlam ipucu olarak kullanılacaktır, 200 kelime i\\xe7inde tutun\"\n }\n },\n Copy: {\n Success: \"Panoya yazıldı\",\n Failed: \"Kopyalama başarısız, l\\xfctfen panoya erişim izni verin\"\n },\n Download: {\n Success: \"İ\\xe7erik dizininize indirildi.\",\n Failed: \"İndirme başarısız.\"\n },\n Context: {\n Toast: (x)=>`${x} tane önceden tanımlı ipucu içeriyor`,\n Edit: \"Mevcut sohbet ayarları\",\n Add: \"Yeni bir sohbet ekle\",\n Clear: \"Bağlam temizlendi\",\n Revert: \"Bağlamı geri getir\"\n },\n Plugin: {\n Name: \"Eklenti\"\n },\n FineTuned: {\n Sysmessage: \"Sen bir asistansın\"\n },\n SearchChat: {\n Name: \"Ara\",\n Page: {\n Title: \"Sohbet ge\\xe7mişini ara\",\n Search: \"Arama anahtar kelimelerini girin\",\n NoResult: \"Sonu\\xe7 bulunamadı\",\n NoData: \"Veri yok\",\n Loading: \"Y\\xfckleniyor\",\n SubTitle: (count)=>`${count} sonuç bulundu`\n },\n Item: {\n View: \"G\\xf6r\\xfcnt\\xfcle\"\n }\n },\n Mask: {\n Name: \"Maske\",\n Page: {\n Title: \"\\xd6nceden Tanımlı Karakter Maskeleri\",\n SubTitle: (count)=>`${count} tane önceden tanımlı karakter tanımı`,\n Search: \"Karakter maskesi ara\",\n Create: \"Yeni oluştur\"\n },\n Item: {\n Info: (count)=>`${count} tane önceden tanımlı sohbet içeriyor`,\n Chat: \"Sohbet\",\n View: \"G\\xf6r\\xfcnt\\xfcle\",\n Edit: \"D\\xfczenle\",\n Delete: \"Sil\",\n DeleteConfirm: \"Silmek istediğinizden emin misiniz?\"\n },\n EditModal: {\n Title: (readonly)=>`Önceden Tanımlı Maskeyi Düzenle ${readonly ? \" (Salt Okunur)\" : \"\"}`,\n Download: \"\\xd6nceden Tanımlı Maskeyi İndir\",\n Clone: \"\\xd6nceden Tanımlı Maskeyi Kopyala\"\n },\n Config: {\n Avatar: \"Karakter Profil Resmi\",\n Name: \"Karakter Adı\",\n Sync: {\n Title: \"K\\xfcresel Ayarları Kullan\",\n SubTitle: \"Mevcut sohbet k\\xfcresel model ayarlarını mı kullanacak?\",\n Confirm: \"Mevcut sohbetin \\xf6zelleştirilmiş ayarları otomatik olarak \\xfczerine yazılacaktır, k\\xfcresel ayarları etkinleştirmek istediğinizden emin misiniz?\"\n },\n HideContext: {\n Title: \"\\xd6nceden Tanımlı Sohbetleri Gizle\",\n SubTitle: \"Gizlendiğinde, \\xf6nceden tanımlı sohbetler sohbet ekranında g\\xf6r\\xfcnmeyecek\"\n },\n Share: {\n Title: \"Bu Maskeyi Paylaş\",\n SubTitle: \"Bu maskenin doğrudan bağlantısını oluştur\",\n Action: \"Bağlantıyı Kopyala\"\n }\n }\n },\n NewChat: {\n Return: \"Geri d\\xf6n\",\n Skip: \"Doğrudan başla\",\n NotShow: \"Bir daha g\\xf6sterme\",\n ConfirmNoShow: \"Devre dışı bırakmak istediğinizden emin misiniz? Devre dışı bıraktıktan sonra ayarlardan tekrar etkinleştirebilirsiniz.\",\n Title: \"Bir Maske Se\\xe7in\",\n SubTitle: \"Şimdi başlayın ve maskenin arkasındaki zihinle etkileşimde bulunun\",\n More: \"T\\xfcm\\xfcn\\xfc G\\xf6r\"\n },\n URLCommand: {\n Code: \"Bağlantıda erişim kodu bulundu, otomatik olarak doldurulsun mu?\",\n Settings: \"Bağlantıda \\xf6nceden tanımlı ayarlar bulundu, otomatik olarak doldurulsun mu?\"\n },\n UI: {\n Confirm: \"Onayla\",\n Cancel: \"İptal et\",\n Close: \"Kapat\",\n Create: \"Yeni oluştur\",\n Edit: \"D\\xfczenle\",\n Export: \"Dışa Aktar\",\n Import: \"İ\\xe7e Aktar\",\n Sync: \"Senkronize et\",\n Config: \"Yapılandır\"\n },\n Exporter: {\n Description: {\n Title: \"Sadece bağlam temizlendikten sonraki mesajlar g\\xf6sterilecektir\"\n },\n Model: \"Model\",\n Messages: \"Mesajlar\",\n Topic: \"Konu\",\n Time: \"Zaman\"\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (tr);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvbG9jYWxlcy90ci50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQTRDO0FBRU87QUFDQTtBQUNuRCxNQUFNRyxRQUFRLENBQUMsQ0FBQ0YsK0RBQWVBLElBQUlFO0FBRW5DLE1BQU1DLEtBQXdCO0lBQzVCQyxLQUFLO0lBQ0xDLE9BQU87UUFDTEMsY0FBY0osUUFDVixDQUFDOzRHQUNtRyxFQUFFRCw0REFBaUJBLENBQUM7c0hBQ1YsQ0FBQyxHQUMvRyxDQUFDOzJHQUNrRyxFQUFFQSw0REFBaUJBLENBQUM7OztDQUc5SCxDQUFDO0lBQ0E7SUFDQU0sTUFBTTtRQUNKQyxPQUFPO1FBQ1BDLE1BQU07UUFDTkMsU0FBUztRQUNUQyxPQUFPO1FBQ1BDLFNBQVM7UUFDVEMsT0FBTztRQUNQQyxRQUFRO1FBQ1JDLFVBQVU7UUFDVkMsU0FDRTtJQUNKO0lBQ0FDLFVBQVU7UUFDUkMsZUFBZSxDQUFDQyxRQUFrQixDQUFDLEVBQUVBLE1BQU0sUUFBUSxDQUFDO0lBQ3REO0lBQ0FDLE1BQU07UUFDSkMsVUFBVSxDQUFDRixRQUFrQixDQUFDLE9BQU8sRUFBRUEsTUFBTSxRQUFRLENBQUM7UUFDdERHLGFBQWE7WUFDWGQsT0FBTztZQUNQZSxPQUFPO2dCQUNMZixPQUFPO2dCQUNQYSxVQUFVO1lBQ1o7UUFDRjtRQUNBRyxTQUFTO1lBQ1BDLFVBQVU7WUFDVkMsbUJBQW1CO1lBQ25CQyxRQUFRO1lBQ1JDLE1BQU07WUFDTkMsTUFBTTtZQUNOQyxPQUFPO1lBQ1BDLEtBQUs7WUFDTEMsaUJBQWlCO1lBQ2pCQyxnQkFBZ0I7WUFDaEJDLFFBQVE7WUFDUkMsTUFBTTtZQUNOQyxjQUFjO1lBQ2RDLGNBQWM7UUFDaEI7UUFDQUMsVUFBVTtZQUNSQyxLQUFLO1lBQ0xDLE1BQU07WUFDTkMsTUFBTTtZQUNOQyxNQUFNO1lBQ05DLE9BQU87WUFDUEMsS0FBSztRQUNQO1FBQ0FDLGNBQWM7WUFDWmhCLE1BQU07WUFDTmlCLFVBQVU7WUFDVkMsT0FBTztnQkFDTEMsTUFBTTtnQkFDTkMsT0FBTztnQkFDUEMsTUFBTTtZQUNSO1lBQ0FDLFFBQVE7WUFDUkMsT0FBTztZQUNQQyxPQUFPO1lBQ1BDLFVBQVU7WUFDVkMsYUFBYTtRQUNmO1FBQ0FDLFFBQVE7UUFDUkMsUUFBUTtRQUNSOUMsT0FBTyxDQUFDK0M7WUFDTixJQUFJQyxhQUFhLENBQUMsRUFBRUQsVUFBVSxPQUFPLENBQUM7WUFDdEMsSUFBSUEsY0FBY0UsT0FBTzdELG9EQUFTQSxDQUFDOEQsS0FBSyxHQUFHO2dCQUN6Q0YsY0FBYztZQUNoQjtZQUNBLE9BQU9BLGFBQWE7UUFDdEI7UUFDQUcsTUFBTTtRQUNOQyxRQUFRO1lBQ05DLE9BQU87WUFDUEMsUUFBUTtRQUNWO1FBQ0FDLFdBQVc7SUFDYjtJQUNBdkMsUUFBUTtRQUNObkIsT0FBTztRQUNQb0IsTUFBTTtRQUNOdUMsVUFBVTtRQUNWQyxPQUFPO1FBQ1BDLGdCQUFnQjtRQUNoQkMsb0JBQW9CO1FBQ3BCQyxRQUFRO1lBQ04vRCxPQUFPO1lBQ1BhLFVBQVU7UUFDWjtRQUNBbUQsZ0JBQWdCO1lBQ2RoRSxPQUFPO1lBQ1BhLFVBQVU7UUFDWjtRQUNBb0QsT0FBTztZQUNMQyxRQUFRO1lBQ1JDLFNBQVM7UUFDWDtRQUNBQyxPQUFPO1lBQ0xDLE9BQU87WUFDUEMsT0FBTztRQUNUO0lBQ0Y7SUFDQUosUUFBUTtRQUNOSyxRQUFRO1FBQ1JDLEtBQUs7UUFDTEMsUUFBUTtRQUNSNUIsT0FBTztJQUNUO0lBQ0E2QixRQUFRO1FBQ04xRSxPQUFPO1FBQ1AyRSxjQUFjO1FBQ2RyQixNQUFNO1FBQ05sQyxNQUFNO1FBQ05vQyxPQUFPO1FBQ1BvQixjQUFjO0lBQ2hCO0lBQ0FDLE1BQU07UUFDSkMsU0FBUztRQUNUQyxZQUFZO1FBQ1pDLGFBQWE7UUFDYkMsUUFBUTtJQUNWO0lBQ0FuQyxVQUFVO1FBQ1I5QyxPQUFPO1FBQ1BhLFVBQVU7UUFFVnFFLFFBQVE7WUFDTjFCLE9BQU87Z0JBQ0x4RCxPQUFPO2dCQUNQYSxVQUFVO2dCQUNWc0UsUUFBUTtnQkFDUi9FLFNBQVM7WUFDWDtZQUNBeUMsT0FBTztnQkFDTDdDLE9BQU87Z0JBQ1BhLFVBQVU7Z0JBQ1ZzRSxRQUFRO2dCQUNSL0UsU0FDRTtZQUNKO1FBQ0Y7UUFDQWdGLE1BQU07WUFDSkMsTUFBTTtZQUNOYixLQUFLO1FBQ1A7UUFDQWMsUUFBUTtRQUNSQyxVQUFVO1lBQ1J2RixPQUFPO1lBQ1BhLFVBQVU7UUFDWjtRQUNBMkUsWUFBWTtZQUNWeEYsT0FBTztZQUNQYSxVQUNFO1lBQ0Y0RSxhQUFhO1FBQ2Y7UUFDQUMscUJBQXFCO1lBQ25CMUYsT0FBTztZQUNQYSxVQUFVO1FBQ1o7UUFDQThFLGVBQWU7WUFDYjNGLE9BQU87WUFDUGEsVUFBVTtRQUNaO1FBRUErRSxRQUFRO1lBQ05DLFNBQVMsQ0FBQ0MsSUFBYyxDQUFDLGNBQWMsRUFBRUEsRUFBRSxDQUFDO1lBQzVDQyxVQUFVO1lBQ1ZDLGFBQWE7WUFDYkMsWUFBWTtZQUNaQyxhQUFhLENBQUNKLElBQWMsQ0FBQyxvQkFBb0IsRUFBRUEsRUFBRSxDQUFDO1lBQ3RESyxZQUFZO1FBQ2Q7UUFDQUMsU0FBUztRQUNUN0QsT0FBTztRQUNQOEQsYUFBYTtRQUNiQyxtQkFBbUI7WUFDakJ0RyxPQUFPO1lBQ1BhLFVBQVU7UUFDWjtRQUNBMEYsbUJBQW1CO1lBQ2pCdkcsT0FBTztZQUNQYSxVQUFVO1FBQ1o7UUFDQTJGLE1BQU07WUFDSkMsWUFBWTtZQUNaQyxZQUFZO1lBQ1pDLFNBQVM7WUFDVEMsTUFBTTtZQUVOckQsUUFBUTtnQkFDTmUsT0FBTztvQkFDTHRFLE9BQU87b0JBQ1A2RyxPQUFPO2dCQUNUO2dCQUNBQyxVQUFVO29CQUNSOUcsT0FBTztvQkFDUGEsVUFBVTtnQkFDWjtnQkFDQWtHLE9BQU87b0JBQ0wvRyxPQUFPO29CQUNQYSxVQUNFO2dCQUNKO2dCQUNBbUcsVUFBVTtvQkFDUmhILE9BQU87b0JBQ1BhLFVBQVU7Z0JBQ1o7Z0JBRUFvRyxRQUFRO29CQUNOQyxVQUFVO29CQUNWQyxVQUFVO29CQUNWQyxVQUFVO2dCQUNaO2dCQUVBQyxTQUFTO29CQUNQSCxVQUFVO29CQUNWQyxVQUFVO29CQUNWQyxVQUFVO2dCQUNaO1lBQ0Y7WUFFQUUsWUFBWTtZQUNaQyxVQUFVLENBQUNDO2dCQUNULE9BQU8sQ0FBQyxFQUFFQSxTQUFTQyxJQUFJLENBQUMsVUFBVSxFQUFFRCxTQUFTRSxPQUFPLENBQUMsUUFBUSxFQUFFRixTQUFTRyxNQUFNLENBQUMsUUFBUSxFQUFFSCxTQUFTSSxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ2hIO1lBQ0FDLGNBQWM7UUFDaEI7UUFDQUMsTUFBTTtZQUNKQyxRQUFRO2dCQUNOL0gsT0FBTztnQkFDUGEsVUFDRTtZQUNKO1lBQ0FtSCxTQUFTO2dCQUNQaEksT0FBTztnQkFDUGEsVUFBVTtZQUNaO1FBQ0Y7UUFDQThCLFFBQVE7WUFDTnNGLFNBQVM7Z0JBQ1BqSSxPQUFPO2dCQUNQYSxVQUNFO1lBQ0o7WUFDQXFILE1BQU07WUFDTkMsV0FBVyxDQUFDQyxTQUFpQkMsU0FDM0IsQ0FBQyxTQUFTLEVBQUVELFFBQVEseUJBQXlCLEVBQUVDLE9BQU8sS0FBSyxDQUFDO1lBQzlEMUcsTUFBTTtZQUNOMkMsT0FBTztnQkFDTHRFLE9BQU87Z0JBQ1BzSSxLQUFLO2dCQUNML0QsUUFBUTtZQUNWO1lBQ0FnRSxXQUFXO2dCQUNUdkksT0FBTztZQUNUO1FBQ0Y7UUFDQXdJLGNBQWM7WUFDWnhJLE9BQU87WUFDUGEsVUFBVTtRQUNaO1FBQ0E0SCxtQkFBbUI7WUFDakJ6SSxPQUFPO1lBQ1BhLFVBQ0U7UUFDSjtRQUVBNkgsT0FBTztZQUNMMUksT0FBTztZQUNQYSxVQUFTOEgsSUFBUyxFQUFFQyxLQUFVO2dCQUM1QixPQUFPLENBQUMsa0JBQWtCLEVBQUVELEtBQUssMEJBQTBCLEVBQUVDLE1BQU0sQ0FBQztZQUN0RTtZQUNBM0MsWUFBWTtZQUNaWSxPQUFPO1lBQ1BnQyxVQUNFO1FBQ0o7UUFFQUMsUUFBUTtZQUNOQyxXQUFXO2dCQUNUL0ksT0FBTztnQkFDUGdKLE9BQU87Z0JBQ1BuSSxVQUNFO2dCQUNGb0ksU0FBUztZQUNYO1lBRUFDLFlBQVk7Z0JBQ1ZsSixPQUFPO2dCQUNQYSxVQUFVO2dCQUNWNEUsYUFBYTtZQUNmO1lBQ0EwRCxnQkFBZ0I7Z0JBQ2RuSixPQUFPO2dCQUNQYSxVQUNFO1lBQ0o7WUFDQXVJLFVBQVU7Z0JBQ1JwSixPQUFPO2dCQUNQYSxVQUFVO1lBQ1o7WUFDQXdJLFFBQVE7Z0JBQ05DLFFBQVE7b0JBQ050SixPQUFPO29CQUNQYSxVQUNFO29CQUNGNEUsYUFBYTtnQkFDZjtnQkFFQXlCLFVBQVU7b0JBQ1JsSCxPQUFPO29CQUNQYSxVQUFVO2dCQUNaO1lBQ0Y7WUFDQTBJLE9BQU87Z0JBQ0xELFFBQVE7b0JBQ050SixPQUFPO29CQUNQYSxVQUNFO29CQUNGNEUsYUFBYTtnQkFDZjtnQkFFQXlCLFVBQVU7b0JBQ1JsSCxPQUFPO29CQUNQYSxVQUFVO2dCQUNaO2dCQUVBMkksV0FBVztvQkFDVHhKLE9BQU87b0JBQ1BhLFVBQVU7Z0JBQ1o7WUFDRjtZQUNBNEksV0FBVztnQkFDVEgsUUFBUTtvQkFDTnRKLE9BQU87b0JBQ1BhLFVBQ0U7b0JBQ0Y0RSxhQUFhO2dCQUNmO2dCQUVBeUIsVUFBVTtvQkFDUmxILE9BQU87b0JBQ1BhLFVBQVU7Z0JBQ1o7Z0JBRUEySSxXQUFXO29CQUNUeEosT0FBTztvQkFDUGEsVUFBVTtnQkFDWjtZQUNGO1lBQ0E2SSxRQUFRO2dCQUNOSixRQUFRO29CQUNOdEosT0FBTztvQkFDUGEsVUFBVTtvQkFDVjRFLGFBQWE7Z0JBQ2Y7Z0JBRUF5QixVQUFVO29CQUNSbEgsT0FBTztvQkFDUGEsVUFBVTtnQkFDWjtnQkFFQThJLFlBQVk7b0JBQ1YzSixPQUFPO29CQUNQYSxVQUFVO2dCQUNaO2dCQUNBK0ksc0JBQXNCO29CQUNwQjVKLE9BQU87b0JBQ1BhLFVBQVU7Z0JBQ1o7WUFDRjtZQUNBZ0osT0FBTztnQkFDTFAsUUFBUTtvQkFDTnRKLE9BQU87b0JBQ1BhLFVBQVU7b0JBQ1Y0RSxhQUFhO2dCQUNmO2dCQUNBcUUsV0FBVztvQkFDVDlKLE9BQU87b0JBQ1BhLFVBQVU7b0JBQ1Y0RSxhQUFhO2dCQUNmO2dCQUNBeUIsVUFBVTtvQkFDUmxILE9BQU87b0JBQ1BhLFVBQVU7Z0JBQ1o7WUFDRjtZQUNBa0osV0FBVztnQkFDVFQsUUFBUTtvQkFDTnRKLE9BQU87b0JBQ1BhLFVBQVU7b0JBQ1Y0RSxhQUFhO2dCQUNmO2dCQUNBeUIsVUFBVTtvQkFDUmxILE9BQU87b0JBQ1BhLFVBQVU7Z0JBQ1o7WUFDRjtZQUNBbUosU0FBUztnQkFDUFYsUUFBUTtvQkFDTnRKLE9BQU87b0JBQ1BhLFVBQVU7b0JBQ1Y0RSxhQUFhO2dCQUNmO2dCQUNBeUIsVUFBVTtvQkFDUmxILE9BQU87b0JBQ1BhLFVBQVU7Z0JBQ1o7WUFDRjtZQUNBb0osYUFBYTtnQkFDWGpLLE9BQU87Z0JBQ1BhLFVBQ0U7WUFDSjtRQUNGO1FBRUFxSixPQUFPO1FBQ1BDLGVBQWU7WUFDYm5LLE9BQU87WUFDUGEsVUFBVTtRQUNaO1FBQ0F1SixhQUFhO1lBQ1hwSyxPQUFPO1lBQ1BhLFVBQVU7UUFDWjtRQUNBd0osTUFBTTtZQUNKckssT0FBTztZQUNQYSxVQUNFO1FBQ0o7UUFDQXlKLFdBQVc7WUFDVHRLLE9BQU87WUFDUGEsVUFBVTtRQUNaO1FBQ0EwSixpQkFBaUI7WUFDZnZLLE9BQU87WUFDUGEsVUFBVTtRQUNaO1FBQ0EySixrQkFBa0I7WUFDaEJ4SyxPQUFPO1lBQ1BhLFVBQ0U7UUFDSjtJQUNGO0lBQ0E0SixPQUFPO1FBQ0xDLGNBQWM7UUFDZEMsVUFBVTtRQUNWOUssT0FBTztRQUNQOEMsUUFBUTtZQUNOaUksU0FBUyxDQUFDQyxVQUFvQixzQ0FBZ0NBO1lBQzlEOUosT0FDRTtZQUNGK0osV0FDRTtRQUNKO0lBQ0Y7SUFDQTFKLE1BQU07UUFDSnVGLFNBQVM7UUFDVG9FLFFBQVE7SUFDVjtJQUNBcEgsVUFBVTtRQUNSZ0QsU0FBUztRQUNUb0UsUUFBUTtJQUNWO0lBQ0FDLFNBQVM7UUFDUDNHLE9BQU8sQ0FBQ3lCLElBQVcsQ0FBQyxFQUFFQSxFQUFFLG9DQUFvQyxDQUFDO1FBQzdEbkUsTUFBTTtRQUNOMkcsS0FBSztRQUNMekYsT0FBTztRQUNQb0MsUUFBUTtJQUNWO0lBQ0FnRyxRQUFRO1FBQ041RixNQUFNO0lBQ1I7SUFDQTZGLFdBQVc7UUFDVEMsWUFBWTtJQUNkO0lBQ0FDLFlBQVk7UUFDVi9GLE1BQU07UUFDTmdHLE1BQU07WUFDSnJMLE9BQU87WUFDUHVFLFFBQVE7WUFDUitHLFVBQVU7WUFDVkMsUUFBUTtZQUNSQyxTQUFTO1lBRVQzSyxVQUFVLENBQUNGLFFBQWtCLENBQUMsRUFBRUEsTUFBTSxjQUFjLENBQUM7UUFDdkQ7UUFDQThLLE1BQU07WUFDSkMsTUFBTTtRQUNSO0lBQ0Y7SUFDQTVELE1BQU07UUFDSnpDLE1BQU07UUFDTmdHLE1BQU07WUFDSnJMLE9BQU87WUFDUGEsVUFBVSxDQUFDRixRQUNULENBQUMsRUFBRUEsTUFBTSxxQ0FBcUMsQ0FBQztZQUNqRDRELFFBQVE7WUFDUm9ILFFBQVE7UUFDVjtRQUNBRixNQUFNO1lBQ0pHLE1BQU0sQ0FBQ2pMLFFBQWtCLENBQUMsRUFBRUEsTUFBTSxxQ0FBcUMsQ0FBQztZQUN4RUMsTUFBTTtZQUNOOEssTUFBTTtZQUNOL0osTUFBTTtZQUNORCxRQUFRO1lBQ1JtSyxlQUFlO1FBQ2pCO1FBQ0F0RCxXQUFXO1lBQ1R2SSxPQUFPLENBQUM4TCxXQUNOLENBQUMsZ0NBQWdDLEVBQUVBLFdBQVcsbUJBQW1CLEdBQUcsQ0FBQztZQUN2RW5JLFVBQVU7WUFDVm9JLE9BQU87UUFDVDtRQUNBeEksUUFBUTtZQUNOK0IsUUFBUTtZQUNSRCxNQUFNO1lBQ05tQixNQUFNO2dCQUNKeEcsT0FBTztnQkFDUGEsVUFBVTtnQkFDVlQsU0FDRTtZQUNKO1lBQ0E0TCxhQUFhO2dCQUNYaE0sT0FBTztnQkFDUGEsVUFDRTtZQUNKO1lBQ0ErQyxPQUFPO2dCQUNMNUQsT0FBTztnQkFDUGEsVUFBVTtnQkFDVnNFLFFBQVE7WUFDVjtRQUNGO0lBQ0Y7SUFDQUwsU0FBUztRQUNQeEUsUUFBUTtRQUNSMkwsTUFBTTtRQUNOQyxTQUFTO1FBQ1RDLGVBQ0U7UUFDRm5NLE9BQU87UUFDUGEsVUFDRTtRQUNGdUwsTUFBTTtJQUNSO0lBRUFDLFlBQVk7UUFDVkMsTUFBTTtRQUNOeEosVUFDRTtJQUNKO0lBRUF5SixJQUFJO1FBQ0ZuTSxTQUFTO1FBQ1RvTSxRQUFRO1FBQ1JDLE9BQU87UUFDUGQsUUFBUTtRQUNSaEssTUFBTTtRQUNOUixRQUFRO1FBQ1J1TCxRQUFRO1FBQ1JsRyxNQUFNO1FBQ05qRCxRQUFRO0lBQ1Y7SUFDQW9KLFVBQVU7UUFDUkMsYUFBYTtZQUNYNU0sT0FBTztRQUNUO1FBQ0FrSyxPQUFPO1FBQ1AyQyxVQUFVO1FBQ1Y5TCxPQUFPO1FBQ1ArTCxNQUFNO0lBQ1I7QUFDRjtBQUVBLGlFQUFlbk4sRUFBRUEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2xvY2FsZXMvdHIudHM/N2UwZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJtaXRLZXkgfSBmcm9tIFwiLi4vc3RvcmUvY29uZmlnXCI7XHJcbmltcG9ydCB0eXBlIHsgUGFydGlhbExvY2FsZVR5cGUgfSBmcm9tIFwiLi9pbmRleFwiO1xyXG5pbXBvcnQgeyBnZXRDbGllbnRDb25maWcgfSBmcm9tIFwiLi4vY29uZmlnL2NsaWVudFwiO1xyXG5pbXBvcnQgeyBTQUFTX0NIQVRfVVRNX1VSTCB9IGZyb20gXCJAL2FwcC9jb25zdGFudFwiO1xyXG5jb25zdCBpc0FwcCA9ICEhZ2V0Q2xpZW50Q29uZmlnKCk/LmlzQXBwO1xyXG5cclxuY29uc3QgdHI6IFBhcnRpYWxMb2NhbGVUeXBlID0ge1xyXG4gIFdJUDogXCLDh2FsxLHFn21hIGRldmFtIGVkaXlvci4uLlwiLFxyXG4gIEVycm9yOiB7XHJcbiAgICBVbmF1dGhvcml6ZWQ6IGlzQXBwXHJcbiAgICAgID8gYPCfmIYgU29oYmV0IGJhesSxIHNvcnVubGFybGEga2FyxZ/EsWxhxZ90xLEsIGVuZGnFn2VsZW5tZXlpbjpcclxuICAgIFxcXFwgMe+4j+KDoyBFxJ9lciBzxLFmxLFyIHlhcMSxbGFuZMSxcm1hIGlsZSBiYcWfbGFtYWsgaXN0aXlvcnNhbsSxeiwgW2J1cmF5YSB0xLFrbGF5YXJhayBoZW1lbiBzb2hiZXRlIGJhxZ9sYXnEsW4g8J+agF0oJHtTQUFTX0NIQVRfVVRNX1VSTH0pXHJcbiAgICBcXFxcIDLvuI/ig6MgS2VuZGkgT3BlbkFJIGtheW5ha2xhcsSxbsSxesSxIGt1bGxhbm1hayBpc3RpeW9yc2FuxLF6LCBbYnVyYXlhIHTEsWtsYXlhcmFrXSgvIy9zZXR0aW5ncykgYXlhcmxhcsSxIGRlxJ9pxZ90aXJpbiDimpnvuI9gXHJcbiAgICAgIDogYPCfmIYgU29oYmV0IGJhesSxIHNvcnVubGFybGEga2FyxZ/EsWxhxZ90xLEsIGVuZGnFn2VsZW5tZXlpbjpcclxuICAgIFxcIDHvuI/ig6MgRcSfZXIgc8SxZsSxciB5YXDEsWxhbmTEsXJtYSBpbGUgYmHFn2xhbWFrIGlzdGl5b3JzYW7EsXosIFtidXJheWEgdMSxa2xheWFyYWsgaGVtZW4gc29oYmV0ZSBiYcWfbGF5xLFuIPCfmoBdKCR7U0FBU19DSEFUX1VUTV9VUkx9KVxyXG4gICAgXFwgMu+4j+KDoyBFxJ9lciDDtnplbCBkYcSfxLF0xLFtIHPDvHLDvG3DvCBrdWxsYW7EsXlvcnNhbsSxeiwgW2J1cmF5YSB0xLFrbGF5YXJha10oLyMvYXV0aCkgZXJpxZ9pbSBhbmFodGFyxLFuxLEgZ2lyaW4g8J+UkVxyXG4gICAgXFwgM++4j+KDoyBLZW5kaSBPcGVuQUkga2F5bmFrbGFyxLFuxLF6xLEga3VsbGFubWFrIGlzdGl5b3JzYW7EsXosIFtidXJheWEgdMSxa2xheWFyYWtdKC8jL3NldHRpbmdzKSBheWFybGFyxLEgZGXEn2nFn3RpcmluIOKame+4j1xyXG4gYCxcclxuICB9LFxyXG4gIEF1dGg6IHtcclxuICAgIFRpdGxlOiBcIsWeaWZyZSBHZXJla2xpXCIsXHJcbiAgICBUaXBzOiBcIlnDtm5ldGljaSDFn2lmcmUgZG/En3J1bGFtYXPEsW7EsSBldGtpbmxlxZ90aXJkaSwgbMO8dGZlbiBhxZ9hxJ/EsXlhIGVyacWfaW0ga29kdW51IGdpcmluXCIsXHJcbiAgICBTdWJUaXBzOiBcIlZleWEgT3BlbkFJIHZleWEgR29vZ2xlIEFQSSBhbmFodGFyxLFuxLF6xLEgZ2lyaW5cIixcclxuICAgIElucHV0OiBcIkVyacWfaW0ga29kdW51IGJ1cmF5YSBnaXJpblwiLFxyXG4gICAgQ29uZmlybTogXCJPbmF5bGFcIixcclxuICAgIExhdGVyOiBcIlNvbnJhXCIsXHJcbiAgICBSZXR1cm46IFwiR2VyaVwiLFxyXG4gICAgU2Fhc1RpcHM6IFwiQXlhcmxhciDDp29rIGthcm1hxZ/EsWssIGhlbWVuIGt1bGxhbm1hayBpc3RpeW9ydW1cIixcclxuICAgIFRvcFRpcHM6XHJcbiAgICAgIFwi8J+lsyBOZXh0Q2hhdCBBSSBsYW5zbWFuIHRla2xpZmksIE9wZW5BSSBvMSwgR1BULTRvLCBDbGF1ZGUtMy41IHZlIGVuIHNvbiBiw7x5w7xrIG1vZGVsbGVyaSDFn2ltZGkgYcOnxLFuXCIsXHJcbiAgfSxcclxuICBDaGF0SXRlbToge1xyXG4gICAgQ2hhdEl0ZW1Db3VudDogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50fSBrb251xZ9tYWAsXHJcbiAgfSxcclxuICBDaGF0OiB7XHJcbiAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGBUb3BsYW0gJHtjb3VudH0ga29udcWfbWFgLFxyXG4gICAgRWRpdE1lc3NhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwiTWVzYWogS2F5xLF0bGFyxLFuxLEgRMO8emVubGVcIixcclxuICAgICAgVG9waWM6IHtcclxuICAgICAgICBUaXRsZTogXCJTb2hiZXQgS29udXN1XCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiR2XDp2VybGkgc29oYmV0IGtvbnVzdW51IGRlxJ9pxZ90aXJcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBBY3Rpb25zOiB7XHJcbiAgICAgIENoYXRMaXN0OiBcIk1lc2FqIGxpc3Rlc2luZSBiYWtcIixcclxuICAgICAgQ29tcHJlc3NlZEhpc3Rvcnk6IFwiU8Sxa8SxxZ90xLFyxLFsbcSxxZ8gZ2XDp21pxZ9pIGfDtnJcIixcclxuICAgICAgRXhwb3J0OiBcIlNvaGJldCBrYXnEsXRsYXLEsW7EsSBkxLHFn2EgYWt0YXJcIixcclxuICAgICAgQ29weTogXCJLb3B5YWxhXCIsXHJcbiAgICAgIFN0b3A6IFwiRHVyZHVyXCIsXHJcbiAgICAgIFJldHJ5OiBcIlllbmlkZW4gZGVuZVwiLFxyXG4gICAgICBQaW46IFwiU2FiaXRsZW5tacWfXCIsXHJcbiAgICAgIFBpblRvYXN0Q29udGVudDogXCIxIGtvbnXFn21hIHZhcnNhecSxbGFuIGlmYWRleWUgc2FiaXRsZW5kaVwiLFxyXG4gICAgICBQaW5Ub2FzdEFjdGlvbjogXCJHw7Zyw7xuw7xtXCIsXHJcbiAgICAgIERlbGV0ZTogXCJTaWxcIixcclxuICAgICAgRWRpdDogXCJEw7x6ZW5sZVwiLFxyXG4gICAgICBSZWZyZXNoVGl0bGU6IFwiQmHFn2zEscSfxLEgWWVuaWxlXCIsXHJcbiAgICAgIFJlZnJlc2hUb2FzdDogXCJCYcWfbMSxayB5ZW5pbGVtZSBpc3RlxJ9pIGfDtm5kZXJpbGRpXCIsXHJcbiAgICB9LFxyXG4gICAgQ29tbWFuZHM6IHtcclxuICAgICAgbmV3OiBcIlllbmkgc29oYmV0XCIsXHJcbiAgICAgIG5ld206IFwiTWFza2UgaWxlIHllbmkgc29oYmV0IG9sdcWfdHVyXCIsXHJcbiAgICAgIG5leHQ6IFwiU29ucmFraSBzb2hiZXRcIixcclxuICAgICAgcHJldjogXCLDlm5jZWtpIHNvaGJldFwiLFxyXG4gICAgICBjbGVhcjogXCJLb250ZWtzdGkgdGVtaXpsZVwiLFxyXG4gICAgICBkZWw6IFwiU29oYmV0aSBzaWxcIixcclxuICAgIH0sXHJcbiAgICBJbnB1dEFjdGlvbnM6IHtcclxuICAgICAgU3RvcDogXCJZYW7EsXTEsSBkdXJkdXJcIixcclxuICAgICAgVG9Cb3R0b206IFwiRW4gYWx0YSBnaXRcIixcclxuICAgICAgVGhlbWU6IHtcclxuICAgICAgICBhdXRvOiBcIk90b21hdGlrIHRlbWFcIixcclxuICAgICAgICBsaWdodDogXCJBw6fEsWsgbW9kXCIsXHJcbiAgICAgICAgZGFyazogXCJLb3l1IG1vZFwiLFxyXG4gICAgICB9LFxyXG4gICAgICBQcm9tcHQ6IFwiS8Sxc2F5b2wga29tdXR1XCIsXHJcbiAgICAgIE1hc2tzOiBcIlTDvG0gbWFza2VsZXJcIixcclxuICAgICAgQ2xlYXI6IFwiU29oYmV0aSB0ZW1pemxlXCIsXHJcbiAgICAgIFNldHRpbmdzOiBcIlNvaGJldCBheWFybGFyxLFcIixcclxuICAgICAgVXBsb2FkSW1hZ2U6IFwiUmVzaW0gecO8a2xlXCIsXHJcbiAgICB9LFxyXG4gICAgUmVuYW1lOiBcIlNvaGJldGkgeWVuaWRlbiBhZGxhbmTEsXJcIixcclxuICAgIFR5cGluZzogXCJZYXrEsXlvcuKAplwiLFxyXG4gICAgSW5wdXQ6IChzdWJtaXRLZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICB2YXIgaW5wdXRIaW50cyA9IGAke3N1Ym1pdEtleX0gZ8O2bmRlcmA7XHJcbiAgICAgIGlmIChzdWJtaXRLZXkgPT09IFN0cmluZyhTdWJtaXRLZXkuRW50ZXIpKSB7XHJcbiAgICAgICAgaW5wdXRIaW50cyArPSBcIiBTaGlmdCArIEVudGVyIHNhdMSxciBzb251IGnDp2luXCI7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGlucHV0SGludHMgKyBcIiAvIHRhbWFtbGFtYSBpw6dpbiwgOiBrb211dGxhciBpw6dpblwiO1xyXG4gICAgfSxcclxuICAgIFNlbmQ6IFwiR8O2bmRlclwiLFxyXG4gICAgQ29uZmlnOiB7XHJcbiAgICAgIFJlc2V0OiBcIkhhZsSxemF5xLEgdGVtaXpsZVwiLFxyXG4gICAgICBTYXZlQXM6IFwiTWFza2Ugb2xhcmFrIGtheWRldFwiLFxyXG4gICAgfSxcclxuICAgIElzQ29udGV4dDogXCJWYXJzYXnEsWxhbiBpZmFkZVwiLFxyXG4gIH0sXHJcbiAgRXhwb3J0OiB7XHJcbiAgICBUaXRsZTogXCJTb2hiZXQga2F5xLF0bGFyxLFuxLEgcGF5bGHFn1wiLFxyXG4gICAgQ29weTogXCJIZXBzaW5pIGtvcHlhbGFcIixcclxuICAgIERvd25sb2FkOiBcIkRvc3lhecSxIGluZGlyXCIsXHJcbiAgICBTaGFyZTogXCJTaGFyZUdQVCd5ZSBwYXlsYcWfXCIsXHJcbiAgICBNZXNzYWdlRnJvbVlvdTogXCJLdWxsYW7EsWPEsVwiLFxyXG4gICAgTWVzc2FnZUZyb21DaGF0R1BUOiBcIkNoYXRHUFRcIixcclxuICAgIEZvcm1hdDoge1xyXG4gICAgICBUaXRsZTogXCJExLHFn2EgYWt0YXJtYSBmb3JtYXTEsVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJNYXJrZG93biBtZXRuaSB2ZXlhIFBORyByZXNtaSBvbGFyYWsgZMSxxZ9hIGFrdGFyYWJpbGlyc2luaXpcIixcclxuICAgIH0sXHJcbiAgICBJbmNsdWRlQ29udGV4dDoge1xyXG4gICAgICBUaXRsZTogXCJNYXNrZSBiYcSfbGFtxLFuxLEgZGFoaWwgZXRcIixcclxuICAgICAgU3ViVGl0bGU6IFwiTWVzYWpsYXJkYSBtYXNrZSBiYcSfbGFtxLFuxLEgZ8O2c3Rlcm1layBpc3RlciBtaXNpbml6XCIsXHJcbiAgICB9LFxyXG4gICAgU3RlcHM6IHtcclxuICAgICAgU2VsZWN0OiBcIlNlw6dcIixcclxuICAgICAgUHJldmlldzogXCLDlm5pemxlbWVcIixcclxuICAgIH0sXHJcbiAgICBJbWFnZToge1xyXG4gICAgICBUb2FzdDogXCJFa3JhbiBnw7Zyw7xudMO8c8O8IG9sdcWfdHVydWx1eW9yXCIsXHJcbiAgICAgIE1vZGFsOiBcIlJlc21pIHV6dW4gYmFzxLFuIHZleWEgc2HEnyB0xLFrbGF5xLFuIHZlIGtheWRlZGluXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgU2VsZWN0OiB7XHJcbiAgICBTZWFyY2g6IFwiTWVzYWpsYXLEsSBhcmFcIixcclxuICAgIEFsbDogXCJIZXBzaW5pIHNlw6dcIixcclxuICAgIExhdGVzdDogXCJTb24gYmlya2HDpyBtZXNhalwiLFxyXG4gICAgQ2xlYXI6IFwiU2XDp2ltaSB0ZW1pemxlXCIsXHJcbiAgfSxcclxuICBNZW1vcnk6IHtcclxuICAgIFRpdGxlOiBcIkdlw6dtacWfIMOWemV0aVwiLFxyXG4gICAgRW1wdHlDb250ZW50OiBcIlNvaGJldCBpw6dlcmnEn2kgw6dvayBrxLFzYSwgw7Z6ZXRsZW1lIGdlcmVrIHlva1wiLFxyXG4gICAgU2VuZDogXCJTb2hiZXQga2F5xLF0bGFyxLFuxLEgb3RvbWF0aWsgb2xhcmFrIHPEsWvEscWfdMSxciB2ZSBiYcSfbGFtIG9sYXJhayBnw7ZuZGVyXCIsXHJcbiAgICBDb3B5OiBcIsOWemV0aSBrb3B5YWxhXCIsXHJcbiAgICBSZXNldDogXCJba3VsbGFuxLFsbWFkxLFdXCIsXHJcbiAgICBSZXNldENvbmZpcm06IFwiR2XDp21pxZ8gw7Z6ZXRpbmkgdGVtaXpsZW1layBpc3RlZGnEn2luaXplIGVtaW4gbWlzaW5pej9cIixcclxuICB9LFxyXG4gIEhvbWU6IHtcclxuICAgIE5ld0NoYXQ6IFwiWWVuaSBzb2hiZXRcIixcclxuICAgIERlbGV0ZUNoYXQ6IFwiU2XDp2lsZW4gc29oYmV0aSBzaWxtZWsgaXN0ZWRpxJ9pbml6ZSBlbWluIG1pc2luaXo/XCIsXHJcbiAgICBEZWxldGVUb2FzdDogXCJTb2hiZXQgc2lsaW5kaVwiLFxyXG4gICAgUmV2ZXJ0OiBcIkdlcmkgYWxcIixcclxuICB9LFxyXG4gIFNldHRpbmdzOiB7XHJcbiAgICBUaXRsZTogXCJBeWFybGFyXCIsXHJcbiAgICBTdWJUaXRsZTogXCJUw7xtIGF5YXIgc2XDp2VuZWtsZXJpXCIsXHJcblxyXG4gICAgRGFuZ2VyOiB7XHJcbiAgICAgIFJlc2V0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiVMO8bSBheWFybGFyxLEgc8SxZsSxcmxhXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiVMO8bSBheWFybGFyxLEgdmFyc2F5xLFsYW4gZGXEn2VybGVyZSBzxLFmxLFybGFcIixcclxuICAgICAgICBBY3Rpb246IFwiSGVtZW4gc8SxZsSxcmxhXCIsXHJcbiAgICAgICAgQ29uZmlybTogXCJUw7xtIGF5YXJsYXLEsSBzxLFmxLFybGFtYWsgaXN0ZWRpxJ9pbml6ZGVuIGVtaW4gbWlzaW5pej9cIixcclxuICAgICAgfSxcclxuICAgICAgQ2xlYXI6IHtcclxuICAgICAgICBUaXRsZTogXCJUw7xtIHZlcmlsZXJpIHRlbWl6bGVcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJUw7xtIHNvaGJldCB2ZSBheWFyIHZlcmlsZXJpbmkgdGVtaXpsZVwiLFxyXG4gICAgICAgIEFjdGlvbjogXCJIZW1lbiB0ZW1pemxlXCIsXHJcbiAgICAgICAgQ29uZmlybTpcclxuICAgICAgICAgIFwiVMO8bSBzb2hiZXQgdmUgYXlhciB2ZXJpbGVyaW5pIHRlbWl6bGVtZWsgaXN0ZWRpxJ9pbml6ZGVuIGVtaW4gbWlzaW5pej9cIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBMYW5nOiB7XHJcbiAgICAgIE5hbWU6IFwiTGFuZ3VhZ2VcIiwgLy8gRGlra2F0OiB5ZW5pIGJpciDDp2V2aXJpIGVrbGVtZWsgaXN0ZXJzZW5peiwgYnUgZGXEn2VyaSDDp2V2aXJtZXlpbiwgYExhbmd1YWdlYCBvbGFyYWsgYsSxcmFrxLFuXHJcbiAgICAgIEFsbDogXCJUw7xtIGRpbGxlclwiLFxyXG4gICAgfSxcclxuICAgIEF2YXRhcjogXCJQcm9maWwgUmVzbWlcIixcclxuICAgIEZvbnRTaXplOiB7XHJcbiAgICAgIFRpdGxlOiBcIllhesSxIEJveXV0dVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJTb2hiZXQgacOnZXJpxJ9pbmluIHlhesSxIGJveXV0dVwiLFxyXG4gICAgfSxcclxuICAgIEZvbnRGYW1pbHk6IHtcclxuICAgICAgVGl0bGU6IFwiU29oYmV0IFlhesSxIFRpcGlcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJTb2hiZXQgacOnZXJpxJ9pbmluIHlhesSxIHRpcGksIGJvxZ8gYsSxcmFrxLFsZMSxxJ/EsW5kYSBrw7xyZXNlbCB2YXJzYXnEsWxhbiB5YXrEsSB0aXBpIHV5Z3VsYW7EsXJcIixcclxuICAgICAgUGxhY2Vob2xkZXI6IFwiWWF6xLEgVGlwaSBBZMSxXCIsXHJcbiAgICB9LFxyXG4gICAgSW5qZWN0U3lzdGVtUHJvbXB0czoge1xyXG4gICAgICBUaXRsZTogXCJTaXN0ZW0gU2V2aXllc2kgxLBwdWN1IEVuamVrc2l5b251XCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIkhlciBpc3RlxJ9pbiBiYcWfxLFuYSBDaGF0R1BUIGJlbnplcmkgYmlyIHNpc3RlbSBpcHVjdSBla2xlXCIsXHJcbiAgICB9LFxyXG4gICAgSW5wdXRUZW1wbGF0ZToge1xyXG4gICAgICBUaXRsZTogXCJLdWxsYW7EsWPEsSBHaXJkaXNpIMOWbiDEsMWfbGVtZVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJLdWxsYW7EsWPEsW7EsW4gZW4gc29uIG1lc2FqxLEgYnUgxZ9hYmxvbmEgZG9sZHVydWx1clwiLFxyXG4gICAgfSxcclxuXHJcbiAgICBVcGRhdGU6IHtcclxuICAgICAgVmVyc2lvbjogKHg6IHN0cmluZykgPT4gYE1ldmN1dCBzw7xyw7xtOiAke3h9YCxcclxuICAgICAgSXNMYXRlc3Q6IFwiRW4gc29uIHPDvHLDvG1cIixcclxuICAgICAgQ2hlY2tVcGRhdGU6IFwiR8O8bmNlbGxlbWVsZXJpIGtvbnRyb2wgZXRcIixcclxuICAgICAgSXNDaGVja2luZzogXCJHw7xuY2VsbGVtZWxlciBrb250cm9sIGVkaWxpeW9yLi4uXCIsXHJcbiAgICAgIEZvdW5kVXBkYXRlOiAoeDogc3RyaW5nKSA9PiBgWWVuaSBzw7xyw7xtIGJ1bHVuZHU6ICR7eH1gLFxyXG4gICAgICBHb1RvVXBkYXRlOiBcIkfDvG5jZWxsZW1leWUgZ2l0XCIsXHJcbiAgICB9LFxyXG4gICAgU2VuZEtleTogXCJHw7ZuZGVybWUgVHXFn3VcIixcclxuICAgIFRoZW1lOiBcIlRlbWFcIixcclxuICAgIFRpZ2h0Qm9yZGVyOiBcIlPEsW7EsXIgWW9rIE1vZHVcIixcclxuICAgIFNlbmRQcmV2aWV3QnViYmxlOiB7XHJcbiAgICAgIFRpdGxlOiBcIsOWbml6bGVtZSBCYWxvbnVcIixcclxuICAgICAgU3ViVGl0bGU6IFwiTWFya2Rvd24gacOnZXJpxJ9pbmkgw7ZuaXpsZW1lIGJhbG9udW5kYSBnw7Zyw7xudMO8bGVcIixcclxuICAgIH0sXHJcbiAgICBBdXRvR2VuZXJhdGVUaXRsZToge1xyXG4gICAgICBUaXRsZTogXCJCYcWfbMSxxJ/EsSBPdG9tYXRpayBPbHXFn3R1clwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJTb2hiZXQgacOnZXJpxJ9pbmUgZ8O2cmUgdXlndW4gYmHFn2zEsWsgb2x1xZ90dXJcIixcclxuICAgIH0sXHJcbiAgICBTeW5jOiB7XHJcbiAgICAgIENsb3VkU3RhdGU6IFwiQnVsdXQgVmVyaXNpXCIsXHJcbiAgICAgIE5vdFN5bmNZZXQ6IFwiSGVuw7x6IHNlbmtyb25pemUgZWRpbG1lZGlcIixcclxuICAgICAgU3VjY2VzczogXCJTZW5rcm9uaXphc3lvbiBiYcWfYXLEsWzEsVwiLFxyXG4gICAgICBGYWlsOiBcIlNlbmtyb25pemFzeW9uIGJhxZ9hcsSxc8SxelwiLFxyXG5cclxuICAgICAgQ29uZmlnOiB7XHJcbiAgICAgICAgTW9kYWw6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkJ1bHV0IFNlbmtyb25pemFzeW9udSBZYXDEsWxhbmTEsXJcIixcclxuICAgICAgICAgIENoZWNrOiBcIkt1bGxhbsSxbGFiaWxpcmxpxJ9pIGtvbnRyb2wgZXRcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFN5bmNUeXBlOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJTZW5rcm9uaXphc3lvbiBUw7xyw7xcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlRlcmNpaCBldHRpxJ9pbml6IHNlbmtyb25pemFzeW9uIHN1bnVjdXN1bnUgc2XDp2luXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQcm94eToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiUHJveHkneWkgRXRraW5sZcWfdGlyXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgICAgXCJUYXJhecSxY8SxZGEgc2Vua3Jvbml6ZSBlZGVya2VuIHByb3h5J3lpIGV0a2lubGXFn3RpcmluLCBha3NpIHRha2RpcmRlIMOnYXByYXoga2F5bmFrIGvEsXPEsXRsYW1hbGFyxLF5bGEga2FyxZ/EsWxhxZ9hYmlsaXJzaW5pelwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgUHJveHlVcmw6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlByb3h5IEFkcmVzaVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiU2FkZWNlIGJ1IHByb2pleWUgYWl0IMOnYXByYXoga2F5bmFrIHByb3h5IGnDp2luXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgV2ViRGF2OiB7XHJcbiAgICAgICAgICBFbmRwb2ludDogXCJXZWJEQVYgQWRyZXNpXCIsXHJcbiAgICAgICAgICBVc2VyTmFtZTogXCJLdWxsYW7EsWPEsSBBZMSxXCIsXHJcbiAgICAgICAgICBQYXNzd29yZDogXCLFnmlmcmVcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBVcFN0YXNoOiB7XHJcbiAgICAgICAgICBFbmRwb2ludDogXCJVcFN0YXNoIFJlZGlzIFJFU1QgVXJsXCIsXHJcbiAgICAgICAgICBVc2VyTmFtZTogXCJZZWRla2xlbWUgQWTEsVwiLFxyXG4gICAgICAgICAgUGFzc3dvcmQ6IFwiVXBTdGFzaCBSZWRpcyBSRVNUIFRva2VuXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuXHJcbiAgICAgIExvY2FsU3RhdGU6IFwiWWVyZWwgVmVyaVwiLFxyXG4gICAgICBPdmVydmlldzogKG92ZXJ2aWV3OiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gYCR7b3ZlcnZpZXcuY2hhdH0ga29udcWfbWEsICR7b3ZlcnZpZXcubWVzc2FnZX0gbWVzYWosICR7b3ZlcnZpZXcucHJvbXB0fSBpcHVjdSwgJHtvdmVydmlldy5tYXNrfSBtYXNrZWA7XHJcbiAgICAgIH0sXHJcbiAgICAgIEltcG9ydEZhaWxlZDogXCLEsMOnZXJpIGFrdGFybWEgYmHFn2FyxLFzxLF6XCIsXHJcbiAgICB9LFxyXG4gICAgTWFzazoge1xyXG4gICAgICBTcGxhc2g6IHtcclxuICAgICAgICBUaXRsZTogXCJNYXNrZSBCYcWfbGFuZ8Sxw6cgU2F5ZmFzxLFcIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiWWVuaSBzb2hiZXQgYmHFn2xhdMSxbGTEscSfxLFuZGEgbWFza2UgYmHFn2xhbmfEscOnIHNheWZhc8SxbsSxIGfDtnN0ZXJcIixcclxuICAgICAgfSxcclxuICAgICAgQnVpbHRpbjoge1xyXG4gICAgICAgIFRpdGxlOiBcIlllcmxlxZ9payBNYXNrZWxlcmkgR2l6bGVcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJUw7xtIG1hc2tlbGVyIGxpc3Rlc2luZGVraSB5ZXJsZcWfaWsgbWFza2VsZXJpIGdpemxlXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgUHJvbXB0OiB7XHJcbiAgICAgIERpc2FibGU6IHtcclxuICAgICAgICBUaXRsZTogXCLEsHB1Y3UgVGFtYW1sYW1hecSxIERldnJlIETEscWfxLEgQsSxcmFrXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIkdpcmnFnyBrdXR1c3VudW4gYmHFn8SxbmEgLyB5YXphcmFrIG90b21hdGlrIHRhbWFtbGFtYXnEsSB0ZXRpa2xlXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIExpc3Q6IFwiw5Z6ZWxsZcWfdGlyaWxtacWfIMSwcHVjdSBMaXN0ZXNpXCIsXHJcbiAgICAgIExpc3RDb3VudDogKGJ1aWx0aW46IG51bWJlciwgY3VzdG9tOiBudW1iZXIpID0+XHJcbiAgICAgICAgYFllcmxlxZ9payAke2J1aWx0aW59IHRhbmUsIGt1bGxhbsSxY8SxIHRhbsSxbWzEsSAke2N1c3RvbX0gdGFuZWAsXHJcbiAgICAgIEVkaXQ6IFwiRMO8emVubGVcIixcclxuICAgICAgTW9kYWw6IHtcclxuICAgICAgICBUaXRsZTogXCLEsHB1Y3UgTGlzdGVzaVwiLFxyXG4gICAgICAgIEFkZDogXCJZZW5pIEVrbGVcIixcclxuICAgICAgICBTZWFyY2g6IFwixLBwdWN1IEFyYVwiLFxyXG4gICAgICB9LFxyXG4gICAgICBFZGl0TW9kYWw6IHtcclxuICAgICAgICBUaXRsZTogXCLEsHB1Y3UgRMO8emVubGVcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBIaXN0b3J5Q291bnQ6IHtcclxuICAgICAgVGl0bGU6IFwiRWtsaSBHZcOnbWnFnyBNZXNhaiBTYXnEsXPEsVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJIZXIgaXN0ZWt0ZSB0YcWfxLFuYW4gZ2XDp21pxZ8gbWVzYWogc2F5xLFzxLFcIixcclxuICAgIH0sXHJcbiAgICBDb21wcmVzc1RocmVzaG9sZDoge1xyXG4gICAgICBUaXRsZTogXCJHZcOnbWnFnyBNZXNhaiBVenVubHXEn3UgU8Sxa8SxxZ90xLFybWEgRcWfacSfaVwiLFxyXG4gICAgICBTdWJUaXRsZTpcclxuICAgICAgICBcIlPEsWvEscWfdMSxcsSxbG1hbcSxxZ8gZ2XDp21pxZ8gbWVzYWogYnUgZGXEn2VyaSBhxZ90xLHEn8SxbmRhIHPEsWvEscWfdMSxcm1hIHlhcMSxbMSxclwiLFxyXG4gICAgfSxcclxuXHJcbiAgICBVc2FnZToge1xyXG4gICAgICBUaXRsZTogXCJCYWtpeWUgU29yZ3VsYW1hXCIsXHJcbiAgICAgIFN1YlRpdGxlKHVzZWQ6IGFueSwgdG90YWw6IGFueSkge1xyXG4gICAgICAgIHJldHVybiBgQnUgYXkga3VsbGFuxLFsYW4gJCR7dXNlZH0sIHRvcGxhbSBhYm9uZWxpayDDvGNyZXRpICQke3RvdGFsfWA7XHJcbiAgICAgIH0sXHJcbiAgICAgIElzQ2hlY2tpbmc6IFwiS29udHJvbCBlZGlsaXlvcuKAplwiLFxyXG4gICAgICBDaGVjazogXCJZZW5pZGVuIGtvbnRyb2wgZXRcIixcclxuICAgICAgTm9BY2Nlc3M6XHJcbiAgICAgICAgXCJCYWtpeWUgZ8O2csO8bnTDvGxlbWVrIGnDp2luIEFQSSBBbmFodGFyxLEgdmV5YSBlcmnFn2ltIMWfaWZyZXNpIGdpcmluXCIsXHJcbiAgICB9LFxyXG5cclxuICAgIEFjY2Vzczoge1xyXG4gICAgICBTYWFzU3RhcnQ6IHtcclxuICAgICAgICBUaXRsZTogXCJOZXh0Q2hhdCBBSSBrdWxsYW7EsW5cIixcclxuICAgICAgICBMYWJlbDogXCIoRW4gbWFsaXlldCBldGtpbiDDp8O2esO8bSlcIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiTmV4dENoYXQgdGFyYWbEsW5kYW4gcmVzbWkgb2xhcmFrIHnDtm5ldGlsbWVrdGVkaXIsIHlhcMSxbGFuZMSxcm1hIG9sbWFkYW4gaGVtZW4ga3VsbGFuxLFtYSBoYXrEsXJkxLFyLCBPcGVuQUkgbzEsIEdQVC00bywgQ2xhdWRlLTMuNSBnaWJpIGVuIHNvbiBiw7x5w7xrIG1vZGVsbGVyaSBkZXN0ZWtsZXJcIixcclxuICAgICAgICBDaGF0Tm93OiBcIsWeaW1kaSBzb2hiZXQgZXRcIixcclxuICAgICAgfSxcclxuXHJcbiAgICAgIEFjY2Vzc0NvZGU6IHtcclxuICAgICAgICBUaXRsZTogXCJFcmnFn2ltIMWeaWZyZXNpXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiWcO2bmV0aWNpIMWfaWZyZWxpIGVyacWfaW1pIGV0a2lubGXFn3RpcmRpXCIsXHJcbiAgICAgICAgUGxhY2Vob2xkZXI6IFwiRXJpxZ9pbSDFn2lmcmVuaXppIGdpcmluXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEN1c3RvbUVuZHBvaW50OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiw5Z6ZWxsZcWfdGlyaWxtacWfIEFQSVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCLDlnplbGxlxZ90aXJpbG1pxZ8gQXp1cmUgdmV5YSBPcGVuQUkgaGl6bWV0aSBrdWxsYW5tYWsgaXN0ZXIgbWlzaW5pej9cIixcclxuICAgICAgfSxcclxuICAgICAgUHJvdmlkZXI6IHtcclxuICAgICAgICBUaXRsZTogXCJNb2RlbCBTYcSfbGF5xLFjxLFzxLFcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJGYXJrbMSxIHNhxJ9sYXnEsWPEsWxhcmEgZ2XDp2nFnyB5YXDEsW5cIixcclxuICAgICAgfSxcclxuICAgICAgT3BlbkFJOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEkgQW5haHRhcsSxXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgICAgXCLDlnplbGxlxZ90aXJpbG1pxZ8gT3BlbkFJIEFuYWh0YXLEsSBrdWxsYW5hcmFrIMWfaWZyZWxpIGVyacWfaW0ga8Sxc8SxdGxhbWFsYXLEsW7EsSBhdGxhecSxblwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiT3BlbkFJIEFQSSBBbmFodGFyxLFcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIEFkcmVzaVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiVmFyc2F5xLFsYW4gYWRyZXMgZMSxxZ/EsW5kYSwgaHR0cChzKTovLyBpw6dlcm1lbGlkaXJcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBBenVyZToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIEFuYWh0YXLEsVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiw5Z6ZWxsZcWfdGlyaWxtacWfIEF6dXJlIEFuYWh0YXLEsSBrdWxsYW5hcmFrIMWfaWZyZWxpIGVyacWfaW0ga8Sxc8SxdGxhbWFsYXLEsW7EsSBhdGxhecSxblwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQXp1cmUgQVBJIEFuYWh0YXLEsVwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEkgQWRyZXNpXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLDlnJuZWs6XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgQXBpVmVyaW9uOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEkgVmVyc2l5b251IChhenVyZSBhcGkgdmVyc2lvbilcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIkJlbGlybGkgYmlyIHZlcnNpeW9udSBzZcOnaW5cIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBBbnRocm9waWM6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSSBBbmFodGFyxLFcIixcclxuICAgICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgICBcIsOWemVsbGXFn3RpcmlsbWnFnyBBbnRocm9waWMgQW5haHRhcsSxIGt1bGxhbmFyYWsgxZ9pZnJlbGkgZXJpxZ9pbSBrxLFzxLF0bGFtYWxhcsSxbsSxIGF0bGF5xLFuXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJBbnRocm9waWMgQVBJIEFuYWh0YXLEsVwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEkgQWRyZXNpXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLDlnJuZWs6XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgQXBpVmVyaW9uOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEkgVmVyc2l5b251IChjbGF1ZGUgYXBpIHZlcnNpb24pXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJCZWxpcmxpIGJpciBBUEkgdmVyc2l5b251bnUgc2XDp2luXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgR29vZ2xlOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEkgQW5haHRhcsSxXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJHb29nbGUgQUknZGVuIEFQSSBBbmFodGFyxLFuxLF6xLEgYWzEsW5cIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkdvb2dsZSBBSSBTdHVkaW8gQVBJIEFuYWh0YXLEsW7EsXrEsSBnaXJpblwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJVw6cgTm9rdGEgQWRyZXNpXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLDlnJuZWs6XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgQXBpVmVyc2lvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIFZlcnNpeW9udSAoc2FkZWNlIGdlbWluaS1wcm8pXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJCZWxpcmxpIGJpciBBUEkgdmVyc2l5b251bnUgc2XDp2luXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBHb29nbGVTYWZldHlTZXR0aW5nczoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiR29vZ2xlIEfDvHZlbmxpayBGaWx0cmVsZW1lIFNldml5ZXNpXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLEsMOnZXJpayBmaWx0cmVsZW1lIHNldml5ZXNpbmkgYXlhcmxhecSxblwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEJhaWR1OiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEkgQW5haHRhcsSxXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLDlnplbGxlxZ90aXJpbG1pxZ8gQmFpZHUgQVBJIEFuYWh0YXLEsSBrdWxsYW7EsW5cIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkJhaWR1IEFQSSBBbmFodGFyxLFcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFNlY3JldEtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiU2VjcmV0IEFuYWh0YXLEsVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiw5Z6ZWxsZcWfdGlyaWxtacWfIEJhaWR1IFNlY3JldCBBbmFodGFyxLEga3VsbGFuxLFuXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJCYWlkdSBTZWNyZXQgQW5haHRhcsSxXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIEFkcmVzaVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiw5Z6ZWxsZcWfdGlyaWxtacWfIHlhcMSxbGFuZMSxcm1hIGnDp2luIC5lbnYneWUgZ2lkaW5cIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBCeXRlRGFuY2U6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSSBBbmFodGFyxLFcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIsOWemVsbGXFn3RpcmlsbWnFnyBCeXRlRGFuY2UgQVBJIEFuYWh0YXLEsSBrdWxsYW7EsW5cIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIkJ5dGVEYW5jZSBBUEkgQW5haHRhcsSxXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIEFkcmVzaVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiw5ZybmVrOlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEFsaWJhYmE6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSSBBbmFodGFyxLFcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIsOWemVsbGXFn3RpcmlsbWnFnyBBbGliYWJhIENsb3VkIEFQSSBBbmFodGFyxLEga3VsbGFuxLFuXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJBbGliYWJhIENsb3VkIEFQSSBBbmFodGFyxLFcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEkgQWRyZXNpXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLDlnJuZWs6XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQ3VzdG9tTW9kZWw6IHtcclxuICAgICAgICBUaXRsZTogXCLDlnplbGxlxZ90aXJpbG1pxZ8gTW9kZWwgQWTEsVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgXCLDlnplbGxlxZ90aXJpbG1pxZ8gbW9kZWwgc2XDp2VuZWtsZXJpIGVrbGV5aW4sIMSwbmdpbGl6Y2UgdmlyZ8O8bCBpbGUgYXnEsXLEsW5cIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcblxyXG4gICAgTW9kZWw6IFwiTW9kZWwgKG1vZGVsKVwiLFxyXG4gICAgQ29tcHJlc3NNb2RlbDoge1xyXG4gICAgICBUaXRsZTogXCJTxLFrxLHFn3TEsXJtYSBNb2RlbGlcIixcclxuICAgICAgU3ViVGl0bGU6IFwiR2XDp21pxZ9pIHPEsWvEscWfdMSxcm1hayBpw6dpbiBrdWxsYW7EsWxhbiBtb2RlbFwiLFxyXG4gICAgfSxcclxuICAgIFRlbXBlcmF0dXJlOiB7XHJcbiAgICAgIFRpdGxlOiBcIlJhc3RnZWxlbGlrICh0ZW1wZXJhdHVyZSlcIixcclxuICAgICAgU3ViVGl0bGU6IFwiRGXEn2VyIGFydHTEsWvDp2EgeWFuxLF0IGRhaGEgcmFzdGdlbGUgb2x1clwiLFxyXG4gICAgfSxcclxuICAgIFRvcFA6IHtcclxuICAgICAgVGl0bGU6IFwiTsO8a2xlZXIgw5ZybmVrbGVtZSAodG9wX3ApXCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwiUmFzdGdlbGVsacSfZSBiZW56ZXIsIGFuY2FrIHJhc3RnZWxlbGlrIGlsZSBiaXJsaWt0ZSBkZcSfacWfdGlybWV5aW5cIixcclxuICAgIH0sXHJcbiAgICBNYXhUb2tlbnM6IHtcclxuICAgICAgVGl0bGU6IFwiVGVrIFlhbsSxdCBMaW1pdGkgKG1heF90b2tlbnMpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIlRlayBldGtpbGXFn2ltZGUga3VsbGFuxLFsYW4gbWFrc2ltdW0gVG9rZW4gc2F5xLFzxLFcIixcclxuICAgIH0sXHJcbiAgICBQcmVzZW5jZVBlbmFsdHk6IHtcclxuICAgICAgVGl0bGU6IFwiS29udSBUYXplbGnEn2kgKHByZXNlbmNlX3BlbmFsdHkpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIkRlxJ9lciBhcnR0xLFrw6dhLCB5ZW5pIGtvbnVsYXJhIGdlw6dpxZ8gb2xhc8SxbMSxxJ/EsSBhcnRhclwiLFxyXG4gICAgfSxcclxuICAgIEZyZXF1ZW5jeVBlbmFsdHk6IHtcclxuICAgICAgVGl0bGU6IFwiRnJla2FucyBDZXphc8SxIChmcmVxdWVuY3lfcGVuYWx0eSlcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJEZcSfZXIgYXJ0dMSxa8OnYSwgdGVrcmFyIGVkZW4ga2VsaW1lbGVyaW4gYXphbG1hc8SxIG9sYXPEsWzEscSfxLEgYXJ0YXJcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBTdG9yZToge1xyXG4gICAgRGVmYXVsdFRvcGljOiBcIlllbmkgU29oYmV0XCIsXHJcbiAgICBCb3RIZWxsbzogXCJTaXplIG5hc8SxbCB5YXJkxLFtY8SxIG9sYWJpbGlyaW0/XCIsXHJcbiAgICBFcnJvcjogXCJCaXIgaGF0YSBvbHXFn3R1LCBsw7x0ZmVuIGRhaGEgc29ucmEgdGVrcmFyIGRlbmV5aW5cIixcclxuICAgIFByb21wdDoge1xyXG4gICAgICBIaXN0b3J5OiAoY29udGVudDogc3RyaW5nKSA9PiBcIkJ1LCBnZcOnbWnFnyBzb2hiZXRpbiDDtnpldGk6IFwiICsgY29udGVudCxcclxuICAgICAgVG9waWM6XHJcbiAgICAgICAgXCJCdSBjw7xtbGVuaW4gZMO2cnQgaWxhIGJlxZ8ga2VsaW1lbGlrIGvEsXNhIGJhxZ9sxLHEn8SxbsSxIGRvxJ9ydWRhbiB2ZXJpbiwgYcOnxLFrbGFtYSB5YXBtYXnEsW4sIG5va3RhbGFtYSBpxZ9hcmV0aSwgZHV5Z3Uga2VsaW1lc2kgdmV5YSBmYXpsYSBtZXRpbiBla2xlbWV5aW4sIGthbMSxbiB5YXBtYXnEsW4uIEJhxZ9sxLFrIHlva3NhLCBkb8SfcnVkYW4gJ1NvaGJldCcgeWFuxLF0xLFuxLEgdmVyaW4uXCIsXHJcbiAgICAgIFN1bW1hcml6ZTpcclxuICAgICAgICBcIlNvaGJldCBpw6dlcmnEn2luaSBrxLFzYWNhIMO2emV0bGV5aW4sIGJ1IMO2emV0IHNvbnJha2kgYmHEn2xhbSBpcHVjdSBvbGFyYWsga3VsbGFuxLFsYWNha3TEsXIsIDIwMCBrZWxpbWUgacOnaW5kZSB0dXR1blwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIENvcHk6IHtcclxuICAgIFN1Y2Nlc3M6IFwiUGFub3lhIHlhesSxbGTEsVwiLFxyXG4gICAgRmFpbGVkOiBcIktvcHlhbGFtYSBiYcWfYXLEsXPEsXosIGzDvHRmZW4gcGFub3lhIGVyacWfaW0gaXpuaSB2ZXJpblwiLFxyXG4gIH0sXHJcbiAgRG93bmxvYWQ6IHtcclxuICAgIFN1Y2Nlc3M6IFwixLDDp2VyaWsgZGl6aW5pbml6ZSBpbmRpcmlsZGkuXCIsXHJcbiAgICBGYWlsZWQ6IFwixLBuZGlybWUgYmHFn2FyxLFzxLF6LlwiLFxyXG4gIH0sXHJcbiAgQ29udGV4dDoge1xyXG4gICAgVG9hc3Q6ICh4OiBhbnkpID0+IGAke3h9IHRhbmUgw7ZuY2VkZW4gdGFuxLFtbMSxIGlwdWN1IGnDp2VyaXlvcmAsXHJcbiAgICBFZGl0OiBcIk1ldmN1dCBzb2hiZXQgYXlhcmxhcsSxXCIsXHJcbiAgICBBZGQ6IFwiWWVuaSBiaXIgc29oYmV0IGVrbGVcIixcclxuICAgIENsZWFyOiBcIkJhxJ9sYW0gdGVtaXpsZW5kaVwiLFxyXG4gICAgUmV2ZXJ0OiBcIkJhxJ9sYW3EsSBnZXJpIGdldGlyXCIsXHJcbiAgfSxcclxuICBQbHVnaW46IHtcclxuICAgIE5hbWU6IFwiRWtsZW50aVwiLFxyXG4gIH0sXHJcbiAgRmluZVR1bmVkOiB7XHJcbiAgICBTeXNtZXNzYWdlOiBcIlNlbiBiaXIgYXNpc3RhbnPEsW5cIixcclxuICB9LFxyXG4gIFNlYXJjaENoYXQ6IHtcclxuICAgIE5hbWU6IFwiQXJhXCIsXHJcbiAgICBQYWdlOiB7XHJcbiAgICAgIFRpdGxlOiBcIlNvaGJldCBnZcOnbWnFn2luaSBhcmFcIixcclxuICAgICAgU2VhcmNoOiBcIkFyYW1hIGFuYWh0YXIga2VsaW1lbGVyaW5pIGdpcmluXCIsXHJcbiAgICAgIE5vUmVzdWx0OiBcIlNvbnXDpyBidWx1bmFtYWTEsVwiLFxyXG4gICAgICBOb0RhdGE6IFwiVmVyaSB5b2tcIixcclxuICAgICAgTG9hZGluZzogXCJZw7xrbGVuaXlvclwiLFxyXG5cclxuICAgICAgU3ViVGl0bGU6IChjb3VudDogbnVtYmVyKSA9PiBgJHtjb3VudH0gc29udcOnIGJ1bHVuZHVgLFxyXG4gICAgfSxcclxuICAgIEl0ZW06IHtcclxuICAgICAgVmlldzogXCJHw7Zyw7xudMO8bGVcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBNYXNrOiB7XHJcbiAgICBOYW1lOiBcIk1hc2tlXCIsXHJcbiAgICBQYWdlOiB7XHJcbiAgICAgIFRpdGxlOiBcIsOWbmNlZGVuIFRhbsSxbWzEsSBLYXJha3RlciBNYXNrZWxlcmlcIixcclxuICAgICAgU3ViVGl0bGU6IChjb3VudDogbnVtYmVyKSA9PlxyXG4gICAgICAgIGAke2NvdW50fSB0YW5lIMO2bmNlZGVuIHRhbsSxbWzEsSBrYXJha3RlciB0YW7EsW3EsWAsXHJcbiAgICAgIFNlYXJjaDogXCJLYXJha3RlciBtYXNrZXNpIGFyYVwiLFxyXG4gICAgICBDcmVhdGU6IFwiWWVuaSBvbHXFn3R1clwiLFxyXG4gICAgfSxcclxuICAgIEl0ZW06IHtcclxuICAgICAgSW5mbzogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50fSB0YW5lIMO2bmNlZGVuIHRhbsSxbWzEsSBzb2hiZXQgacOnZXJpeW9yYCxcclxuICAgICAgQ2hhdDogXCJTb2hiZXRcIixcclxuICAgICAgVmlldzogXCJHw7Zyw7xudMO8bGVcIixcclxuICAgICAgRWRpdDogXCJEw7x6ZW5sZVwiLFxyXG4gICAgICBEZWxldGU6IFwiU2lsXCIsXHJcbiAgICAgIERlbGV0ZUNvbmZpcm06IFwiU2lsbWVrIGlzdGVkacSfaW5pemRlbiBlbWluIG1pc2luaXo/XCIsXHJcbiAgICB9LFxyXG4gICAgRWRpdE1vZGFsOiB7XHJcbiAgICAgIFRpdGxlOiAocmVhZG9ubHk6IGJvb2xlYW4pID0+XHJcbiAgICAgICAgYMOWbmNlZGVuIFRhbsSxbWzEsSBNYXNrZXlpIETDvHplbmxlICR7cmVhZG9ubHkgPyBcIiAoU2FsdCBPa3VudXIpXCIgOiBcIlwifWAsXHJcbiAgICAgIERvd25sb2FkOiBcIsOWbmNlZGVuIFRhbsSxbWzEsSBNYXNrZXlpIMSwbmRpclwiLFxyXG4gICAgICBDbG9uZTogXCLDlm5jZWRlbiBUYW7EsW1sxLEgTWFza2V5aSBLb3B5YWxhXCIsXHJcbiAgICB9LFxyXG4gICAgQ29uZmlnOiB7XHJcbiAgICAgIEF2YXRhcjogXCJLYXJha3RlciBQcm9maWwgUmVzbWlcIixcclxuICAgICAgTmFtZTogXCJLYXJha3RlciBBZMSxXCIsXHJcbiAgICAgIFN5bmM6IHtcclxuICAgICAgICBUaXRsZTogXCJLw7xyZXNlbCBBeWFybGFyxLEgS3VsbGFuXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiTWV2Y3V0IHNvaGJldCBrw7xyZXNlbCBtb2RlbCBheWFybGFyxLFuxLEgbcSxIGt1bGxhbmFjYWs/XCIsXHJcbiAgICAgICAgQ29uZmlybTpcclxuICAgICAgICAgIFwiTWV2Y3V0IHNvaGJldGluIMO2emVsbGXFn3RpcmlsbWnFnyBheWFybGFyxLEgb3RvbWF0aWsgb2xhcmFrIMO8emVyaW5lIHlhesSxbGFjYWt0xLFyLCBrw7xyZXNlbCBheWFybGFyxLEgZXRraW5sZcWfdGlybWVrIGlzdGVkacSfaW5pemRlbiBlbWluIG1pc2luaXo/XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEhpZGVDb250ZXh0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwiw5ZuY2VkZW4gVGFuxLFtbMSxIFNvaGJldGxlcmkgR2l6bGVcIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiR2l6bGVuZGnEn2luZGUsIMO2bmNlZGVuIHRhbsSxbWzEsSBzb2hiZXRsZXIgc29oYmV0IGVrcmFuxLFuZGEgZ8O2csO8bm1leWVjZWtcIixcclxuICAgICAgfSxcclxuICAgICAgU2hhcmU6IHtcclxuICAgICAgICBUaXRsZTogXCJCdSBNYXNrZXlpIFBheWxhxZ9cIixcclxuICAgICAgICBTdWJUaXRsZTogXCJCdSBtYXNrZW5pbiBkb8SfcnVkYW4gYmHEn2xhbnTEsXPEsW7EsSBvbHXFn3R1clwiLFxyXG4gICAgICAgIEFjdGlvbjogXCJCYcSfbGFudMSxecSxIEtvcHlhbGFcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBOZXdDaGF0OiB7XHJcbiAgICBSZXR1cm46IFwiR2VyaSBkw7ZuXCIsXHJcbiAgICBTa2lwOiBcIkRvxJ9ydWRhbiBiYcWfbGFcIixcclxuICAgIE5vdFNob3c6IFwiQmlyIGRhaGEgZ8O2c3Rlcm1lXCIsXHJcbiAgICBDb25maXJtTm9TaG93OlxyXG4gICAgICBcIkRldnJlIGTEscWfxLEgYsSxcmFrbWFrIGlzdGVkacSfaW5pemRlbiBlbWluIG1pc2luaXo/IERldnJlIGTEscWfxLEgYsSxcmFrdMSxa3RhbiBzb25yYSBheWFybGFyZGFuIHRla3JhciBldGtpbmxlxZ90aXJlYmlsaXJzaW5pei5cIixcclxuICAgIFRpdGxlOiBcIkJpciBNYXNrZSBTZcOnaW5cIixcclxuICAgIFN1YlRpdGxlOlxyXG4gICAgICBcIsWeaW1kaSBiYcWfbGF5xLFuIHZlIG1hc2tlbmluIGFya2FzxLFuZGFraSB6aWhpbmxlIGV0a2lsZcWfaW1kZSBidWx1bnVuXCIsXHJcbiAgICBNb3JlOiBcIlTDvG3DvG7DvCBHw7ZyXCIsXHJcbiAgfSxcclxuXHJcbiAgVVJMQ29tbWFuZDoge1xyXG4gICAgQ29kZTogXCJCYcSfbGFudMSxZGEgZXJpxZ9pbSBrb2R1IGJ1bHVuZHUsIG90b21hdGlrIG9sYXJhayBkb2xkdXJ1bHN1biBtdT9cIixcclxuICAgIFNldHRpbmdzOlxyXG4gICAgICBcIkJhxJ9sYW50xLFkYSDDtm5jZWRlbiB0YW7EsW1sxLEgYXlhcmxhciBidWx1bmR1LCBvdG9tYXRpayBvbGFyYWsgZG9sZHVydWxzdW4gbXU/XCIsXHJcbiAgfSxcclxuXHJcbiAgVUk6IHtcclxuICAgIENvbmZpcm06IFwiT25heWxhXCIsXHJcbiAgICBDYW5jZWw6IFwixLBwdGFsIGV0XCIsXHJcbiAgICBDbG9zZTogXCJLYXBhdFwiLFxyXG4gICAgQ3JlYXRlOiBcIlllbmkgb2x1xZ90dXJcIixcclxuICAgIEVkaXQ6IFwiRMO8emVubGVcIixcclxuICAgIEV4cG9ydDogXCJExLHFn2EgQWt0YXJcIixcclxuICAgIEltcG9ydDogXCLEsMOnZSBBa3RhclwiLFxyXG4gICAgU3luYzogXCJTZW5rcm9uaXplIGV0XCIsXHJcbiAgICBDb25maWc6IFwiWWFwxLFsYW5kxLFyXCIsXHJcbiAgfSxcclxuICBFeHBvcnRlcjoge1xyXG4gICAgRGVzY3JpcHRpb246IHtcclxuICAgICAgVGl0bGU6IFwiU2FkZWNlIGJhxJ9sYW0gdGVtaXpsZW5kaWt0ZW4gc29ucmFraSBtZXNhamxhciBnw7ZzdGVyaWxlY2VrdGlyXCIsXHJcbiAgICB9LFxyXG4gICAgTW9kZWw6IFwiTW9kZWxcIixcclxuICAgIE1lc3NhZ2VzOiBcIk1lc2FqbGFyXCIsXHJcbiAgICBUb3BpYzogXCJLb251XCIsXHJcbiAgICBUaW1lOiBcIlphbWFuXCIsXHJcbiAgfSxcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHRyO1xyXG4iXSwibmFtZXMiOlsiU3VibWl0S2V5IiwiZ2V0Q2xpZW50Q29uZmlnIiwiU0FBU19DSEFUX1VUTV9VUkwiLCJpc0FwcCIsInRyIiwiV0lQIiwiRXJyb3IiLCJVbmF1dGhvcml6ZWQiLCJBdXRoIiwiVGl0bGUiLCJUaXBzIiwiU3ViVGlwcyIsIklucHV0IiwiQ29uZmlybSIsIkxhdGVyIiwiUmV0dXJuIiwiU2Fhc1RpcHMiLCJUb3BUaXBzIiwiQ2hhdEl0ZW0iLCJDaGF0SXRlbUNvdW50IiwiY291bnQiLCJDaGF0IiwiU3ViVGl0bGUiLCJFZGl0TWVzc2FnZSIsIlRvcGljIiwiQWN0aW9ucyIsIkNoYXRMaXN0IiwiQ29tcHJlc3NlZEhpc3RvcnkiLCJFeHBvcnQiLCJDb3B5IiwiU3RvcCIsIlJldHJ5IiwiUGluIiwiUGluVG9hc3RDb250ZW50IiwiUGluVG9hc3RBY3Rpb24iLCJEZWxldGUiLCJFZGl0IiwiUmVmcmVzaFRpdGxlIiwiUmVmcmVzaFRvYXN0IiwiQ29tbWFuZHMiLCJuZXciLCJuZXdtIiwibmV4dCIsInByZXYiLCJjbGVhciIsImRlbCIsIklucHV0QWN0aW9ucyIsIlRvQm90dG9tIiwiVGhlbWUiLCJhdXRvIiwibGlnaHQiLCJkYXJrIiwiUHJvbXB0IiwiTWFza3MiLCJDbGVhciIsIlNldHRpbmdzIiwiVXBsb2FkSW1hZ2UiLCJSZW5hbWUiLCJUeXBpbmciLCJzdWJtaXRLZXkiLCJpbnB1dEhpbnRzIiwiU3RyaW5nIiwiRW50ZXIiLCJTZW5kIiwiQ29uZmlnIiwiUmVzZXQiLCJTYXZlQXMiLCJJc0NvbnRleHQiLCJEb3dubG9hZCIsIlNoYXJlIiwiTWVzc2FnZUZyb21Zb3UiLCJNZXNzYWdlRnJvbUNoYXRHUFQiLCJGb3JtYXQiLCJJbmNsdWRlQ29udGV4dCIsIlN0ZXBzIiwiU2VsZWN0IiwiUHJldmlldyIsIkltYWdlIiwiVG9hc3QiLCJNb2RhbCIsIlNlYXJjaCIsIkFsbCIsIkxhdGVzdCIsIk1lbW9yeSIsIkVtcHR5Q29udGVudCIsIlJlc2V0Q29uZmlybSIsIkhvbWUiLCJOZXdDaGF0IiwiRGVsZXRlQ2hhdCIsIkRlbGV0ZVRvYXN0IiwiUmV2ZXJ0IiwiRGFuZ2VyIiwiQWN0aW9uIiwiTGFuZyIsIk5hbWUiLCJBdmF0YXIiLCJGb250U2l6ZSIsIkZvbnRGYW1pbHkiLCJQbGFjZWhvbGRlciIsIkluamVjdFN5c3RlbVByb21wdHMiLCJJbnB1dFRlbXBsYXRlIiwiVXBkYXRlIiwiVmVyc2lvbiIsIngiLCJJc0xhdGVzdCIsIkNoZWNrVXBkYXRlIiwiSXNDaGVja2luZyIsIkZvdW5kVXBkYXRlIiwiR29Ub1VwZGF0ZSIsIlNlbmRLZXkiLCJUaWdodEJvcmRlciIsIlNlbmRQcmV2aWV3QnViYmxlIiwiQXV0b0dlbmVyYXRlVGl0bGUiLCJTeW5jIiwiQ2xvdWRTdGF0ZSIsIk5vdFN5bmNZZXQiLCJTdWNjZXNzIiwiRmFpbCIsIkNoZWNrIiwiU3luY1R5cGUiLCJQcm94eSIsIlByb3h5VXJsIiwiV2ViRGF2IiwiRW5kcG9pbnQiLCJVc2VyTmFtZSIsIlBhc3N3b3JkIiwiVXBTdGFzaCIsIkxvY2FsU3RhdGUiLCJPdmVydmlldyIsIm92ZXJ2aWV3IiwiY2hhdCIsIm1lc3NhZ2UiLCJwcm9tcHQiLCJtYXNrIiwiSW1wb3J0RmFpbGVkIiwiTWFzayIsIlNwbGFzaCIsIkJ1aWx0aW4iLCJEaXNhYmxlIiwiTGlzdCIsIkxpc3RDb3VudCIsImJ1aWx0aW4iLCJjdXN0b20iLCJBZGQiLCJFZGl0TW9kYWwiLCJIaXN0b3J5Q291bnQiLCJDb21wcmVzc1RocmVzaG9sZCIsIlVzYWdlIiwidXNlZCIsInRvdGFsIiwiTm9BY2Nlc3MiLCJBY2Nlc3MiLCJTYWFzU3RhcnQiLCJMYWJlbCIsIkNoYXROb3ciLCJBY2Nlc3NDb2RlIiwiQ3VzdG9tRW5kcG9pbnQiLCJQcm92aWRlciIsIk9wZW5BSSIsIkFwaUtleSIsIkF6dXJlIiwiQXBpVmVyaW9uIiwiQW50aHJvcGljIiwiR29vZ2xlIiwiQXBpVmVyc2lvbiIsIkdvb2dsZVNhZmV0eVNldHRpbmdzIiwiQmFpZHUiLCJTZWNyZXRLZXkiLCJCeXRlRGFuY2UiLCJBbGliYWJhIiwiQ3VzdG9tTW9kZWwiLCJNb2RlbCIsIkNvbXByZXNzTW9kZWwiLCJUZW1wZXJhdHVyZSIsIlRvcFAiLCJNYXhUb2tlbnMiLCJQcmVzZW5jZVBlbmFsdHkiLCJGcmVxdWVuY3lQZW5hbHR5IiwiU3RvcmUiLCJEZWZhdWx0VG9waWMiLCJCb3RIZWxsbyIsIkhpc3RvcnkiLCJjb250ZW50IiwiU3VtbWFyaXplIiwiRmFpbGVkIiwiQ29udGV4dCIsIlBsdWdpbiIsIkZpbmVUdW5lZCIsIlN5c21lc3NhZ2UiLCJTZWFyY2hDaGF0IiwiUGFnZSIsIk5vUmVzdWx0IiwiTm9EYXRhIiwiTG9hZGluZyIsIkl0ZW0iLCJWaWV3IiwiQ3JlYXRlIiwiSW5mbyIsIkRlbGV0ZUNvbmZpcm0iLCJyZWFkb25seSIsIkNsb25lIiwiSGlkZUNvbnRleHQiLCJTa2lwIiwiTm90U2hvdyIsIkNvbmZpcm1Ob1Nob3ciLCJNb3JlIiwiVVJMQ29tbWFuZCIsIkNvZGUiLCJVSSIsIkNhbmNlbCIsIkNsb3NlIiwiSW1wb3J0IiwiRXhwb3J0ZXIiLCJEZXNjcmlwdGlvbiIsIk1lc3NhZ2VzIiwiVGltZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/locales/tr.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/locales/tw.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/locales/tw.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _store_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../store/config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n\n\n\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_0__.getClientConfig)()?.isApp;\nconst tw = {\n WIP: \"此功能仍在開發中……\",\n Error: {\n Unauthorized: isApp ? `😆 對話遇到了一些問題,不用慌:\r\n \\\\ 1️⃣ 想要無須設定開箱即用,[點選這裡立刻開啟對話 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\\\ 2️⃣ 如果你想消耗自己的 OpenAI 資源,點選[這裡](/#/settings)修改設定 ⚙️` : `😆 對話遇到了一些問題,不用慌:\r\n \\ 1️⃣ 想要無須設定開箱即用,[點選這裡立刻開啟對話 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\ 2️⃣ 如果你正在使用私有部署版本,點選[這裡](/#/auth)輸入存取金鑰 🔑\r\n \\ 3️⃣ 如果你想消耗自己的 OpenAI 資源,點選[這裡](/#/settings)修改設定 ⚙️\r\n `\n },\n Auth: {\n Title: \"需要密碼\",\n Tips: \"管理員開啟了密碼驗證,請在下方填入存取密碼\",\n SubTips: \"或者輸入你的 OpenAI 或 Google API 金鑰\",\n Input: \"在此處填寫存取密碼\",\n Confirm: \"確認\",\n Later: \"稍候再說\",\n Return: \"返回\",\n SaasTips: \"設定太麻煩,想要立即使用\",\n TopTips: \"\\uD83E\\uDD73 NextChat AI 首發優惠,立刻解鎖 OpenAI o1, GPT-4o, Claude-3.5 等最新的大型語言模型\"\n },\n ChatItem: {\n ChatItemCount: (count)=>`${count} 則對話`\n },\n Chat: {\n SubTitle: (count)=>`您已經與 ChatGPT 進行了 ${count} 則對話`,\n EditMessage: {\n Title: \"編輯訊息記錄\",\n Topic: {\n Title: \"聊天主題\",\n SubTitle: \"更改目前聊天主題\"\n }\n },\n Actions: {\n ChatList: \"檢視訊息列表\",\n CompressedHistory: \"檢視壓縮後的歷史 Prompt\",\n Export: \"匯出聊天紀錄\",\n Copy: \"複製\",\n Stop: \"停止\",\n Retry: \"重試\",\n Pin: \"固定\",\n PinToastContent: \"已將 1 條對話固定至預設提示詞\",\n PinToastAction: \"檢視\",\n Delete: \"刪除\",\n Edit: \"編輯\",\n RefreshTitle: \"重新整理標題\",\n RefreshToast: \"已傳送重新整理標題請求\"\n },\n Commands: {\n new: \"新建聊天\",\n newm: \"從角色範本新建聊天\",\n next: \"下一個聊天\",\n prev: \"上一個聊天\",\n clear: \"清除上下文\",\n del: \"刪除聊天\"\n },\n InputActions: {\n Stop: \"停止回應\",\n ToBottom: \"移至最新\",\n Theme: {\n auto: \"自動主題\",\n light: \"亮色模式\",\n dark: \"深色模式\"\n },\n Prompt: \"快捷指令\",\n Masks: \"所有角色範本\",\n Clear: \"清除聊天\",\n Settings: \"對話設定\",\n UploadImage: \"上傳圖片\"\n },\n Rename: \"重新命名對話\",\n Typing: \"正在輸入…\",\n Input: (submitKey)=>{\n var inputHints = `輸入訊息後,按下 ${submitKey} 鍵即可傳送`;\n if (submitKey === String(_store_config__WEBPACK_IMPORTED_MODULE_1__.SubmitKey.Enter)) {\n inputHints += \",Shift + Enter 鍵換行\";\n }\n return inputHints;\n },\n Send: \"傳送\",\n Config: {\n Reset: \"重設\",\n SaveAs: \"另存新檔\"\n },\n IsContext: \"預設提示詞\",\n ShortcutKey: {\n Title: \"鍵盤快捷方式\",\n newChat: \"開啟新聊天\",\n focusInput: \"聚焦輸入框\",\n copyLastMessage: \"複製最後一個回覆\",\n copyLastCode: \"複製最後一個程式碼區塊\",\n showShortcutKey: \"顯示快捷方式\",\n clearContext: \"清除上下文\"\n }\n },\n Export: {\n Title: \"將聊天記錄匯出為 Markdown\",\n Copy: \"複製全部\",\n Download: \"下載檔案\",\n Share: \"分享到 ShareGPT\",\n MessageFromYou: \"來自您的訊息\",\n MessageFromChatGPT: \"來自 ChatGPT 的訊息\",\n Format: {\n Title: \"匯出格式\",\n SubTitle: \"可以匯出 Markdown 文字檔或者 PNG 圖片\"\n },\n IncludeContext: {\n Title: \"包含角色範本上下文\",\n SubTitle: \"是否在訊息中顯示角色範本上下文\"\n },\n Steps: {\n Select: \"選取\",\n Preview: \"預覽\"\n },\n Image: {\n Toast: \"正在產生截圖\",\n Modal: \"長按或按右鍵儲存圖片\"\n }\n },\n Select: {\n Search: \"查詢訊息\",\n All: \"選取全部\",\n Latest: \"最近幾條\",\n Clear: \"清除選取\"\n },\n Memory: {\n Title: \"上下文記憶 Prompt\",\n EmptyContent: \"尚未記憶\",\n Copy: \"複製全部\",\n Send: \"傳送記憶\",\n Reset: \"重設對話\",\n ResetConfirm: \"重設後將清除目前對話記錄以及歷史記憶,確認重設?\"\n },\n Home: {\n NewChat: \"開新對話\",\n DeleteChat: \"確定要刪除選取的對話嗎?\",\n DeleteToast: \"已刪除對話\",\n Revert: \"撤銷\"\n },\n Settings: {\n Title: \"設定\",\n SubTitle: \"設定選項\",\n Danger: {\n Reset: {\n Title: \"重設所有設定\",\n SubTitle: \"重設所有設定項回預設值\",\n Action: \"立即重設\",\n Confirm: \"確認重設所有設定?\"\n },\n Clear: {\n Title: \"清除所有資料\",\n SubTitle: \"清除所有聊天、設定資料\",\n Action: \"立即清除\",\n Confirm: \"確認清除所有聊天、設定資料?\"\n }\n },\n Lang: {\n Name: \"Language\",\n All: \"所有語言\"\n },\n Avatar: \"大頭貼\",\n FontSize: {\n Title: \"字型大小\",\n SubTitle: \"聊天內容的字型大小\"\n },\n FontFamily: {\n Title: \"聊天字型\",\n SubTitle: \"聊天內容的字型,若留空則套用全域預設字型\",\n Placeholder: \"字型名稱\"\n },\n InjectSystemPrompts: {\n Title: \"匯入系統提示\",\n SubTitle: \"強制在每個請求的訊息列表開頭新增一個模擬 ChatGPT 的系統提示\"\n },\n InputTemplate: {\n Title: \"使用者輸入預處理\",\n SubTitle: \"使用者最新的一則訊息會填充到此範本\"\n },\n Update: {\n Version: (x)=>`目前版本:${x}`,\n IsLatest: \"已是最新版本\",\n CheckUpdate: \"檢查更新\",\n IsChecking: \"正在檢查更新...\",\n FoundUpdate: (x)=>`發現新版本:${x}`,\n GoToUpdate: \"前往更新\"\n },\n SendKey: \"傳送鍵\",\n Theme: \"主題\",\n TightBorder: \"緊湊邊框\",\n SendPreviewBubble: {\n Title: \"預覽氣泡\",\n SubTitle: \"在預覽氣泡中預覽 Markdown 內容\"\n },\n AutoGenerateTitle: {\n Title: \"自動產生標題\",\n SubTitle: \"根據對話內容產生合適的標題\"\n },\n Sync: {\n CloudState: \"雲端資料\",\n NotSyncYet: \"還沒有進行過同步\",\n Success: \"同步成功\",\n Fail: \"同步失敗\",\n Config: {\n Modal: {\n Title: \"設定雲端同步\",\n Check: \"檢查可用性\"\n },\n SyncType: {\n Title: \"同步類型\",\n SubTitle: \"選擇偏好的同步伺服器\"\n },\n Proxy: {\n Title: \"啟用代理伺服器\",\n SubTitle: \"在瀏覽器中同步時,啟用代理伺服器以避免跨域限制\"\n },\n ProxyUrl: {\n Title: \"代理伺服器位置\",\n SubTitle: \"僅適用於本專案內建的跨域代理\"\n },\n WebDav: {\n Endpoint: \"WebDAV 位置\",\n UserName: \"使用者名稱\",\n Password: \"密碼\"\n },\n UpStash: {\n Endpoint: \"UpStash Redis REST Url\",\n UserName: \"備份名稱\",\n Password: \"UpStash Redis REST Token\"\n }\n },\n LocalState: \"本機資料\",\n Overview: (overview)=>{\n return `${overview.chat} 次對話,${overview.message} 則訊息,${overview.prompt} 條提示詞,${overview.mask} 個角色範本`;\n },\n ImportFailed: \"匯入失敗\"\n },\n Mask: {\n Splash: {\n Title: \"角色範本啟動頁面\",\n SubTitle: \"新增聊天時,呈現角色範本啟動頁面\"\n },\n Builtin: {\n Title: \"隱藏內建角色範本\",\n SubTitle: \"在所有角色範本列表中隱藏內建角色範本\"\n }\n },\n Prompt: {\n Disable: {\n Title: \"停用提示詞自動補齊\",\n SubTitle: \"在輸入框開頭輸入 / 即可觸發自動補齊\"\n },\n List: \"自訂提示詞列表\",\n ListCount: (builtin, custom)=>`內建 ${builtin} 條,使用者自訂 ${custom} 條`,\n Edit: \"編輯\",\n Modal: {\n Title: \"提示詞列表\",\n Add: \"新增一則\",\n Search: \"搜尋提示詞\"\n },\n EditModal: {\n Title: \"編輯提示詞\"\n }\n },\n HistoryCount: {\n Title: \"附帶歷史訊息數\",\n SubTitle: \"每次請求附帶的歷史訊息數\"\n },\n CompressThreshold: {\n Title: \"歷史訊息長度壓縮閾值\",\n SubTitle: \"當未壓縮的歷史訊息超過該值時,將進行壓縮\"\n },\n Usage: {\n Title: \"帳戶餘額\",\n SubTitle (used, total) {\n return `本月已使用 $${used},訂閱總額 $${total}`;\n },\n IsChecking: \"正在檢查…\",\n Check: \"重新檢查\",\n NoAccess: \"輸入 API Key 檢視餘額\"\n },\n Access: {\n SaasStart: {\n Title: \"使用 NextChat AI\",\n Label: \"(性價比最高的方案)\",\n SubTitle: \"由 NextChat 官方維護,無須設定開箱即用,支援 OpenAI o1、GPT-4o、Claude-3.5 等最新的大型語言模型\",\n ChatNow: \"立刻開始對話\"\n },\n AccessCode: {\n Title: \"存取密碼\",\n SubTitle: \"管理員已開啟加密存取\",\n Placeholder: \"請輸入存取密碼\"\n },\n CustomEndpoint: {\n Title: \"自訂 API 端點 (Endpoint)\",\n SubTitle: \"是否使用自訂 Azure 或 OpenAI 服務\"\n },\n Provider: {\n Title: \"模型供應商\",\n SubTitle: \"切換不同的服務供應商\"\n },\n OpenAI: {\n ApiKey: {\n Title: \"API Key\",\n SubTitle: \"使用自訂 OpenAI Key 繞過密碼存取限制\",\n Placeholder: \"OpenAI API Key\"\n },\n Endpoint: {\n Title: \"API 端點 (Endpoint) 位址\",\n SubTitle: \"除預設位址外,必須包含 http(s)://\"\n }\n },\n Azure: {\n ApiKey: {\n Title: \"API 金鑰\",\n SubTitle: \"使用自訂 Azure Key 繞過密碼存取限制\",\n Placeholder: \"Azure API Key\"\n },\n Endpoint: {\n Title: \"API 端點 (Endpoint) 位址\",\n SubTitle: \"範例:\"\n },\n ApiVerion: {\n Title: \"API 版本 (azure api version)\",\n SubTitle: \"指定一個特定的 API 版本\"\n }\n },\n Anthropic: {\n ApiKey: {\n Title: \"API 金鑰\",\n SubTitle: \"從 Anthropic AI 取得您的 API 金鑰\",\n Placeholder: \"Anthropic API Key\"\n },\n Endpoint: {\n Title: \"端點位址\",\n SubTitle: \"範例:\"\n },\n ApiVerion: {\n Title: \"API 版本 (claude api version)\",\n SubTitle: \"指定一個特定的 API 版本\"\n }\n },\n Google: {\n ApiKey: {\n Title: \"API 金鑰\",\n SubTitle: \"從 Google AI 取得您的 API 金鑰\",\n Placeholder: \"輸入您的 Google AI Studio API 金鑰\"\n },\n Endpoint: {\n Title: \"端點位址\",\n SubTitle: \"範例:\"\n },\n ApiVersion: {\n Title: \"API 版本(僅適用於 gemini-pro)\",\n SubTitle: \"選擇一個特定的 API 版本\"\n }\n },\n CustomModel: {\n Title: \"自訂模型名稱\",\n SubTitle: \"增加自訂模型可選擇項目,使用英文逗號隔開\"\n }\n },\n Model: \"模型 (model)\",\n CompressModel: {\n Title: \"壓縮模型\",\n SubTitle: \"用於壓縮歷史記錄的模型\"\n },\n Temperature: {\n Title: \"隨機性 (temperature)\",\n SubTitle: \"值越大,回應越隨機\"\n },\n TopP: {\n Title: \"核心採樣 (top_p)\",\n SubTitle: \"與隨機性類似,但不要和隨機性一起更改\"\n },\n MaxTokens: {\n Title: \"單次回應限制 (max_tokens)\",\n SubTitle: \"單次互動所用的最大 Token 數\"\n },\n PresencePenalty: {\n Title: \"話題新穎度 (presence_penalty)\",\n SubTitle: \"值越大,越有可能拓展到新話題\"\n },\n FrequencyPenalty: {\n Title: \"頻率懲罰度 (frequency_penalty)\",\n SubTitle: \"值越大,越有可能降低重複字詞\"\n }\n },\n Store: {\n DefaultTopic: \"新的對話\",\n BotHello: \"請問需要我的協助嗎?\",\n Error: \"出錯了,請稍後再嘗試\",\n Prompt: {\n History: (content)=>\"這是 AI 與使用者的歷史聊天總結,作為前情提要:\" + content,\n Topic: \"Use the language used by the user (e.g. en for english conversation, zh-hant for chinese conversation, etc.) to generate a title (at most 6 words) summarizing our conversation without any lead-in, quotation marks, preamble like 'Title:', direct text copies, single-word replies, quotation marks, translations, or brackets. Remove enclosing quotation marks. The title should make third-party grasp the essence of the conversation in first sight.\",\n Summarize: \"Use the language used by the user (e.g. en-us for english conversation, zh-hant for chinese conversation, etc.) to summarise the conversation in at most 200 words. The summary will be used as prompt for you to continue the conversation in the future.\"\n }\n },\n Copy: {\n Success: \"已複製到剪貼簿中\",\n Failed: \"複製失敗,請賦予剪貼簿權限\"\n },\n Download: {\n Success: \"內容已下載到您的目錄。\",\n Failed: \"下載失敗。\"\n },\n Context: {\n Toast: (x)=>`已設定 ${x} 條前置上下文`,\n Edit: \"前置上下文和歷史記憶\",\n Add: \"新增一則\",\n Clear: \"上下文已清除\",\n Revert: \"恢復上下文\"\n },\n Plugin: {\n Name: \"外掛\"\n },\n FineTuned: {\n Sysmessage: \"你是一個助手\"\n },\n Mask: {\n Name: \"角色範本\",\n Page: {\n Title: \"預設角色角色範本\",\n SubTitle: (count)=>`${count} 個預設角色定義`,\n Search: \"搜尋角色角色範本\",\n Create: \"新增\"\n },\n Item: {\n Info: (count)=>`包含 ${count} 條預設對話`,\n Chat: \"對話\",\n View: \"檢視\",\n Edit: \"編輯\",\n Delete: \"刪除\",\n DeleteConfirm: \"確認刪除?\"\n },\n EditModal: {\n Title: (readonly)=>`編輯預設角色範本 ${readonly ? \"(唯讀)\" : \"\"}`,\n Download: \"下載預設值\",\n Clone: \"以此預設值建立副本\"\n },\n Config: {\n Avatar: \"角色頭像\",\n Name: \"角色名稱\",\n Sync: {\n Title: \"使用全域設定\",\n SubTitle: \"目前對話是否使用全域模型設定\",\n Confirm: \"目前對話的自訂設定將會被自動覆蓋,確認啟用全域設定?\"\n },\n HideContext: {\n Title: \"隱藏預設對話\",\n SubTitle: \"隱藏後預設對話不會出現在聊天介面\"\n },\n Share: {\n Title: \"分享此角色範本\",\n SubTitle: \"產生此角色範本的直達連結\",\n Action: \"複製連結\"\n }\n }\n },\n SearchChat: {\n Name: \"搜尋聊天記錄\",\n Page: {\n Title: \"搜尋聊天記錄\",\n Search: \"輸入搜尋關鍵詞\",\n NoResult: \"沒有找到結果\",\n NoData: \"沒有資料\",\n Loading: \"載入中\",\n SubTitle: (count)=>`找到 ${count} 條結果`\n },\n Item: {\n View: \"檢視\"\n }\n },\n NewChat: {\n Return: \"返回\",\n Skip: \"跳過\",\n NotShow: \"不再顯示\",\n ConfirmNoShow: \"確認停用?停用後可以隨時在設定中重新啟用。\",\n Title: \"挑選一個角色範本\",\n SubTitle: \"現在開始,與角色範本背後的靈魂思維碰撞\",\n More: \"搜尋更多\"\n },\n URLCommand: {\n Code: \"偵測到連結中已經包含存取密碼,是否自動填入?\",\n Settings: \"偵測到連結中包含了預設設定,是否自動填入?\"\n },\n UI: {\n Confirm: \"確認\",\n Cancel: \"取消\",\n Close: \"關閉\",\n Create: \"新增\",\n Edit: \"編輯\",\n Export: \"匯出\",\n Import: \"匯入\",\n Sync: \"同步\",\n Config: \"設定\"\n },\n Exporter: {\n Description: {\n Title: \"只有清除上下文之後的訊息會被顯示\"\n },\n Model: \"模型\",\n Messages: \"訊息\",\n Topic: \"主題\",\n Time: \"時間\"\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (tw); // Translated by @chunkiuuu, feel free the submit new pr if there are typo/incorrect translations :D\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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dHM/ZWU3MCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRDbGllbnRDb25maWcgfSBmcm9tIFwiLi4vY29uZmlnL2NsaWVudFwiO1xyXG5pbXBvcnQgeyBTdWJtaXRLZXkgfSBmcm9tIFwiLi4vc3RvcmUvY29uZmlnXCI7XHJcbmltcG9ydCB7IFNBQVNfQ0hBVF9VVE1fVVJMIH0gZnJvbSBcIkAvYXBwL2NvbnN0YW50XCI7XHJcbmNvbnN0IGlzQXBwID0gISFnZXRDbGllbnRDb25maWcoKT8uaXNBcHA7XHJcblxyXG5jb25zdCB0dyA9IHtcclxuICBXSVA6IFwi5q2k5Yqf6IO95LuN5Zyo6ZaL55m85Lit4oCm4oCmXCIsXHJcbiAgRXJyb3I6IHtcclxuICAgIFVuYXV0aG9yaXplZDogaXNBcHBcclxuICAgICAgPyBg8J+YhiDlsI3oqbHpgYfliLDkuobkuIDkupvllY/poYzvvIzkuI3nlKjmhYw6XHJcbiAgICBcXFxcIDHvuI/ig6Mg5oOz6KaB54Sh6aCI6Kit5a6a6ZaL566x5Y2z55So77yMW+m7numBuOmAmeijoeeri+WIu+mWi+WVn+WwjeipsSDwn5qAXSgke1NBQVNfQ0hBVF9VVE1fVVJMfSlcclxuICAgIFxcXFwgMu+4j+KDoyDlpoLmnpzkvaDmg7PmtojogJfoh6rlt7HnmoQgT3BlbkFJIOizh+a6kO+8jOm7numBuFvpgJnoo6FdKC8jL3NldHRpbmdzKeS/ruaUueioreWumiDimpnvuI9gXHJcbiAgICAgIDogYPCfmIYg5bCN6Kmx6YGH5Yiw5LqG5LiA5Lqb5ZWP6aGM77yM5LiN55So5oWMOlxyXG4gICAgXFwgMe+4j+KDoyDmg7PopoHnhKHpoIjoqK3lrprplovnrrHljbPnlKjvvIxb6bue6YG46YCZ6KOh56uL5Yi76ZaL5ZWf5bCN6KmxIPCfmoBdKCR7U0FBU19DSEFUX1VUTV9VUkx9KVxyXG4gICAgXFwgMu+4j+KDoyDlpoLmnpzkvaDmraPlnKjkvb/nlKjnp4HmnInpg6jnvbLniYjmnKzvvIzpu57pgbhb6YCZ6KOhXSgvIy9hdXRoKei8uOWFpeWtmOWPlumHkemRsCDwn5SRXHJcbiAgICBcXCAz77iP4oOjIOWmguaenOS9oOaDs+a2iOiAl+iHquW3seeahCBPcGVuQUkg6LOH5rqQ77yM6bue6YG4W+mAmeijoV0oLyMvc2V0dGluZ3Mp5L+u5pS56Kit5a6aIOKame+4j1xyXG4gYCxcclxuICB9LFxyXG5cclxuICBBdXRoOiB7XHJcbiAgICBUaXRsZTogXCLpnIDopoHlr4bnorxcIixcclxuICAgIFRpcHM6IFwi566h55CG5ZOh6ZaL5ZWf5LqG5a+G56K86amX6K2J77yM6KuL5Zyo5LiL5pa55aGr5YWl5a2Y5Y+W5a+G56K8XCIsXHJcbiAgICBTdWJUaXBzOiBcIuaIluiAhei8uOWFpeS9oOeahCBPcGVuQUkg5oiWIEdvb2dsZSBBUEkg6YeR6ZGwXCIsXHJcbiAgICBJbnB1dDogXCLlnKjmraTomZXloavlr6vlrZjlj5blr4bnorxcIixcclxuICAgIENvbmZpcm06IFwi56K66KqNXCIsXHJcbiAgICBMYXRlcjogXCLnqI3lgJnlho3oqqpcIixcclxuICAgIFJldHVybjogXCLov5Tlm55cIixcclxuICAgIFNhYXNUaXBzOiBcIuioreWumuWkqum6u+eFqe+8jOaDs+imgeeri+WNs+S9v+eUqFwiLFxyXG4gICAgVG9wVGlwczpcclxuICAgICAgXCLwn6WzIE5leHRDaGF0IEFJIOmmlueZvOWEquaDoO+8jOeri+WIu+ino+mOliBPcGVuQUkgbzEsIEdQVC00bywgQ2xhdWRlLTMuNSDnrYnmnIDmlrDnmoTlpKflnovoqp7oqIDmqKHlnotcIixcclxuICB9LFxyXG4gIENoYXRJdGVtOiB7XHJcbiAgICBDaGF0SXRlbUNvdW50OiAoY291bnQ6IG51bWJlcikgPT4gYCR7Y291bnR9IOWJh+WwjeipsWAsXHJcbiAgfSxcclxuICBDaGF0OiB7XHJcbiAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGDmgqjlt7LntpPoiIcgQ2hhdEdQVCDpgLLooYzkuoYgJHtjb3VudH0g5YmH5bCN6KmxYCxcclxuICAgIEVkaXRNZXNzYWdlOiB7XHJcbiAgICAgIFRpdGxlOiBcIue3qOi8r+ioiuaBr+iomOmMhFwiLFxyXG4gICAgICBUb3BpYzoge1xyXG4gICAgICAgIFRpdGxlOiBcIuiBiuWkqeS4u+mhjFwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIuabtOaUueebruWJjeiBiuWkqeS4u+mhjFwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIEFjdGlvbnM6IHtcclxuICAgICAgQ2hhdExpc3Q6IFwi5qqi6KaW6KiK5oGv5YiX6KGoXCIsXHJcbiAgICAgIENvbXByZXNzZWRIaXN0b3J5OiBcIuaqouimluWjk+e4ruW+jOeahOatt+WPsiBQcm9tcHRcIixcclxuICAgICAgRXhwb3J0OiBcIuWMr+WHuuiBiuWkqee0gOmMhFwiLFxyXG4gICAgICBDb3B5OiBcIuikh+ijvVwiLFxyXG4gICAgICBTdG9wOiBcIuWBnOatolwiLFxyXG4gICAgICBSZXRyeTogXCLph43oqaZcIixcclxuICAgICAgUGluOiBcIuWbuuWumlwiLFxyXG4gICAgICBQaW5Ub2FzdENvbnRlbnQ6IFwi5bey5bCHIDEg5qKd5bCN6Kmx5Zu65a6a6Iez6aCQ6Kit5o+Q56S66KmeXCIsXHJcbiAgICAgIFBpblRvYXN0QWN0aW9uOiBcIuaqouimllwiLFxyXG4gICAgICBEZWxldGU6IFwi5Yiq6ZmkXCIsXHJcbiAgICAgIEVkaXQ6IFwi57eo6LyvXCIsXHJcbiAgICAgIFJlZnJlc2hUaXRsZTogXCLph43mlrDmlbTnkIbmqJnpoYxcIixcclxuICAgICAgUmVmcmVzaFRvYXN0OiBcIuW3suWCs+mAgemHjeaWsOaVtOeQhuaomemhjOiri+axglwiLFxyXG4gICAgfSxcclxuICAgIENvbW1hbmRzOiB7XHJcbiAgICAgIG5ldzogXCLmlrDlu7rogYrlpKlcIixcclxuICAgICAgbmV3bTogXCLlvp7op5LoibLnr4TmnKzmlrDlu7rogYrlpKlcIixcclxuICAgICAgbmV4dDogXCLkuIvkuIDlgIvogYrlpKlcIixcclxuICAgICAgcHJldjogXCLkuIrkuIDlgIvogYrlpKlcIixcclxuICAgICAgY2xlYXI6IFwi5riF6Zmk5LiK5LiL5paHXCIsXHJcbiAgICAgIGRlbDogXCLliKrpmaTogYrlpKlcIixcclxuICAgIH0sXHJcbiAgICBJbnB1dEFjdGlvbnM6IHtcclxuICAgICAgU3RvcDogXCLlgZzmraLlm57mh4lcIixcclxuICAgICAgVG9Cb3R0b206IFwi56e76Iez5pyA5pawXCIsXHJcbiAgICAgIFRoZW1lOiB7XHJcbiAgICAgICAgYXV0bzogXCLoh6rli5XkuLvpoYxcIixcclxuICAgICAgICBsaWdodDogXCLkuq7oibLmqKHlvI9cIixcclxuICAgICAgICBkYXJrOiBcIua3seiJsuaooeW8j1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBQcm9tcHQ6IFwi5b+r5o235oyH5LukXCIsXHJcbiAgICAgIE1hc2tzOiBcIuaJgOacieinkuiJsuevhOacrFwiLFxyXG4gICAgICBDbGVhcjogXCLmuIXpmaTogYrlpKlcIixcclxuICAgICAgU2V0dGluZ3M6IFwi5bCN6Kmx6Kit5a6aXCIsXHJcbiAgICAgIFVwbG9hZEltYWdlOiBcIuS4iuWCs+WclueJh1wiLFxyXG4gICAgfSxcclxuICAgIFJlbmFtZTogXCLph43mlrDlkb3lkI3lsI3oqbFcIixcclxuICAgIFR5cGluZzogXCLmraPlnKjovLjlhaXigKZcIixcclxuICAgIElucHV0OiAoc3VibWl0S2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgdmFyIGlucHV0SGludHMgPSBg6Ly45YWl6KiK5oGv5b6M77yM5oyJ5LiLICR7c3VibWl0S2V5fSDpjbXljbPlj6/lgrPpgIFgO1xyXG4gICAgICBpZiAoc3VibWl0S2V5ID09PSBTdHJpbmcoU3VibWl0S2V5LkVudGVyKSkge1xyXG4gICAgICAgIGlucHV0SGludHMgKz0gXCLvvIxTaGlmdCArIEVudGVyIOmNteaPm+ihjFwiO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBpbnB1dEhpbnRzO1xyXG4gICAgfSxcclxuICAgIFNlbmQ6IFwi5YKz6YCBXCIsXHJcbiAgICBDb25maWc6IHtcclxuICAgICAgUmVzZXQ6IFwi6YeN6KitXCIsXHJcbiAgICAgIFNhdmVBczogXCLlj6blrZjmlrDmqpRcIixcclxuICAgIH0sXHJcbiAgICBJc0NvbnRleHQ6IFwi6aCQ6Kit5o+Q56S66KmeXCIsXHJcbiAgICBTaG9ydGN1dEtleToge1xyXG4gICAgICBUaXRsZTogXCLpjbXnm6Tlv6vmjbfmlrnlvI9cIixcclxuICAgICAgbmV3Q2hhdDogXCLplovllZ/mlrDogYrlpKlcIixcclxuICAgICAgZm9jdXNJbnB1dDogXCLogZrnhKbovLjlhaXmoYZcIixcclxuICAgICAgY29weUxhc3RNZXNzYWdlOiBcIuikh+ijveacgOW+jOS4gOWAi+WbnuimhlwiLFxyXG4gICAgICBjb3B5TGFzdENvZGU6IFwi6KSH6KO95pyA5b6M5LiA5YCL56iL5byP56K85Y2A5aGKXCIsXHJcbiAgICAgIHNob3dTaG9ydGN1dEtleTogXCLpoa/npLrlv6vmjbfmlrnlvI9cIixcclxuICAgICAgY2xlYXJDb250ZXh0OiBcIua4hemZpOS4iuS4i+aWh1wiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIEV4cG9ydDoge1xyXG4gICAgVGl0bGU6IFwi5bCH6IGK5aSp6KiY6YyE5Yyv5Ye654K6IE1hcmtkb3duXCIsXHJcbiAgICBDb3B5OiBcIuikh+ijveWFqOmDqFwiLFxyXG4gICAgRG93bmxvYWQ6IFwi5LiL6LyJ5qqU5qGIXCIsXHJcbiAgICBTaGFyZTogXCLliIbkuqvliLAgU2hhcmVHUFRcIixcclxuICAgIE1lc3NhZ2VGcm9tWW91OiBcIuS+huiHquaCqOeahOioiuaBr1wiLFxyXG4gICAgTWVzc2FnZUZyb21DaGF0R1BUOiBcIuS+huiHqiBDaGF0R1BUIOeahOioiuaBr1wiLFxyXG4gICAgRm9ybWF0OiB7XHJcbiAgICAgIFRpdGxlOiBcIuWMr+WHuuagvOW8j1wiLFxyXG4gICAgICBTdWJUaXRsZTogXCLlj6/ku6XljK/lh7ogTWFya2Rvd24g5paH5a2X5qqU5oiW6ICFIFBORyDlnJbniYdcIixcclxuICAgIH0sXHJcbiAgICBJbmNsdWRlQ29udGV4dDoge1xyXG4gICAgICBUaXRsZTogXCLljIXlkKvop5LoibLnr4TmnKzkuIrkuIvmlodcIixcclxuICAgICAgU3ViVGl0bGU6IFwi5piv5ZCm5Zyo6KiK5oGv5Lit6aGv56S66KeS6Imy56+E5pys5LiK5LiL5paHXCIsXHJcbiAgICB9LFxyXG4gICAgU3RlcHM6IHtcclxuICAgICAgU2VsZWN0OiBcIumBuOWPllwiLFxyXG4gICAgICBQcmV2aWV3OiBcIumgkOimvVwiLFxyXG4gICAgfSxcclxuICAgIEltYWdlOiB7XHJcbiAgICAgIFRvYXN0OiBcIuato+WcqOeUoueUn+aIquWcllwiLFxyXG4gICAgICBNb2RhbDogXCLplbfmjInmiJbmjInlj7PpjbXlhLLlrZjlnJbniYdcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBTZWxlY3Q6IHtcclxuICAgIFNlYXJjaDogXCLmn6XoqaLoqIrmga9cIixcclxuICAgIEFsbDogXCLpgbjlj5blhajpg6hcIixcclxuICAgIExhdGVzdDogXCLmnIDov5Hlub7mop1cIixcclxuICAgIENsZWFyOiBcIua4hemZpOmBuOWPllwiLFxyXG4gIH0sXHJcbiAgTWVtb3J5OiB7XHJcbiAgICBUaXRsZTogXCLkuIrkuIvmlofoqJjmhrYgUHJvbXB0XCIsXHJcbiAgICBFbXB0eUNvbnRlbnQ6IFwi5bCa5pyq6KiY5oa2XCIsXHJcbiAgICBDb3B5OiBcIuikh+ijveWFqOmDqFwiLFxyXG4gICAgU2VuZDogXCLlgrPpgIHoqJjmhrZcIixcclxuICAgIFJlc2V0OiBcIumHjeioreWwjeipsVwiLFxyXG4gICAgUmVzZXRDb25maXJtOiBcIumHjeioreW+jOWwh+a4hemZpOebruWJjeWwjeipseiomOmMhOS7peWPiuatt+WPsuiomOaGtu+8jOeiuuiqjemHjeiore+8n1wiLFxyXG4gIH0sXHJcbiAgSG9tZToge1xyXG4gICAgTmV3Q2hhdDogXCLplovmlrDlsI3oqbFcIixcclxuICAgIERlbGV0ZUNoYXQ6IFwi56K65a6a6KaB5Yiq6Zmk6YG45Y+W55qE5bCN6Kmx5ZeO77yfXCIsXHJcbiAgICBEZWxldGVUb2FzdDogXCLlt7LliKrpmaTlsI3oqbFcIixcclxuICAgIFJldmVydDogXCLmkqTpirdcIixcclxuICB9LFxyXG4gIFNldHRpbmdzOiB7XHJcbiAgICBUaXRsZTogXCLoqK3lrppcIixcclxuICAgIFN1YlRpdGxlOiBcIuioreWumumBuOmghVwiLFxyXG5cclxuICAgIERhbmdlcjoge1xyXG4gICAgICBSZXNldDoge1xyXG4gICAgICAgIFRpdGxlOiBcIumHjeioreaJgOacieioreWumlwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIumHjeioreaJgOacieioreWumumgheWbnumgkOioreWAvFwiLFxyXG4gICAgICAgIEFjdGlvbjogXCLnq4vljbPph43oqK1cIixcclxuICAgICAgICBDb25maXJtOiBcIueiuuiqjemHjeioreaJgOacieioreWumu+8n1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBDbGVhcjoge1xyXG4gICAgICAgIFRpdGxlOiBcIua4hemZpOaJgOacieizh+aWmVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIua4hemZpOaJgOacieiBiuWkqeOAgeioreWumuizh+aWmVwiLFxyXG4gICAgICAgIEFjdGlvbjogXCLnq4vljbPmuIXpmaRcIixcclxuICAgICAgICBDb25maXJtOiBcIueiuuiqjea4hemZpOaJgOacieiBiuWkqeOAgeioreWumuizh+aWme+8n1wiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIExhbmc6IHtcclxuICAgICAgTmFtZTogXCJMYW5ndWFnZVwiLCAvLyBBVFRFTlRJT046IGlmIHlvdSB3YW5uYSBhZGQgYSBuZXcgdHJhbnNsYXRpb24sIHBsZWFzZSBkbyBub3QgdHJhbnNsYXRlIHRoaXMgdmFsdWUsIGxlYXZlIGl0IGFzIGBMYW5ndWFnZWBcclxuICAgICAgQWxsOiBcIuaJgOacieiqnuiogFwiLFxyXG4gICAgfSxcclxuICAgIEF2YXRhcjogXCLlpKfpoK3osrxcIixcclxuICAgIEZvbnRTaXplOiB7XHJcbiAgICAgIFRpdGxlOiBcIuWtl+Wei+Wkp+Wwj1wiLFxyXG4gICAgICBTdWJUaXRsZTogXCLogYrlpKnlhaflrrnnmoTlrZflnovlpKflsI9cIixcclxuICAgIH0sXHJcbiAgICBGb250RmFtaWx5OiB7XHJcbiAgICAgIFRpdGxlOiBcIuiBiuWkqeWtl+Wei1wiLFxyXG4gICAgICBTdWJUaXRsZTogXCLogYrlpKnlhaflrrnnmoTlrZflnovvvIzoi6XnlZnnqbrliYflpZfnlKjlhajln5/poJDoqK3lrZflnotcIixcclxuICAgICAgUGxhY2Vob2xkZXI6IFwi5a2X5Z6L5ZCN56ixXCIsXHJcbiAgICB9LFxyXG4gICAgSW5qZWN0U3lzdGVtUHJvbXB0czoge1xyXG4gICAgICBUaXRsZTogXCLljK/lhaXns7vntbHmj5DnpLpcIixcclxuICAgICAgU3ViVGl0bGU6IFwi5by35Yi25Zyo5q+P5YCL6KuL5rGC55qE6KiK5oGv5YiX6KGo6ZaL6aCt5paw5aKe5LiA5YCL5qih5pOsIENoYXRHUFQg55qE57O757Wx5o+Q56S6XCIsXHJcbiAgICB9LFxyXG4gICAgSW5wdXRUZW1wbGF0ZToge1xyXG4gICAgICBUaXRsZTogXCLkvb/nlKjogIXovLjlhaXpoJDomZXnkIZcIixcclxuICAgICAgU3ViVGl0bGU6IFwi5L2/55So6ICF5pyA5paw55qE5LiA5YmH6KiK5oGv5pyD5aGr5YWF5Yiw5q2k56+E5pysXCIsXHJcbiAgICB9LFxyXG5cclxuICAgIFVwZGF0ZToge1xyXG4gICAgICBWZXJzaW9uOiAoeDogc3RyaW5nKSA9PiBg55uu5YmN54mI5pys77yaJHt4fWAsXHJcbiAgICAgIElzTGF0ZXN0OiBcIuW3suaYr+acgOaWsOeJiOacrFwiLFxyXG4gICAgICBDaGVja1VwZGF0ZTogXCLmqqLmn6Xmm7TmlrBcIixcclxuICAgICAgSXNDaGVja2luZzogXCLmraPlnKjmqqLmn6Xmm7TmlrAuLi5cIixcclxuICAgICAgRm91bmRVcGRhdGU6ICh4OiBzdHJpbmcpID0+IGDnmbznj77mlrDniYjmnKzvvJoke3h9YCxcclxuICAgICAgR29Ub1VwZGF0ZTogXCLliY3lvoDmm7TmlrBcIixcclxuICAgIH0sXHJcbiAgICBTZW5kS2V5OiBcIuWCs+mAgemNtVwiLFxyXG4gICAgVGhlbWU6IFwi5Li76aGMXCIsXHJcbiAgICBUaWdodEJvcmRlcjogXCLnt4rmuYrpgormoYZcIixcclxuICAgIFNlbmRQcmV2aWV3QnViYmxlOiB7XHJcbiAgICAgIFRpdGxlOiBcIumgkOimveawo+azoVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCLlnKjpoJDopr3msKPms6HkuK3poJDopr0gTWFya2Rvd24g5YWn5a65XCIsXHJcbiAgICB9LFxyXG4gICAgQXV0b0dlbmVyYXRlVGl0bGU6IHtcclxuICAgICAgVGl0bGU6IFwi6Ieq5YuV55Si55Sf5qiZ6aGMXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuagueaTmuWwjeipseWFp+WuueeUoueUn+WQiOmBqeeahOaomemhjFwiLFxyXG4gICAgfSxcclxuICAgIFN5bmM6IHtcclxuICAgICAgQ2xvdWRTdGF0ZTogXCLpm7Lnq6/os4fmlplcIixcclxuICAgICAgTm90U3luY1lldDogXCLpgoTmspLmnInpgLLooYzpgY7lkIzmraVcIixcclxuICAgICAgU3VjY2VzczogXCLlkIzmraXmiJDlip9cIixcclxuICAgICAgRmFpbDogXCLlkIzmraXlpLHmlZdcIixcclxuXHJcbiAgICAgIENvbmZpZzoge1xyXG4gICAgICAgIE1vZGFsOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLoqK3lrprpm7Lnq6/lkIzmraVcIixcclxuICAgICAgICAgIENoZWNrOiBcIuaqouafpeWPr+eUqOaAp1wiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgU3luY1R5cGU6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuWQjOatpemhnuWei1wiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi6YG45pOH5YGP5aW955qE5ZCM5q2l5Ly65pyN5ZmoXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQcm94eToge1xyXG4gICAgICAgICAgVGl0bGU6IFwi5ZWf55So5Luj55CG5Ly65pyN5ZmoXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLlnKjngI/opr3lmajkuK3lkIzmraXmmYLvvIzllZ/nlKjku6PnkIbkvLrmnI3lmajku6Xpgb/lhY3ot6jln5/pmZDliLZcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFByb3h5VXJsOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLku6PnkIbkvLrmnI3lmajkvY3nva5cIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuWDhemBqeeUqOaWvOacrOWwiOahiOWFp+W7uueahOi3qOWfn+S7o+eQhlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIFdlYkRhdjoge1xyXG4gICAgICAgICAgRW5kcG9pbnQ6IFwiV2ViREFWIOS9jee9rlwiLFxyXG4gICAgICAgICAgVXNlck5hbWU6IFwi5L2/55So6ICF5ZCN56ixXCIsXHJcbiAgICAgICAgICBQYXNzd29yZDogXCLlr4bnorxcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBVcFN0YXNoOiB7XHJcbiAgICAgICAgICBFbmRwb2ludDogXCJVcFN0YXNoIFJlZGlzIFJFU1QgVXJsXCIsXHJcbiAgICAgICAgICBVc2VyTmFtZTogXCLlgpnku73lkI3nqLFcIixcclxuICAgICAgICAgIFBhc3N3b3JkOiBcIlVwU3Rhc2ggUmVkaXMgUkVTVCBUb2tlblwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICBMb2NhbFN0YXRlOiBcIuacrOapn+izh+aWmVwiLFxyXG4gICAgICBPdmVydmlldzogKG92ZXJ2aWV3OiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gYCR7b3ZlcnZpZXcuY2hhdH0g5qyh5bCN6Kmx77yMJHtvdmVydmlldy5tZXNzYWdlfSDliYfoqIrmga/vvIwke292ZXJ2aWV3LnByb21wdH0g5qKd5o+Q56S66Kme77yMJHtvdmVydmlldy5tYXNrfSDlgIvop5LoibLnr4TmnKxgO1xyXG4gICAgICB9LFxyXG4gICAgICBJbXBvcnRGYWlsZWQ6IFwi5Yyv5YWl5aSx5pWXXCIsXHJcbiAgICB9LFxyXG4gICAgTWFzazoge1xyXG4gICAgICBTcGxhc2g6IHtcclxuICAgICAgICBUaXRsZTogXCLop5LoibLnr4TmnKzllZ/li5XpoIHpnaJcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLmlrDlop7ogYrlpKnmmYLvvIzlkYjnj77op5LoibLnr4TmnKzllZ/li5XpoIHpnaJcIixcclxuICAgICAgfSxcclxuICAgICAgQnVpbHRpbjoge1xyXG4gICAgICAgIFRpdGxlOiBcIumaseiXj+WFp+W7uuinkuiJsuevhOacrFwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIuWcqOaJgOacieinkuiJsuevhOacrOWIl+ihqOS4remaseiXj+WFp+W7uuinkuiJsuevhOacrFwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIFByb21wdDoge1xyXG4gICAgICBEaXNhYmxlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi5YGc55So5o+Q56S66Kme6Ieq5YuV6KOc6b2KXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi5Zyo6Ly45YWl5qGG6ZaL6aCt6Ly45YWlIC8g5Y2z5Y+v6Ke455m86Ieq5YuV6KOc6b2KXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIExpc3Q6IFwi6Ieq6KiC5o+Q56S66Kme5YiX6KGoXCIsXHJcbiAgICAgIExpc3RDb3VudDogKGJ1aWx0aW46IG51bWJlciwgY3VzdG9tOiBudW1iZXIpID0+XHJcbiAgICAgICAgYOWFp+W7uiAke2J1aWx0aW59IOaine+8jOS9v+eUqOiAheiHquiogiAke2N1c3RvbX0g5qKdYCxcclxuICAgICAgRWRpdDogXCLnt6jovK9cIixcclxuICAgICAgTW9kYWw6IHtcclxuICAgICAgICBUaXRsZTogXCLmj5DnpLroqZ7liJfooahcIixcclxuICAgICAgICBBZGQ6IFwi5paw5aKe5LiA5YmHXCIsXHJcbiAgICAgICAgU2VhcmNoOiBcIuaQnOWwi+aPkOekuuipnlwiLFxyXG4gICAgICB9LFxyXG4gICAgICBFZGl0TW9kYWw6IHtcclxuICAgICAgICBUaXRsZTogXCLnt6jovK/mj5DnpLroqZ5cIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBIaXN0b3J5Q291bnQ6IHtcclxuICAgICAgVGl0bGU6IFwi6ZmE5bi25q235Y+y6KiK5oGv5pW4XCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuavj+asoeiri+axgumZhOW4tueahOatt+WPsuioiuaBr+aVuFwiLFxyXG4gICAgfSxcclxuICAgIENvbXByZXNzVGhyZXNob2xkOiB7XHJcbiAgICAgIFRpdGxlOiBcIuatt+WPsuioiuaBr+mVt+W6puWjk+e4rumWvuWAvFwiLFxyXG4gICAgICBTdWJUaXRsZTogXCLnlbbmnKrlo5PnuK7nmoTmrbflj7LoqIrmga/otoXpgY7oqbLlgLzmmYLvvIzlsIfpgLLooYzlo5PnuK5cIixcclxuICAgIH0sXHJcblxyXG4gICAgVXNhZ2U6IHtcclxuICAgICAgVGl0bGU6IFwi5biz5oi26aSY6aGNXCIsXHJcbiAgICAgIFN1YlRpdGxlKHVzZWQ6IGFueSwgdG90YWw6IGFueSkge1xyXG4gICAgICAgIHJldHVybiBg5pys5pyI5bey5L2/55SoICQke3VzZWR977yM6KiC6Zax57i96aGNICQke3RvdGFsfWA7XHJcbiAgICAgIH0sXHJcbiAgICAgIElzQ2hlY2tpbmc6IFwi5q2j5Zyo5qqi5p+l4oCmXCIsXHJcbiAgICAgIENoZWNrOiBcIumHjeaWsOaqouafpVwiLFxyXG4gICAgICBOb0FjY2VzczogXCLovLjlhaUgQVBJIEtleSDmqqLoppbppJjpoY1cIixcclxuICAgIH0sXHJcblxyXG4gICAgQWNjZXNzOiB7XHJcbiAgICAgIFNhYXNTdGFydDoge1xyXG4gICAgICAgIFRpdGxlOiBcIuS9v+eUqCBOZXh0Q2hhdCBBSVwiLFxyXG4gICAgICAgIExhYmVsOiBcIijmgKflg7nmr5TmnIDpq5jnmoTmlrnmoYgpXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIueUsSBOZXh0Q2hhdCDlrpjmlrnntq3orbfvvIznhKHpoIjoqK3lrprplovnrrHljbPnlKjvvIzmlK/mj7QgT3BlbkFJIG8x44CBR1BULTRv44CBQ2xhdWRlLTMuNSDnrYnmnIDmlrDnmoTlpKflnovoqp7oqIDmqKHlnotcIixcclxuICAgICAgICBDaGF0Tm93OiBcIueri+WIu+mWi+Wni+WwjeipsVwiLFxyXG4gICAgICB9LFxyXG5cclxuICAgICAgQWNjZXNzQ29kZToge1xyXG4gICAgICAgIFRpdGxlOiBcIuWtmOWPluWvhueivFwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIueuoeeQhuWToeW3sumWi+WVn+WKoOWvhuWtmOWPllwiLFxyXG4gICAgICAgIFBsYWNlaG9sZGVyOiBcIuiri+i8uOWFpeWtmOWPluWvhueivFwiLFxyXG4gICAgICB9LFxyXG4gICAgICBDdXN0b21FbmRwb2ludDoge1xyXG4gICAgICAgIFRpdGxlOiBcIuiHquiogiBBUEkg56uv6bueIChFbmRwb2ludClcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLmmK/lkKbkvb/nlKjoh6roqIIgQXp1cmUg5oiWIE9wZW5BSSDmnI3li5lcIixcclxuICAgICAgfSxcclxuICAgICAgUHJvdmlkZXI6IHtcclxuICAgICAgICBUaXRsZTogXCLmqKHlnovkvpvmh4nllYZcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLliIfmj5vkuI3lkIznmoTmnI3li5nkvpvmh4nllYZcIixcclxuICAgICAgfSxcclxuICAgICAgT3BlbkFJOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEkgS2V5XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLkvb/nlKjoh6roqIIgT3BlbkFJIEtleSDnuZ7pgY7lr4bnorzlrZjlj5bpmZDliLZcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIk9wZW5BSSBBUEkgS2V5XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSSDnq6/pu54gKEVuZHBvaW50KSDkvY3lnYBcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIumZpOmgkOioreS9jeWdgOWklu+8jOW/hemgiOWMheWQqyBodHRwKHMpOi8vXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQXp1cmU6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSSDph5HpkbBcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuS9v+eUqOiHquiogiBBenVyZSBLZXkg57me6YGO5a+G56K85a2Y5Y+W6ZmQ5Yi2XCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJBenVyZSBBUEkgS2V5XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSSDnq6/pu54gKEVuZHBvaW50KSDkvY3lnYBcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuevhOS+i++8mlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcmlvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIOeJiOacrCAoYXp1cmUgYXBpIHZlcnNpb24pXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLmjIflrprkuIDlgIvnibnlrprnmoQgQVBJIOeJiOacrFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEFudGhyb3BpYzoge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIOmHkemRsFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi5b6eIEFudGhyb3BpYyBBSSDlj5blvpfmgqjnmoQgQVBJIOmHkemRsFwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiQW50aHJvcGljIEFQSSBLZXlcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwi56uv6bue5L2N5Z2AXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLnr4TkvovvvJpcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBBcGlWZXJpb246IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkFQSSDniYjmnKwgKGNsYXVkZSBhcGkgdmVyc2lvbilcIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIuaMh+WumuS4gOWAi+eJueWumueahCBBUEkg54mI5pysXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgR29vZ2xlOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEkg6YeR6ZGwXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLlvp4gR29vZ2xlIEFJIOWPluW+l+aCqOeahCBBUEkg6YeR6ZGwXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCLovLjlhaXmgqjnmoQgR29vZ2xlIEFJIFN0dWRpbyBBUEkg6YeR6ZGwXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIuerr+m7nuS9jeWdgFwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwi56+E5L6L77yaXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgQXBpVmVyc2lvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIOeJiOacrO+8iOWDhemBqeeUqOaWvCBnZW1pbmktcHJv77yJXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCLpgbjmk4fkuIDlgIvnibnlrprnmoQgQVBJIOeJiOacrFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEN1c3RvbU1vZGVsOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi6Ieq6KiC5qih5Z6L5ZCN56ixXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi5aKe5Yqg6Ieq6KiC5qih5Z6L5Y+v6YG45pOH6aCF55uu77yM5L2/55So6Iux5paH6YCX6Jmf6ZqU6ZaLXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG5cclxuICAgIE1vZGVsOiBcIuaooeWeiyAobW9kZWwpXCIsXHJcbiAgICBDb21wcmVzc01vZGVsOiB7XHJcbiAgICAgIFRpdGxlOiBcIuWjk+e4ruaooeWei1wiLFxyXG4gICAgICBTdWJUaXRsZTogXCLnlKjmlrzlo5PnuK7mrbflj7LoqJjpjITnmoTmqKHlnotcIixcclxuICAgIH0sXHJcbiAgICBUZW1wZXJhdHVyZToge1xyXG4gICAgICBUaXRsZTogXCLpmqjmqZ/mgKcgKHRlbXBlcmF0dXJlKVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCLlgLzotorlpKfvvIzlm57mh4notorpmqjmqZ9cIixcclxuICAgIH0sXHJcbiAgICBUb3BQOiB7XHJcbiAgICAgIFRpdGxlOiBcIuaguOW/g+aOoeaooyAodG9wX3ApXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuiIh+maqOapn+aAp+mhnuS8vO+8jOS9huS4jeimgeWSjOmaqOapn+aAp+S4gOi1t+abtOaUuVwiLFxyXG4gICAgfSxcclxuICAgIE1heFRva2Vuczoge1xyXG4gICAgICBUaXRsZTogXCLllq7mrKHlm57mh4npmZDliLYgKG1heF90b2tlbnMpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuWWruasoeS6kuWLleaJgOeUqOeahOacgOWkpyBUb2tlbiDmlbhcIixcclxuICAgIH0sXHJcbiAgICBQcmVzZW5jZVBlbmFsdHk6IHtcclxuICAgICAgVGl0bGU6IFwi6Kmx6aGM5paw56mO5bqmIChwcmVzZW5jZV9wZW5hbHR5KVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCLlgLzotorlpKfvvIzotormnInlj6/og73mi5PlsZXliLDmlrDoqbHpoYxcIixcclxuICAgIH0sXHJcbiAgICBGcmVxdWVuY3lQZW5hbHR5OiB7XHJcbiAgICAgIFRpdGxlOiBcIumgu+eOh+aHsue9sOW6piAoZnJlcXVlbmN5X3BlbmFsdHkpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIuWAvOi2iuWkp++8jOi2iuacieWPr+iDvemZjeS9jumHjeikh+Wtl+ipnlwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIFN0b3JlOiB7XHJcbiAgICBEZWZhdWx0VG9waWM6IFwi5paw55qE5bCN6KmxXCIsXHJcbiAgICBCb3RIZWxsbzogXCLoq4vllY/pnIDopoHmiJHnmoTljZTliqnll47vvJ9cIixcclxuICAgIEVycm9yOiBcIuWHuumMr+S6hu+8jOiri+eojeW+jOWGjeWYl+ipplwiLFxyXG4gICAgUHJvbXB0OiB7XHJcbiAgICAgIEhpc3Rvcnk6IChjb250ZW50OiBzdHJpbmcpID0+XHJcbiAgICAgICAgXCLpgJnmmK8gQUkg6IiH5L2/55So6ICF55qE5q235Y+y6IGK5aSp57i957WQ77yM5L2c54K65YmN5oOF5o+Q6KaB77yaXCIgKyBjb250ZW50LFxyXG4gICAgICBUb3BpYzpcclxuICAgICAgICBcIlVzZSB0aGUgbGFuZ3VhZ2UgdXNlZCBieSB0aGUgdXNlciAoZS5nLiBlbiBmb3IgZW5nbGlzaCBjb252ZXJzYXRpb24sIHpoLWhhbnQgZm9yIGNoaW5lc2UgY29udmVyc2F0aW9uLCBldGMuKSB0byBnZW5lcmF0ZSBhIHRpdGxlIChhdCBtb3N0IDYgd29yZHMpIHN1bW1hcml6aW5nIG91ciBjb252ZXJzYXRpb24gd2l0aG91dCBhbnkgbGVhZC1pbiwgcXVvdGF0aW9uIG1hcmtzLCBwcmVhbWJsZSBsaWtlICdUaXRsZTonLCBkaXJlY3QgdGV4dCBjb3BpZXMsIHNpbmdsZS13b3JkIHJlcGxpZXMsIHF1b3RhdGlvbiBtYXJrcywgdHJhbnNsYXRpb25zLCBvciBicmFja2V0cy4gUmVtb3ZlIGVuY2xvc2luZyBxdW90YXRpb24gbWFya3MuIFRoZSB0aXRsZSBzaG91bGQgbWFrZSB0aGlyZC1wYXJ0eSBncmFzcCB0aGUgZXNzZW5jZSBvZiB0aGUgY29udmVyc2F0aW9uIGluIGZpcnN0IHNpZ2h0LlwiLFxyXG4gICAgICBTdW1tYXJpemU6XHJcbiAgICAgICAgXCJVc2UgdGhlIGxhbmd1YWdlIHVzZWQgYnkgdGhlIHVzZXIgKGUuZy4gZW4tdXMgZm9yIGVuZ2xpc2ggY29udmVyc2F0aW9uLCB6aC1oYW50IGZvciBjaGluZXNlIGNvbnZlcnNhdGlvbiwgZXRjLikgdG8gc3VtbWFyaXNlIHRoZSBjb252ZXJzYXRpb24gaW4gYXQgbW9zdCAyMDAgd29yZHMuIFRoZSBzdW1tYXJ5IHdpbGwgYmUgdXNlZCBhcyBwcm9tcHQgZm9yIHlvdSB0byBjb250aW51ZSB0aGUgY29udmVyc2F0aW9uIGluIHRoZSBmdXR1cmUuXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgQ29weToge1xyXG4gICAgU3VjY2VzczogXCLlt7LopIfoo73liLDliarosrznsL/kuK1cIixcclxuICAgIEZhaWxlZDogXCLopIfoo73lpLHmlZfvvIzoq4vos6bkuojliarosrznsL/mrIrpmZBcIixcclxuICB9LFxyXG4gIERvd25sb2FkOiB7XHJcbiAgICBTdWNjZXNzOiBcIuWFp+WuueW3suS4i+i8ieWIsOaCqOeahOebrumMhOOAglwiLFxyXG4gICAgRmFpbGVkOiBcIuS4i+i8ieWkseaVl+OAglwiLFxyXG4gIH0sXHJcbiAgQ29udGV4dDoge1xyXG4gICAgVG9hc3Q6ICh4OiBhbnkpID0+IGDlt7LoqK3lrpogJHt4fSDmop3liY3nva7kuIrkuIvmlodgLFxyXG4gICAgRWRpdDogXCLliY3nva7kuIrkuIvmloflkozmrbflj7LoqJjmhrZcIixcclxuICAgIEFkZDogXCLmlrDlop7kuIDliYdcIixcclxuICAgIENsZWFyOiBcIuS4iuS4i+aWh+W3sua4hemZpFwiLFxyXG4gICAgUmV2ZXJ0OiBcIuaBouW+qeS4iuS4i+aWh1wiLFxyXG4gIH0sXHJcbiAgUGx1Z2luOiB7IE5hbWU6IFwi5aSW5o6bXCIgfSxcclxuICBGaW5lVHVuZWQ6IHsgU3lzbWVzc2FnZTogXCLkvaDmmK/kuIDlgIvliqnmiYtcIiB9LFxyXG4gIE1hc2s6IHtcclxuICAgIE5hbWU6IFwi6KeS6Imy56+E5pysXCIsXHJcbiAgICBQYWdlOiB7XHJcbiAgICAgIFRpdGxlOiBcIumgkOioreinkuiJsuinkuiJsuevhOacrFwiLFxyXG4gICAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50fSDlgIvpoJDoqK3op5LoibLlrprnvqlgLFxyXG4gICAgICBTZWFyY2g6IFwi5pCc5bCL6KeS6Imy6KeS6Imy56+E5pysXCIsXHJcbiAgICAgIENyZWF0ZTogXCLmlrDlop5cIixcclxuICAgIH0sXHJcbiAgICBJdGVtOiB7XHJcbiAgICAgIEluZm86IChjb3VudDogbnVtYmVyKSA9PiBg5YyF5ZCrICR7Y291bnR9IOainemgkOioreWwjeipsWAsXHJcbiAgICAgIENoYXQ6IFwi5bCN6KmxXCIsXHJcbiAgICAgIFZpZXc6IFwi5qqi6KaWXCIsXHJcbiAgICAgIEVkaXQ6IFwi57eo6LyvXCIsXHJcbiAgICAgIERlbGV0ZTogXCLliKrpmaRcIixcclxuICAgICAgRGVsZXRlQ29uZmlybTogXCLnorroqo3liKrpmaTvvJ9cIixcclxuICAgIH0sXHJcbiAgICBFZGl0TW9kYWw6IHtcclxuICAgICAgVGl0bGU6IChyZWFkb25seTogYm9vbGVhbikgPT5cclxuICAgICAgICBg57eo6Lyv6aCQ6Kit6KeS6Imy56+E5pysICR7cmVhZG9ubHkgPyBcIu+8iOWUr+iugO+8iVwiIDogXCJcIn1gLFxyXG4gICAgICBEb3dubG9hZDogXCLkuIvovInpoJDoqK3lgLxcIixcclxuICAgICAgQ2xvbmU6IFwi5Lul5q2k6aCQ6Kit5YC85bu656uL5Ymv5pysXCIsXHJcbiAgICB9LFxyXG4gICAgQ29uZmlnOiB7XHJcbiAgICAgIEF2YXRhcjogXCLop5LoibLpoK3lg49cIixcclxuICAgICAgTmFtZTogXCLop5LoibLlkI3nqLFcIixcclxuICAgICAgU3luYzoge1xyXG4gICAgICAgIFRpdGxlOiBcIuS9v+eUqOWFqOWfn+ioreWumlwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIuebruWJjeWwjeipseaYr+WQpuS9v+eUqOWFqOWfn+aooeWei+ioreWumlwiLFxyXG4gICAgICAgIENvbmZpcm06IFwi55uu5YmN5bCN6Kmx55qE6Ieq6KiC6Kit5a6a5bCH5pyD6KKr6Ieq5YuV6KaG6JOL77yM56K66KqN5ZWf55So5YWo5Z+f6Kit5a6a77yfXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEhpZGVDb250ZXh0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwi6Zqx6JeP6aCQ6Kit5bCN6KmxXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi6Zqx6JeP5b6M6aCQ6Kit5bCN6Kmx5LiN5pyD5Ye654++5Zyo6IGK5aSp5LuL6Z2iXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFNoYXJlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwi5YiG5Lqr5q2k6KeS6Imy56+E5pysXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwi55Si55Sf5q2k6KeS6Imy56+E5pys55qE55u06YGU6YCj57WQXCIsXHJcbiAgICAgICAgQWN0aW9uOiBcIuikh+ijvemAo+e1kFwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9LFxyXG4gIFNlYXJjaENoYXQ6IHtcclxuICAgIE5hbWU6IFwi5pCc5bCL6IGK5aSp6KiY6YyEXCIsXHJcbiAgICBQYWdlOiB7XHJcbiAgICAgIFRpdGxlOiBcIuaQnOWwi+iBiuWkqeiomOmMhFwiLFxyXG4gICAgICBTZWFyY2g6IFwi6Ly45YWl5pCc5bCL6Zec6Y216KmeXCIsXHJcbiAgICAgIE5vUmVzdWx0OiBcIuaykuacieaJvuWIsOe1kOaenFwiLFxyXG4gICAgICBOb0RhdGE6IFwi5rKS5pyJ6LOH5paZXCIsXHJcbiAgICAgIExvYWRpbmc6IFwi6LyJ5YWl5LitXCIsXHJcblxyXG4gICAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGDmib7liLAgJHtjb3VudH0g5qKd57WQ5p6cYCxcclxuICAgIH0sXHJcbiAgICBJdGVtOiB7XHJcbiAgICAgIFZpZXc6IFwi5qqi6KaWXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgTmV3Q2hhdDoge1xyXG4gICAgUmV0dXJuOiBcIui/lOWbnlwiLFxyXG4gICAgU2tpcDogXCLot7PpgY5cIixcclxuICAgIE5vdFNob3c6IFwi5LiN5YaN6aGv56S6XCIsXHJcbiAgICBDb25maXJtTm9TaG93OiBcIueiuuiqjeWBnOeUqO+8n+WBnOeUqOW+jOWPr+S7pemaqOaZguWcqOioreWumuS4remHjeaWsOWVn+eUqOOAglwiLFxyXG4gICAgVGl0bGU6IFwi5oyR6YG45LiA5YCL6KeS6Imy56+E5pysXCIsXHJcbiAgICBTdWJUaXRsZTogXCLnj77lnKjplovlp4vvvIzoiIfop5LoibLnr4TmnKzog4zlvoznmoTpnYjprYLmgJ3ntq3norDmkp5cIixcclxuICAgIE1vcmU6IFwi5pCc5bCL5pu05aSaXCIsXHJcbiAgfSxcclxuICBVUkxDb21tYW5kOiB7XHJcbiAgICBDb2RlOiBcIuWBtea4rOWIsOmAo+e1kOS4reW3sue2k+WMheWQq+WtmOWPluWvhueivO+8jOaYr+WQpuiHquWLleWhq+WFpe+8n1wiLFxyXG4gICAgU2V0dGluZ3M6IFwi5YG15ris5Yiw6YCj57WQ5Lit5YyF5ZCr5LqG6aCQ6Kit6Kit5a6a77yM5piv5ZCm6Ieq5YuV5aGr5YWl77yfXCIsXHJcbiAgfSxcclxuICBVSToge1xyXG4gICAgQ29uZmlybTogXCLnorroqo1cIixcclxuICAgIENhbmNlbDogXCLlj5bmtohcIixcclxuICAgIENsb3NlOiBcIumXnOmWiVwiLFxyXG4gICAgQ3JlYXRlOiBcIuaWsOWinlwiLFxyXG4gICAgRWRpdDogXCLnt6jovK9cIixcclxuICAgIEV4cG9ydDogXCLljK/lh7pcIixcclxuICAgIEltcG9ydDogXCLljK/lhaVcIixcclxuICAgIFN5bmM6IFwi5ZCM5q2lXCIsXHJcbiAgICBDb25maWc6IFwi6Kit5a6aXCIsXHJcbiAgfSxcclxuICBFeHBvcnRlcjoge1xyXG4gICAgRGVzY3JpcHRpb246IHtcclxuICAgICAgVGl0bGU6IFwi5Y+q5pyJ5riF6Zmk5LiK5LiL5paH5LmL5b6M55qE6KiK5oGv5pyD6KKr6aGv56S6XCIsXHJcbiAgICB9LFxyXG4gICAgTW9kZWw6IFwi5qih5Z6LXCIsXHJcbiAgICBNZXNzYWdlczogXCLoqIrmga9cIixcclxuICAgIFRvcGljOiBcIuS4u+mhjFwiLFxyXG4gICAgVGltZTogXCLmmYLplpNcIixcclxuICB9LFxyXG59O1xyXG5cclxudHlwZSBEZWVwUGFydGlhbDxUPiA9IFQgZXh0ZW5kcyBvYmplY3RcclxuICA/IHtcclxuICAgICAgW1AgaW4ga2V5b2YgVF0/OiBEZWVwUGFydGlhbDxUW1BdPjtcclxuICAgIH1cclxuICA6IFQ7XHJcblxyXG5leHBvcnQgdHlwZSBMb2NhbGVUeXBlID0gdHlwZW9mIHR3O1xyXG5leHBvcnQgdHlwZSBQYXJ0aWFsTG9jYWxlVHlwZSA9IERlZXBQYXJ0aWFsPHR5cGVvZiB0dz47XHJcblxyXG5leHBvcnQgZGVmYXVsdCB0dztcclxuLy8gVHJhbnNsYXRlZCBieSBAY2h1bmtpdXV1LCBmZWVsIGZyZWUgdGhlIHN1Ym1pdCBuZXcgcHIgaWYgdGhlcmUgYXJlIHR5cG8vaW5jb3JyZWN0IHRyYW5zbGF0aW9ucyA6RFxyXG4iXSwibmFtZXMiOlsiZ2V0Q2xpZW50Q29uZmlnIiwiU3VibWl0S2V5IiwiU0FBU19DSEFUX1VUTV9VUkwiLCJpc0FwcCIsInR3IiwiV0lQIiwiRXJyb3IiLCJVbmF1dGhvcml6ZWQiLCJBdXRoIiwiVGl0bGUiLCJUaXBzIiwiU3ViVGlwcyIsIklucHV0IiwiQ29uZmlybSIsIkxhdGVyIiwiUmV0dXJuIiwiU2Fhc1RpcHMiLCJUb3BUaXBzIiwiQ2hhdEl0ZW0iLCJDaGF0SXRlbUNvdW50IiwiY291bnQiLCJDaGF0IiwiU3ViVGl0bGUiLCJFZGl0TWVzc2FnZSIsIlRvcGljIiwiQWN0aW9ucyIsIkNoYXRMaXN0IiwiQ29tcHJlc3NlZEhpc3RvcnkiLCJFeHBvcnQiLCJDb3B5IiwiU3RvcCIsIlJldHJ5IiwiUGluIiwiUGluVG9hc3RDb250ZW50IiwiUGluVG9hc3RBY3Rpb24iLCJEZWxldGUiLCJFZGl0IiwiUmVmcmVzaFRpdGxlIiwiUmVmcmVzaFRvYXN0IiwiQ29tbWFuZHMiLCJuZXciLCJuZXdtIiwibmV4dCIsInByZXYiLCJjbGVhciIsImRlbCIsIklucHV0QWN0aW9ucyIsIlRvQm90dG9tIiwiVGhlbWUiLCJhdXRvIiwibGlnaHQiLCJkYXJrIiwiUHJvbXB0IiwiTWFza3MiLCJDbGVhciIsIlNldHRpbmdzIiwiVXBsb2FkSW1hZ2UiLCJSZW5hbWUiLCJUeXBpbmciLCJzdWJtaXRLZXkiLCJpbnB1dEhpbnRzIiwiU3RyaW5nIiwiRW50ZXIiLCJTZW5kIiwiQ29uZmlnIiwiUmVzZXQiLCJTYXZlQXMiLCJJc0NvbnRleHQiLCJTaG9ydGN1dEtleSIsIm5ld0NoYXQiLCJmb2N1c0lucHV0IiwiY29weUxhc3RNZXNzYWdlIiwiY29weUxhc3RDb2RlIiwic2hvd1Nob3J0Y3V0S2V5IiwiY2xlYXJDb250ZXh0IiwiRG93bmxvYWQiLCJTaGFyZSIsIk1lc3NhZ2VGcm9tWW91IiwiTWVzc2FnZUZyb21DaGF0R1BUIiwiRm9ybWF0IiwiSW5jbHVkZUNvbnRleHQiLCJTdGVwcyIsIlNlbGVjdCIsIlByZXZpZXciLCJJbWFnZSIsIlRvYXN0IiwiTW9kYWwiLCJTZWFyY2giLCJBbGwiLCJMYXRlc3QiLCJNZW1vcnkiLCJFbXB0eUNvbnRlbnQiLCJSZXNldENvbmZpcm0iLCJIb21lIiwiTmV3Q2hhdCIsIkRlbGV0ZUNoYXQiLCJEZWxldGVUb2FzdCIsIlJldmVydCIsIkRhbmdlciIsIkFjdGlvbiIsIkxhbmciLCJOYW1lIiwiQXZhdGFyIiwiRm9udFNpemUiLCJGb250RmFtaWx5IiwiUGxhY2Vob2xkZXIiLCJJbmplY3RTeXN0ZW1Qcm9tcHRzIiwiSW5wdXRUZW1wbGF0ZSIsIlVwZGF0ZSIsIlZlcnNpb24iLCJ4IiwiSXNMYXRlc3QiLCJDaGVja1VwZGF0ZSIsIklzQ2hlY2tpbmciLCJGb3VuZFVwZGF0ZSIsIkdvVG9VcGRhdGUiLCJTZW5kS2V5IiwiVGlnaHRCb3JkZXIiLCJTZW5kUHJldmlld0J1YmJsZSIsIkF1dG9HZW5lcmF0ZVRpdGxlIiwiU3luYyIsIkNsb3VkU3RhdGUiLCJOb3RTeW5jWWV0IiwiU3VjY2VzcyIsIkZhaWwiLCJDaGVjayIsIlN5bmNUeXBlIiwiUHJveHkiLCJQcm94eVVybCIsIldlYkRhdiIsIkVuZHBvaW50IiwiVXNlck5hbWUiLCJQYXNzd29yZCIsIlVwU3Rhc2giLCJMb2NhbFN0YXRlIiwiT3ZlcnZpZXciLCJvdmVydmlldyIsImNoYXQiLCJtZXNzYWdlIiwicHJvbXB0IiwibWFzayIsIkltcG9ydEZhaWxlZCIsIk1hc2siLCJTcGxhc2giLCJCdWlsdGluIiwiRGlzYWJsZSIsIkxpc3QiLCJMaXN0Q291bnQiLCJidWlsdGluIiwiY3VzdG9tIiwiQWRkIiwiRWRpdE1vZGFsIiwiSGlzdG9yeUNvdW50IiwiQ29tcHJlc3NUaHJlc2hvbGQiLCJVc2FnZSIsInVzZWQiLCJ0b3RhbCIsIk5vQWNjZXNzIiwiQWNjZXNzIiwiU2Fhc1N0YXJ0IiwiTGFiZWwiLCJDaGF0Tm93IiwiQWNjZXNzQ29kZSIsIkN1c3RvbUVuZHBvaW50IiwiUHJvdmlkZXIiLCJPcGVuQUkiLCJBcGlLZXkiLCJBenVyZSIsIkFwaVZlcmlvbiIsIkFudGhyb3BpYyIsIkdvb2dsZSIsIkFwaVZlcnNpb24iLCJDdXN0b21Nb2RlbCIsIk1vZGVsIiwiQ29tcHJlc3NNb2RlbCIsIlRlbXBlcmF0dXJlIiwiVG9wUCIsIk1heFRva2VucyIsIlByZXNlbmNlUGVuYWx0eSIsIkZyZXF1ZW5jeVBlbmFsdHkiLCJTdG9yZSIsIkRlZmF1bHRUb3BpYyIsIkJvdEhlbGxvIiwiSGlzdG9yeSIsImNvbnRlbnQiLCJTdW1tYXJpemUiLCJGYWlsZWQiLCJDb250ZXh0IiwiUGx1Z2luIiwiRmluZVR1bmVkIiwiU3lzbWVzc2FnZSIsIlBhZ2UiLCJDcmVhdGUiLCJJdGVtIiwiSW5mbyIsIlZpZXciLCJEZWxldGVDb25maXJtIiwicmVhZG9ubHkiLCJDbG9uZSIsIkhpZGVDb250ZXh0IiwiU2VhcmNoQ2hhdCIsIk5vUmVzdWx0IiwiTm9EYXRhIiwiTG9hZGluZyIsIlNraXAiLCJOb3RTaG93IiwiQ29uZmlybU5vU2hvdyIsIk1vcmUiLCJVUkxDb21tYW5kIiwiQ29kZSIsIlVJIiwiQ2FuY2VsIiwiQ2xvc2UiLCJJbXBvcnQiLCJFeHBvcnRlciIsIkRlc2NyaXB0aW9uIiwiTWVzc2FnZXMiLCJUaW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/locales/tw.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/locales/vi.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/locales/vi.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _store_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../store/config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n\n\n\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_1__.getClientConfig)()?.isApp;\nconst vi = {\n WIP: \"Sắp ra mắt...\",\n Error: {\n Unauthorized: isApp ? `😆 Cuộc trò chuyện gặp một số vấn đề, đừng lo lắng:\r\n \\\\ 1️⃣ Nếu bạn muốn bắt đầu mà không cần cấu hình, [nhấp vào đây để bắt đầu trò chuyện ngay lập tức 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\\\ 2️⃣ Nếu bạn muốn sử dụng tài nguyên OpenAI của riêng mình, hãy nhấp [vào đây](/#/settings) để thay đổi cài đặt ⚙️` : `😆 Cuộc trò chuyện gặp một số vấn đề, đừng lo lắng:\r\n \\ 1️⃣ Nếu bạn muốn bắt đầu mà không cần cấu hình, [nhấp vào đây để bắt đầu trò chuyện ngay lập tức 🚀](${_app_constant__WEBPACK_IMPORTED_MODULE_2__.SAAS_CHAT_UTM_URL})\r\n \\ 2️⃣ Nếu bạn đang sử dụng phiên bản triển khai riêng, hãy nhấp [vào đây](/#/auth) để nhập khóa truy cập 🔑\r\n \\ 3️⃣ Nếu bạn muốn sử dụng tài nguyên OpenAI của riêng mình, hãy nhấp [vào đây](/#/settings) để thay đổi cài đặt ⚙️\r\n `\n },\n Auth: {\n Title: \"Cần mật khẩu\",\n Tips: \"Quản trị vi\\xean đ\\xe3 bật x\\xe1c thực mật khẩu, vui l\\xf2ng nhập m\\xe3 truy cập ở dưới\",\n SubTips: \"Hoặc nhập kh\\xf3a API OpenAI hoặc Google của bạn\",\n Input: \"Nhập m\\xe3 truy cập tại đ\\xe2y\",\n Confirm: \"X\\xe1c nhận\",\n Later: \"Để sau\",\n Return: \"Trở lại\",\n SaasTips: \"Cấu h\\xecnh qu\\xe1 phức tạp, t\\xf4i muốn sử dụng ngay lập tức\",\n TopTips: \"\\uD83E\\uDD73 Ưu đ\\xe3i ra mắt NextChat AI, mở kh\\xf3a OpenAI o1, GPT-4o, Claude-3.5 v\\xe0 c\\xe1c m\\xf4 h\\xecnh lớn mới nhất ngay b\\xe2y giờ\"\n },\n ChatItem: {\n ChatItemCount: (count)=>`${count} cuộc trò chuyện`\n },\n Chat: {\n SubTitle: (count)=>`Tổng cộng ${count} cuộc trò chuyện`,\n EditMessage: {\n Title: \"Chỉnh sửa ghi ch\\xe9p tin nhắn\",\n Topic: {\n Title: \"Chủ đề tr\\xf2 chuyện\",\n SubTitle: \"Thay đổi chủ đề tr\\xf2 chuyện hiện tại\"\n }\n },\n Actions: {\n ChatList: \"Xem danh s\\xe1ch tin nhắn\",\n CompressedHistory: \"Xem lịch sử Prompt đ\\xe3 n\\xe9n\",\n Export: \"Xuất khẩu ghi ch\\xe9p tr\\xf2 chuyện\",\n Copy: \"Sao ch\\xe9p\",\n Stop: \"Dừng lại\",\n Retry: \"Thử lại\",\n Pin: \"Ghim\",\n PinToastContent: \"Đ\\xe3 ghim 1 cuộc tr\\xf2 chuyện v\\xe0o lời nhắc đ\\xe3 đặt sẵn\",\n PinToastAction: \"Xem\",\n Delete: \"X\\xf3a\",\n Edit: \"Chỉnh sửa\",\n RefreshTitle: \"L\\xe0m mới ti\\xeau đề\",\n RefreshToast: \"Đ\\xe3 gửi y\\xeau cầu l\\xe0m mới ti\\xeau đề\"\n },\n Commands: {\n new: \"Tạo cuộc tr\\xf2 chuyện mới\",\n newm: \"Tạo cuộc tr\\xf2 chuyện từ mặt nạ\",\n next: \"Cuộc tr\\xf2 chuyện tiếp theo\",\n prev: \"Cuộc tr\\xf2 chuyện trước đ\\xf3\",\n clear: \"X\\xf3a ngữ cảnh\",\n del: \"X\\xf3a cuộc tr\\xf2 chuyện\"\n },\n InputActions: {\n Stop: \"Dừng phản hồi\",\n ToBottom: \"Cuộn đến tin nhắn mới nhất\",\n Theme: {\n auto: \"Chủ đề tự động\",\n light: \"Chế độ s\\xe1ng\",\n dark: \"Chế độ tối\"\n },\n Prompt: \"Lệnh tắt\",\n Masks: \"Tất cả mặt nạ\",\n Clear: \"X\\xf3a cuộc tr\\xf2 chuyện\",\n Settings: \"C\\xe0i đặt tr\\xf2 chuyện\",\n UploadImage: \"Tải l\\xean h\\xecnh ảnh\"\n },\n Rename: \"Đổi t\\xean cuộc tr\\xf2 chuyện\",\n Typing: \"Đang nhập…\",\n Input: (submitKey)=>{\n var inputHints = `${submitKey} gửi`;\n if (submitKey === String(_store_config__WEBPACK_IMPORTED_MODULE_0__.SubmitKey.Enter)) {\n inputHints += \",Shift + Enter xuống d\\xf2ng\";\n }\n return inputHints + \",/ k\\xedch hoạt ho\\xe0n chỉnh, : k\\xedch hoạt lệnh\";\n },\n Send: \"Gửi\",\n Config: {\n Reset: \"X\\xf3a tr\\xed nhớ\",\n SaveAs: \"Lưu dưới dạng mặt nạ\"\n },\n IsContext: \"Lời nhắc đ\\xe3 đặt sẵn\"\n },\n Export: {\n Title: \"Chia sẻ ghi ch\\xe9p tr\\xf2 chuyện\",\n Copy: \"Sao ch\\xe9p tất cả\",\n Download: \"Tải xuống tệp\",\n Share: \"Chia sẻ l\\xean ShareGPT\",\n MessageFromYou: \"Người d\\xf9ng\",\n MessageFromChatGPT: \"ChatGPT\",\n Format: {\n Title: \"Định dạng xuất khẩu\",\n SubTitle: \"C\\xf3 thể xuất khẩu dưới dạng văn bản Markdown hoặc h\\xecnh ảnh PNG\"\n },\n IncludeContext: {\n Title: \"Bao gồm ngữ cảnh mặt nạ\",\n SubTitle: \"C\\xf3 hiển thị ngữ cảnh mặt nạ trong tin nhắn kh\\xf4ng\"\n },\n Steps: {\n Select: \"Chọn\",\n Preview: \"Xem trước\"\n },\n Image: {\n Toast: \"Đang tạo ảnh chụp m\\xe0n h\\xecnh\",\n Modal: \"Nhấn giữ hoặc nhấp chuột phải để lưu h\\xecnh ảnh\"\n }\n },\n Select: {\n Search: \"T\\xecm kiếm tin nhắn\",\n All: \"Chọn tất cả\",\n Latest: \"Một v\\xe0i tin nhắn gần đ\\xe2y\",\n Clear: \"X\\xf3a lựa chọn\"\n },\n Memory: {\n Title: \"T\\xf3m tắt lịch sử\",\n EmptyContent: \"Nội dung tr\\xf2 chuyện qu\\xe1 ngắn, kh\\xf4ng cần t\\xf3m tắt\",\n Send: \"Tự động n\\xe9n ghi ch\\xe9p tr\\xf2 chuyện v\\xe0 gửi dưới dạng ngữ cảnh\",\n Copy: \"Sao ch\\xe9p t\\xf3m tắt\",\n Reset: \"[unused]\",\n ResetConfirm: \"X\\xe1c nhận x\\xf3a t\\xf3m tắt lịch sử?\"\n },\n Home: {\n NewChat: \"Cuộc tr\\xf2 chuyện mới\",\n DeleteChat: \"X\\xe1c nhận x\\xf3a cuộc tr\\xf2 chuyện đ\\xe3 chọn?\",\n DeleteToast: \"Đ\\xe3 x\\xf3a cuộc tr\\xf2 chuyện\",\n Revert: \"Ho\\xe0n t\\xe1c\"\n },\n Settings: {\n Title: \"C\\xe0i đặt\",\n SubTitle: \"Tất cả c\\xe1c t\\xf9y chọn c\\xe0i đặt\",\n Danger: {\n Reset: {\n Title: \"Đặt lại tất cả c\\xe0i đặt\",\n SubTitle: \"Đặt lại tất cả c\\xe1c mục c\\xe0i đặt về gi\\xe1 trị mặc định\",\n Action: \"Đặt lại ngay\",\n Confirm: \"X\\xe1c nhận đặt lại tất cả c\\xe0i đặt?\"\n },\n Clear: {\n Title: \"X\\xf3a tất cả dữ liệu\",\n SubTitle: \"X\\xf3a tất cả c\\xe1c cuộc tr\\xf2 chuyện v\\xe0 dữ liệu c\\xe0i đặt\",\n Action: \"X\\xf3a ngay\",\n Confirm: \"X\\xe1c nhận x\\xf3a tất cả cuộc tr\\xf2 chuyện v\\xe0 dữ liệu c\\xe0i đặt?\"\n }\n },\n Lang: {\n Name: \"Language\",\n All: \"Tất cả ng\\xf4n ngữ\"\n },\n Avatar: \"H\\xecnh đại diện\",\n FontSize: {\n Title: \"K\\xedch thước chữ\",\n SubTitle: \"K\\xedch thước chữ của nội dung tr\\xf2 chuyện\"\n },\n FontFamily: {\n Title: \"Ph\\xf4ng Chữ Tr\\xf2 Chuyện\",\n SubTitle: \"Ph\\xf4ng chữ của nội dung tr\\xf2 chuyện, để trống để \\xe1p dụng ph\\xf4ng chữ mặc định to\\xe0n cầu\",\n Placeholder: \"T\\xean Ph\\xf4ng Chữ\"\n },\n InjectSystemPrompts: {\n Title: \"Ti\\xeam th\\xf4ng b\\xe1o hệ thống\",\n SubTitle: \"Buộc th\\xeam một th\\xf4ng b\\xe1o hệ thống giả ChatGPT v\\xe0o đầu danh s\\xe1ch tin nhắn mỗi lần y\\xeau cầu\"\n },\n InputTemplate: {\n Title: \"Xử l\\xfd đầu v\\xe0o của người d\\xf9ng\",\n SubTitle: \"Tin nhắn mới nhất của người d\\xf9ng sẽ được điền v\\xe0o mẫu n\\xe0y\"\n },\n Update: {\n Version: (x)=>`Phiên bản hiện tại: ${x}`,\n IsLatest: \"Đ\\xe3 l\\xe0 phi\\xean bản mới nhất\",\n CheckUpdate: \"Kiểm tra cập nhật\",\n IsChecking: \"Đang kiểm tra cập nhật...\",\n FoundUpdate: (x)=>`Tìm thấy phiên bản mới: ${x}`,\n GoToUpdate: \"Đi đến cập nhật\"\n },\n SendKey: \"Ph\\xedm gửi\",\n Theme: \"Giao diện\",\n TightBorder: \"Chế độ kh\\xf4ng viền\",\n SendPreviewBubble: {\n Title: \"Bong b\\xf3ng xem trước\",\n SubTitle: \"Xem nội dung Markdown trong bong b\\xf3ng xem trước\"\n },\n AutoGenerateTitle: {\n Title: \"Tự động tạo ti\\xeau đề\",\n SubTitle: \"Tạo ti\\xeau đề ph\\xf9 hợp dựa tr\\xean nội dung cuộc tr\\xf2 chuyện\"\n },\n Sync: {\n CloudState: \"Dữ liệu đ\\xe1m m\\xe2y\",\n NotSyncYet: \"Chưa thực hiện đồng bộ\",\n Success: \"Đồng bộ th\\xe0nh c\\xf4ng\",\n Fail: \"Đồng bộ thất bại\",\n Config: {\n Modal: {\n Title: \"Cấu h\\xecnh đồng bộ đ\\xe1m m\\xe2y\",\n Check: \"Kiểm tra khả dụng\"\n },\n SyncType: {\n Title: \"Loại đồng bộ\",\n SubTitle: \"Chọn m\\xe1y chủ đồng bộ ưa th\\xedch\"\n },\n Proxy: {\n Title: \"K\\xedch hoạt proxy\",\n SubTitle: \"Khi đồng bộ qua tr\\xecnh duyệt, cần k\\xedch hoạt proxy để tr\\xe1nh hạn chế ngang miền\"\n },\n ProxyUrl: {\n Title: \"Địa chỉ proxy\",\n SubTitle: \"Chỉ \\xe1p dụng cho proxy ngang miền của dự \\xe1n n\\xe0y\"\n },\n WebDav: {\n Endpoint: \"Địa chỉ WebDAV\",\n UserName: \"T\\xean người d\\xf9ng\",\n Password: \"Mật khẩu\"\n },\n UpStash: {\n Endpoint: \"URL UpStash Redis REST\",\n UserName: \"T\\xean sao lưu\",\n Password: \"Token UpStash Redis REST\"\n }\n },\n LocalState: \"Dữ liệu cục bộ\",\n Overview: (overview)=>{\n return `${overview.chat} cuộc trò chuyện, ${overview.message} tin nhắn, ${overview.prompt} lệnh, ${overview.mask} mặt nạ`;\n },\n ImportFailed: \"Nhập kh\\xf4ng th\\xe0nh c\\xf4ng\"\n },\n Mask: {\n Splash: {\n Title: \"Trang khởi động mặt nạ\",\n SubTitle: \"Hiển thị trang khởi động mặt nạ khi tạo cuộc tr\\xf2 chuyện mới\"\n },\n Builtin: {\n Title: \"Ẩn mặt nạ t\\xedch hợp\",\n SubTitle: \"Ẩn mặt nạ t\\xedch hợp trong danh s\\xe1ch tất cả mặt nạ\"\n }\n },\n Prompt: {\n Disable: {\n Title: \"V\\xf4 hiệu h\\xf3a tự động ho\\xe0n th\\xe0nh lệnh\",\n SubTitle: \"Nhập / ở đầu \\xf4 nhập để k\\xedch hoạt tự động ho\\xe0n th\\xe0nh\"\n },\n List: \"Danh s\\xe1ch lệnh t\\xf9y chỉnh\",\n ListCount: (builtin, custom)=>`Tích hợp ${builtin} mục, người dùng định nghĩa ${custom} mục`,\n Edit: \"Chỉnh sửa\",\n Modal: {\n Title: \"Danh s\\xe1ch lệnh\",\n Add: \"Tạo mới\",\n Search: \"T\\xecm kiếm lệnh\"\n },\n EditModal: {\n Title: \"Chỉnh sửa lệnh\"\n }\n },\n HistoryCount: {\n Title: \"Số tin nhắn lịch sử k\\xe8m theo\",\n SubTitle: \"Số tin nhắn lịch sử k\\xe8m theo mỗi y\\xeau cầu\"\n },\n CompressThreshold: {\n Title: \"Ngưỡng n\\xe9n tin nhắn lịch sử\",\n SubTitle: \"Khi tin nhắn lịch sử chưa n\\xe9n vượt qu\\xe1 gi\\xe1 trị n\\xe0y, sẽ thực hiện n\\xe9n\"\n },\n Usage: {\n Title: \"Tra cứu số dư\",\n SubTitle (used, total) {\n return `Đã sử dụng trong tháng: $${used}, Tổng số đăng ký: $${total}`;\n },\n IsChecking: \"Đang kiểm tra…\",\n Check: \"Kiểm tra lại\",\n NoAccess: \"Nhập kh\\xf3a API hoặc mật khẩu truy cập để xem số dư\"\n },\n Access: {\n SaasStart: {\n Title: \"Sử dụng NextChat AI\",\n Label: \"(Giải ph\\xe1p tiết kiệm chi ph\\xed nhất)\",\n SubTitle: \"Được NextChat ch\\xednh thức duy tr\\xec, sẵn s\\xe0ng sử dụng m\\xe0 kh\\xf4ng cần cấu h\\xecnh, hỗ trợ c\\xe1c m\\xf4 h\\xecnh lớn mới nhất như OpenAI o1, GPT-4o v\\xe0 Claude-3.5\",\n ChatNow: \"Chat ngay\"\n },\n AccessCode: {\n Title: \"Mật khẩu truy cập\",\n SubTitle: \"Quản trị vi\\xean đ\\xe3 bật truy cập m\\xe3 h\\xf3a\",\n Placeholder: \"Nhập mật khẩu truy cập\"\n },\n CustomEndpoint: {\n Title: \"Giao diện t\\xf9y chỉnh\",\n SubTitle: \"C\\xf3 sử dụng dịch vụ Azure hoặc OpenAI t\\xf9y chỉnh kh\\xf4ng\"\n },\n Provider: {\n Title: \"Nh\\xe0 cung cấp dịch vụ m\\xf4 h\\xecnh\",\n SubTitle: \"Chuyển đổi giữa c\\xe1c nh\\xe0 cung cấp kh\\xe1c nhau\"\n },\n OpenAI: {\n ApiKey: {\n Title: \"API Key\",\n SubTitle: \"Sử dụng kh\\xf3a OpenAI t\\xf9y chỉnh để vượt qua hạn chế truy cập mật khẩu\",\n Placeholder: \"Kh\\xf3a API OpenAI\"\n },\n Endpoint: {\n Title: \"Địa chỉ giao diện\",\n SubTitle: \"Ngo\\xe0i địa chỉ mặc định, phải bao gồm http(s)://\"\n }\n },\n Azure: {\n ApiKey: {\n Title: \"Kh\\xf3a giao diện\",\n SubTitle: \"Sử dụng kh\\xf3a Azure t\\xf9y chỉnh để vượt qua hạn chế truy cập mật khẩu\",\n Placeholder: \"Kh\\xf3a API Azure\"\n },\n Endpoint: {\n Title: \"Địa chỉ giao diện\",\n SubTitle: \"V\\xed dụ:\"\n },\n ApiVerion: {\n Title: \"Phi\\xean bản giao diện (phi\\xean bản API azure)\",\n SubTitle: \"Chọn phi\\xean bản phần cụ thể\"\n }\n },\n Anthropic: {\n ApiKey: {\n Title: \"Kh\\xf3a giao diện\",\n SubTitle: \"Sử dụng kh\\xf3a Anthropic t\\xf9y chỉnh để vượt qua hạn chế truy cập mật khẩu\",\n Placeholder: \"Kh\\xf3a API Anthropic\"\n },\n Endpoint: {\n Title: \"Địa chỉ giao diện\",\n SubTitle: \"V\\xed dụ:\"\n },\n ApiVerion: {\n Title: \"Phi\\xean bản giao diện (phi\\xean bản API claude)\",\n SubTitle: \"Chọn một phi\\xean bản API cụ thể để nhập\"\n }\n },\n Google: {\n ApiKey: {\n Title: \"Kh\\xf3a API\",\n SubTitle: \"Lấy kh\\xf3a API từ Google AI\",\n Placeholder: \"Nhập kh\\xf3a API Google AI Studio của bạn\"\n },\n Endpoint: {\n Title: \"Địa chỉ cuối\",\n SubTitle: \"V\\xed dụ:\"\n },\n ApiVersion: {\n Title: \"Phi\\xean bản API (chỉ \\xe1p dụng cho gemini-pro)\",\n SubTitle: \"Chọn một phi\\xean bản API cụ thể\"\n },\n GoogleSafetySettings: {\n Title: \"Mức độ lọc an to\\xe0n Google\",\n SubTitle: \"C\\xe0i đặt mức độ lọc nội dung\"\n }\n },\n Baidu: {\n ApiKey: {\n Title: \"API Key\",\n SubTitle: \"Sử dụng kh\\xf3a Baidu API t\\xf9y chỉnh\",\n Placeholder: \"Kh\\xf3a API Baidu\"\n },\n SecretKey: {\n Title: \"Secret Key\",\n SubTitle: \"Sử dụng kh\\xf3a b\\xed mật Baidu t\\xf9y chỉnh\",\n Placeholder: \"Kh\\xf3a b\\xed mật Baidu\"\n },\n Endpoint: {\n Title: \"Địa chỉ giao diện\",\n SubTitle: \"Kh\\xf4ng hỗ trợ t\\xf9y chỉnh, h\\xe3y cấu h\\xecnh trong .env\"\n }\n },\n ByteDance: {\n ApiKey: {\n Title: \"Kh\\xf3a giao diện\",\n SubTitle: \"Sử dụng kh\\xf3a ByteDance API t\\xf9y chỉnh\",\n Placeholder: \"Kh\\xf3a API ByteDance\"\n },\n Endpoint: {\n Title: \"Địa chỉ giao diện\",\n SubTitle: \"V\\xed dụ:\"\n }\n },\n Alibaba: {\n ApiKey: {\n Title: \"Kh\\xf3a giao diện\",\n SubTitle: \"Sử dụng kh\\xf3a Alibaba Cloud API t\\xf9y chỉnh\",\n Placeholder: \"Kh\\xf3a API Alibaba Cloud\"\n },\n Endpoint: {\n Title: \"Địa chỉ giao diện\",\n SubTitle: \"V\\xed dụ:\"\n }\n },\n CustomModel: {\n Title: \"T\\xean m\\xf4 h\\xecnh t\\xf9y chỉnh\",\n SubTitle: \"Th\\xeam t\\xf9y chọn m\\xf4 h\\xecnh t\\xf9y chỉnh, sử dụng dấu phẩy để ph\\xe2n c\\xe1ch\"\n }\n },\n Model: \"M\\xf4 h\\xecnh (model)\",\n CompressModel: {\n Title: \"M\\xf4 h\\xecnh n\\xe9n\",\n SubTitle: \"M\\xf4 h\\xecnh được sử dụng để n\\xe9n lịch sử\"\n },\n Temperature: {\n Title: \"Độ ngẫu nhi\\xean (temperature)\",\n SubTitle: \"Gi\\xe1 trị c\\xe0ng lớn, c\\xe2u trả lời c\\xe0ng ngẫu nhi\\xean\"\n },\n TopP: {\n Title: \"Lấy mẫu hạt nh\\xe2n (top_p)\",\n SubTitle: \"Tương tự như độ ngẫu nhi\\xean, nhưng kh\\xf4ng thay đổi c\\xf9ng một l\\xfac\"\n },\n MaxTokens: {\n Title: \"Giới hạn phản hồi (max_tokens)\",\n SubTitle: \"Số Token tối đa cho mỗi tương t\\xe1c\"\n },\n PresencePenalty: {\n Title: \"Độ mới của chủ đề (presence_penalty)\",\n SubTitle: \"Gi\\xe1 trị c\\xe0ng lớn, khả năng mở rộng đến c\\xe1c chủ đề mới c\\xe0ng cao\"\n },\n FrequencyPenalty: {\n Title: \"H\\xecnh phạt tần suất (frequency_penalty)\",\n SubTitle: \"Gi\\xe1 trị c\\xe0ng lớn, khả năng giảm từ ngữ lặp lại c\\xe0ng cao\"\n }\n },\n Store: {\n DefaultTopic: \"Tr\\xf2 chuyện mới\",\n BotHello: \"C\\xf3 thể gi\\xfap g\\xec cho bạn?\",\n Error: \"Đ\\xe3 xảy ra lỗi, vui l\\xf2ng thử lại sau\",\n Prompt: {\n History: (content)=>\"Đ\\xe2y l\\xe0 t\\xf3m tắt cuộc tr\\xf2 chuyện lịch sử như tiền đề: \" + content,\n Topic: 'Sử dụng bốn đến năm từ để trả lại chủ đề t\\xf3m tắt của c\\xe2u n\\xe0y, kh\\xf4ng giải th\\xedch, kh\\xf4ng dấu c\\xe2u, kh\\xf4ng từ cảm th\\xe1n, kh\\xf4ng văn bản thừa, kh\\xf4ng in đậm, nếu kh\\xf4ng c\\xf3 chủ đề, h\\xe3y trả lại \"T\\xe1n gẫu\"',\n Summarize: \"T\\xf3m tắt nội dung cuộc tr\\xf2 chuyện một c\\xe1ch ngắn gọn, d\\xf9ng l\\xe0m gợi \\xfd ngữ cảnh cho c\\xe1c lần sau, giữ trong v\\xf2ng 200 từ\"\n }\n },\n Copy: {\n Success: \"Đ\\xe3 sao ch\\xe9p v\\xe0o clipboard\",\n Failed: \"Sao ch\\xe9p thất bại, vui l\\xf2ng cấp quyền clipboard\"\n },\n Download: {\n Success: \"Nội dung đ\\xe3 được tải xuống thư mục của bạn.\",\n Failed: \"Tải xuống thất bại.\"\n },\n Context: {\n Toast: (x)=>`Bao gồm ${x} lệnh gợi ý đã định sẵn`,\n Edit: \"C\\xe0i đặt cuộc tr\\xf2 chuyện hiện tại\",\n Add: \"Th\\xeam một cuộc tr\\xf2 chuyện\",\n Clear: \"Ngữ cảnh đ\\xe3 được x\\xf3a\",\n Revert: \"Kh\\xf4i phục ngữ cảnh\"\n },\n Plugin: {\n Name: \"Plugin\"\n },\n FineTuned: {\n Sysmessage: \"Bạn l\\xe0 một trợ l\\xfd\"\n },\n SearchChat: {\n Name: \"T\\xecm kiếm\",\n Page: {\n Title: \"T\\xecm kiếm lịch sử tr\\xf2 chuyện\",\n Search: \"Nhập từ kh\\xf3a t\\xecm kiếm\",\n NoResult: \"Kh\\xf4ng t\\xecm thấy kết quả\",\n NoData: \"Kh\\xf4ng c\\xf3 dữ liệu\",\n Loading: \"Đang tải\",\n SubTitle: (count)=>`Tìm thấy ${count} kết quả`\n },\n Item: {\n View: \"Xem\"\n }\n },\n Mask: {\n Name: \"Mặt nạ\",\n Page: {\n Title: \"Mặt nạ vai tr\\xf2 đ\\xe3 định sẵn\",\n SubTitle: (count)=>`${count} định nghĩa vai trò đã định sẵn`,\n Search: \"T\\xecm kiếm mặt nạ vai tr\\xf2\",\n Create: \"Tạo mới\"\n },\n Item: {\n Info: (count)=>`Bao gồm ${count} cuộc trò chuyện đã định sẵn`,\n Chat: \"Tr\\xf2 chuyện\",\n View: \"Xem\",\n Edit: \"Chỉnh sửa\",\n Delete: \"X\\xf3a\",\n DeleteConfirm: \"X\\xe1c nhận x\\xf3a?\"\n },\n EditModal: {\n Title: (readonly)=>`Chỉnh sửa mặt nạ định sẵn ${readonly ? \"(chỉ đọc)\" : \"\"}`,\n Download: \"Tải xuống mặt nạ\",\n Clone: \"Nh\\xe2n bản mặt nạ\"\n },\n Config: {\n Avatar: \"H\\xecnh đại diện vai tr\\xf2\",\n Name: \"T\\xean vai tr\\xf2\",\n Sync: {\n Title: \"Sử dụng c\\xe0i đặt to\\xe0n cục\",\n SubTitle: \"Cuộc tr\\xf2 chuyện hiện tại c\\xf3 sử dụng c\\xe0i đặt m\\xf4 h\\xecnh to\\xe0n cục kh\\xf4ng\",\n Confirm: \"C\\xe0i đặt t\\xf9y chỉnh của cuộc tr\\xf2 chuyện hiện tại sẽ bị ghi đ\\xe8 tự động, x\\xe1c nhận bật c\\xe0i đặt to\\xe0n cục?\"\n },\n HideContext: {\n Title: \"Ẩn cuộc tr\\xf2 chuyện đ\\xe3 định sẵn\",\n SubTitle: \"Sau khi ẩn, cuộc tr\\xf2 chuyện đ\\xe3 định sẵn sẽ kh\\xf4ng xuất hiện trong giao diện tr\\xf2 chuyện\"\n },\n Share: {\n Title: \"Chia sẻ mặt nạ n\\xe0y\",\n SubTitle: \"Tạo li\\xean kết trực tiếp đến mặt nạ n\\xe0y\",\n Action: \"Sao ch\\xe9p li\\xean kết\"\n }\n }\n },\n NewChat: {\n Return: \"Trở lại\",\n Skip: \"Bắt đầu ngay\",\n NotShow: \"Kh\\xf4ng hiển thị nữa\",\n ConfirmNoShow: \"X\\xe1c nhận v\\xf4 hiệu h\\xf3a? Sau khi v\\xf4 hiệu h\\xf3a, bạn c\\xf3 thể bật lại bất cứ l\\xfac n\\xe0o trong c\\xe0i đặt.\",\n Title: \"Chọn một mặt nạ\",\n SubTitle: \"Bắt đầu ngay, va chạm với suy nghĩ của linh hồn đứng sau mặt nạ\",\n More: \"Xem tất cả\"\n },\n URLCommand: {\n Code: \"Ph\\xe1t hiện m\\xe3 truy cập trong li\\xean kết, c\\xf3 tự động điền kh\\xf4ng?\",\n Settings: \"Ph\\xe1t hiện c\\xe0i đặt định sẵn trong li\\xean kết, c\\xf3 tự động điền kh\\xf4ng?\"\n },\n UI: {\n Confirm: \"X\\xe1c nhận\",\n Cancel: \"Hủy\",\n Close: \"Đ\\xf3ng\",\n Create: \"Tạo mới\",\n Edit: \"Chỉnh sửa\",\n Export: \"Xuất\",\n Import: \"Nhập\",\n Sync: \"Đồng bộ\",\n Config: \"Cấu h\\xecnh\"\n },\n Exporter: {\n Description: {\n Title: \"Chỉ tin nhắn sau khi x\\xf3a ngữ cảnh mới được hiển thị\"\n },\n Model: \"M\\xf4 h\\xecnh\",\n Messages: \"Tin nhắn\",\n Topic: \"Chủ đề\",\n Time: \"Thời gian\"\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (vi);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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UUFDUGEsVUFBVTtRQUNWdUwsTUFBTTtJQUNSO0lBRUFDLFlBQVk7UUFDVkMsTUFBTTtRQUNOeEosVUFDRTtJQUNKO0lBRUF5SixJQUFJO1FBQ0ZuTSxTQUFTO1FBQ1RvTSxRQUFRO1FBQ1JDLE9BQU87UUFDUGQsUUFBUTtRQUNSaEssTUFBTTtRQUNOUixRQUFRO1FBQ1J1TCxRQUFRO1FBQ1JsRyxNQUFNO1FBQ05qRCxRQUFRO0lBQ1Y7SUFDQW9KLFVBQVU7UUFDUkMsYUFBYTtZQUNYNU0sT0FBTztRQUNUO1FBQ0FrSyxPQUFPO1FBQ1AyQyxVQUFVO1FBQ1Y5TCxPQUFPO1FBQ1ArTCxNQUFNO0lBQ1I7QUFDRjtBQUVBLGlFQUFlbk4sRUFBRUEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2xvY2FsZXMvdmkudHM/YTk3YiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJtaXRLZXkgfSBmcm9tIFwiLi4vc3RvcmUvY29uZmlnXCI7XHJcbmltcG9ydCB0eXBlIHsgUGFydGlhbExvY2FsZVR5cGUgfSBmcm9tIFwiLi9pbmRleFwiO1xyXG5pbXBvcnQgeyBnZXRDbGllbnRDb25maWcgfSBmcm9tIFwiLi4vY29uZmlnL2NsaWVudFwiO1xyXG5pbXBvcnQgeyBTQUFTX0NIQVRfVVRNX1VSTCB9IGZyb20gXCJAL2FwcC9jb25zdGFudFwiO1xyXG5jb25zdCBpc0FwcCA9ICEhZ2V0Q2xpZW50Q29uZmlnKCk/LmlzQXBwO1xyXG5cclxuY29uc3Qgdmk6IFBhcnRpYWxMb2NhbGVUeXBlID0ge1xyXG4gIFdJUDogXCJT4bqvcCByYSBt4bqvdC4uLlwiLFxyXG4gIEVycm9yOiB7XHJcbiAgICBVbmF1dGhvcml6ZWQ6IGlzQXBwXHJcbiAgICAgID8gYPCfmIYgQ3Xhu5ljIHRyw7IgY2h1eeG7h24gZ+G6t3AgbeG7mXQgc+G7kSB24bqlbiDEkeG7gSwgxJHhu6tuZyBsbyBs4bqvbmc6XHJcbiAgICBcXFxcIDHvuI/ig6MgTuG6v3UgYuG6oW4gbXXhu5FuIGLhuq90IMSR4bqndSBtw6Aga2jDtG5nIGPhuqduIGPhuqV1IGjDrG5oLCBbbmjhuqVwIHbDoG8gxJHDonkgxJHhu4MgYuG6r3QgxJHhuqd1IHRyw7IgY2h1eeG7h24gbmdheSBs4bqtcCB04bupYyDwn5qAXSgke1NBQVNfQ0hBVF9VVE1fVVJMfSlcclxuICAgIFxcXFwgMu+4j+KDoyBO4bq/dSBi4bqhbiBtdeG7kW4gc+G7rSBk4bulbmcgdMOgaSBuZ3V5w6puIE9wZW5BSSBj4bunYSByacOqbmcgbcOsbmgsIGjDo3kgbmjhuqVwIFt2w6BvIMSRw6J5XSgvIy9zZXR0aW5ncykgxJHhu4MgdGhheSDEkeG7lWkgY8OgaSDEkeG6t3Qg4pqZ77iPYFxyXG4gICAgICA6IGDwn5iGIEN14buZYyB0csOyIGNodXnhu4duIGfhurdwIG3hu5l0IHPhu5EgduG6pW4gxJHhu4EsIMSR4burbmcgbG8gbOG6r25nOlxyXG4gICAgXFwgMe+4j+KDoyBO4bq/dSBi4bqhbiBtdeG7kW4gYuG6r3QgxJHhuqd1IG3DoCBraMO0bmcgY+G6p24gY+G6pXUgaMOsbmgsIFtuaOG6pXAgdsOgbyDEkcOieSDEkeG7gyBi4bqvdCDEkeG6p3UgdHLDsiBjaHV54buHbiBuZ2F5IGzhuq1wIHThu6ljIPCfmoBdKCR7U0FBU19DSEFUX1VUTV9VUkx9KVxyXG4gICAgXFwgMu+4j+KDoyBO4bq/dSBi4bqhbiDEkWFuZyBz4butIGThu6VuZyBwaGnDqm4gYuG6o24gdHJp4buDbiBraGFpIHJpw6puZywgaMOjeSBuaOG6pXAgW3bDoG8gxJHDonldKC8jL2F1dGgpIMSR4buDIG5o4bqtcCBraMOzYSB0cnV5IGPhuq1wIPCflJFcclxuICAgIFxcIDPvuI/ig6MgTuG6v3UgYuG6oW4gbXXhu5FuIHPhu60gZOG7pW5nIHTDoGkgbmd1ecOqbiBPcGVuQUkgY+G7p2EgcmnDqm5nIG3DrG5oLCBow6N5IG5o4bqlcCBbdsOgbyDEkcOieV0oLyMvc2V0dGluZ3MpIMSR4buDIHRoYXkgxJHhu5VpIGPDoGkgxJHhurd0IOKame+4j1xyXG4gYCxcclxuICB9LFxyXG4gIEF1dGg6IHtcclxuICAgIFRpdGxlOiBcIkPhuqduIG3huq10IGto4bqpdVwiLFxyXG4gICAgVGlwczogXCJRdeG6o24gdHLhu4sgdmnDqm4gxJHDoyBi4bqtdCB4w6FjIHRo4buxYyBt4bqtdCBraOG6qXUsIHZ1aSBsw7JuZyBuaOG6rXAgbcOjIHRydXkgY+G6rXAg4bufIGTGsOG7m2lcIixcclxuICAgIFN1YlRpcHM6IFwiSG/hurdjIG5o4bqtcCBraMOzYSBBUEkgT3BlbkFJIGhv4bq3YyBHb29nbGUgY+G7p2EgYuG6oW5cIixcclxuICAgIElucHV0OiBcIk5o4bqtcCBtw6MgdHJ1eSBj4bqtcCB04bqhaSDEkcOieVwiLFxyXG4gICAgQ29uZmlybTogXCJYw6FjIG5o4bqtblwiLFxyXG4gICAgTGF0ZXI6IFwixJDhu4Mgc2F1XCIsXHJcbiAgICBSZXR1cm46IFwiVHLhu58gbOG6oWlcIixcclxuICAgIFNhYXNUaXBzOiBcIkPhuqV1IGjDrG5oIHF1w6EgcGjhu6ljIHThuqFwLCB0w7RpIG114buRbiBz4butIGThu6VuZyBuZ2F5IGzhuq1wIHThu6ljXCIsXHJcbiAgICBUb3BUaXBzOlxyXG4gICAgICBcIvCfpbMgxq91IMSRw6NpIHJhIG3huq90IE5leHRDaGF0IEFJLCBt4bufIGtow7NhIE9wZW5BSSBvMSwgR1BULTRvLCBDbGF1ZGUtMy41IHbDoCBjw6FjIG3DtCBow6xuaCBs4bubbiBt4bubaSBuaOG6pXQgbmdheSBiw6J5IGdp4budXCIsXHJcbiAgfSxcclxuICBDaGF0SXRlbToge1xyXG4gICAgQ2hhdEl0ZW1Db3VudDogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50fSBjdeG7mWMgdHLDsiBjaHV54buHbmAsXHJcbiAgfSxcclxuICBDaGF0OiB7XHJcbiAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGBU4buVbmcgY+G7mW5nICR7Y291bnR9IGN14buZYyB0csOyIGNodXnhu4duYCxcclxuICAgIEVkaXRNZXNzYWdlOiB7XHJcbiAgICAgIFRpdGxlOiBcIkNo4buJbmggc+G7rWEgZ2hpIGNow6lwIHRpbiBuaOG6r25cIixcclxuICAgICAgVG9waWM6IHtcclxuICAgICAgICBUaXRsZTogXCJDaOG7pyDEkeG7gSB0csOyIGNodXnhu4duXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiVGhheSDEkeG7lWkgY2jhu6cgxJHhu4EgdHLDsiBjaHV54buHbiBoaeG7h24gdOG6oWlcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBBY3Rpb25zOiB7XHJcbiAgICAgIENoYXRMaXN0OiBcIlhlbSBkYW5oIHPDoWNoIHRpbiBuaOG6r25cIixcclxuICAgICAgQ29tcHJlc3NlZEhpc3Rvcnk6IFwiWGVtIGzhu4tjaCBz4butIFByb21wdCDEkcOjIG7DqW5cIixcclxuICAgICAgRXhwb3J0OiBcIlh14bqldCBraOG6qXUgZ2hpIGNow6lwIHRyw7IgY2h1eeG7h25cIixcclxuICAgICAgQ29weTogXCJTYW8gY2jDqXBcIixcclxuICAgICAgU3RvcDogXCJE4burbmcgbOG6oWlcIixcclxuICAgICAgUmV0cnk6IFwiVGjhu60gbOG6oWlcIixcclxuICAgICAgUGluOiBcIkdoaW1cIixcclxuICAgICAgUGluVG9hc3RDb250ZW50OiBcIsSQw6MgZ2hpbSAxIGN14buZYyB0csOyIGNodXnhu4duIHbDoG8gbOG7nWkgbmjhuq9jIMSRw6MgxJHhurd0IHPhurVuXCIsXHJcbiAgICAgIFBpblRvYXN0QWN0aW9uOiBcIlhlbVwiLFxyXG4gICAgICBEZWxldGU6IFwiWMOzYVwiLFxyXG4gICAgICBFZGl0OiBcIkNo4buJbmggc+G7rWFcIixcclxuICAgICAgUmVmcmVzaFRpdGxlOiBcIkzDoG0gbeG7m2kgdGnDqnUgxJHhu4FcIixcclxuICAgICAgUmVmcmVzaFRvYXN0OiBcIsSQw6MgZ+G7rWkgecOqdSBj4bqndSBsw6BtIG3hu5tpIHRpw6p1IMSR4buBXCIsXHJcbiAgICB9LFxyXG4gICAgQ29tbWFuZHM6IHtcclxuICAgICAgbmV3OiBcIlThuqFvIGN14buZYyB0csOyIGNodXnhu4duIG3hu5tpXCIsXHJcbiAgICAgIG5ld206IFwiVOG6oW8gY3Xhu5ljIHRyw7IgY2h1eeG7h24gdOG7qyBt4bq3dCBu4bqhXCIsXHJcbiAgICAgIG5leHQ6IFwiQ3Xhu5ljIHRyw7IgY2h1eeG7h24gdGnhur9wIHRoZW9cIixcclxuICAgICAgcHJldjogXCJDdeG7mWMgdHLDsiBjaHV54buHbiB0csaw4bubYyDEkcOzXCIsXHJcbiAgICAgIGNsZWFyOiBcIljDs2Egbmfhu68gY+G6o25oXCIsXHJcbiAgICAgIGRlbDogXCJYw7NhIGN14buZYyB0csOyIGNodXnhu4duXCIsXHJcbiAgICB9LFxyXG4gICAgSW5wdXRBY3Rpb25zOiB7XHJcbiAgICAgIFN0b3A6IFwiROG7q25nIHBo4bqjbiBo4buTaVwiLFxyXG4gICAgICBUb0JvdHRvbTogXCJDdeG7mW4gxJHhur9uIHRpbiBuaOG6r24gbeG7m2kgbmjhuqV0XCIsXHJcbiAgICAgIFRoZW1lOiB7XHJcbiAgICAgICAgYXV0bzogXCJDaOG7pyDEkeG7gSB04buxIMSR4buZbmdcIixcclxuICAgICAgICBsaWdodDogXCJDaOG6vyDEkeG7mSBzw6FuZ1wiLFxyXG4gICAgICAgIGRhcms6IFwiQ2jhur8gxJHhu5kgdOG7kWlcIixcclxuICAgICAgfSxcclxuICAgICAgUHJvbXB0OiBcIkzhu4duaCB04bqvdFwiLFxyXG4gICAgICBNYXNrczogXCJU4bqldCBj4bqjIG3hurd0IG7huqFcIixcclxuICAgICAgQ2xlYXI6IFwiWMOzYSBjdeG7mWMgdHLDsiBjaHV54buHblwiLFxyXG4gICAgICBTZXR0aW5nczogXCJDw6BpIMSR4bq3dCB0csOyIGNodXnhu4duXCIsXHJcbiAgICAgIFVwbG9hZEltYWdlOiBcIlThuqNpIGzDqm4gaMOsbmgg4bqjbmhcIixcclxuICAgIH0sXHJcbiAgICBSZW5hbWU6IFwixJDhu5VpIHTDqm4gY3Xhu5ljIHRyw7IgY2h1eeG7h25cIixcclxuICAgIFR5cGluZzogXCLEkGFuZyBuaOG6rXDigKZcIixcclxuICAgIElucHV0OiAoc3VibWl0S2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgdmFyIGlucHV0SGludHMgPSBgJHtzdWJtaXRLZXl9IGfhu61pYDtcclxuICAgICAgaWYgKHN1Ym1pdEtleSA9PT0gU3RyaW5nKFN1Ym1pdEtleS5FbnRlcikpIHtcclxuICAgICAgICBpbnB1dEhpbnRzICs9IFwi77yMU2hpZnQgKyBFbnRlciB4deG7kW5nIGTDsm5nXCI7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGlucHV0SGludHMgKyBcIu+8jC8ga8OtY2ggaG/huqF0IGhvw6BuIGNo4buJbmgsIDoga8OtY2ggaG/huqF0IGzhu4duaFwiO1xyXG4gICAgfSxcclxuICAgIFNlbmQ6IFwiR+G7rWlcIixcclxuICAgIENvbmZpZzoge1xyXG4gICAgICBSZXNldDogXCJYw7NhIHRyw60gbmjhu5tcIixcclxuICAgICAgU2F2ZUFzOiBcIkzGsHUgZMaw4bubaSBk4bqhbmcgbeG6t3QgbuG6oVwiLFxyXG4gICAgfSxcclxuICAgIElzQ29udGV4dDogXCJM4budaSBuaOG6r2MgxJHDoyDEkeG6t3Qgc+G6tW5cIixcclxuICB9LFxyXG4gIEV4cG9ydDoge1xyXG4gICAgVGl0bGU6IFwiQ2hpYSBz4bq7IGdoaSBjaMOpcCB0csOyIGNodXnhu4duXCIsXHJcbiAgICBDb3B5OiBcIlNhbyBjaMOpcCB04bqldCBj4bqjXCIsXHJcbiAgICBEb3dubG9hZDogXCJU4bqjaSB4deG7kW5nIHThu4dwXCIsXHJcbiAgICBTaGFyZTogXCJDaGlhIHPhursgbMOqbiBTaGFyZUdQVFwiLFxyXG4gICAgTWVzc2FnZUZyb21Zb3U6IFwiTmfGsOG7nWkgZMO5bmdcIixcclxuICAgIE1lc3NhZ2VGcm9tQ2hhdEdQVDogXCJDaGF0R1BUXCIsXHJcbiAgICBGb3JtYXQ6IHtcclxuICAgICAgVGl0bGU6IFwixJDhu4tuaCBk4bqhbmcgeHXhuqV0IGto4bqpdVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJDw7MgdGjhu4MgeHXhuqV0IGto4bqpdSBkxrDhu5tpIGThuqFuZyB2xINuIGLhuqNuIE1hcmtkb3duIGhv4bq3YyBow6xuaCDhuqNuaCBQTkdcIixcclxuICAgIH0sXHJcbiAgICBJbmNsdWRlQ29udGV4dDoge1xyXG4gICAgICBUaXRsZTogXCJCYW8gZ+G7k20gbmfhu68gY+G6o25oIG3hurd0IG7huqFcIixcclxuICAgICAgU3ViVGl0bGU6IFwiQ8OzIGhp4buDbiB0aOG7iyBuZ+G7ryBj4bqjbmggbeG6t3QgbuG6oSB0cm9uZyB0aW4gbmjhuq9uIGtow7RuZ1wiLFxyXG4gICAgfSxcclxuICAgIFN0ZXBzOiB7XHJcbiAgICAgIFNlbGVjdDogXCJDaOG7jW5cIixcclxuICAgICAgUHJldmlldzogXCJYZW0gdHLGsOG7m2NcIixcclxuICAgIH0sXHJcbiAgICBJbWFnZToge1xyXG4gICAgICBUb2FzdDogXCLEkGFuZyB04bqhbyDhuqNuaCBjaOG7pXAgbcOgbiBow6xuaFwiLFxyXG4gICAgICBNb2RhbDogXCJOaOG6pW4gZ2nhu68gaG/hurdjIG5o4bqlcCBjaHXhu5l0IHBo4bqjaSDEkeG7gyBsxrB1IGjDrG5oIOG6o25oXCIsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgU2VsZWN0OiB7XHJcbiAgICBTZWFyY2g6IFwiVMOsbSBraeG6v20gdGluIG5o4bqvblwiLFxyXG4gICAgQWxsOiBcIkNo4buNbiB04bqldCBj4bqjXCIsXHJcbiAgICBMYXRlc3Q6IFwiTeG7mXQgdsOgaSB0aW4gbmjhuq9uIGfhuqduIMSRw6J5XCIsXHJcbiAgICBDbGVhcjogXCJYw7NhIGzhu7FhIGNo4buNblwiLFxyXG4gIH0sXHJcbiAgTWVtb3J5OiB7XHJcbiAgICBUaXRsZTogXCJUw7NtIHThuq90IGzhu4tjaCBz4butXCIsXHJcbiAgICBFbXB0eUNvbnRlbnQ6IFwiTuG7mWkgZHVuZyB0csOyIGNodXnhu4duIHF1w6Egbmfhuq9uLCBraMO0bmcgY+G6p24gdMOzbSB04bqvdFwiLFxyXG4gICAgU2VuZDogXCJU4buxIMSR4buZbmcgbsOpbiBnaGkgY2jDqXAgdHLDsiBjaHV54buHbiB2w6AgZ+G7rWkgZMaw4bubaSBk4bqhbmcgbmfhu68gY+G6o25oXCIsXHJcbiAgICBDb3B5OiBcIlNhbyBjaMOpcCB0w7NtIHThuq90XCIsXHJcbiAgICBSZXNldDogXCJbdW51c2VkXVwiLFxyXG4gICAgUmVzZXRDb25maXJtOiBcIljDoWMgbmjhuq1uIHjDs2EgdMOzbSB04bqvdCBs4buLY2ggc+G7rT9cIixcclxuICB9LFxyXG4gIEhvbWU6IHtcclxuICAgIE5ld0NoYXQ6IFwiQ3Xhu5ljIHRyw7IgY2h1eeG7h24gbeG7m2lcIixcclxuICAgIERlbGV0ZUNoYXQ6IFwiWMOhYyBuaOG6rW4geMOzYSBjdeG7mWMgdHLDsiBjaHV54buHbiDEkcOjIGNo4buNbj9cIixcclxuICAgIERlbGV0ZVRvYXN0OiBcIsSQw6MgeMOzYSBjdeG7mWMgdHLDsiBjaHV54buHblwiLFxyXG4gICAgUmV2ZXJ0OiBcIkhvw6BuIHTDoWNcIixcclxuICB9LFxyXG4gIFNldHRpbmdzOiB7XHJcbiAgICBUaXRsZTogXCJDw6BpIMSR4bq3dFwiLFxyXG4gICAgU3ViVGl0bGU6IFwiVOG6pXQgY+G6oyBjw6FjIHTDuXkgY2jhu41uIGPDoGkgxJHhurd0XCIsXHJcblxyXG4gICAgRGFuZ2VyOiB7XHJcbiAgICAgIFJlc2V0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwixJDhurd0IGzhuqFpIHThuqV0IGPhuqMgY8OgaSDEkeG6t3RcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLEkOG6t3QgbOG6oWkgdOG6pXQgY+G6oyBjw6FjIG3hu6VjIGPDoGkgxJHhurd0IHbhu4EgZ2nDoSB0cuG7iyBt4bq3YyDEkeG7i25oXCIsXHJcbiAgICAgICAgQWN0aW9uOiBcIsSQ4bq3dCBs4bqhaSBuZ2F5XCIsXHJcbiAgICAgICAgQ29uZmlybTogXCJYw6FjIG5o4bqtbiDEkeG6t3QgbOG6oWkgdOG6pXQgY+G6oyBjw6BpIMSR4bq3dD9cIixcclxuICAgICAgfSxcclxuICAgICAgQ2xlYXI6IHtcclxuICAgICAgICBUaXRsZTogXCJYw7NhIHThuqV0IGPhuqMgZOG7ryBsaeG7h3VcIixcclxuICAgICAgICBTdWJUaXRsZTogXCJYw7NhIHThuqV0IGPhuqMgY8OhYyBjdeG7mWMgdHLDsiBjaHV54buHbiB2w6AgZOG7ryBsaeG7h3UgY8OgaSDEkeG6t3RcIixcclxuICAgICAgICBBY3Rpb246IFwiWMOzYSBuZ2F5XCIsXHJcbiAgICAgICAgQ29uZmlybTogXCJYw6FjIG5o4bqtbiB4w7NhIHThuqV0IGPhuqMgY3Xhu5ljIHRyw7IgY2h1eeG7h24gdsOgIGThu68gbGnhu4d1IGPDoGkgxJHhurd0P1wiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIExhbmc6IHtcclxuICAgICAgTmFtZTogXCJMYW5ndWFnZVwiLCAvLyBDSMOaIMOdOiBu4bq/dSBi4bqhbiBtdeG7kW4gdGjDqm0gbeG7mXQgYuG6o24gZOG7i2NoIG3hu5tpLCB2dWkgbMOybmcga2jDtG5nIGThu4tjaCBnacOhIHRy4buLIG7DoHksIMSR4buDIG7DsyBsw6AgYExhbmd1YWdlYFxyXG4gICAgICBBbGw6IFwiVOG6pXQgY+G6oyBuZ8O0biBuZ+G7r1wiLFxyXG4gICAgfSxcclxuICAgIEF2YXRhcjogXCJIw6xuaCDEkeG6oWkgZGnhu4duXCIsXHJcbiAgICBGb250U2l6ZToge1xyXG4gICAgICBUaXRsZTogXCJLw61jaCB0aMaw4bubYyBjaOG7r1wiLFxyXG4gICAgICBTdWJUaXRsZTogXCJLw61jaCB0aMaw4bubYyBjaOG7ryBj4bunYSBu4buZaSBkdW5nIHRyw7IgY2h1eeG7h25cIixcclxuICAgIH0sXHJcbiAgICBGb250RmFtaWx5OiB7XHJcbiAgICAgIFRpdGxlOiBcIlBow7RuZyBDaOG7ryBUcsOyIENodXnhu4duXCIsXHJcbiAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgIFwiUGjDtG5nIGNo4buvIGPhu6dhIG7hu5lpIGR1bmcgdHLDsiBjaHV54buHbiwgxJHhu4MgdHLhu5FuZyDEkeG7gyDDoXAgZOG7pW5nIHBow7RuZyBjaOG7ryBt4bq3YyDEkeG7i25oIHRvw6BuIGPhuqd1XCIsXHJcbiAgICAgIFBsYWNlaG9sZGVyOiBcIlTDqm4gUGjDtG5nIENo4buvXCIsXHJcbiAgICB9LFxyXG4gICAgSW5qZWN0U3lzdGVtUHJvbXB0czoge1xyXG4gICAgICBUaXRsZTogXCJUacOqbSB0aMO0bmcgYsOhbyBo4buHIHRo4buRbmdcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJCdeG7mWMgdGjDqm0gbeG7mXQgdGjDtG5nIGLDoW8gaOG7hyB0aOG7kW5nIGdp4bqjIENoYXRHUFQgdsOgbyDEkeG6p3UgZGFuaCBzw6FjaCB0aW4gbmjhuq9uIG3hu5dpIGzhuqduIHnDqnUgY+G6p3VcIixcclxuICAgIH0sXHJcbiAgICBJbnB1dFRlbXBsYXRlOiB7XHJcbiAgICAgIFRpdGxlOiBcIljhu60gbMO9IMSR4bqndSB2w6BvIGPhu6dhIG5nxrDhu51pIGTDuW5nXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIlRpbiBuaOG6r24gbeG7m2kgbmjhuqV0IGPhu6dhIG5nxrDhu51pIGTDuW5nIHPhur0gxJHGsOG7o2MgxJFp4buBbiB2w6BvIG3huqt1IG7DoHlcIixcclxuICAgIH0sXHJcblxyXG4gICAgVXBkYXRlOiB7XHJcbiAgICAgIFZlcnNpb246ICh4OiBzdHJpbmcpID0+IGBQaGnDqm4gYuG6o24gaGnhu4duIHThuqFpOiAke3h9YCxcclxuICAgICAgSXNMYXRlc3Q6IFwixJDDoyBsw6AgcGhpw6puIGLhuqNuIG3hu5tpIG5o4bqldFwiLFxyXG4gICAgICBDaGVja1VwZGF0ZTogXCJLaeG7g20gdHJhIGPhuq1wIG5o4bqtdFwiLFxyXG4gICAgICBJc0NoZWNraW5nOiBcIsSQYW5nIGtp4buDbSB0cmEgY+G6rXAgbmjhuq10Li4uXCIsXHJcbiAgICAgIEZvdW5kVXBkYXRlOiAoeDogc3RyaW5nKSA9PiBgVMOsbSB0aOG6pXkgcGhpw6puIGLhuqNuIG3hu5tpOiAke3h9YCxcclxuICAgICAgR29Ub1VwZGF0ZTogXCLEkGkgxJHhur9uIGPhuq1wIG5o4bqtdFwiLFxyXG4gICAgfSxcclxuICAgIFNlbmRLZXk6IFwiUGjDrW0gZ+G7rWlcIixcclxuICAgIFRoZW1lOiBcIkdpYW8gZGnhu4duXCIsXHJcbiAgICBUaWdodEJvcmRlcjogXCJDaOG6vyDEkeG7mSBraMO0bmcgdmnhu4FuXCIsXHJcbiAgICBTZW5kUHJldmlld0J1YmJsZToge1xyXG4gICAgICBUaXRsZTogXCJCb25nIGLDs25nIHhlbSB0csaw4bubY1wiLFxyXG4gICAgICBTdWJUaXRsZTogXCJYZW0gbuG7mWkgZHVuZyBNYXJrZG93biB0cm9uZyBib25nIGLDs25nIHhlbSB0csaw4bubY1wiLFxyXG4gICAgfSxcclxuICAgIEF1dG9HZW5lcmF0ZVRpdGxlOiB7XHJcbiAgICAgIFRpdGxlOiBcIlThu7EgxJHhu5luZyB04bqhbyB0acOqdSDEkeG7gVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJU4bqhbyB0acOqdSDEkeG7gSBwaMO5IGjhu6NwIGThu7FhIHRyw6puIG7hu5lpIGR1bmcgY3Xhu5ljIHRyw7IgY2h1eeG7h25cIixcclxuICAgIH0sXHJcbiAgICBTeW5jOiB7XHJcbiAgICAgIENsb3VkU3RhdGU6IFwiROG7ryBsaeG7h3UgxJHDoW0gbcOieVwiLFxyXG4gICAgICBOb3RTeW5jWWV0OiBcIkNoxrBhIHRo4buxYyBoaeG7h24gxJHhu5NuZyBi4buZXCIsXHJcbiAgICAgIFN1Y2Nlc3M6IFwixJDhu5NuZyBi4buZIHRow6BuaCBjw7RuZ1wiLFxyXG4gICAgICBGYWlsOiBcIsSQ4buTbmcgYuG7mSB0aOG6pXQgYuG6oWlcIixcclxuXHJcbiAgICAgIENvbmZpZzoge1xyXG4gICAgICAgIE1vZGFsOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJD4bqldSBow6xuaCDEkeG7k25nIGLhu5kgxJHDoW0gbcOieVwiLFxyXG4gICAgICAgICAgQ2hlY2s6IFwiS2nhu4NtIHRyYSBraOG6oyBk4bulbmdcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFN5bmNUeXBlOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJMb+G6oWkgxJHhu5NuZyBi4buZXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJDaOG7jW4gbcOheSBjaOG7pyDEkeG7k25nIGLhu5kgxrBhIHRow61jaFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgUHJveHk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIkvDrWNoIGhv4bqhdCBwcm94eVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiS2hpIMSR4buTbmcgYuG7mSBxdWEgdHLDrG5oIGR1eeG7h3QsIGPhuqduIGvDrWNoIGhv4bqhdCBwcm94eSDEkeG7gyB0csOhbmggaOG6oW4gY2jhur8gbmdhbmcgbWnhu4FuXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQcm94eVVybDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwixJDhu4thIGNo4buJIHByb3h5XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJDaOG7iSDDoXAgZOG7pW5nIGNobyBwcm94eSBuZ2FuZyBtaeG7gW4gY+G7p2EgZOG7sSDDoW4gbsOgeVwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIFdlYkRhdjoge1xyXG4gICAgICAgICAgRW5kcG9pbnQ6IFwixJDhu4thIGNo4buJIFdlYkRBVlwiLFxyXG4gICAgICAgICAgVXNlck5hbWU6IFwiVMOqbiBuZ8aw4budaSBkw7luZ1wiLFxyXG4gICAgICAgICAgUGFzc3dvcmQ6IFwiTeG6rXQga2jhuql1XCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgVXBTdGFzaDoge1xyXG4gICAgICAgICAgRW5kcG9pbnQ6IFwiVVJMIFVwU3Rhc2ggUmVkaXMgUkVTVFwiLFxyXG4gICAgICAgICAgVXNlck5hbWU6IFwiVMOqbiBzYW8gbMawdVwiLFxyXG4gICAgICAgICAgUGFzc3dvcmQ6IFwiVG9rZW4gVXBTdGFzaCBSZWRpcyBSRVNUXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuXHJcbiAgICAgIExvY2FsU3RhdGU6IFwiROG7ryBsaeG7h3UgY+G7pWMgYuG7mVwiLFxyXG4gICAgICBPdmVydmlldzogKG92ZXJ2aWV3OiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gYCR7b3ZlcnZpZXcuY2hhdH0gY3Xhu5ljIHRyw7IgY2h1eeG7h24sICR7b3ZlcnZpZXcubWVzc2FnZX0gdGluIG5o4bqvbiwgJHtvdmVydmlldy5wcm9tcHR9IGzhu4duaCwgJHtvdmVydmlldy5tYXNrfSBt4bq3dCBu4bqhYDtcclxuICAgICAgfSxcclxuICAgICAgSW1wb3J0RmFpbGVkOiBcIk5o4bqtcCBraMO0bmcgdGjDoG5oIGPDtG5nXCIsXHJcbiAgICB9LFxyXG4gICAgTWFzazoge1xyXG4gICAgICBTcGxhc2g6IHtcclxuICAgICAgICBUaXRsZTogXCJUcmFuZyBraOG7n2kgxJHhu5luZyBt4bq3dCBu4bqhXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiSGnhu4NuIHRo4buLIHRyYW5nIGto4bufaSDEkeG7mW5nIG3hurd0IG7huqEga2hpIHThuqFvIGN14buZYyB0csOyIGNodXnhu4duIG3hu5tpXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEJ1aWx0aW46IHtcclxuICAgICAgICBUaXRsZTogXCLhuqhuIG3hurd0IG7huqEgdMOtY2ggaOG7o3BcIixcclxuICAgICAgICBTdWJUaXRsZTogXCLhuqhuIG3hurd0IG7huqEgdMOtY2ggaOG7o3AgdHJvbmcgZGFuaCBzw6FjaCB04bqldCBj4bqjIG3hurd0IG7huqFcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBQcm9tcHQ6IHtcclxuICAgICAgRGlzYWJsZToge1xyXG4gICAgICAgIFRpdGxlOiBcIlbDtCBoaeG7h3UgaMOzYSB04buxIMSR4buZbmcgaG/DoG4gdGjDoG5oIGzhu4duaFwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIk5o4bqtcCAvIOG7nyDEkeG6p3Ugw7Qgbmjhuq1wIMSR4buDIGvDrWNoIGhv4bqhdCB04buxIMSR4buZbmcgaG/DoG4gdGjDoG5oXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIExpc3Q6IFwiRGFuaCBzw6FjaCBs4buHbmggdMO5eSBjaOG7iW5oXCIsXHJcbiAgICAgIExpc3RDb3VudDogKGJ1aWx0aW46IG51bWJlciwgY3VzdG9tOiBudW1iZXIpID0+XHJcbiAgICAgICAgYFTDrWNoIGjhu6NwICR7YnVpbHRpbn0gbeG7pWMsIG5nxrDhu51pIGTDuW5nIMSR4buLbmggbmdoxKlhICR7Y3VzdG9tfSBt4bulY2AsXHJcbiAgICAgIEVkaXQ6IFwiQ2jhu4luaCBz4butYVwiLFxyXG4gICAgICBNb2RhbDoge1xyXG4gICAgICAgIFRpdGxlOiBcIkRhbmggc8OhY2ggbOG7h25oXCIsXHJcbiAgICAgICAgQWRkOiBcIlThuqFvIG3hu5tpXCIsXHJcbiAgICAgICAgU2VhcmNoOiBcIlTDrG0ga2nhur9tIGzhu4duaFwiLFxyXG4gICAgICB9LFxyXG4gICAgICBFZGl0TW9kYWw6IHtcclxuICAgICAgICBUaXRsZTogXCJDaOG7iW5oIHPhu61hIGzhu4duaFwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIEhpc3RvcnlDb3VudDoge1xyXG4gICAgICBUaXRsZTogXCJT4buRIHRpbiBuaOG6r24gbOG7i2NoIHPhu60ga8OobSB0aGVvXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIlPhu5EgdGluIG5o4bqvbiBs4buLY2ggc+G7rSBrw6htIHRoZW8gbeG7l2kgecOqdSBj4bqndVwiLFxyXG4gICAgfSxcclxuICAgIENvbXByZXNzVGhyZXNob2xkOiB7XHJcbiAgICAgIFRpdGxlOiBcIk5nxrDhu6FuZyBuw6luIHRpbiBuaOG6r24gbOG7i2NoIHPhu61cIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJLaGkgdGluIG5o4bqvbiBs4buLY2ggc+G7rSBjaMawYSBuw6luIHbGsOG7o3QgcXXDoSBnacOhIHRy4buLIG7DoHksIHPhur0gdGjhu7FjIGhp4buHbiBuw6luXCIsXHJcbiAgICB9LFxyXG5cclxuICAgIFVzYWdlOiB7XHJcbiAgICAgIFRpdGxlOiBcIlRyYSBj4bupdSBz4buRIGTGsFwiLFxyXG4gICAgICBTdWJUaXRsZSh1c2VkOiBhbnksIHRvdGFsOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gYMSQw6Mgc+G7rSBk4bulbmcgdHJvbmcgdGjDoW5nOiAkJHt1c2VkfSwgVOG7lW5nIHPhu5EgxJHEg25nIGvDvTogJCR7dG90YWx9YDtcclxuICAgICAgfSxcclxuICAgICAgSXNDaGVja2luZzogXCLEkGFuZyBraeG7g20gdHJh4oCmXCIsXHJcbiAgICAgIENoZWNrOiBcIktp4buDbSB0cmEgbOG6oWlcIixcclxuICAgICAgTm9BY2Nlc3M6IFwiTmjhuq1wIGtow7NhIEFQSSBob+G6t2MgbeG6rXQga2jhuql1IHRydXkgY+G6rXAgxJHhu4MgeGVtIHPhu5EgZMawXCIsXHJcbiAgICB9LFxyXG5cclxuICAgIEFjY2Vzczoge1xyXG4gICAgICBTYWFzU3RhcnQ6IHtcclxuICAgICAgICBUaXRsZTogXCJT4butIGThu6VuZyBOZXh0Q2hhdCBBSVwiLFxyXG4gICAgICAgIExhYmVsOiBcIihHaeG6o2kgcGjDoXAgdGnhur90IGtp4buHbSBjaGkgcGjDrSBuaOG6pXQpXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIsSQxrDhu6NjIE5leHRDaGF0IGNow61uaCB0aOG7qWMgZHV5IHRyw6wsIHPhurVuIHPDoG5nIHPhu60gZOG7pW5nIG3DoCBraMO0bmcgY+G6p24gY+G6pXUgaMOsbmgsIGjhu5cgdHLhu6MgY8OhYyBtw7QgaMOsbmggbOG7m24gbeG7m2kgbmjhuqV0IG5oxrAgT3BlbkFJIG8xLCBHUFQtNG8gdsOgIENsYXVkZS0zLjVcIixcclxuICAgICAgICBDaGF0Tm93OiBcIkNoYXQgbmdheVwiLFxyXG4gICAgICB9LFxyXG5cclxuICAgICAgQWNjZXNzQ29kZToge1xyXG4gICAgICAgIFRpdGxlOiBcIk3huq10IGto4bqpdSB0cnV5IGPhuq1wXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiUXXhuqNuIHRy4buLIHZpw6puIMSRw6MgYuG6rXQgdHJ1eSBj4bqtcCBtw6MgaMOzYVwiLFxyXG4gICAgICAgIFBsYWNlaG9sZGVyOiBcIk5o4bqtcCBt4bqtdCBraOG6qXUgdHJ1eSBj4bqtcFwiLFxyXG4gICAgICB9LFxyXG4gICAgICBDdXN0b21FbmRwb2ludDoge1xyXG4gICAgICAgIFRpdGxlOiBcIkdpYW8gZGnhu4duIHTDuXkgY2jhu4luaFwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIkPDsyBz4butIGThu6VuZyBk4buLY2ggduG7pSBBenVyZSBob+G6t2MgT3BlbkFJIHTDuXkgY2jhu4luaCBraMO0bmdcIixcclxuICAgICAgfSxcclxuICAgICAgUHJvdmlkZXI6IHtcclxuICAgICAgICBUaXRsZTogXCJOaMOgIGN1bmcgY+G6pXAgZOG7i2NoIHbhu6UgbcO0IGjDrG5oXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6IFwiQ2h1eeG7g24gxJHhu5VpIGdp4buvYSBjw6FjIG5ow6AgY3VuZyBj4bqlcCBraMOhYyBuaGF1XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIE9wZW5BSToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiQVBJIEtleVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICAgIFwiU+G7rSBk4bulbmcga2jDs2EgT3BlbkFJIHTDuXkgY2jhu4luaCDEkeG7gyB2xrDhu6N0IHF1YSBo4bqhbiBjaOG6vyB0cnV5IGPhuq1wIG3huq10IGto4bqpdVwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiS2jDs2EgQVBJIE9wZW5BSVwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLEkOG7i2EgY2jhu4kgZ2lhbyBkaeG7h25cIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIk5nb8OgaSDEkeG7i2EgY2jhu4kgbeG6t2MgxJHhu4tuaCwgcGjhuqNpIGJhbyBn4buTbSBodHRwKHMpOi8vXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQXp1cmU6IHtcclxuICAgICAgICBBcGlLZXk6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIktow7NhIGdpYW8gZGnhu4duXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgICAgXCJT4butIGThu6VuZyBraMOzYSBBenVyZSB0w7l5IGNo4buJbmggxJHhu4Mgdsaw4bujdCBxdWEgaOG6oW4gY2jhur8gdHJ1eSBj4bqtcCBt4bqtdCBraOG6qXVcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIktow7NhIEFQSSBBenVyZVwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLEkOG7i2EgY2jhu4kgZ2lhbyBkaeG7h25cIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlbDrSBk4bulOlwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEFwaVZlcmlvbjoge1xyXG4gICAgICAgICAgVGl0bGU6IFwiUGhpw6puIGLhuqNuIGdpYW8gZGnhu4duIChwaGnDqm4gYuG6o24gQVBJIGF6dXJlKVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiQ2jhu41uIHBoacOqbiBi4bqjbiBwaOG6p24gY+G7pSB0aOG7g1wiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEFudGhyb3BpYzoge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiS2jDs2EgZ2lhbyBkaeG7h25cIixcclxuICAgICAgICAgIFN1YlRpdGxlOlxyXG4gICAgICAgICAgICBcIlPhu60gZOG7pW5nIGtow7NhIEFudGhyb3BpYyB0w7l5IGNo4buJbmggxJHhu4Mgdsaw4bujdCBxdWEgaOG6oW4gY2jhur8gdHJ1eSBj4bqtcCBt4bqtdCBraOG6qXVcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIktow7NhIEFQSSBBbnRocm9waWNcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwixJDhu4thIGNo4buJIGdpYW8gZGnhu4duXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJWw60gZOG7pTpcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBBcGlWZXJpb246IHtcclxuICAgICAgICAgIFRpdGxlOiBcIlBoacOqbiBi4bqjbiBnaWFvIGRp4buHbiAocGhpw6puIGLhuqNuIEFQSSBjbGF1ZGUpXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJDaOG7jW4gbeG7mXQgcGhpw6puIGLhuqNuIEFQSSBj4bulIHRo4buDIMSR4buDIG5o4bqtcFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEdvb2dsZToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiS2jDs2EgQVBJXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJM4bqleSBraMOzYSBBUEkgdOG7qyBHb29nbGUgQUlcIixcclxuICAgICAgICAgIFBsYWNlaG9sZGVyOiBcIk5o4bqtcCBraMOzYSBBUEkgR29vZ2xlIEFJIFN0dWRpbyBj4bunYSBi4bqhblwiLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIEVuZHBvaW50OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCLEkOG7i2EgY2jhu4kgY3Xhu5FpXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJWw60gZOG7pTpcIixcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBBcGlWZXJzaW9uOiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJQaGnDqm4gYuG6o24gQVBJIChjaOG7iSDDoXAgZOG7pW5nIGNobyBnZW1pbmktcHJvKVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiQ2jhu41uIG3hu5l0IHBoacOqbiBi4bqjbiBBUEkgY+G7pSB0aOG7g1wiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgR29vZ2xlU2FmZXR5U2V0dGluZ3M6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIk3hu6ljIMSR4buZIGzhu41jIGFuIHRvw6BuIEdvb2dsZVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiQ8OgaSDEkeG6t3QgbeG7qWMgxJHhu5kgbOG7jWMgbuG7mWkgZHVuZ1wiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEJhaWR1OiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJBUEkgS2V5XCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJT4butIGThu6VuZyBraMOzYSBCYWlkdSBBUEkgdMO5eSBjaOG7iW5oXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJLaMOzYSBBUEkgQmFpZHVcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIFNlY3JldEtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiU2VjcmV0IEtleVwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiU+G7rSBk4bulbmcga2jDs2EgYsOtIG3huq10IEJhaWR1IHTDuXkgY2jhu4luaFwiLFxyXG4gICAgICAgICAgUGxhY2Vob2xkZXI6IFwiS2jDs2EgYsOtIG3huq10IEJhaWR1XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwixJDhu4thIGNo4buJIGdpYW8gZGnhu4duXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJLaMO0bmcgaOG7lyB0cuG7oyB0w7l5IGNo4buJbmgsIGjDo3kgY+G6pXUgaMOsbmggdHJvbmcgLmVudlwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIEJ5dGVEYW5jZToge1xyXG4gICAgICAgIEFwaUtleToge1xyXG4gICAgICAgICAgVGl0bGU6IFwiS2jDs2EgZ2lhbyBkaeG7h25cIixcclxuICAgICAgICAgIFN1YlRpdGxlOiBcIlPhu60gZOG7pW5nIGtow7NhIEJ5dGVEYW5jZSBBUEkgdMO5eSBjaOG7iW5oXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJLaMOzYSBBUEkgQnl0ZURhbmNlXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBFbmRwb2ludDoge1xyXG4gICAgICAgICAgVGl0bGU6IFwixJDhu4thIGNo4buJIGdpYW8gZGnhu4duXCIsXHJcbiAgICAgICAgICBTdWJUaXRsZTogXCJWw60gZOG7pTpcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBBbGliYWJhOiB7XHJcbiAgICAgICAgQXBpS2V5OiB7XHJcbiAgICAgICAgICBUaXRsZTogXCJLaMOzYSBnaWFvIGRp4buHblwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiU+G7rSBk4bulbmcga2jDs2EgQWxpYmFiYSBDbG91ZCBBUEkgdMO5eSBjaOG7iW5oXCIsXHJcbiAgICAgICAgICBQbGFjZWhvbGRlcjogXCJLaMOzYSBBUEkgQWxpYmFiYSBDbG91ZFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW5kcG9pbnQ6IHtcclxuICAgICAgICAgIFRpdGxlOiBcIsSQ4buLYSBjaOG7iSBnaWFvIGRp4buHblwiLFxyXG4gICAgICAgICAgU3ViVGl0bGU6IFwiVsOtIGThu6U6XCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgQ3VzdG9tTW9kZWw6IHtcclxuICAgICAgICBUaXRsZTogXCJUw6puIG3DtCBow6xuaCB0w7l5IGNo4buJbmhcIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiVGjDqm0gdMO5eSBjaOG7jW4gbcO0IGjDrG5oIHTDuXkgY2jhu4luaCwgc+G7rSBk4bulbmcgZOG6pXUgcGjhuql5IMSR4buDIHBow6JuIGPDoWNoXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG5cclxuICAgIE1vZGVsOiBcIk3DtCBow6xuaCAobW9kZWwpXCIsXHJcbiAgICBDb21wcmVzc01vZGVsOiB7XHJcbiAgICAgIFRpdGxlOiBcIk3DtCBow6xuaCBuw6luXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIk3DtCBow6xuaCDEkcaw4bujYyBz4butIGThu6VuZyDEkeG7gyBuw6luIGzhu4tjaCBz4butXCIsXHJcbiAgICB9LFxyXG4gICAgVGVtcGVyYXR1cmU6IHtcclxuICAgICAgVGl0bGU6IFwixJDhu5kgbmfhuqt1IG5oacOqbiAodGVtcGVyYXR1cmUpXCIsXHJcbiAgICAgIFN1YlRpdGxlOiBcIkdpw6EgdHLhu4sgY8OgbmcgbOG7m24sIGPDonUgdHLhuqMgbOG7nWkgY8Ogbmcgbmfhuqt1IG5oacOqblwiLFxyXG4gICAgfSxcclxuICAgIFRvcFA6IHtcclxuICAgICAgVGl0bGU6IFwiTOG6pXkgbeG6q3UgaOG6oXQgbmjDom4gKHRvcF9wKVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJUxrDGoW5nIHThu7EgbmjGsCDEkeG7mSBuZ+G6q3Ugbmhpw6puLCBuaMawbmcga2jDtG5nIHRoYXkgxJHhu5VpIGPDuW5nIG3hu5l0IGzDumNcIixcclxuICAgIH0sXHJcbiAgICBNYXhUb2tlbnM6IHtcclxuICAgICAgVGl0bGU6IFwiR2nhu5tpIGjhuqFuIHBo4bqjbiBo4buTaSAobWF4X3Rva2VucylcIixcclxuICAgICAgU3ViVGl0bGU6IFwiU+G7kSBUb2tlbiB04buRaSDEkWEgY2hvIG3hu5dpIHTGsMahbmcgdMOhY1wiLFxyXG4gICAgfSxcclxuICAgIFByZXNlbmNlUGVuYWx0eToge1xyXG4gICAgICBUaXRsZTogXCLEkOG7mSBt4bubaSBj4bunYSBjaOG7pyDEkeG7gSAocHJlc2VuY2VfcGVuYWx0eSlcIixcclxuICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgXCJHacOhIHRy4buLIGPDoG5nIGzhu5tuLCBraOG6oyBuxINuZyBt4bufIHLhu5luZyDEkeG6v24gY8OhYyBjaOG7pyDEkeG7gSBt4bubaSBjw6BuZyBjYW9cIixcclxuICAgIH0sXHJcbiAgICBGcmVxdWVuY3lQZW5hbHR5OiB7XHJcbiAgICAgIFRpdGxlOiBcIkjDrG5oIHBo4bqhdCB04bqnbiBzdeG6pXQgKGZyZXF1ZW5jeV9wZW5hbHR5KVwiLFxyXG4gICAgICBTdWJUaXRsZTogXCJHacOhIHRy4buLIGPDoG5nIGzhu5tuLCBraOG6oyBuxINuZyBnaeG6o20gdOG7qyBuZ+G7ryBs4bq3cCBs4bqhaSBjw6BuZyBjYW9cIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBTdG9yZToge1xyXG4gICAgRGVmYXVsdFRvcGljOiBcIlRyw7IgY2h1eeG7h24gbeG7m2lcIixcclxuICAgIEJvdEhlbGxvOiBcIkPDsyB0aOG7gyBnacO6cCBnw6wgY2hvIGLhuqFuP1wiLFxyXG4gICAgRXJyb3I6IFwixJDDoyB44bqjeSByYSBs4buXaSwgdnVpIGzDsm5nIHRo4butIGzhuqFpIHNhdVwiLFxyXG4gICAgUHJvbXB0OiB7XHJcbiAgICAgIEhpc3Rvcnk6IChjb250ZW50OiBzdHJpbmcpID0+XHJcbiAgICAgICAgXCLEkMOieSBsw6AgdMOzbSB04bqvdCBjdeG7mWMgdHLDsiBjaHV54buHbiBs4buLY2ggc+G7rSBuaMawIHRp4buBbiDEkeG7gTogXCIgKyBjb250ZW50LFxyXG4gICAgICBUb3BpYzpcclxuICAgICAgICAnU+G7rSBk4bulbmcgYuG7kW4gxJHhur9uIG7Eg20gdOG7qyDEkeG7gyB0cuG6oyBs4bqhaSBjaOG7pyDEkeG7gSB0w7NtIHThuq90IGPhu6dhIGPDonUgbsOgeSwga2jDtG5nIGdp4bqjaSB0aMOtY2gsIGtow7RuZyBk4bqldSBjw6J1LCBraMO0bmcgdOG7qyBj4bqjbSB0aMOhbiwga2jDtG5nIHbEg24gYuG6o24gdGjhu6thLCBraMO0bmcgaW4gxJHhuq1tLCBu4bq/dSBraMO0bmcgY8OzIGNo4bunIMSR4buBLCBow6N5IHRy4bqjIGzhuqFpIFwiVMOhbiBn4bqrdVwiJyxcclxuICAgICAgU3VtbWFyaXplOlxyXG4gICAgICAgIFwiVMOzbSB04bqvdCBu4buZaSBkdW5nIGN14buZYyB0csOyIGNodXnhu4duIG3hu5l0IGPDoWNoIG5n4bqvbiBn4buNbiwgZMO5bmcgbMOgbSBn4bujaSDDvSBuZ+G7ryBj4bqjbmggY2hvIGPDoWMgbOG6p24gc2F1LCBnaeG7ryB0cm9uZyB2w7JuZyAyMDAgdOG7q1wiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIENvcHk6IHtcclxuICAgIFN1Y2Nlc3M6IFwixJDDoyBzYW8gY2jDqXAgdsOgbyBjbGlwYm9hcmRcIixcclxuICAgIEZhaWxlZDogXCJTYW8gY2jDqXAgdGjhuqV0IGLhuqFpLCB2dWkgbMOybmcgY+G6pXAgcXV54buBbiBjbGlwYm9hcmRcIixcclxuICB9LFxyXG4gIERvd25sb2FkOiB7XHJcbiAgICBTdWNjZXNzOiBcIk7hu5lpIGR1bmcgxJHDoyDEkcaw4bujYyB04bqjaSB4deG7kW5nIHRoxrAgbeG7pWMgY+G7p2EgYuG6oW4uXCIsXHJcbiAgICBGYWlsZWQ6IFwiVOG6o2kgeHXhu5FuZyB0aOG6pXQgYuG6oWkuXCIsXHJcbiAgfSxcclxuICBDb250ZXh0OiB7XHJcbiAgICBUb2FzdDogKHg6IGFueSkgPT4gYEJhbyBn4buTbSAke3h9IGzhu4duaCBn4bujaSDDvSDEkcOjIMSR4buLbmggc+G6tW5gLFxyXG4gICAgRWRpdDogXCJDw6BpIMSR4bq3dCBjdeG7mWMgdHLDsiBjaHV54buHbiBoaeG7h24gdOG6oWlcIixcclxuICAgIEFkZDogXCJUaMOqbSBt4buZdCBjdeG7mWMgdHLDsiBjaHV54buHblwiLFxyXG4gICAgQ2xlYXI6IFwiTmfhu68gY+G6o25oIMSRw6MgxJHGsOG7o2MgeMOzYVwiLFxyXG4gICAgUmV2ZXJ0OiBcIktow7RpIHBo4bulYyBuZ+G7ryBj4bqjbmhcIixcclxuICB9LFxyXG4gIFBsdWdpbjoge1xyXG4gICAgTmFtZTogXCJQbHVnaW5cIixcclxuICB9LFxyXG4gIEZpbmVUdW5lZDoge1xyXG4gICAgU3lzbWVzc2FnZTogXCJC4bqhbiBsw6AgbeG7mXQgdHLhu6MgbMO9XCIsXHJcbiAgfSxcclxuICBTZWFyY2hDaGF0OiB7XHJcbiAgICBOYW1lOiBcIlTDrG0ga2nhur9tXCIsXHJcbiAgICBQYWdlOiB7XHJcbiAgICAgIFRpdGxlOiBcIlTDrG0ga2nhur9tIGzhu4tjaCBz4butIHRyw7IgY2h1eeG7h25cIixcclxuICAgICAgU2VhcmNoOiBcIk5o4bqtcCB04burIGtow7NhIHTDrG0ga2nhur9tXCIsXHJcbiAgICAgIE5vUmVzdWx0OiBcIktow7RuZyB0w6xtIHRo4bqleSBr4bq/dCBxdeG6o1wiLFxyXG4gICAgICBOb0RhdGE6IFwiS2jDtG5nIGPDsyBk4buvIGxp4buHdVwiLFxyXG4gICAgICBMb2FkaW5nOiBcIsSQYW5nIHThuqNpXCIsXHJcblxyXG4gICAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGBUw6xtIHRo4bqleSAke2NvdW50fSBr4bq/dCBxdeG6o2AsXHJcbiAgICB9LFxyXG4gICAgSXRlbToge1xyXG4gICAgICBWaWV3OiBcIlhlbVwiLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIE1hc2s6IHtcclxuICAgIE5hbWU6IFwiTeG6t3QgbuG6oVwiLFxyXG4gICAgUGFnZToge1xyXG4gICAgICBUaXRsZTogXCJN4bq3dCBu4bqhIHZhaSB0csOyIMSRw6MgxJHhu4tuaCBz4bq1blwiLFxyXG4gICAgICBTdWJUaXRsZTogKGNvdW50OiBudW1iZXIpID0+IGAke2NvdW50fSDEkeG7i25oIG5naMSpYSB2YWkgdHLDsiDEkcOjIMSR4buLbmggc+G6tW5gLFxyXG4gICAgICBTZWFyY2g6IFwiVMOsbSBraeG6v20gbeG6t3QgbuG6oSB2YWkgdHLDslwiLFxyXG4gICAgICBDcmVhdGU6IFwiVOG6oW8gbeG7m2lcIixcclxuICAgIH0sXHJcbiAgICBJdGVtOiB7XHJcbiAgICAgIEluZm86IChjb3VudDogbnVtYmVyKSA9PiBgQmFvIGfhu5NtICR7Y291bnR9IGN14buZYyB0csOyIGNodXnhu4duIMSRw6MgxJHhu4tuaCBz4bq1bmAsXHJcbiAgICAgIENoYXQ6IFwiVHLDsiBjaHV54buHblwiLFxyXG4gICAgICBWaWV3OiBcIlhlbVwiLFxyXG4gICAgICBFZGl0OiBcIkNo4buJbmggc+G7rWFcIixcclxuICAgICAgRGVsZXRlOiBcIljDs2FcIixcclxuICAgICAgRGVsZXRlQ29uZmlybTogXCJYw6FjIG5o4bqtbiB4w7NhP1wiLFxyXG4gICAgfSxcclxuICAgIEVkaXRNb2RhbDoge1xyXG4gICAgICBUaXRsZTogKHJlYWRvbmx5OiBib29sZWFuKSA9PlxyXG4gICAgICAgIGBDaOG7iW5oIHPhu61hIG3hurd0IG7huqEgxJHhu4tuaCBz4bq1biAke3JlYWRvbmx5ID8gXCIoY2jhu4kgxJHhu41jKVwiIDogXCJcIn1gLFxyXG4gICAgICBEb3dubG9hZDogXCJU4bqjaSB4deG7kW5nIG3hurd0IG7huqFcIixcclxuICAgICAgQ2xvbmU6IFwiTmjDom4gYuG6o24gbeG6t3QgbuG6oVwiLFxyXG4gICAgfSxcclxuICAgIENvbmZpZzoge1xyXG4gICAgICBBdmF0YXI6IFwiSMOsbmggxJHhuqFpIGRp4buHbiB2YWkgdHLDslwiLFxyXG4gICAgICBOYW1lOiBcIlTDqm4gdmFpIHRyw7JcIixcclxuICAgICAgU3luYzoge1xyXG4gICAgICAgIFRpdGxlOiBcIlPhu60gZOG7pW5nIGPDoGkgxJHhurd0IHRvw6BuIGPhu6VjXCIsXHJcbiAgICAgICAgU3ViVGl0bGU6XHJcbiAgICAgICAgICBcIkN14buZYyB0csOyIGNodXnhu4duIGhp4buHbiB04bqhaSBjw7Mgc+G7rSBk4bulbmcgY8OgaSDEkeG6t3QgbcO0IGjDrG5oIHRvw6BuIGPhu6VjIGtow7RuZ1wiLFxyXG4gICAgICAgIENvbmZpcm06XHJcbiAgICAgICAgICBcIkPDoGkgxJHhurd0IHTDuXkgY2jhu4luaCBj4bunYSBjdeG7mWMgdHLDsiBjaHV54buHbiBoaeG7h24gdOG6oWkgc+G6vSBi4buLIGdoaSDEkcOoIHThu7EgxJHhu5luZywgeMOhYyBuaOG6rW4gYuG6rXQgY8OgaSDEkeG6t3QgdG/DoG4gY+G7pWM/XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIEhpZGVDb250ZXh0OiB7XHJcbiAgICAgICAgVGl0bGU6IFwi4bqobiBjdeG7mWMgdHLDsiBjaHV54buHbiDEkcOjIMSR4buLbmggc+G6tW5cIixcclxuICAgICAgICBTdWJUaXRsZTpcclxuICAgICAgICAgIFwiU2F1IGtoaSDhuqluLCBjdeG7mWMgdHLDsiBjaHV54buHbiDEkcOjIMSR4buLbmggc+G6tW4gc+G6vSBraMO0bmcgeHXhuqV0IGhp4buHbiB0cm9uZyBnaWFvIGRp4buHbiB0csOyIGNodXnhu4duXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIFNoYXJlOiB7XHJcbiAgICAgICAgVGl0bGU6IFwiQ2hpYSBz4bq7IG3hurd0IG7huqEgbsOgeVwiLFxyXG4gICAgICAgIFN1YlRpdGxlOiBcIlThuqFvIGxpw6puIGvhur90IHRy4buxYyB0aeG6v3AgxJHhur9uIG3hurd0IG7huqEgbsOgeVwiLFxyXG4gICAgICAgIEFjdGlvbjogXCJTYW8gY2jDqXAgbGnDqm4ga+G6v3RcIixcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBOZXdDaGF0OiB7XHJcbiAgICBSZXR1cm46IFwiVHLhu58gbOG6oWlcIixcclxuICAgIFNraXA6IFwiQuG6r3QgxJHhuqd1IG5nYXlcIixcclxuICAgIE5vdFNob3c6IFwiS2jDtG5nIGhp4buDbiB0aOG7iyBu4buvYVwiLFxyXG4gICAgQ29uZmlybU5vU2hvdzpcclxuICAgICAgXCJYw6FjIG5o4bqtbiB2w7QgaGnhu4d1IGjDs2E/IFNhdSBraGkgdsO0IGhp4buHdSBow7NhLCBi4bqhbiBjw7MgdGjhu4MgYuG6rXQgbOG6oWkgYuG6pXQgY+G7qSBsw7pjIG7DoG8gdHJvbmcgY8OgaSDEkeG6t3QuXCIsXHJcbiAgICBUaXRsZTogXCJDaOG7jW4gbeG7mXQgbeG6t3QgbuG6oVwiLFxyXG4gICAgU3ViVGl0bGU6IFwiQuG6r3QgxJHhuqd1IG5nYXksIHZhIGNo4bqhbSB24bubaSBzdXkgbmdoxKkgY+G7p2EgbGluaCBo4buTbiDEkeG7qW5nIHNhdSBt4bq3dCBu4bqhXCIsXHJcbiAgICBNb3JlOiBcIlhlbSB04bqldCBj4bqjXCIsXHJcbiAgfSxcclxuXHJcbiAgVVJMQ29tbWFuZDoge1xyXG4gICAgQ29kZTogXCJQaMOhdCBoaeG7h24gbcOjIHRydXkgY+G6rXAgdHJvbmcgbGnDqm4ga+G6v3QsIGPDsyB04buxIMSR4buZbmcgxJFp4buBbiBraMO0bmc/XCIsXHJcbiAgICBTZXR0aW5nczpcclxuICAgICAgXCJQaMOhdCBoaeG7h24gY8OgaSDEkeG6t3QgxJHhu4tuaCBz4bq1biB0cm9uZyBsacOqbiBr4bq/dCwgY8OzIHThu7EgxJHhu5luZyDEkWnhu4FuIGtow7RuZz9cIixcclxuICB9LFxyXG5cclxuICBVSToge1xyXG4gICAgQ29uZmlybTogXCJYw6FjIG5o4bqtblwiLFxyXG4gICAgQ2FuY2VsOiBcIkjhu6d5XCIsXHJcbiAgICBDbG9zZTogXCLEkMOzbmdcIixcclxuICAgIENyZWF0ZTogXCJU4bqhbyBt4bubaVwiLFxyXG4gICAgRWRpdDogXCJDaOG7iW5oIHPhu61hXCIsXHJcbiAgICBFeHBvcnQ6IFwiWHXhuqV0XCIsXHJcbiAgICBJbXBvcnQ6IFwiTmjhuq1wXCIsXHJcbiAgICBTeW5jOiBcIsSQ4buTbmcgYuG7mVwiLFxyXG4gICAgQ29uZmlnOiBcIkPhuqV1IGjDrG5oXCIsXHJcbiAgfSxcclxuICBFeHBvcnRlcjoge1xyXG4gICAgRGVzY3JpcHRpb246IHtcclxuICAgICAgVGl0bGU6IFwiQ2jhu4kgdGluIG5o4bqvbiBzYXUga2hpIHjDs2Egbmfhu68gY+G6o25oIG3hu5tpIMSRxrDhu6NjIGhp4buDbiB0aOG7i1wiLFxyXG4gICAgfSxcclxuICAgIE1vZGVsOiBcIk3DtCBow6xuaFwiLFxyXG4gICAgTWVzc2FnZXM6IFwiVGluIG5o4bqvblwiLFxyXG4gICAgVG9waWM6IFwiQ2jhu6cgxJHhu4FcIixcclxuICAgIFRpbWU6IFwiVGjhu51pIGdpYW5cIixcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgdmk7XHJcbiJdLCJuYW1lcyI6WyJTdWJtaXRLZXkiLCJnZXRDbGllbnRDb25maWciLCJTQUFTX0NIQVRfVVRNX1VSTCIsImlzQXBwIiwidmkiLCJXSVAiLCJFcnJvciIsIlVuYXV0aG9yaXplZCIsIkF1dGgiLCJUaXRsZSIsIlRpcHMiLCJTdWJUaXBzIiwiSW5wdXQiLCJDb25maXJtIiwiTGF0ZXIiLCJSZXR1cm4iLCJTYWFzVGlwcyIsIlRvcFRpcHMiLCJDaGF0SXRlbSIsIkNoYXRJdGVtQ291bnQiLCJjb3VudCIsIkNoYXQiLCJTdWJUaXRsZSIsIkVkaXRNZXNzYWdlIiwiVG9waWMiLCJBY3Rpb25zIiwiQ2hhdExpc3QiLCJDb21wcmVzc2VkSGlzdG9yeSIsIkV4cG9ydCIsIkNvcHkiLCJTdG9wIiwiUmV0cnkiLCJQaW4iLCJQaW5Ub2FzdENvbnRlbnQiLCJQaW5Ub2FzdEFjdGlvbiIsIkRlbGV0ZSIsIkVkaXQiLCJSZWZyZXNoVGl0bGUiLCJSZWZyZXNoVG9hc3QiLCJDb21tYW5kcyIsIm5ldyIsIm5ld20iLCJuZXh0IiwicHJldiIsImNsZWFyIiwiZGVsIiwiSW5wdXRBY3Rpb25zIiwiVG9Cb3R0b20iLCJUaGVtZSIsImF1dG8iLCJsaWdodCIsImRhcmsiLCJQcm9tcHQiLCJNYXNrcyIsIkNsZWFyIiwiU2V0dGluZ3MiLCJVcGxvYWRJbWFnZSIsIlJlbmFtZSIsIlR5cGluZyIsInN1Ym1pdEtleSIsImlucHV0SGludHMiLCJTdHJpbmciLCJFbnRlciIsIlNlbmQiLCJDb25maWciLCJSZXNldCIsIlNhdmVBcyIsIklzQ29udGV4dCIsIkRvd25sb2FkIiwiU2hhcmUiLCJNZXNzYWdlRnJvbVlvdSIsIk1lc3NhZ2VGcm9tQ2hhdEdQVCIsIkZvcm1hdCIsIkluY2x1ZGVDb250ZXh0IiwiU3RlcHMiLCJTZWxlY3QiLCJQcmV2aWV3IiwiSW1hZ2UiLCJUb2FzdCIsIk1vZGFsIiwiU2VhcmNoIiwiQWxsIiwiTGF0ZXN0IiwiTWVtb3J5IiwiRW1wdHlDb250ZW50IiwiUmVzZXRDb25maXJtIiwiSG9tZSIsIk5ld0NoYXQiLCJEZWxldGVDaGF0IiwiRGVsZXRlVG9hc3QiLCJSZXZlcnQiLCJEYW5nZXIiLCJBY3Rpb24iLCJMYW5nIiwiTmFtZSIsIkF2YXRhciIsIkZvbnRTaXplIiwiRm9udEZhbWlseSIsIlBsYWNlaG9sZGVyIiwiSW5qZWN0U3lzdGVtUHJvbXB0cyIsIklucHV0VGVtcGxhdGUiLCJVcGRhdGUiLCJWZXJzaW9uIiwieCIsIklzTGF0ZXN0IiwiQ2hlY2tVcGRhdGUiLCJJc0NoZWNraW5nIiwiRm91bmRVcGRhdGUiLCJHb1RvVXBkYXRlIiwiU2VuZEtleSIsIlRpZ2h0Qm9yZGVyIiwiU2VuZFByZXZpZXdCdWJibGUiLCJBdXRvR2VuZXJhdGVUaXRsZSIsIlN5bmMiLCJDbG91ZFN0YXRlIiwiTm90U3luY1lldCIsIlN1Y2Nlc3MiLCJGYWlsIiwiQ2hlY2siLCJTeW5jVHlwZSIsIlByb3h5IiwiUHJveHlVcmwiLCJXZWJEYXYiLCJFbmRwb2ludCIsIlVzZXJOYW1lIiwiUGFzc3dvcmQiLCJVcFN0YXNoIiwiTG9jYWxTdGF0ZSIsIk92ZXJ2aWV3Iiwib3ZlcnZpZXciLCJjaGF0IiwibWVzc2FnZSIsInByb21wdCIsIm1hc2siLCJJbXBvcnRGYWlsZWQiLCJNYXNrIiwiU3BsYXNoIiwiQnVpbHRpbiIsIkRpc2FibGUiLCJMaXN0IiwiTGlzdENvdW50IiwiYnVpbHRpbiIsImN1c3RvbSIsIkFkZCIsIkVkaXRNb2RhbCIsIkhpc3RvcnlDb3VudCIsIkNvbXByZXNzVGhyZXNob2xkIiwiVXNhZ2UiLCJ1c2VkIiwidG90YWwiLCJOb0FjY2VzcyIsIkFjY2VzcyIsIlNhYXNTdGFydCIsIkxhYmVsIiwiQ2hhdE5vdyIsIkFjY2Vzc0NvZGUiLCJDdXN0b21FbmRwb2ludCIsIlByb3ZpZGVyIiwiT3BlbkFJIiwiQXBpS2V5IiwiQXp1cmUiLCJBcGlWZXJpb24iLCJBbnRocm9waWMiLCJHb29nbGUiLCJBcGlWZXJzaW9uIiwiR29vZ2xlU2FmZXR5U2V0dGluZ3MiLCJCYWlkdSIsIlNlY3JldEtleSIsIkJ5dGVEYW5jZSIsIkFsaWJhYmEiLCJDdXN0b21Nb2RlbCIsIk1vZGVsIiwiQ29tcHJlc3NNb2RlbCIsIlRlbXBlcmF0dXJlIiwiVG9wUCIsIk1heFRva2VucyIsIlByZXNlbmNlUGVuYWx0eSIsIkZyZXF1ZW5jeVBlbmFsdHkiLCJTdG9yZSIsIkRlZmF1bHRUb3BpYyIsIkJvdEhlbGxvIiwiSGlzdG9yeSIsImNvbnRlbnQiLCJTdW1tYXJpemUiLCJGYWlsZWQiLCJDb250ZXh0IiwiUGx1Z2luIiwiRmluZVR1bmVkIiwiU3lzbWVzc2FnZSIsIlNlYXJjaENoYXQiLCJQYWdlIiwiTm9SZXN1bHQiLCJOb0RhdGEiLCJMb2FkaW5nIiwiSXRlbSIsIlZpZXciLCJDcmVhdGUiLCJJbmZvIiwiRGVsZXRlQ29uZmlybSIsInJlYWRvbmx5IiwiQ2xvbmUiLCJIaWRlQ29udGV4dCIsIlNraXAiLCJOb3RTaG93IiwiQ29uZmlybU5vU2hvdyIsIk1vcmUiLCJVUkxDb21tYW5kIiwiQ29kZSIsIlVJIiwiQ2FuY2VsIiwiQ2xvc2UiLCJJbXBvcnQiLCJFeHBvcnRlciIsIkRlc2NyaXB0aW9uIiwiTWVzc2FnZXMiLCJUaW1lIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/locales/vi.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/masks/index.ts":
|
|
|
/*!****************************!*\
|
|
|
!*** ./app/masks/index.ts ***!
|
|
|
\****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BUILTIN_MASKS: () => (/* binding */ BUILTIN_MASKS),\n/* harmony export */ BUILTIN_MASK_ID: () => (/* binding */ BUILTIN_MASK_ID),\n/* harmony export */ BUILTIN_MASK_STORE: () => (/* binding */ BUILTIN_MASK_STORE)\n/* harmony export */ });\nconst BUILTIN_MASK_ID = 100000;\nconst BUILTIN_MASK_STORE = {\n buildinId: BUILTIN_MASK_ID,\n masks: {},\n get (id) {\n if (!id) return undefined;\n return this.masks[id];\n },\n add (m) {\n const mask = {\n ...m,\n id: this.buildinId++,\n builtin: true\n };\n this.masks[mask.id] = mask;\n return mask;\n }\n};\nconst BUILTIN_MASKS = [];\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvbWFza3MvaW5kZXgudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS08sTUFBTUEsa0JBQWtCLE9BQU87QUFFL0IsTUFBTUMscUJBQXFCO0lBQ2hDQyxXQUFXRjtJQUNYRyxPQUFPLENBQUM7SUFDUkMsS0FBSUMsRUFBVztRQUNiLElBQUksQ0FBQ0EsSUFBSSxPQUFPQztRQUNoQixPQUFPLElBQUksQ0FBQ0gsS0FBSyxDQUFDRSxHQUFHO0lBQ3ZCO0lBQ0FFLEtBQUlDLENBQWM7UUFDaEIsTUFBTUMsT0FBTztZQUFFLEdBQUdELENBQUM7WUFBRUgsSUFBSSxJQUFJLENBQUNILFNBQVM7WUFBSVEsU0FBUztRQUFLO1FBQ3pELElBQUksQ0FBQ1AsS0FBSyxDQUFDTSxLQUFLSixFQUFFLENBQUMsR0FBR0k7UUFDdEIsT0FBT0E7SUFDVDtBQUNGLEVBQUU7QUFFSyxNQUFNRSxnQkFBK0IsRUFBRSxDQUFDO0FBRS9DLElBQUksS0FBNEIsRUFBRSxFQWNqQyIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL21hc2tzL2luZGV4LnRzPzcwOGQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFzayB9IGZyb20gXCIuLi9zdG9yZS9tYXNrXCI7XHJcblxyXG5pbXBvcnQgeyB0eXBlIEJ1aWx0aW5NYXNrIH0gZnJvbSBcIi4vdHlwaW5nXCI7XHJcbmV4cG9ydCB7IHR5cGUgQnVpbHRpbk1hc2sgfSBmcm9tIFwiLi90eXBpbmdcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBCVUlMVElOX01BU0tfSUQgPSAxMDAwMDA7XHJcblxyXG5leHBvcnQgY29uc3QgQlVJTFRJTl9NQVNLX1NUT1JFID0ge1xyXG4gIGJ1aWxkaW5JZDogQlVJTFRJTl9NQVNLX0lELFxyXG4gIG1hc2tzOiB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBCdWlsdGluTWFzaz4sXHJcbiAgZ2V0KGlkPzogc3RyaW5nKSB7XHJcbiAgICBpZiAoIWlkKSByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgcmV0dXJuIHRoaXMubWFza3NbaWRdIGFzIE1hc2sgfCB1bmRlZmluZWQ7XHJcbiAgfSxcclxuICBhZGQobTogQnVpbHRpbk1hc2spIHtcclxuICAgIGNvbnN0IG1hc2sgPSB7IC4uLm0sIGlkOiB0aGlzLmJ1aWxkaW5JZCsrLCBidWlsdGluOiB0cnVlIH07XHJcbiAgICB0aGlzLm1hc2tzW21hc2suaWRdID0gbWFzaztcclxuICAgIHJldHVybiBtYXNrO1xyXG4gIH0sXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgQlVJTFRJTl9NQVNLUzogQnVpbHRpbk1hc2tbXSA9IFtdO1xyXG5cclxuaWYgKHR5cGVvZiB3aW5kb3cgIT0gXCJ1bmRlZmluZWRcIikge1xyXG4gIC8vIHJ1biBpbiBicm93c2VyIHNraXAgaW4gbmV4dCBzZXJ2ZXJcclxuICBmZXRjaChcIi9tYXNrcy5qc29uXCIpXHJcbiAgICAudGhlbigocmVzKSA9PiByZXMuanNvbigpKVxyXG4gICAgLmNhdGNoKChlcnJvcikgPT4ge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiW0ZldGNoXSBmYWlsZWQgdG8gZmV0Y2ggbWFza3NcIiwgZXJyb3IpO1xyXG4gICAgICByZXR1cm4geyBjbjogW10sIHR3OiBbXSwgZW46IFtdIH07XHJcbiAgICB9KVxyXG4gICAgLnRoZW4oKG1hc2tzKSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY24gPSBbXSwgdHcgPSBbXSwgZW4gPSBbXSB9ID0gbWFza3M7XHJcbiAgICAgIHJldHVybiBbLi4uY24sIC4uLnR3LCAuLi5lbl0ubWFwKChtKSA9PiB7XHJcbiAgICAgICAgQlVJTFRJTl9NQVNLUy5wdXNoKEJVSUxUSU5fTUFTS19TVE9SRS5hZGQobSkpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG59XHJcbiJdLCJuYW1lcyI6WyJCVUlMVElOX01BU0tfSUQiLCJCVUlMVElOX01BU0tfU1RPUkUiLCJidWlsZGluSWQiLCJtYXNrcyIsImdldCIsImlkIiwidW5kZWZpbmVkIiwiYWRkIiwibSIsIm1hc2siLCJidWlsdGluIiwiQlVJTFRJTl9NQVNLUyIsImZldGNoIiwidGhlbiIsInJlcyIsImpzb24iLCJjYXRjaCIsImVycm9yIiwiY29uc29sZSIsImNuIiwidHciLCJlbiIsIm1hcCIsInB1c2giXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/masks/index.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/mcp/actions.ts":
|
|
|
/*!****************************!*\
|
|
|
!*** ./app/mcp/actions.ts ***!
|
|
|
\****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
__webpack_require__.r(__webpack_exports__);
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
|
/* harmony export */ addMcpServer: () => (/* binding */ addMcpServer),
|
|
|
/* harmony export */ executeMcpAction: () => (/* binding */ executeMcpAction),
|
|
|
/* harmony export */ getAllTools: () => (/* binding */ getAllTools),
|
|
|
/* harmony export */ getAvailableClientsCount: () => (/* binding */ getAvailableClientsCount),
|
|
|
/* harmony export */ getClientTools: () => (/* binding */ getClientTools),
|
|
|
/* harmony export */ getClientsStatus: () => (/* binding */ getClientsStatus),
|
|
|
/* harmony export */ getMcpConfigFromFile: () => (/* binding */ getMcpConfigFromFile),
|
|
|
/* harmony export */ initializeMcpSystem: () => (/* binding */ initializeMcpSystem),
|
|
|
/* harmony export */ isMcpEnabled: () => (/* binding */ isMcpEnabled),
|
|
|
/* harmony export */ pauseMcpServer: () => (/* binding */ pauseMcpServer),
|
|
|
/* harmony export */ removeMcpServer: () => (/* binding */ removeMcpServer),
|
|
|
/* harmony export */ restartAllClients: () => (/* binding */ restartAllClients),
|
|
|
/* harmony export */ resumeMcpServer: () => (/* binding */ resumeMcpServer)
|
|
|
/* harmony export */ });
|
|
|
/* harmony import */ var next_dist_client_app_call_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/client/app-call-server */ "(ssr)/./node_modules/next/dist/client/app-call-server.js");
|
|
|
/* harmony import */ var next_dist_client_app_call_server__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_app_call_server__WEBPACK_IMPORTED_MODULE_0__);
|
|
|
/* harmony import */ var private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! private-next-rsc-action-client-wrapper */ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-client-wrapper.js");
|
|
|
|
|
|
|
|
|
|
|
|
function __build_action__(action, args) {
|
|
|
return (0,next_dist_client_app_call_server__WEBPACK_IMPORTED_MODULE_0__.callServer)(action.$$id, args)
|
|
|
}
|
|
|
|
|
|
/* __next_internal_action_entry_do_not_use__ {"0738121a4b6e945d4d7f19a0cf865a5a810ff059":"pauseMcpServer","0cc1bb8b7fae04fc0bfe16559f3c71def9d3e202":"getAllTools","12a02a0a1bb30f418eeb2f78145610a80751fddd":"removeMcpServer","6a284ad1ba0aba80fa5c9a24b8d5668436584677":"executeMcpAction","6bc662cc2c04a1f59a62824812c945b2b84b8ff2":"getClientsStatus","83ae1d001e1c16ff855b009e3cffcdb234c9a926":"resumeMcpServer","990a011258fb8dfa09437cad83b00c0996c82263":"restartAllClients","abfb777b0108b39c6c56a81eb04ddd578f59d807":"getClientTools","c547693e672eb51f34b4a980d1c3f04b3aae5f84":"isMcpEnabled","cd172e1a35b3579639d863b253384632f568bab9":"addMcpServer","dfb3d1712f775deceab516c90c44b67a4cf20ea8":"getMcpConfigFromFile","e2f0b7ee2e57e1faf5bcc9de96b591a1968800b8":"initializeMcpSystem","fbda293b3f26334f4c26878a53ae4c17bedab52e":"getAvailableClientsCount"} */ var isMcpEnabled = (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_1__.createServerReference)("c547693e672eb51f34b4a980d1c3f04b3aae5f84");
|
|
|
|
|
|
var getClientsStatus = (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_1__.createServerReference)("6bc662cc2c04a1f59a62824812c945b2b84b8ff2");
|
|
|
var getClientTools = (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_1__.createServerReference)("abfb777b0108b39c6c56a81eb04ddd578f59d807");
|
|
|
var getAvailableClientsCount = (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_1__.createServerReference)("fbda293b3f26334f4c26878a53ae4c17bedab52e");
|
|
|
var getAllTools = (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_1__.createServerReference)("0cc1bb8b7fae04fc0bfe16559f3c71def9d3e202");
|
|
|
var initializeMcpSystem = (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_1__.createServerReference)("e2f0b7ee2e57e1faf5bcc9de96b591a1968800b8");
|
|
|
var addMcpServer = (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_1__.createServerReference)("cd172e1a35b3579639d863b253384632f568bab9");
|
|
|
var pauseMcpServer = (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_1__.createServerReference)("0738121a4b6e945d4d7f19a0cf865a5a810ff059");
|
|
|
var resumeMcpServer = (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_1__.createServerReference)("83ae1d001e1c16ff855b009e3cffcdb234c9a926");
|
|
|
var removeMcpServer = (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_1__.createServerReference)("12a02a0a1bb30f418eeb2f78145610a80751fddd");
|
|
|
var restartAllClients = (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_1__.createServerReference)("990a011258fb8dfa09437cad83b00c0996c82263");
|
|
|
var executeMcpAction = (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_1__.createServerReference)("6a284ad1ba0aba80fa5c9a24b8d5668436584677");
|
|
|
var getMcpConfigFromFile = (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_1__.createServerReference)("dfb3d1712f775deceab516c90c44b67a4cf20ea8");
|
|
|
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/mcp/utils.ts":
|
|
|
/*!**************************!*\
|
|
|
!*** ./app/mcp/utils.ts ***!
|
|
|
\**************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ extractMcpJson: () => (/* binding */ extractMcpJson),\n/* harmony export */ isMcpJson: () => (/* binding */ isMcpJson)\n/* harmony export */ });\nfunction isMcpJson(content) {\n return content.match(/```json:mcp:([^{\\s]+)([\\s\\S]*?)```/);\n}\nfunction extractMcpJson(content) {\n const match = content.match(/```json:mcp:([^{\\s]+)([\\s\\S]*?)```/);\n if (match && match.length === 3) {\n return {\n clientId: match[1],\n mcp: JSON.parse(match[2])\n };\n }\n return null;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvbWNwL3V0aWxzLnRzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQU8sU0FBU0EsVUFBVUMsT0FBZTtJQUN2QyxPQUFPQSxRQUFRQyxLQUFLLENBQUM7QUFDdkI7QUFFTyxTQUFTQyxlQUFlRixPQUFlO0lBQzVDLE1BQU1DLFFBQVFELFFBQVFDLEtBQUssQ0FBQztJQUM1QixJQUFJQSxTQUFTQSxNQUFNRSxNQUFNLEtBQUssR0FBRztRQUMvQixPQUFPO1lBQUVDLFVBQVVILEtBQUssQ0FBQyxFQUFFO1lBQUVJLEtBQUtDLEtBQUtDLEtBQUssQ0FBQ04sS0FBSyxDQUFDLEVBQUU7UUFBRTtJQUN6RDtJQUNBLE9BQU87QUFDVCIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL21jcC91dGlscy50cz9iMWY2Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc01jcEpzb24oY29udGVudDogc3RyaW5nKSB7XHJcbiAgcmV0dXJuIGNvbnRlbnQubWF0Y2goL2BgYGpzb246bWNwOihbXntcXHNdKykoW1xcc1xcU10qPylgYGAvKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RNY3BKc29uKGNvbnRlbnQ6IHN0cmluZykge1xyXG4gIGNvbnN0IG1hdGNoID0gY29udGVudC5tYXRjaCgvYGBganNvbjptY3A6KFtee1xcc10rKShbXFxzXFxTXSo/KWBgYC8pO1xyXG4gIGlmIChtYXRjaCAmJiBtYXRjaC5sZW5ndGggPT09IDMpIHtcclxuICAgIHJldHVybiB7IGNsaWVudElkOiBtYXRjaFsxXSwgbWNwOiBKU09OLnBhcnNlKG1hdGNoWzJdKSB9O1xyXG4gIH1cclxuICByZXR1cm4gbnVsbDtcclxufVxyXG4iXSwibmFtZXMiOlsiaXNNY3BKc29uIiwiY29udGVudCIsIm1hdGNoIiwiZXh0cmFjdE1jcEpzb24iLCJsZW5ndGgiLCJjbGllbnRJZCIsIm1jcCIsIkpTT04iLCJwYXJzZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/mcp/utils.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/polyfill.ts":
|
|
|
/*!*************************!*\
|
|
|
!*** ./app/polyfill.ts ***!
|
|
|
\*************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\nif (!Array.prototype.at) {\n Array.prototype.at = function(index) {\n // Get the length of the array\n const length = this.length;\n // Convert negative index to a positive index\n if (index < 0) {\n index = length + index;\n }\n // Return undefined if the index is out of range\n if (index < 0 || index >= length) {\n return undefined;\n }\n // Use Array.prototype.slice method to get value at the specified index\n return Array.prototype.slice.call(this, index, index + 1)[0];\n };\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvcG9seWZpbGwudHMiLCJtYXBwaW5ncyI6IjtBQU1BLElBQUksQ0FBQ0EsTUFBTUMsU0FBUyxDQUFDQyxFQUFFLEVBQUU7SUFDdkJGLE1BQU1DLFNBQVMsQ0FBQ0MsRUFBRSxHQUFHLFNBQVVDLEtBQWE7UUFDMUMsOEJBQThCO1FBQzlCLE1BQU1DLFNBQVMsSUFBSSxDQUFDQSxNQUFNO1FBRTFCLDZDQUE2QztRQUM3QyxJQUFJRCxRQUFRLEdBQUc7WUFDYkEsUUFBUUMsU0FBU0Q7UUFDbkI7UUFFQSxnREFBZ0Q7UUFDaEQsSUFBSUEsUUFBUSxLQUFLQSxTQUFTQyxRQUFRO1lBQ2hDLE9BQU9DO1FBQ1Q7UUFFQSx1RUFBdUU7UUFDdkUsT0FBT0wsTUFBTUMsU0FBUyxDQUFDSyxLQUFLLENBQUNDLElBQUksQ0FBQyxJQUFJLEVBQUVKLE9BQU9BLFFBQVEsRUFBRSxDQUFDLEVBQUU7SUFDOUQ7QUFDRjtBQUVVIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvcG9seWZpbGwudHM/YzBiOCJdLCJzb3VyY2VzQ29udGVudCI6WyJkZWNsYXJlIGdsb2JhbCB7XHJcbiAgaW50ZXJmYWNlIEFycmF5PFQ+IHtcclxuICAgIGF0KGluZGV4OiBudW1iZXIpOiBUIHwgdW5kZWZpbmVkO1xyXG4gIH1cclxufVxyXG5cclxuaWYgKCFBcnJheS5wcm90b3R5cGUuYXQpIHtcclxuICBBcnJheS5wcm90b3R5cGUuYXQgPSBmdW5jdGlvbiAoaW5kZXg6IG51bWJlcikge1xyXG4gICAgLy8gR2V0IHRoZSBsZW5ndGggb2YgdGhlIGFycmF5XHJcbiAgICBjb25zdCBsZW5ndGggPSB0aGlzLmxlbmd0aDtcclxuXHJcbiAgICAvLyBDb252ZXJ0IG5lZ2F0aXZlIGluZGV4IHRvIGEgcG9zaXRpdmUgaW5kZXhcclxuICAgIGlmIChpbmRleCA8IDApIHtcclxuICAgICAgaW5kZXggPSBsZW5ndGggKyBpbmRleDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBSZXR1cm4gdW5kZWZpbmVkIGlmIHRoZSBpbmRleCBpcyBvdXQgb2YgcmFuZ2VcclxuICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gbGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVXNlIEFycmF5LnByb3RvdHlwZS5zbGljZSBtZXRob2QgdG8gZ2V0IHZhbHVlIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXhcclxuICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLCBpbmRleCwgaW5kZXggKyAxKVswXTtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQge307XHJcbiJdLCJuYW1lcyI6WyJBcnJheSIsInByb3RvdHlwZSIsImF0IiwiaW5kZXgiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJzbGljZSIsImNhbGwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/polyfill.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/store/access.ts":
|
|
|
/*!*****************************!*\
|
|
|
!*** ./app/store/access.ts ***!
|
|
|
\*****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useAccessStore: () => (/* binding */ useAccessStore)\n/* harmony export */ });\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _client_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../client/api */ \"(ssr)/./app/client/api.ts\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _utils_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/store */ \"(ssr)/./app/utils/store.ts\");\n/* harmony import */ var _utils_clone__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/clone */ \"(ssr)/./app/utils/clone.ts\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _utils_model__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/model */ \"(ssr)/./app/utils/model.ts\");\n\n\n\n\n\n\n\nlet fetchState = 0; // 0 not fetch, 1 fetching, 2 done\nconst isApp = (0,_config_client__WEBPACK_IMPORTED_MODULE_2__.getClientConfig)()?.buildMode === \"export\";\nconst DEFAULT_OPENAI_URL = isApp ? _constant__WEBPACK_IMPORTED_MODULE_0__.OPENAI_BASE_URL : _constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.OpenAI;\nconst DEFAULT_GOOGLE_URL = isApp ? _constant__WEBPACK_IMPORTED_MODULE_0__.GEMINI_BASE_URL : _constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Google;\nconst DEFAULT_ANTHROPIC_URL = isApp ? _constant__WEBPACK_IMPORTED_MODULE_0__.ANTHROPIC_BASE_URL : _constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Anthropic;\nconst DEFAULT_BAIDU_URL = isApp ? _constant__WEBPACK_IMPORTED_MODULE_0__.BAIDU_BASE_URL : _constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Baidu;\nconst DEFAULT_BYTEDANCE_URL = isApp ? _constant__WEBPACK_IMPORTED_MODULE_0__.BYTEDANCE_BASE_URL : _constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.ByteDance;\nconst DEFAULT_ALIBABA_URL = isApp ? _constant__WEBPACK_IMPORTED_MODULE_0__.ALIBABA_BASE_URL : _constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Alibaba;\nconst DEFAULT_TENCENT_URL = isApp ? _constant__WEBPACK_IMPORTED_MODULE_0__.TENCENT_BASE_URL : _constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Tencent;\nconst DEFAULT_MOONSHOT_URL = isApp ? _constant__WEBPACK_IMPORTED_MODULE_0__.MOONSHOT_BASE_URL : _constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Moonshot;\nconst DEFAULT_STABILITY_URL = isApp ? _constant__WEBPACK_IMPORTED_MODULE_0__.STABILITY_BASE_URL : _constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Stability;\nconst DEFAULT_IFLYTEK_URL = isApp ? _constant__WEBPACK_IMPORTED_MODULE_0__.IFLYTEK_BASE_URL : _constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.Iflytek;\nconst DEFAULT_DEEPSEEK_URL = isApp ? _constant__WEBPACK_IMPORTED_MODULE_0__.DEEPSEEK_BASE_URL : _constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.DeepSeek;\nconst DEFAULT_XAI_URL = isApp ? _constant__WEBPACK_IMPORTED_MODULE_0__.XAI_BASE_URL : _constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.XAI;\nconst DEFAULT_CHATGLM_URL = isApp ? _constant__WEBPACK_IMPORTED_MODULE_0__.CHATGLM_BASE_URL : _constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.ChatGLM;\nconst DEFAULT_SILICONFLOW_URL = isApp ? _constant__WEBPACK_IMPORTED_MODULE_0__.SILICONFLOW_BASE_URL : _constant__WEBPACK_IMPORTED_MODULE_0__.ApiPath.SiliconFlow;\nconst DEFAULT_ACCESS_STATE = {\n accessCode: \"\",\n useCustomConfig: false,\n provider: _constant__WEBPACK_IMPORTED_MODULE_0__.ServiceProvider.OpenAI,\n // openai\n openaiUrl: DEFAULT_OPENAI_URL,\n openaiApiKey: \"\",\n // azure\n azureUrl: \"\",\n azureApiKey: \"\",\n azureApiVersion: \"2023-08-01-preview\",\n // google ai studio\n googleUrl: DEFAULT_GOOGLE_URL,\n googleApiKey: \"\",\n googleApiVersion: \"v1\",\n googleSafetySettings: _constant__WEBPACK_IMPORTED_MODULE_0__.GoogleSafetySettingsThreshold.BLOCK_ONLY_HIGH,\n // anthropic\n anthropicUrl: DEFAULT_ANTHROPIC_URL,\n anthropicApiKey: \"\",\n anthropicApiVersion: \"2023-06-01\",\n // baidu\n baiduUrl: DEFAULT_BAIDU_URL,\n baiduApiKey: \"\",\n baiduSecretKey: \"\",\n // bytedance\n bytedanceUrl: DEFAULT_BYTEDANCE_URL,\n bytedanceApiKey: \"\",\n // alibaba\n alibabaUrl: DEFAULT_ALIBABA_URL,\n alibabaApiKey: \"\",\n // moonshot\n moonshotUrl: DEFAULT_MOONSHOT_URL,\n moonshotApiKey: \"\",\n //stability\n stabilityUrl: DEFAULT_STABILITY_URL,\n stabilityApiKey: \"\",\n // tencent\n tencentUrl: DEFAULT_TENCENT_URL,\n tencentSecretKey: \"\",\n tencentSecretId: \"\",\n // iflytek\n iflytekUrl: DEFAULT_IFLYTEK_URL,\n iflytekApiKey: \"\",\n iflytekApiSecret: \"\",\n // deepseek\n deepseekUrl: DEFAULT_DEEPSEEK_URL,\n deepseekApiKey: \"\",\n // xai\n xaiUrl: DEFAULT_XAI_URL,\n xaiApiKey: \"\",\n // chatglm\n chatglmUrl: DEFAULT_CHATGLM_URL,\n chatglmApiKey: \"\",\n // siliconflow\n siliconflowUrl: DEFAULT_SILICONFLOW_URL,\n siliconflowApiKey: \"\",\n // server config\n needCode: true,\n hideUserApiKey: false,\n hideBalanceQuery: false,\n disableGPT4: false,\n disableFastLink: false,\n customModels: \"\",\n defaultModel: \"\",\n visionModels: \"\",\n // tts config\n edgeTTSVoiceName: \"zh-CN-YunxiNeural\"\n};\nconst useAccessStore = (0,_utils_store__WEBPACK_IMPORTED_MODULE_3__.createPersistStore)({\n ...DEFAULT_ACCESS_STATE\n}, (set, get)=>({\n enabledAccessControl () {\n this.fetch();\n return get().needCode;\n },\n getVisionModels () {\n this.fetch();\n return get().visionModels;\n },\n edgeVoiceName () {\n this.fetch();\n return get().edgeTTSVoiceName;\n },\n isValidOpenAI () {\n return (0,_utils_clone__WEBPACK_IMPORTED_MODULE_4__.ensure)(get(), [\n \"openaiApiKey\"\n ]);\n },\n isValidAzure () {\n return (0,_utils_clone__WEBPACK_IMPORTED_MODULE_4__.ensure)(get(), [\n \"azureUrl\",\n \"azureApiKey\",\n \"azureApiVersion\"\n ]);\n },\n isValidGoogle () {\n return (0,_utils_clone__WEBPACK_IMPORTED_MODULE_4__.ensure)(get(), [\n \"googleApiKey\"\n ]);\n },\n isValidAnthropic () {\n return (0,_utils_clone__WEBPACK_IMPORTED_MODULE_4__.ensure)(get(), [\n \"anthropicApiKey\"\n ]);\n },\n isValidBaidu () {\n return (0,_utils_clone__WEBPACK_IMPORTED_MODULE_4__.ensure)(get(), [\n \"baiduApiKey\",\n \"baiduSecretKey\"\n ]);\n },\n isValidByteDance () {\n return (0,_utils_clone__WEBPACK_IMPORTED_MODULE_4__.ensure)(get(), [\n \"bytedanceApiKey\"\n ]);\n },\n isValidAlibaba () {\n return (0,_utils_clone__WEBPACK_IMPORTED_MODULE_4__.ensure)(get(), [\n \"alibabaApiKey\"\n ]);\n },\n isValidTencent () {\n return (0,_utils_clone__WEBPACK_IMPORTED_MODULE_4__.ensure)(get(), [\n \"tencentSecretKey\",\n \"tencentSecretId\"\n ]);\n },\n isValidMoonshot () {\n return (0,_utils_clone__WEBPACK_IMPORTED_MODULE_4__.ensure)(get(), [\n \"moonshotApiKey\"\n ]);\n },\n isValidIflytek () {\n return (0,_utils_clone__WEBPACK_IMPORTED_MODULE_4__.ensure)(get(), [\n \"iflytekApiKey\"\n ]);\n },\n isValidDeepSeek () {\n return (0,_utils_clone__WEBPACK_IMPORTED_MODULE_4__.ensure)(get(), [\n \"deepseekApiKey\"\n ]);\n },\n isValidXAI () {\n return (0,_utils_clone__WEBPACK_IMPORTED_MODULE_4__.ensure)(get(), [\n \"xaiApiKey\"\n ]);\n },\n isValidChatGLM () {\n return (0,_utils_clone__WEBPACK_IMPORTED_MODULE_4__.ensure)(get(), [\n \"chatglmApiKey\"\n ]);\n },\n isValidSiliconFlow () {\n return (0,_utils_clone__WEBPACK_IMPORTED_MODULE_4__.ensure)(get(), [\n \"siliconflowApiKey\"\n ]);\n },\n isAuthorized () {\n this.fetch();\n // has token or has code or disabled access control\n return this.isValidOpenAI() || this.isValidAzure() || this.isValidGoogle() || this.isValidAnthropic() || this.isValidBaidu() || this.isValidByteDance() || this.isValidAlibaba() || this.isValidTencent() || this.isValidMoonshot() || this.isValidIflytek() || this.isValidDeepSeek() || this.isValidXAI() || this.isValidChatGLM() || this.isValidSiliconFlow() || !this.enabledAccessControl() || this.enabledAccessControl() && (0,_utils_clone__WEBPACK_IMPORTED_MODULE_4__.ensure)(get(), [\n \"accessCode\"\n ]);\n },\n fetch () {\n if (fetchState > 0 || (0,_config_client__WEBPACK_IMPORTED_MODULE_2__.getClientConfig)()?.buildMode === \"export\") return;\n fetchState = 1;\n fetch(\"/api/config\", {\n method: \"post\",\n body: null,\n headers: {\n ...(0,_client_api__WEBPACK_IMPORTED_MODULE_1__.getHeaders)()\n }\n }).then((res)=>res.json()).then((res)=>{\n const defaultModel = res.defaultModel ?? \"\";\n if (defaultModel !== \"\") {\n const [model, providerName] = (0,_utils_model__WEBPACK_IMPORTED_MODULE_6__.getModelProvider)(defaultModel);\n _config__WEBPACK_IMPORTED_MODULE_5__.DEFAULT_CONFIG.modelConfig.model = model;\n _config__WEBPACK_IMPORTED_MODULE_5__.DEFAULT_CONFIG.modelConfig.providerName = providerName;\n }\n return res;\n }).then((res)=>{\n console.log(\"[Config] got config from server\", res);\n set(()=>({\n ...res\n }));\n }).catch(()=>{\n console.error(\"[Config] failed to fetch config\");\n }).finally(()=>{\n fetchState = 2;\n });\n }\n }), {\n name: _constant__WEBPACK_IMPORTED_MODULE_0__.StoreKey.Access,\n version: 2,\n migrate (persistedState, version) {\n if (version < 2) {\n const state = persistedState;\n state.openaiApiKey = state.token;\n state.azureApiVersion = \"2023-08-01-preview\";\n }\n return persistedState;\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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dEJGLElBQUksQ0FBQyxDQUFDQztnQkFDTCxNQUFNN0IsZUFBZTZCLElBQUk3QixZQUFZLElBQUk7Z0JBQ3pDLElBQUlBLGlCQUFpQixJQUFJO29CQUN2QixNQUFNLENBQUMrQixPQUFPQyxhQUFhLEdBQUdoSCw4REFBZ0JBLENBQUNnRjtvQkFDL0NqRixtREFBY0EsQ0FBQ2tILFdBQVcsQ0FBQ0YsS0FBSyxHQUFHQTtvQkFDbkNoSCxtREFBY0EsQ0FBQ2tILFdBQVcsQ0FBQ0QsWUFBWSxHQUFHQTtnQkFDNUM7Z0JBRUEsT0FBT0g7WUFDVCxHQUNDRCxJQUFJLENBQUMsQ0FBQ0M7Z0JBQ0xLLFFBQVFDLEdBQUcsQ0FBQyxtQ0FBbUNOO2dCQUMvQ3pCLElBQUksSUFBTzt3QkFBRSxHQUFHeUIsR0FBRztvQkFBQztZQUN0QixHQUNDTyxLQUFLLENBQUM7Z0JBQ0xGLFFBQVFHLEtBQUssQ0FBQztZQUNoQixHQUNDQyxPQUFPLENBQUM7Z0JBQ1BySCxhQUFhO1lBQ2Y7UUFDSjtJQUNGLElBQ0E7SUFDRXNILE1BQU01SSwrQ0FBUUEsQ0FBQzZJLE1BQU07SUFDckJDLFNBQVM7SUFDVEMsU0FBUUMsY0FBYyxFQUFFRixPQUFPO1FBQzdCLElBQUlBLFVBQVUsR0FBRztZQUNmLE1BQU1HLFFBQVFEO1lBTWRDLE1BQU12RixZQUFZLEdBQUd1RixNQUFNQyxLQUFLO1lBQ2hDRCxNQUFNcEYsZUFBZSxHQUFHO1FBQzFCO1FBRUEsT0FBT21GO0lBQ1Q7QUFDRixHQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvc3RvcmUvYWNjZXNzLnRzPzNhOWUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBHb29nbGVTYWZldHlTZXR0aW5nc1RocmVzaG9sZCxcclxuICBTZXJ2aWNlUHJvdmlkZXIsXHJcbiAgU3RvcmVLZXksXHJcbiAgQXBpUGF0aCxcclxuICBPUEVOQUlfQkFTRV9VUkwsXHJcbiAgQU5USFJPUElDX0JBU0VfVVJMLFxyXG4gIEdFTUlOSV9CQVNFX1VSTCxcclxuICBCQUlEVV9CQVNFX1VSTCxcclxuICBCWVRFREFOQ0VfQkFTRV9VUkwsXHJcbiAgQUxJQkFCQV9CQVNFX1VSTCxcclxuICBURU5DRU5UX0JBU0VfVVJMLFxyXG4gIE1PT05TSE9UX0JBU0VfVVJMLFxyXG4gIFNUQUJJTElUWV9CQVNFX1VSTCxcclxuICBJRkxZVEVLX0JBU0VfVVJMLFxyXG4gIERFRVBTRUVLX0JBU0VfVVJMLFxyXG4gIFhBSV9CQVNFX1VSTCxcclxuICBDSEFUR0xNX0JBU0VfVVJMLFxyXG4gIFNJTElDT05GTE9XX0JBU0VfVVJMLFxyXG59IGZyb20gXCIuLi9jb25zdGFudFwiO1xyXG5pbXBvcnQgeyBnZXRIZWFkZXJzIH0gZnJvbSBcIi4uL2NsaWVudC9hcGlcIjtcclxuaW1wb3J0IHsgZ2V0Q2xpZW50Q29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9jbGllbnRcIjtcclxuaW1wb3J0IHsgY3JlYXRlUGVyc2lzdFN0b3JlIH0gZnJvbSBcIi4uL3V0aWxzL3N0b3JlXCI7XHJcbmltcG9ydCB7IGVuc3VyZSB9IGZyb20gXCIuLi91dGlscy9jbG9uZVwiO1xyXG5pbXBvcnQgeyBERUZBVUxUX0NPTkZJRyB9IGZyb20gXCIuL2NvbmZpZ1wiO1xyXG5pbXBvcnQgeyBnZXRNb2RlbFByb3ZpZGVyIH0gZnJvbSBcIi4uL3V0aWxzL21vZGVsXCI7XHJcblxyXG5sZXQgZmV0Y2hTdGF0ZSA9IDA7IC8vIDAgbm90IGZldGNoLCAxIGZldGNoaW5nLCAyIGRvbmVcclxuXHJcbmNvbnN0IGlzQXBwID0gZ2V0Q2xpZW50Q29uZmlnKCk/LmJ1aWxkTW9kZSA9PT0gXCJleHBvcnRcIjtcclxuXHJcbmNvbnN0IERFRkFVTFRfT1BFTkFJX1VSTCA9IGlzQXBwID8gT1BFTkFJX0JBU0VfVVJMIDogQXBpUGF0aC5PcGVuQUk7XHJcblxyXG5jb25zdCBERUZBVUxUX0dPT0dMRV9VUkwgPSBpc0FwcCA/IEdFTUlOSV9CQVNFX1VSTCA6IEFwaVBhdGguR29vZ2xlO1xyXG5cclxuY29uc3QgREVGQVVMVF9BTlRIUk9QSUNfVVJMID0gaXNBcHAgPyBBTlRIUk9QSUNfQkFTRV9VUkwgOiBBcGlQYXRoLkFudGhyb3BpYztcclxuXHJcbmNvbnN0IERFRkFVTFRfQkFJRFVfVVJMID0gaXNBcHAgPyBCQUlEVV9CQVNFX1VSTCA6IEFwaVBhdGguQmFpZHU7XHJcblxyXG5jb25zdCBERUZBVUxUX0JZVEVEQU5DRV9VUkwgPSBpc0FwcCA/IEJZVEVEQU5DRV9CQVNFX1VSTCA6IEFwaVBhdGguQnl0ZURhbmNlO1xyXG5cclxuY29uc3QgREVGQVVMVF9BTElCQUJBX1VSTCA9IGlzQXBwID8gQUxJQkFCQV9CQVNFX1VSTCA6IEFwaVBhdGguQWxpYmFiYTtcclxuXHJcbmNvbnN0IERFRkFVTFRfVEVOQ0VOVF9VUkwgPSBpc0FwcCA/IFRFTkNFTlRfQkFTRV9VUkwgOiBBcGlQYXRoLlRlbmNlbnQ7XHJcblxyXG5jb25zdCBERUZBVUxUX01PT05TSE9UX1VSTCA9IGlzQXBwID8gTU9PTlNIT1RfQkFTRV9VUkwgOiBBcGlQYXRoLk1vb25zaG90O1xyXG5cclxuY29uc3QgREVGQVVMVF9TVEFCSUxJVFlfVVJMID0gaXNBcHAgPyBTVEFCSUxJVFlfQkFTRV9VUkwgOiBBcGlQYXRoLlN0YWJpbGl0eTtcclxuXHJcbmNvbnN0IERFRkFVTFRfSUZMWVRFS19VUkwgPSBpc0FwcCA/IElGTFlURUtfQkFTRV9VUkwgOiBBcGlQYXRoLklmbHl0ZWs7XHJcblxyXG5jb25zdCBERUZBVUxUX0RFRVBTRUVLX1VSTCA9IGlzQXBwID8gREVFUFNFRUtfQkFTRV9VUkwgOiBBcGlQYXRoLkRlZXBTZWVrO1xyXG5cclxuY29uc3QgREVGQVVMVF9YQUlfVVJMID0gaXNBcHAgPyBYQUlfQkFTRV9VUkwgOiBBcGlQYXRoLlhBSTtcclxuXHJcbmNvbnN0IERFRkFVTFRfQ0hBVEdMTV9VUkwgPSBpc0FwcCA/IENIQVRHTE1fQkFTRV9VUkwgOiBBcGlQYXRoLkNoYXRHTE07XHJcblxyXG5jb25zdCBERUZBVUxUX1NJTElDT05GTE9XX1VSTCA9IGlzQXBwXHJcbiAgPyBTSUxJQ09ORkxPV19CQVNFX1VSTFxyXG4gIDogQXBpUGF0aC5TaWxpY29uRmxvdztcclxuXHJcbmNvbnN0IERFRkFVTFRfQUNDRVNTX1NUQVRFID0ge1xyXG4gIGFjY2Vzc0NvZGU6IFwiXCIsXHJcbiAgdXNlQ3VzdG9tQ29uZmlnOiBmYWxzZSxcclxuXHJcbiAgcHJvdmlkZXI6IFNlcnZpY2VQcm92aWRlci5PcGVuQUksXHJcblxyXG4gIC8vIG9wZW5haVxyXG4gIG9wZW5haVVybDogREVGQVVMVF9PUEVOQUlfVVJMLFxyXG4gIG9wZW5haUFwaUtleTogXCJcIixcclxuXHJcbiAgLy8gYXp1cmVcclxuICBhenVyZVVybDogXCJcIixcclxuICBhenVyZUFwaUtleTogXCJcIixcclxuICBhenVyZUFwaVZlcnNpb246IFwiMjAyMy0wOC0wMS1wcmV2aWV3XCIsXHJcblxyXG4gIC8vIGdvb2dsZSBhaSBzdHVkaW9cclxuICBnb29nbGVVcmw6IERFRkFVTFRfR09PR0xFX1VSTCxcclxuICBnb29nbGVBcGlLZXk6IFwiXCIsXHJcbiAgZ29vZ2xlQXBpVmVyc2lvbjogXCJ2MVwiLFxyXG4gIGdvb2dsZVNhZmV0eVNldHRpbmdzOiBHb29nbGVTYWZldHlTZXR0aW5nc1RocmVzaG9sZC5CTE9DS19PTkxZX0hJR0gsXHJcblxyXG4gIC8vIGFudGhyb3BpY1xyXG4gIGFudGhyb3BpY1VybDogREVGQVVMVF9BTlRIUk9QSUNfVVJMLFxyXG4gIGFudGhyb3BpY0FwaUtleTogXCJcIixcclxuICBhbnRocm9waWNBcGlWZXJzaW9uOiBcIjIwMjMtMDYtMDFcIixcclxuXHJcbiAgLy8gYmFpZHVcclxuICBiYWlkdVVybDogREVGQVVMVF9CQUlEVV9VUkwsXHJcbiAgYmFpZHVBcGlLZXk6IFwiXCIsXHJcbiAgYmFpZHVTZWNyZXRLZXk6IFwiXCIsXHJcblxyXG4gIC8vIGJ5dGVkYW5jZVxyXG4gIGJ5dGVkYW5jZVVybDogREVGQVVMVF9CWVRFREFOQ0VfVVJMLFxyXG4gIGJ5dGVkYW5jZUFwaUtleTogXCJcIixcclxuXHJcbiAgLy8gYWxpYmFiYVxyXG4gIGFsaWJhYmFVcmw6IERFRkFVTFRfQUxJQkFCQV9VUkwsXHJcbiAgYWxpYmFiYUFwaUtleTogXCJcIixcclxuXHJcbiAgLy8gbW9vbnNob3RcclxuICBtb29uc2hvdFVybDogREVGQVVMVF9NT09OU0hPVF9VUkwsXHJcbiAgbW9vbnNob3RBcGlLZXk6IFwiXCIsXHJcblxyXG4gIC8vc3RhYmlsaXR5XHJcbiAgc3RhYmlsaXR5VXJsOiBERUZBVUxUX1NUQUJJTElUWV9VUkwsXHJcbiAgc3RhYmlsaXR5QXBpS2V5OiBcIlwiLFxyXG5cclxuICAvLyB0ZW5jZW50XHJcbiAgdGVuY2VudFVybDogREVGQVVMVF9URU5DRU5UX1VSTCxcclxuICB0ZW5jZW50U2VjcmV0S2V5OiBcIlwiLFxyXG4gIHRlbmNlbnRTZWNyZXRJZDogXCJcIixcclxuXHJcbiAgLy8gaWZseXRla1xyXG4gIGlmbHl0ZWtVcmw6IERFRkFVTFRfSUZMWVRFS19VUkwsXHJcbiAgaWZseXRla0FwaUtleTogXCJcIixcclxuICBpZmx5dGVrQXBpU2VjcmV0OiBcIlwiLFxyXG5cclxuICAvLyBkZWVwc2Vla1xyXG4gIGRlZXBzZWVrVXJsOiBERUZBVUxUX0RFRVBTRUVLX1VSTCxcclxuICBkZWVwc2Vla0FwaUtleTogXCJcIixcclxuXHJcbiAgLy8geGFpXHJcbiAgeGFpVXJsOiBERUZBVUxUX1hBSV9VUkwsXHJcbiAgeGFpQXBpS2V5OiBcIlwiLFxyXG5cclxuICAvLyBjaGF0Z2xtXHJcbiAgY2hhdGdsbVVybDogREVGQVVMVF9DSEFUR0xNX1VSTCxcclxuICBjaGF0Z2xtQXBpS2V5OiBcIlwiLFxyXG5cclxuICAvLyBzaWxpY29uZmxvd1xyXG4gIHNpbGljb25mbG93VXJsOiBERUZBVUxUX1NJTElDT05GTE9XX1VSTCxcclxuICBzaWxpY29uZmxvd0FwaUtleTogXCJcIixcclxuXHJcbiAgLy8gc2VydmVyIGNvbmZpZ1xyXG4gIG5lZWRDb2RlOiB0cnVlLFxyXG4gIGhpZGVVc2VyQXBpS2V5OiBmYWxzZSxcclxuICBoaWRlQmFsYW5jZVF1ZXJ5OiBmYWxzZSxcclxuICBkaXNhYmxlR1BUNDogZmFsc2UsXHJcbiAgZGlzYWJsZUZhc3RMaW5rOiBmYWxzZSxcclxuICBjdXN0b21Nb2RlbHM6IFwiXCIsXHJcbiAgZGVmYXVsdE1vZGVsOiBcIlwiLFxyXG4gIHZpc2lvbk1vZGVsczogXCJcIixcclxuXHJcbiAgLy8gdHRzIGNvbmZpZ1xyXG4gIGVkZ2VUVFNWb2ljZU5hbWU6IFwiemgtQ04tWXVueGlOZXVyYWxcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCB1c2VBY2Nlc3NTdG9yZSA9IGNyZWF0ZVBlcnNpc3RTdG9yZShcclxuICB7IC4uLkRFRkFVTFRfQUNDRVNTX1NUQVRFIH0sXHJcblxyXG4gIChzZXQsIGdldCkgPT4gKHtcclxuICAgIGVuYWJsZWRBY2Nlc3NDb250cm9sKCkge1xyXG4gICAgICB0aGlzLmZldGNoKCk7XHJcblxyXG4gICAgICByZXR1cm4gZ2V0KCkubmVlZENvZGU7XHJcbiAgICB9LFxyXG4gICAgZ2V0VmlzaW9uTW9kZWxzKCkge1xyXG4gICAgICB0aGlzLmZldGNoKCk7XHJcbiAgICAgIHJldHVybiBnZXQoKS52aXNpb25Nb2RlbHM7XHJcbiAgICB9LFxyXG4gICAgZWRnZVZvaWNlTmFtZSgpIHtcclxuICAgICAgdGhpcy5mZXRjaCgpO1xyXG5cclxuICAgICAgcmV0dXJuIGdldCgpLmVkZ2VUVFNWb2ljZU5hbWU7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzVmFsaWRPcGVuQUkoKSB7XHJcbiAgICAgIHJldHVybiBlbnN1cmUoZ2V0KCksIFtcIm9wZW5haUFwaUtleVwiXSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzVmFsaWRBenVyZSgpIHtcclxuICAgICAgcmV0dXJuIGVuc3VyZShnZXQoKSwgW1wiYXp1cmVVcmxcIiwgXCJhenVyZUFwaUtleVwiLCBcImF6dXJlQXBpVmVyc2lvblwiXSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzVmFsaWRHb29nbGUoKSB7XHJcbiAgICAgIHJldHVybiBlbnN1cmUoZ2V0KCksIFtcImdvb2dsZUFwaUtleVwiXSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzVmFsaWRBbnRocm9waWMoKSB7XHJcbiAgICAgIHJldHVybiBlbnN1cmUoZ2V0KCksIFtcImFudGhyb3BpY0FwaUtleVwiXSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzVmFsaWRCYWlkdSgpIHtcclxuICAgICAgcmV0dXJuIGVuc3VyZShnZXQoKSwgW1wiYmFpZHVBcGlLZXlcIiwgXCJiYWlkdVNlY3JldEtleVwiXSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzVmFsaWRCeXRlRGFuY2UoKSB7XHJcbiAgICAgIHJldHVybiBlbnN1cmUoZ2V0KCksIFtcImJ5dGVkYW5jZUFwaUtleVwiXSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzVmFsaWRBbGliYWJhKCkge1xyXG4gICAgICByZXR1cm4gZW5zdXJlKGdldCgpLCBbXCJhbGliYWJhQXBpS2V5XCJdKTtcclxuICAgIH0sXHJcblxyXG4gICAgaXNWYWxpZFRlbmNlbnQoKSB7XHJcbiAgICAgIHJldHVybiBlbnN1cmUoZ2V0KCksIFtcInRlbmNlbnRTZWNyZXRLZXlcIiwgXCJ0ZW5jZW50U2VjcmV0SWRcIl0pO1xyXG4gICAgfSxcclxuXHJcbiAgICBpc1ZhbGlkTW9vbnNob3QoKSB7XHJcbiAgICAgIHJldHVybiBlbnN1cmUoZ2V0KCksIFtcIm1vb25zaG90QXBpS2V5XCJdKTtcclxuICAgIH0sXHJcbiAgICBpc1ZhbGlkSWZseXRlaygpIHtcclxuICAgICAgcmV0dXJuIGVuc3VyZShnZXQoKSwgW1wiaWZseXRla0FwaUtleVwiXSk7XHJcbiAgICB9LFxyXG4gICAgaXNWYWxpZERlZXBTZWVrKCkge1xyXG4gICAgICByZXR1cm4gZW5zdXJlKGdldCgpLCBbXCJkZWVwc2Vla0FwaUtleVwiXSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzVmFsaWRYQUkoKSB7XHJcbiAgICAgIHJldHVybiBlbnN1cmUoZ2V0KCksIFtcInhhaUFwaUtleVwiXSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzVmFsaWRDaGF0R0xNKCkge1xyXG4gICAgICByZXR1cm4gZW5zdXJlKGdldCgpLCBbXCJjaGF0Z2xtQXBpS2V5XCJdKTtcclxuICAgIH0sXHJcblxyXG4gICAgaXNWYWxpZFNpbGljb25GbG93KCkge1xyXG4gICAgICByZXR1cm4gZW5zdXJlKGdldCgpLCBbXCJzaWxpY29uZmxvd0FwaUtleVwiXSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzQXV0aG9yaXplZCgpIHtcclxuICAgICAgdGhpcy5mZXRjaCgpO1xyXG5cclxuICAgICAgLy8gaGFzIHRva2VuIG9yIGhhcyBjb2RlIG9yIGRpc2FibGVkIGFjY2VzcyBjb250cm9sXHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgdGhpcy5pc1ZhbGlkT3BlbkFJKCkgfHxcclxuICAgICAgICB0aGlzLmlzVmFsaWRBenVyZSgpIHx8XHJcbiAgICAgICAgdGhpcy5pc1ZhbGlkR29vZ2xlKCkgfHxcclxuICAgICAgICB0aGlzLmlzVmFsaWRBbnRocm9waWMoKSB8fFxyXG4gICAgICAgIHRoaXMuaXNWYWxpZEJhaWR1KCkgfHxcclxuICAgICAgICB0aGlzLmlzVmFsaWRCeXRlRGFuY2UoKSB8fFxyXG4gICAgICAgIHRoaXMuaXNWYWxpZEFsaWJhYmEoKSB8fFxyXG4gICAgICAgIHRoaXMuaXNWYWxpZFRlbmNlbnQoKSB8fFxyXG4gICAgICAgIHRoaXMuaXNWYWxpZE1vb25zaG90KCkgfHxcclxuICAgICAgICB0aGlzLmlzVmFsaWRJZmx5dGVrKCkgfHxcclxuICAgICAgICB0aGlzLmlzVmFsaWREZWVwU2VlaygpIHx8XHJcbiAgICAgICAgdGhpcy5pc1ZhbGlkWEFJKCkgfHxcclxuICAgICAgICB0aGlzLmlzVmFsaWRDaGF0R0xNKCkgfHxcclxuICAgICAgICB0aGlzLmlzVmFsaWRTaWxpY29uRmxvdygpIHx8XHJcbiAgICAgICAgIXRoaXMuZW5hYmxlZEFjY2Vzc0NvbnRyb2woKSB8fFxyXG4gICAgICAgICh0aGlzLmVuYWJsZWRBY2Nlc3NDb250cm9sKCkgJiYgZW5zdXJlKGdldCgpLCBbXCJhY2Nlc3NDb2RlXCJdKSlcclxuICAgICAgKTtcclxuICAgIH0sXHJcbiAgICBmZXRjaCgpIHtcclxuICAgICAgaWYgKGZldGNoU3RhdGUgPiAwIHx8IGdldENsaWVudENvbmZpZygpPy5idWlsZE1vZGUgPT09IFwiZXhwb3J0XCIpIHJldHVybjtcclxuICAgICAgZmV0Y2hTdGF0ZSA9IDE7XHJcbiAgICAgIGZldGNoKFwiL2FwaS9jb25maWdcIiwge1xyXG4gICAgICAgIG1ldGhvZDogXCJwb3N0XCIsXHJcbiAgICAgICAgYm9keTogbnVsbCxcclxuICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAuLi5nZXRIZWFkZXJzKCksXHJcbiAgICAgICAgfSxcclxuICAgICAgfSlcclxuICAgICAgICAudGhlbigocmVzKSA9PiByZXMuanNvbigpKVxyXG4gICAgICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGRlZmF1bHRNb2RlbCA9IHJlcy5kZWZhdWx0TW9kZWwgPz8gXCJcIjtcclxuICAgICAgICAgIGlmIChkZWZhdWx0TW9kZWwgIT09IFwiXCIpIHtcclxuICAgICAgICAgICAgY29uc3QgW21vZGVsLCBwcm92aWRlck5hbWVdID0gZ2V0TW9kZWxQcm92aWRlcihkZWZhdWx0TW9kZWwpO1xyXG4gICAgICAgICAgICBERUZBVUxUX0NPTkZJRy5tb2RlbENvbmZpZy5tb2RlbCA9IG1vZGVsO1xyXG4gICAgICAgICAgICBERUZBVUxUX0NPTkZJRy5tb2RlbENvbmZpZy5wcm92aWRlck5hbWUgPSBwcm92aWRlck5hbWUgYXMgYW55O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAudGhlbigocmVzOiBEYW5nZXJDb25maWcpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiW0NvbmZpZ10gZ290IGNvbmZpZyBmcm9tIHNlcnZlclwiLCByZXMpO1xyXG4gICAgICAgICAgc2V0KCgpID0+ICh7IC4uLnJlcyB9KSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcIltDb25maWddIGZhaWxlZCB0byBmZXRjaCBjb25maWdcIik7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuZmluYWxseSgoKSA9PiB7XHJcbiAgICAgICAgICBmZXRjaFN0YXRlID0gMjtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgfSksXHJcbiAge1xyXG4gICAgbmFtZTogU3RvcmVLZXkuQWNjZXNzLFxyXG4gICAgdmVyc2lvbjogMixcclxuICAgIG1pZ3JhdGUocGVyc2lzdGVkU3RhdGUsIHZlcnNpb24pIHtcclxuICAgICAgaWYgKHZlcnNpb24gPCAyKSB7XHJcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBwZXJzaXN0ZWRTdGF0ZSBhcyB7XHJcbiAgICAgICAgICB0b2tlbjogc3RyaW5nO1xyXG4gICAgICAgICAgb3BlbmFpQXBpS2V5OiBzdHJpbmc7XHJcbiAgICAgICAgICBhenVyZUFwaVZlcnNpb246IHN0cmluZztcclxuICAgICAgICAgIGdvb2dsZUFwaUtleTogc3RyaW5nO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgc3RhdGUub3BlbmFpQXBpS2V5ID0gc3RhdGUudG9rZW47XHJcbiAgICAgICAgc3RhdGUuYXp1cmVBcGlWZXJzaW9uID0gXCIyMDIzLTA4LTAxLXByZXZpZXdcIjtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHBlcnNpc3RlZFN0YXRlIGFzIGFueTtcclxuICAgIH0sXHJcbiAgfSxcclxuKTtcclxuIl0sIm5hbWVzIjpbIkdvb2dsZVNhZmV0eVNldHRpbmdzVGhyZXNob2xkIiwiU2VydmljZVByb3ZpZGVyIiwiU3RvcmVLZXkiLCJBcGlQYXRoIiwiT1BFTkFJX0JBU0VfVVJMIiwiQU5USFJPUElDX0JBU0VfVVJMIiwiR0VNSU5JX0JBU0VfVVJMIiwiQkFJRFVfQkFTRV9VUkwiLCJCWVRFREFOQ0VfQkFTRV9VUkwiLCJBTElCQUJBX0JBU0VfVVJMIiwiVEVOQ0VOVF9CQVNFX1VSTCIsIk1PT05TSE9UX0JBU0VfVVJMIiwiU1RBQklMSVRZX0JBU0VfVVJMIiwiSUZMWVRFS19CQVNFX1VSTCIsIkRFRVBTRUVLX0JBU0VfVVJMIiwiWEFJX0JBU0VfVVJMIiwiQ0hBVEdMTV9CQVNFX1VSTCIsIlNJTElDT05GTE9XX0JBU0VfVVJMIiwiZ2V0SGVhZGVycyIsImdldENsaWVudENvbmZpZyIsImNyZWF0ZVBlcnNpc3RTdG9yZSIsImVuc3VyZSIsIkRFRkFVTFRfQ09ORklHIiwiZ2V0TW9kZWxQcm92aWRlciIsImZldGNoU3RhdGUiLCJpc0FwcCIsImJ1aWxkTW9kZSIsIkRFRkFVTFRfT1BFTkFJX1VSTCIsIk9wZW5BSSIsIkRFRkFVTFRfR09PR0xFX1VSTCIsIkdvb2dsZSIsIkRFRkFVTFRfQU5USFJPUElDX1VSTCIsIkFudGhyb3BpYyIsIkRFRkFVTFRfQkFJRFVfVVJMIiwiQmFpZHUiLCJERUZBVUxUX0JZVEVEQU5DRV9VUkwiLCJCeXRlRGFuY2UiLCJERUZBVUxUX0FMSUJBQkFfVVJMIiwiQWxpYmFiYSIsIkRFRkFVTFRfVEVOQ0VOVF9VUkwiLCJUZW5jZW50IiwiREVGQVVMVF9NT09OU0hPVF9VUkwiLCJNb29uc2hvdCIsIkRFRkFVTFRfU1RBQklMSVRZX1VSTCIsIlN0YWJpbGl0eSIsIkRFRkFVTFRfSUZMWVRFS19VUkwiLCJJZmx5dGVrIiwiREVGQVVMVF9ERUVQU0VFS19VUkwiLCJEZWVwU2VlayIsIkRFRkFVTFRfWEFJX1VSTCIsIlhBSSIsIkRFRkFVTFRfQ0hBVEdMTV9VUkwiLCJDaGF0R0xNIiwiREVGQVVMVF9TSUxJQ09ORkxPV19VUkwiLCJTaWxpY29uRmxvdyIsIkRFRkFVTFRfQUNDRVNTX1NUQVRFIiwiYWNjZXNzQ29kZSIsInVzZUN1c3RvbUNvbmZpZyIsInByb3ZpZGVyIiwib3BlbmFpVXJsIiwib3BlbmFpQXBpS2V5IiwiYXp1cmVVcmwiLCJhenVyZUFwaUtleSIsImF6dXJlQXBpVmVyc2lvbiIsImdvb2dsZVVybCIsImdvb2dsZUFwaUtleSIsImdvb2dsZUFwaVZlcnNpb24iLCJnb29nbGVTYWZldHlTZXR0aW5ncyIsIkJMT0NLX09OTFlfSElHSCIsImFudGhyb3BpY1VybCIsImFudGhyb3BpY0FwaUtleSIsImFudGhyb3BpY0FwaVZlcnNpb24iLCJiYWlkdVVybCIsImJhaWR1QXBpS2V5IiwiYmFpZHVTZWNyZXRLZXkiLCJieXRlZGFuY2VVcmwiLCJieXRlZGFuY2VBcGlLZXkiLCJhbGliYWJhVXJsIiwiYWxpYmFiYUFwaUtleSIsIm1vb25zaG90VXJsIiwibW9vbnNob3RBcGlLZXkiLCJzdGFiaWxpdHlVcmwiLCJzdGFiaWxpdHlBcGlLZXkiLCJ0ZW5jZW50VXJsIiwidGVuY2VudFNlY3JldEtleSIsInRlbmNlbnRTZWNyZXRJZCIsImlmbHl0ZWtVcmwiLCJpZmx5dGVrQXBpS2V5IiwiaWZseXRla0FwaVNlY3JldCIsImRlZXBzZWVrVXJsIiwiZGVlcHNlZWtBcGlLZXkiLCJ4YWlVcmwiLCJ4YWlBcGlLZXkiLCJjaGF0Z2xtVXJsIiwiY2hhdGdsbUFwaUtleSIsInNpbGljb25mbG93VXJsIiwic2lsaWNvbmZsb3dBcGlLZXkiLCJuZWVkQ29kZSIsImhpZGVVc2VyQXBpS2V5IiwiaGlkZUJhbGFuY2VRdWVyeSIsImRpc2FibGVHUFQ0IiwiZGlzYWJsZUZhc3RMaW5rIiwiY3VzdG9tTW9kZWxzIiwiZGVmYXVsdE1vZGVsIiwidmlzaW9uTW9kZWxzIiwiZWRnZVRUU1ZvaWNlTmFtZSIsInVzZUFjY2Vzc1N0b3JlIiwic2V0IiwiZ2V0IiwiZW5hYmxlZEFjY2Vzc0NvbnRyb2wiLCJmZXRjaCIsImdldFZpc2lvbk1vZGVscyIsImVkZ2VWb2ljZU5hbWUiLCJpc1ZhbGlkT3BlbkFJIiwiaXNWYWxpZEF6dXJlIiwiaXNWYWxpZEdvb2dsZSIsImlzVmFsaWRBbnRocm9waWMiLCJpc1ZhbGlkQmFpZHUiLCJpc1ZhbGlkQnl0ZURhbmNlIiwiaXNWYWxpZEFsaWJhYmEiLCJpc1ZhbGlkVGVuY2VudCIsImlzVmFsaWRNb29uc2hvdCIsImlzVmFsaWRJZmx5dGVrIiwiaXNWYWxpZERlZXBTZWVrIiwiaXNWYWxpZFhBSSIsImlzVmFsaWRDaGF0R0xNIiwiaXNWYWxpZFNpbGljb25GbG93IiwiaXNBdXRob3JpemVkIiwibWV0aG9kIiwiYm9keSIsImhlYWRlcnMiLCJ0aGVuIiwicmVzIiwianNvbiIsIm1vZGVsIiwicHJvdmlkZXJOYW1lIiwibW9kZWxDb25maWciLCJjb25zb2xlIiwibG9nIiwiY2F0Y2giLCJlcnJvciIsImZpbmFsbHkiLCJuYW1lIiwiQWNjZXNzIiwidmVyc2lvbiIsIm1pZ3JhdGUiLCJwZXJzaXN0ZWRTdGF0ZSIsInN0YXRlIiwidG9rZW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/store/access.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/store/chat.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/store/chat.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BOT_HELLO: () => (/* binding */ BOT_HELLO),\n/* harmony export */ DEFAULT_TOPIC: () => (/* binding */ DEFAULT_TOPIC),\n/* harmony export */ createMessage: () => (/* binding */ createMessage),\n/* harmony export */ useChatStore: () => (/* binding */ useChatStore)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils */ \"(ssr)/./app/utils.ts\");\n/* harmony import */ var _app_utils_indexedDB_storage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/app/utils/indexedDB-storage */ \"(ssr)/./app/utils/indexedDB-storage.ts\");\n/* harmony import */ var nanoid__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! nanoid */ \"(ssr)/./node_modules/nanoid/index.js\");\n/* harmony import */ var _client_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../client/api */ \"(ssr)/./app/client/api.ts\");\n/* harmony import */ var _client_controller__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../client/controller */ \"(ssr)/./app/client/controller.ts\");\n/* harmony import */ var _components_ui_lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/ui-lib */ \"(ssr)/./app/components/ui-lib.tsx\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../locales */ \"(ssr)/./app/locales/index.ts\");\n/* harmony import */ var _utils_format__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/format */ \"(ssr)/./app/utils/format.ts\");\n/* harmony import */ var _utils_store__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/store */ \"(ssr)/./app/utils/store.ts\");\n/* harmony import */ var _utils_token__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/token */ \"(ssr)/./app/utils/token.ts\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _access__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./access */ \"(ssr)/./app/store/access.ts\");\n/* harmony import */ var _utils_model__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/model */ \"(ssr)/./app/utils/model.ts\");\n/* harmony import */ var _mask__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./mask */ \"(ssr)/./app/store/mask.ts\");\n/* harmony import */ var _mcp_actions__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../mcp/actions */ \"(ssr)/./app/mcp/actions.ts\");\n/* harmony import */ var _mcp_utils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../mcp/utils */ \"(ssr)/./app/mcp/utils.ts\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst localStorage = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.safeLocalStorage)();\nfunction createMessage(override) {\n return {\n id: (0,nanoid__WEBPACK_IMPORTED_MODULE_16__.nanoid)(),\n date: new Date().toLocaleString(),\n role: \"user\",\n content: \"\",\n ...override\n };\n}\nconst DEFAULT_TOPIC = _locales__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Store.DefaultTopic;\nconst BOT_HELLO = createMessage({\n role: \"assistant\",\n content: _locales__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Store.BotHello\n});\nfunction createEmptySession() {\n return {\n id: (0,nanoid__WEBPACK_IMPORTED_MODULE_16__.nanoid)(),\n topic: DEFAULT_TOPIC,\n memoryPrompt: \"\",\n messages: [],\n stat: {\n tokenCount: 0,\n wordCount: 0,\n charCount: 0\n },\n lastUpdate: Date.now(),\n lastSummarizeIndex: 0,\n mask: (0,_mask__WEBPACK_IMPORTED_MODULE_13__.createEmptyMask)()\n };\n}\nfunction getSummarizeModel(currentModel, providerName) {\n // if it is using gpt-* models, force to use 4o-mini to summarize\n if (currentModel.startsWith(\"gpt\") || currentModel.startsWith(\"chatgpt\")) {\n const configStore = _config__WEBPACK_IMPORTED_MODULE_10__.useAppConfig.getState();\n const accessStore = _access__WEBPACK_IMPORTED_MODULE_11__.useAccessStore.getState();\n const allModel = (0,_utils_model__WEBPACK_IMPORTED_MODULE_12__.collectModelsWithDefaultModel)(configStore.models, [\n configStore.customModels,\n accessStore.customModels\n ].join(\",\"), accessStore.defaultModel);\n const summarizeModel = allModel.find((m)=>m.name === _constant__WEBPACK_IMPORTED_MODULE_5__.SUMMARIZE_MODEL && m.available);\n if (summarizeModel) {\n return [\n summarizeModel.name,\n summarizeModel.provider?.providerName\n ];\n }\n }\n if (currentModel.startsWith(\"gemini\")) {\n return [\n _constant__WEBPACK_IMPORTED_MODULE_5__.GEMINI_SUMMARIZE_MODEL,\n _constant__WEBPACK_IMPORTED_MODULE_5__.ServiceProvider.Google\n ];\n } else if (currentModel.startsWith(\"deepseek-\")) {\n return [\n _constant__WEBPACK_IMPORTED_MODULE_5__.DEEPSEEK_SUMMARIZE_MODEL,\n _constant__WEBPACK_IMPORTED_MODULE_5__.ServiceProvider.DeepSeek\n ];\n }\n return [\n currentModel,\n providerName\n ];\n}\nfunction countMessages(msgs) {\n return msgs.reduce((pre, cur)=>pre + (0,_utils_token__WEBPACK_IMPORTED_MODULE_9__.estimateTokenLength)((0,_utils__WEBPACK_IMPORTED_MODULE_0__.getMessageTextContent)(cur)), 0);\n}\nfunction fillTemplateWith(input, modelConfig) {\n const cutoff = _constant__WEBPACK_IMPORTED_MODULE_5__.KnowledgeCutOffDate[modelConfig.model] ?? _constant__WEBPACK_IMPORTED_MODULE_5__.KnowledgeCutOffDate.default;\n // Find the model in the DEFAULT_MODELS array that matches the modelConfig.model\n const modelInfo = _constant__WEBPACK_IMPORTED_MODULE_5__.DEFAULT_MODELS.find((m)=>m.name === modelConfig.model);\n var serviceProvider = \"OpenAI\";\n if (modelInfo) {\n // TODO: auto detect the providerName from the modelConfig.model\n // Directly use the providerName from the modelInfo\n serviceProvider = modelInfo.provider.providerName;\n }\n const vars = {\n ServiceProvider: serviceProvider,\n cutoff,\n model: modelConfig.model,\n time: new Date().toString(),\n lang: (0,_locales__WEBPACK_IMPORTED_MODULE_6__.getLang)(),\n input: input\n };\n let output = modelConfig.template ?? _constant__WEBPACK_IMPORTED_MODULE_5__.DEFAULT_INPUT_TEMPLATE;\n // remove duplicate\n if (input.startsWith(output)) {\n output = \"\";\n }\n // must contains {{input}}\n const inputVar = \"{{input}}\";\n if (!output.includes(inputVar)) {\n output += \"\\n\" + inputVar;\n }\n Object.entries(vars).forEach(([name, value])=>{\n const regex = new RegExp(`{{${name}}}`, \"g\");\n output = output.replace(regex, value.toString()); // Ensure value is a string\n });\n return output;\n}\nasync function getMcpSystemPrompt() {\n const tools = await (0,_mcp_actions__WEBPACK_IMPORTED_MODULE_14__.getAllTools)();\n let toolsStr = \"\";\n tools.forEach((i)=>{\n // error client has no tools\n if (!i.tools) return;\n toolsStr += _constant__WEBPACK_IMPORTED_MODULE_5__.MCP_TOOLS_TEMPLATE.replace(\"{{ clientId }}\", i.clientId).replace(\"{{ tools }}\", i.tools.tools.map((p)=>JSON.stringify(p, null, 2)).join(\"\\n\"));\n });\n return _constant__WEBPACK_IMPORTED_MODULE_5__.MCP_SYSTEM_TEMPLATE.replace(\"{{ MCP_TOOLS }}\", toolsStr);\n}\nconst DEFAULT_CHAT_STATE = {\n sessions: [\n createEmptySession()\n ],\n currentSessionIndex: 0,\n lastInput: \"\"\n};\nconst useChatStore = (0,_utils_store__WEBPACK_IMPORTED_MODULE_8__.createPersistStore)(DEFAULT_CHAT_STATE, (set, _get)=>{\n function get() {\n return {\n ..._get(),\n ...methods\n };\n }\n const methods = {\n forkSession () {\n // 获取当前会话\n const currentSession = get().currentSession();\n if (!currentSession) return;\n const newSession = createEmptySession();\n newSession.topic = currentSession.topic;\n // 深拷贝消息\n newSession.messages = currentSession.messages.map((msg)=>({\n ...msg,\n id: (0,nanoid__WEBPACK_IMPORTED_MODULE_16__.nanoid)()\n }));\n newSession.mask = {\n ...currentSession.mask,\n modelConfig: {\n ...currentSession.mask.modelConfig\n }\n };\n set((state)=>({\n currentSessionIndex: 0,\n sessions: [\n newSession,\n ...state.sessions\n ]\n }));\n },\n clearSessions () {\n set(()=>({\n sessions: [\n createEmptySession()\n ],\n currentSessionIndex: 0\n }));\n },\n selectSession (index) {\n set({\n currentSessionIndex: index\n });\n },\n moveSession (from, to) {\n set((state)=>{\n const { sessions, currentSessionIndex: oldIndex } = state;\n // move the session\n const newSessions = [\n ...sessions\n ];\n const session = newSessions[from];\n newSessions.splice(from, 1);\n newSessions.splice(to, 0, session);\n // modify current session id\n let newIndex = oldIndex === from ? to : oldIndex;\n if (oldIndex > from && oldIndex <= to) {\n newIndex -= 1;\n } else if (oldIndex < from && oldIndex >= to) {\n newIndex += 1;\n }\n return {\n currentSessionIndex: newIndex,\n sessions: newSessions\n };\n });\n },\n newSession (mask) {\n const session = createEmptySession();\n if (mask) {\n const config = _config__WEBPACK_IMPORTED_MODULE_10__.useAppConfig.getState();\n const globalModelConfig = config.modelConfig;\n session.mask = {\n ...mask,\n modelConfig: {\n ...globalModelConfig,\n ...mask.modelConfig\n }\n };\n session.topic = mask.name;\n }\n set((state)=>({\n currentSessionIndex: 0,\n sessions: [\n session\n ].concat(state.sessions)\n }));\n },\n nextSession (delta) {\n const n = get().sessions.length;\n const limit = (x)=>(x + n) % n;\n const i = get().currentSessionIndex;\n get().selectSession(limit(i + delta));\n },\n deleteSession (index) {\n const deletingLastSession = get().sessions.length === 1;\n const deletedSession = get().sessions.at(index);\n if (!deletedSession) return;\n const sessions = get().sessions.slice();\n sessions.splice(index, 1);\n const currentIndex = get().currentSessionIndex;\n let nextIndex = Math.min(currentIndex - Number(index < currentIndex), sessions.length - 1);\n if (deletingLastSession) {\n nextIndex = 0;\n sessions.push(createEmptySession());\n }\n // for undo delete action\n const restoreState = {\n currentSessionIndex: get().currentSessionIndex,\n sessions: get().sessions.slice()\n };\n set(()=>({\n currentSessionIndex: nextIndex,\n sessions\n }));\n (0,_components_ui_lib__WEBPACK_IMPORTED_MODULE_4__.showToast)(_locales__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Home.DeleteToast, {\n text: _locales__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Home.Revert,\n onClick () {\n set(()=>restoreState);\n }\n }, 5000);\n },\n currentSession () {\n let index = get().currentSessionIndex;\n const sessions = get().sessions;\n if (index < 0 || index >= sessions.length) {\n index = Math.min(sessions.length - 1, Math.max(0, index));\n set(()=>({\n currentSessionIndex: index\n }));\n }\n const session = sessions[index];\n return session;\n },\n onNewMessage (message, targetSession) {\n get().updateTargetSession(targetSession, (session)=>{\n session.messages = session.messages.concat();\n session.lastUpdate = Date.now();\n });\n get().updateStat(message, targetSession);\n get().checkMcpJson(message);\n get().summarizeSession(false, targetSession);\n },\n async onUserInput (content, attachImages, isMcpResponse) {\n const session = get().currentSession();\n const modelConfig = session.mask.modelConfig;\n // MCP Response no need to fill template\n let mContent = isMcpResponse ? content : fillTemplateWith(content, modelConfig);\n if (!isMcpResponse && attachImages && attachImages.length > 0) {\n mContent = [\n ...content ? [\n {\n type: \"text\",\n text: content\n }\n ] : [],\n ...attachImages.map((url)=>({\n type: \"image_url\",\n image_url: {\n url\n }\n }))\n ];\n }\n let userMessage = createMessage({\n role: \"user\",\n content: mContent,\n isMcpResponse\n });\n const botMessage = createMessage({\n role: \"assistant\",\n streaming: true,\n model: modelConfig.model\n });\n // get recent messages\n const recentMessages = await get().getMessagesWithMemory();\n const sendMessages = recentMessages.concat(userMessage);\n const messageIndex = session.messages.length + 1;\n // save user's and bot's message\n get().updateTargetSession(session, (session)=>{\n const savedUserMessage = {\n ...userMessage,\n content: mContent\n };\n session.messages = session.messages.concat([\n savedUserMessage,\n botMessage\n ]);\n });\n const api = (0,_client_api__WEBPACK_IMPORTED_MODULE_2__.getClientApi)(modelConfig.providerName);\n // make request\n api.llm.chat({\n messages: sendMessages,\n config: {\n ...modelConfig,\n stream: true\n },\n onUpdate (message) {\n botMessage.streaming = true;\n if (message) {\n botMessage.content = message;\n }\n get().updateTargetSession(session, (session)=>{\n session.messages = session.messages.concat();\n });\n },\n async onFinish (message) {\n botMessage.streaming = false;\n if (message) {\n botMessage.content = message;\n botMessage.date = new Date().toLocaleString();\n get().onNewMessage(botMessage, session);\n }\n _client_controller__WEBPACK_IMPORTED_MODULE_3__.ChatControllerPool.remove(session.id, botMessage.id);\n },\n onBeforeTool (tool) {\n (botMessage.tools = botMessage?.tools || []).push(tool);\n get().updateTargetSession(session, (session)=>{\n session.messages = session.messages.concat();\n });\n },\n onAfterTool (tool) {\n botMessage?.tools?.forEach((t, i, tools)=>{\n if (tool.id == t.id) {\n tools[i] = {\n ...tool\n };\n }\n });\n get().updateTargetSession(session, (session)=>{\n session.messages = session.messages.concat();\n });\n },\n onError (error) {\n const isAborted = error.message?.includes?.(\"aborted\");\n botMessage.content += \"\\n\\n\" + (0,_utils_format__WEBPACK_IMPORTED_MODULE_7__.prettyObject)({\n error: true,\n message: error.message\n });\n botMessage.streaming = false;\n userMessage.isError = !isAborted;\n botMessage.isError = !isAborted;\n get().updateTargetSession(session, (session)=>{\n session.messages = session.messages.concat();\n });\n _client_controller__WEBPACK_IMPORTED_MODULE_3__.ChatControllerPool.remove(session.id, botMessage.id ?? messageIndex);\n console.error(\"[Chat] failed \", error);\n },\n onController (controller) {\n // collect controller for stop/retry\n _client_controller__WEBPACK_IMPORTED_MODULE_3__.ChatControllerPool.addController(session.id, botMessage.id ?? messageIndex, controller);\n }\n });\n },\n getMemoryPrompt () {\n const session = get().currentSession();\n if (session.memoryPrompt.length) {\n return {\n role: \"system\",\n content: _locales__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Store.Prompt.History(session.memoryPrompt),\n date: \"\"\n };\n }\n },\n async getMessagesWithMemory () {\n const session = get().currentSession();\n const modelConfig = session.mask.modelConfig;\n const clearContextIndex = session.clearContextIndex ?? 0;\n const messages = session.messages.slice();\n const totalMessageCount = session.messages.length;\n // in-context prompts\n const contextPrompts = session.mask.context.slice();\n // system prompts, to get close to OpenAI Web ChatGPT\n const shouldInjectSystemPrompts = modelConfig.enableInjectSystemPrompts && (session.mask.modelConfig.model.startsWith(\"gpt-\") || session.mask.modelConfig.model.startsWith(\"chatgpt-\"));\n const mcpEnabled = await (0,_mcp_actions__WEBPACK_IMPORTED_MODULE_14__.isMcpEnabled)();\n const mcpSystemPrompt = mcpEnabled ? await getMcpSystemPrompt() : \"\";\n var systemPrompts = [];\n if (shouldInjectSystemPrompts) {\n systemPrompts = [\n createMessage({\n role: \"system\",\n content: fillTemplateWith(\"\", {\n ...modelConfig,\n template: _constant__WEBPACK_IMPORTED_MODULE_5__.DEFAULT_SYSTEM_TEMPLATE\n }) + mcpSystemPrompt\n })\n ];\n } else if (mcpEnabled) {\n systemPrompts = [\n createMessage({\n role: \"system\",\n content: mcpSystemPrompt\n })\n ];\n }\n if (shouldInjectSystemPrompts || mcpEnabled) {\n console.log(\"[Global System Prompt] \", systemPrompts.at(0)?.content ?? \"empty\");\n }\n const memoryPrompt = get().getMemoryPrompt();\n // long term memory\n const shouldSendLongTermMemory = modelConfig.sendMemory && session.memoryPrompt && session.memoryPrompt.length > 0 && session.lastSummarizeIndex > clearContextIndex;\n const longTermMemoryPrompts = shouldSendLongTermMemory && memoryPrompt ? [\n memoryPrompt\n ] : [];\n const longTermMemoryStartIndex = session.lastSummarizeIndex;\n // short term memory\n const shortTermMemoryStartIndex = Math.max(0, totalMessageCount - modelConfig.historyMessageCount);\n // lets concat send messages, including 4 parts:\n // 0. system prompt: to get close to OpenAI Web ChatGPT\n // 1. long term memory: summarized memory messages\n // 2. pre-defined in-context prompts\n // 3. short term memory: latest n messages\n // 4. newest input message\n const memoryStartIndex = shouldSendLongTermMemory ? Math.min(longTermMemoryStartIndex, shortTermMemoryStartIndex) : shortTermMemoryStartIndex;\n // and if user has cleared history messages, we should exclude the memory too.\n const contextStartIndex = Math.max(clearContextIndex, memoryStartIndex);\n const maxTokenThreshold = modelConfig.max_tokens;\n // get recent messages as much as possible\n const reversedRecentMessages = [];\n for(let i = totalMessageCount - 1, tokenCount = 0; i >= contextStartIndex && tokenCount < maxTokenThreshold; i -= 1){\n const msg = messages[i];\n if (!msg || msg.isError) continue;\n tokenCount += (0,_utils_token__WEBPACK_IMPORTED_MODULE_9__.estimateTokenLength)((0,_utils__WEBPACK_IMPORTED_MODULE_0__.getMessageTextContent)(msg));\n reversedRecentMessages.push(msg);\n }\n // concat all messages\n const recentMessages = [\n ...systemPrompts,\n ...longTermMemoryPrompts,\n ...contextPrompts,\n ...reversedRecentMessages.reverse()\n ];\n return recentMessages;\n },\n updateMessage (sessionIndex, messageIndex, updater) {\n const sessions = get().sessions;\n const session = sessions.at(sessionIndex);\n const messages = session?.messages;\n updater(messages?.at(messageIndex));\n set(()=>({\n sessions\n }));\n },\n resetSession (session) {\n get().updateTargetSession(session, (session)=>{\n session.messages = [];\n session.memoryPrompt = \"\";\n });\n },\n summarizeSession (refreshTitle = false, targetSession) {\n const config = _config__WEBPACK_IMPORTED_MODULE_10__.useAppConfig.getState();\n const session = targetSession;\n const modelConfig = session.mask.modelConfig;\n // skip summarize when using dalle3?\n if ((0,_utils__WEBPACK_IMPORTED_MODULE_0__.isDalle3)(modelConfig.model)) {\n return;\n }\n // if not config compressModel, then using getSummarizeModel\n const [model, providerName] = modelConfig.compressModel ? [\n modelConfig.compressModel,\n modelConfig.compressProviderName\n ] : getSummarizeModel(session.mask.modelConfig.model, session.mask.modelConfig.providerName);\n const api = (0,_client_api__WEBPACK_IMPORTED_MODULE_2__.getClientApi)(providerName);\n // remove error messages if any\n const messages = session.messages;\n // should summarize topic after chating more than 50 words\n const SUMMARIZE_MIN_LEN = 50;\n if (config.enableAutoGenerateTitle && session.topic === DEFAULT_TOPIC && countMessages(messages) >= SUMMARIZE_MIN_LEN || refreshTitle) {\n const startIndex = Math.max(0, messages.length - modelConfig.historyMessageCount);\n const topicMessages = messages.slice(startIndex < messages.length ? startIndex : messages.length - 1, messages.length).concat(createMessage({\n role: \"user\",\n content: _locales__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Store.Prompt.Topic\n }));\n api.llm.chat({\n messages: topicMessages,\n config: {\n model,\n stream: false,\n providerName\n },\n onFinish (message, responseRes) {\n if (responseRes?.status === 200) {\n get().updateTargetSession(session, (session)=>session.topic = message.length > 0 ? (0,_utils__WEBPACK_IMPORTED_MODULE_0__.trimTopic)(message) : DEFAULT_TOPIC);\n }\n }\n });\n }\n const summarizeIndex = Math.max(session.lastSummarizeIndex, session.clearContextIndex ?? 0);\n let toBeSummarizedMsgs = messages.filter((msg)=>!msg.isError).slice(summarizeIndex);\n const historyMsgLength = countMessages(toBeSummarizedMsgs);\n if (historyMsgLength > (modelConfig?.max_tokens || 4000)) {\n const n = toBeSummarizedMsgs.length;\n toBeSummarizedMsgs = toBeSummarizedMsgs.slice(Math.max(0, n - modelConfig.historyMessageCount));\n }\n const memoryPrompt = get().getMemoryPrompt();\n if (memoryPrompt) {\n // add memory prompt\n toBeSummarizedMsgs.unshift(memoryPrompt);\n }\n const lastSummarizeIndex = session.messages.length;\n console.log(\"[Chat History] \", toBeSummarizedMsgs, historyMsgLength, modelConfig.compressMessageLengthThreshold);\n if (historyMsgLength > modelConfig.compressMessageLengthThreshold && modelConfig.sendMemory) {\n /** Destruct max_tokens while summarizing\r\n * this param is just shit\r\n **/ const { max_tokens, ...modelcfg } = modelConfig;\n api.llm.chat({\n messages: toBeSummarizedMsgs.concat(createMessage({\n role: \"system\",\n content: _locales__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Store.Prompt.Summarize,\n date: \"\"\n })),\n config: {\n ...modelcfg,\n stream: true,\n model,\n providerName\n },\n onUpdate (message) {\n session.memoryPrompt = message;\n },\n onFinish (message, responseRes) {\n if (responseRes?.status === 200) {\n console.log(\"[Memory] \", message);\n get().updateTargetSession(session, (session)=>{\n session.lastSummarizeIndex = lastSummarizeIndex;\n session.memoryPrompt = message; // Update the memory prompt for stored it in local storage\n });\n }\n },\n onError (err) {\n console.error(\"[Summarize] \", err);\n }\n });\n }\n },\n updateStat (message, session) {\n get().updateTargetSession(session, (session)=>{\n session.stat.charCount += message.content.length;\n // TODO: should update chat count and word count\n });\n },\n updateTargetSession (targetSession, updater) {\n const sessions = get().sessions;\n const index = sessions.findIndex((s)=>s.id === targetSession.id);\n if (index < 0) return;\n updater(sessions[index]);\n set(()=>({\n sessions\n }));\n },\n async clearAllData () {\n await _app_utils_indexedDB_storage__WEBPACK_IMPORTED_MODULE_1__.indexedDBStorage.clear();\n localStorage.clear();\n location.reload();\n },\n setLastInput (lastInput) {\n set({\n lastInput\n });\n },\n /** check if the message contains MCP JSON and execute the MCP action */ checkMcpJson (message) {\n const mcpEnabled = (0,_mcp_actions__WEBPACK_IMPORTED_MODULE_14__.isMcpEnabled)();\n if (!mcpEnabled) return;\n const content = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getMessageTextContent)(message);\n if ((0,_mcp_utils__WEBPACK_IMPORTED_MODULE_15__.isMcpJson)(content)) {\n try {\n const mcpRequest = (0,_mcp_utils__WEBPACK_IMPORTED_MODULE_15__.extractMcpJson)(content);\n if (mcpRequest) {\n console.debug(\"[MCP Request]\", mcpRequest);\n (0,_mcp_actions__WEBPACK_IMPORTED_MODULE_14__.executeMcpAction)(mcpRequest.clientId, mcpRequest.mcp).then((result)=>{\n console.log(\"[MCP Response]\", result);\n const mcpResponse = typeof result === \"object\" ? JSON.stringify(result) : String(result);\n get().onUserInput(`\\`\\`\\`json:mcp-response:${mcpRequest.clientId}\\n${mcpResponse}\\n\\`\\`\\``, [], true);\n }).catch((error)=>(0,_components_ui_lib__WEBPACK_IMPORTED_MODULE_4__.showToast)(\"MCP execution failed\", error));\n }\n } catch (error) {\n console.error(\"[Check MCP JSON]\", error);\n }\n }\n }\n };\n return methods;\n}, {\n name: _constant__WEBPACK_IMPORTED_MODULE_5__.StoreKey.Chat,\n version: 3.3,\n migrate (persistedState, version) {\n const state = persistedState;\n const newState = JSON.parse(JSON.stringify(state));\n if (version < 2) {\n newState.sessions = [];\n const oldSessions = state.sessions;\n for (const oldSession of oldSessions){\n const newSession = createEmptySession();\n newSession.topic = oldSession.topic;\n newSession.messages = [\n ...oldSession.messages\n ];\n newSession.mask.modelConfig.sendMemory = true;\n newSession.mask.modelConfig.historyMessageCount = 4;\n newSession.mask.modelConfig.compressMessageLengthThreshold = 1000;\n newState.sessions.push(newSession);\n }\n }\n if (version < 3) {\n // migrate id to nanoid\n newState.sessions.forEach((s)=>{\n s.id = (0,nanoid__WEBPACK_IMPORTED_MODULE_16__.nanoid)();\n s.messages.forEach((m)=>m.id = (0,nanoid__WEBPACK_IMPORTED_MODULE_16__.nanoid)());\n });\n }\n // Enable `enableInjectSystemPrompts` attribute for old sessions.\n // Resolve issue of old sessions not automatically enabling.\n if (version < 3.1) {\n newState.sessions.forEach((s)=>{\n if (// Exclude those already set by user\n !s.mask.modelConfig.hasOwnProperty(\"enableInjectSystemPrompts\")) {\n // Because users may have changed this configuration,\n // the user's current configuration is used instead of the default\n const config = _config__WEBPACK_IMPORTED_MODULE_10__.useAppConfig.getState();\n s.mask.modelConfig.enableInjectSystemPrompts = config.modelConfig.enableInjectSystemPrompts;\n }\n });\n }\n // add default summarize model for every session\n if (version < 3.2) {\n newState.sessions.forEach((s)=>{\n const config = _config__WEBPACK_IMPORTED_MODULE_10__.useAppConfig.getState();\n s.mask.modelConfig.compressModel = config.modelConfig.compressModel;\n s.mask.modelConfig.compressProviderName = config.modelConfig.compressProviderName;\n });\n }\n // revert default summarize model for every session\n if (version < 3.3) {\n newState.sessions.forEach((s)=>{\n const config = _config__WEBPACK_IMPORTED_MODULE_10__.useAppConfig.getState();\n s.mask.modelConfig.compressModel = \"\";\n s.mask.modelConfig.compressProviderName = \"\";\n });\n }\n return newState;\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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bnQiOlsiaW1wb3J0IHtcclxuICBnZXRNZXNzYWdlVGV4dENvbnRlbnQsXHJcbiAgaXNEYWxsZTMsXHJcbiAgc2FmZUxvY2FsU3RvcmFnZSxcclxuICB0cmltVG9waWMsXHJcbn0gZnJvbSBcIi4uL3V0aWxzXCI7XHJcblxyXG5pbXBvcnQgeyBpbmRleGVkREJTdG9yYWdlIH0gZnJvbSBcIkAvYXBwL3V0aWxzL2luZGV4ZWREQi1zdG9yYWdlXCI7XHJcbmltcG9ydCB7IG5hbm9pZCB9IGZyb20gXCJuYW5vaWRcIjtcclxuaW1wb3J0IHR5cGUge1xyXG4gIENsaWVudEFwaSxcclxuICBNdWx0aW1vZGFsQ29udGVudCxcclxuICBSZXF1ZXN0TWVzc2FnZSxcclxufSBmcm9tIFwiLi4vY2xpZW50L2FwaVwiO1xyXG5pbXBvcnQgeyBnZXRDbGllbnRBcGkgfSBmcm9tIFwiLi4vY2xpZW50L2FwaVwiO1xyXG5pbXBvcnQgeyBDaGF0Q29udHJvbGxlclBvb2wgfSBmcm9tIFwiLi4vY2xpZW50L2NvbnRyb2xsZXJcIjtcclxuaW1wb3J0IHsgc2hvd1RvYXN0IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvdWktbGliXCI7XHJcbmltcG9ydCB7XHJcbiAgREVGQVVMVF9JTlBVVF9URU1QTEFURSxcclxuICBERUZBVUxUX01PREVMUyxcclxuICBERUZBVUxUX1NZU1RFTV9URU1QTEFURSxcclxuICBHRU1JTklfU1VNTUFSSVpFX01PREVMLFxyXG4gIERFRVBTRUVLX1NVTU1BUklaRV9NT0RFTCxcclxuICBLbm93bGVkZ2VDdXRPZmZEYXRlLFxyXG4gIE1DUF9TWVNURU1fVEVNUExBVEUsXHJcbiAgTUNQX1RPT0xTX1RFTVBMQVRFLFxyXG4gIFNlcnZpY2VQcm92aWRlcixcclxuICBTdG9yZUtleSxcclxuICBTVU1NQVJJWkVfTU9ERUwsXHJcbn0gZnJvbSBcIi4uL2NvbnN0YW50XCI7XHJcbmltcG9ydCBMb2NhbGUsIHsgZ2V0TGFuZyB9IGZyb20gXCIuLi9sb2NhbGVzXCI7XHJcbmltcG9ydCB7IHByZXR0eU9iamVjdCB9IGZyb20gXCIuLi91dGlscy9mb3JtYXRcIjtcclxuaW1wb3J0IHsgY3JlYXRlUGVyc2lzdFN0b3JlIH0gZnJvbSBcIi4uL3V0aWxzL3N0b3JlXCI7XHJcbmltcG9ydCB7IGVzdGltYXRlVG9rZW5MZW5ndGggfSBmcm9tIFwiLi4vdXRpbHMvdG9rZW5cIjtcclxuaW1wb3J0IHsgTW9kZWxDb25maWcsIE1vZGVsVHlwZSwgdXNlQXBwQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlnXCI7XHJcbmltcG9ydCB7IHVzZUFjY2Vzc1N0b3JlIH0gZnJvbSBcIi4vYWNjZXNzXCI7XHJcbmltcG9ydCB7IGNvbGxlY3RNb2RlbHNXaXRoRGVmYXVsdE1vZGVsIH0gZnJvbSBcIi4uL3V0aWxzL21vZGVsXCI7XHJcbmltcG9ydCB7IGNyZWF0ZUVtcHR5TWFzaywgTWFzayB9IGZyb20gXCIuL21hc2tcIjtcclxuaW1wb3J0IHsgZXhlY3V0ZU1jcEFjdGlvbiwgZ2V0QWxsVG9vbHMsIGlzTWNwRW5hYmxlZCB9IGZyb20gXCIuLi9tY3AvYWN0aW9uc1wiO1xyXG5pbXBvcnQgeyBleHRyYWN0TWNwSnNvbiwgaXNNY3BKc29uIH0gZnJvbSBcIi4uL21jcC91dGlsc1wiO1xyXG5cclxuY29uc3QgbG9jYWxTdG9yYWdlID0gc2FmZUxvY2FsU3RvcmFnZSgpO1xyXG5cclxuZXhwb3J0IHR5cGUgQ2hhdE1lc3NhZ2VUb29sID0ge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgaW5kZXg/OiBudW1iZXI7XHJcbiAgdHlwZT86IHN0cmluZztcclxuICBmdW5jdGlvbj86IHtcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIGFyZ3VtZW50cz86IHN0cmluZztcclxuICB9O1xyXG4gIGNvbnRlbnQ/OiBzdHJpbmc7XHJcbiAgaXNFcnJvcj86IGJvb2xlYW47XHJcbiAgZXJyb3JNc2c/OiBzdHJpbmc7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBDaGF0TWVzc2FnZSA9IFJlcXVlc3RNZXNzYWdlICYge1xyXG4gIGRhdGU6IHN0cmluZztcclxuICBzdHJlYW1pbmc/OiBib29sZWFuO1xyXG4gIGlzRXJyb3I/OiBib29sZWFuO1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbW9kZWw/OiBNb2RlbFR5cGU7XHJcbiAgdG9vbHM/OiBDaGF0TWVzc2FnZVRvb2xbXTtcclxuICBhdWRpb191cmw/OiBzdHJpbmc7XHJcbiAgaXNNY3BSZXNwb25zZT86IGJvb2xlYW47XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWVzc2FnZShvdmVycmlkZTogUGFydGlhbDxDaGF0TWVzc2FnZT4pOiBDaGF0TWVzc2FnZSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIGlkOiBuYW5vaWQoKSxcclxuICAgIGRhdGU6IG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSxcclxuICAgIHJvbGU6IFwidXNlclwiLFxyXG4gICAgY29udGVudDogXCJcIixcclxuICAgIC4uLm92ZXJyaWRlLFxyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdFN0YXQge1xyXG4gIHRva2VuQ291bnQ6IG51bWJlcjtcclxuICB3b3JkQ291bnQ6IG51bWJlcjtcclxuICBjaGFyQ291bnQ6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDaGF0U2Vzc2lvbiB7XHJcbiAgaWQ6IHN0cmluZztcclxuICB0b3BpYzogc3RyaW5nO1xyXG5cclxuICBtZW1vcnlQcm9tcHQ6IHN0cmluZztcclxuICBtZXNzYWdlczogQ2hhdE1lc3NhZ2VbXTtcclxuICBzdGF0OiBDaGF0U3RhdDtcclxuICBsYXN0VXBkYXRlOiBudW1iZXI7XHJcbiAgbGFzdFN1bW1hcml6ZUluZGV4OiBudW1iZXI7XHJcbiAgY2xlYXJDb250ZXh0SW5kZXg/OiBudW1iZXI7XHJcblxyXG4gIG1hc2s6IE1hc2s7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1RPUElDID0gTG9jYWxlLlN0b3JlLkRlZmF1bHRUb3BpYztcclxuZXhwb3J0IGNvbnN0IEJPVF9IRUxMTzogQ2hhdE1lc3NhZ2UgPSBjcmVhdGVNZXNzYWdlKHtcclxuICByb2xlOiBcImFzc2lzdGFudFwiLFxyXG4gIGNvbnRlbnQ6IExvY2FsZS5TdG9yZS5Cb3RIZWxsbyxcclxufSk7XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVFbXB0eVNlc3Npb24oKTogQ2hhdFNlc3Npb24ge1xyXG4gIHJldHVybiB7XHJcbiAgICBpZDogbmFub2lkKCksXHJcbiAgICB0b3BpYzogREVGQVVMVF9UT1BJQyxcclxuICAgIG1lbW9yeVByb21wdDogXCJcIixcclxuICAgIG1lc3NhZ2VzOiBbXSxcclxuICAgIHN0YXQ6IHtcclxuICAgICAgdG9rZW5Db3VudDogMCxcclxuICAgICAgd29yZENvdW50OiAwLFxyXG4gICAgICBjaGFyQ291bnQ6IDAsXHJcbiAgICB9LFxyXG4gICAgbGFzdFVwZGF0ZTogRGF0ZS5ub3coKSxcclxuICAgIGxhc3RTdW1tYXJpemVJbmRleDogMCxcclxuXHJcbiAgICBtYXNrOiBjcmVhdGVFbXB0eU1hc2soKSxcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRTdW1tYXJpemVNb2RlbChcclxuICBjdXJyZW50TW9kZWw6IHN0cmluZyxcclxuICBwcm92aWRlck5hbWU6IHN0cmluZyxcclxuKTogc3RyaW5nW10ge1xyXG4gIC8vIGlmIGl0IGlzIHVzaW5nIGdwdC0qIG1vZGVscywgZm9yY2UgdG8gdXNlIDRvLW1pbmkgdG8gc3VtbWFyaXplXHJcbiAgaWYgKGN1cnJlbnRNb2RlbC5zdGFydHNXaXRoKFwiZ3B0XCIpIHx8IGN1cnJlbnRNb2RlbC5zdGFydHNXaXRoKFwiY2hhdGdwdFwiKSkge1xyXG4gICAgY29uc3QgY29uZmlnU3RvcmUgPSB1c2VBcHBDb25maWcuZ2V0U3RhdGUoKTtcclxuICAgIGNvbnN0IGFjY2Vzc1N0b3JlID0gdXNlQWNjZXNzU3RvcmUuZ2V0U3RhdGUoKTtcclxuICAgIGNvbnN0IGFsbE1vZGVsID0gY29sbGVjdE1vZGVsc1dpdGhEZWZhdWx0TW9kZWwoXHJcbiAgICAgIGNvbmZpZ1N0b3JlLm1vZGVscyxcclxuICAgICAgW2NvbmZpZ1N0b3JlLmN1c3RvbU1vZGVscywgYWNjZXNzU3RvcmUuY3VzdG9tTW9kZWxzXS5qb2luKFwiLFwiKSxcclxuICAgICAgYWNjZXNzU3RvcmUuZGVmYXVsdE1vZGVsLFxyXG4gICAgKTtcclxuICAgIGNvbnN0IHN1bW1hcml6ZU1vZGVsID0gYWxsTW9kZWwuZmluZChcclxuICAgICAgKG0pID0+IG0ubmFtZSA9PT0gU1VNTUFSSVpFX01PREVMICYmIG0uYXZhaWxhYmxlLFxyXG4gICAgKTtcclxuICAgIGlmIChzdW1tYXJpemVNb2RlbCkge1xyXG4gICAgICByZXR1cm4gW1xyXG4gICAgICAgIHN1bW1hcml6ZU1vZGVsLm5hbWUsXHJcbiAgICAgICAgc3VtbWFyaXplTW9kZWwucHJvdmlkZXI/LnByb3ZpZGVyTmFtZSBhcyBzdHJpbmcsXHJcbiAgICAgIF07XHJcbiAgICB9XHJcbiAgfVxyXG4gIGlmIChjdXJyZW50TW9kZWwuc3RhcnRzV2l0aChcImdlbWluaVwiKSkge1xyXG4gICAgcmV0dXJuIFtHRU1JTklfU1VNTUFSSVpFX01PREVMLCBTZXJ2aWNlUHJvdmlkZXIuR29vZ2xlXTtcclxuICB9IGVsc2UgaWYgKGN1cnJlbnRNb2RlbC5zdGFydHNXaXRoKFwiZGVlcHNlZWstXCIpKSB7XHJcbiAgICByZXR1cm4gW0RFRVBTRUVLX1NVTU1BUklaRV9NT0RFTCwgU2VydmljZVByb3ZpZGVyLkRlZXBTZWVrXTtcclxuICB9XHJcblxyXG4gIHJldHVybiBbY3VycmVudE1vZGVsLCBwcm92aWRlck5hbWVdO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjb3VudE1lc3NhZ2VzKG1zZ3M6IENoYXRNZXNzYWdlW10pIHtcclxuICByZXR1cm4gbXNncy5yZWR1Y2UoXHJcbiAgICAocHJlLCBjdXIpID0+IHByZSArIGVzdGltYXRlVG9rZW5MZW5ndGgoZ2V0TWVzc2FnZVRleHRDb250ZW50KGN1cikpLFxyXG4gICAgMCxcclxuICApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaWxsVGVtcGxhdGVXaXRoKGlucHV0OiBzdHJpbmcsIG1vZGVsQ29uZmlnOiBNb2RlbENvbmZpZykge1xyXG4gIGNvbnN0IGN1dG9mZiA9XHJcbiAgICBLbm93bGVkZ2VDdXRPZmZEYXRlW21vZGVsQ29uZmlnLm1vZGVsXSA/PyBLbm93bGVkZ2VDdXRPZmZEYXRlLmRlZmF1bHQ7XHJcbiAgLy8gRmluZCB0aGUgbW9kZWwgaW4gdGhlIERFRkFVTFRfTU9ERUxTIGFycmF5IHRoYXQgbWF0Y2hlcyB0aGUgbW9kZWxDb25maWcubW9kZWxcclxuICBjb25zdCBtb2RlbEluZm8gPSBERUZBVUxUX01PREVMUy5maW5kKChtKSA9PiBtLm5hbWUgPT09IG1vZGVsQ29uZmlnLm1vZGVsKTtcclxuXHJcbiAgdmFyIHNlcnZpY2VQcm92aWRlciA9IFwiT3BlbkFJXCI7XHJcbiAgaWYgKG1vZGVsSW5mbykge1xyXG4gICAgLy8gVE9ETzogYXV0byBkZXRlY3QgdGhlIHByb3ZpZGVyTmFtZSBmcm9tIHRoZSBtb2RlbENvbmZpZy5tb2RlbFxyXG5cclxuICAgIC8vIERpcmVjdGx5IHVzZSB0aGUgcHJvdmlkZXJOYW1lIGZyb20gdGhlIG1vZGVsSW5mb1xyXG4gICAgc2VydmljZVByb3ZpZGVyID0gbW9kZWxJbmZvLnByb3ZpZGVyLnByb3ZpZGVyTmFtZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHZhcnMgPSB7XHJcbiAgICBTZXJ2aWNlUHJvdmlkZXI6IHNlcnZpY2VQcm92aWRlcixcclxuICAgIGN1dG9mZixcclxuICAgIG1vZGVsOiBtb2RlbENvbmZpZy5tb2RlbCxcclxuICAgIHRpbWU6IG5ldyBEYXRlKCkudG9TdHJpbmcoKSxcclxuICAgIGxhbmc6IGdldExhbmcoKSxcclxuICAgIGlucHV0OiBpbnB1dCxcclxuICB9O1xyXG5cclxuICBsZXQgb3V0cHV0ID0gbW9kZWxDb25maWcudGVtcGxhdGUgPz8gREVGQVVMVF9JTlBVVF9URU1QTEFURTtcclxuXHJcbiAgLy8gcmVtb3ZlIGR1cGxpY2F0ZVxyXG4gIGlmIChpbnB1dC5zdGFydHNXaXRoKG91dHB1dCkpIHtcclxuICAgIG91dHB1dCA9IFwiXCI7XHJcbiAgfVxyXG5cclxuICAvLyBtdXN0IGNvbnRhaW5zIHt7aW5wdXR9fVxyXG4gIGNvbnN0IGlucHV0VmFyID0gXCJ7e2lucHV0fX1cIjtcclxuICBpZiAoIW91dHB1dC5pbmNsdWRlcyhpbnB1dFZhcikpIHtcclxuICAgIG91dHB1dCArPSBcIlxcblwiICsgaW5wdXRWYXI7XHJcbiAgfVxyXG5cclxuICBPYmplY3QuZW50cmllcyh2YXJzKS5mb3JFYWNoKChbbmFtZSwgdmFsdWVdKSA9PiB7XHJcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYHt7JHtuYW1lfX19YCwgXCJnXCIpO1xyXG4gICAgb3V0cHV0ID0gb3V0cHV0LnJlcGxhY2UocmVnZXgsIHZhbHVlLnRvU3RyaW5nKCkpOyAvLyBFbnN1cmUgdmFsdWUgaXMgYSBzdHJpbmdcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIG91dHB1dDtcclxufVxyXG5cclxuYXN5bmMgZnVuY3Rpb24gZ2V0TWNwU3lzdGVtUHJvbXB0KCk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgY29uc3QgdG9vbHMgPSBhd2FpdCBnZXRBbGxUb29scygpO1xyXG5cclxuICBsZXQgdG9vbHNTdHIgPSBcIlwiO1xyXG5cclxuICB0b29scy5mb3JFYWNoKChpKSA9PiB7XHJcbiAgICAvLyBlcnJvciBjbGllbnQgaGFzIG5vIHRvb2xzXHJcbiAgICBpZiAoIWkudG9vbHMpIHJldHVybjtcclxuXHJcbiAgICB0b29sc1N0ciArPSBNQ1BfVE9PTFNfVEVNUExBVEUucmVwbGFjZShcclxuICAgICAgXCJ7eyBjbGllbnRJZCB9fVwiLFxyXG4gICAgICBpLmNsaWVudElkLFxyXG4gICAgKS5yZXBsYWNlKFxyXG4gICAgICBcInt7IHRvb2xzIH19XCIsXHJcbiAgICAgIGkudG9vbHMudG9vbHMubWFwKChwOiBvYmplY3QpID0+IEpTT04uc3RyaW5naWZ5KHAsIG51bGwsIDIpKS5qb2luKFwiXFxuXCIpLFxyXG4gICAgKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIE1DUF9TWVNURU1fVEVNUExBVEUucmVwbGFjZShcInt7IE1DUF9UT09MUyB9fVwiLCB0b29sc1N0cik7XHJcbn1cclxuXHJcbmNvbnN0IERFRkFVTFRfQ0hBVF9TVEFURSA9IHtcclxuICBzZXNzaW9uczogW2NyZWF0ZUVtcHR5U2Vzc2lvbigpXSxcclxuICBjdXJyZW50U2Vzc2lvbkluZGV4OiAwLFxyXG4gIGxhc3RJbnB1dDogXCJcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCB1c2VDaGF0U3RvcmUgPSBjcmVhdGVQZXJzaXN0U3RvcmUoXHJcbiAgREVGQVVMVF9DSEFUX1NUQVRFLFxyXG4gIChzZXQsIF9nZXQpID0+IHtcclxuICAgIGZ1bmN0aW9uIGdldCgpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5fZ2V0KCksXHJcbiAgICAgICAgLi4ubWV0aG9kcyxcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtZXRob2RzID0ge1xyXG4gICAgICBmb3JrU2Vzc2lvbigpIHtcclxuICAgICAgICAvLyDojrflj5blvZPliY3kvJror51cclxuICAgICAgICBjb25zdCBjdXJyZW50U2Vzc2lvbiA9IGdldCgpLmN1cnJlbnRTZXNzaW9uKCk7XHJcbiAgICAgICAgaWYgKCFjdXJyZW50U2Vzc2lvbikgcmV0dXJuO1xyXG5cclxuICAgICAgICBjb25zdCBuZXdTZXNzaW9uID0gY3JlYXRlRW1wdHlTZXNzaW9uKCk7XHJcblxyXG4gICAgICAgIG5ld1Nlc3Npb24udG9waWMgPSBjdXJyZW50U2Vzc2lvbi50b3BpYztcclxuICAgICAgICAvLyDmt7Hmi7fotJ3mtojmga9cclxuICAgICAgICBuZXdTZXNzaW9uLm1lc3NhZ2VzID0gY3VycmVudFNlc3Npb24ubWVzc2FnZXMubWFwKChtc2cpID0+ICh7XHJcbiAgICAgICAgICAuLi5tc2csXHJcbiAgICAgICAgICBpZDogbmFub2lkKCksIC8vIOeUn+aIkOaWsOeahOa2iOaBryBJRFxyXG4gICAgICAgIH0pKTtcclxuICAgICAgICBuZXdTZXNzaW9uLm1hc2sgPSB7XHJcbiAgICAgICAgICAuLi5jdXJyZW50U2Vzc2lvbi5tYXNrLFxyXG4gICAgICAgICAgbW9kZWxDb25maWc6IHtcclxuICAgICAgICAgICAgLi4uY3VycmVudFNlc3Npb24ubWFzay5tb2RlbENvbmZpZyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgc2V0KChzdGF0ZSkgPT4gKHtcclxuICAgICAgICAgIGN1cnJlbnRTZXNzaW9uSW5kZXg6IDAsXHJcbiAgICAgICAgICBzZXNzaW9uczogW25ld1Nlc3Npb24sIC4uLnN0YXRlLnNlc3Npb25zXSxcclxuICAgICAgICB9KSk7XHJcbiAgICAgIH0sXHJcblxyXG4gICAgICBjbGVhclNlc3Npb25zKCkge1xyXG4gICAgICAgIHNldCgoKSA9PiAoe1xyXG4gICAgICAgICAgc2Vzc2lvbnM6IFtjcmVhdGVFbXB0eVNlc3Npb24oKV0sXHJcbiAgICAgICAgICBjdXJyZW50U2Vzc2lvbkluZGV4OiAwLFxyXG4gICAgICAgIH0pKTtcclxuICAgICAgfSxcclxuXHJcbiAgICAgIHNlbGVjdFNlc3Npb24oaW5kZXg6IG51bWJlcikge1xyXG4gICAgICAgIHNldCh7XHJcbiAgICAgICAgICBjdXJyZW50U2Vzc2lvbkluZGV4OiBpbmRleCxcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuXHJcbiAgICAgIG1vdmVTZXNzaW9uKGZyb206IG51bWJlciwgdG86IG51bWJlcikge1xyXG4gICAgICAgIHNldCgoc3RhdGUpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHsgc2Vzc2lvbnMsIGN1cnJlbnRTZXNzaW9uSW5kZXg6IG9sZEluZGV4IH0gPSBzdGF0ZTtcclxuXHJcbiAgICAgICAgICAvLyBtb3ZlIHRoZSBzZXNzaW9uXHJcbiAgICAgICAgICBjb25zdCBuZXdTZXNzaW9ucyA9IFsuLi5zZXNzaW9uc107XHJcbiAgICAgICAgICBjb25zdCBzZXNzaW9uID0gbmV3U2Vzc2lvbnNbZnJvbV07XHJcbiAgICAgICAgICBuZXdTZXNzaW9ucy5zcGxpY2UoZnJvbSwgMSk7XHJcbiAgICAgICAgICBuZXdTZXNzaW9ucy5zcGxpY2UodG8sIDAsIHNlc3Npb24pO1xyXG5cclxuICAgICAgICAgIC8vIG1vZGlmeSBjdXJyZW50IHNlc3Npb24gaWRcclxuICAgICAgICAgIGxldCBuZXdJbmRleCA9IG9sZEluZGV4ID09PSBmcm9tID8gdG8gOiBvbGRJbmRleDtcclxuICAgICAgICAgIGlmIChvbGRJbmRleCA+IGZyb20gJiYgb2xkSW5kZXggPD0gdG8pIHtcclxuICAgICAgICAgICAgbmV3SW5kZXggLT0gMTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAob2xkSW5kZXggPCBmcm9tICYmIG9sZEluZGV4ID49IHRvKSB7XHJcbiAgICAgICAgICAgIG5ld0luZGV4ICs9IDE7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgY3VycmVudFNlc3Npb25JbmRleDogbmV3SW5kZXgsXHJcbiAgICAgICAgICAgIHNlc3Npb25zOiBuZXdTZXNzaW9ucyxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcblxyXG4gICAgICBuZXdTZXNzaW9uKG1hc2s/OiBNYXNrKSB7XHJcbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IGNyZWF0ZUVtcHR5U2Vzc2lvbigpO1xyXG5cclxuICAgICAgICBpZiAobWFzaykge1xyXG4gICAgICAgICAgY29uc3QgY29uZmlnID0gdXNlQXBwQ29uZmlnLmdldFN0YXRlKCk7XHJcbiAgICAgICAgICBjb25zdCBnbG9iYWxNb2RlbENvbmZpZyA9IGNvbmZpZy5tb2RlbENvbmZpZztcclxuXHJcbiAgICAgICAgICBzZXNzaW9uLm1hc2sgPSB7XHJcbiAgICAgICAgICAgIC4uLm1hc2ssXHJcbiAgICAgICAgICAgIG1vZGVsQ29uZmlnOiB7XHJcbiAgICAgICAgICAgICAgLi4uZ2xvYmFsTW9kZWxDb25maWcsXHJcbiAgICAgICAgICAgICAgLi4ubWFzay5tb2RlbENvbmZpZyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBzZXNzaW9uLnRvcGljID0gbWFzay5uYW1lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2V0KChzdGF0ZSkgPT4gKHtcclxuICAgICAgICAgIGN1cnJlbnRTZXNzaW9uSW5kZXg6IDAsXHJcbiAgICAgICAgICBzZXNzaW9uczogW3Nlc3Npb25dLmNvbmNhdChzdGF0ZS5zZXNzaW9ucyksXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9LFxyXG5cclxuICAgICAgbmV4dFNlc3Npb24oZGVsdGE6IG51bWJlcikge1xyXG4gICAgICAgIGNvbnN0IG4gPSBnZXQoKS5zZXNzaW9ucy5sZW5ndGg7XHJcbiAgICAgICAgY29uc3QgbGltaXQgPSAoeDogbnVtYmVyKSA9PiAoeCArIG4pICUgbjtcclxuICAgICAgICBjb25zdCBpID0gZ2V0KCkuY3VycmVudFNlc3Npb25JbmRleDtcclxuICAgICAgICBnZXQoKS5zZWxlY3RTZXNzaW9uKGxpbWl0KGkgKyBkZWx0YSkpO1xyXG4gICAgICB9LFxyXG5cclxuICAgICAgZGVsZXRlU2Vzc2lvbihpbmRleDogbnVtYmVyKSB7XHJcbiAgICAgICAgY29uc3QgZGVsZXRpbmdMYXN0U2Vzc2lvbiA9IGdldCgpLnNlc3Npb25zLmxlbmd0aCA9PT0gMTtcclxuICAgICAgICBjb25zdCBkZWxldGVkU2Vzc2lvbiA9IGdldCgpLnNlc3Npb25zLmF0KGluZGV4KTtcclxuXHJcbiAgICAgICAgaWYgKCFkZWxldGVkU2Vzc2lvbikgcmV0dXJuO1xyXG5cclxuICAgICAgICBjb25zdCBzZXNzaW9ucyA9IGdldCgpLnNlc3Npb25zLnNsaWNlKCk7XHJcbiAgICAgICAgc2Vzc2lvbnMuc3BsaWNlKGluZGV4LCAxKTtcclxuXHJcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gZ2V0KCkuY3VycmVudFNlc3Npb25JbmRleDtcclxuICAgICAgICBsZXQgbmV4dEluZGV4ID0gTWF0aC5taW4oXHJcbiAgICAgICAgICBjdXJyZW50SW5kZXggLSBOdW1iZXIoaW5kZXggPCBjdXJyZW50SW5kZXgpLFxyXG4gICAgICAgICAgc2Vzc2lvbnMubGVuZ3RoIC0gMSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBpZiAoZGVsZXRpbmdMYXN0U2Vzc2lvbikge1xyXG4gICAgICAgICAgbmV4dEluZGV4ID0gMDtcclxuICAgICAgICAgIHNlc3Npb25zLnB1c2goY3JlYXRlRW1wdHlTZXNzaW9uKCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gZm9yIHVuZG8gZGVsZXRlIGFjdGlvblxyXG4gICAgICAgIGNvbnN0IHJlc3RvcmVTdGF0ZSA9IHtcclxuICAgICAgICAgIGN1cnJlbnRTZXNzaW9uSW5kZXg6IGdldCgpLmN1cnJlbnRTZXNzaW9uSW5kZXgsXHJcbiAgICAgICAgICBzZXNzaW9uczogZ2V0KCkuc2Vzc2lvbnMuc2xpY2UoKSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBzZXQoKCkgPT4gKHtcclxuICAgICAgICAgIGN1cnJlbnRTZXNzaW9uSW5kZXg6IG5leHRJbmRleCxcclxuICAgICAgICAgIHNlc3Npb25zLFxyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgc2hvd1RvYXN0KFxyXG4gICAgICAgICAgTG9jYWxlLkhvbWUuRGVsZXRlVG9hc3QsXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRleHQ6IExvY2FsZS5Ib21lLlJldmVydCxcclxuICAgICAgICAgICAgb25DbGljaygpIHtcclxuICAgICAgICAgICAgICBzZXQoKCkgPT4gcmVzdG9yZVN0YXRlKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICA1MDAwLFxyXG4gICAgICAgICk7XHJcbiAgICAgIH0sXHJcblxyXG4gICAgICBjdXJyZW50U2Vzc2lvbigpIHtcclxuICAgICAgICBsZXQgaW5kZXggPSBnZXQoKS5jdXJyZW50U2Vzc2lvbkluZGV4O1xyXG4gICAgICAgIGNvbnN0IHNlc3Npb25zID0gZ2V0KCkuc2Vzc2lvbnM7XHJcblxyXG4gICAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gc2Vzc2lvbnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICBpbmRleCA9IE1hdGgubWluKHNlc3Npb25zLmxlbmd0aCAtIDEsIE1hdGgubWF4KDAsIGluZGV4KSk7XHJcbiAgICAgICAgICBzZXQoKCkgPT4gKHsgY3VycmVudFNlc3Npb25JbmRleDogaW5kZXggfSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IHNlc3Npb25zW2luZGV4XTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHNlc3Npb247XHJcbiAgICAgIH0sXHJcblxyXG4gICAgICBvbk5ld01lc3NhZ2UobWVzc2FnZTogQ2hhdE1lc3NhZ2UsIHRhcmdldFNlc3Npb246IENoYXRTZXNzaW9uKSB7XHJcbiAgICAgICAgZ2V0KCkudXBkYXRlVGFyZ2V0U2Vzc2lvbih0YXJnZXRTZXNzaW9uLCAoc2Vzc2lvbikgPT4ge1xyXG4gICAgICAgICAgc2Vzc2lvbi5tZXNzYWdlcyA9IHNlc3Npb24ubWVzc2FnZXMuY29uY2F0KCk7XHJcbiAgICAgICAgICBzZXNzaW9uLmxhc3RVcGRhdGUgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBnZXQoKS51cGRhdGVTdGF0KG1lc3NhZ2UsIHRhcmdldFNlc3Npb24pO1xyXG5cclxuICAgICAgICBnZXQoKS5jaGVja01jcEpzb24obWVzc2FnZSk7XHJcblxyXG4gICAgICAgIGdldCgpLnN1bW1hcml6ZVNlc3Npb24oZmFsc2UsIHRhcmdldFNlc3Npb24pO1xyXG4gICAgICB9LFxyXG5cclxuICAgICAgYXN5bmMgb25Vc2VySW5wdXQoXHJcbiAgICAgICAgY29udGVudDogc3RyaW5nLFxyXG4gICAgICAgIGF0dGFjaEltYWdlcz86IHN0cmluZ1tdLFxyXG4gICAgICAgIGlzTWNwUmVzcG9uc2U/OiBib29sZWFuLFxyXG4gICAgICApIHtcclxuICAgICAgICBjb25zdCBzZXNzaW9uID0gZ2V0KCkuY3VycmVudFNlc3Npb24oKTtcclxuICAgICAgICBjb25zdCBtb2RlbENvbmZpZyA9IHNlc3Npb24ubWFzay5tb2RlbENvbmZpZztcclxuXHJcbiAgICAgICAgLy8gTUNQIFJlc3BvbnNlIG5vIG5lZWQgdG8gZmlsbCB0ZW1wbGF0ZVxyXG4gICAgICAgIGxldCBtQ29udGVudDogc3RyaW5nIHwgTXVsdGltb2RhbENvbnRlbnRbXSA9IGlzTWNwUmVzcG9uc2VcclxuICAgICAgICAgID8gY29udGVudFxyXG4gICAgICAgICAgOiBmaWxsVGVtcGxhdGVXaXRoKGNvbnRlbnQsIG1vZGVsQ29uZmlnKTtcclxuXHJcbiAgICAgICAgaWYgKCFpc01jcFJlc3BvbnNlICYmIGF0dGFjaEltYWdlcyAmJiBhdHRhY2hJbWFnZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgbUNvbnRlbnQgPSBbXHJcbiAgICAgICAgICAgIC4uLihjb250ZW50ID8gW3sgdHlwZTogXCJ0ZXh0XCIgYXMgY29uc3QsIHRleHQ6IGNvbnRlbnQgfV0gOiBbXSksXHJcbiAgICAgICAgICAgIC4uLmF0dGFjaEltYWdlcy5tYXAoKHVybCkgPT4gKHtcclxuICAgICAgICAgICAgICB0eXBlOiBcImltYWdlX3VybFwiIGFzIGNvbnN0LFxyXG4gICAgICAgICAgICAgIGltYWdlX3VybDogeyB1cmwgfSxcclxuICAgICAgICAgICAgfSkpLFxyXG4gICAgICAgICAgXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCB1c2VyTWVzc2FnZTogQ2hhdE1lc3NhZ2UgPSBjcmVhdGVNZXNzYWdlKHtcclxuICAgICAgICAgIHJvbGU6IFwidXNlclwiLFxyXG4gICAgICAgICAgY29udGVudDogbUNvbnRlbnQsXHJcbiAgICAgICAgICBpc01jcFJlc3BvbnNlLFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjb25zdCBib3RNZXNzYWdlOiBDaGF0TWVzc2FnZSA9IGNyZWF0ZU1lc3NhZ2Uoe1xyXG4gICAgICAgICAgcm9sZTogXCJhc3Npc3RhbnRcIixcclxuICAgICAgICAgIHN0cmVhbWluZzogdHJ1ZSxcclxuICAgICAgICAgIG1vZGVsOiBtb2RlbENvbmZpZy5tb2RlbCxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gZ2V0IHJlY2VudCBtZXNzYWdlc1xyXG4gICAgICAgIGNvbnN0IHJlY2VudE1lc3NhZ2VzID0gYXdhaXQgZ2V0KCkuZ2V0TWVzc2FnZXNXaXRoTWVtb3J5KCk7XHJcbiAgICAgICAgY29uc3Qgc2VuZE1lc3NhZ2VzID0gcmVjZW50TWVzc2FnZXMuY29uY2F0KHVzZXJNZXNzYWdlKTtcclxuICAgICAgICBjb25zdCBtZXNzYWdlSW5kZXggPSBzZXNzaW9uLm1lc3NhZ2VzLmxlbmd0aCArIDE7XHJcblxyXG4gICAgICAgIC8vIHNhdmUgdXNlcidzIGFuZCBib3QncyBtZXNzYWdlXHJcbiAgICAgICAgZ2V0KCkudXBkYXRlVGFyZ2V0U2Vzc2lvbihzZXNzaW9uLCAoc2Vzc2lvbikgPT4ge1xyXG4gICAgICAgICAgY29uc3Qgc2F2ZWRVc2VyTWVzc2FnZSA9IHtcclxuICAgICAgICAgICAgLi4udXNlck1lc3NhZ2UsXHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IG1Db250ZW50LFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHNlc3Npb24ubWVzc2FnZXMgPSBzZXNzaW9uLm1lc3NhZ2VzLmNvbmNhdChbXHJcbiAgICAgICAgICAgIHNhdmVkVXNlck1lc3NhZ2UsXHJcbiAgICAgICAgICAgIGJvdE1lc3NhZ2UsXHJcbiAgICAgICAgICBdKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgYXBpOiBDbGllbnRBcGkgPSBnZXRDbGllbnRBcGkobW9kZWxDb25maWcucHJvdmlkZXJOYW1lKTtcclxuICAgICAgICAvLyBtYWtlIHJlcXVlc3RcclxuICAgICAgICBhcGkubGxtLmNoYXQoe1xyXG4gICAgICAgICAgbWVzc2FnZXM6IHNlbmRNZXNzYWdlcyxcclxuICAgICAgICAgIGNvbmZpZzogeyAuLi5tb2RlbENvbmZpZywgc3RyZWFtOiB0cnVlIH0sXHJcbiAgICAgICAgICBvblVwZGF0ZShtZXNzYWdlKSB7XHJcbiAgICAgICAgICAgIGJvdE1lc3NhZ2Uuc3RyZWFtaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKG1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICBib3RNZXNzYWdlLmNvbnRlbnQgPSBtZXNzYWdlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGdldCgpLnVwZGF0ZVRhcmdldFNlc3Npb24oc2Vzc2lvbiwgKHNlc3Npb24pID0+IHtcclxuICAgICAgICAgICAgICBzZXNzaW9uLm1lc3NhZ2VzID0gc2Vzc2lvbi5tZXNzYWdlcy5jb25jYXQoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgYXN5bmMgb25GaW5pc2gobWVzc2FnZSkge1xyXG4gICAgICAgICAgICBib3RNZXNzYWdlLnN0cmVhbWluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAobWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgIGJvdE1lc3NhZ2UuY29udGVudCA9IG1lc3NhZ2U7XHJcbiAgICAgICAgICAgICAgYm90TWVzc2FnZS5kYXRlID0gbmV3IERhdGUoKS50b0xvY2FsZVN0cmluZygpO1xyXG4gICAgICAgICAgICAgIGdldCgpLm9uTmV3TWVzc2FnZShib3RNZXNzYWdlLCBzZXNzaW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBDaGF0Q29udHJvbGxlclBvb2wucmVtb3ZlKHNlc3Npb24uaWQsIGJvdE1lc3NhZ2UuaWQpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9uQmVmb3JlVG9vbCh0b29sOiBDaGF0TWVzc2FnZVRvb2wpIHtcclxuICAgICAgICAgICAgKGJvdE1lc3NhZ2UudG9vbHMgPSBib3RNZXNzYWdlPy50b29scyB8fCBbXSkucHVzaCh0b29sKTtcclxuICAgICAgICAgICAgZ2V0KCkudXBkYXRlVGFyZ2V0U2Vzc2lvbihzZXNzaW9uLCAoc2Vzc2lvbikgPT4ge1xyXG4gICAgICAgICAgICAgIHNlc3Npb24ubWVzc2FnZXMgPSBzZXNzaW9uLm1lc3NhZ2VzLmNvbmNhdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvbkFmdGVyVG9vbCh0b29sOiBDaGF0TWVzc2FnZVRvb2wpIHtcclxuICAgICAgICAgICAgYm90TWVzc2FnZT8udG9vbHM/LmZvckVhY2goKHQsIGksIHRvb2xzKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHRvb2wuaWQgPT0gdC5pZCkge1xyXG4gICAgICAgICAgICAgICAgdG9vbHNbaV0gPSB7IC4uLnRvb2wgfTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBnZXQoKS51cGRhdGVUYXJnZXRTZXNzaW9uKHNlc3Npb24sIChzZXNzaW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgc2Vzc2lvbi5tZXNzYWdlcyA9IHNlc3Npb24ubWVzc2FnZXMuY29uY2F0KCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9uRXJyb3IoZXJyb3IpIHtcclxuICAgICAgICAgICAgY29uc3QgaXNBYm9ydGVkID0gZXJyb3IubWVzc2FnZT8uaW5jbHVkZXM/LihcImFib3J0ZWRcIik7XHJcbiAgICAgICAgICAgIGJvdE1lc3NhZ2UuY29udGVudCArPVxyXG4gICAgICAgICAgICAgIFwiXFxuXFxuXCIgK1xyXG4gICAgICAgICAgICAgIHByZXR0eU9iamVjdCh7XHJcbiAgICAgICAgICAgICAgICBlcnJvcjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGJvdE1lc3NhZ2Uuc3RyZWFtaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHVzZXJNZXNzYWdlLmlzRXJyb3IgPSAhaXNBYm9ydGVkO1xyXG4gICAgICAgICAgICBib3RNZXNzYWdlLmlzRXJyb3IgPSAhaXNBYm9ydGVkO1xyXG4gICAgICAgICAgICBnZXQoKS51cGRhdGVUYXJnZXRTZXNzaW9uKHNlc3Npb24sIChzZXNzaW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgc2Vzc2lvbi5tZXNzYWdlcyA9IHNlc3Npb24ubWVzc2FnZXMuY29uY2F0KCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBDaGF0Q29udHJvbGxlclBvb2wucmVtb3ZlKFxyXG4gICAgICAgICAgICAgIHNlc3Npb24uaWQsXHJcbiAgICAgICAgICAgICAgYm90TWVzc2FnZS5pZCA/PyBtZXNzYWdlSW5kZXgsXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiW0NoYXRdIGZhaWxlZCBcIiwgZXJyb3IpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9uQ29udHJvbGxlcihjb250cm9sbGVyKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbGxlY3QgY29udHJvbGxlciBmb3Igc3RvcC9yZXRyeVxyXG4gICAgICAgICAgICBDaGF0Q29udHJvbGxlclBvb2wuYWRkQ29udHJvbGxlcihcclxuICAgICAgICAgICAgICBzZXNzaW9uLmlkLFxyXG4gICAgICAgICAgICAgIGJvdE1lc3NhZ2UuaWQgPz8gbWVzc2FnZUluZGV4LFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xsZXIsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG5cclxuICAgICAgZ2V0TWVtb3J5UHJvbXB0KCkge1xyXG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSBnZXQoKS5jdXJyZW50U2Vzc2lvbigpO1xyXG5cclxuICAgICAgICBpZiAoc2Vzc2lvbi5tZW1vcnlQcm9tcHQubGVuZ3RoKSB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICByb2xlOiBcInN5c3RlbVwiLFxyXG4gICAgICAgICAgICBjb250ZW50OiBMb2NhbGUuU3RvcmUuUHJvbXB0Lkhpc3Rvcnkoc2Vzc2lvbi5tZW1vcnlQcm9tcHQpLFxyXG4gICAgICAgICAgICBkYXRlOiBcIlwiLFxyXG4gICAgICAgICAgfSBhcyBDaGF0TWVzc2FnZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcblxyXG4gICAgICBhc3luYyBnZXRNZXNzYWdlc1dpdGhNZW1vcnkoKSB7XHJcbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IGdldCgpLmN1cnJlbnRTZXNzaW9uKCk7XHJcbiAgICAgICAgY29uc3QgbW9kZWxDb25maWcgPSBzZXNzaW9uLm1hc2subW9kZWxDb25maWc7XHJcbiAgICAgICAgY29uc3QgY2xlYXJDb250ZXh0SW5kZXggPSBzZXNzaW9uLmNsZWFyQ29udGV4dEluZGV4ID8/IDA7XHJcbiAgICAgICAgY29uc3QgbWVzc2FnZXMgPSBzZXNzaW9uLm1lc3NhZ2VzLnNsaWNlKCk7XHJcbiAgICAgICAgY29uc3QgdG90YWxNZXNzYWdlQ291bnQgPSBzZXNzaW9uLm1lc3NhZ2VzLmxlbmd0aDtcclxuXHJcbiAgICAgICAgLy8gaW4tY29udGV4dCBwcm9tcHRzXHJcbiAgICAgICAgY29uc3QgY29udGV4dFByb21wdHMgPSBzZXNzaW9uLm1hc2suY29udGV4dC5zbGljZSgpO1xyXG5cclxuICAgICAgICAvLyBzeXN0ZW0gcHJvbXB0cywgdG8gZ2V0IGNsb3NlIHRvIE9wZW5BSSBXZWIgQ2hhdEdQVFxyXG4gICAgICAgIGNvbnN0IHNob3VsZEluamVjdFN5c3RlbVByb21wdHMgPVxyXG4gICAgICAgICAgbW9kZWxDb25maWcuZW5hYmxlSW5qZWN0U3lzdGVtUHJvbXB0cyAmJlxyXG4gICAgICAgICAgKHNlc3Npb24ubWFzay5tb2RlbENvbmZpZy5tb2RlbC5zdGFydHNXaXRoKFwiZ3B0LVwiKSB8fFxyXG4gICAgICAgICAgICBzZXNzaW9uLm1hc2subW9kZWxDb25maWcubW9kZWwuc3RhcnRzV2l0aChcImNoYXRncHQtXCIpKTtcclxuXHJcbiAgICAgICAgY29uc3QgbWNwRW5hYmxlZCA9IGF3YWl0IGlzTWNwRW5hYmxlZCgpO1xyXG4gICAgICAgIGNvbnN0IG1jcFN5c3RlbVByb21wdCA9IG1jcEVuYWJsZWQgPyBhd2FpdCBnZXRNY3BTeXN0ZW1Qcm9tcHQoKSA6IFwiXCI7XHJcblxyXG4gICAgICAgIHZhciBzeXN0ZW1Qcm9tcHRzOiBDaGF0TWVzc2FnZVtdID0gW107XHJcblxyXG4gICAgICAgIGlmIChzaG91bGRJbmplY3RTeXN0ZW1Qcm9tcHRzKSB7XHJcbiAgICAgICAgICBzeXN0ZW1Qcm9tcHRzID0gW1xyXG4gICAgICAgICAgICBjcmVhdGVNZXNzYWdlKHtcclxuICAgICAgICAgICAgICByb2xlOiBcInN5c3RlbVwiLFxyXG4gICAgICAgICAgICAgIGNvbnRlbnQ6XHJcbiAgICAgICAgICAgICAgICBmaWxsVGVtcGxhdGVXaXRoKFwiXCIsIHtcclxuICAgICAgICAgICAgICAgICAgLi4ubW9kZWxDb25maWcsXHJcbiAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiBERUZBVUxUX1NZU1RFTV9URU1QTEFURSxcclxuICAgICAgICAgICAgICAgIH0pICsgbWNwU3lzdGVtUHJvbXB0LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgIF07XHJcbiAgICAgICAgfSBlbHNlIGlmIChtY3BFbmFibGVkKSB7XHJcbiAgICAgICAgICBzeXN0ZW1Qcm9tcHRzID0gW1xyXG4gICAgICAgICAgICBjcmVhdGVNZXNzYWdlKHtcclxuICAgICAgICAgICAgICByb2xlOiBcInN5c3RlbVwiLFxyXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IG1jcFN5c3RlbVByb21wdCxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICBdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHNob3VsZEluamVjdFN5c3RlbVByb21wdHMgfHwgbWNwRW5hYmxlZCkge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgIFwiW0dsb2JhbCBTeXN0ZW0gUHJvbXB0XSBcIixcclxuICAgICAgICAgICAgc3lzdGVtUHJvbXB0cy5hdCgwKT8uY29udGVudCA/PyBcImVtcHR5XCIsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBtZW1vcnlQcm9tcHQgPSBnZXQoKS5nZXRNZW1vcnlQcm9tcHQoKTtcclxuICAgICAgICAvLyBsb25nIHRlcm0gbWVtb3J5XHJcbiAgICAgICAgY29uc3Qgc2hvdWxkU2VuZExvbmdUZXJtTWVtb3J5ID1cclxuICAgICAgICAgIG1vZGVsQ29uZmlnLnNlbmRNZW1vcnkgJiZcclxuICAgICAgICAgIHNlc3Npb24ubWVtb3J5UHJvbXB0ICYmXHJcbiAgICAgICAgICBzZXNzaW9uLm1lbW9yeVByb21wdC5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICBzZXNzaW9uLmxhc3RTdW1tYXJpemVJbmRleCA+IGNsZWFyQ29udGV4dEluZGV4O1xyXG4gICAgICAgIGNvbnN0IGxvbmdUZXJtTWVtb3J5UHJvbXB0cyA9XHJcbiAgICAgICAgICBzaG91bGRTZW5kTG9uZ1Rlcm1NZW1vcnkgJiYgbWVtb3J5UHJvbXB0ID8gW21lbW9yeVByb21wdF0gOiBbXTtcclxuICAgICAgICBjb25zdCBsb25nVGVybU1lbW9yeVN0YXJ0SW5kZXggPSBzZXNzaW9uLmxhc3RTdW1tYXJpemVJbmRleDtcclxuXHJcbiAgICAgICAgLy8gc2hvcnQgdGVybSBtZW1vcnlcclxuICAgICAgICBjb25zdCBzaG9ydFRlcm1NZW1vcnlTdGFydEluZGV4ID0gTWF0aC5tYXgoXHJcbiAgICAgICAgICAwLFxyXG4gICAgICAgICAgdG90YWxNZXNzYWdlQ291bnQgLSBtb2RlbENvbmZpZy5oaXN0b3J5TWVzc2FnZUNvdW50LFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIC8vIGxldHMgY29uY2F0IHNlbmQgbWVzc2FnZXMsIGluY2x1ZGluZyA0IHBhcnRzOlxyXG4gICAgICAgIC8vIDAuIHN5c3RlbSBwcm9tcHQ6IHRvIGdldCBjbG9zZSB0byBPcGVuQUkgV2ViIENoYXRHUFRcclxuICAgICAgICAvLyAxLiBsb25nIHRlcm0gbWVtb3J5OiBzdW1tYXJpemVkIG1lbW9yeSBtZXNzYWdlc1xyXG4gICAgICAgIC8vIDIuIHByZS1kZWZpbmVkIGluLWNvbnRleHQgcHJvbXB0c1xyXG4gICAgICAgIC8vIDMuIHNob3J0IHRlcm0gbWVtb3J5OiBsYXRlc3QgbiBtZXNzYWdlc1xyXG4gICAgICAgIC8vIDQuIG5ld2VzdCBpbnB1dCBtZXNzYWdlXHJcbiAgICAgICAgY29uc3QgbWVtb3J5U3RhcnRJbmRleCA9IHNob3VsZFNlbmRMb25nVGVybU1lbW9yeVxyXG4gICAgICAgICAgPyBNYXRoLm1pbihsb25nVGVybU1lbW9yeVN0YXJ0SW5kZXgsIHNob3J0VGVybU1lbW9yeVN0YXJ0SW5kZXgpXHJcbiAgICAgICAgICA6IHNob3J0VGVybU1lbW9yeVN0YXJ0SW5kZXg7XHJcbiAgICAgICAgLy8gYW5kIGlmIHVzZXIgaGFzIGNsZWFyZWQgaGlzdG9yeSBtZXNzYWdlcywgd2Ugc2hvdWxkIGV4Y2x1ZGUgdGhlIG1lbW9yeSB0b28uXHJcbiAgICAgICAgY29uc3QgY29udGV4dFN0YXJ0SW5kZXggPSBNYXRoLm1heChjbGVhckNvbnRleHRJbmRleCwgbWVtb3J5U3RhcnRJbmRleCk7XHJcbiAgICAgICAgY29uc3QgbWF4VG9rZW5UaHJlc2hvbGQgPSBtb2RlbENvbmZpZy5tYXhfdG9rZW5zO1xyXG5cclxuICAgICAgICAvLyBnZXQgcmVjZW50IG1lc3NhZ2VzIGFzIG11Y2ggYXMgcG9zc2libGVcclxuICAgICAgICBjb25zdCByZXZlcnNlZFJlY2VudE1lc3NhZ2VzID0gW107XHJcbiAgICAgICAgZm9yIChcclxuICAgICAgICAgIGxldCBpID0gdG90YWxNZXNzYWdlQ291bnQgLSAxLCB0b2tlbkNvdW50ID0gMDtcclxuICAgICAgICAgIGkgPj0gY29udGV4dFN0YXJ0SW5kZXggJiYgdG9rZW5Db3VudCA8IG1heFRva2VuVGhyZXNob2xkO1xyXG4gICAgICAgICAgaSAtPSAxXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBjb25zdCBtc2cgPSBtZXNzYWdlc1tpXTtcclxuICAgICAgICAgIGlmICghbXNnIHx8IG1zZy5pc0Vycm9yKSBjb250aW51ZTtcclxuICAgICAgICAgIHRva2VuQ291bnQgKz0gZXN0aW1hdGVUb2tlbkxlbmd0aChnZXRNZXNzYWdlVGV4dENvbnRlbnQobXNnKSk7XHJcbiAgICAgICAgICByZXZlcnNlZFJlY2VudE1lc3NhZ2VzLnB1c2gobXNnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uY2F0IGFsbCBtZXNzYWdlc1xyXG4gICAgICAgIGNvbnN0IHJlY2VudE1lc3NhZ2VzID0gW1xyXG4gICAgICAgICAgLi4uc3lzdGVtUHJvbXB0cyxcclxuICAgICAgICAgIC4uLmxvbmdUZXJtTWVtb3J5UHJvbXB0cyxcclxuICAgICAgICAgIC4uLmNvbnRleHRQcm9tcHRzLFxyXG4gICAgICAgICAgLi4ucmV2ZXJzZWRSZWNlbnRNZXNzYWdlcy5yZXZlcnNlKCksXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlY2VudE1lc3NhZ2VzO1xyXG4gICAgICB9LFxyXG5cclxuICAgICAgdXBkYXRlTWVzc2FnZShcclxuICAgICAgICBzZXNzaW9uSW5kZXg6IG51bWJlcixcclxuICAgICAgICBtZXNzYWdlSW5kZXg6IG51bWJlcixcclxuICAgICAgICB1cGRhdGVyOiAobWVzc2FnZT86IENoYXRNZXNzYWdlKSA9PiB2b2lkLFxyXG4gICAgICApIHtcclxuICAgICAgICBjb25zdCBzZXNzaW9ucyA9IGdldCgpLnNlc3Npb25zO1xyXG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSBzZXNzaW9ucy5hdChzZXNzaW9uSW5kZXgpO1xyXG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gc2Vzc2lvbj8ubWVzc2FnZXM7XHJcbiAgICAgICAgdXBkYXRlcihtZXNzYWdlcz8uYXQobWVzc2FnZUluZGV4KSk7XHJcbiAgICAgICAgc2V0KCgpID0+ICh7IHNlc3Npb25zIH0pKTtcclxuICAgICAgfSxcclxuXHJcbiAgICAgIHJlc2V0U2Vzc2lvbihzZXNzaW9uOiBDaGF0U2Vzc2lvbikge1xyXG4gICAgICAgIGdldCgpLnVwZGF0ZVRhcmdldFNlc3Npb24oc2Vzc2lvbiwgKHNlc3Npb24pID0+IHtcclxuICAgICAgICAgIHNlc3Npb24ubWVzc2FnZXMgPSBbXTtcclxuICAgICAgICAgIHNlc3Npb24ubWVtb3J5UHJvbXB0ID0gXCJcIjtcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuXHJcbiAgICAgIHN1bW1hcml6ZVNlc3Npb24oXHJcbiAgICAgICAgcmVmcmVzaFRpdGxlOiBib29sZWFuID0gZmFsc2UsXHJcbiAgICAgICAgdGFyZ2V0U2Vzc2lvbjogQ2hhdFNlc3Npb24sXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHVzZUFwcENvbmZpZy5nZXRTdGF0ZSgpO1xyXG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSB0YXJnZXRTZXNzaW9uO1xyXG4gICAgICAgIGNvbnN0IG1vZGVsQ29uZmlnID0gc2Vzc2lvbi5tYXNrLm1vZGVsQ29uZmlnO1xyXG4gICAgICAgIC8vIHNraXAgc3VtbWFyaXplIHdoZW4gdXNpbmcgZGFsbGUzP1xyXG4gICAgICAgIGlmIChpc0RhbGxlMyhtb2RlbENvbmZpZy5tb2RlbCkpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGlmIG5vdCBjb25maWcgY29tcHJlc3NNb2RlbCwgdGhlbiB1c2luZyBnZXRTdW1tYXJpemVNb2RlbFxyXG4gICAgICAgIGNvbnN0IFttb2RlbCwgcHJvdmlkZXJOYW1lXSA9IG1vZGVsQ29uZmlnLmNvbXByZXNzTW9kZWxcclxuICAgICAgICAgID8gW21vZGVsQ29uZmlnLmNvbXByZXNzTW9kZWwsIG1vZGVsQ29uZmlnLmNvbXByZXNzUHJvdmlkZXJOYW1lXVxyXG4gICAgICAgICAgOiBnZXRTdW1tYXJpemVNb2RlbChcclxuICAgICAgICAgICAgICBzZXNzaW9uLm1hc2subW9kZWxDb25maWcubW9kZWwsXHJcbiAgICAgICAgICAgICAgc2Vzc2lvbi5tYXNrLm1vZGVsQ29uZmlnLnByb3ZpZGVyTmFtZSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBhcGk6IENsaWVudEFwaSA9IGdldENsaWVudEFwaShwcm92aWRlck5hbWUgYXMgU2VydmljZVByb3ZpZGVyKTtcclxuXHJcbiAgICAgICAgLy8gcmVtb3ZlIGVycm9yIG1lc3NhZ2VzIGlmIGFueVxyXG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gc2Vzc2lvbi5tZXNzYWdlcztcclxuXHJcbiAgICAgICAgLy8gc2hvdWxkIHN1bW1hcml6ZSB0b3BpYyBhZnRlciBjaGF0aW5nIG1vcmUgdGhhbiA1MCB3b3Jkc1xyXG4gICAgICAgIGNvbnN0IFNVTU1BUklaRV9NSU5fTEVOID0gNTA7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgKGNvbmZpZy5lbmFibGVBdXRvR2VuZXJhdGVUaXRsZSAmJlxyXG4gICAgICAgICAgICBzZXNzaW9uLnRvcGljID09PSBERUZBVUxUX1RPUElDICYmXHJcbiAgICAgICAgICAgIGNvdW50TWVzc2FnZXMobWVzc2FnZXMpID49IFNVTU1BUklaRV9NSU5fTEVOKSB8fFxyXG4gICAgICAgICAgcmVmcmVzaFRpdGxlXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gTWF0aC5tYXgoXHJcbiAgICAgICAgICAgIDAsXHJcbiAgICAgICAgICAgIG1lc3NhZ2VzLmxlbmd0aCAtIG1vZGVsQ29uZmlnLmhpc3RvcnlNZXNzYWdlQ291bnQsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgY29uc3QgdG9waWNNZXNzYWdlcyA9IG1lc3NhZ2VzXHJcbiAgICAgICAgICAgIC5zbGljZShcclxuICAgICAgICAgICAgICBzdGFydEluZGV4IDwgbWVzc2FnZXMubGVuZ3RoID8gc3RhcnRJbmRleCA6IG1lc3NhZ2VzLmxlbmd0aCAtIDEsXHJcbiAgICAgICAgICAgICAgbWVzc2FnZXMubGVuZ3RoLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5jb25jYXQoXHJcbiAgICAgICAgICAgICAgY3JlYXRlTWVzc2FnZSh7XHJcbiAgICAgICAgICAgICAgICByb2xlOiBcInVzZXJcIixcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IExvY2FsZS5TdG9yZS5Qcm9tcHQuVG9waWMsXHJcbiAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICBhcGkubGxtLmNoYXQoe1xyXG4gICAgICAgICAgICBtZXNzYWdlczogdG9waWNNZXNzYWdlcyxcclxuICAgICAgICAgICAgY29uZmlnOiB7XHJcbiAgICAgICAgICAgICAgbW9kZWwsXHJcbiAgICAgICAgICAgICAgc3RyZWFtOiBmYWxzZSxcclxuICAgICAgICAgICAgICBwcm92aWRlck5hbWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG9uRmluaXNoKG1lc3NhZ2UsIHJlc3BvbnNlUmVzKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlUmVzPy5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgZ2V0KCkudXBkYXRlVGFyZ2V0U2Vzc2lvbihcclxuICAgICAgICAgICAgICAgICAgc2Vzc2lvbixcclxuICAgICAgICAgICAgICAgICAgKHNlc3Npb24pID0+XHJcbiAgICAgICAgICAgICAgICAgICAgKHNlc3Npb24udG9waWMgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZS5sZW5ndGggPiAwID8gdHJpbVRvcGljKG1lc3NhZ2UpIDogREVGQVVMVF9UT1BJQyksXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBzdW1tYXJpemVJbmRleCA9IE1hdGgubWF4KFxyXG4gICAgICAgICAgc2Vzc2lvbi5sYXN0U3VtbWFyaXplSW5kZXgsXHJcbiAgICAgICAgICBzZXNzaW9uLmNsZWFyQ29udGV4dEluZGV4ID8/IDAsXHJcbiAgICAgICAgKTtcclxuICAgICAgICBsZXQgdG9CZVN1bW1hcml6ZWRNc2dzID0gbWVzc2FnZXNcclxuICAgICAgICAgIC5maWx0ZXIoKG1zZykgPT4gIW1zZy5pc0Vycm9yKVxyXG4gICAgICAgICAgLnNsaWNlKHN1bW1hcml6ZUluZGV4KTtcclxuXHJcbiAgICAgICAgY29uc3QgaGlzdG9yeU1zZ0xlbmd0aCA9IGNvdW50TWVzc2FnZXModG9CZVN1bW1hcml6ZWRNc2dzKTtcclxuXHJcbiAgICAgICAgaWYgKGhpc3RvcnlNc2dMZW5ndGggPiAobW9kZWxDb25maWc/Lm1heF90b2tlbnMgfHwgNDAwMCkpIHtcclxuICAgICAgICAgIGNvbnN0IG4gPSB0b0JlU3VtbWFyaXplZE1zZ3MubGVuZ3RoO1xyXG4gICAgICAgICAgdG9CZVN1bW1hcml6ZWRNc2dzID0gdG9CZVN1bW1hcml6ZWRNc2dzLnNsaWNlKFxyXG4gICAgICAgICAgICBNYXRoLm1heCgwLCBuIC0gbW9kZWxDb25maWcuaGlzdG9yeU1lc3NhZ2VDb3VudCksXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBtZW1vcnlQcm9tcHQgPSBnZXQoKS5nZXRNZW1vcnlQcm9tcHQoKTtcclxuICAgICAgICBpZiAobWVtb3J5UHJvbXB0KSB7XHJcbiAgICAgICAgICAvLyBhZGQgbWVtb3J5IHByb21wdFxyXG4gICAgICAgICAgdG9CZVN1bW1hcml6ZWRNc2dzLnVuc2hpZnQobWVtb3J5UHJvbXB0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGxhc3RTdW1tYXJpemVJbmRleCA9IHNlc3Npb24ubWVzc2FnZXMubGVuZ3RoO1xyXG5cclxuICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgIFwiW0NoYXQgSGlzdG9yeV0gXCIsXHJcbiAgICAgICAgICB0b0JlU3VtbWFyaXplZE1zZ3MsXHJcbiAgICAgICAgICBoaXN0b3J5TXNnTGVuZ3RoLFxyXG4gICAgICAgICAgbW9kZWxDb25maWcuY29tcHJlc3NNZXNzYWdlTGVuZ3RoVGhyZXNob2xkLFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGhpc3RvcnlNc2dMZW5ndGggPiBtb2RlbENvbmZpZy5jb21wcmVzc01lc3NhZ2VMZW5ndGhUaHJlc2hvbGQgJiZcclxuICAgICAgICAgIG1vZGVsQ29uZmlnLnNlbmRNZW1vcnlcclxuICAgICAgICApIHtcclxuICAgICAgICAgIC8qKiBEZXN0cnVjdCBtYXhfdG9rZW5zIHdoaWxlIHN1bW1hcml6aW5nXHJcbiAgICAgICAgICAgKiB0aGlzIHBhcmFtIGlzIGp1c3Qgc2hpdFxyXG4gICAgICAgICAgICoqL1xyXG4gICAgICAgICAgY29uc3QgeyBtYXhfdG9rZW5zLCAuLi5tb2RlbGNmZyB9ID0gbW9kZWxDb25maWc7XHJcbiAgICAgICAgICBhcGkubGxtLmNoYXQoe1xyXG4gICAgICAgICAgICBtZXNzYWdlczogdG9CZVN1bW1hcml6ZWRNc2dzLmNvbmNhdChcclxuICAgICAgICAgICAgICBjcmVhdGVNZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgIHJvbGU6IFwic3lzdGVtXCIsXHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBMb2NhbGUuU3RvcmUuUHJvbXB0LlN1bW1hcml6ZSxcclxuICAgICAgICAgICAgICAgIGRhdGU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIGNvbmZpZzoge1xyXG4gICAgICAgICAgICAgIC4uLm1vZGVsY2ZnLFxyXG4gICAgICAgICAgICAgIHN0cmVhbTogdHJ1ZSxcclxuICAgICAgICAgICAgICBtb2RlbCxcclxuICAgICAgICAgICAgICBwcm92aWRlck5hbWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG9uVXBkYXRlKG1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICBzZXNzaW9uLm1lbW9yeVByb21wdCA9IG1lc3NhZ2U7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG9uRmluaXNoKG1lc3NhZ2UsIHJlc3BvbnNlUmVzKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlUmVzPy5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJbTWVtb3J5XSBcIiwgbWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICBnZXQoKS51cGRhdGVUYXJnZXRTZXNzaW9uKHNlc3Npb24sIChzZXNzaW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHNlc3Npb24ubGFzdFN1bW1hcml6ZUluZGV4ID0gbGFzdFN1bW1hcml6ZUluZGV4O1xyXG4gICAgICAgICAgICAgICAgICBzZXNzaW9uLm1lbW9yeVByb21wdCA9IG1lc3NhZ2U7IC8vIFVwZGF0ZSB0aGUgbWVtb3J5IHByb21wdCBmb3Igc3RvcmVkIGl0IGluIGxvY2FsIHN0b3JhZ2VcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25FcnJvcihlcnIpIHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiW1N1bW1hcml6ZV0gXCIsIGVycik7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcblxyXG4gICAgICB1cGRhdGVTdGF0KG1lc3NhZ2U6IENoYXRNZXNzYWdlLCBzZXNzaW9uOiBDaGF0U2Vzc2lvbikge1xyXG4gICAgICAgIGdldCgpLnVwZGF0ZVRhcmdldFNlc3Npb24oc2Vzc2lvbiwgKHNlc3Npb24pID0+IHtcclxuICAgICAgICAgIHNlc3Npb24uc3RhdC5jaGFyQ291bnQgKz0gbWVzc2FnZS5jb250ZW50Lmxlbmd0aDtcclxuICAgICAgICAgIC8vIFRPRE86IHNob3VsZCB1cGRhdGUgY2hhdCBjb3VudCBhbmQgd29yZCBjb3VudFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICB1cGRhdGVUYXJnZXRTZXNzaW9uKFxyXG4gICAgICAgIHRhcmdldFNlc3Npb246IENoYXRTZXNzaW9uLFxyXG4gICAgICAgIHVwZGF0ZXI6IChzZXNzaW9uOiBDaGF0U2Vzc2lvbikgPT4gdm9pZCxcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3Qgc2Vzc2lvbnMgPSBnZXQoKS5zZXNzaW9ucztcclxuICAgICAgICBjb25zdCBpbmRleCA9IHNlc3Npb25zLmZpbmRJbmRleCgocykgPT4gcy5pZCA9PT0gdGFyZ2V0U2Vzc2lvbi5pZCk7XHJcbiAgICAgICAgaWYgKGluZGV4IDwgMCkgcmV0dXJuO1xyXG4gICAgICAgIHVwZGF0ZXIoc2Vzc2lvbnNbaW5kZXhdKTtcclxuICAgICAgICBzZXQoKCkgPT4gKHsgc2Vzc2lvbnMgfSkpO1xyXG4gICAgICB9LFxyXG4gICAgICBhc3luYyBjbGVhckFsbERhdGEoKSB7XHJcbiAgICAgICAgYXdhaXQgaW5kZXhlZERCU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXRMYXN0SW5wdXQobGFzdElucHV0OiBzdHJpbmcpIHtcclxuICAgICAgICBzZXQoe1xyXG4gICAgICAgICAgbGFzdElucHV0LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG5cclxuICAgICAgLyoqIGNoZWNrIGlmIHRoZSBtZXNzYWdlIGNvbnRhaW5zIE1DUCBKU09OIGFuZCBleGVjdXRlIHRoZSBNQ1AgYWN0aW9uICovXHJcbiAgICAgIGNoZWNrTWNwSnNvbihtZXNzYWdlOiBDaGF0TWVzc2FnZSkge1xyXG4gICAgICAgIGNvbnN0IG1jcEVuYWJsZWQgPSBpc01jcEVuYWJsZWQoKTtcclxuICAgICAgICBpZiAoIW1jcEVuYWJsZWQpIHJldHVybjtcclxuICAgICAgICBjb25zdCBjb250ZW50ID0gZ2V0TWVzc2FnZVRleHRDb250ZW50KG1lc3NhZ2UpO1xyXG4gICAgICAgIGlmIChpc01jcEpzb24oY29udGVudCkpIHtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1jcFJlcXVlc3QgPSBleHRyYWN0TWNwSnNvbihjb250ZW50KTtcclxuICAgICAgICAgICAgaWYgKG1jcFJlcXVlc3QpIHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKFwiW01DUCBSZXF1ZXN0XVwiLCBtY3BSZXF1ZXN0KTtcclxuXHJcbiAgICAgICAgICAgICAgZXhlY3V0ZU1jcEFjdGlvbihtY3BSZXF1ZXN0LmNsaWVudElkLCBtY3BSZXF1ZXN0Lm1jcClcclxuICAgICAgICAgICAgICAgIC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJbTUNQIFJlc3BvbnNlXVwiLCByZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBtY3BSZXNwb25zZSA9XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHJlc3VsdCA9PT0gXCJvYmplY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPyBKU09OLnN0cmluZ2lmeShyZXN1bHQpXHJcbiAgICAgICAgICAgICAgICAgICAgICA6IFN0cmluZyhyZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgICBnZXQoKS5vblVzZXJJbnB1dChcclxuICAgICAgICAgICAgICAgICAgICBgXFxgXFxgXFxganNvbjptY3AtcmVzcG9uc2U6JHttY3BSZXF1ZXN0LmNsaWVudElkfVxcbiR7bWNwUmVzcG9uc2V9XFxuXFxgXFxgXFxgYCxcclxuICAgICAgICAgICAgICAgICAgICBbXSxcclxuICAgICAgICAgICAgICAgICAgICB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHNob3dUb2FzdChcIk1DUCBleGVjdXRpb24gZmFpbGVkXCIsIGVycm9yKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJbQ2hlY2sgTUNQIEpTT05dXCIsIGVycm9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBtZXRob2RzO1xyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogU3RvcmVLZXkuQ2hhdCxcclxuICAgIHZlcnNpb246IDMuMyxcclxuICAgIG1pZ3JhdGUocGVyc2lzdGVkU3RhdGUsIHZlcnNpb24pIHtcclxuICAgICAgY29uc3Qgc3RhdGUgPSBwZXJzaXN0ZWRTdGF0ZSBhcyBhbnk7XHJcbiAgICAgIGNvbnN0IG5ld1N0YXRlID0gSlNPTi5wYXJzZShcclxuICAgICAgICBKU09OLnN0cmluZ2lmeShzdGF0ZSksXHJcbiAgICAgICkgYXMgdHlwZW9mIERFRkFVTFRfQ0hBVF9TVEFURTtcclxuXHJcbiAgICAgIGlmICh2ZXJzaW9uIDwgMikge1xyXG4gICAgICAgIG5ld1N0YXRlLnNlc3Npb25zID0gW107XHJcblxyXG4gICAgICAgIGNvbnN0IG9sZFNlc3Npb25zID0gc3RhdGUuc2Vzc2lvbnM7XHJcbiAgICAgICAgZm9yIChjb25zdCBvbGRTZXNzaW9uIG9mIG9sZFNlc3Npb25zKSB7XHJcbiAgICAgICAgICBjb25zdCBuZXdTZXNzaW9uID0gY3JlYXRlRW1wdHlTZXNzaW9uKCk7XHJcbiAgICAgICAgICBuZXdTZXNzaW9uLnRvcGljID0gb2xkU2Vzc2lvbi50b3BpYztcclxuICAgICAgICAgIG5ld1Nlc3Npb24ubWVzc2FnZXMgPSBbLi4ub2xkU2Vzc2lvbi5tZXNzYWdlc107XHJcbiAgICAgICAgICBuZXdTZXNzaW9uLm1hc2subW9kZWxDb25maWcuc2VuZE1lbW9yeSA9IHRydWU7XHJcbiAgICAgICAgICBuZXdTZXNzaW9uLm1hc2subW9kZWxDb25maWcuaGlzdG9yeU1lc3NhZ2VDb3VudCA9IDQ7XHJcbiAgICAgICAgICBuZXdTZXNzaW9uLm1hc2subW9kZWxDb25maWcuY29tcHJlc3NNZXNzYWdlTGVuZ3RoVGhyZXNob2xkID0gMTAwMDtcclxuICAgICAgICAgIG5ld1N0YXRlLnNlc3Npb25zLnB1c2gobmV3U2Vzc2lvbik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodmVyc2lvbiA8IDMpIHtcclxuICAgICAgICAvLyBtaWdyYXRlIGlkIHRvIG5hbm9pZFxyXG4gICAgICAgIG5ld1N0YXRlLnNlc3Npb25zLmZvckVhY2goKHMpID0+IHtcclxuICAgICAgICAgIHMuaWQgPSBuYW5vaWQoKTtcclxuICAgICAgICAgIHMubWVzc2FnZXMuZm9yRWFjaCgobSkgPT4gKG0uaWQgPSBuYW5vaWQoKSkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBFbmFibGUgYGVuYWJsZUluamVjdFN5c3RlbVByb21wdHNgIGF0dHJpYnV0ZSBmb3Igb2xkIHNlc3Npb25zLlxyXG4gICAgICAvLyBSZXNvbHZlIGlzc3VlIG9mIG9sZCBzZXNzaW9ucyBub3QgYXV0b21hdGljYWxseSBlbmFibGluZy5cclxuICAgICAgaWYgKHZlcnNpb24gPCAzLjEpIHtcclxuICAgICAgICBuZXdTdGF0ZS5zZXNzaW9ucy5mb3JFYWNoKChzKSA9PiB7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIC8vIEV4Y2x1ZGUgdGhvc2UgYWxyZWFkeSBzZXQgYnkgdXNlclxyXG4gICAgICAgICAgICAhcy5tYXNrLm1vZGVsQ29uZmlnLmhhc093blByb3BlcnR5KFwiZW5hYmxlSW5qZWN0U3lzdGVtUHJvbXB0c1wiKVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIC8vIEJlY2F1c2UgdXNlcnMgbWF5IGhhdmUgY2hhbmdlZCB0aGlzIGNvbmZpZ3VyYXRpb24sXHJcbiAgICAgICAgICAgIC8vIHRoZSB1c2VyJ3MgY3VycmVudCBjb25maWd1cmF0aW9uIGlzIHVzZWQgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdFxyXG4gICAgICAgICAgICBjb25zdCBjb25maWcgPSB1c2VBcHBDb25maWcuZ2V0U3RhdGUoKTtcclxuICAgICAgICAgICAgcy5tYXNrLm1vZGVsQ29uZmlnLmVuYWJsZUluamVjdFN5c3RlbVByb21wdHMgPVxyXG4gICAgICAgICAgICAgIGNvbmZpZy5tb2RlbENvbmZpZy5lbmFibGVJbmplY3RTeXN0ZW1Qcm9tcHRzO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBhZGQgZGVmYXVsdCBzdW1tYXJpemUgbW9kZWwgZm9yIGV2ZXJ5IHNlc3Npb25cclxuICAgICAgaWYgKHZlcnNpb24gPCAzLjIpIHtcclxuICAgICAgICBuZXdTdGF0ZS5zZXNzaW9ucy5mb3JFYWNoKChzKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBjb25maWcgPSB1c2VBcHBDb25maWcuZ2V0U3RhdGUoKTtcclxuICAgICAgICAgIHMubWFzay5tb2RlbENvbmZpZy5jb21wcmVzc01vZGVsID0gY29uZmlnLm1vZGVsQ29uZmlnLmNvbXByZXNzTW9kZWw7XHJcbiAgICAgICAgICBzLm1hc2subW9kZWxDb25maWcuY29tcHJlc3NQcm92aWRlck5hbWUgPVxyXG4gICAgICAgICAgICBjb25maWcubW9kZWxDb25maWcuY29tcHJlc3NQcm92aWRlck5hbWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgLy8gcmV2ZXJ0IGRlZmF1bHQgc3VtbWFyaXplIG1vZGVsIGZvciBldmVyeSBzZXNzaW9uXHJcbiAgICAgIGlmICh2ZXJzaW9uIDwgMy4zKSB7XHJcbiAgICAgICAgbmV3U3RhdGUuc2Vzc2lvbnMuZm9yRWFjaCgocykgPT4ge1xyXG4gICAgICAgICAgY29uc3QgY29uZmlnID0gdXNlQXBwQ29uZmlnLmdldFN0YXRlKCk7XHJcbiAgICAgICAgICBzLm1hc2subW9kZWxDb25maWcuY29tcHJlc3NNb2RlbCA9IFwiXCI7XHJcbiAgICAgICAgICBzLm1hc2subW9kZWxDb25maWcuY29tcHJlc3NQcm92aWRlck5hbWUgPSBcIlwiO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gbmV3U3RhdGUgYXMgYW55O1xyXG4gICAgfSxcclxuICB9LFxyXG4pO1xyXG4iXSwibmFtZXMiOlsiZ2V0TWVzc2FnZVRleHRDb250ZW50IiwiaXNEYWxsZTMiLCJzYWZlTG9jYWxTdG9yYWdlIiwidHJpbVRvcGljIiwiaW5kZXhlZERCU3RvcmFnZSIsIm5hbm9pZCIsImdldENsaWVudEFwaSIsIkNoYXRDb250cm9sbGVyUG9vbCIsInNob3dUb2FzdCIsIkRFRkFVTFRfSU5QVVRfVEVNUExBVEUiLCJERUZBVUxUX01PREVMUyIsIkRFRkFVTFRfU1lTVEVNX1RFTVBMQVRFIiwiR0VNSU5JX1NVTU1BUklaRV9NT0RFTCIsIkRFRVBTRUVLX1NVTU1BUklaRV9NT0RFTCIsIktub3dsZWRnZUN1dE9mZkRhdGUiLCJNQ1BfU1lTVEVNX1RFTVBMQVRFIiwiTUNQX1RPT0xTX1RFTVBMQVRFIiwiU2VydmljZVByb3ZpZGVyIiwiU3RvcmVLZXkiLCJTVU1NQVJJWkVfTU9ERUwiLCJMb2NhbGUiLCJnZXRMYW5nIiwicHJldHR5T2JqZWN0IiwiY3JlYXRlUGVyc2lzdFN0b3JlIiwiZXN0aW1hdGVUb2tlbkxlbmd0aCIsInVzZUFwcENvbmZpZyIsInVzZUFjY2Vzc1N0b3JlIiwiY29sbGVjdE1vZGVsc1dpdGhEZWZhdWx0TW9kZWwiLCJjcmVhdGVFbXB0eU1hc2siLCJleGVjdXRlTWNwQWN0aW9uIiwiZ2V0QWxsVG9vbHMiLCJpc01jcEVuYWJsZWQiLCJleHRyYWN0TWNwSnNvbiIsImlzTWNwSnNvbiIsImxvY2FsU3RvcmFnZSIsImNyZWF0ZU1lc3NhZ2UiLCJvdmVycmlkZSIsImlkIiwiZGF0ZSIsIkRhdGUiLCJ0b0xvY2FsZVN0cmluZyIsInJvbGUiLCJjb250ZW50IiwiREVGQVVMVF9UT1BJQyIsIlN0b3JlIiwiRGVmYXVsdFRvcGljIiwiQk9UX0hFTExPIiwiQm90SGVsbG8iLCJjcmVhdGVFbXB0eVNlc3Npb24iLCJ0b3BpYyIsIm1lbW9yeVByb21wdCIsIm1lc3NhZ2VzIiwic3RhdCIsInRva2VuQ291bnQiLCJ3b3JkQ291bnQiLCJjaGFyQ291bnQiLCJsYXN0VXBkYXRlIiwibm93IiwibGFzdFN1bW1hcml6ZUluZGV4IiwibWFzayIsImdldFN1bW1hcml6ZU1vZGVsIiwiY3VycmVudE1vZGVsIiwicHJvdmlkZXJOYW1lIiwic3RhcnRzV2l0aCIsImNvbmZpZ1N0b3JlIiwiZ2V0U3RhdGUiLCJhY2Nlc3NTdG9yZSIsImFsbE1vZGVsIiwibW9kZWxzIiwiY3VzdG9tTW9kZWxzIiwiam9pbiIsImRlZmF1bHRNb2RlbCIsInN1bW1hcml6ZU1vZGVsIiwiZmluZCIsIm0iLCJuYW1lIiwiYXZhaWxhYmxlIiwicHJvdmlkZXIiLCJHb29nbGUiLCJEZWVwU2VlayIsImNvdW50TWVzc2FnZXMiLCJtc2dzIiwicmVkdWNlIiwicHJlIiwiY3VyIiwiZmlsbFRlbXBsYXRlV2l0aCIsImlucHV0IiwibW9kZWxDb25maWciLCJjdXRvZmYiLCJtb2RlbCIsImRlZmF1bHQiLCJtb2RlbEluZm8iLCJzZXJ2aWNlUHJvdmlkZXIiLCJ2YXJzIiwidGltZSIsInRvU3RyaW5nIiwibGFuZyIsIm91dHB1dCIsInRlbXBsYXRlIiwiaW5wdXRWYXIiLCJpbmNsdWRlcyIsIk9iamVjdCIsImVudHJpZXMiLCJmb3JFYWNoIiwidmFsdWUiLCJyZWdleCIsIlJlZ0V4cCIsInJlcGxhY2UiLCJnZXRNY3BTeXN0ZW1Qcm9tcHQiLCJ0b29scyIsInRvb2xzU3RyIiwiaSIsImNsaWVudElkIiwibWFwIiwicCIsIkpTT04iLCJzdHJpbmdpZnkiLCJERUZBVUxUX0NIQVRfU1RBVEUiLCJzZXNzaW9ucyIsImN1cnJlbnRTZXNzaW9uSW5kZXgiLCJsYXN0SW5wdXQiLCJ1c2VDaGF0U3RvcmUiLCJzZXQiLCJfZ2V0IiwiZ2V0IiwibWV0aG9kcyIsImZvcmtTZXNzaW9uIiwiY3VycmVudFNlc3Npb24iLCJuZXdTZXNzaW9uIiwibXNnIiwic3RhdGUiLCJjbGVhclNlc3Npb25zIiwic2VsZWN0U2Vzc2lvbiIsImluZGV4IiwibW92ZVNlc3Npb24iLCJmcm9tIiwidG8iLCJvbGRJbmRleCIsIm5ld1Nlc3Npb25zIiwic2Vzc2lvbiIsInNwbGljZSIsIm5ld0luZGV4IiwiY29uZmlnIiwiZ2xvYmFsTW9kZWxDb25maWciLCJjb25jYXQiLCJuZXh0U2Vzc2lvbiIsImRlbHRhIiwibiIsImxlbmd0aCIsImxpbWl0IiwieCIsImRlbGV0ZVNlc3Npb24iLCJkZWxldGluZ0xhc3RTZXNzaW9uIiwiZGVsZXRlZFNlc3Npb24iLCJhdCIsInNsaWNlIiwiY3VycmVudEluZGV4IiwibmV4dEluZGV4IiwiTWF0aCIsIm1pbiIsIk51bWJlciIsInB1c2giLCJyZXN0b3JlU3RhdGUiLCJIb21lIiwiRGVsZXRlVG9hc3QiLCJ0ZXh0IiwiUmV2ZXJ0Iiwib25DbGljayIsIm1heCIsIm9uTmV3TWVzc2FnZSIsIm1lc3NhZ2UiLCJ0YXJnZXRTZXNzaW9uIiwidXBkYXRlVGFyZ2V0U2Vzc2lvbiIsInVwZGF0ZVN0YXQiLCJjaGVja01jcEpzb24iLCJzdW1tYXJpemVTZXNzaW9uIiwib25Vc2VySW5wdXQiLCJhdHRhY2hJbWFnZXMiLCJpc01jcFJlc3BvbnNlIiwibUNvbnRlbnQiLCJ0eXBlIiwidXJsIiwiaW1hZ2VfdXJsIiwidXNlck1lc3NhZ2UiLCJib3RNZXNzYWdlIiwic3RyZWFtaW5nIiwicmVjZW50TWVzc2FnZXMiLCJnZXRNZXNzYWdlc1dpdGhNZW1vcnkiLCJzZW5kTWVzc2FnZXMiLCJtZXNzYWdlSW5kZXgiLCJzYXZlZFVzZXJNZXNzYWdlIiwiYXBpIiwibGxtIiwiY2hhdCIsInN0cmVhbSIsIm9uVXBkYXRlIiwib25GaW5pc2giLCJyZW1vdmUiLCJvbkJlZm9yZVRvb2wiLCJ0b29sIiwib25BZnRlclRvb2wiLCJ0Iiwib25FcnJvciIsImVycm9yIiwiaXNBYm9ydGVkIiwiaXNFcnJvciIsImNvbnNvbGUiLCJvbkNvbnRyb2xsZXIiLCJjb250cm9sbGVyIiwiYWRkQ29udHJvbGxlciIsImdldE1lbW9yeVByb21wdCIsIlByb21wdCIsIkhpc3RvcnkiLCJjbGVhckNvbnRleHRJbmRleCIsInRvdGFsTWVzc2FnZUNvdW50IiwiY29udGV4dFByb21wdHMiLCJjb250ZXh0Iiwic2hvdWxkSW5qZWN0U3lzdGVtUHJvbXB0cyIsImVuYWJsZUluamVjdFN5c3RlbVByb21wdHMiLCJtY3BFbmFibGVkIiwibWNwU3lzdGVtUHJvbXB0Iiwic3lzdGVtUHJvbXB0cyIsImxvZyIsInNob3VsZFNlbmRMb25nVGVybU1lbW9yeSIsInNlbmRNZW1vcnkiLCJsb25nVGVybU1lbW9yeVByb21wdHMiLCJsb25nVGVybU1lbW9yeVN0YXJ0SW5kZXgiLCJzaG9ydFRlcm1NZW1vcnlTdGFydEluZGV4IiwiaGlzdG9yeU1lc3NhZ2VDb3VudCIsIm1lbW9yeVN0YXJ0SW5kZXgiLCJjb250ZXh0U3RhcnRJbmRleCIsIm1heFRva2VuVGhyZXNob2xkIiwibWF4X3Rva2VucyIsInJldmVyc2VkUmVjZW50TWVzc2FnZXMiLCJyZXZlcnNlIiwidXBkYXRlTWVzc2FnZSIsInNlc3Npb25JbmRleCIsInVwZGF0ZXIiLCJyZXNldFNlc3Npb24iLCJyZWZyZXNoVGl0bGUiLCJjb21wcmVzc01vZGVsIiwiY29tcHJlc3NQcm92aWRlck5hbWUiLCJTVU1NQVJJWkVfTUlOX0xFTiIsImVuYWJsZUF1dG9HZW5lcmF0ZVRpdGxlIiwic3RhcnRJbmRleCIsInRvcGljTWVzc2FnZXMiLCJUb3BpYyIsInJlc3BvbnNlUmVzIiwic3RhdHVzIiwic3VtbWFyaXplSW5kZXgiLCJ0b0JlU3VtbWFyaXplZE1zZ3MiLCJmaWx0ZXIiLCJoaXN0b3J5TXNnTGVuZ3RoIiwidW5zaGlmdCIsImNvbXByZXNzTWVzc2FnZUxlbmd0aFRocmVzaG9sZCIsIm1vZGVsY2ZnIiwiU3VtbWFyaXplIiwiZXJyIiwiZmluZEluZGV4IiwicyIsImNsZWFyQWxsRGF0YSIsImNsZWFyIiwibG9jYXRpb24iLCJyZWxvYWQiLCJzZXRMYXN0SW5wdXQiLCJtY3BSZXF1ZXN0IiwiZGVidWciLCJtY3AiLCJ0aGVuIiwicmVzdWx0IiwibWNwUmVzcG9uc2UiLCJTdHJpbmciLCJjYXRjaCIsIkNoYXQiLCJ2ZXJzaW9uIiwibWlncmF0ZSIsInBlcnNpc3RlZFN0YXRlIiwibmV3U3RhdGUiLCJwYXJzZSIsIm9sZFNlc3Npb25zIiwib2xkU2Vzc2lvbiIsImhhc093blByb3BlcnR5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/store/chat.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/store/config.ts":
|
|
|
/*!*****************************!*\
|
|
|
!*** ./app/store/config.ts ***!
|
|
|
\*****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DEFAULT_CONFIG: () => (/* binding */ DEFAULT_CONFIG),\n/* harmony export */ ModalConfigValidator: () => (/* binding */ ModalConfigValidator),\n/* harmony export */ SubmitKey: () => (/* binding */ SubmitKey),\n/* harmony export */ TTSConfigValidator: () => (/* binding */ TTSConfigValidator),\n/* harmony export */ Theme: () => (/* binding */ Theme),\n/* harmony export */ limitNumber: () => (/* binding */ limitNumber),\n/* harmony export */ useAppConfig: () => (/* binding */ useAppConfig)\n/* harmony export */ });\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _utils_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/store */ \"(ssr)/./app/utils/store.ts\");\n\n\n\nvar SubmitKey;\n(function(SubmitKey) {\n SubmitKey[\"Enter\"] = \"Enter\";\n SubmitKey[\"CtrlEnter\"] = \"Ctrl + Enter\";\n SubmitKey[\"ShiftEnter\"] = \"Shift + Enter\";\n SubmitKey[\"AltEnter\"] = \"Alt + Enter\";\n SubmitKey[\"MetaEnter\"] = \"Meta + Enter\";\n})(SubmitKey || (SubmitKey = {}));\nvar Theme;\n(function(Theme) {\n Theme[\"Auto\"] = \"auto\";\n Theme[\"Dark\"] = \"dark\";\n Theme[\"Light\"] = \"light\";\n})(Theme || (Theme = {}));\nconst config = (0,_config_client__WEBPACK_IMPORTED_MODULE_0__.getClientConfig)();\nconst DEFAULT_CONFIG = {\n lastUpdate: Date.now(),\n submitKey: \"Enter\",\n avatar: \"1f603\",\n fontSize: 14,\n fontFamily: \"\",\n theme: \"auto\",\n tightBorder: !!config?.isApp,\n sendPreviewBubble: true,\n enableAutoGenerateTitle: true,\n sidebarWidth: _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_SIDEBAR_WIDTH,\n enableArtifacts: true,\n enableCodeFold: true,\n disablePromptHint: true,\n dontShowMaskSplashScreen: true,\n hideBuiltinMasks: false,\n customModels: \"\",\n models: _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_MODELS,\n modelConfig: {\n model: \"deepseek-ai/DeepSeek-V3\",\n providerName: \"SiliconFlow\",\n temperature: 0.5,\n top_p: 1,\n max_tokens: 4000,\n presence_penalty: 0,\n frequency_penalty: 0,\n sendMemory: true,\n historyMessageCount: 4,\n compressMessageLengthThreshold: 1000,\n compressModel: \"deepseek-ai/DeepSeek-V3\",\n compressProviderName: \"SiliconFlow\",\n enableInjectSystemPrompts: false,\n template: config?.template ?? _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_INPUT_TEMPLATE,\n size: \"1024x1024\",\n quality: \"standard\",\n style: \"vivid\"\n },\n ttsConfig: {\n enable: false,\n autoplay: false,\n engine: _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_TTS_ENGINE,\n model: _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_TTS_MODEL,\n voice: _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_TTS_VOICE,\n speed: 1.0\n },\n realtimeConfig: {\n enable: false,\n provider: \"SiliconFlow\",\n model: \"gpt-4o-realtime-preview-2024-10-01\",\n apiKey: \"\",\n azure: {\n endpoint: \"\",\n deployment: \"\"\n },\n temperature: 0.9,\n voice: \"alloy\"\n }\n};\nfunction limitNumber(x, min, max, defaultValue) {\n if (isNaN(x)) {\n return defaultValue;\n }\n return Math.min(max, Math.max(min, x));\n}\nconst TTSConfigValidator = {\n engine (x) {\n return x;\n },\n model (x) {\n return x;\n },\n voice (x) {\n return x;\n },\n speed (x) {\n return limitNumber(x, 0.25, 4.0, 1.0);\n }\n};\nconst ModalConfigValidator = {\n model (x) {\n return x;\n },\n max_tokens (x) {\n return limitNumber(x, 0, 512000, 1024);\n },\n presence_penalty (x) {\n return limitNumber(x, -2, 2, 0);\n },\n frequency_penalty (x) {\n return limitNumber(x, -2, 2, 0);\n },\n temperature (x) {\n return limitNumber(x, 0, 2, 1);\n },\n top_p (x) {\n return limitNumber(x, 0, 1, 1);\n }\n};\nconst useAppConfig = (0,_utils_store__WEBPACK_IMPORTED_MODULE_2__.createPersistStore)({\n ...DEFAULT_CONFIG\n}, (set, get)=>({\n reset () {\n set(()=>({\n ...DEFAULT_CONFIG\n }));\n },\n mergeModels (newModels) {\n if (!newModels || newModels.length === 0) {\n return;\n }\n const oldModels = get().models;\n const modelMap = {};\n for (const model of oldModels){\n model.available = false;\n modelMap[`${model.name}@${model?.provider?.id}`] = model;\n }\n for (const model of newModels){\n model.available = true;\n modelMap[`${model.name}@${model?.provider?.id}`] = model;\n }\n set(()=>({\n models: Object.values(modelMap)\n }));\n },\n allModels () {}\n }), {\n name: _constant__WEBPACK_IMPORTED_MODULE_1__.StoreKey.Config,\n version: 4.1,\n merge (persistedState, currentState) {\n const state = persistedState;\n if (!state) return {\n ...currentState\n };\n const models = currentState.models.slice();\n state.models.forEach((pModel)=>{\n const idx = models.findIndex((v)=>v.name === pModel.name && v.provider === pModel.provider);\n if (idx !== -1) models[idx] = pModel;\n else models.push(pModel);\n });\n return {\n ...currentState,\n ...state,\n models: models\n };\n },\n migrate (persistedState, version) {\n const state = persistedState;\n if (version < 3.4) {\n state.modelConfig.sendMemory = true;\n state.modelConfig.historyMessageCount = 4;\n state.modelConfig.compressMessageLengthThreshold = 1000;\n state.modelConfig.frequency_penalty = 0;\n state.modelConfig.top_p = 1;\n state.modelConfig.template = _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_INPUT_TEMPLATE;\n state.dontShowMaskSplashScreen = true;\n state.hideBuiltinMasks = false;\n }\n if (version < 3.5) {\n state.customModels = \"claude,claude-100k\";\n }\n if (version < 3.6) {\n state.modelConfig.enableInjectSystemPrompts = true;\n }\n if (version < 3.7) {\n state.enableAutoGenerateTitle = true;\n }\n if (version < 3.8) {\n state.lastUpdate = Date.now();\n }\n if (version < 3.9) {\n state.modelConfig.template = state.modelConfig.template !== _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_INPUT_TEMPLATE ? state.modelConfig.template : config?.template ?? _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_INPUT_TEMPLATE;\n }\n if (version < 4.1) {\n state.modelConfig.compressModel = DEFAULT_CONFIG.modelConfig.compressModel;\n state.modelConfig.compressProviderName = DEFAULT_CONFIG.modelConfig.compressProviderName;\n }\n return state;\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0FBQ1csYUFBYSxHQUM3QmhDLGVBQWVxQixXQUFXLENBQUNXLGFBQWE7WUFDMUNnRCxNQUFNM0QsV0FBVyxDQUFDWSxvQkFBb0IsR0FDcENqQyxlQUFlcUIsV0FBVyxDQUFDWSxvQkFBb0I7UUFDbkQ7UUFFQSxPQUFPK0M7SUFDVDtBQUNGLEdBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9zdG9yZS9jb25maWcudHM/OWYzMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMTE1Nb2RlbCB9IGZyb20gXCIuLi9jbGllbnQvYXBpXCI7XHJcbmltcG9ydCB7IERhbGxlUXVhbGl0eSwgRGFsbGVTdHlsZSwgTW9kZWxTaXplIH0gZnJvbSBcIi4uL3R5cGluZ1wiO1xyXG5pbXBvcnQgeyBnZXRDbGllbnRDb25maWcgfSBmcm9tIFwiLi4vY29uZmlnL2NsaWVudFwiO1xyXG5pbXBvcnQge1xyXG4gIERFRkFVTFRfSU5QVVRfVEVNUExBVEUsXHJcbiAgREVGQVVMVF9NT0RFTFMsXHJcbiAgREVGQVVMVF9TSURFQkFSX1dJRFRILFxyXG4gIERFRkFVTFRfVFRTX0VOR0lORSxcclxuICBERUZBVUxUX1RUU19FTkdJTkVTLFxyXG4gIERFRkFVTFRfVFRTX01PREVMLFxyXG4gIERFRkFVTFRfVFRTX01PREVMUyxcclxuICBERUZBVUxUX1RUU19WT0lDRSxcclxuICBERUZBVUxUX1RUU19WT0lDRVMsXHJcbiAgU3RvcmVLZXksXHJcbiAgU2VydmljZVByb3ZpZGVyLFxyXG59IGZyb20gXCIuLi9jb25zdGFudFwiO1xyXG5pbXBvcnQgeyBjcmVhdGVQZXJzaXN0U3RvcmUgfSBmcm9tIFwiLi4vdXRpbHMvc3RvcmVcIjtcclxuaW1wb3J0IHR5cGUgeyBWb2ljZSB9IGZyb20gXCJydC1jbGllbnRcIjtcclxuXHJcbmV4cG9ydCB0eXBlIE1vZGVsVHlwZSA9ICh0eXBlb2YgREVGQVVMVF9NT0RFTFMpW251bWJlcl1bXCJuYW1lXCJdO1xyXG5leHBvcnQgdHlwZSBUVFNNb2RlbFR5cGUgPSAodHlwZW9mIERFRkFVTFRfVFRTX01PREVMUylbbnVtYmVyXTtcclxuZXhwb3J0IHR5cGUgVFRTVm9pY2VUeXBlID0gKHR5cGVvZiBERUZBVUxUX1RUU19WT0lDRVMpW251bWJlcl07XHJcbmV4cG9ydCB0eXBlIFRUU0VuZ2luZVR5cGUgPSAodHlwZW9mIERFRkFVTFRfVFRTX0VOR0lORVMpW251bWJlcl07XHJcblxyXG5leHBvcnQgZW51bSBTdWJtaXRLZXkge1xyXG4gIEVudGVyID0gXCJFbnRlclwiLFxyXG4gIEN0cmxFbnRlciA9IFwiQ3RybCArIEVudGVyXCIsXHJcbiAgU2hpZnRFbnRlciA9IFwiU2hpZnQgKyBFbnRlclwiLFxyXG4gIEFsdEVudGVyID0gXCJBbHQgKyBFbnRlclwiLFxyXG4gIE1ldGFFbnRlciA9IFwiTWV0YSArIEVudGVyXCIsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFRoZW1lIHtcclxuICBBdXRvID0gXCJhdXRvXCIsXHJcbiAgRGFyayA9IFwiZGFya1wiLFxyXG4gIExpZ2h0ID0gXCJsaWdodFwiLFxyXG59XHJcblxyXG5jb25zdCBjb25maWcgPSBnZXRDbGllbnRDb25maWcoKTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTkZJRyA9IHtcclxuICBsYXN0VXBkYXRlOiBEYXRlLm5vdygpLCAvLyB0aW1lc3RhbXAsIHRvIG1lcmdlIHN0YXRlXHJcblxyXG4gIHN1Ym1pdEtleTogU3VibWl0S2V5LkVudGVyLFxyXG4gIGF2YXRhcjogXCIxZjYwM1wiLFxyXG4gIGZvbnRTaXplOiAxNCxcclxuICBmb250RmFtaWx5OiBcIlwiLFxyXG4gIHRoZW1lOiBUaGVtZS5BdXRvIGFzIFRoZW1lLFxyXG4gIHRpZ2h0Qm9yZGVyOiAhIWNvbmZpZz8uaXNBcHAsXHJcbiAgc2VuZFByZXZpZXdCdWJibGU6IHRydWUsXHJcbiAgZW5hYmxlQXV0b0dlbmVyYXRlVGl0bGU6IHRydWUsXHJcbiAgc2lkZWJhcldpZHRoOiBERUZBVUxUX1NJREVCQVJfV0lEVEgsXHJcblxyXG4gIGVuYWJsZUFydGlmYWN0czogdHJ1ZSwgLy8gc2hvdyBhcnRpZmFjdHMgY29uZmlnXHJcblxyXG4gIGVuYWJsZUNvZGVGb2xkOiB0cnVlLCAvLyBjb2RlIGZvbGQgY29uZmlnXHJcblxyXG4gIGRpc2FibGVQcm9tcHRIaW50OiB0cnVlLFxyXG5cclxuICBkb250U2hvd01hc2tTcGxhc2hTY3JlZW46IHRydWUsIC8vIGRvbnQgc2hvdyBzcGxhc2ggc2NyZWVuIHdoZW4gY3JlYXRlIGNoYXRcclxuICBoaWRlQnVpbHRpbk1hc2tzOiBmYWxzZSwgLy8gZG9udCBhZGQgYnVpbHRpbiBtYXNrc1xyXG5cclxuICBjdXN0b21Nb2RlbHM6IFwiXCIsXHJcbiAgbW9kZWxzOiBERUZBVUxUX01PREVMUyBhcyBhbnkgYXMgTExNTW9kZWxbXSxcclxuXHJcbiAgbW9kZWxDb25maWc6IHtcclxuICAgIG1vZGVsOiBcImRlZXBzZWVrLWFpL0RlZXBTZWVrLVYzXCIgYXMgTW9kZWxUeXBlLFxyXG4gICAgcHJvdmlkZXJOYW1lOiBcIlNpbGljb25GbG93XCIgYXMgU2VydmljZVByb3ZpZGVyLFxyXG4gICAgdGVtcGVyYXR1cmU6IDAuNSxcclxuICAgIHRvcF9wOiAxLFxyXG4gICAgbWF4X3Rva2VuczogNDAwMCxcclxuICAgIHByZXNlbmNlX3BlbmFsdHk6IDAsXHJcbiAgICBmcmVxdWVuY3lfcGVuYWx0eTogMCxcclxuICAgIHNlbmRNZW1vcnk6IHRydWUsXHJcbiAgICBoaXN0b3J5TWVzc2FnZUNvdW50OiA0LFxyXG4gICAgY29tcHJlc3NNZXNzYWdlTGVuZ3RoVGhyZXNob2xkOiAxMDAwLFxyXG4gICAgY29tcHJlc3NNb2RlbDogXCJkZWVwc2Vlay1haS9EZWVwU2Vlay1WM1wiLFxyXG4gICAgY29tcHJlc3NQcm92aWRlck5hbWU6IFwiU2lsaWNvbkZsb3dcIiBhcyBTZXJ2aWNlUHJvdmlkZXIsXHJcbiAgICBlbmFibGVJbmplY3RTeXN0ZW1Qcm9tcHRzOiBmYWxzZSxcclxuICAgIHRlbXBsYXRlOiBjb25maWc/LnRlbXBsYXRlID8/IERFRkFVTFRfSU5QVVRfVEVNUExBVEUsXHJcbiAgICBzaXplOiBcIjEwMjR4MTAyNFwiIGFzIE1vZGVsU2l6ZSxcclxuICAgIHF1YWxpdHk6IFwic3RhbmRhcmRcIiBhcyBEYWxsZVF1YWxpdHksXHJcbiAgICBzdHlsZTogXCJ2aXZpZFwiIGFzIERhbGxlU3R5bGUsXHJcbiAgfSxcclxuXHJcbiAgdHRzQ29uZmlnOiB7XHJcbiAgICBlbmFibGU6IGZhbHNlLFxyXG4gICAgYXV0b3BsYXk6IGZhbHNlLFxyXG4gICAgZW5naW5lOiBERUZBVUxUX1RUU19FTkdJTkUsXHJcbiAgICBtb2RlbDogREVGQVVMVF9UVFNfTU9ERUwsXHJcbiAgICB2b2ljZTogREVGQVVMVF9UVFNfVk9JQ0UsXHJcbiAgICBzcGVlZDogMS4wLFxyXG4gIH0sXHJcblxyXG4gIHJlYWx0aW1lQ29uZmlnOiB7XHJcbiAgICBlbmFibGU6IGZhbHNlLFxyXG4gICAgcHJvdmlkZXI6IFwiU2lsaWNvbkZsb3dcIiBhcyBTZXJ2aWNlUHJvdmlkZXIsXHJcbiAgICBtb2RlbDogXCJncHQtNG8tcmVhbHRpbWUtcHJldmlldy0yMDI0LTEwLTAxXCIsXHJcbiAgICBhcGlLZXk6IFwiXCIsXHJcbiAgICBhenVyZToge1xyXG4gICAgICBlbmRwb2ludDogXCJcIixcclxuICAgICAgZGVwbG95bWVudDogXCJcIixcclxuICAgIH0sXHJcbiAgICB0ZW1wZXJhdHVyZTogMC45LFxyXG4gICAgdm9pY2U6IFwiYWxsb3lcIiBhcyBWb2ljZSxcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgQ2hhdENvbmZpZyA9IHR5cGVvZiBERUZBVUxUX0NPTkZJRztcclxuXHJcbmV4cG9ydCB0eXBlIE1vZGVsQ29uZmlnID0gQ2hhdENvbmZpZ1tcIm1vZGVsQ29uZmlnXCJdO1xyXG5leHBvcnQgdHlwZSBUVFNDb25maWcgPSBDaGF0Q29uZmlnW1widHRzQ29uZmlnXCJdO1xyXG5leHBvcnQgdHlwZSBSZWFsdGltZUNvbmZpZyA9IENoYXRDb25maWdbXCJyZWFsdGltZUNvbmZpZ1wiXTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsaW1pdE51bWJlcihcclxuICB4OiBudW1iZXIsXHJcbiAgbWluOiBudW1iZXIsXHJcbiAgbWF4OiBudW1iZXIsXHJcbiAgZGVmYXVsdFZhbHVlOiBudW1iZXIsXHJcbikge1xyXG4gIGlmIChpc05hTih4KSkge1xyXG4gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHJldHVybiBNYXRoLm1pbihtYXgsIE1hdGgubWF4KG1pbiwgeCkpO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgVFRTQ29uZmlnVmFsaWRhdG9yID0ge1xyXG4gIGVuZ2luZSh4OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB4IGFzIFRUU0VuZ2luZVR5cGU7XHJcbiAgfSxcclxuICBtb2RlbCh4OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB4IGFzIFRUU01vZGVsVHlwZTtcclxuICB9LFxyXG4gIHZvaWNlKHg6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHggYXMgVFRTVm9pY2VUeXBlO1xyXG4gIH0sXHJcbiAgc3BlZWQoeDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gbGltaXROdW1iZXIoeCwgMC4yNSwgNC4wLCAxLjApO1xyXG4gIH0sXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgTW9kYWxDb25maWdWYWxpZGF0b3IgPSB7XHJcbiAgbW9kZWwoeDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4geCBhcyBNb2RlbFR5cGU7XHJcbiAgfSxcclxuICBtYXhfdG9rZW5zKHg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIGxpbWl0TnVtYmVyKHgsIDAsIDUxMjAwMCwgMTAyNCk7XHJcbiAgfSxcclxuICBwcmVzZW5jZV9wZW5hbHR5KHg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIGxpbWl0TnVtYmVyKHgsIC0yLCAyLCAwKTtcclxuICB9LFxyXG4gIGZyZXF1ZW5jeV9wZW5hbHR5KHg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIGxpbWl0TnVtYmVyKHgsIC0yLCAyLCAwKTtcclxuICB9LFxyXG4gIHRlbXBlcmF0dXJlKHg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIGxpbWl0TnVtYmVyKHgsIDAsIDIsIDEpO1xyXG4gIH0sXHJcbiAgdG9wX3AoeDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gbGltaXROdW1iZXIoeCwgMCwgMSwgMSk7XHJcbiAgfSxcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCB1c2VBcHBDb25maWcgPSBjcmVhdGVQZXJzaXN0U3RvcmUoXHJcbiAgeyAuLi5ERUZBVUxUX0NPTkZJRyB9LFxyXG4gIChzZXQsIGdldCkgPT4gKHtcclxuICAgIHJlc2V0KCkge1xyXG4gICAgICBzZXQoKCkgPT4gKHsgLi4uREVGQVVMVF9DT05GSUcgfSkpO1xyXG4gICAgfSxcclxuXHJcbiAgICBtZXJnZU1vZGVscyhuZXdNb2RlbHM6IExMTU1vZGVsW10pIHtcclxuICAgICAgaWYgKCFuZXdNb2RlbHMgfHwgbmV3TW9kZWxzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3Qgb2xkTW9kZWxzID0gZ2V0KCkubW9kZWxzO1xyXG4gICAgICBjb25zdCBtb2RlbE1hcDogUmVjb3JkPHN0cmluZywgTExNTW9kZWw+ID0ge307XHJcblxyXG4gICAgICBmb3IgKGNvbnN0IG1vZGVsIG9mIG9sZE1vZGVscykge1xyXG4gICAgICAgIG1vZGVsLmF2YWlsYWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIG1vZGVsTWFwW2Ake21vZGVsLm5hbWV9QCR7bW9kZWw/LnByb3ZpZGVyPy5pZH1gXSA9IG1vZGVsO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb3IgKGNvbnN0IG1vZGVsIG9mIG5ld01vZGVscykge1xyXG4gICAgICAgIG1vZGVsLmF2YWlsYWJsZSA9IHRydWU7XHJcbiAgICAgICAgbW9kZWxNYXBbYCR7bW9kZWwubmFtZX1AJHttb2RlbD8ucHJvdmlkZXI/LmlkfWBdID0gbW9kZWw7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHNldCgoKSA9PiAoe1xyXG4gICAgICAgIG1vZGVsczogT2JqZWN0LnZhbHVlcyhtb2RlbE1hcCksXHJcbiAgICAgIH0pKTtcclxuICAgIH0sXHJcblxyXG4gICAgYWxsTW9kZWxzKCkge30sXHJcbiAgfSksXHJcbiAge1xyXG4gICAgbmFtZTogU3RvcmVLZXkuQ29uZmlnLFxyXG4gICAgdmVyc2lvbjogNC4xLFxyXG5cclxuICAgIG1lcmdlKHBlcnNpc3RlZFN0YXRlLCBjdXJyZW50U3RhdGUpIHtcclxuICAgICAgY29uc3Qgc3RhdGUgPSBwZXJzaXN0ZWRTdGF0ZSBhcyBDaGF0Q29uZmlnIHwgdW5kZWZpbmVkO1xyXG4gICAgICBpZiAoIXN0YXRlKSByZXR1cm4geyAuLi5jdXJyZW50U3RhdGUgfTtcclxuICAgICAgY29uc3QgbW9kZWxzID0gY3VycmVudFN0YXRlLm1vZGVscy5zbGljZSgpO1xyXG4gICAgICBzdGF0ZS5tb2RlbHMuZm9yRWFjaCgocE1vZGVsKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaWR4ID0gbW9kZWxzLmZpbmRJbmRleChcclxuICAgICAgICAgICh2KSA9PiB2Lm5hbWUgPT09IHBNb2RlbC5uYW1lICYmIHYucHJvdmlkZXIgPT09IHBNb2RlbC5wcm92aWRlcixcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpZHggIT09IC0xKSBtb2RlbHNbaWR4XSA9IHBNb2RlbDtcclxuICAgICAgICBlbHNlIG1vZGVscy5wdXNoKHBNb2RlbCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4geyAuLi5jdXJyZW50U3RhdGUsIC4uLnN0YXRlLCBtb2RlbHM6IG1vZGVscyB9O1xyXG4gICAgfSxcclxuXHJcbiAgICBtaWdyYXRlKHBlcnNpc3RlZFN0YXRlLCB2ZXJzaW9uKSB7XHJcbiAgICAgIGNvbnN0IHN0YXRlID0gcGVyc2lzdGVkU3RhdGUgYXMgQ2hhdENvbmZpZztcclxuXHJcbiAgICAgIGlmICh2ZXJzaW9uIDwgMy40KSB7XHJcbiAgICAgICAgc3RhdGUubW9kZWxDb25maWcuc2VuZE1lbW9yeSA9IHRydWU7XHJcbiAgICAgICAgc3RhdGUubW9kZWxDb25maWcuaGlzdG9yeU1lc3NhZ2VDb3VudCA9IDQ7XHJcbiAgICAgICAgc3RhdGUubW9kZWxDb25maWcuY29tcHJlc3NNZXNzYWdlTGVuZ3RoVGhyZXNob2xkID0gMTAwMDtcclxuICAgICAgICBzdGF0ZS5tb2RlbENvbmZpZy5mcmVxdWVuY3lfcGVuYWx0eSA9IDA7XHJcbiAgICAgICAgc3RhdGUubW9kZWxDb25maWcudG9wX3AgPSAxO1xyXG4gICAgICAgIHN0YXRlLm1vZGVsQ29uZmlnLnRlbXBsYXRlID0gREVGQVVMVF9JTlBVVF9URU1QTEFURTtcclxuICAgICAgICBzdGF0ZS5kb250U2hvd01hc2tTcGxhc2hTY3JlZW4gPSB0cnVlO1xyXG4gICAgICAgIHN0YXRlLmhpZGVCdWlsdGluTWFza3MgPSBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHZlcnNpb24gPCAzLjUpIHtcclxuICAgICAgICBzdGF0ZS5jdXN0b21Nb2RlbHMgPSBcImNsYXVkZSxjbGF1ZGUtMTAwa1wiO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodmVyc2lvbiA8IDMuNikge1xyXG4gICAgICAgIHN0YXRlLm1vZGVsQ29uZmlnLmVuYWJsZUluamVjdFN5c3RlbVByb21wdHMgPSB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodmVyc2lvbiA8IDMuNykge1xyXG4gICAgICAgIHN0YXRlLmVuYWJsZUF1dG9HZW5lcmF0ZVRpdGxlID0gdHJ1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHZlcnNpb24gPCAzLjgpIHtcclxuICAgICAgICBzdGF0ZS5sYXN0VXBkYXRlID0gRGF0ZS5ub3coKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHZlcnNpb24gPCAzLjkpIHtcclxuICAgICAgICBzdGF0ZS5tb2RlbENvbmZpZy50ZW1wbGF0ZSA9XHJcbiAgICAgICAgICBzdGF0ZS5tb2RlbENvbmZpZy50ZW1wbGF0ZSAhPT0gREVGQVVMVF9JTlBVVF9URU1QTEFURVxyXG4gICAgICAgICAgICA/IHN0YXRlLm1vZGVsQ29uZmlnLnRlbXBsYXRlXHJcbiAgICAgICAgICAgIDogY29uZmlnPy50ZW1wbGF0ZSA/PyBERUZBVUxUX0lOUFVUX1RFTVBMQVRFO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodmVyc2lvbiA8IDQuMSkge1xyXG4gICAgICAgIHN0YXRlLm1vZGVsQ29uZmlnLmNvbXByZXNzTW9kZWwgPVxyXG4gICAgICAgICAgREVGQVVMVF9DT05GSUcubW9kZWxDb25maWcuY29tcHJlc3NNb2RlbDtcclxuICAgICAgICBzdGF0ZS5tb2RlbENvbmZpZy5jb21wcmVzc1Byb3ZpZGVyTmFtZSA9XHJcbiAgICAgICAgICBERUZBVUxUX0NPTkZJRy5tb2RlbENvbmZpZy5jb21wcmVzc1Byb3ZpZGVyTmFtZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHN0YXRlIGFzIGFueTtcclxuICAgIH0sXHJcbiAgfSxcclxuKTtcclxuIl0sIm5hbWVzIjpbImdldENsaWVudENvbmZpZyIsIkRFRkFVTFRfSU5QVVRfVEVNUExBVEUiLCJERUZBVUxUX01PREVMUyIsIkRFRkFVTFRfU0lERUJBUl9XSURUSCIsIkRFRkFVTFRfVFRTX0VOR0lORSIsIkRFRkFVTFRfVFRTX01PREVMIiwiREVGQVVMVF9UVFNfVk9JQ0UiLCJTdG9yZUtleSIsImNyZWF0ZVBlcnNpc3RTdG9yZSIsIlN1Ym1pdEtleSIsIlRoZW1lIiwiY29uZmlnIiwiREVGQVVMVF9DT05GSUciLCJsYXN0VXBkYXRlIiwiRGF0ZSIsIm5vdyIsInN1Ym1pdEtleSIsImF2YXRhciIsImZvbnRTaXplIiwiZm9udEZhbWlseSIsInRoZW1lIiwidGlnaHRCb3JkZXIiLCJpc0FwcCIsInNlbmRQcmV2aWV3QnViYmxlIiwiZW5hYmxlQXV0b0dlbmVyYXRlVGl0bGUiLCJzaWRlYmFyV2lkdGgiLCJlbmFibGVBcnRpZmFjdHMiLCJlbmFibGVDb2RlRm9sZCIsImRpc2FibGVQcm9tcHRIaW50IiwiZG9udFNob3dNYXNrU3BsYXNoU2NyZWVuIiwiaGlkZUJ1aWx0aW5NYXNrcyIsImN1c3RvbU1vZGVscyIsIm1vZGVscyIsIm1vZGVsQ29uZmlnIiwibW9kZWwiLCJwcm92aWRlck5hbWUiLCJ0ZW1wZXJhdHVyZSIsInRvcF9wIiwibWF4X3Rva2VucyIsInByZXNlbmNlX3BlbmFsdHkiLCJmcmVxdWVuY3lfcGVuYWx0eSIsInNlbmRNZW1vcnkiLCJoaXN0b3J5TWVzc2FnZUNvdW50IiwiY29tcHJlc3NNZXNzYWdlTGVuZ3RoVGhyZXNob2xkIiwiY29tcHJlc3NNb2RlbCIsImNvbXByZXNzUHJvdmlkZXJOYW1lIiwiZW5hYmxlSW5qZWN0U3lzdGVtUHJvbXB0cyIsInRlbXBsYXRlIiwic2l6ZSIsInF1YWxpdHkiLCJzdHlsZSIsInR0c0NvbmZpZyIsImVuYWJsZSIsImF1dG9wbGF5IiwiZW5naW5lIiwidm9pY2UiLCJzcGVlZCIsInJlYWx0aW1lQ29uZmlnIiwicHJvdmlkZXIiLCJhcGlLZXkiLCJhenVyZSIsImVuZHBvaW50IiwiZGVwbG95bWVudCIsImxpbWl0TnVtYmVyIiwieCIsIm1pbiIsIm1heCIsImRlZmF1bHRWYWx1ZSIsImlzTmFOIiwiTWF0aCIsIlRUU0NvbmZpZ1ZhbGlkYXRvciIsIk1vZGFsQ29uZmlnVmFsaWRhdG9yIiwidXNlQXBwQ29uZmlnIiwic2V0IiwiZ2V0IiwicmVzZXQiLCJtZXJnZU1vZGVscyIsIm5ld01vZGVscyIsImxlbmd0aCIsIm9sZE1vZGVscyIsIm1vZGVsTWFwIiwiYXZhaWxhYmxlIiwibmFtZSIsImlkIiwiT2JqZWN0IiwidmFsdWVzIiwiYWxsTW9kZWxzIiwiQ29uZmlnIiwidmVyc2lvbiIsIm1lcmdlIiwicGVyc2lzdGVkU3RhdGUiLCJjdXJyZW50U3RhdGUiLCJzdGF0ZSIsInNsaWNlIiwiZm9yRWFjaCIsInBNb2RlbCIsImlkeCIsImZpbmRJbmRleCIsInYiLCJwdXNoIiwibWlncmF0ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/store/config.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/store/index.ts":
|
|
|
/*!****************************!*\
|
|
|
!*** ./app/store/index.ts ***!
|
|
|
\****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BOT_HELLO: () => (/* reexport safe */ _chat__WEBPACK_IMPORTED_MODULE_0__.BOT_HELLO),\n/* harmony export */ DEFAULT_CONFIG: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_3__.DEFAULT_CONFIG),\n/* harmony export */ DEFAULT_PLUGIN_STATE: () => (/* reexport safe */ _plugin__WEBPACK_IMPORTED_MODULE_4__.DEFAULT_PLUGIN_STATE),\n/* harmony export */ DEFAULT_TOPIC: () => (/* reexport safe */ _chat__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_TOPIC),\n/* harmony export */ FunctionToolService: () => (/* reexport safe */ _plugin__WEBPACK_IMPORTED_MODULE_4__.FunctionToolService),\n/* harmony export */ ModalConfigValidator: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_3__.ModalConfigValidator),\n/* harmony export */ SubmitKey: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_3__.SubmitKey),\n/* harmony export */ TTSConfigValidator: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_3__.TTSConfigValidator),\n/* harmony export */ Theme: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_3__.Theme),\n/* harmony export */ createEmptyPlugin: () => (/* reexport safe */ _plugin__WEBPACK_IMPORTED_MODULE_4__.createEmptyPlugin),\n/* harmony export */ createMessage: () => (/* reexport safe */ _chat__WEBPACK_IMPORTED_MODULE_0__.createMessage),\n/* harmony export */ limitNumber: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_3__.limitNumber),\n/* harmony export */ useAccessStore: () => (/* reexport safe */ _access__WEBPACK_IMPORTED_MODULE_2__.useAccessStore),\n/* harmony export */ useAppConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_3__.useAppConfig),\n/* harmony export */ useChatStore: () => (/* reexport safe */ _chat__WEBPACK_IMPORTED_MODULE_0__.useChatStore),\n/* harmony export */ usePluginStore: () => (/* reexport safe */ _plugin__WEBPACK_IMPORTED_MODULE_4__.usePluginStore),\n/* harmony export */ useUpdateStore: () => (/* reexport safe */ _update__WEBPACK_IMPORTED_MODULE_1__.useUpdateStore)\n/* harmony export */ });\n/* harmony import */ var _chat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chat */ \"(ssr)/./app/store/chat.ts\");\n/* harmony import */ var _update__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./update */ \"(ssr)/./app/store/update.ts\");\n/* harmony import */ var _access__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./access */ \"(ssr)/./app/store/access.ts\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _plugin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./plugin */ \"(ssr)/./app/store/plugin.ts\");\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvc3RvcmUvaW5kZXgudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNFO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvc3RvcmUvaW5kZXgudHM/MjkwOSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jaGF0XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL3VwZGF0ZVwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9hY2Nlc3NcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29uZmlnXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL3BsdWdpblwiO1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/store/index.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/store/mask.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/store/mask.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DEFAULT_MASK_AVATAR: () => (/* binding */ DEFAULT_MASK_AVATAR),\n/* harmony export */ DEFAULT_MASK_STATE: () => (/* binding */ DEFAULT_MASK_STATE),\n/* harmony export */ createEmptyMask: () => (/* binding */ createEmptyMask),\n/* harmony export */ useMaskStore: () => (/* binding */ useMaskStore)\n/* harmony export */ });\n/* harmony import */ var _masks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../masks */ \"(ssr)/./app/masks/index.ts\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../locales */ \"(ssr)/./app/locales/index.ts\");\n/* harmony import */ var _chat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./chat */ \"(ssr)/./app/store/chat.ts\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./config */ \"(ssr)/./app/store/config.ts\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var nanoid__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! nanoid */ \"(ssr)/./node_modules/nanoid/index.js\");\n/* harmony import */ var _utils_store__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/store */ \"(ssr)/./app/utils/store.ts\");\n\n\n\n\n\n\n\nconst DEFAULT_MASK_STATE = {\n masks: {},\n language: undefined\n};\nconst DEFAULT_MASK_AVATAR = \"gpt-bot\";\nconst createEmptyMask = ()=>({\n id: (0,nanoid__WEBPACK_IMPORTED_MODULE_6__.nanoid)(),\n avatar: DEFAULT_MASK_AVATAR,\n name: _chat__WEBPACK_IMPORTED_MODULE_2__.DEFAULT_TOPIC,\n context: [],\n syncGlobalConfig: true,\n modelConfig: {\n ..._config__WEBPACK_IMPORTED_MODULE_3__.useAppConfig.getState().modelConfig\n },\n lang: (0,_locales__WEBPACK_IMPORTED_MODULE_1__.getLang)(),\n builtin: false,\n createdAt: Date.now(),\n plugin: []\n });\nconst useMaskStore = (0,_utils_store__WEBPACK_IMPORTED_MODULE_5__.createPersistStore)({\n ...DEFAULT_MASK_STATE\n}, (set, get)=>({\n create (mask) {\n const masks = get().masks;\n const id = (0,nanoid__WEBPACK_IMPORTED_MODULE_6__.nanoid)();\n masks[id] = {\n ...createEmptyMask(),\n ...mask,\n id,\n builtin: false\n };\n set(()=>({\n masks\n }));\n get().markUpdate();\n return masks[id];\n },\n updateMask (id, updater) {\n const masks = get().masks;\n const mask = masks[id];\n if (!mask) return;\n const updateMask = {\n ...mask\n };\n updater(updateMask);\n masks[id] = updateMask;\n set(()=>({\n masks\n }));\n get().markUpdate();\n },\n delete (id) {\n const masks = get().masks;\n delete masks[id];\n set(()=>({\n masks\n }));\n get().markUpdate();\n },\n get (id) {\n return get().masks[id ?? 1145141919810];\n },\n getAll () {\n const userMasks = Object.values(get().masks).sort((a, b)=>b.createdAt - a.createdAt);\n const config = _config__WEBPACK_IMPORTED_MODULE_3__.useAppConfig.getState();\n if (config.hideBuiltinMasks) return userMasks;\n const buildinMasks = _masks__WEBPACK_IMPORTED_MODULE_0__.BUILTIN_MASKS.map((m)=>({\n ...m,\n modelConfig: {\n ...config.modelConfig,\n ...m.modelConfig\n }\n }));\n return userMasks.concat(buildinMasks);\n },\n search (text) {\n return Object.values(get().masks);\n },\n setLanguage (language) {\n set({\n language\n });\n }\n }), {\n name: _constant__WEBPACK_IMPORTED_MODULE_4__.StoreKey.Mask,\n version: 3.1,\n migrate (state, version) {\n const newState = JSON.parse(JSON.stringify(state));\n // migrate mask id to nanoid\n if (version < 3) {\n Object.values(newState.masks).forEach((m)=>m.id = (0,nanoid__WEBPACK_IMPORTED_MODULE_6__.nanoid)());\n }\n if (version < 3.1) {\n const updatedMasks = {};\n Object.values(newState.masks).forEach((m)=>{\n updatedMasks[m.id] = m;\n });\n newState.masks = updatedMasks;\n }\n return newState;\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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cEIsTUFBTUcsV0FBV0MsS0FBS0MsS0FBSyxDQUFDRCxLQUFLRSxTQUFTLENBQUNKO1FBRTNDLDRCQUE0QjtRQUM1QixJQUFJRixVQUFVLEdBQUc7WUFDZmYsT0FBT0MsTUFBTSxDQUFDaUIsU0FBUy9DLEtBQUssRUFBRW1ELE9BQU8sQ0FBQyxDQUFDYixJQUFPQSxFQUFFakMsRUFBRSxHQUFHUiw4Q0FBTUE7UUFDN0Q7UUFFQSxJQUFJK0MsVUFBVSxLQUFLO1lBQ2pCLE1BQU1RLGVBQXFDLENBQUM7WUFDNUN2QixPQUFPQyxNQUFNLENBQUNpQixTQUFTL0MsS0FBSyxFQUFFbUQsT0FBTyxDQUFDLENBQUNiO2dCQUNyQ2MsWUFBWSxDQUFDZCxFQUFFakMsRUFBRSxDQUFDLEdBQUdpQztZQUN2QjtZQUNBUyxTQUFTL0MsS0FBSyxHQUFHb0Q7UUFDbkI7UUFFQSxPQUFPTDtJQUNUO0FBQ0YsR0FDQSIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL3N0b3JlL21hc2sudHM/YjU3OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCVUlMVElOX01BU0tTIH0gZnJvbSBcIi4uL21hc2tzXCI7XHJcbmltcG9ydCB7IGdldExhbmcsIExhbmcgfSBmcm9tIFwiLi4vbG9jYWxlc1wiO1xyXG5pbXBvcnQgeyBERUZBVUxUX1RPUElDLCBDaGF0TWVzc2FnZSB9IGZyb20gXCIuL2NoYXRcIjtcclxuaW1wb3J0IHsgTW9kZWxDb25maWcsIHVzZUFwcENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZ1wiO1xyXG5pbXBvcnQgeyBTdG9yZUtleSB9IGZyb20gXCIuLi9jb25zdGFudFwiO1xyXG5pbXBvcnQgeyBuYW5vaWQgfSBmcm9tIFwibmFub2lkXCI7XHJcbmltcG9ydCB7IGNyZWF0ZVBlcnNpc3RTdG9yZSB9IGZyb20gXCIuLi91dGlscy9zdG9yZVwiO1xyXG5cclxuZXhwb3J0IHR5cGUgTWFzayA9IHtcclxuICBpZDogc3RyaW5nO1xyXG4gIGNyZWF0ZWRBdDogbnVtYmVyO1xyXG4gIGF2YXRhcjogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBoaWRlQ29udGV4dD86IGJvb2xlYW47XHJcbiAgY29udGV4dDogQ2hhdE1lc3NhZ2VbXTtcclxuICBzeW5jR2xvYmFsQ29uZmlnPzogYm9vbGVhbjtcclxuICBtb2RlbENvbmZpZzogTW9kZWxDb25maWc7XHJcbiAgbGFuZzogTGFuZztcclxuICBidWlsdGluOiBib29sZWFuO1xyXG4gIHBsdWdpbj86IHN0cmluZ1tdO1xyXG4gIGVuYWJsZUFydGlmYWN0cz86IGJvb2xlYW47XHJcbiAgZW5hYmxlQ29kZUZvbGQ/OiBib29sZWFuO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTUFTS19TVEFURSA9IHtcclxuICBtYXNrczoge30gYXMgUmVjb3JkPHN0cmluZywgTWFzaz4sXHJcbiAgbGFuZ3VhZ2U6IHVuZGVmaW5lZCBhcyBMYW5nIHwgdW5kZWZpbmVkLFxyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgTWFza1N0YXRlID0gdHlwZW9mIERFRkFVTFRfTUFTS19TVEFURSAmIHtcclxuICBsYW5ndWFnZT86IExhbmcgfCB1bmRlZmluZWQ7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9NQVNLX0FWQVRBUiA9IFwiZ3B0LWJvdFwiO1xyXG5leHBvcnQgY29uc3QgY3JlYXRlRW1wdHlNYXNrID0gKCkgPT5cclxuICAoe1xyXG4gICAgaWQ6IG5hbm9pZCgpLFxyXG4gICAgYXZhdGFyOiBERUZBVUxUX01BU0tfQVZBVEFSLFxyXG4gICAgbmFtZTogREVGQVVMVF9UT1BJQyxcclxuICAgIGNvbnRleHQ6IFtdLFxyXG4gICAgc3luY0dsb2JhbENvbmZpZzogdHJ1ZSwgLy8gdXNlIGdsb2JhbCBjb25maWcgYXMgZGVmYXVsdFxyXG4gICAgbW9kZWxDb25maWc6IHsgLi4udXNlQXBwQ29uZmlnLmdldFN0YXRlKCkubW9kZWxDb25maWcgfSxcclxuICAgIGxhbmc6IGdldExhbmcoKSxcclxuICAgIGJ1aWx0aW46IGZhbHNlLFxyXG4gICAgY3JlYXRlZEF0OiBEYXRlLm5vdygpLFxyXG4gICAgcGx1Z2luOiBbXSxcclxuICB9KSBhcyBNYXNrO1xyXG5cclxuZXhwb3J0IGNvbnN0IHVzZU1hc2tTdG9yZSA9IGNyZWF0ZVBlcnNpc3RTdG9yZShcclxuICB7IC4uLkRFRkFVTFRfTUFTS19TVEFURSB9LFxyXG5cclxuICAoc2V0LCBnZXQpID0+ICh7XHJcbiAgICBjcmVhdGUobWFzaz86IFBhcnRpYWw8TWFzaz4pIHtcclxuICAgICAgY29uc3QgbWFza3MgPSBnZXQoKS5tYXNrcztcclxuICAgICAgY29uc3QgaWQgPSBuYW5vaWQoKTtcclxuICAgICAgbWFza3NbaWRdID0ge1xyXG4gICAgICAgIC4uLmNyZWF0ZUVtcHR5TWFzaygpLFxyXG4gICAgICAgIC4uLm1hc2ssXHJcbiAgICAgICAgaWQsXHJcbiAgICAgICAgYnVpbHRpbjogZmFsc2UsXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBzZXQoKCkgPT4gKHsgbWFza3MgfSkpO1xyXG4gICAgICBnZXQoKS5tYXJrVXBkYXRlKCk7XHJcblxyXG4gICAgICByZXR1cm4gbWFza3NbaWRdO1xyXG4gICAgfSxcclxuICAgIHVwZGF0ZU1hc2soaWQ6IHN0cmluZywgdXBkYXRlcjogKG1hc2s6IE1hc2spID0+IHZvaWQpIHtcclxuICAgICAgY29uc3QgbWFza3MgPSBnZXQoKS5tYXNrcztcclxuICAgICAgY29uc3QgbWFzayA9IG1hc2tzW2lkXTtcclxuICAgICAgaWYgKCFtYXNrKSByZXR1cm47XHJcbiAgICAgIGNvbnN0IHVwZGF0ZU1hc2sgPSB7IC4uLm1hc2sgfTtcclxuICAgICAgdXBkYXRlcih1cGRhdGVNYXNrKTtcclxuICAgICAgbWFza3NbaWRdID0gdXBkYXRlTWFzaztcclxuICAgICAgc2V0KCgpID0+ICh7IG1hc2tzIH0pKTtcclxuICAgICAgZ2V0KCkubWFya1VwZGF0ZSgpO1xyXG4gICAgfSxcclxuICAgIGRlbGV0ZShpZDogc3RyaW5nKSB7XHJcbiAgICAgIGNvbnN0IG1hc2tzID0gZ2V0KCkubWFza3M7XHJcbiAgICAgIGRlbGV0ZSBtYXNrc1tpZF07XHJcbiAgICAgIHNldCgoKSA9PiAoeyBtYXNrcyB9KSk7XHJcbiAgICAgIGdldCgpLm1hcmtVcGRhdGUoKTtcclxuICAgIH0sXHJcblxyXG4gICAgZ2V0KGlkPzogc3RyaW5nKSB7XHJcbiAgICAgIHJldHVybiBnZXQoKS5tYXNrc1tpZCA/PyAxMTQ1MTQxOTE5ODEwXTtcclxuICAgIH0sXHJcbiAgICBnZXRBbGwoKSB7XHJcbiAgICAgIGNvbnN0IHVzZXJNYXNrcyA9IE9iamVjdC52YWx1ZXMoZ2V0KCkubWFza3MpLnNvcnQoXHJcbiAgICAgICAgKGEsIGIpID0+IGIuY3JlYXRlZEF0IC0gYS5jcmVhdGVkQXQsXHJcbiAgICAgICk7XHJcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHVzZUFwcENvbmZpZy5nZXRTdGF0ZSgpO1xyXG4gICAgICBpZiAoY29uZmlnLmhpZGVCdWlsdGluTWFza3MpIHJldHVybiB1c2VyTWFza3M7XHJcbiAgICAgIGNvbnN0IGJ1aWxkaW5NYXNrcyA9IEJVSUxUSU5fTUFTS1MubWFwKFxyXG4gICAgICAgIChtKSA9PlxyXG4gICAgICAgICAgKHtcclxuICAgICAgICAgICAgLi4ubSxcclxuICAgICAgICAgICAgbW9kZWxDb25maWc6IHtcclxuICAgICAgICAgICAgICAuLi5jb25maWcubW9kZWxDb25maWcsXHJcbiAgICAgICAgICAgICAgLi4ubS5tb2RlbENvbmZpZyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0pIGFzIE1hc2ssXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiB1c2VyTWFza3MuY29uY2F0KGJ1aWxkaW5NYXNrcyk7XHJcbiAgICB9LFxyXG4gICAgc2VhcmNoKHRleHQ6IHN0cmluZykge1xyXG4gICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhnZXQoKS5tYXNrcyk7XHJcbiAgICB9LFxyXG4gICAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2U6IExhbmcgfCB1bmRlZmluZWQpIHtcclxuICAgICAgc2V0KHtcclxuICAgICAgICBsYW5ndWFnZSxcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gIH0pLFxyXG4gIHtcclxuICAgIG5hbWU6IFN0b3JlS2V5Lk1hc2ssXHJcbiAgICB2ZXJzaW9uOiAzLjEsXHJcblxyXG4gICAgbWlncmF0ZShzdGF0ZSwgdmVyc2lvbikge1xyXG4gICAgICBjb25zdCBuZXdTdGF0ZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3RhdGUpKSBhcyBNYXNrU3RhdGU7XHJcblxyXG4gICAgICAvLyBtaWdyYXRlIG1hc2sgaWQgdG8gbmFub2lkXHJcbiAgICAgIGlmICh2ZXJzaW9uIDwgMykge1xyXG4gICAgICAgIE9iamVjdC52YWx1ZXMobmV3U3RhdGUubWFza3MpLmZvckVhY2goKG0pID0+IChtLmlkID0gbmFub2lkKCkpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHZlcnNpb24gPCAzLjEpIHtcclxuICAgICAgICBjb25zdCB1cGRhdGVkTWFza3M6IFJlY29yZDxzdHJpbmcsIE1hc2s+ID0ge307XHJcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhuZXdTdGF0ZS5tYXNrcykuZm9yRWFjaCgobSkgPT4ge1xyXG4gICAgICAgICAgdXBkYXRlZE1hc2tzW20uaWRdID0gbTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBuZXdTdGF0ZS5tYXNrcyA9IHVwZGF0ZWRNYXNrcztcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIG5ld1N0YXRlIGFzIGFueTtcclxuICAgIH0sXHJcbiAgfSxcclxuKTtcclxuIl0sIm5hbWVzIjpbIkJVSUxUSU5fTUFTS1MiLCJnZXRMYW5nIiwiREVGQVVMVF9UT1BJQyIsInVzZUFwcENvbmZpZyIsIlN0b3JlS2V5IiwibmFub2lkIiwiY3JlYXRlUGVyc2lzdFN0b3JlIiwiREVGQVVMVF9NQVNLX1NUQVRFIiwibWFza3MiLCJsYW5ndWFnZSIsInVuZGVmaW5lZCIsIkRFRkFVTFRfTUFTS19BVkFUQVIiLCJjcmVhdGVFbXB0eU1hc2siLCJpZCIsImF2YXRhciIsIm5hbWUiLCJjb250ZXh0Iiwic3luY0dsb2JhbENvbmZpZyIsIm1vZGVsQ29uZmlnIiwiZ2V0U3RhdGUiLCJsYW5nIiwiYnVpbHRpbiIsImNyZWF0ZWRBdCIsIkRhdGUiLCJub3ciLCJwbHVnaW4iLCJ1c2VNYXNrU3RvcmUiLCJzZXQiLCJnZXQiLCJjcmVhdGUiLCJtYXNrIiwibWFya1VwZGF0ZSIsInVwZGF0ZU1hc2siLCJ1cGRhdGVyIiwiZGVsZXRlIiwiZ2V0QWxsIiwidXNlck1hc2tzIiwiT2JqZWN0IiwidmFsdWVzIiwic29ydCIsImEiLCJiIiwiY29uZmlnIiwiaGlkZUJ1aWx0aW5NYXNrcyIsImJ1aWxkaW5NYXNrcyIsIm1hcCIsIm0iLCJjb25jYXQiLCJzZWFyY2giLCJ0ZXh0Iiwic2V0TGFuZ3VhZ2UiLCJNYXNrIiwidmVyc2lvbiIsIm1pZ3JhdGUiLCJzdGF0ZSIsIm5ld1N0YXRlIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5IiwiZm9yRWFjaCIsInVwZGF0ZWRNYXNrcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/store/mask.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/store/plugin.ts":
|
|
|
/*!*****************************!*\
|
|
|
!*** ./app/store/plugin.ts ***!
|
|
|
\*****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DEFAULT_PLUGIN_STATE: () => (/* binding */ DEFAULT_PLUGIN_STATE),\n/* harmony export */ FunctionToolService: () => (/* binding */ FunctionToolService),\n/* harmony export */ createEmptyPlugin: () => (/* binding */ createEmptyPlugin),\n/* harmony export */ usePluginStore: () => (/* binding */ usePluginStore)\n/* harmony export */ });\n/* harmony import */ var openapi_client_axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! openapi-client-axios */ \"(ssr)/./node_modules/openapi-client-axios/index.js\");\n/* harmony import */ var openapi_client_axios__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(openapi_client_axios__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var nanoid__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! nanoid */ \"(ssr)/./node_modules/nanoid/index.js\");\n/* harmony import */ var _utils_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/store */ \"(ssr)/./app/utils/store.ts\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var js_yaml__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! js-yaml */ \"(ssr)/./node_modules/js-yaml/dist/js-yaml.mjs\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils */ \"(ssr)/./app/utils.ts\");\n/* harmony import */ var _access__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./access */ \"(ssr)/./app/store/access.ts\");\n\n\n\n\n\n\n\n\nconst isApp = (0,_config_client__WEBPACK_IMPORTED_MODULE_3__.getClientConfig)()?.isApp !== false;\nconst FunctionToolService = {\n tools: {},\n add (plugin, replace = false) {\n if (!replace && this.tools[plugin.id]) return this.tools[plugin.id];\n const headerName = plugin?.authType == \"custom\" ? plugin?.authHeader : \"Authorization\";\n const tokenValue = plugin?.authType == \"basic\" ? `Basic ${plugin?.authToken}` : plugin?.authType == \"bearer\" ? `Bearer ${plugin?.authToken}` : plugin?.authToken;\n const authLocation = plugin?.authLocation || \"header\";\n const definition = js_yaml__WEBPACK_IMPORTED_MODULE_4__[\"default\"].load(plugin.content);\n const serverURL = definition?.servers?.[0]?.url;\n const baseURL = !isApp ? \"/api/proxy\" : serverURL;\n const headers = {\n \"X-Base-URL\": !isApp ? serverURL : undefined\n };\n if (authLocation == \"header\") {\n headers[headerName] = tokenValue;\n }\n // try using openaiApiKey for Dalle3 Plugin.\n if (!tokenValue && plugin.id === \"dalle3\") {\n const openaiApiKey = _access__WEBPACK_IMPORTED_MODULE_6__.useAccessStore.getState().openaiApiKey;\n if (openaiApiKey) {\n headers[headerName] = `Bearer ${openaiApiKey}`;\n }\n }\n const api = new (openapi_client_axios__WEBPACK_IMPORTED_MODULE_0___default())({\n definition: js_yaml__WEBPACK_IMPORTED_MODULE_4__[\"default\"].load(plugin.content),\n axiosConfigDefaults: {\n adapter: window.__TAURI__ ? _utils__WEBPACK_IMPORTED_MODULE_5__.adapter : [\n \"xhr\"\n ],\n baseURL,\n headers\n }\n });\n try {\n api.initSync();\n } catch (e) {}\n const operations = api.getOperations();\n return this.tools[plugin.id] = {\n api,\n length: operations.length,\n tools: operations.map((o)=>{\n // @ts-ignore\n const parameters = o?.requestBody?.content[\"application/json\"]?.schema || {\n type: \"object\",\n properties: {}\n };\n if (!parameters[\"required\"]) {\n parameters[\"required\"] = [];\n }\n if (o.parameters instanceof Array) {\n o.parameters.forEach((p)=>{\n // @ts-ignore\n if (p?.in == \"query\" || p?.in == \"path\") {\n // const name = `${p.in}__${p.name}`\n // @ts-ignore\n const name = p?.name;\n parameters[\"properties\"][name] = {\n // @ts-ignore\n type: p.schema.type,\n // @ts-ignore\n description: p.description\n };\n // @ts-ignore\n if (p.required) {\n parameters[\"required\"].push(name);\n }\n }\n });\n }\n return {\n type: \"function\",\n function: {\n name: (0,_utils__WEBPACK_IMPORTED_MODULE_5__.getOperationId)(o),\n description: o.description || o.summary,\n parameters: parameters\n }\n };\n }),\n funcs: operations.reduce((s, o)=>{\n // @ts-ignore\n s[(0,_utils__WEBPACK_IMPORTED_MODULE_5__.getOperationId)(o)] = function(args) {\n const parameters = {};\n if (o.parameters instanceof Array) {\n o.parameters.forEach((p)=>{\n // @ts-ignore\n parameters[p?.name] = args[p?.name];\n // @ts-ignore\n delete args[p?.name];\n });\n }\n if (authLocation == \"query\") {\n parameters[headerName] = tokenValue;\n } else if (authLocation == \"body\") {\n args[headerName] = tokenValue;\n }\n // @ts-ignore if o.operationId is null, then using o.path and o.method\n return api.client.paths[o.path][o.method](parameters, args, api.axiosConfigDefaults);\n };\n return s;\n }, {})\n };\n },\n get (id) {\n return this.tools[id];\n }\n};\nconst createEmptyPlugin = ()=>({\n id: (0,nanoid__WEBPACK_IMPORTED_MODULE_7__.nanoid)(),\n title: \"\",\n version: \"1.0.0\",\n content: \"\",\n builtin: false,\n createdAt: Date.now()\n });\nconst DEFAULT_PLUGIN_STATE = {\n plugins: {}\n};\nconst usePluginStore = (0,_utils_store__WEBPACK_IMPORTED_MODULE_2__.createPersistStore)({\n ...DEFAULT_PLUGIN_STATE\n}, (set, get)=>({\n create (plugin) {\n const plugins = get().plugins;\n const id = plugin?.id || (0,nanoid__WEBPACK_IMPORTED_MODULE_7__.nanoid)();\n plugins[id] = {\n ...createEmptyPlugin(),\n ...plugin,\n id,\n builtin: false\n };\n set(()=>({\n plugins\n }));\n get().markUpdate();\n return plugins[id];\n },\n updatePlugin (id, updater) {\n const plugins = get().plugins;\n const plugin = plugins[id];\n if (!plugin) return;\n const updatePlugin = {\n ...plugin\n };\n updater(updatePlugin);\n plugins[id] = updatePlugin;\n FunctionToolService.add(updatePlugin, true);\n set(()=>({\n plugins\n }));\n get().markUpdate();\n },\n delete (id) {\n const plugins = get().plugins;\n delete plugins[id];\n set(()=>({\n plugins\n }));\n get().markUpdate();\n },\n getAsTools (ids) {\n const plugins = get().plugins;\n const selected = (ids || []).map((id)=>plugins[id]).filter((i)=>i).map((p)=>FunctionToolService.add(p));\n return [\n // @ts-ignore\n selected.reduce((s, i)=>s.concat(i.tools), []),\n selected.reduce((s, i)=>Object.assign(s, i.funcs), {})\n ];\n },\n get (id) {\n return get().plugins[id ?? 1145141919810];\n },\n getAll () {\n return Object.values(get().plugins).sort((a, b)=>b.createdAt - a.createdAt);\n }\n }), {\n name: _constant__WEBPACK_IMPORTED_MODULE_1__.StoreKey.Plugin,\n version: 1,\n onRehydrateStorage (state) {\n // Skip store rehydration on server side\n if (true) {\n return;\n }\n fetch(\"./plugins.json\").then((res)=>res.json()).then((res)=>{\n Promise.all(res.map((item)=>// skip get schema\n state.get(item.id) ? item : fetch(item.schema).then((res)=>res.text()).then((content)=>({\n ...item,\n content\n })).catch((e)=>item))).then((builtinPlugins)=>{\n builtinPlugins.filter((item)=>item?.content).forEach((item)=>{\n const plugin = state.create(item);\n state.updatePlugin(plugin.id, (plugin)=>{\n const tool = FunctionToolService.add(plugin, true);\n plugin.title = tool.api.definition.info.title;\n plugin.version = tool.api.definition.info.version;\n plugin.builtin = true;\n });\n });\n });\n });\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUlDLElBQUksSUFDdEJGLElBQUksQ0FBQyxDQUFDQztZQUNMRSxRQUFRQyxHQUFHLENBQ1RILElBQUk1RCxHQUFHLENBQUMsQ0FBQ2dFLE9BQ1Asa0JBQWtCO2dCQUNsQlAsTUFBTWhDLEdBQUcsQ0FBQ3VDLEtBQUszRixFQUFFLElBQ2IyRixPQUNBTixNQUFNTSxLQUFLNUQsTUFBTSxFQUNkdUQsSUFBSSxDQUFDLENBQUNDLE1BQVFBLElBQUlLLElBQUksSUFDdEJOLElBQUksQ0FBQyxDQUFDN0UsVUFBYTt3QkFDbEIsR0FBR2tGLElBQUk7d0JBQ1BsRjtvQkFDRixJQUNDb0YsS0FBSyxDQUFDLENBQUN0RSxJQUFNb0UsUUFFdEJMLElBQUksQ0FBQyxDQUFDUTtnQkFDTkEsZUFDR3RCLE1BQU0sQ0FBQyxDQUFDbUIsT0FBY0EsTUFBTWxGLFNBQzVCMEIsT0FBTyxDQUFDLENBQUN3RDtvQkFDUixNQUFNN0YsU0FBU3NGLE1BQU1wQixNQUFNLENBQUMyQjtvQkFDNUJQLE1BQU1sQixZQUFZLENBQUNwRSxPQUFPRSxFQUFFLEVBQUUsQ0FBQ0Y7d0JBQzdCLE1BQU1pRyxPQUFPcEcsb0JBQW9CRSxHQUFHLENBQUNDLFFBQVE7d0JBQzdDQSxPQUFPd0QsS0FBSyxHQUFHeUMsS0FBSzdFLEdBQUcsQ0FBQ1gsVUFBVSxDQUFDeUYsSUFBSSxDQUFDMUMsS0FBSzt3QkFDN0N4RCxPQUFPeUQsT0FBTyxHQUFHd0MsS0FBSzdFLEdBQUcsQ0FBQ1gsVUFBVSxDQUFDeUYsSUFBSSxDQUFDekMsT0FBTzt3QkFDakR6RCxPQUFPMEQsT0FBTyxHQUFHO29CQUNuQjtnQkFDRjtZQUNKO1FBQ0Y7SUFDSjtBQUNGLEdBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9zdG9yZS9wbHVnaW4udHM/ZjRkZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgT3BlbkFQSUNsaWVudEF4aW9zIGZyb20gXCJvcGVuYXBpLWNsaWVudC1heGlvc1wiO1xyXG5pbXBvcnQgeyBTdG9yZUtleSB9IGZyb20gXCIuLi9jb25zdGFudFwiO1xyXG5pbXBvcnQgeyBuYW5vaWQgfSBmcm9tIFwibmFub2lkXCI7XHJcbmltcG9ydCB7IGNyZWF0ZVBlcnNpc3RTdG9yZSB9IGZyb20gXCIuLi91dGlscy9zdG9yZVwiO1xyXG5pbXBvcnQgeyBnZXRDbGllbnRDb25maWcgfSBmcm9tIFwiLi4vY29uZmlnL2NsaWVudFwiO1xyXG5pbXBvcnQgeWFtbCBmcm9tIFwianMteWFtbFwiO1xyXG5pbXBvcnQgeyBhZGFwdGVyLCBnZXRPcGVyYXRpb25JZCB9IGZyb20gXCIuLi91dGlsc1wiO1xyXG5pbXBvcnQgeyB1c2VBY2Nlc3NTdG9yZSB9IGZyb20gXCIuL2FjY2Vzc1wiO1xyXG5cclxuY29uc3QgaXNBcHAgPSBnZXRDbGllbnRDb25maWcoKT8uaXNBcHAgIT09IGZhbHNlO1xyXG5cclxuZXhwb3J0IHR5cGUgUGx1Z2luID0ge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgY3JlYXRlZEF0OiBudW1iZXI7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB2ZXJzaW9uOiBzdHJpbmc7XHJcbiAgY29udGVudDogc3RyaW5nO1xyXG4gIGJ1aWx0aW46IGJvb2xlYW47XHJcbiAgYXV0aFR5cGU/OiBzdHJpbmc7XHJcbiAgYXV0aExvY2F0aW9uPzogc3RyaW5nO1xyXG4gIGF1dGhIZWFkZXI/OiBzdHJpbmc7XHJcbiAgYXV0aFRva2VuPzogc3RyaW5nO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgRnVuY3Rpb25Ub29sSXRlbSA9IHtcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgZnVuY3Rpb246IHtcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG4gICAgcGFyYW1ldGVyczogT2JqZWN0O1xyXG4gIH07XHJcbn07XHJcblxyXG50eXBlIEZ1bmN0aW9uVG9vbFNlcnZpY2VJdGVtID0ge1xyXG4gIGFwaTogT3BlbkFQSUNsaWVudEF4aW9zO1xyXG4gIGxlbmd0aDogbnVtYmVyO1xyXG4gIHRvb2xzOiBGdW5jdGlvblRvb2xJdGVtW107XHJcbiAgZnVuY3M6IFJlY29yZDxzdHJpbmcsIEZ1bmN0aW9uPjtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBGdW5jdGlvblRvb2xTZXJ2aWNlID0ge1xyXG4gIHRvb2xzOiB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBGdW5jdGlvblRvb2xTZXJ2aWNlSXRlbT4sXHJcbiAgYWRkKHBsdWdpbjogUGx1Z2luLCByZXBsYWNlID0gZmFsc2UpIHtcclxuICAgIGlmICghcmVwbGFjZSAmJiB0aGlzLnRvb2xzW3BsdWdpbi5pZF0pIHJldHVybiB0aGlzLnRvb2xzW3BsdWdpbi5pZF07XHJcbiAgICBjb25zdCBoZWFkZXJOYW1lID0gKFxyXG4gICAgICBwbHVnaW4/LmF1dGhUeXBlID09IFwiY3VzdG9tXCIgPyBwbHVnaW4/LmF1dGhIZWFkZXIgOiBcIkF1dGhvcml6YXRpb25cIlxyXG4gICAgKSBhcyBzdHJpbmc7XHJcbiAgICBjb25zdCB0b2tlblZhbHVlID1cclxuICAgICAgcGx1Z2luPy5hdXRoVHlwZSA9PSBcImJhc2ljXCJcclxuICAgICAgICA/IGBCYXNpYyAke3BsdWdpbj8uYXV0aFRva2VufWBcclxuICAgICAgICA6IHBsdWdpbj8uYXV0aFR5cGUgPT0gXCJiZWFyZXJcIlxyXG4gICAgICAgID8gYEJlYXJlciAke3BsdWdpbj8uYXV0aFRva2VufWBcclxuICAgICAgICA6IHBsdWdpbj8uYXV0aFRva2VuO1xyXG4gICAgY29uc3QgYXV0aExvY2F0aW9uID0gcGx1Z2luPy5hdXRoTG9jYXRpb24gfHwgXCJoZWFkZXJcIjtcclxuICAgIGNvbnN0IGRlZmluaXRpb24gPSB5YW1sLmxvYWQocGx1Z2luLmNvbnRlbnQpIGFzIGFueTtcclxuICAgIGNvbnN0IHNlcnZlclVSTCA9IGRlZmluaXRpb24/LnNlcnZlcnM/LlswXT8udXJsO1xyXG4gICAgY29uc3QgYmFzZVVSTCA9ICFpc0FwcCA/IFwiL2FwaS9wcm94eVwiIDogc2VydmVyVVJMO1xyXG4gICAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPiA9IHtcclxuICAgICAgXCJYLUJhc2UtVVJMXCI6ICFpc0FwcCA/IHNlcnZlclVSTCA6IHVuZGVmaW5lZCxcclxuICAgIH07XHJcbiAgICBpZiAoYXV0aExvY2F0aW9uID09IFwiaGVhZGVyXCIpIHtcclxuICAgICAgaGVhZGVyc1toZWFkZXJOYW1lXSA9IHRva2VuVmFsdWU7XHJcbiAgICB9XHJcbiAgICAvLyB0cnkgdXNpbmcgb3BlbmFpQXBpS2V5IGZvciBEYWxsZTMgUGx1Z2luLlxyXG4gICAgaWYgKCF0b2tlblZhbHVlICYmIHBsdWdpbi5pZCA9PT0gXCJkYWxsZTNcIikge1xyXG4gICAgICBjb25zdCBvcGVuYWlBcGlLZXkgPSB1c2VBY2Nlc3NTdG9yZS5nZXRTdGF0ZSgpLm9wZW5haUFwaUtleTtcclxuICAgICAgaWYgKG9wZW5haUFwaUtleSkge1xyXG4gICAgICAgIGhlYWRlcnNbaGVhZGVyTmFtZV0gPSBgQmVhcmVyICR7b3BlbmFpQXBpS2V5fWA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IGFwaSA9IG5ldyBPcGVuQVBJQ2xpZW50QXhpb3Moe1xyXG4gICAgICBkZWZpbml0aW9uOiB5YW1sLmxvYWQocGx1Z2luLmNvbnRlbnQpIGFzIGFueSxcclxuICAgICAgYXhpb3NDb25maWdEZWZhdWx0czoge1xyXG4gICAgICAgIGFkYXB0ZXI6ICh3aW5kb3cuX19UQVVSSV9fID8gYWRhcHRlciA6IFtcInhoclwiXSkgYXMgYW55LFxyXG4gICAgICAgIGJhc2VVUkwsXHJcbiAgICAgICAgaGVhZGVycyxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gICAgdHJ5IHtcclxuICAgICAgYXBpLmluaXRTeW5jKCk7XHJcbiAgICB9IGNhdGNoIChlKSB7fVxyXG4gICAgY29uc3Qgb3BlcmF0aW9ucyA9IGFwaS5nZXRPcGVyYXRpb25zKCk7XHJcbiAgICByZXR1cm4gKHRoaXMudG9vbHNbcGx1Z2luLmlkXSA9IHtcclxuICAgICAgYXBpLFxyXG4gICAgICBsZW5ndGg6IG9wZXJhdGlvbnMubGVuZ3RoLFxyXG4gICAgICB0b29sczogb3BlcmF0aW9ucy5tYXAoKG8pID0+IHtcclxuICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IG8/LnJlcXVlc3RCb2R5Py5jb250ZW50W1wiYXBwbGljYXRpb24vanNvblwiXVxyXG4gICAgICAgICAgPy5zY2hlbWEgfHwge1xyXG4gICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcclxuICAgICAgICAgIHByb3BlcnRpZXM6IHt9LFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgaWYgKCFwYXJhbWV0ZXJzW1wicmVxdWlyZWRcIl0pIHtcclxuICAgICAgICAgIHBhcmFtZXRlcnNbXCJyZXF1aXJlZFwiXSA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoby5wYXJhbWV0ZXJzIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgIG8ucGFyYW1ldGVycy5mb3JFYWNoKChwKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgaWYgKHA/LmluID09IFwicXVlcnlcIiB8fCBwPy5pbiA9PSBcInBhdGhcIikge1xyXG4gICAgICAgICAgICAgIC8vIGNvbnN0IG5hbWUgPSBgJHtwLmlufV9fJHtwLm5hbWV9YFxyXG4gICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICBjb25zdCBuYW1lID0gcD8ubmFtZTtcclxuICAgICAgICAgICAgICBwYXJhbWV0ZXJzW1wicHJvcGVydGllc1wiXVtuYW1lXSA9IHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHR5cGU6IHAuc2NoZW1hLnR5cGUsXHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogcC5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICBpZiAocC5yZXF1aXJlZCkge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyc1tcInJlcXVpcmVkXCJdLnB1c2gobmFtZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIHR5cGU6IFwiZnVuY3Rpb25cIixcclxuICAgICAgICAgIGZ1bmN0aW9uOiB7XHJcbiAgICAgICAgICAgIG5hbWU6IGdldE9wZXJhdGlvbklkKG8pLFxyXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogby5kZXNjcmlwdGlvbiB8fCBvLnN1bW1hcnksXHJcbiAgICAgICAgICAgIHBhcmFtZXRlcnM6IHBhcmFtZXRlcnMsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0gYXMgRnVuY3Rpb25Ub29sSXRlbTtcclxuICAgICAgfSksXHJcbiAgICAgIGZ1bmNzOiBvcGVyYXRpb25zLnJlZHVjZSgocywgbykgPT4ge1xyXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICBzW2dldE9wZXJhdGlvbklkKG8pXSA9IGZ1bmN0aW9uIChhcmdzKSB7XHJcbiAgICAgICAgICBjb25zdCBwYXJhbWV0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcbiAgICAgICAgICBpZiAoby5wYXJhbWV0ZXJzIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgICAgby5wYXJhbWV0ZXJzLmZvckVhY2goKHApID0+IHtcclxuICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgcGFyYW1ldGVyc1twPy5uYW1lXSA9IGFyZ3NbcD8ubmFtZV07XHJcbiAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgIGRlbGV0ZSBhcmdzW3A/Lm5hbWVdO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChhdXRoTG9jYXRpb24gPT0gXCJxdWVyeVwiKSB7XHJcbiAgICAgICAgICAgIHBhcmFtZXRlcnNbaGVhZGVyTmFtZV0gPSB0b2tlblZhbHVlO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChhdXRoTG9jYXRpb24gPT0gXCJib2R5XCIpIHtcclxuICAgICAgICAgICAgYXJnc1toZWFkZXJOYW1lXSA9IHRva2VuVmFsdWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBAdHMtaWdub3JlIGlmIG8ub3BlcmF0aW9uSWQgaXMgbnVsbCwgdGhlbiB1c2luZyBvLnBhdGggYW5kIG8ubWV0aG9kXHJcbiAgICAgICAgICByZXR1cm4gYXBpLmNsaWVudC5wYXRoc1tvLnBhdGhdW28ubWV0aG9kXShcclxuICAgICAgICAgICAgcGFyYW1ldGVycyxcclxuICAgICAgICAgICAgYXJncyxcclxuICAgICAgICAgICAgYXBpLmF4aW9zQ29uZmlnRGVmYXVsdHMsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIHM7XHJcbiAgICAgIH0sIHt9KSxcclxuICAgIH0pO1xyXG4gIH0sXHJcbiAgZ2V0KGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnRvb2xzW2lkXTtcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGNyZWF0ZUVtcHR5UGx1Z2luID0gKCkgPT5cclxuICAoe1xyXG4gICAgaWQ6IG5hbm9pZCgpLFxyXG4gICAgdGl0bGU6IFwiXCIsXHJcbiAgICB2ZXJzaW9uOiBcIjEuMC4wXCIsXHJcbiAgICBjb250ZW50OiBcIlwiLFxyXG4gICAgYnVpbHRpbjogZmFsc2UsXHJcbiAgICBjcmVhdGVkQXQ6IERhdGUubm93KCksXHJcbiAgfSkgYXMgUGx1Z2luO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUExVR0lOX1NUQVRFID0ge1xyXG4gIHBsdWdpbnM6IHt9IGFzIFJlY29yZDxzdHJpbmcsIFBsdWdpbj4sXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgdXNlUGx1Z2luU3RvcmUgPSBjcmVhdGVQZXJzaXN0U3RvcmUoXHJcbiAgeyAuLi5ERUZBVUxUX1BMVUdJTl9TVEFURSB9LFxyXG5cclxuICAoc2V0LCBnZXQpID0+ICh7XHJcbiAgICBjcmVhdGUocGx1Z2luPzogUGFydGlhbDxQbHVnaW4+KSB7XHJcbiAgICAgIGNvbnN0IHBsdWdpbnMgPSBnZXQoKS5wbHVnaW5zO1xyXG4gICAgICBjb25zdCBpZCA9IHBsdWdpbj8uaWQgfHwgbmFub2lkKCk7XHJcbiAgICAgIHBsdWdpbnNbaWRdID0ge1xyXG4gICAgICAgIC4uLmNyZWF0ZUVtcHR5UGx1Z2luKCksXHJcbiAgICAgICAgLi4ucGx1Z2luLFxyXG4gICAgICAgIGlkLFxyXG4gICAgICAgIGJ1aWx0aW46IGZhbHNlLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgc2V0KCgpID0+ICh7IHBsdWdpbnMgfSkpO1xyXG4gICAgICBnZXQoKS5tYXJrVXBkYXRlKCk7XHJcblxyXG4gICAgICByZXR1cm4gcGx1Z2luc1tpZF07XHJcbiAgICB9LFxyXG4gICAgdXBkYXRlUGx1Z2luKGlkOiBzdHJpbmcsIHVwZGF0ZXI6IChwbHVnaW46IFBsdWdpbikgPT4gdm9pZCkge1xyXG4gICAgICBjb25zdCBwbHVnaW5zID0gZ2V0KCkucGx1Z2lucztcclxuICAgICAgY29uc3QgcGx1Z2luID0gcGx1Z2luc1tpZF07XHJcbiAgICAgIGlmICghcGx1Z2luKSByZXR1cm47XHJcbiAgICAgIGNvbnN0IHVwZGF0ZVBsdWdpbiA9IHsgLi4ucGx1Z2luIH07XHJcbiAgICAgIHVwZGF0ZXIodXBkYXRlUGx1Z2luKTtcclxuICAgICAgcGx1Z2luc1tpZF0gPSB1cGRhdGVQbHVnaW47XHJcbiAgICAgIEZ1bmN0aW9uVG9vbFNlcnZpY2UuYWRkKHVwZGF0ZVBsdWdpbiwgdHJ1ZSk7XHJcbiAgICAgIHNldCgoKSA9PiAoeyBwbHVnaW5zIH0pKTtcclxuICAgICAgZ2V0KCkubWFya1VwZGF0ZSgpO1xyXG4gICAgfSxcclxuICAgIGRlbGV0ZShpZDogc3RyaW5nKSB7XHJcbiAgICAgIGNvbnN0IHBsdWdpbnMgPSBnZXQoKS5wbHVnaW5zO1xyXG4gICAgICBkZWxldGUgcGx1Z2luc1tpZF07XHJcbiAgICAgIHNldCgoKSA9PiAoeyBwbHVnaW5zIH0pKTtcclxuICAgICAgZ2V0KCkubWFya1VwZGF0ZSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICBnZXRBc1Rvb2xzKGlkczogc3RyaW5nW10pIHtcclxuICAgICAgY29uc3QgcGx1Z2lucyA9IGdldCgpLnBsdWdpbnM7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gKGlkcyB8fCBbXSlcclxuICAgICAgICAubWFwKChpZCkgPT4gcGx1Z2luc1tpZF0pXHJcbiAgICAgICAgLmZpbHRlcigoaSkgPT4gaSlcclxuICAgICAgICAubWFwKChwKSA9PiBGdW5jdGlvblRvb2xTZXJ2aWNlLmFkZChwKSk7XHJcbiAgICAgIHJldHVybiBbXHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIHNlbGVjdGVkLnJlZHVjZSgocywgaSkgPT4gcy5jb25jYXQoaS50b29scyksIFtdKSxcclxuICAgICAgICBzZWxlY3RlZC5yZWR1Y2UoKHMsIGkpID0+IE9iamVjdC5hc3NpZ24ocywgaS5mdW5jcyksIHt9KSxcclxuICAgICAgXTtcclxuICAgIH0sXHJcbiAgICBnZXQoaWQ/OiBzdHJpbmcpIHtcclxuICAgICAgcmV0dXJuIGdldCgpLnBsdWdpbnNbaWQgPz8gMTE0NTE0MTkxOTgxMF07XHJcbiAgICB9LFxyXG4gICAgZ2V0QWxsKCkge1xyXG4gICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhnZXQoKS5wbHVnaW5zKS5zb3J0KFxyXG4gICAgICAgIChhLCBiKSA9PiBiLmNyZWF0ZWRBdCAtIGEuY3JlYXRlZEF0LFxyXG4gICAgICApO1xyXG4gICAgfSxcclxuICB9KSxcclxuICB7XHJcbiAgICBuYW1lOiBTdG9yZUtleS5QbHVnaW4sXHJcbiAgICB2ZXJzaW9uOiAxLFxyXG4gICAgb25SZWh5ZHJhdGVTdG9yYWdlKHN0YXRlKSB7XHJcbiAgICAgIC8vIFNraXAgc3RvcmUgcmVoeWRyYXRpb24gb24gc2VydmVyIHNpZGVcclxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZldGNoKFwiLi9wbHVnaW5zLmpzb25cIilcclxuICAgICAgICAudGhlbigocmVzKSA9PiByZXMuanNvbigpKVxyXG4gICAgICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICAgIFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgICByZXMubWFwKChpdGVtOiBhbnkpID0+XHJcbiAgICAgICAgICAgICAgLy8gc2tpcCBnZXQgc2NoZW1hXHJcbiAgICAgICAgICAgICAgc3RhdGUuZ2V0KGl0ZW0uaWQpXHJcbiAgICAgICAgICAgICAgICA/IGl0ZW1cclxuICAgICAgICAgICAgICAgIDogZmV0Y2goaXRlbS5zY2hlbWEpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKHJlcykgPT4gcmVzLnRleHQoKSlcclxuICAgICAgICAgICAgICAgICAgICAudGhlbigoY29udGVudCkgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pKVxyXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4gaXRlbSksXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICApLnRoZW4oKGJ1aWx0aW5QbHVnaW5zOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgYnVpbHRpblBsdWdpbnNcclxuICAgICAgICAgICAgICAuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0/LmNvbnRlbnQpXHJcbiAgICAgICAgICAgICAgLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGx1Z2luID0gc3RhdGUuY3JlYXRlKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgc3RhdGUudXBkYXRlUGx1Z2luKHBsdWdpbi5pZCwgKHBsdWdpbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCB0b29sID0gRnVuY3Rpb25Ub29sU2VydmljZS5hZGQocGx1Z2luLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgcGx1Z2luLnRpdGxlID0gdG9vbC5hcGkuZGVmaW5pdGlvbi5pbmZvLnRpdGxlO1xyXG4gICAgICAgICAgICAgICAgICBwbHVnaW4udmVyc2lvbiA9IHRvb2wuYXBpLmRlZmluaXRpb24uaW5mby52ZXJzaW9uO1xyXG4gICAgICAgICAgICAgICAgICBwbHVnaW4uYnVpbHRpbiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSxcclxuICB9LFxyXG4pO1xyXG4iXSwibmFtZXMiOlsiT3BlbkFQSUNsaWVudEF4aW9zIiwiU3RvcmVLZXkiLCJuYW5vaWQiLCJjcmVhdGVQZXJzaXN0U3RvcmUiLCJnZXRDbGllbnRDb25maWciLCJ5YW1sIiwiYWRhcHRlciIsImdldE9wZXJhdGlvbklkIiwidXNlQWNjZXNzU3RvcmUiLCJpc0FwcCIsIkZ1bmN0aW9uVG9vbFNlcnZpY2UiLCJ0b29scyIsImFkZCIsInBsdWdpbiIsInJlcGxhY2UiLCJpZCIsImhlYWRlck5hbWUiLCJhdXRoVHlwZSIsImF1dGhIZWFkZXIiLCJ0b2tlblZhbHVlIiwiYXV0aFRva2VuIiwiYXV0aExvY2F0aW9uIiwiZGVmaW5pdGlvbiIsImxvYWQiLCJjb250ZW50Iiwic2VydmVyVVJMIiwic2VydmVycyIsInVybCIsImJhc2VVUkwiLCJoZWFkZXJzIiwidW5kZWZpbmVkIiwib3BlbmFpQXBpS2V5IiwiZ2V0U3RhdGUiLCJhcGkiLCJheGlvc0NvbmZpZ0RlZmF1bHRzIiwid2luZG93IiwiX19UQVVSSV9fIiwiaW5pdFN5bmMiLCJlIiwib3BlcmF0aW9ucyIsImdldE9wZXJhdGlvbnMiLCJsZW5ndGgiLCJtYXAiLCJvIiwicGFyYW1ldGVycyIsInJlcXVlc3RCb2R5Iiwic2NoZW1hIiwidHlwZSIsInByb3BlcnRpZXMiLCJBcnJheSIsImZvckVhY2giLCJwIiwiaW4iLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJyZXF1aXJlZCIsInB1c2giLCJmdW5jdGlvbiIsInN1bW1hcnkiLCJmdW5jcyIsInJlZHVjZSIsInMiLCJhcmdzIiwiY2xpZW50IiwicGF0aHMiLCJwYXRoIiwibWV0aG9kIiwiZ2V0IiwiY3JlYXRlRW1wdHlQbHVnaW4iLCJ0aXRsZSIsInZlcnNpb24iLCJidWlsdGluIiwiY3JlYXRlZEF0IiwiRGF0ZSIsIm5vdyIsIkRFRkFVTFRfUExVR0lOX1NUQVRFIiwicGx1Z2lucyIsInVzZVBsdWdpblN0b3JlIiwic2V0IiwiY3JlYXRlIiwibWFya1VwZGF0ZSIsInVwZGF0ZVBsdWdpbiIsInVwZGF0ZXIiLCJkZWxldGUiLCJnZXRBc1Rvb2xzIiwiaWRzIiwic2VsZWN0ZWQiLCJmaWx0ZXIiLCJpIiwiY29uY2F0IiwiT2JqZWN0IiwiYXNzaWduIiwiZ2V0QWxsIiwidmFsdWVzIiwic29ydCIsImEiLCJiIiwiUGx1Z2luIiwib25SZWh5ZHJhdGVTdG9yYWdlIiwic3RhdGUiLCJmZXRjaCIsInRoZW4iLCJyZXMiLCJqc29uIiwiUHJvbWlzZSIsImFsbCIsIml0ZW0iLCJ0ZXh0IiwiY2F0Y2giLCJidWlsdGluUGx1Z2lucyIsInRvb2wiLCJpbmZvIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/store/plugin.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/store/prompt.ts":
|
|
|
/*!*****************************!*\
|
|
|
!*** ./app/store/prompt.ts ***!
|
|
|
\*****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SearchService: () => (/* binding */ SearchService),\n/* harmony export */ usePromptStore: () => (/* binding */ usePromptStore)\n/* harmony export */ });\n/* harmony import */ var fuse_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! fuse.js */ \"(ssr)/./node_modules/fuse.js/dist/fuse.mjs\");\n/* harmony import */ var nanoid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! nanoid */ \"(ssr)/./node_modules/nanoid/index.js\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../locales */ \"(ssr)/./app/locales/index.ts\");\n/* harmony import */ var _utils_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/store */ \"(ssr)/./app/utils/store.ts\");\n\n\n\n\n\nconst SearchService = {\n ready: false,\n builtinEngine: new fuse_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]([], {\n keys: [\n \"title\"\n ]\n }),\n userEngine: new fuse_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]([], {\n keys: [\n \"title\"\n ]\n }),\n count: {\n builtin: 0\n },\n allPrompts: [],\n builtinPrompts: [],\n init (builtinPrompts, userPrompts) {\n if (this.ready) {\n return;\n }\n this.allPrompts = userPrompts.concat(builtinPrompts);\n this.builtinPrompts = builtinPrompts.slice();\n this.builtinEngine.setCollection(builtinPrompts);\n this.userEngine.setCollection(userPrompts);\n this.ready = true;\n },\n remove (id) {\n this.userEngine.remove((doc)=>doc.id === id);\n },\n add (prompt) {\n this.userEngine.add(prompt);\n },\n search (text) {\n const userResults = this.userEngine.search(text);\n const builtinResults = this.builtinEngine.search(text);\n return userResults.concat(builtinResults).map((v)=>v.item);\n }\n};\nconst usePromptStore = (0,_utils_store__WEBPACK_IMPORTED_MODULE_2__.createPersistStore)({\n counter: 0,\n prompts: {}\n}, (set, get)=>({\n add (prompt) {\n const prompts = get().prompts;\n prompt.id = (0,nanoid__WEBPACK_IMPORTED_MODULE_4__.nanoid)();\n prompt.isUser = true;\n prompt.createdAt = Date.now();\n prompts[prompt.id] = prompt;\n set(()=>({\n prompts: prompts\n }));\n return prompt.id;\n },\n get (id) {\n const targetPrompt = get().prompts[id];\n if (!targetPrompt) {\n return SearchService.builtinPrompts.find((v)=>v.id === id);\n }\n return targetPrompt;\n },\n remove (id) {\n const prompts = get().prompts;\n delete prompts[id];\n Object.entries(prompts).some(([key, prompt])=>{\n if (prompt.id === id) {\n delete prompts[key];\n return true;\n }\n return false;\n });\n SearchService.remove(id);\n set(()=>({\n prompts,\n counter: get().counter + 1\n }));\n },\n getUserPrompts () {\n const userPrompts = Object.values(get().prompts ?? {});\n userPrompts.sort((a, b)=>b.id && a.id ? b.createdAt - a.createdAt : 0);\n return userPrompts;\n },\n updatePrompt (id, updater) {\n const prompt = get().prompts[id] ?? {\n title: \"\",\n content: \"\",\n id\n };\n SearchService.remove(id);\n updater(prompt);\n const prompts = get().prompts;\n prompts[id] = prompt;\n set(()=>({\n prompts\n }));\n SearchService.add(prompt);\n },\n search (text) {\n if (text.length === 0) {\n // return all rompts\n return this.getUserPrompts().concat(SearchService.builtinPrompts);\n }\n return SearchService.search(text);\n }\n }), {\n name: _constant__WEBPACK_IMPORTED_MODULE_0__.StoreKey.Prompt,\n version: 3,\n migrate (state, version) {\n const newState = JSON.parse(JSON.stringify(state));\n if (version < 3) {\n Object.values(newState.prompts).forEach((p)=>p.id = (0,nanoid__WEBPACK_IMPORTED_MODULE_4__.nanoid)());\n }\n return newState;\n },\n onRehydrateStorage (state) {\n // Skip store rehydration on server side\n if (true) {\n return;\n }\n const PROMPT_URL = \"./prompts.json\";\n fetch(PROMPT_URL).then((res)=>res.json()).then((res)=>{\n let fetchPrompts = [\n res.en,\n res.tw,\n res.cn\n ];\n if ((0,_locales__WEBPACK_IMPORTED_MODULE_1__.getLang)() === \"cn\") {\n fetchPrompts = fetchPrompts.reverse();\n }\n const builtinPrompts = fetchPrompts.map((promptList)=>{\n return promptList.map(([title, content])=>({\n id: (0,nanoid__WEBPACK_IMPORTED_MODULE_4__.nanoid)(),\n title,\n content,\n createdAt: Date.now()\n }));\n });\n const userPrompts = usePromptStore.getState().getUserPrompts() ?? [];\n const allPromptsForSearch = builtinPrompts.reduce((pre, cur)=>pre.concat(cur), []).filter((v)=>!!v.title && !!v.content);\n SearchService.count.builtin = res.en.length + res.cn.length + res.tw.length;\n SearchService.init(allPromptsForSearch, userPrompts);\n });\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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cz80ODUwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBGdXNlIGZyb20gXCJmdXNlLmpzXCI7XHJcbmltcG9ydCB7IG5hbm9pZCB9IGZyb20gXCJuYW5vaWRcIjtcclxuaW1wb3J0IHsgU3RvcmVLZXkgfSBmcm9tIFwiLi4vY29uc3RhbnRcIjtcclxuaW1wb3J0IHsgZ2V0TGFuZyB9IGZyb20gXCIuLi9sb2NhbGVzXCI7XHJcbmltcG9ydCB7IGNyZWF0ZVBlcnNpc3RTdG9yZSB9IGZyb20gXCIuLi91dGlscy9zdG9yZVwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcm9tcHQge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgaXNVc2VyPzogYm9vbGVhbjtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGNvbnRlbnQ6IHN0cmluZztcclxuICBjcmVhdGVkQXQ6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFNlYXJjaFNlcnZpY2UgPSB7XHJcbiAgcmVhZHk6IGZhbHNlLFxyXG4gIGJ1aWx0aW5FbmdpbmU6IG5ldyBGdXNlPFByb21wdD4oW10sIHsga2V5czogW1widGl0bGVcIl0gfSksXHJcbiAgdXNlckVuZ2luZTogbmV3IEZ1c2U8UHJvbXB0PihbXSwgeyBrZXlzOiBbXCJ0aXRsZVwiXSB9KSxcclxuICBjb3VudDoge1xyXG4gICAgYnVpbHRpbjogMCxcclxuICB9LFxyXG4gIGFsbFByb21wdHM6IFtdIGFzIFByb21wdFtdLFxyXG4gIGJ1aWx0aW5Qcm9tcHRzOiBbXSBhcyBQcm9tcHRbXSxcclxuXHJcbiAgaW5pdChidWlsdGluUHJvbXB0czogUHJvbXB0W10sIHVzZXJQcm9tcHRzOiBQcm9tcHRbXSkge1xyXG4gICAgaWYgKHRoaXMucmVhZHkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hbGxQcm9tcHRzID0gdXNlclByb21wdHMuY29uY2F0KGJ1aWx0aW5Qcm9tcHRzKTtcclxuICAgIHRoaXMuYnVpbHRpblByb21wdHMgPSBidWlsdGluUHJvbXB0cy5zbGljZSgpO1xyXG4gICAgdGhpcy5idWlsdGluRW5naW5lLnNldENvbGxlY3Rpb24oYnVpbHRpblByb21wdHMpO1xyXG4gICAgdGhpcy51c2VyRW5naW5lLnNldENvbGxlY3Rpb24odXNlclByb21wdHMpO1xyXG4gICAgdGhpcy5yZWFkeSA9IHRydWU7XHJcbiAgfSxcclxuXHJcbiAgcmVtb3ZlKGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudXNlckVuZ2luZS5yZW1vdmUoKGRvYykgPT4gZG9jLmlkID09PSBpZCk7XHJcbiAgfSxcclxuXHJcbiAgYWRkKHByb21wdDogUHJvbXB0KSB7XHJcbiAgICB0aGlzLnVzZXJFbmdpbmUuYWRkKHByb21wdCk7XHJcbiAgfSxcclxuXHJcbiAgc2VhcmNoKHRleHQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgdXNlclJlc3VsdHMgPSB0aGlzLnVzZXJFbmdpbmUuc2VhcmNoKHRleHQpO1xyXG4gICAgY29uc3QgYnVpbHRpblJlc3VsdHMgPSB0aGlzLmJ1aWx0aW5FbmdpbmUuc2VhcmNoKHRleHQpO1xyXG4gICAgcmV0dXJuIHVzZXJSZXN1bHRzLmNvbmNhdChidWlsdGluUmVzdWx0cykubWFwKCh2KSA9PiB2Lml0ZW0pO1xyXG4gIH0sXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgdXNlUHJvbXB0U3RvcmUgPSBjcmVhdGVQZXJzaXN0U3RvcmUoXHJcbiAge1xyXG4gICAgY291bnRlcjogMCxcclxuICAgIHByb21wdHM6IHt9IGFzIFJlY29yZDxzdHJpbmcsIFByb21wdD4sXHJcbiAgfSxcclxuXHJcbiAgKHNldCwgZ2V0KSA9PiAoe1xyXG4gICAgYWRkKHByb21wdDogUHJvbXB0KSB7XHJcbiAgICAgIGNvbnN0IHByb21wdHMgPSBnZXQoKS5wcm9tcHRzO1xyXG4gICAgICBwcm9tcHQuaWQgPSBuYW5vaWQoKTtcclxuICAgICAgcHJvbXB0LmlzVXNlciA9IHRydWU7XHJcbiAgICAgIHByb21wdC5jcmVhdGVkQXQgPSBEYXRlLm5vdygpO1xyXG4gICAgICBwcm9tcHRzW3Byb21wdC5pZF0gPSBwcm9tcHQ7XHJcblxyXG4gICAgICBzZXQoKCkgPT4gKHtcclxuICAgICAgICBwcm9tcHRzOiBwcm9tcHRzLFxyXG4gICAgICB9KSk7XHJcblxyXG4gICAgICByZXR1cm4gcHJvbXB0LmlkITtcclxuICAgIH0sXHJcblxyXG4gICAgZ2V0KGlkOiBzdHJpbmcpIHtcclxuICAgICAgY29uc3QgdGFyZ2V0UHJvbXB0ID0gZ2V0KCkucHJvbXB0c1tpZF07XHJcblxyXG4gICAgICBpZiAoIXRhcmdldFByb21wdCkge1xyXG4gICAgICAgIHJldHVybiBTZWFyY2hTZXJ2aWNlLmJ1aWx0aW5Qcm9tcHRzLmZpbmQoKHYpID0+IHYuaWQgPT09IGlkKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHRhcmdldFByb21wdDtcclxuICAgIH0sXHJcblxyXG4gICAgcmVtb3ZlKGlkOiBzdHJpbmcpIHtcclxuICAgICAgY29uc3QgcHJvbXB0cyA9IGdldCgpLnByb21wdHM7XHJcbiAgICAgIGRlbGV0ZSBwcm9tcHRzW2lkXTtcclxuXHJcbiAgICAgIE9iamVjdC5lbnRyaWVzKHByb21wdHMpLnNvbWUoKFtrZXksIHByb21wdF0pID0+IHtcclxuICAgICAgICBpZiAocHJvbXB0LmlkID09PSBpZCkge1xyXG4gICAgICAgICAgZGVsZXRlIHByb21wdHNba2V5XTtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgU2VhcmNoU2VydmljZS5yZW1vdmUoaWQpO1xyXG5cclxuICAgICAgc2V0KCgpID0+ICh7XHJcbiAgICAgICAgcHJvbXB0cyxcclxuICAgICAgICBjb3VudGVyOiBnZXQoKS5jb3VudGVyICsgMSxcclxuICAgICAgfSkpO1xyXG4gICAgfSxcclxuXHJcbiAgICBnZXRVc2VyUHJvbXB0cygpIHtcclxuICAgICAgY29uc3QgdXNlclByb21wdHMgPSBPYmplY3QudmFsdWVzKGdldCgpLnByb21wdHMgPz8ge30pO1xyXG4gICAgICB1c2VyUHJvbXB0cy5zb3J0KChhLCBiKSA9PlxyXG4gICAgICAgIGIuaWQgJiYgYS5pZCA/IGIuY3JlYXRlZEF0IC0gYS5jcmVhdGVkQXQgOiAwLFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gdXNlclByb21wdHM7XHJcbiAgICB9LFxyXG5cclxuICAgIHVwZGF0ZVByb21wdChpZDogc3RyaW5nLCB1cGRhdGVyOiAocHJvbXB0OiBQcm9tcHQpID0+IHZvaWQpIHtcclxuICAgICAgY29uc3QgcHJvbXB0ID0gZ2V0KCkucHJvbXB0c1tpZF0gPz8ge1xyXG4gICAgICAgIHRpdGxlOiBcIlwiLFxyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCIsXHJcbiAgICAgICAgaWQsXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBTZWFyY2hTZXJ2aWNlLnJlbW92ZShpZCk7XHJcbiAgICAgIHVwZGF0ZXIocHJvbXB0KTtcclxuICAgICAgY29uc3QgcHJvbXB0cyA9IGdldCgpLnByb21wdHM7XHJcbiAgICAgIHByb21wdHNbaWRdID0gcHJvbXB0O1xyXG4gICAgICBzZXQoKCkgPT4gKHsgcHJvbXB0cyB9KSk7XHJcbiAgICAgIFNlYXJjaFNlcnZpY2UuYWRkKHByb21wdCk7XHJcbiAgICB9LFxyXG5cclxuICAgIHNlYXJjaCh0ZXh0OiBzdHJpbmcpIHtcclxuICAgICAgaWYgKHRleHQubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgLy8gcmV0dXJuIGFsbCByb21wdHNcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRVc2VyUHJvbXB0cygpLmNvbmNhdChTZWFyY2hTZXJ2aWNlLmJ1aWx0aW5Qcm9tcHRzKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gU2VhcmNoU2VydmljZS5zZWFyY2godGV4dCkgYXMgUHJvbXB0W107XHJcbiAgICB9LFxyXG4gIH0pLFxyXG4gIHtcclxuICAgIG5hbWU6IFN0b3JlS2V5LlByb21wdCxcclxuICAgIHZlcnNpb246IDMsXHJcblxyXG4gICAgbWlncmF0ZShzdGF0ZSwgdmVyc2lvbikge1xyXG4gICAgICBjb25zdCBuZXdTdGF0ZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3RhdGUpKSBhcyB7XHJcbiAgICAgICAgcHJvbXB0czogUmVjb3JkPHN0cmluZywgUHJvbXB0PjtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGlmICh2ZXJzaW9uIDwgMykge1xyXG4gICAgICAgIE9iamVjdC52YWx1ZXMobmV3U3RhdGUucHJvbXB0cykuZm9yRWFjaCgocCkgPT4gKHAuaWQgPSBuYW5vaWQoKSkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gbmV3U3RhdGUgYXMgYW55O1xyXG4gICAgfSxcclxuXHJcbiAgICBvblJlaHlkcmF0ZVN0b3JhZ2Uoc3RhdGUpIHtcclxuICAgICAgLy8gU2tpcCBzdG9yZSByZWh5ZHJhdGlvbiBvbiBzZXJ2ZXIgc2lkZVxyXG4gICAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgUFJPTVBUX1VSTCA9IFwiLi9wcm9tcHRzLmpzb25cIjtcclxuXHJcbiAgICAgIHR5cGUgUHJvbXB0TGlzdCA9IEFycmF5PFtzdHJpbmcsIHN0cmluZ10+O1xyXG5cclxuICAgICAgZmV0Y2goUFJPTVBUX1VSTClcclxuICAgICAgICAudGhlbigocmVzKSA9PiByZXMuanNvbigpKVxyXG4gICAgICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICAgIGxldCBmZXRjaFByb21wdHMgPSBbcmVzLmVuLCByZXMudHcsIHJlcy5jbl07XHJcbiAgICAgICAgICBpZiAoZ2V0TGFuZygpID09PSBcImNuXCIpIHtcclxuICAgICAgICAgICAgZmV0Y2hQcm9tcHRzID0gZmV0Y2hQcm9tcHRzLnJldmVyc2UoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnN0IGJ1aWx0aW5Qcm9tcHRzID0gZmV0Y2hQcm9tcHRzLm1hcCgocHJvbXB0TGlzdDogUHJvbXB0TGlzdCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gcHJvbXB0TGlzdC5tYXAoXHJcbiAgICAgICAgICAgICAgKFt0aXRsZSwgY29udGVudF0pID0+XHJcbiAgICAgICAgICAgICAgICAoe1xyXG4gICAgICAgICAgICAgICAgICBpZDogbmFub2lkKCksXHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICBjb250ZW50LFxyXG4gICAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IERhdGUubm93KCksXHJcbiAgICAgICAgICAgICAgICB9KSBhcyBQcm9tcHQsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICBjb25zdCB1c2VyUHJvbXB0cyA9IHVzZVByb21wdFN0b3JlLmdldFN0YXRlKCkuZ2V0VXNlclByb21wdHMoKSA/PyBbXTtcclxuXHJcbiAgICAgICAgICBjb25zdCBhbGxQcm9tcHRzRm9yU2VhcmNoID0gYnVpbHRpblByb21wdHNcclxuICAgICAgICAgICAgLnJlZHVjZSgocHJlLCBjdXIpID0+IHByZS5jb25jYXQoY3VyKSwgW10pXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKHYpID0+ICEhdi50aXRsZSAmJiAhIXYuY29udGVudCk7XHJcbiAgICAgICAgICBTZWFyY2hTZXJ2aWNlLmNvdW50LmJ1aWx0aW4gPVxyXG4gICAgICAgICAgICByZXMuZW4ubGVuZ3RoICsgcmVzLmNuLmxlbmd0aCArIHJlcy50dy5sZW5ndGg7XHJcbiAgICAgICAgICBTZWFyY2hTZXJ2aWNlLmluaXQoYWxsUHJvbXB0c0ZvclNlYXJjaCwgdXNlclByb21wdHMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSxcclxuICB9LFxyXG4pO1xyXG4iXSwibmFtZXMiOlsiRnVzZSIsIm5hbm9pZCIsIlN0b3JlS2V5IiwiZ2V0TGFuZyIsImNyZWF0ZVBlcnNpc3RTdG9yZSIsIlNlYXJjaFNlcnZpY2UiLCJyZWFkeSIsImJ1aWx0aW5FbmdpbmUiLCJrZXlzIiwidXNlckVuZ2luZSIsImNvdW50IiwiYnVpbHRpbiIsImFsbFByb21wdHMiLCJidWlsdGluUHJvbXB0cyIsImluaXQiLCJ1c2VyUHJvbXB0cyIsImNvbmNhdCIsInNsaWNlIiwic2V0Q29sbGVjdGlvbiIsInJlbW92ZSIsImlkIiwiZG9jIiwiYWRkIiwicHJvbXB0Iiwic2VhcmNoIiwidGV4dCIsInVzZXJSZXN1bHRzIiwiYnVpbHRpblJlc3VsdHMiLCJtYXAiLCJ2IiwiaXRlbSIsInVzZVByb21wdFN0b3JlIiwiY291bnRlciIsInByb21wdHMiLCJzZXQiLCJnZXQiLCJpc1VzZXIiLCJjcmVhdGVkQXQiLCJEYXRlIiwibm93IiwidGFyZ2V0UHJvbXB0IiwiZmluZCIsIk9iamVjdCIsImVudHJpZXMiLCJzb21lIiwia2V5IiwiZ2V0VXNlclByb21wdHMiLCJ2YWx1ZXMiLCJzb3J0IiwiYSIsImIiLCJ1cGRhdGVQcm9tcHQiLCJ1cGRhdGVyIiwidGl0bGUiLCJjb250ZW50IiwibGVuZ3RoIiwibmFtZSIsIlByb21wdCIsInZlcnNpb24iLCJtaWdyYXRlIiwic3RhdGUiLCJuZXdTdGF0ZSIsIkpTT04iLCJwYXJzZSIsInN0cmluZ2lmeSIsImZvckVhY2giLCJwIiwib25SZWh5ZHJhdGVTdG9yYWdlIiwiUFJPTVBUX1VSTCIsImZldGNoIiwidGhlbiIsInJlcyIsImpzb24iLCJmZXRjaFByb21wdHMiLCJlbiIsInR3IiwiY24iLCJyZXZlcnNlIiwicHJvbXB0TGlzdCIsImdldFN0YXRlIiwiYWxsUHJvbXB0c0ZvclNlYXJjaCIsInJlZHVjZSIsInByZSIsImN1ciIsImZpbHRlciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/store/prompt.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/store/sync.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/store/sync.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useSyncStore: () => (/* binding */ useSyncStore)\n/* harmony export */ });\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _utils_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/store */ \"(ssr)/./app/utils/store.ts\");\n/* harmony import */ var _utils_sync__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/sync */ \"(ssr)/./app/utils/sync.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ \"(ssr)/./app/utils.ts\");\n/* harmony import */ var _components_ui_lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/ui-lib */ \"(ssr)/./app/components/ui-lib.tsx\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../locales */ \"(ssr)/./app/locales/index.ts\");\n/* harmony import */ var _utils_cloud__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/cloud */ \"(ssr)/./app/utils/cloud/index.ts\");\n\n\n\n\n\n\n\n\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_0__.getClientConfig)()?.isApp;\nconst DEFAULT_SYNC_STATE = {\n provider: _utils_cloud__WEBPACK_IMPORTED_MODULE_7__.ProviderType.WebDAV,\n useProxy: true,\n proxyUrl: _constant__WEBPACK_IMPORTED_MODULE_1__.ApiPath.Cors,\n webdav: {\n endpoint: \"\",\n username: \"\",\n password: \"\"\n },\n upstash: {\n endpoint: \"\",\n username: _constant__WEBPACK_IMPORTED_MODULE_1__.STORAGE_KEY,\n apiKey: \"\"\n },\n lastSyncTime: 0,\n lastProvider: \"\"\n};\nconst useSyncStore = (0,_utils_store__WEBPACK_IMPORTED_MODULE_2__.createPersistStore)(DEFAULT_SYNC_STATE, (set, get)=>({\n cloudSync () {\n const config = get()[get().provider];\n return Object.values(config).every((c)=>c.toString().length > 0);\n },\n markSyncTime () {\n set({\n lastSyncTime: Date.now(),\n lastProvider: get().provider\n });\n },\n export () {\n const state = (0,_utils_sync__WEBPACK_IMPORTED_MODULE_3__.getLocalAppState)();\n const datePart = isApp ? `${new Date().toLocaleDateString().replace(/\\//g, \"_\")} ${new Date().toLocaleTimeString().replace(/:/g, \"_\")}` : new Date().toLocaleString();\n const fileName = `Backup-${datePart}.json`;\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.downloadAs)(JSON.stringify(state), fileName);\n },\n async import () {\n const rawContent = await (0,_utils__WEBPACK_IMPORTED_MODULE_4__.readFromFile)();\n try {\n const remoteState = JSON.parse(rawContent);\n const localState = (0,_utils_sync__WEBPACK_IMPORTED_MODULE_3__.getLocalAppState)();\n (0,_utils_sync__WEBPACK_IMPORTED_MODULE_3__.mergeAppState)(localState, remoteState);\n (0,_utils_sync__WEBPACK_IMPORTED_MODULE_3__.setLocalAppState)(localState);\n location.reload();\n } catch (e) {\n console.error(\"[Import]\", e);\n (0,_components_ui_lib__WEBPACK_IMPORTED_MODULE_5__.showToast)(_locales__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Settings.Sync.ImportFailed);\n }\n },\n getClient () {\n const provider = get().provider;\n const client = (0,_utils_cloud__WEBPACK_IMPORTED_MODULE_7__.createSyncClient)(provider, get());\n return client;\n },\n async sync () {\n const localState = (0,_utils_sync__WEBPACK_IMPORTED_MODULE_3__.getLocalAppState)();\n const provider = get().provider;\n const config = get()[provider];\n const client = this.getClient();\n try {\n const remoteState = await client.get(config.username);\n if (!remoteState || remoteState === \"\") {\n await client.set(config.username, JSON.stringify(localState));\n console.log(\"[Sync] Remote state is empty, using local state instead.\");\n return;\n } else {\n const parsedRemoteState = JSON.parse(await client.get(config.username));\n (0,_utils_sync__WEBPACK_IMPORTED_MODULE_3__.mergeAppState)(localState, parsedRemoteState);\n (0,_utils_sync__WEBPACK_IMPORTED_MODULE_3__.setLocalAppState)(localState);\n }\n } catch (e) {\n console.log(\"[Sync] failed to get remote state\", e);\n throw e;\n }\n await client.set(config.username, JSON.stringify(localState));\n this.markSyncTime();\n },\n async check () {\n const client = this.getClient();\n return await client.check();\n }\n }), {\n name: _constant__WEBPACK_IMPORTED_MODULE_1__.StoreKey.Sync,\n version: 1.2,\n migrate (persistedState, version) {\n const newState = persistedState;\n if (version < 1.1) {\n newState.upstash.username = _constant__WEBPACK_IMPORTED_MODULE_1__.STORAGE_KEY;\n }\n if (version < 1.2) {\n if (persistedState.proxyUrl === \"/api/cors/\") {\n newState.proxyUrl = \"\";\n }\n }\n return newState;\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q21ELFlBQVlhO29CQUMxQi9ELDZEQUFnQkEsQ0FBQ2tEO2dCQUNuQjtZQUNGLEVBQUUsT0FBT0csR0FBRztnQkFDVkMsUUFBUVEsR0FBRyxDQUFDLHFDQUFxQ1Q7Z0JBQ2pELE1BQU1BO1lBQ1I7WUFFQSxNQUFNTyxPQUFPckMsR0FBRyxDQUFDRyxPQUFPVixRQUFRLEVBQUU0QixLQUFLQyxTQUFTLENBQUNLO1lBRWpELElBQUksQ0FBQ2pCLFlBQVk7UUFDbkI7UUFFQSxNQUFNK0I7WUFDSixNQUFNSixTQUFTLElBQUksQ0FBQ0QsU0FBUztZQUM3QixPQUFPLE1BQU1DLE9BQU9JLEtBQUs7UUFDM0I7SUFDRixJQUNBO0lBQ0VDLE1BQU1yRSwrQ0FBUUEsQ0FBQzZELElBQUk7SUFDbkJTLFNBQVM7SUFFVEMsU0FBUUMsY0FBYyxFQUFFRixPQUFPO1FBQzdCLE1BQU1HLFdBQVdEO1FBRWpCLElBQUlGLFVBQVUsS0FBSztZQUNqQkcsU0FBU25ELE9BQU8sQ0FBQ0YsUUFBUSxHQUFHckIsa0RBQVdBO1FBQ3pDO1FBRUEsSUFBSXVFLFVBQVUsS0FBSztZQUNqQixJQUNFLGVBQThDdEQsUUFBUSxLQUN0RCxjQUNBO2dCQUNBeUQsU0FBU3pELFFBQVEsR0FBRztZQUN0QjtRQUNGO1FBRUEsT0FBT3lEO0lBQ1Q7QUFDRixHQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvc3RvcmUvc3luYy50cz85YzU0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldENsaWVudENvbmZpZyB9IGZyb20gXCIuLi9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB7IEFwaVBhdGgsIFNUT1JBR0VfS0VZLCBTdG9yZUtleSB9IGZyb20gXCIuLi9jb25zdGFudFwiO1xyXG5pbXBvcnQgeyBjcmVhdGVQZXJzaXN0U3RvcmUgfSBmcm9tIFwiLi4vdXRpbHMvc3RvcmVcIjtcclxuaW1wb3J0IHtcclxuICBBcHBTdGF0ZSxcclxuICBnZXRMb2NhbEFwcFN0YXRlLFxyXG4gIEdldFN0b3JlU3RhdGUsXHJcbiAgbWVyZ2VBcHBTdGF0ZSxcclxuICBzZXRMb2NhbEFwcFN0YXRlLFxyXG59IGZyb20gXCIuLi91dGlscy9zeW5jXCI7XHJcbmltcG9ydCB7IGRvd25sb2FkQXMsIHJlYWRGcm9tRmlsZSB9IGZyb20gXCIuLi91dGlsc1wiO1xyXG5pbXBvcnQgeyBzaG93VG9hc3QgfSBmcm9tIFwiLi4vY29tcG9uZW50cy91aS1saWJcIjtcclxuaW1wb3J0IExvY2FsZSBmcm9tIFwiLi4vbG9jYWxlc1wiO1xyXG5pbXBvcnQgeyBjcmVhdGVTeW5jQ2xpZW50LCBQcm92aWRlclR5cGUgfSBmcm9tIFwiLi4vdXRpbHMvY2xvdWRcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgV2ViRGF2Q29uZmlnIHtcclxuICBzZXJ2ZXI6IHN0cmluZztcclxuICB1c2VybmFtZTogc3RyaW5nO1xyXG4gIHBhc3N3b3JkOiBzdHJpbmc7XHJcbn1cclxuXHJcbmNvbnN0IGlzQXBwID0gISFnZXRDbGllbnRDb25maWcoKT8uaXNBcHA7XHJcbmV4cG9ydCB0eXBlIFN5bmNTdG9yZSA9IEdldFN0b3JlU3RhdGU8dHlwZW9mIHVzZVN5bmNTdG9yZT47XHJcblxyXG5jb25zdCBERUZBVUxUX1NZTkNfU1RBVEUgPSB7XHJcbiAgcHJvdmlkZXI6IFByb3ZpZGVyVHlwZS5XZWJEQVYsXHJcbiAgdXNlUHJveHk6IHRydWUsXHJcbiAgcHJveHlVcmw6IEFwaVBhdGguQ29ycyBhcyBzdHJpbmcsXHJcblxyXG4gIHdlYmRhdjoge1xyXG4gICAgZW5kcG9pbnQ6IFwiXCIsXHJcbiAgICB1c2VybmFtZTogXCJcIixcclxuICAgIHBhc3N3b3JkOiBcIlwiLFxyXG4gIH0sXHJcblxyXG4gIHVwc3Rhc2g6IHtcclxuICAgIGVuZHBvaW50OiBcIlwiLFxyXG4gICAgdXNlcm5hbWU6IFNUT1JBR0VfS0VZLFxyXG4gICAgYXBpS2V5OiBcIlwiLFxyXG4gIH0sXHJcblxyXG4gIGxhc3RTeW5jVGltZTogMCxcclxuICBsYXN0UHJvdmlkZXI6IFwiXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgdXNlU3luY1N0b3JlID0gY3JlYXRlUGVyc2lzdFN0b3JlKFxyXG4gIERFRkFVTFRfU1lOQ19TVEFURSxcclxuICAoc2V0LCBnZXQpID0+ICh7XHJcbiAgICBjbG91ZFN5bmMoKSB7XHJcbiAgICAgIGNvbnN0IGNvbmZpZyA9IGdldCgpW2dldCgpLnByb3ZpZGVyXTtcclxuICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoY29uZmlnKS5ldmVyeSgoYykgPT4gYy50b1N0cmluZygpLmxlbmd0aCA+IDApO1xyXG4gICAgfSxcclxuXHJcbiAgICBtYXJrU3luY1RpbWUoKSB7XHJcbiAgICAgIHNldCh7IGxhc3RTeW5jVGltZTogRGF0ZS5ub3coKSwgbGFzdFByb3ZpZGVyOiBnZXQoKS5wcm92aWRlciB9KTtcclxuICAgIH0sXHJcblxyXG4gICAgZXhwb3J0KCkge1xyXG4gICAgICBjb25zdCBzdGF0ZSA9IGdldExvY2FsQXBwU3RhdGUoKTtcclxuICAgICAgY29uc3QgZGF0ZVBhcnQgPSBpc0FwcFxyXG4gICAgICAgID8gYCR7bmV3IERhdGUoKS50b0xvY2FsZURhdGVTdHJpbmcoKS5yZXBsYWNlKC9cXC8vZywgXCJfXCIpfSAke25ldyBEYXRlKClcclxuICAgICAgICAgICAgLnRvTG9jYWxlVGltZVN0cmluZygpXHJcbiAgICAgICAgICAgIC5yZXBsYWNlKC86L2csIFwiX1wiKX1gXHJcbiAgICAgICAgOiBuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKCk7XHJcblxyXG4gICAgICBjb25zdCBmaWxlTmFtZSA9IGBCYWNrdXAtJHtkYXRlUGFydH0uanNvbmA7XHJcbiAgICAgIGRvd25sb2FkQXMoSlNPTi5zdHJpbmdpZnkoc3RhdGUpLCBmaWxlTmFtZSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGFzeW5jIGltcG9ydCgpIHtcclxuICAgICAgY29uc3QgcmF3Q29udGVudCA9IGF3YWl0IHJlYWRGcm9tRmlsZSgpO1xyXG5cclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCByZW1vdGVTdGF0ZSA9IEpTT04ucGFyc2UocmF3Q29udGVudCkgYXMgQXBwU3RhdGU7XHJcbiAgICAgICAgY29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsQXBwU3RhdGUoKTtcclxuICAgICAgICBtZXJnZUFwcFN0YXRlKGxvY2FsU3RhdGUsIHJlbW90ZVN0YXRlKTtcclxuICAgICAgICBzZXRMb2NhbEFwcFN0YXRlKGxvY2FsU3RhdGUpO1xyXG4gICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcIltJbXBvcnRdXCIsIGUpO1xyXG4gICAgICAgIHNob3dUb2FzdChMb2NhbGUuU2V0dGluZ3MuU3luYy5JbXBvcnRGYWlsZWQpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIGdldENsaWVudCgpIHtcclxuICAgICAgY29uc3QgcHJvdmlkZXIgPSBnZXQoKS5wcm92aWRlcjtcclxuICAgICAgY29uc3QgY2xpZW50ID0gY3JlYXRlU3luY0NsaWVudChwcm92aWRlciwgZ2V0KCkpO1xyXG4gICAgICByZXR1cm4gY2xpZW50O1xyXG4gICAgfSxcclxuXHJcbiAgICBhc3luYyBzeW5jKCkge1xyXG4gICAgICBjb25zdCBsb2NhbFN0YXRlID0gZ2V0TG9jYWxBcHBTdGF0ZSgpO1xyXG4gICAgICBjb25zdCBwcm92aWRlciA9IGdldCgpLnByb3ZpZGVyO1xyXG4gICAgICBjb25zdCBjb25maWcgPSBnZXQoKVtwcm92aWRlcl07XHJcbiAgICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuZ2V0Q2xpZW50KCk7XHJcblxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IHJlbW90ZVN0YXRlID0gYXdhaXQgY2xpZW50LmdldChjb25maWcudXNlcm5hbWUpO1xyXG4gICAgICAgIGlmICghcmVtb3RlU3RhdGUgfHwgcmVtb3RlU3RhdGUgPT09IFwiXCIpIHtcclxuICAgICAgICAgIGF3YWl0IGNsaWVudC5zZXQoY29uZmlnLnVzZXJuYW1lLCBKU09OLnN0cmluZ2lmeShsb2NhbFN0YXRlKSk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgXCJbU3luY10gUmVtb3RlIHN0YXRlIGlzIGVtcHR5LCB1c2luZyBsb2NhbCBzdGF0ZSBpbnN0ZWFkLlwiLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgcGFyc2VkUmVtb3RlU3RhdGUgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgICAgICBhd2FpdCBjbGllbnQuZ2V0KGNvbmZpZy51c2VybmFtZSksXHJcbiAgICAgICAgICApIGFzIEFwcFN0YXRlO1xyXG4gICAgICAgICAgbWVyZ2VBcHBTdGF0ZShsb2NhbFN0YXRlLCBwYXJzZWRSZW1vdGVTdGF0ZSk7XHJcbiAgICAgICAgICBzZXRMb2NhbEFwcFN0YXRlKGxvY2FsU3RhdGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiW1N5bmNdIGZhaWxlZCB0byBnZXQgcmVtb3RlIHN0YXRlXCIsIGUpO1xyXG4gICAgICAgIHRocm93IGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGF3YWl0IGNsaWVudC5zZXQoY29uZmlnLnVzZXJuYW1lLCBKU09OLnN0cmluZ2lmeShsb2NhbFN0YXRlKSk7XHJcblxyXG4gICAgICB0aGlzLm1hcmtTeW5jVGltZSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICBhc3luYyBjaGVjaygpIHtcclxuICAgICAgY29uc3QgY2xpZW50ID0gdGhpcy5nZXRDbGllbnQoKTtcclxuICAgICAgcmV0dXJuIGF3YWl0IGNsaWVudC5jaGVjaygpO1xyXG4gICAgfSxcclxuICB9KSxcclxuICB7XHJcbiAgICBuYW1lOiBTdG9yZUtleS5TeW5jLFxyXG4gICAgdmVyc2lvbjogMS4yLFxyXG5cclxuICAgIG1pZ3JhdGUocGVyc2lzdGVkU3RhdGUsIHZlcnNpb24pIHtcclxuICAgICAgY29uc3QgbmV3U3RhdGUgPSBwZXJzaXN0ZWRTdGF0ZSBhcyB0eXBlb2YgREVGQVVMVF9TWU5DX1NUQVRFO1xyXG5cclxuICAgICAgaWYgKHZlcnNpb24gPCAxLjEpIHtcclxuICAgICAgICBuZXdTdGF0ZS51cHN0YXNoLnVzZXJuYW1lID0gU1RPUkFHRV9LRVk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh2ZXJzaW9uIDwgMS4yKSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgKHBlcnNpc3RlZFN0YXRlIGFzIHR5cGVvZiBERUZBVUxUX1NZTkNfU1RBVEUpLnByb3h5VXJsID09PVxyXG4gICAgICAgICAgXCIvYXBpL2NvcnMvXCJcclxuICAgICAgICApIHtcclxuICAgICAgICAgIG5ld1N0YXRlLnByb3h5VXJsID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBuZXdTdGF0ZSBhcyBhbnk7XHJcbiAgICB9LFxyXG4gIH0sXHJcbik7XHJcbiJdLCJuYW1lcyI6WyJnZXRDbGllbnRDb25maWciLCJBcGlQYXRoIiwiU1RPUkFHRV9LRVkiLCJTdG9yZUtleSIsImNyZWF0ZVBlcnNpc3RTdG9yZSIsImdldExvY2FsQXBwU3RhdGUiLCJtZXJnZUFwcFN0YXRlIiwic2V0TG9jYWxBcHBTdGF0ZSIsImRvd25sb2FkQXMiLCJyZWFkRnJvbUZpbGUiLCJzaG93VG9hc3QiLCJMb2NhbGUiLCJjcmVhdGVTeW5jQ2xpZW50IiwiUHJvdmlkZXJUeXBlIiwiaXNBcHAiLCJERUZBVUxUX1NZTkNfU1RBVEUiLCJwcm92aWRlciIsIldlYkRBViIsInVzZVByb3h5IiwicHJveHlVcmwiLCJDb3JzIiwid2ViZGF2IiwiZW5kcG9pbnQiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwidXBzdGFzaCIsImFwaUtleSIsImxhc3RTeW5jVGltZSIsImxhc3RQcm92aWRlciIsInVzZVN5bmNTdG9yZSIsInNldCIsImdldCIsImNsb3VkU3luYyIsImNvbmZpZyIsIk9iamVjdCIsInZhbHVlcyIsImV2ZXJ5IiwiYyIsInRvU3RyaW5nIiwibGVuZ3RoIiwibWFya1N5bmNUaW1lIiwiRGF0ZSIsIm5vdyIsImV4cG9ydCIsInN0YXRlIiwiZGF0ZVBhcnQiLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJyZXBsYWNlIiwidG9Mb2NhbGVUaW1lU3RyaW5nIiwidG9Mb2NhbGVTdHJpbmciLCJmaWxlTmFtZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJpbXBvcnQiLCJyYXdDb250ZW50IiwicmVtb3RlU3RhdGUiLCJwYXJzZSIsImxvY2FsU3RhdGUiLCJsb2NhdGlvbiIsInJlbG9hZCIsImUiLCJjb25zb2xlIiwiZXJyb3IiLCJTZXR0aW5ncyIsIlN5bmMiLCJJbXBvcnRGYWlsZWQiLCJnZXRDbGllbnQiLCJjbGllbnQiLCJzeW5jIiwibG9nIiwicGFyc2VkUmVtb3RlU3RhdGUiLCJjaGVjayIsIm5hbWUiLCJ2ZXJzaW9uIiwibWlncmF0ZSIsInBlcnNpc3RlZFN0YXRlIiwibmV3U3RhdGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/store/sync.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/store/update.ts":
|
|
|
/*!*****************************!*\
|
|
|
!*** ./app/store/update.ts ***!
|
|
|
\*****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useUpdateStore: () => (/* binding */ useUpdateStore)\n/* harmony export */ });\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../config/client */ \"(ssr)/./app/config/client.ts\");\n/* harmony import */ var _utils_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/store */ \"(ssr)/./app/utils/store.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ \"(ssr)/./app/utils.ts\");\n/* harmony import */ var _icons_chatgpt_png__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/chatgpt.png */ \"(ssr)/./app/icons/chatgpt.png\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../locales */ \"(ssr)/./app/locales/index.ts\");\n/* harmony import */ var _client_api__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../client/api */ \"(ssr)/./app/client/api.ts\");\n\n\n\n\n\n\n\nconst ONE_MINUTE = 60 * 1000;\nconst isApp = !!(0,_config_client__WEBPACK_IMPORTED_MODULE_1__.getClientConfig)()?.isApp;\nfunction formatVersionDate(t) {\n const d = new Date(+t);\n const year = d.getUTCFullYear();\n const month = d.getUTCMonth() + 1;\n const day = d.getUTCDate();\n return [\n year.toString(),\n month.toString().padStart(2, \"0\"),\n day.toString().padStart(2, \"0\")\n ].join(\"\");\n}\nasync function getVersion(type) {\n if (type === \"date\") {\n const data = await (await fetch(_constant__WEBPACK_IMPORTED_MODULE_0__.FETCH_COMMIT_URL)).json();\n const remoteCommitTime = data[0].commit.author.date;\n const remoteId = new Date(remoteCommitTime).getTime().toString();\n return remoteId;\n } else if (type === \"tag\") {\n const data = await (await fetch(_constant__WEBPACK_IMPORTED_MODULE_0__.FETCH_TAG_URL)).json();\n return data.at(0)?.name;\n }\n}\nconst useUpdateStore = (0,_utils_store__WEBPACK_IMPORTED_MODULE_2__.createPersistStore)({\n versionType: \"tag\",\n lastUpdate: 0,\n version: \"unknown\",\n remoteVersion: \"\",\n used: 0,\n subscription: 0,\n lastUpdateUsage: 0\n}, (set, get)=>({\n formatVersion (version) {\n if (get().versionType === \"date\") {\n version = formatVersionDate(version);\n }\n return version;\n },\n async getLatestVersion (force = false) {\n const versionType = get().versionType;\n let version = versionType === \"date\" ? (0,_config_client__WEBPACK_IMPORTED_MODULE_1__.getClientConfig)()?.commitDate : (0,_config_client__WEBPACK_IMPORTED_MODULE_1__.getClientConfig)()?.version;\n set(()=>({\n version\n }));\n const shouldCheck = Date.now() - get().lastUpdate > 2 * 60 * ONE_MINUTE;\n if (!force && !shouldCheck) return;\n set(()=>({\n lastUpdate: Date.now()\n }));\n try {\n const remoteId = await getVersion(versionType);\n set(()=>({\n remoteVersion: remoteId\n }));\n if (window.__TAURI__?.notification && isApp) {\n // Check if notification permission is granted\n await window.__TAURI__?.notification.isPermissionGranted().then((granted)=>{\n if (!granted) {\n return;\n } else {\n // Request permission to show notifications\n window.__TAURI__?.notification.requestPermission().then((permission)=>{\n if (permission === \"granted\") {\n if (version === remoteId) {\n // Show a notification using Tauri\n window.__TAURI__?.notification.sendNotification({\n title: \"NextChat\",\n body: `${_locales__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Settings.Update.IsLatest}`,\n icon: `${_icons_chatgpt_png__WEBPACK_IMPORTED_MODULE_4__[\"default\"].src}`,\n sound: \"Default\"\n });\n } else {\n const updateMessage = _locales__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Settings.Update.FoundUpdate(`${remoteId}`);\n // Show a notification for the new version using Tauri\n window.__TAURI__?.notification.sendNotification({\n title: \"NextChat\",\n body: updateMessage,\n icon: `${_icons_chatgpt_png__WEBPACK_IMPORTED_MODULE_4__[\"default\"].src}`,\n sound: \"Default\"\n });\n (0,_utils__WEBPACK_IMPORTED_MODULE_3__.clientUpdate)();\n }\n }\n });\n }\n });\n }\n console.log(\"[Got Upstream] \", remoteId);\n } catch (error) {\n console.error(\"[Fetch Upstream Commit Id]\", error);\n }\n },\n async updateUsage (force = false) {\n // only support openai for now\n const overOneMinute = Date.now() - get().lastUpdateUsage >= ONE_MINUTE;\n if (!overOneMinute && !force) return;\n set(()=>({\n lastUpdateUsage: Date.now()\n }));\n try {\n const api = new _client_api__WEBPACK_IMPORTED_MODULE_6__.ClientApi(_constant__WEBPACK_IMPORTED_MODULE_0__.ModelProvider.GPT);\n const usage = await api.llm.usage();\n if (usage) {\n set(()=>({\n used: usage.used,\n subscription: usage.total\n }));\n }\n } catch (e) {\n console.error(e.message);\n }\n }\n }), {\n name: _constant__WEBPACK_IMPORTED_MODULE_0__.StoreKey.Update,\n version: 1\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QyxjQUFjb0MsTUFBTUUsS0FBSzt3QkFDM0I7Z0JBQ0Y7WUFDRixFQUFFLE9BQU9DLEdBQUc7Z0JBQ1ZWLFFBQVFFLEtBQUssQ0FBQyxFQUFhUyxPQUFPO1lBQ3BDO1FBQ0Y7SUFDRixJQUNBO0lBQ0UvQyxNQUFNbEMsK0NBQVFBLENBQUMrRCxNQUFNO0lBQ3JCekIsU0FBUztBQUNYLEdBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9zdG9yZS91cGRhdGUudHM/MTkyNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEZFVENIX0NPTU1JVF9VUkwsXHJcbiAgRkVUQ0hfVEFHX1VSTCxcclxuICBNb2RlbFByb3ZpZGVyLFxyXG4gIFN0b3JlS2V5LFxyXG59IGZyb20gXCIuLi9jb25zdGFudFwiO1xyXG5pbXBvcnQgeyBnZXRDbGllbnRDb25maWcgfSBmcm9tIFwiLi4vY29uZmlnL2NsaWVudFwiO1xyXG5pbXBvcnQgeyBjcmVhdGVQZXJzaXN0U3RvcmUgfSBmcm9tIFwiLi4vdXRpbHMvc3RvcmVcIjtcclxuaW1wb3J0IHsgY2xpZW50VXBkYXRlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XHJcbmltcG9ydCBDaGF0R3B0SWNvbiBmcm9tIFwiLi4vaWNvbnMvY2hhdGdwdC5wbmdcIjtcclxuaW1wb3J0IExvY2FsZSBmcm9tIFwiLi4vbG9jYWxlc1wiO1xyXG5pbXBvcnQgeyBDbGllbnRBcGkgfSBmcm9tIFwiLi4vY2xpZW50L2FwaVwiO1xyXG5cclxuY29uc3QgT05FX01JTlVURSA9IDYwICogMTAwMDtcclxuY29uc3QgaXNBcHAgPSAhIWdldENsaWVudENvbmZpZygpPy5pc0FwcDtcclxuXHJcbmZ1bmN0aW9uIGZvcm1hdFZlcnNpb25EYXRlKHQ6IHN0cmluZykge1xyXG4gIGNvbnN0IGQgPSBuZXcgRGF0ZSgrdCk7XHJcbiAgY29uc3QgeWVhciA9IGQuZ2V0VVRDRnVsbFllYXIoKTtcclxuICBjb25zdCBtb250aCA9IGQuZ2V0VVRDTW9udGgoKSArIDE7XHJcbiAgY29uc3QgZGF5ID0gZC5nZXRVVENEYXRlKCk7XHJcblxyXG4gIHJldHVybiBbXHJcbiAgICB5ZWFyLnRvU3RyaW5nKCksXHJcbiAgICBtb250aC50b1N0cmluZygpLnBhZFN0YXJ0KDIsIFwiMFwiKSxcclxuICAgIGRheS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIFwiMFwiKSxcclxuICBdLmpvaW4oXCJcIik7XHJcbn1cclxuXHJcbnR5cGUgVmVyc2lvblR5cGUgPSBcImRhdGVcIiB8IFwidGFnXCI7XHJcblxyXG5hc3luYyBmdW5jdGlvbiBnZXRWZXJzaW9uKHR5cGU6IFZlcnNpb25UeXBlKSB7XHJcbiAgaWYgKHR5cGUgPT09IFwiZGF0ZVwiKSB7XHJcbiAgICBjb25zdCBkYXRhID0gKGF3YWl0IChhd2FpdCBmZXRjaChGRVRDSF9DT01NSVRfVVJMKSkuanNvbigpKSBhcyB7XHJcbiAgICAgIGNvbW1pdDoge1xyXG4gICAgICAgIGF1dGhvcjogeyBuYW1lOiBzdHJpbmc7IGRhdGU6IHN0cmluZyB9O1xyXG4gICAgICB9O1xyXG4gICAgICBzaGE6IHN0cmluZztcclxuICAgIH1bXTtcclxuICAgIGNvbnN0IHJlbW90ZUNvbW1pdFRpbWUgPSBkYXRhWzBdLmNvbW1pdC5hdXRob3IuZGF0ZTtcclxuICAgIGNvbnN0IHJlbW90ZUlkID0gbmV3IERhdGUocmVtb3RlQ29tbWl0VGltZSkuZ2V0VGltZSgpLnRvU3RyaW5nKCk7XHJcbiAgICByZXR1cm4gcmVtb3RlSWQ7XHJcbiAgfSBlbHNlIGlmICh0eXBlID09PSBcInRhZ1wiKSB7XHJcbiAgICBjb25zdCBkYXRhID0gKGF3YWl0IChhd2FpdCBmZXRjaChGRVRDSF9UQUdfVVJMKSkuanNvbigpKSBhcyB7XHJcbiAgICAgIGNvbW1pdDogeyBzaGE6IHN0cmluZzsgdXJsOiBzdHJpbmcgfTtcclxuICAgICAgbmFtZTogc3RyaW5nO1xyXG4gICAgfVtdO1xyXG4gICAgcmV0dXJuIGRhdGEuYXQoMCk/Lm5hbWU7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgdXNlVXBkYXRlU3RvcmUgPSBjcmVhdGVQZXJzaXN0U3RvcmUoXHJcbiAge1xyXG4gICAgdmVyc2lvblR5cGU6IFwidGFnXCIgYXMgVmVyc2lvblR5cGUsXHJcbiAgICBsYXN0VXBkYXRlOiAwLFxyXG4gICAgdmVyc2lvbjogXCJ1bmtub3duXCIsXHJcbiAgICByZW1vdGVWZXJzaW9uOiBcIlwiLFxyXG4gICAgdXNlZDogMCxcclxuICAgIHN1YnNjcmlwdGlvbjogMCxcclxuXHJcbiAgICBsYXN0VXBkYXRlVXNhZ2U6IDAsXHJcbiAgfSxcclxuICAoc2V0LCBnZXQpID0+ICh7XHJcbiAgICBmb3JtYXRWZXJzaW9uKHZlcnNpb246IHN0cmluZykge1xyXG4gICAgICBpZiAoZ2V0KCkudmVyc2lvblR5cGUgPT09IFwiZGF0ZVwiKSB7XHJcbiAgICAgICAgdmVyc2lvbiA9IGZvcm1hdFZlcnNpb25EYXRlKHZlcnNpb24pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB2ZXJzaW9uO1xyXG4gICAgfSxcclxuXHJcbiAgICBhc3luYyBnZXRMYXRlc3RWZXJzaW9uKGZvcmNlID0gZmFsc2UpIHtcclxuICAgICAgY29uc3QgdmVyc2lvblR5cGUgPSBnZXQoKS52ZXJzaW9uVHlwZTtcclxuICAgICAgbGV0IHZlcnNpb24gPVxyXG4gICAgICAgIHZlcnNpb25UeXBlID09PSBcImRhdGVcIlxyXG4gICAgICAgICAgPyBnZXRDbGllbnRDb25maWcoKT8uY29tbWl0RGF0ZVxyXG4gICAgICAgICAgOiBnZXRDbGllbnRDb25maWcoKT8udmVyc2lvbjtcclxuXHJcbiAgICAgIHNldCgoKSA9PiAoeyB2ZXJzaW9uIH0pKTtcclxuXHJcbiAgICAgIGNvbnN0IHNob3VsZENoZWNrID0gRGF0ZS5ub3coKSAtIGdldCgpLmxhc3RVcGRhdGUgPiAyICogNjAgKiBPTkVfTUlOVVRFO1xyXG4gICAgICBpZiAoIWZvcmNlICYmICFzaG91bGRDaGVjaykgcmV0dXJuO1xyXG5cclxuICAgICAgc2V0KCgpID0+ICh7XHJcbiAgICAgICAgbGFzdFVwZGF0ZTogRGF0ZS5ub3coKSxcclxuICAgICAgfSkpO1xyXG5cclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCByZW1vdGVJZCA9IGF3YWl0IGdldFZlcnNpb24odmVyc2lvblR5cGUpO1xyXG4gICAgICAgIHNldCgoKSA9PiAoe1xyXG4gICAgICAgICAgcmVtb3RlVmVyc2lvbjogcmVtb3RlSWQsXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICAgIGlmICh3aW5kb3cuX19UQVVSSV9fPy5ub3RpZmljYXRpb24gJiYgaXNBcHApIHtcclxuICAgICAgICAgIC8vIENoZWNrIGlmIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9uIGlzIGdyYW50ZWRcclxuICAgICAgICAgIGF3YWl0IHdpbmRvdy5fX1RBVVJJX18/Lm5vdGlmaWNhdGlvblxyXG4gICAgICAgICAgICAuaXNQZXJtaXNzaW9uR3JhbnRlZCgpXHJcbiAgICAgICAgICAgIC50aGVuKChncmFudGVkKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKCFncmFudGVkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIFJlcXVlc3QgcGVybWlzc2lvbiB0byBzaG93IG5vdGlmaWNhdGlvbnNcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5fX1RBVVJJX18/Lm5vdGlmaWNhdGlvblxyXG4gICAgICAgICAgICAgICAgICAucmVxdWVzdFBlcm1pc3Npb24oKVxyXG4gICAgICAgICAgICAgICAgICAudGhlbigocGVybWlzc2lvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwZXJtaXNzaW9uID09PSBcImdyYW50ZWRcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcnNpb24gPT09IHJlbW90ZUlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNob3cgYSBub3RpZmljYXRpb24gdXNpbmcgVGF1cmlcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Ll9fVEFVUklfXz8ubm90aWZpY2F0aW9uLnNlbmROb3RpZmljYXRpb24oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIk5leHRDaGF0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogYCR7TG9jYWxlLlNldHRpbmdzLlVwZGF0ZS5Jc0xhdGVzdH1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGljb246IGAke0NoYXRHcHRJY29uLnNyY31gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNvdW5kOiBcIkRlZmF1bHRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVNZXNzYWdlID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuVXBkYXRlLkZvdW5kVXBkYXRlKGAke3JlbW90ZUlkfWApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTaG93IGEgbm90aWZpY2F0aW9uIGZvciB0aGUgbmV3IHZlcnNpb24gdXNpbmcgVGF1cmlcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Ll9fVEFVUklfXz8ubm90aWZpY2F0aW9uLnNlbmROb3RpZmljYXRpb24oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIk5leHRDaGF0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogdXBkYXRlTWVzc2FnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBgJHtDaGF0R3B0SWNvbi5zcmN9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VuZDogXCJEZWZhdWx0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRVcGRhdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiW0dvdCBVcHN0cmVhbV0gXCIsIHJlbW90ZUlkKTtcclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKFwiW0ZldGNoIFVwc3RyZWFtIENvbW1pdCBJZF1cIiwgZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIGFzeW5jIHVwZGF0ZVVzYWdlKGZvcmNlID0gZmFsc2UpIHtcclxuICAgICAgLy8gb25seSBzdXBwb3J0IG9wZW5haSBmb3Igbm93XHJcbiAgICAgIGNvbnN0IG92ZXJPbmVNaW51dGUgPSBEYXRlLm5vdygpIC0gZ2V0KCkubGFzdFVwZGF0ZVVzYWdlID49IE9ORV9NSU5VVEU7XHJcbiAgICAgIGlmICghb3Zlck9uZU1pbnV0ZSAmJiAhZm9yY2UpIHJldHVybjtcclxuXHJcbiAgICAgIHNldCgoKSA9PiAoe1xyXG4gICAgICAgIGxhc3RVcGRhdGVVc2FnZTogRGF0ZS5ub3coKSxcclxuICAgICAgfSkpO1xyXG5cclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCBhcGkgPSBuZXcgQ2xpZW50QXBpKE1vZGVsUHJvdmlkZXIuR1BUKTtcclxuICAgICAgICBjb25zdCB1c2FnZSA9IGF3YWl0IGFwaS5sbG0udXNhZ2UoKTtcclxuXHJcbiAgICAgICAgaWYgKHVzYWdlKSB7XHJcbiAgICAgICAgICBzZXQoKCkgPT4gKHtcclxuICAgICAgICAgICAgdXNlZDogdXNhZ2UudXNlZCxcclxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uOiB1c2FnZS50b3RhbCxcclxuICAgICAgICAgIH0pKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKChlIGFzIEVycm9yKS5tZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICB9KSxcclxuICB7XHJcbiAgICBuYW1lOiBTdG9yZUtleS5VcGRhdGUsXHJcbiAgICB2ZXJzaW9uOiAxLFxyXG4gIH0sXHJcbik7XHJcbiJdLCJuYW1lcyI6WyJGRVRDSF9DT01NSVRfVVJMIiwiRkVUQ0hfVEFHX1VSTCIsIk1vZGVsUHJvdmlkZXIiLCJTdG9yZUtleSIsImdldENsaWVudENvbmZpZyIsImNyZWF0ZVBlcnNpc3RTdG9yZSIsImNsaWVudFVwZGF0ZSIsIkNoYXRHcHRJY29uIiwiTG9jYWxlIiwiQ2xpZW50QXBpIiwiT05FX01JTlVURSIsImlzQXBwIiwiZm9ybWF0VmVyc2lvbkRhdGUiLCJ0IiwiZCIsIkRhdGUiLCJ5ZWFyIiwiZ2V0VVRDRnVsbFllYXIiLCJtb250aCIsImdldFVUQ01vbnRoIiwiZGF5IiwiZ2V0VVRDRGF0ZSIsInRvU3RyaW5nIiwicGFkU3RhcnQiLCJqb2luIiwiZ2V0VmVyc2lvbiIsInR5cGUiLCJkYXRhIiwiZmV0Y2giLCJqc29uIiwicmVtb3RlQ29tbWl0VGltZSIsImNvbW1pdCIsImF1dGhvciIsImRhdGUiLCJyZW1vdGVJZCIsImdldFRpbWUiLCJhdCIsIm5hbWUiLCJ1c2VVcGRhdGVTdG9yZSIsInZlcnNpb25UeXBlIiwibGFzdFVwZGF0ZSIsInZlcnNpb24iLCJyZW1vdGVWZXJzaW9uIiwidXNlZCIsInN1YnNjcmlwdGlvbiIsImxhc3RVcGRhdGVVc2FnZSIsInNldCIsImdldCIsImZvcm1hdFZlcnNpb24iLCJnZXRMYXRlc3RWZXJzaW9uIiwiZm9yY2UiLCJjb21taXREYXRlIiwic2hvdWxkQ2hlY2siLCJub3ciLCJ3aW5kb3ciLCJfX1RBVVJJX18iLCJub3RpZmljYXRpb24iLCJpc1Blcm1pc3Npb25HcmFudGVkIiwidGhlbiIsImdyYW50ZWQiLCJyZXF1ZXN0UGVybWlzc2lvbiIsInBlcm1pc3Npb24iLCJzZW5kTm90aWZpY2F0aW9uIiwidGl0bGUiLCJib2R5IiwiU2V0dGluZ3MiLCJVcGRhdGUiLCJJc0xhdGVzdCIsImljb24iLCJzcmMiLCJzb3VuZCIsInVwZGF0ZU1lc3NhZ2UiLCJGb3VuZFVwZGF0ZSIsImNvbnNvbGUiLCJsb2ciLCJlcnJvciIsInVwZGF0ZVVzYWdlIiwib3Zlck9uZU1pbnV0ZSIsImFwaSIsIkdQVCIsInVzYWdlIiwibGxtIiwidG90YWwiLCJlIiwibWVzc2FnZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/store/update.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/utils.ts":
|
|
|
/*!**********************!*\
|
|
|
!*** ./app/utils.ts ***!
|
|
|
\**********************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MOBILE_MAX_WIDTH: () => (/* binding */ MOBILE_MAX_WIDTH),\n/* harmony export */ adapter: () => (/* binding */ adapter),\n/* harmony export */ autoGrowTextArea: () => (/* binding */ autoGrowTextArea),\n/* harmony export */ clientUpdate: () => (/* binding */ clientUpdate),\n/* harmony export */ copyToClipboard: () => (/* binding */ copyToClipboard),\n/* harmony export */ downloadAs: () => (/* binding */ downloadAs),\n/* harmony export */ fetch: () => (/* binding */ fetch),\n/* harmony export */ getCSSVar: () => (/* binding */ getCSSVar),\n/* harmony export */ getMessageImages: () => (/* binding */ getMessageImages),\n/* harmony export */ getMessageTextContent: () => (/* binding */ getMessageTextContent),\n/* harmony export */ getMessageTextContentWithoutThinking: () => (/* binding */ getMessageTextContentWithoutThinking),\n/* harmony export */ getModelSizes: () => (/* binding */ getModelSizes),\n/* harmony export */ getOperationId: () => (/* binding */ getOperationId),\n/* harmony export */ isDalle3: () => (/* binding */ isDalle3),\n/* harmony export */ isFirefox: () => (/* binding */ isFirefox),\n/* harmony export */ isIOS: () => (/* binding */ isIOS),\n/* harmony export */ isMacOS: () => (/* binding */ isMacOS),\n/* harmony export */ isVisionModel: () => (/* binding */ isVisionModel),\n/* harmony export */ readFromFile: () => (/* binding */ readFromFile),\n/* harmony export */ safeLocalStorage: () => (/* binding */ safeLocalStorage),\n/* harmony export */ selectOrCopy: () => (/* binding */ selectOrCopy),\n/* harmony export */ semverCompare: () => (/* binding */ semverCompare),\n/* harmony export */ showPlugins: () => (/* binding */ showPlugins),\n/* harmony export */ supportsCustomSize: () => (/* binding */ supportsCustomSize),\n/* harmony export */ trimTopic: () => (/* binding */ trimTopic),\n/* harmony export */ useMobileScreen: () => (/* binding */ useMobileScreen),\n/* harmony export */ useWindowSize: () => (/* binding */ useWindowSize)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_ui_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/ui-lib */ \"(ssr)/./app/components/ui-lib.tsx\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./locales */ \"(ssr)/./app/locales/index.ts\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _utils_stream__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/stream */ \"(ssr)/./app/utils/stream.ts\");\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./store */ \"(ssr)/./app/store/index.ts\");\n\n\n\n\n// import { fetch as tauriFetch, ResponseType } from \"@tauri-apps/api/http\";\n\n\n\nfunction trimTopic(topic) {\n // Fix an issue where double quotes still show in the Indonesian language\n // This will remove the specified punctuation from the end of the string\n // and also trim quotes from both the start and end if they exist.\n return topic// fix for gemini\n .replace(/^[\"“”*]+|[\"“”*]+$/g, \"\").replace(/[,。!?”“\"、,.!?*]*$/, \"\");\n}\nasync function copyToClipboard(text) {\n try {\n if (window.__TAURI__) {\n window.__TAURI__.writeText(text);\n } else {\n await navigator.clipboard.writeText(text);\n }\n (0,_components_ui_lib__WEBPACK_IMPORTED_MODULE_1__.showToast)(_locales__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Copy.Success);\n } catch (error) {\n const textArea = document.createElement(\"textarea\");\n textArea.value = text;\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n try {\n document.execCommand(\"copy\");\n (0,_components_ui_lib__WEBPACK_IMPORTED_MODULE_1__.showToast)(_locales__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Copy.Success);\n } catch (error) {\n (0,_components_ui_lib__WEBPACK_IMPORTED_MODULE_1__.showToast)(_locales__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Copy.Failed);\n }\n document.body.removeChild(textArea);\n }\n}\nasync function downloadAs(text, filename) {\n if (window.__TAURI__) {\n const result = await window.__TAURI__.dialog.save({\n defaultPath: `${filename}`,\n filters: [\n {\n name: `${filename.split(\".\").pop()} files`,\n extensions: [\n `${filename.split(\".\").pop()}`\n ]\n },\n {\n name: \"All Files\",\n extensions: [\n \"*\"\n ]\n }\n ]\n });\n if (result !== null) {\n try {\n await window.__TAURI__.fs.writeTextFile(result, text);\n (0,_components_ui_lib__WEBPACK_IMPORTED_MODULE_1__.showToast)(_locales__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Download.Success);\n } catch (error) {\n (0,_components_ui_lib__WEBPACK_IMPORTED_MODULE_1__.showToast)(_locales__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Download.Failed);\n }\n } else {\n (0,_components_ui_lib__WEBPACK_IMPORTED_MODULE_1__.showToast)(_locales__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Download.Failed);\n }\n } else {\n const element = document.createElement(\"a\");\n element.setAttribute(\"href\", \"data:text/plain;charset=utf-8,\" + encodeURIComponent(text));\n element.setAttribute(\"download\", filename);\n element.style.display = \"none\";\n document.body.appendChild(element);\n element.click();\n document.body.removeChild(element);\n }\n}\nfunction readFromFile() {\n return new Promise((res, rej)=>{\n const fileInput = document.createElement(\"input\");\n fileInput.type = \"file\";\n fileInput.accept = \"application/json\";\n fileInput.onchange = (event)=>{\n const file = event.target.files[0];\n const fileReader = new FileReader();\n fileReader.onload = (e)=>{\n res(e.target.result);\n };\n fileReader.onerror = (e)=>rej(e);\n fileReader.readAsText(file);\n };\n fileInput.click();\n });\n}\nfunction isIOS() {\n const userAgent = navigator.userAgent.toLowerCase();\n return /iphone|ipad|ipod/.test(userAgent);\n}\nfunction useWindowSize() {\n const [size, setSize] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n width: window.innerWidth,\n height: window.innerHeight\n });\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n const onResize = ()=>{\n setSize({\n width: window.innerWidth,\n height: window.innerHeight\n });\n };\n window.addEventListener(\"resize\", onResize);\n return ()=>{\n window.removeEventListener(\"resize\", onResize);\n };\n }, []);\n return size;\n}\nconst MOBILE_MAX_WIDTH = 600;\nfunction useMobileScreen() {\n const { width } = useWindowSize();\n return width <= MOBILE_MAX_WIDTH;\n}\nfunction isFirefox() {\n return typeof navigator !== \"undefined\" && /firefox/i.test(navigator.userAgent);\n}\nfunction selectOrCopy(el, content) {\n const currentSelection = window.getSelection();\n if (currentSelection?.type === \"Range\") {\n return false;\n }\n copyToClipboard(content);\n return true;\n}\nfunction getDomContentWidth(dom) {\n const style = window.getComputedStyle(dom);\n const paddingWidth = parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\n const width = dom.clientWidth - paddingWidth;\n return width;\n}\nfunction getOrCreateMeasureDom(id, init) {\n let dom = document.getElementById(id);\n if (!dom) {\n dom = document.createElement(\"span\");\n dom.style.position = \"absolute\";\n dom.style.wordBreak = \"break-word\";\n dom.style.fontSize = \"14px\";\n dom.style.transform = \"translateY(-200vh)\";\n dom.style.pointerEvents = \"none\";\n dom.style.opacity = \"0\";\n dom.id = id;\n document.body.appendChild(dom);\n init?.(dom);\n }\n return dom;\n}\nfunction autoGrowTextArea(dom) {\n const measureDom = getOrCreateMeasureDom(\"__measure\");\n const singleLineDom = getOrCreateMeasureDom(\"__single_measure\", (dom)=>{\n dom.innerText = \"TEXT_FOR_MEASURE\";\n });\n const width = getDomContentWidth(dom);\n measureDom.style.width = width + \"px\";\n measureDom.innerText = dom.value !== \"\" ? dom.value : \"1\";\n measureDom.style.fontSize = dom.style.fontSize;\n measureDom.style.fontFamily = dom.style.fontFamily;\n const endWithEmptyLine = dom.value.endsWith(\"\\n\");\n const height = parseFloat(window.getComputedStyle(measureDom).height);\n const singleLineHeight = parseFloat(window.getComputedStyle(singleLineDom).height);\n const rows = Math.round(height / singleLineHeight) + (endWithEmptyLine ? 1 : 0);\n return rows;\n}\nfunction getCSSVar(varName) {\n return getComputedStyle(document.body).getPropertyValue(varName).trim();\n}\n/**\r\n * Detects Macintosh\r\n */ function isMacOS() {\n if (false) {}\n return false;\n}\nfunction getMessageTextContent(message) {\n if (typeof message.content === \"string\") {\n return message.content;\n }\n for (const c of message.content){\n if (c.type === \"text\") {\n return c.text ?? \"\";\n }\n }\n return \"\";\n}\nfunction getMessageTextContentWithoutThinking(message) {\n let content = \"\";\n if (typeof message.content === \"string\") {\n content = message.content;\n } else {\n for (const c of message.content){\n if (c.type === \"text\") {\n content = c.text ?? \"\";\n break;\n }\n }\n }\n // Filter out thinking lines (starting with \"> \")\n return content.split(\"\\n\").filter((line)=>!line.startsWith(\"> \") && line.trim() !== \"\").join(\"\\n\").trim();\n}\nfunction getMessageImages(message) {\n if (typeof message.content === \"string\") {\n return [];\n }\n const urls = [];\n for (const c of message.content){\n if (c.type === \"image_url\") {\n urls.push(c.image_url?.url ?? \"\");\n }\n }\n return urls;\n}\nfunction isVisionModel(model) {\n const visionModels = _store__WEBPACK_IMPORTED_MODULE_5__.useAccessStore.getState().visionModels;\n const envVisionModels = visionModels?.split(\",\").map((m)=>m.trim());\n if (envVisionModels?.includes(model)) {\n return true;\n }\n return !_constant__WEBPACK_IMPORTED_MODULE_3__.EXCLUDE_VISION_MODEL_REGEXES.some((regex)=>regex.test(model)) && _constant__WEBPACK_IMPORTED_MODULE_3__.VISION_MODEL_REGEXES.some((regex)=>regex.test(model));\n}\nfunction isDalle3(model) {\n return \"dall-e-3\" === model;\n}\nfunction getModelSizes(model) {\n if (isDalle3(model)) {\n return [\n \"1024x1024\",\n \"1792x1024\",\n \"1024x1792\"\n ];\n }\n if (model.toLowerCase().includes(\"cogview\")) {\n return [\n \"1024x1024\",\n \"768x1344\",\n \"864x1152\",\n \"1344x768\",\n \"1152x864\",\n \"1440x720\",\n \"720x1440\"\n ];\n }\n return [];\n}\nfunction supportsCustomSize(model) {\n return getModelSizes(model).length > 0;\n}\nfunction showPlugins(provider, model) {\n if (provider == _constant__WEBPACK_IMPORTED_MODULE_3__.ServiceProvider.OpenAI || provider == _constant__WEBPACK_IMPORTED_MODULE_3__.ServiceProvider.Azure || provider == _constant__WEBPACK_IMPORTED_MODULE_3__.ServiceProvider.Moonshot || provider == _constant__WEBPACK_IMPORTED_MODULE_3__.ServiceProvider.ChatGLM) {\n return true;\n }\n if (provider == _constant__WEBPACK_IMPORTED_MODULE_3__.ServiceProvider.Anthropic && !model.includes(\"claude-2\")) {\n return true;\n }\n if (provider == _constant__WEBPACK_IMPORTED_MODULE_3__.ServiceProvider.Google && !model.includes(\"vision\")) {\n return true;\n }\n return false;\n}\nfunction fetch(url, options) {\n if (window.__TAURI__) {\n return (0,_utils_stream__WEBPACK_IMPORTED_MODULE_4__.fetch)(url, options);\n }\n return window.fetch(url, options);\n}\nfunction adapter(config) {\n const { baseURL, url, params, data: body, ...rest } = config;\n const path = baseURL ? `${baseURL}${url}` : url;\n const fetchUrl = params ? `${path}?${new URLSearchParams(params).toString()}` : path;\n return fetch(fetchUrl, {\n ...rest,\n body\n }).then((res)=>{\n const { status, headers, statusText } = res;\n return res.text().then((data)=>({\n status,\n statusText,\n headers,\n data\n }));\n });\n}\nfunction safeLocalStorage() {\n let storage;\n try {\n if (false) {} else {\n storage = null;\n }\n } catch (e) {\n console.error(\"localStorage is not available:\", e);\n storage = null;\n }\n return {\n getItem (key) {\n if (storage) {\n return storage.getItem(key);\n } else {\n console.warn(`Attempted to get item \"${key}\" from localStorage, but localStorage is not available.`);\n return null;\n }\n },\n setItem (key, value) {\n if (storage) {\n storage.setItem(key, value);\n } else {\n console.warn(`Attempted to set item \"${key}\" in localStorage, but localStorage is not available.`);\n }\n },\n removeItem (key) {\n if (storage) {\n storage.removeItem(key);\n } else {\n console.warn(`Attempted to remove item \"${key}\" from localStorage, but localStorage is not available.`);\n }\n },\n clear () {\n if (storage) {\n storage.clear();\n } else {\n console.warn(\"Attempted to clear localStorage, but localStorage is not available.\");\n }\n }\n };\n}\nfunction getOperationId(operation) {\n // pattern '^[a-zA-Z0-9_-]+$'\n return operation?.operationId || `${operation.method.toUpperCase()}${operation.path.replaceAll(\"/\", \"_\")}`;\n}\nfunction clientUpdate() {\n // this a wild for updating client app\n return window.__TAURI__?.updater.checkUpdate().then((updateResult)=>{\n if (updateResult.shouldUpdate) {\n window.__TAURI__?.updater.installUpdate().then((result)=>{\n (0,_components_ui_lib__WEBPACK_IMPORTED_MODULE_1__.showToast)(_locales__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Settings.Update.Success);\n }).catch((e)=>{\n console.error(\"[Install Update Error]\", e);\n (0,_components_ui_lib__WEBPACK_IMPORTED_MODULE_1__.showToast)(_locales__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Settings.Update.Failed);\n });\n }\n }).catch((e)=>{\n console.error(\"[Check Update Error]\", e);\n (0,_components_ui_lib__WEBPACK_IMPORTED_MODULE_1__.showToast)(_locales__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Settings.Update.Failed);\n });\n}\n// https://gist.github.com/iwill/a83038623ba4fef6abb9efca87ae9ccb\nfunction semverCompare(a, b) {\n if (a.startsWith(b + \"-\")) return -1;\n if (b.startsWith(a + \"-\")) return 1;\n return a.localeCompare(b, undefined, {\n numeric: true,\n sensitivity: \"case\",\n caseFirst: \"upper\"\n });\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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SyxNQUFNLENBQUN2STtRQUNOa0gsUUFBUWpLLEtBQUssQ0FBQyx3QkFBd0IrQztRQUN0Q25FLDZEQUFTQSxDQUFDQyxnREFBTUEsQ0FBQ3VNLFFBQVEsQ0FBQ0MsTUFBTSxDQUFDM0ssTUFBTTtJQUN6QztBQUNKO0FBRUEsaUVBQWlFO0FBQzFELFNBQVM2SyxjQUFjQyxDQUFTLEVBQUVDLENBQVM7SUFDaEQsSUFBSUQsRUFBRXRFLFVBQVUsQ0FBQ3VFLElBQUksTUFBTSxPQUFPLENBQUM7SUFDbkMsSUFBSUEsRUFBRXZFLFVBQVUsQ0FBQ3NFLElBQUksTUFBTSxPQUFPO0lBQ2xDLE9BQU9BLEVBQUVFLGFBQWEsQ0FBQ0QsR0FBR0UsV0FBVztRQUNuQ0MsU0FBUztRQUNUQyxhQUFhO1FBQ2JDLFdBQVc7SUFDYjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvdXRpbHMudHM/YjhkOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IHNob3dUb2FzdCB9IGZyb20gXCIuL2NvbXBvbmVudHMvdWktbGliXCI7XHJcbmltcG9ydCBMb2NhbGUgZnJvbSBcIi4vbG9jYWxlc1wiO1xyXG5pbXBvcnQgeyBSZXF1ZXN0TWVzc2FnZSB9IGZyb20gXCIuL2NsaWVudC9hcGlcIjtcclxuaW1wb3J0IHsgU2VydmljZVByb3ZpZGVyIH0gZnJvbSBcIi4vY29uc3RhbnRcIjtcclxuLy8gaW1wb3J0IHsgZmV0Y2ggYXMgdGF1cmlGZXRjaCwgUmVzcG9uc2VUeXBlIH0gZnJvbSBcIkB0YXVyaS1hcHBzL2FwaS9odHRwXCI7XHJcbmltcG9ydCB7IGZldGNoIGFzIHRhdXJpU3RyZWFtRmV0Y2ggfSBmcm9tIFwiLi91dGlscy9zdHJlYW1cIjtcclxuaW1wb3J0IHsgVklTSU9OX01PREVMX1JFR0VYRVMsIEVYQ0xVREVfVklTSU9OX01PREVMX1JFR0VYRVMgfSBmcm9tIFwiLi9jb25zdGFudFwiO1xyXG5pbXBvcnQgeyB1c2VBY2Nlc3NTdG9yZSB9IGZyb20gXCIuL3N0b3JlXCI7XHJcbmltcG9ydCB7IE1vZGVsU2l6ZSB9IGZyb20gXCIuL3R5cGluZ1wiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRyaW1Ub3BpYyh0b3BpYzogc3RyaW5nKSB7XHJcbiAgLy8gRml4IGFuIGlzc3VlIHdoZXJlIGRvdWJsZSBxdW90ZXMgc3RpbGwgc2hvdyBpbiB0aGUgSW5kb25lc2lhbiBsYW5ndWFnZVxyXG4gIC8vIFRoaXMgd2lsbCByZW1vdmUgdGhlIHNwZWNpZmllZCBwdW5jdHVhdGlvbiBmcm9tIHRoZSBlbmQgb2YgdGhlIHN0cmluZ1xyXG4gIC8vIGFuZCBhbHNvIHRyaW0gcXVvdGVzIGZyb20gYm90aCB0aGUgc3RhcnQgYW5kIGVuZCBpZiB0aGV5IGV4aXN0LlxyXG4gIHJldHVybiAoXHJcbiAgICB0b3BpY1xyXG4gICAgICAvLyBmaXggZm9yIGdlbWluaVxyXG4gICAgICAucmVwbGFjZSgvXltcIuKAnOKAnSpdK3xbXCLigJzigJ0qXSskL2csIFwiXCIpXHJcbiAgICAgIC5yZXBsYWNlKC9b77yM44CC77yB77yf4oCd4oCcXCLjgIEsLiE/Kl0qJC8sIFwiXCIpXHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvcHlUb0NsaXBib2FyZCh0ZXh0OiBzdHJpbmcpIHtcclxuICB0cnkge1xyXG4gICAgaWYgKHdpbmRvdy5fX1RBVVJJX18pIHtcclxuICAgICAgd2luZG93Ll9fVEFVUklfXy53cml0ZVRleHQodGV4dCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KTtcclxuICAgIH1cclxuXHJcbiAgICBzaG93VG9hc3QoTG9jYWxlLkNvcHkuU3VjY2Vzcyk7XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIGNvbnN0IHRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRleHRhcmVhXCIpO1xyXG4gICAgdGV4dEFyZWEudmFsdWUgPSB0ZXh0O1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXh0QXJlYSk7XHJcbiAgICB0ZXh0QXJlYS5mb2N1cygpO1xyXG4gICAgdGV4dEFyZWEuc2VsZWN0KCk7XHJcbiAgICB0cnkge1xyXG4gICAgICBkb2N1bWVudC5leGVjQ29tbWFuZChcImNvcHlcIik7XHJcbiAgICAgIHNob3dUb2FzdChMb2NhbGUuQ29weS5TdWNjZXNzKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIHNob3dUb2FzdChMb2NhbGUuQ29weS5GYWlsZWQpO1xyXG4gICAgfVxyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXh0QXJlYSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG93bmxvYWRBcyh0ZXh0OiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcpIHtcclxuICBpZiAod2luZG93Ll9fVEFVUklfXykge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgd2luZG93Ll9fVEFVUklfXy5kaWFsb2cuc2F2ZSh7XHJcbiAgICAgIGRlZmF1bHRQYXRoOiBgJHtmaWxlbmFtZX1gLFxyXG4gICAgICBmaWx0ZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogYCR7ZmlsZW5hbWUuc3BsaXQoXCIuXCIpLnBvcCgpfSBmaWxlc2AsXHJcbiAgICAgICAgICBleHRlbnNpb25zOiBbYCR7ZmlsZW5hbWUuc3BsaXQoXCIuXCIpLnBvcCgpfWBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogXCJBbGwgRmlsZXNcIixcclxuICAgICAgICAgIGV4dGVuc2lvbnM6IFtcIipcIl0sXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBhd2FpdCB3aW5kb3cuX19UQVVSSV9fLmZzLndyaXRlVGV4dEZpbGUocmVzdWx0LCB0ZXh0KTtcclxuICAgICAgICBzaG93VG9hc3QoTG9jYWxlLkRvd25sb2FkLlN1Y2Nlc3MpO1xyXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIHNob3dUb2FzdChMb2NhbGUuRG93bmxvYWQuRmFpbGVkKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2hvd1RvYXN0KExvY2FsZS5Eb3dubG9hZC5GYWlsZWQpO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShcclxuICAgICAgXCJocmVmXCIsXHJcbiAgICAgIFwiZGF0YTp0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgsXCIgKyBlbmNvZGVVUklDb21wb25lbnQodGV4dCksXHJcbiAgICApO1xyXG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJkb3dubG9hZFwiLCBmaWxlbmFtZSk7XHJcblxyXG4gICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xyXG5cclxuICAgIGVsZW1lbnQuY2xpY2soKTtcclxuXHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRGcm9tRmlsZSgpIHtcclxuICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzLCByZWopID0+IHtcclxuICAgIGNvbnN0IGZpbGVJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiKTtcclxuICAgIGZpbGVJbnB1dC50eXBlID0gXCJmaWxlXCI7XHJcbiAgICBmaWxlSW5wdXQuYWNjZXB0ID0gXCJhcHBsaWNhdGlvbi9qc29uXCI7XHJcblxyXG4gICAgZmlsZUlucHV0Lm9uY2hhbmdlID0gKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgZmlsZSA9IGV2ZW50LnRhcmdldC5maWxlc1swXTtcclxuICAgICAgY29uc3QgZmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgIGZpbGVSZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICAgIHJlcyhlLnRhcmdldC5yZXN1bHQpO1xyXG4gICAgICB9O1xyXG4gICAgICBmaWxlUmVhZGVyLm9uZXJyb3IgPSAoZSkgPT4gcmVqKGUpO1xyXG4gICAgICBmaWxlUmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7XHJcbiAgICB9O1xyXG5cclxuICAgIGZpbGVJbnB1dC5jbGljaygpO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNJT1MoKSB7XHJcbiAgY29uc3QgdXNlckFnZW50ID0gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpO1xyXG4gIHJldHVybiAvaXBob25lfGlwYWR8aXBvZC8udGVzdCh1c2VyQWdlbnQpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdXNlV2luZG93U2l6ZSgpIHtcclxuICBjb25zdCBbc2l6ZSwgc2V0U2l6ZV0gPSB1c2VTdGF0ZSh7XHJcbiAgICB3aWR0aDogd2luZG93LmlubmVyV2lkdGgsXHJcbiAgICBoZWlnaHQ6IHdpbmRvdy5pbm5lckhlaWdodCxcclxuICB9KTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IG9uUmVzaXplID0gKCkgPT4ge1xyXG4gICAgICBzZXRTaXplKHtcclxuICAgICAgICB3aWR0aDogd2luZG93LmlubmVyV2lkdGgsXHJcbiAgICAgICAgaGVpZ2h0OiB3aW5kb3cuaW5uZXJIZWlnaHQsXHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCBvblJlc2l6ZSk7XHJcblxyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgb25SZXNpemUpO1xyXG4gICAgfTtcclxuICB9LCBbXSk7XHJcblxyXG4gIHJldHVybiBzaXplO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgTU9CSUxFX01BWF9XSURUSCA9IDYwMDtcclxuZXhwb3J0IGZ1bmN0aW9uIHVzZU1vYmlsZVNjcmVlbigpIHtcclxuICBjb25zdCB7IHdpZHRoIH0gPSB1c2VXaW5kb3dTaXplKCk7XHJcblxyXG4gIHJldHVybiB3aWR0aCA8PSBNT0JJTEVfTUFYX1dJRFRIO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNGaXJlZm94KCkge1xyXG4gIHJldHVybiAoXHJcbiAgICB0eXBlb2YgbmF2aWdhdG9yICE9PSBcInVuZGVmaW5lZFwiICYmIC9maXJlZm94L2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KVxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RPckNvcHkoZWw6IEhUTUxFbGVtZW50LCBjb250ZW50OiBzdHJpbmcpIHtcclxuICBjb25zdCBjdXJyZW50U2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xyXG5cclxuICBpZiAoY3VycmVudFNlbGVjdGlvbj8udHlwZSA9PT0gXCJSYW5nZVwiKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBjb3B5VG9DbGlwYm9hcmQoY29udGVudCk7XHJcblxyXG4gIHJldHVybiB0cnVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXREb21Db250ZW50V2lkdGgoZG9tOiBIVE1MRWxlbWVudCkge1xyXG4gIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9tKTtcclxuICBjb25zdCBwYWRkaW5nV2lkdGggPVxyXG4gICAgcGFyc2VGbG9hdChzdHlsZS5wYWRkaW5nTGVmdCkgKyBwYXJzZUZsb2F0KHN0eWxlLnBhZGRpbmdSaWdodCk7XHJcbiAgY29uc3Qgd2lkdGggPSBkb20uY2xpZW50V2lkdGggLSBwYWRkaW5nV2lkdGg7XHJcbiAgcmV0dXJuIHdpZHRoO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRPckNyZWF0ZU1lYXN1cmVEb20oaWQ6IHN0cmluZywgaW5pdD86IChkb206IEhUTUxFbGVtZW50KSA9PiB2b2lkKSB7XHJcbiAgbGV0IGRvbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcclxuXHJcbiAgaWYgKCFkb20pIHtcclxuICAgIGRvbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO1xyXG4gICAgZG9tLnN0eWxlLnBvc2l0aW9uID0gXCJhYnNvbHV0ZVwiO1xyXG4gICAgZG9tLnN0eWxlLndvcmRCcmVhayA9IFwiYnJlYWstd29yZFwiO1xyXG4gICAgZG9tLnN0eWxlLmZvbnRTaXplID0gXCIxNHB4XCI7XHJcbiAgICBkb20uc3R5bGUudHJhbnNmb3JtID0gXCJ0cmFuc2xhdGVZKC0yMDB2aClcIjtcclxuICAgIGRvbS5zdHlsZS5wb2ludGVyRXZlbnRzID0gXCJub25lXCI7XHJcbiAgICBkb20uc3R5bGUub3BhY2l0eSA9IFwiMFwiO1xyXG4gICAgZG9tLmlkID0gaWQ7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbSk7XHJcbiAgICBpbml0Py4oZG9tKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBkb20hO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYXV0b0dyb3dUZXh0QXJlYShkb206IEhUTUxUZXh0QXJlYUVsZW1lbnQpIHtcclxuICBjb25zdCBtZWFzdXJlRG9tID0gZ2V0T3JDcmVhdGVNZWFzdXJlRG9tKFwiX19tZWFzdXJlXCIpO1xyXG4gIGNvbnN0IHNpbmdsZUxpbmVEb20gPSBnZXRPckNyZWF0ZU1lYXN1cmVEb20oXCJfX3NpbmdsZV9tZWFzdXJlXCIsIChkb20pID0+IHtcclxuICAgIGRvbS5pbm5lclRleHQgPSBcIlRFWFRfRk9SX01FQVNVUkVcIjtcclxuICB9KTtcclxuXHJcbiAgY29uc3Qgd2lkdGggPSBnZXREb21Db250ZW50V2lkdGgoZG9tKTtcclxuICBtZWFzdXJlRG9tLnN0eWxlLndpZHRoID0gd2lkdGggKyBcInB4XCI7XHJcbiAgbWVhc3VyZURvbS5pbm5lclRleHQgPSBkb20udmFsdWUgIT09IFwiXCIgPyBkb20udmFsdWUgOiBcIjFcIjtcclxuICBtZWFzdXJlRG9tLnN0eWxlLmZvbnRTaXplID0gZG9tLnN0eWxlLmZvbnRTaXplO1xyXG4gIG1lYXN1cmVEb20uc3R5bGUuZm9udEZhbWlseSA9IGRvbS5zdHlsZS5mb250RmFtaWx5O1xyXG4gIGNvbnN0IGVuZFdpdGhFbXB0eUxpbmUgPSBkb20udmFsdWUuZW5kc1dpdGgoXCJcXG5cIik7XHJcbiAgY29uc3QgaGVpZ2h0ID0gcGFyc2VGbG9hdCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShtZWFzdXJlRG9tKS5oZWlnaHQpO1xyXG4gIGNvbnN0IHNpbmdsZUxpbmVIZWlnaHQgPSBwYXJzZUZsb2F0KFxyXG4gICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUoc2luZ2xlTGluZURvbSkuaGVpZ2h0LFxyXG4gICk7XHJcblxyXG4gIGNvbnN0IHJvd3MgPVxyXG4gICAgTWF0aC5yb3VuZChoZWlnaHQgLyBzaW5nbGVMaW5lSGVpZ2h0KSArIChlbmRXaXRoRW1wdHlMaW5lID8gMSA6IDApO1xyXG5cclxuICByZXR1cm4gcm93cztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldENTU1Zhcih2YXJOYW1lOiBzdHJpbmcpIHtcclxuICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5nZXRQcm9wZXJ0eVZhbHVlKHZhck5hbWUpLnRyaW0oKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIERldGVjdHMgTWFjaW50b3NoXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNNYWNPUygpOiBib29sZWFuIHtcclxuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgbGV0IHVzZXJBZ2VudCA9IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG9jYWxlTG93ZXJDYXNlKCk7XHJcbiAgICBjb25zdCBtYWNpbnRvc2ggPSAvaXBob25lfGlwYWR8aXBvZHxtYWNpbnRvc2gvLnRlc3QodXNlckFnZW50KTtcclxuICAgIHJldHVybiAhIW1hY2ludG9zaDtcclxuICB9XHJcbiAgcmV0dXJuIGZhbHNlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWVzc2FnZVRleHRDb250ZW50KG1lc3NhZ2U6IFJlcXVlc3RNZXNzYWdlKSB7XHJcbiAgaWYgKHR5cGVvZiBtZXNzYWdlLmNvbnRlbnQgPT09IFwic3RyaW5nXCIpIHtcclxuICAgIHJldHVybiBtZXNzYWdlLmNvbnRlbnQ7XHJcbiAgfVxyXG4gIGZvciAoY29uc3QgYyBvZiBtZXNzYWdlLmNvbnRlbnQpIHtcclxuICAgIGlmIChjLnR5cGUgPT09IFwidGV4dFwiKSB7XHJcbiAgICAgIHJldHVybiBjLnRleHQgPz8gXCJcIjtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIFwiXCI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRNZXNzYWdlVGV4dENvbnRlbnRXaXRob3V0VGhpbmtpbmcobWVzc2FnZTogUmVxdWVzdE1lc3NhZ2UpIHtcclxuICBsZXQgY29udGVudCA9IFwiXCI7XHJcblxyXG4gIGlmICh0eXBlb2YgbWVzc2FnZS5jb250ZW50ID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICBjb250ZW50ID0gbWVzc2FnZS5jb250ZW50O1xyXG4gIH0gZWxzZSB7XHJcbiAgICBmb3IgKGNvbnN0IGMgb2YgbWVzc2FnZS5jb250ZW50KSB7XHJcbiAgICAgIGlmIChjLnR5cGUgPT09IFwidGV4dFwiKSB7XHJcbiAgICAgICAgY29udGVudCA9IGMudGV4dCA/PyBcIlwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBGaWx0ZXIgb3V0IHRoaW5raW5nIGxpbmVzIChzdGFydGluZyB3aXRoIFwiPiBcIilcclxuICByZXR1cm4gY29udGVudFxyXG4gICAgLnNwbGl0KFwiXFxuXCIpXHJcbiAgICAuZmlsdGVyKChsaW5lKSA9PiAhbGluZS5zdGFydHNXaXRoKFwiPiBcIikgJiYgbGluZS50cmltKCkgIT09IFwiXCIpXHJcbiAgICAuam9pbihcIlxcblwiKVxyXG4gICAgLnRyaW0oKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldE1lc3NhZ2VJbWFnZXMobWVzc2FnZTogUmVxdWVzdE1lc3NhZ2UpOiBzdHJpbmdbXSB7XHJcbiAgaWYgKHR5cGVvZiBtZXNzYWdlLmNvbnRlbnQgPT09IFwic3RyaW5nXCIpIHtcclxuICAgIHJldHVybiBbXTtcclxuICB9XHJcbiAgY29uc3QgdXJsczogc3RyaW5nW10gPSBbXTtcclxuICBmb3IgKGNvbnN0IGMgb2YgbWVzc2FnZS5jb250ZW50KSB7XHJcbiAgICBpZiAoYy50eXBlID09PSBcImltYWdlX3VybFwiKSB7XHJcbiAgICAgIHVybHMucHVzaChjLmltYWdlX3VybD8udXJsID8/IFwiXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gdXJscztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzVmlzaW9uTW9kZWwobW9kZWw6IHN0cmluZykge1xyXG4gIGNvbnN0IHZpc2lvbk1vZGVscyA9IHVzZUFjY2Vzc1N0b3JlLmdldFN0YXRlKCkudmlzaW9uTW9kZWxzO1xyXG4gIGNvbnN0IGVudlZpc2lvbk1vZGVscyA9IHZpc2lvbk1vZGVscz8uc3BsaXQoXCIsXCIpLm1hcCgobSkgPT4gbS50cmltKCkpO1xyXG4gIGlmIChlbnZWaXNpb25Nb2RlbHM/LmluY2x1ZGVzKG1vZGVsKSkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIHJldHVybiAoXHJcbiAgICAhRVhDTFVERV9WSVNJT05fTU9ERUxfUkVHRVhFUy5zb21lKChyZWdleCkgPT4gcmVnZXgudGVzdChtb2RlbCkpICYmXHJcbiAgICBWSVNJT05fTU9ERUxfUkVHRVhFUy5zb21lKChyZWdleCkgPT4gcmVnZXgudGVzdChtb2RlbCkpXHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRGFsbGUzKG1vZGVsOiBzdHJpbmcpIHtcclxuICByZXR1cm4gXCJkYWxsLWUtM1wiID09PSBtb2RlbDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vZGVsU2l6ZXMobW9kZWw6IHN0cmluZyk6IE1vZGVsU2l6ZVtdIHtcclxuICBpZiAoaXNEYWxsZTMobW9kZWwpKSB7XHJcbiAgICByZXR1cm4gW1wiMTAyNHgxMDI0XCIsIFwiMTc5MngxMDI0XCIsIFwiMTAyNHgxNzkyXCJdO1xyXG4gIH1cclxuICBpZiAobW9kZWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcImNvZ3ZpZXdcIikpIHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgIFwiMTAyNHgxMDI0XCIsXHJcbiAgICAgIFwiNzY4eDEzNDRcIixcclxuICAgICAgXCI4NjR4MTE1MlwiLFxyXG4gICAgICBcIjEzNDR4NzY4XCIsXHJcbiAgICAgIFwiMTE1Mng4NjRcIixcclxuICAgICAgXCIxNDQweDcyMFwiLFxyXG4gICAgICBcIjcyMHgxNDQwXCIsXHJcbiAgICBdO1xyXG4gIH1cclxuICByZXR1cm4gW107XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzdXBwb3J0c0N1c3RvbVNpemUobW9kZWw6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiBnZXRNb2RlbFNpemVzKG1vZGVsKS5sZW5ndGggPiAwO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2hvd1BsdWdpbnMocHJvdmlkZXI6IFNlcnZpY2VQcm92aWRlciwgbW9kZWw6IHN0cmluZykge1xyXG4gIGlmIChcclxuICAgIHByb3ZpZGVyID09IFNlcnZpY2VQcm92aWRlci5PcGVuQUkgfHxcclxuICAgIHByb3ZpZGVyID09IFNlcnZpY2VQcm92aWRlci5BenVyZSB8fFxyXG4gICAgcHJvdmlkZXIgPT0gU2VydmljZVByb3ZpZGVyLk1vb25zaG90IHx8XHJcbiAgICBwcm92aWRlciA9PSBTZXJ2aWNlUHJvdmlkZXIuQ2hhdEdMTVxyXG4gICkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIGlmIChwcm92aWRlciA9PSBTZXJ2aWNlUHJvdmlkZXIuQW50aHJvcGljICYmICFtb2RlbC5pbmNsdWRlcyhcImNsYXVkZS0yXCIpKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgaWYgKHByb3ZpZGVyID09IFNlcnZpY2VQcm92aWRlci5Hb29nbGUgJiYgIW1vZGVsLmluY2x1ZGVzKFwidmlzaW9uXCIpKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgcmV0dXJuIGZhbHNlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2goXHJcbiAgdXJsOiBzdHJpbmcsXHJcbiAgb3B0aW9ucz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxyXG4pOiBQcm9taXNlPGFueT4ge1xyXG4gIGlmICh3aW5kb3cuX19UQVVSSV9fKSB7XHJcbiAgICByZXR1cm4gdGF1cmlTdHJlYW1GZXRjaCh1cmwsIG9wdGlvbnMpO1xyXG4gIH1cclxuICByZXR1cm4gd2luZG93LmZldGNoKHVybCwgb3B0aW9ucyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGFwdGVyKGNvbmZpZzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIHtcclxuICBjb25zdCB7IGJhc2VVUkwsIHVybCwgcGFyYW1zLCBkYXRhOiBib2R5LCAuLi5yZXN0IH0gPSBjb25maWc7XHJcbiAgY29uc3QgcGF0aCA9IGJhc2VVUkwgPyBgJHtiYXNlVVJMfSR7dXJsfWAgOiB1cmw7XHJcbiAgY29uc3QgZmV0Y2hVcmwgPSBwYXJhbXNcclxuICAgID8gYCR7cGF0aH0/JHtuZXcgVVJMU2VhcmNoUGFyYW1zKHBhcmFtcyBhcyBhbnkpLnRvU3RyaW5nKCl9YFxyXG4gICAgOiBwYXRoO1xyXG4gIHJldHVybiBmZXRjaChmZXRjaFVybCBhcyBzdHJpbmcsIHsgLi4ucmVzdCwgYm9keSB9KS50aGVuKChyZXMpID0+IHtcclxuICAgIGNvbnN0IHsgc3RhdHVzLCBoZWFkZXJzLCBzdGF0dXNUZXh0IH0gPSByZXM7XHJcbiAgICByZXR1cm4gcmVzXHJcbiAgICAgIC50ZXh0KClcclxuICAgICAgLnRoZW4oKGRhdGE6IHN0cmluZykgPT4gKHsgc3RhdHVzLCBzdGF0dXNUZXh0LCBoZWFkZXJzLCBkYXRhIH0pKTtcclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNhZmVMb2NhbFN0b3JhZ2UoKToge1xyXG4gIGdldEl0ZW06IChrZXk6IHN0cmluZykgPT4gc3RyaW5nIHwgbnVsbDtcclxuICBzZXRJdGVtOiAoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XHJcbiAgcmVtb3ZlSXRlbTogKGtleTogc3RyaW5nKSA9PiB2b2lkO1xyXG4gIGNsZWFyOiAoKSA9PiB2b2lkO1xyXG59IHtcclxuICBsZXQgc3RvcmFnZTogU3RvcmFnZSB8IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB3aW5kb3cubG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgIHN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc3RvcmFnZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgfSBjYXRjaCAoZSkge1xyXG4gICAgY29uc29sZS5lcnJvcihcImxvY2FsU3RvcmFnZSBpcyBub3QgYXZhaWxhYmxlOlwiLCBlKTtcclxuICAgIHN0b3JhZ2UgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgICAgaWYgKHN0b3JhZ2UpIHtcclxuICAgICAgICByZXR1cm4gc3RvcmFnZS5nZXRJdGVtKGtleSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgICAgYEF0dGVtcHRlZCB0byBnZXQgaXRlbSBcIiR7a2V5fVwiIGZyb20gbG9jYWxTdG9yYWdlLCBidXQgbG9jYWxTdG9yYWdlIGlzIG5vdCBhdmFpbGFibGUuYCxcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgc2V0SXRlbShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICBpZiAoc3RvcmFnZSkge1xyXG4gICAgICAgIHN0b3JhZ2Uuc2V0SXRlbShrZXksIHZhbHVlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgICBgQXR0ZW1wdGVkIHRvIHNldCBpdGVtIFwiJHtrZXl9XCIgaW4gbG9jYWxTdG9yYWdlLCBidXQgbG9jYWxTdG9yYWdlIGlzIG5vdCBhdmFpbGFibGUuYCxcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICBpZiAoc3RvcmFnZSkge1xyXG4gICAgICAgIHN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVtb3ZlIGl0ZW0gXCIke2tleX1cIiBmcm9tIGxvY2FsU3RvcmFnZSwgYnV0IGxvY2FsU3RvcmFnZSBpcyBub3QgYXZhaWxhYmxlLmAsXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGNsZWFyKCk6IHZvaWQge1xyXG4gICAgICBpZiAoc3RvcmFnZSkge1xyXG4gICAgICAgIHN0b3JhZ2UuY2xlYXIoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgICBcIkF0dGVtcHRlZCB0byBjbGVhciBsb2NhbFN0b3JhZ2UsIGJ1dCBsb2NhbFN0b3JhZ2UgaXMgbm90IGF2YWlsYWJsZS5cIixcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRPcGVyYXRpb25JZChvcGVyYXRpb246IHtcclxuICBvcGVyYXRpb25JZD86IHN0cmluZztcclxuICBtZXRob2Q6IHN0cmluZztcclxuICBwYXRoOiBzdHJpbmc7XHJcbn0pIHtcclxuICAvLyBwYXR0ZXJuICdeW2EtekEtWjAtOV8tXSskJ1xyXG4gIHJldHVybiAoXHJcbiAgICBvcGVyYXRpb24/Lm9wZXJhdGlvbklkIHx8XHJcbiAgICBgJHtvcGVyYXRpb24ubWV0aG9kLnRvVXBwZXJDYXNlKCl9JHtvcGVyYXRpb24ucGF0aC5yZXBsYWNlQWxsKFwiL1wiLCBcIl9cIil9YFxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjbGllbnRVcGRhdGUoKSB7XHJcbiAgLy8gdGhpcyBhIHdpbGQgZm9yIHVwZGF0aW5nIGNsaWVudCBhcHBcclxuICByZXR1cm4gd2luZG93Ll9fVEFVUklfXz8udXBkYXRlclxyXG4gICAgLmNoZWNrVXBkYXRlKClcclxuICAgIC50aGVuKCh1cGRhdGVSZXN1bHQpID0+IHtcclxuICAgICAgaWYgKHVwZGF0ZVJlc3VsdC5zaG91bGRVcGRhdGUpIHtcclxuICAgICAgICB3aW5kb3cuX19UQVVSSV9fPy51cGRhdGVyXHJcbiAgICAgICAgICAuaW5zdGFsbFVwZGF0ZSgpXHJcbiAgICAgICAgICAudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgIHNob3dUb2FzdChMb2NhbGUuU2V0dGluZ3MuVXBkYXRlLlN1Y2Nlc3MpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiW0luc3RhbGwgVXBkYXRlIEVycm9yXVwiLCBlKTtcclxuICAgICAgICAgICAgc2hvd1RvYXN0KExvY2FsZS5TZXR0aW5ncy5VcGRhdGUuRmFpbGVkKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgLmNhdGNoKChlKSA9PiB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJbQ2hlY2sgVXBkYXRlIEVycm9yXVwiLCBlKTtcclxuICAgICAgc2hvd1RvYXN0KExvY2FsZS5TZXR0aW5ncy5VcGRhdGUuRmFpbGVkKTtcclxuICAgIH0pO1xyXG59XHJcblxyXG4vLyBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9pd2lsbC9hODMwMzg2MjNiYTRmZWY2YWJiOWVmY2E4N2FlOWNjYlxyXG5leHBvcnQgZnVuY3Rpb24gc2VtdmVyQ29tcGFyZShhOiBzdHJpbmcsIGI6IHN0cmluZykge1xyXG4gIGlmIChhLnN0YXJ0c1dpdGgoYiArIFwiLVwiKSkgcmV0dXJuIC0xO1xyXG4gIGlmIChiLnN0YXJ0c1dpdGgoYSArIFwiLVwiKSkgcmV0dXJuIDE7XHJcbiAgcmV0dXJuIGEubG9jYWxlQ29tcGFyZShiLCB1bmRlZmluZWQsIHtcclxuICAgIG51bWVyaWM6IHRydWUsXHJcbiAgICBzZW5zaXRpdml0eTogXCJjYXNlXCIsXHJcbiAgICBjYXNlRmlyc3Q6IFwidXBwZXJcIixcclxuICB9KTtcclxufVxyXG4iXSwibmFtZXMiOlsidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJzaG93VG9hc3QiLCJMb2NhbGUiLCJTZXJ2aWNlUHJvdmlkZXIiLCJmZXRjaCIsInRhdXJpU3RyZWFtRmV0Y2giLCJWSVNJT05fTU9ERUxfUkVHRVhFUyIsIkVYQ0xVREVfVklTSU9OX01PREVMX1JFR0VYRVMiLCJ1c2VBY2Nlc3NTdG9yZSIsInRyaW1Ub3BpYyIsInRvcGljIiwicmVwbGFjZSIsImNvcHlUb0NsaXBib2FyZCIsInRleHQiLCJ3aW5kb3ciLCJfX1RBVVJJX18iLCJ3cml0ZVRleHQiLCJuYXZpZ2F0b3IiLCJjbGlwYm9hcmQiLCJDb3B5IiwiU3VjY2VzcyIsImVycm9yIiwidGV4dEFyZWEiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJ2YWx1ZSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImZvY3VzIiwic2VsZWN0IiwiZXhlY0NvbW1hbmQiLCJGYWlsZWQiLCJyZW1vdmVDaGlsZCIsImRvd25sb2FkQXMiLCJmaWxlbmFtZSIsInJlc3VsdCIsImRpYWxvZyIsInNhdmUiLCJkZWZhdWx0UGF0aCIsImZpbHRlcnMiLCJuYW1lIiwic3BsaXQiLCJwb3AiLCJleHRlbnNpb25zIiwiZnMiLCJ3cml0ZVRleHRGaWxlIiwiRG93bmxvYWQiLCJlbGVtZW50Iiwic2V0QXR0cmlidXRlIiwiZW5jb2RlVVJJQ29tcG9uZW50Iiwic3R5bGUiLCJkaXNwbGF5IiwiY2xpY2siLCJyZWFkRnJvbUZpbGUiLCJQcm9taXNlIiwicmVzIiwicmVqIiwiZmlsZUlucHV0IiwidHlwZSIsImFjY2VwdCIsIm9uY2hhbmdlIiwiZXZlbnQiLCJmaWxlIiwidGFyZ2V0IiwiZmlsZXMiLCJmaWxlUmVhZGVyIiwiRmlsZVJlYWRlciIsIm9ubG9hZCIsImUiLCJvbmVycm9yIiwicmVhZEFzVGV4dCIsImlzSU9TIiwidXNlckFnZW50IiwidG9Mb3dlckNhc2UiLCJ0ZXN0IiwidXNlV2luZG93U2l6ZSIsInNpemUiLCJzZXRTaXplIiwid2lkdGgiLCJpbm5lcldpZHRoIiwiaGVpZ2h0IiwiaW5uZXJIZWlnaHQiLCJvblJlc2l6ZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiTU9CSUxFX01BWF9XSURUSCIsInVzZU1vYmlsZVNjcmVlbiIsImlzRmlyZWZveCIsInNlbGVjdE9yQ29weSIsImVsIiwiY29udGVudCIsImN1cnJlbnRTZWxlY3Rpb24iLCJnZXRTZWxlY3Rpb24iLCJnZXREb21Db250ZW50V2lkdGgiLCJkb20iLCJnZXRDb21wdXRlZFN0eWxlIiwicGFkZGluZ1dpZHRoIiwicGFyc2VGbG9hdCIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ1JpZ2h0IiwiY2xpZW50V2lkdGgiLCJnZXRPckNyZWF0ZU1lYXN1cmVEb20iLCJpZCIsImluaXQiLCJnZXRFbGVtZW50QnlJZCIsInBvc2l0aW9uIiwid29yZEJyZWFrIiwiZm9udFNpemUiLCJ0cmFuc2Zvcm0iLCJwb2ludGVyRXZlbnRzIiwib3BhY2l0eSIsImF1dG9Hcm93VGV4dEFyZWEiLCJtZWFzdXJlRG9tIiwic2luZ2xlTGluZURvbSIsImlubmVyVGV4dCIsImZvbnRGYW1pbHkiLCJlbmRXaXRoRW1wdHlMaW5lIiwiZW5kc1dpdGgiLCJzaW5nbGVMaW5lSGVpZ2h0Iiwicm93cyIsIk1hdGgiLCJyb3VuZCIsImdldENTU1ZhciIsInZhck5hbWUiLCJnZXRQcm9wZXJ0eVZhbHVlIiwidHJpbSIsImlzTWFjT1MiLCJ0b0xvY2FsZUxvd2VyQ2FzZSIsIm1hY2ludG9zaCIsImdldE1lc3NhZ2VUZXh0Q29udGVudCIsIm1lc3NhZ2UiLCJjIiwiZ2V0TWVzc2FnZVRleHRDb250ZW50V2l0aG91dFRoaW5raW5nIiwiZmlsdGVyIiwibGluZSIsInN0YXJ0c1dpdGgiLCJqb2luIiwiZ2V0TWVzc2FnZUltYWdlcyIsInVybHMiLCJwdXNoIiwiaW1hZ2VfdXJsIiwidXJsIiwiaXNWaXNpb25Nb2RlbCIsIm1vZGVsIiwidmlzaW9uTW9kZWxzIiwiZ2V0U3RhdGUiLCJlbnZWaXNpb25Nb2RlbHMiLCJtYXAiLCJtIiwiaW5jbHVkZXMiLCJzb21lIiwicmVnZXgiLCJpc0RhbGxlMyIsImdldE1vZGVsU2l6ZXMiLCJzdXBwb3J0c0N1c3RvbVNpemUiLCJsZW5ndGgiLCJzaG93UGx1Z2lucyIsInByb3ZpZGVyIiwiT3BlbkFJIiwiQXp1cmUiLCJNb29uc2hvdCIsIkNoYXRHTE0iLCJBbnRocm9waWMiLCJHb29nbGUiLCJvcHRpb25zIiwiYWRhcHRlciIsImNvbmZpZyIsImJhc2VVUkwiLCJwYXJhbXMiLCJkYXRhIiwicmVzdCIsInBhdGgiLCJmZXRjaFVybCIsIlVSTFNlYXJjaFBhcmFtcyIsInRvU3RyaW5nIiwidGhlbiIsInN0YXR1cyIsImhlYWRlcnMiLCJzdGF0dXNUZXh0Iiwic2FmZUxvY2FsU3RvcmFnZSIsInN0b3JhZ2UiLCJsb2NhbFN0b3JhZ2UiLCJjb25zb2xlIiwiZ2V0SXRlbSIsImtleSIsIndhcm4iLCJzZXRJdGVtIiwicmVtb3ZlSXRlbSIsImNsZWFyIiwiZ2V0T3BlcmF0aW9uSWQiLCJvcGVyYXRpb24iLCJvcGVyYXRpb25JZCIsIm1ldGhvZCIsInRvVXBwZXJDYXNlIiwicmVwbGFjZUFsbCIsImNsaWVudFVwZGF0ZSIsInVwZGF0ZXIiLCJjaGVja1VwZGF0ZSIsInVwZGF0ZVJlc3VsdCIsInNob3VsZFVwZGF0ZSIsImluc3RhbGxVcGRhdGUiLCJTZXR0aW5ncyIsIlVwZGF0ZSIsImNhdGNoIiwic2VtdmVyQ29tcGFyZSIsImEiLCJiIiwibG9jYWxlQ29tcGFyZSIsInVuZGVmaW5lZCIsIm51bWVyaWMiLCJzZW5zaXRpdml0eSIsImNhc2VGaXJzdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/utils.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/utils/auth-settings-events.ts":
|
|
|
/*!*******************************************!*\
|
|
|
!*** ./app/utils/auth-settings-events.ts ***!
|
|
|
\*******************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ trackAuthorizationPageBannerToCPaymentClick: () => (/* binding */ trackAuthorizationPageBannerToCPaymentClick),\n/* harmony export */ trackAuthorizationPageButtonToCPaymentClick: () => (/* binding */ trackAuthorizationPageButtonToCPaymentClick),\n/* harmony export */ trackConversationGuideToCPaymentClick: () => (/* binding */ trackConversationGuideToCPaymentClick),\n/* harmony export */ trackSettingsPageGuideToCPaymentClick: () => (/* binding */ trackSettingsPageGuideToCPaymentClick)\n/* harmony export */ });\n/* harmony import */ var _next_third_parties_google__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @next/third-parties/google */ \"(ssr)/./node_modules/@next/third-parties/dist/google/index.js\");\n\nfunction trackConversationGuideToCPaymentClick() {\n (0,_next_third_parties_google__WEBPACK_IMPORTED_MODULE_0__.sendGAEvent)(\"event\", \"ConversationGuideToCPaymentClick\", {\n value: 1\n });\n}\nfunction trackAuthorizationPageButtonToCPaymentClick() {\n (0,_next_third_parties_google__WEBPACK_IMPORTED_MODULE_0__.sendGAEvent)(\"event\", \"AuthorizationPageButtonToCPaymentClick\", {\n value: 1\n });\n}\nfunction trackAuthorizationPageBannerToCPaymentClick() {\n (0,_next_third_parties_google__WEBPACK_IMPORTED_MODULE_0__.sendGAEvent)(\"event\", \"AuthorizationPageBannerToCPaymentClick\", {\n value: 1\n });\n}\nfunction trackSettingsPageGuideToCPaymentClick() {\n (0,_next_third_parties_google__WEBPACK_IMPORTED_MODULE_0__.sendGAEvent)(\"event\", \"SettingsPageGuideToCPaymentClick\", {\n value: 1\n });\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvdXRpbHMvYXV0aC1zZXR0aW5ncy1ldmVudHMudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBeUQ7QUFFbEQsU0FBU0M7SUFDZEQsdUVBQVdBLENBQUMsU0FBUyxvQ0FBb0M7UUFBRUUsT0FBTztJQUFFO0FBQ3RFO0FBRU8sU0FBU0M7SUFDZEgsdUVBQVdBLENBQUMsU0FBUywwQ0FBMEM7UUFBRUUsT0FBTztJQUFFO0FBQzVFO0FBRU8sU0FBU0U7SUFDZEosdUVBQVdBLENBQUMsU0FBUywwQ0FBMEM7UUFDN0RFLE9BQU87SUFDVDtBQUNGO0FBRU8sU0FBU0c7SUFDZEwsdUVBQVdBLENBQUMsU0FBUyxvQ0FBb0M7UUFBRUUsT0FBTztJQUFFO0FBQ3RFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvdXRpbHMvYXV0aC1zZXR0aW5ncy1ldmVudHMudHM/NmE0OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzZW5kR0FFdmVudCB9IGZyb20gXCJAbmV4dC90aGlyZC1wYXJ0aWVzL2dvb2dsZVwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRyYWNrQ29udmVyc2F0aW9uR3VpZGVUb0NQYXltZW50Q2xpY2soKSB7XHJcbiAgc2VuZEdBRXZlbnQoXCJldmVudFwiLCBcIkNvbnZlcnNhdGlvbkd1aWRlVG9DUGF5bWVudENsaWNrXCIsIHsgdmFsdWU6IDEgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0cmFja0F1dGhvcml6YXRpb25QYWdlQnV0dG9uVG9DUGF5bWVudENsaWNrKCkge1xyXG4gIHNlbmRHQUV2ZW50KFwiZXZlbnRcIiwgXCJBdXRob3JpemF0aW9uUGFnZUJ1dHRvblRvQ1BheW1lbnRDbGlja1wiLCB7IHZhbHVlOiAxIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdHJhY2tBdXRob3JpemF0aW9uUGFnZUJhbm5lclRvQ1BheW1lbnRDbGljaygpIHtcclxuICBzZW5kR0FFdmVudChcImV2ZW50XCIsIFwiQXV0aG9yaXphdGlvblBhZ2VCYW5uZXJUb0NQYXltZW50Q2xpY2tcIiwge1xyXG4gICAgdmFsdWU6IDEsXHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0cmFja1NldHRpbmdzUGFnZUd1aWRlVG9DUGF5bWVudENsaWNrKCkge1xyXG4gIHNlbmRHQUV2ZW50KFwiZXZlbnRcIiwgXCJTZXR0aW5nc1BhZ2VHdWlkZVRvQ1BheW1lbnRDbGlja1wiLCB7IHZhbHVlOiAxIH0pO1xyXG59XHJcbiJdLCJuYW1lcyI6WyJzZW5kR0FFdmVudCIsInRyYWNrQ29udmVyc2F0aW9uR3VpZGVUb0NQYXltZW50Q2xpY2siLCJ2YWx1ZSIsInRyYWNrQXV0aG9yaXphdGlvblBhZ2VCdXR0b25Ub0NQYXltZW50Q2xpY2siLCJ0cmFja0F1dGhvcml6YXRpb25QYWdlQmFubmVyVG9DUGF5bWVudENsaWNrIiwidHJhY2tTZXR0aW5nc1BhZ2VHdWlkZVRvQ1BheW1lbnRDbGljayJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/utils/auth-settings-events.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/utils/baidu.ts":
|
|
|
/*!****************************!*\
|
|
|
!*** ./app/utils/baidu.ts ***!
|
|
|
\****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getAccessToken: () => (/* binding */ getAccessToken)\n/* harmony export */ });\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constant */ \"(ssr)/./app/constant.ts\");\n\n/**\r\n * 使用 AK,SK 生成鉴权签名(Access Token)\r\n * @return 鉴权签名信息\r\n */ async function getAccessToken(clientId, clientSecret) {\n const res = await fetch(`${_constant__WEBPACK_IMPORTED_MODULE_0__.BAIDU_OATUH_URL}?grant_type=client_credentials&client_id=${clientId}&client_secret=${clientSecret}`, {\n method: \"POST\",\n mode: \"cors\"\n });\n const resJson = await res.json();\n return resJson;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvdXRpbHMvYmFpZHUudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBOEM7QUFDOUM7OztDQUdDLEdBQ00sZUFBZUMsZUFDcEJDLFFBQWdCLEVBQ2hCQyxZQUFvQjtJQU1wQixNQUFNQyxNQUFNLE1BQU1DLE1BQ2hCLENBQUMsRUFBRUwsc0RBQWVBLENBQUMseUNBQXlDLEVBQUVFLFNBQVMsZUFBZSxFQUFFQyxhQUFhLENBQUMsRUFDdEc7UUFDRUcsUUFBUTtRQUNSQyxNQUFNO0lBQ1I7SUFFRixNQUFNQyxVQUFVLE1BQU1KLElBQUlLLElBQUk7SUFDOUIsT0FBT0Q7QUFDVCIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL3V0aWxzL2JhaWR1LnRzP2Q2NWEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQkFJRFVfT0FUVUhfVVJMIH0gZnJvbSBcIi4uL2NvbnN0YW50XCI7XHJcbi8qKlxyXG4gKiDkvb/nlKggQUvvvIxTSyDnlJ/miJDpibTmnYPnrb7lkI3vvIhBY2Nlc3MgVG9rZW7vvIlcclxuICogQHJldHVybiDpibTmnYPnrb7lkI3kv6Hmga9cclxuICovXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBY2Nlc3NUb2tlbihcclxuICBjbGllbnRJZDogc3RyaW5nLFxyXG4gIGNsaWVudFNlY3JldDogc3RyaW5nLFxyXG4pOiBQcm9taXNlPHtcclxuICBhY2Nlc3NfdG9rZW46IHN0cmluZztcclxuICBleHBpcmVzX2luOiBudW1iZXI7XHJcbiAgZXJyb3I/OiBudW1iZXI7XHJcbn0+IHtcclxuICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChcclxuICAgIGAke0JBSURVX09BVFVIX1VSTH0/Z3JhbnRfdHlwZT1jbGllbnRfY3JlZGVudGlhbHMmY2xpZW50X2lkPSR7Y2xpZW50SWR9JmNsaWVudF9zZWNyZXQ9JHtjbGllbnRTZWNyZXR9YCxcclxuICAgIHtcclxuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcclxuICAgICAgbW9kZTogXCJjb3JzXCIsXHJcbiAgICB9LFxyXG4gICk7XHJcbiAgY29uc3QgcmVzSnNvbiA9IGF3YWl0IHJlcy5qc29uKCk7XHJcbiAgcmV0dXJuIHJlc0pzb247XHJcbn1cclxuIl0sIm5hbWVzIjpbIkJBSURVX09BVFVIX1VSTCIsImdldEFjY2Vzc1Rva2VuIiwiY2xpZW50SWQiLCJjbGllbnRTZWNyZXQiLCJyZXMiLCJmZXRjaCIsIm1ldGhvZCIsIm1vZGUiLCJyZXNKc29uIiwianNvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/utils/baidu.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/utils/chat.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/utils/chat.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ base64Image2Blob: () => (/* binding */ base64Image2Blob),\n/* harmony export */ cacheImageToBase64Image: () => (/* binding */ cacheImageToBase64Image),\n/* harmony export */ compressImage: () => (/* binding */ compressImage),\n/* harmony export */ preProcessImageContent: () => (/* binding */ preProcessImageContent),\n/* harmony export */ removeImage: () => (/* binding */ removeImage),\n/* harmony export */ stream: () => (/* binding */ stream),\n/* harmony export */ streamWithThink: () => (/* binding */ streamWithThink),\n/* harmony export */ uploadImage: () => (/* binding */ uploadImage)\n/* harmony export */ });\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _app_locales__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/app/locales */ \"(ssr)/./app/locales/index.ts\");\n/* harmony import */ var _fortaine_fetch_event_source__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @fortaine/fetch-event-source */ \"(ssr)/./node_modules/@fortaine/fetch-event-source/lib/esm/fetch.js\");\n/* harmony import */ var _format__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./format */ \"(ssr)/./app/utils/format.ts\");\n/* harmony import */ var _stream__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./stream */ \"(ssr)/./app/utils/stream.ts\");\n\n\n\n\n\nfunction compressImage(file, maxSize) {\n return new Promise((resolve, reject)=>{\n const reader = new FileReader();\n reader.onload = (readerEvent)=>{\n const image = new Image();\n image.onload = ()=>{\n let canvas = document.createElement(\"canvas\");\n let ctx = canvas.getContext(\"2d\");\n let width = image.width;\n let height = image.height;\n let quality = 0.9;\n let dataUrl;\n do {\n canvas.width = width;\n canvas.height = height;\n ctx?.clearRect(0, 0, canvas.width, canvas.height);\n ctx?.drawImage(image, 0, 0, width, height);\n dataUrl = canvas.toDataURL(\"image/jpeg\", quality);\n if (dataUrl.length < maxSize) break;\n if (quality > 0.5) {\n // Prioritize quality reduction\n quality -= 0.1;\n } else {\n // Then reduce the size\n width *= 0.9;\n height *= 0.9;\n }\n }while (dataUrl.length > maxSize);\n resolve(dataUrl);\n };\n image.onerror = reject;\n image.src = readerEvent.target.result;\n };\n reader.onerror = reject;\n if (file.type.includes(\"heic\")) {\n try {\n const heic2any = __webpack_require__(/*! heic2any */ \"(ssr)/./node_modules/heic2any/dist/heic2any.js\");\n heic2any({\n blob: file,\n toType: \"image/jpeg\"\n }).then((blob)=>{\n reader.readAsDataURL(blob);\n }).catch((e)=>{\n reject(e);\n });\n } catch (e) {\n reject(e);\n }\n }\n reader.readAsDataURL(file);\n });\n}\nasync function preProcessImageContent(content) {\n if (typeof content === \"string\") {\n return content;\n }\n const result = [];\n for (const part of content){\n if (part?.type == \"image_url\" && part?.image_url?.url) {\n try {\n const url = await cacheImageToBase64Image(part?.image_url?.url);\n result.push({\n type: part.type,\n image_url: {\n url\n }\n });\n } catch (error) {\n console.error(\"Error processing image URL:\", error);\n }\n } else {\n result.push({\n ...part\n });\n }\n }\n return result;\n}\nconst imageCaches = {};\nfunction cacheImageToBase64Image(imageUrl) {\n if (imageUrl.includes(_app_constant__WEBPACK_IMPORTED_MODULE_0__.CACHE_URL_PREFIX)) {\n if (!imageCaches[imageUrl]) {\n const reader = new FileReader();\n return fetch(imageUrl, {\n method: \"GET\",\n mode: \"cors\",\n credentials: \"include\"\n }).then((res)=>res.blob()).then(async (blob)=>imageCaches[imageUrl] = await compressImage(blob, 256 * 1024)); // compressImage\n }\n return Promise.resolve(imageCaches[imageUrl]);\n }\n return Promise.resolve(imageUrl);\n}\nfunction base64Image2Blob(base64Data, contentType) {\n const byteCharacters = atob(base64Data);\n const byteNumbers = new Array(byteCharacters.length);\n for(let i = 0; i < byteCharacters.length; i++){\n byteNumbers[i] = byteCharacters.charCodeAt(i);\n }\n const byteArray = new Uint8Array(byteNumbers);\n return new Blob([\n byteArray\n ], {\n type: contentType\n });\n}\nfunction uploadImage(file) {\n if (!window._SW_ENABLED) {\n // if serviceWorker register error, using compressImage\n return compressImage(file, 256 * 1024);\n }\n const body = new FormData();\n body.append(\"file\", file);\n return fetch(_app_constant__WEBPACK_IMPORTED_MODULE_0__.UPLOAD_URL, {\n method: \"post\",\n body,\n mode: \"cors\",\n credentials: \"include\"\n }).then((res)=>res.json()).then((res)=>{\n // console.log(\"res\", res);\n if (res?.code == 0 && res?.data) {\n return res?.data;\n }\n throw Error(`upload Error: ${res?.msg}`);\n });\n}\nfunction removeImage(imageUrl) {\n return fetch(imageUrl, {\n method: \"DELETE\",\n mode: \"cors\",\n credentials: \"include\"\n });\n}\nfunction stream(chatPath, requestPayload, headers, tools, funcs, controller, parseSSE, processToolMessage, options) {\n let responseText = \"\";\n let remainText = \"\";\n let finished = false;\n let running = false;\n let runTools = [];\n let responseRes;\n // animate response to make it looks smooth\n function animateResponseText() {\n if (finished || controller.signal.aborted) {\n responseText += remainText;\n console.log(\"[Response Animation] finished\");\n if (responseText?.length === 0) {\n options.onError?.(new Error(\"empty response from server\"));\n }\n return;\n }\n if (remainText.length > 0) {\n const fetchCount = Math.max(1, Math.round(remainText.length / 60));\n const fetchText = remainText.slice(0, fetchCount);\n responseText += fetchText;\n remainText = remainText.slice(fetchCount);\n options.onUpdate?.(responseText, fetchText);\n }\n requestAnimationFrame(animateResponseText);\n }\n // start animaion\n animateResponseText();\n const finish = ()=>{\n if (!finished) {\n if (!running && runTools.length > 0) {\n const toolCallMessage = {\n role: \"assistant\",\n tool_calls: [\n ...runTools\n ]\n };\n running = true;\n runTools.splice(0, runTools.length); // empty runTools\n return Promise.all(toolCallMessage.tool_calls.map((tool)=>{\n options?.onBeforeTool?.(tool);\n return Promise.resolve(// @ts-ignore\n funcs[tool.function.name](// @ts-ignore\n tool?.function?.arguments ? JSON.parse(tool?.function?.arguments) : {})).then((res)=>{\n let content = res.data || res?.statusText;\n // hotfix #5614\n content = typeof content === \"string\" ? content : JSON.stringify(content);\n if (res.status >= 300) {\n return Promise.reject(content);\n }\n return content;\n }).then((content)=>{\n options?.onAfterTool?.({\n ...tool,\n content,\n isError: false\n });\n return content;\n }).catch((e)=>{\n options?.onAfterTool?.({\n ...tool,\n isError: true,\n errorMsg: e.toString()\n });\n return e.toString();\n }).then((content)=>({\n name: tool.function.name,\n role: \"tool\",\n content,\n tool_call_id: tool.id\n }));\n })).then((toolCallResult)=>{\n processToolMessage(requestPayload, toolCallMessage, toolCallResult);\n setTimeout(()=>{\n // call again\n console.debug(\"[ChatAPI] restart\");\n running = false;\n chatApi(chatPath, headers, requestPayload, tools); // call fetchEventSource\n }, 60);\n });\n return;\n }\n if (running) {\n return;\n }\n console.debug(\"[ChatAPI] end\");\n finished = true;\n options.onFinish(responseText + remainText, responseRes); // 将res传递给onFinish\n }\n };\n controller.signal.onabort = finish;\n function chatApi(chatPath, headers, requestPayload, tools) {\n const chatPayload = {\n method: \"POST\",\n body: JSON.stringify({\n ...requestPayload,\n tools: tools && tools.length ? tools : undefined\n }),\n signal: controller.signal,\n headers\n };\n const requestTimeoutId = setTimeout(()=>controller.abort(), _app_constant__WEBPACK_IMPORTED_MODULE_0__.REQUEST_TIMEOUT_MS);\n (0,_fortaine_fetch_event_source__WEBPACK_IMPORTED_MODULE_4__.fetchEventSource)(chatPath, {\n fetch: _stream__WEBPACK_IMPORTED_MODULE_3__.fetch,\n ...chatPayload,\n async onopen (res) {\n clearTimeout(requestTimeoutId);\n const contentType = res.headers.get(\"content-type\");\n console.log(\"[Request] response content type: \", contentType);\n responseRes = res;\n if (contentType?.startsWith(\"text/plain\")) {\n responseText = await res.clone().text();\n return finish();\n }\n if (!res.ok || !res.headers.get(\"content-type\")?.startsWith(_fortaine_fetch_event_source__WEBPACK_IMPORTED_MODULE_4__.EventStreamContentType) || res.status !== 200) {\n const responseTexts = [\n responseText\n ];\n let extraInfo = await res.clone().text();\n try {\n const resJson = await res.clone().json();\n extraInfo = (0,_format__WEBPACK_IMPORTED_MODULE_2__.prettyObject)(resJson);\n } catch {}\n if (res.status === 401) {\n responseTexts.push(_app_locales__WEBPACK_IMPORTED_MODULE_1__[\"default\"].Error.Unauthorized);\n }\n if (extraInfo) {\n responseTexts.push(extraInfo);\n }\n responseText = responseTexts.join(\"\\n\\n\");\n return finish();\n }\n },\n onmessage (msg) {\n if (msg.data === \"[DONE]\" || finished) {\n return finish();\n }\n const text = msg.data;\n // Skip empty messages\n if (!text || text.trim().length === 0) {\n return;\n }\n try {\n const chunk = parseSSE(text, runTools);\n if (chunk) {\n remainText += chunk;\n }\n } catch (e) {\n console.error(\"[Request] parse error\", text, msg, e);\n }\n },\n onclose () {\n finish();\n },\n onerror (e) {\n options?.onError?.(e);\n throw e;\n },\n openWhenHidden: true\n });\n }\n console.debug(\"[ChatAPI] start\");\n chatApi(chatPath, headers, requestPayload, tools); // call fetchEventSource\n}\nfunction streamWithThink(chatPath, requestPayload, headers, tools, funcs, controller, parseSSE, processToolMessage, options) {\n let responseText = \"\";\n let remainText = \"\";\n let finished = false;\n let running = false;\n let runTools = [];\n let responseRes;\n let isInThinkingMode = false;\n let lastIsThinking = false;\n // animate response to make it looks smooth\n function animateResponseText() {\n if (finished || controller.signal.aborted) {\n responseText += remainText;\n console.log(\"[Response Animation] finished\");\n if (responseText?.length === 0) {\n options.onError?.(new Error(\"empty response from server\"));\n }\n return;\n }\n if (remainText.length > 0) {\n const fetchCount = Math.max(1, Math.round(remainText.length / 60));\n const fetchText = remainText.slice(0, fetchCount);\n responseText += fetchText;\n remainText = remainText.slice(fetchCount);\n options.onUpdate?.(responseText, fetchText);\n }\n requestAnimationFrame(animateResponseText);\n }\n // start animaion\n animateResponseText();\n const finish = ()=>{\n if (!finished) {\n if (!running && runTools.length > 0) {\n const toolCallMessage = {\n role: \"assistant\",\n tool_calls: [\n ...runTools\n ]\n };\n running = true;\n runTools.splice(0, runTools.length); // empty runTools\n return Promise.all(toolCallMessage.tool_calls.map((tool)=>{\n options?.onBeforeTool?.(tool);\n return Promise.resolve(// @ts-ignore\n funcs[tool.function.name](// @ts-ignore\n tool?.function?.arguments ? JSON.parse(tool?.function?.arguments) : {})).then((res)=>{\n let content = res.data || res?.statusText;\n // hotfix #5614\n content = typeof content === \"string\" ? content : JSON.stringify(content);\n if (res.status >= 300) {\n return Promise.reject(content);\n }\n return content;\n }).then((content)=>{\n options?.onAfterTool?.({\n ...tool,\n content,\n isError: false\n });\n return content;\n }).catch((e)=>{\n options?.onAfterTool?.({\n ...tool,\n isError: true,\n errorMsg: e.toString()\n });\n return e.toString();\n }).then((content)=>({\n name: tool.function.name,\n role: \"tool\",\n content,\n tool_call_id: tool.id\n }));\n })).then((toolCallResult)=>{\n processToolMessage(requestPayload, toolCallMessage, toolCallResult);\n setTimeout(()=>{\n // call again\n console.debug(\"[ChatAPI] restart\");\n running = false;\n chatApi(chatPath, headers, requestPayload, tools); // call fetchEventSource\n }, 60);\n });\n return;\n }\n if (running) {\n return;\n }\n console.debug(\"[ChatAPI] end\");\n finished = true;\n options.onFinish(responseText + remainText, responseRes);\n }\n };\n controller.signal.onabort = finish;\n function chatApi(chatPath, headers, requestPayload, tools) {\n const chatPayload = {\n method: \"POST\",\n body: JSON.stringify({\n ...requestPayload,\n tools: tools && tools.length ? tools : undefined\n }),\n signal: controller.signal,\n headers\n };\n const requestTimeoutId = setTimeout(()=>controller.abort(), _app_constant__WEBPACK_IMPORTED_MODULE_0__.REQUEST_TIMEOUT_MS);\n (0,_fortaine_fetch_event_source__WEBPACK_IMPORTED_MODULE_4__.fetchEventSource)(chatPath, {\n fetch: _stream__WEBPACK_IMPORTED_MODULE_3__.fetch,\n ...chatPayload,\n async onopen (res) {\n clearTimeout(requestTimeoutId);\n const contentType = res.headers.get(\"content-type\");\n console.log(\"[Request] response content type: \", contentType);\n responseRes = res;\n if (contentType?.startsWith(\"text/plain\")) {\n responseText = await res.clone().text();\n return finish();\n }\n if (!res.ok || !res.headers.get(\"content-type\")?.startsWith(_fortaine_fetch_event_source__WEBPACK_IMPORTED_MODULE_4__.EventStreamContentType) || res.status !== 200) {\n const responseTexts = [\n responseText\n ];\n let extraInfo = await res.clone().text();\n try {\n const resJson = await res.clone().json();\n extraInfo = (0,_format__WEBPACK_IMPORTED_MODULE_2__.prettyObject)(resJson);\n } catch {}\n if (res.status === 401) {\n responseTexts.push(_app_locales__WEBPACK_IMPORTED_MODULE_1__[\"default\"].Error.Unauthorized);\n }\n if (extraInfo) {\n responseTexts.push(extraInfo);\n }\n responseText = responseTexts.join(\"\\n\\n\");\n return finish();\n }\n },\n onmessage (msg) {\n if (msg.data === \"[DONE]\" || finished) {\n return finish();\n }\n const text = msg.data;\n // Skip empty messages\n if (!text || text.trim().length === 0) {\n return;\n }\n try {\n const chunk = parseSSE(text, runTools);\n // Skip if content is empty\n if (!chunk?.content || chunk.content.length === 0) {\n return;\n }\n // Check if thinking mode changed\n const isThinkingChanged = lastIsThinking !== chunk.isThinking;\n lastIsThinking = chunk.isThinking;\n if (chunk.isThinking) {\n // If in thinking mode\n if (!isInThinkingMode || isThinkingChanged) {\n // If this is a new thinking block or mode changed, add prefix\n isInThinkingMode = true;\n if (remainText.length > 0) {\n remainText += \"\\n\";\n }\n remainText += \"> \" + chunk.content;\n } else {\n // Handle newlines in thinking content\n if (chunk.content.includes(\"\\n\\n\")) {\n const lines = chunk.content.split(\"\\n\\n\");\n remainText += lines.join(\"\\n\\n> \");\n } else {\n remainText += chunk.content;\n }\n }\n } else {\n // If in normal mode\n if (isInThinkingMode || isThinkingChanged) {\n // If switching from thinking mode to normal mode\n isInThinkingMode = false;\n remainText += \"\\n\\n\" + chunk.content;\n } else {\n remainText += chunk.content;\n }\n }\n } catch (e) {\n console.error(\"[Request] parse error\", text, msg, e);\n // Don't throw error for parse failures, just log them\n }\n },\n onclose () {\n finish();\n },\n onerror (e) {\n options?.onError?.(e);\n throw e;\n },\n openWhenHidden: true\n });\n }\n console.debug(\"[ChatAPI] start\");\n chatApi(chatPath, headers, requestPayload, tools); // call fetchEventSource\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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c0gsb0JBQW9CRSxtQkFBbUI7NEJBQ3pDLGlEQUFpRDs0QkFDakRGLG1CQUFtQjs0QkFDbkJyRSxjQUFjLFNBQVNpRSxNQUFNbEgsT0FBTzt3QkFDdEMsT0FBTzs0QkFDTGlELGNBQWNpRSxNQUFNbEgsT0FBTzt3QkFDN0I7b0JBQ0Y7Z0JBQ0YsRUFBRSxPQUFPRixHQUFHO29CQUNWUyxRQUFRRCxLQUFLLENBQUMseUJBQXlCbUcsTUFBTXJFLEtBQUt0QztnQkFDbEQsc0RBQXNEO2dCQUN4RDtZQUNGO1lBQ0FxSDtnQkFDRWhEO1lBQ0Y7WUFDQWxGLFNBQVFhLENBQUM7Z0JBQ1BpRCxTQUFTVyxVQUFVNUQ7Z0JBQ25CLE1BQU1BO1lBQ1I7WUFDQXNILGdCQUFnQjtRQUNsQjtJQUNGO0lBQ0E3RyxRQUFRcUYsS0FBSyxDQUFDO0lBQ2RDLFFBQVF0RCxVQUFVRSxTQUFTRCxnQkFBZ0JFLFFBQVEsd0JBQXdCO0FBQzdFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvdXRpbHMvY2hhdC50cz81Yjk0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ0FDSEVfVVJMX1BSRUZJWCxcclxuICBVUExPQURfVVJMLFxyXG4gIFJFUVVFU1RfVElNRU9VVF9NUyxcclxufSBmcm9tIFwiQC9hcHAvY29uc3RhbnRcIjtcclxuaW1wb3J0IHsgUmVxdWVzdE1lc3NhZ2UgfSBmcm9tIFwiQC9hcHAvY2xpZW50L2FwaVwiO1xyXG5pbXBvcnQgTG9jYWxlIGZyb20gXCJAL2FwcC9sb2NhbGVzXCI7XHJcbmltcG9ydCB7XHJcbiAgRXZlbnRTdHJlYW1Db250ZW50VHlwZSxcclxuICBmZXRjaEV2ZW50U291cmNlLFxyXG59IGZyb20gXCJAZm9ydGFpbmUvZmV0Y2gtZXZlbnQtc291cmNlXCI7XHJcbmltcG9ydCB7IHByZXR0eU9iamVjdCB9IGZyb20gXCIuL2Zvcm1hdFwiO1xyXG5pbXBvcnQgeyBmZXRjaCBhcyB0YXVyaUZldGNoIH0gZnJvbSBcIi4vc3RyZWFtXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29tcHJlc3NJbWFnZShmaWxlOiBCbG9iLCBtYXhTaXplOiBudW1iZXIpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgcmVhZGVyLm9ubG9hZCA9IChyZWFkZXJFdmVudDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgICAgIGltYWdlLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcclxuICAgICAgICBsZXQgY3R4ID0gY2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtcclxuICAgICAgICBsZXQgd2lkdGggPSBpbWFnZS53aWR0aDtcclxuICAgICAgICBsZXQgaGVpZ2h0ID0gaW1hZ2UuaGVpZ2h0O1xyXG4gICAgICAgIGxldCBxdWFsaXR5ID0gMC45O1xyXG4gICAgICAgIGxldCBkYXRhVXJsO1xyXG5cclxuICAgICAgICBkbyB7XHJcbiAgICAgICAgICBjYW52YXMud2lkdGggPSB3aWR0aDtcclxuICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgICAgICAgICBjdHg/LmNsZWFyUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpO1xyXG4gICAgICAgICAgY3R4Py5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDAsIHdpZHRoLCBoZWlnaHQpO1xyXG4gICAgICAgICAgZGF0YVVybCA9IGNhbnZhcy50b0RhdGFVUkwoXCJpbWFnZS9qcGVnXCIsIHF1YWxpdHkpO1xyXG5cclxuICAgICAgICAgIGlmIChkYXRhVXJsLmxlbmd0aCA8IG1heFNpemUpIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGlmIChxdWFsaXR5ID4gMC41KSB7XHJcbiAgICAgICAgICAgIC8vIFByaW9yaXRpemUgcXVhbGl0eSByZWR1Y3Rpb25cclxuICAgICAgICAgICAgcXVhbGl0eSAtPSAwLjE7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBUaGVuIHJlZHVjZSB0aGUgc2l6ZVxyXG4gICAgICAgICAgICB3aWR0aCAqPSAwLjk7XHJcbiAgICAgICAgICAgIGhlaWdodCAqPSAwLjk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSB3aGlsZSAoZGF0YVVybC5sZW5ndGggPiBtYXhTaXplKTtcclxuXHJcbiAgICAgICAgcmVzb2x2ZShkYXRhVXJsKTtcclxuICAgICAgfTtcclxuICAgICAgaW1hZ2Uub25lcnJvciA9IHJlamVjdDtcclxuICAgICAgaW1hZ2Uuc3JjID0gcmVhZGVyRXZlbnQudGFyZ2V0LnJlc3VsdDtcclxuICAgIH07XHJcbiAgICByZWFkZXIub25lcnJvciA9IHJlamVjdDtcclxuXHJcbiAgICBpZiAoZmlsZS50eXBlLmluY2x1ZGVzKFwiaGVpY1wiKSkge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IGhlaWMyYW55ID0gcmVxdWlyZShcImhlaWMyYW55XCIpO1xyXG4gICAgICAgIGhlaWMyYW55KHsgYmxvYjogZmlsZSwgdG9UeXBlOiBcImltYWdlL2pwZWdcIiB9KVxyXG4gICAgICAgICAgLnRoZW4oKGJsb2I6IEJsb2IpID0+IHtcclxuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoYmxvYik7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLmNhdGNoKChlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmVqZWN0KGUpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICByZWplY3QoZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByZVByb2Nlc3NJbWFnZUNvbnRlbnQoXHJcbiAgY29udGVudDogUmVxdWVzdE1lc3NhZ2VbXCJjb250ZW50XCJdLFxyXG4pIHtcclxuICBpZiAodHlwZW9mIGNvbnRlbnQgPT09IFwic3RyaW5nXCIpIHtcclxuICAgIHJldHVybiBjb250ZW50O1xyXG4gIH1cclxuICBjb25zdCByZXN1bHQgPSBbXTtcclxuICBmb3IgKGNvbnN0IHBhcnQgb2YgY29udGVudCkge1xyXG4gICAgaWYgKHBhcnQ/LnR5cGUgPT0gXCJpbWFnZV91cmxcIiAmJiBwYXJ0Py5pbWFnZV91cmw/LnVybCkge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGF3YWl0IGNhY2hlSW1hZ2VUb0Jhc2U2NEltYWdlKHBhcnQ/LmltYWdlX3VybD8udXJsKTtcclxuICAgICAgICByZXN1bHQucHVzaCh7IHR5cGU6IHBhcnQudHlwZSwgaW1hZ2VfdXJsOiB7IHVybCB9IH0pO1xyXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciBwcm9jZXNzaW5nIGltYWdlIFVSTDpcIiwgZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXN1bHQucHVzaCh7IC4uLnBhcnQgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmNvbnN0IGltYWdlQ2FjaGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XHJcbmV4cG9ydCBmdW5jdGlvbiBjYWNoZUltYWdlVG9CYXNlNjRJbWFnZShpbWFnZVVybDogc3RyaW5nKSB7XHJcbiAgaWYgKGltYWdlVXJsLmluY2x1ZGVzKENBQ0hFX1VSTF9QUkVGSVgpKSB7XHJcbiAgICBpZiAoIWltYWdlQ2FjaGVzW2ltYWdlVXJsXSkge1xyXG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICByZXR1cm4gZmV0Y2goaW1hZ2VVcmwsIHtcclxuICAgICAgICBtZXRob2Q6IFwiR0VUXCIsXHJcbiAgICAgICAgbW9kZTogXCJjb3JzXCIsXHJcbiAgICAgICAgY3JlZGVudGlhbHM6IFwiaW5jbHVkZVwiLFxyXG4gICAgICB9KVxyXG4gICAgICAgIC50aGVuKChyZXMpID0+IHJlcy5ibG9iKCkpXHJcbiAgICAgICAgLnRoZW4oXHJcbiAgICAgICAgICBhc3luYyAoYmxvYikgPT5cclxuICAgICAgICAgICAgKGltYWdlQ2FjaGVzW2ltYWdlVXJsXSA9IGF3YWl0IGNvbXByZXNzSW1hZ2UoYmxvYiwgMjU2ICogMTAyNCkpLFxyXG4gICAgICAgICk7IC8vIGNvbXByZXNzSW1hZ2VcclxuICAgIH1cclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoaW1hZ2VDYWNoZXNbaW1hZ2VVcmxdKTtcclxuICB9XHJcbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShpbWFnZVVybCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBiYXNlNjRJbWFnZTJCbG9iKGJhc2U2NERhdGE6IHN0cmluZywgY29udGVudFR5cGU6IHN0cmluZykge1xyXG4gIGNvbnN0IGJ5dGVDaGFyYWN0ZXJzID0gYXRvYihiYXNlNjREYXRhKTtcclxuICBjb25zdCBieXRlTnVtYmVycyA9IG5ldyBBcnJheShieXRlQ2hhcmFjdGVycy5sZW5ndGgpO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZUNoYXJhY3RlcnMubGVuZ3RoOyBpKyspIHtcclxuICAgIGJ5dGVOdW1iZXJzW2ldID0gYnl0ZUNoYXJhY3RlcnMuY2hhckNvZGVBdChpKTtcclxuICB9XHJcbiAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZU51bWJlcnMpO1xyXG4gIHJldHVybiBuZXcgQmxvYihbYnl0ZUFycmF5XSwgeyB0eXBlOiBjb250ZW50VHlwZSB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHVwbG9hZEltYWdlKGZpbGU6IEJsb2IpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gIGlmICghd2luZG93Ll9TV19FTkFCTEVEKSB7XHJcbiAgICAvLyBpZiBzZXJ2aWNlV29ya2VyIHJlZ2lzdGVyIGVycm9yLCB1c2luZyBjb21wcmVzc0ltYWdlXHJcbiAgICByZXR1cm4gY29tcHJlc3NJbWFnZShmaWxlLCAyNTYgKiAxMDI0KTtcclxuICB9XHJcbiAgY29uc3QgYm9keSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gIGJvZHkuYXBwZW5kKFwiZmlsZVwiLCBmaWxlKTtcclxuICByZXR1cm4gZmV0Y2goVVBMT0FEX1VSTCwge1xyXG4gICAgbWV0aG9kOiBcInBvc3RcIixcclxuICAgIGJvZHksXHJcbiAgICBtb2RlOiBcImNvcnNcIixcclxuICAgIGNyZWRlbnRpYWxzOiBcImluY2x1ZGVcIixcclxuICB9KVxyXG4gICAgLnRoZW4oKHJlcykgPT4gcmVzLmpzb24oKSlcclxuICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgLy8gY29uc29sZS5sb2coXCJyZXNcIiwgcmVzKTtcclxuICAgICAgaWYgKHJlcz8uY29kZSA9PSAwICYmIHJlcz8uZGF0YSkge1xyXG4gICAgICAgIHJldHVybiByZXM/LmRhdGE7XHJcbiAgICAgIH1cclxuICAgICAgdGhyb3cgRXJyb3IoYHVwbG9hZCBFcnJvcjogJHtyZXM/Lm1zZ31gKTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlSW1hZ2UoaW1hZ2VVcmw6IHN0cmluZykge1xyXG4gIHJldHVybiBmZXRjaChpbWFnZVVybCwge1xyXG4gICAgbWV0aG9kOiBcIkRFTEVURVwiLFxyXG4gICAgbW9kZTogXCJjb3JzXCIsXHJcbiAgICBjcmVkZW50aWFsczogXCJpbmNsdWRlXCIsXHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzdHJlYW0oXHJcbiAgY2hhdFBhdGg6IHN0cmluZyxcclxuICByZXF1ZXN0UGF5bG9hZDogYW55LFxyXG4gIGhlYWRlcnM6IGFueSxcclxuICB0b29sczogYW55W10sXHJcbiAgZnVuY3M6IFJlY29yZDxzdHJpbmcsIEZ1bmN0aW9uPixcclxuICBjb250cm9sbGVyOiBBYm9ydENvbnRyb2xsZXIsXHJcbiAgcGFyc2VTU0U6ICh0ZXh0OiBzdHJpbmcsIHJ1blRvb2xzOiBhbnlbXSkgPT4gc3RyaW5nIHwgdW5kZWZpbmVkLFxyXG4gIHByb2Nlc3NUb29sTWVzc2FnZTogKFxyXG4gICAgcmVxdWVzdFBheWxvYWQ6IGFueSxcclxuICAgIHRvb2xDYWxsTWVzc2FnZTogYW55LFxyXG4gICAgdG9vbENhbGxSZXN1bHQ6IGFueVtdLFxyXG4gICkgPT4gdm9pZCxcclxuICBvcHRpb25zOiBhbnksXHJcbikge1xyXG4gIGxldCByZXNwb25zZVRleHQgPSBcIlwiO1xyXG4gIGxldCByZW1haW5UZXh0ID0gXCJcIjtcclxuICBsZXQgZmluaXNoZWQgPSBmYWxzZTtcclxuICBsZXQgcnVubmluZyA9IGZhbHNlO1xyXG4gIGxldCBydW5Ub29sczogYW55W10gPSBbXTtcclxuICBsZXQgcmVzcG9uc2VSZXM6IFJlc3BvbnNlO1xyXG5cclxuICAvLyBhbmltYXRlIHJlc3BvbnNlIHRvIG1ha2UgaXQgbG9va3Mgc21vb3RoXHJcbiAgZnVuY3Rpb24gYW5pbWF0ZVJlc3BvbnNlVGV4dCgpIHtcclxuICAgIGlmIChmaW5pc2hlZCB8fCBjb250cm9sbGVyLnNpZ25hbC5hYm9ydGVkKSB7XHJcbiAgICAgIHJlc3BvbnNlVGV4dCArPSByZW1haW5UZXh0O1xyXG4gICAgICBjb25zb2xlLmxvZyhcIltSZXNwb25zZSBBbmltYXRpb25dIGZpbmlzaGVkXCIpO1xyXG4gICAgICBpZiAocmVzcG9uc2VUZXh0Py5sZW5ndGggPT09IDApIHtcclxuICAgICAgICBvcHRpb25zLm9uRXJyb3I/LihuZXcgRXJyb3IoXCJlbXB0eSByZXNwb25zZSBmcm9tIHNlcnZlclwiKSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChyZW1haW5UZXh0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgZmV0Y2hDb3VudCA9IE1hdGgubWF4KDEsIE1hdGgucm91bmQocmVtYWluVGV4dC5sZW5ndGggLyA2MCkpO1xyXG4gICAgICBjb25zdCBmZXRjaFRleHQgPSByZW1haW5UZXh0LnNsaWNlKDAsIGZldGNoQ291bnQpO1xyXG4gICAgICByZXNwb25zZVRleHQgKz0gZmV0Y2hUZXh0O1xyXG4gICAgICByZW1haW5UZXh0ID0gcmVtYWluVGV4dC5zbGljZShmZXRjaENvdW50KTtcclxuICAgICAgb3B0aW9ucy5vblVwZGF0ZT8uKHJlc3BvbnNlVGV4dCwgZmV0Y2hUZXh0KTtcclxuICAgIH1cclxuXHJcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYW5pbWF0ZVJlc3BvbnNlVGV4dCk7XHJcbiAgfVxyXG5cclxuICAvLyBzdGFydCBhbmltYWlvblxyXG4gIGFuaW1hdGVSZXNwb25zZVRleHQoKTtcclxuXHJcbiAgY29uc3QgZmluaXNoID0gKCkgPT4ge1xyXG4gICAgaWYgKCFmaW5pc2hlZCkge1xyXG4gICAgICBpZiAoIXJ1bm5pbmcgJiYgcnVuVG9vbHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNvbnN0IHRvb2xDYWxsTWVzc2FnZSA9IHtcclxuICAgICAgICAgIHJvbGU6IFwiYXNzaXN0YW50XCIsXHJcbiAgICAgICAgICB0b29sX2NhbGxzOiBbLi4ucnVuVG9vbHNdLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcnVubmluZyA9IHRydWU7XHJcbiAgICAgICAgcnVuVG9vbHMuc3BsaWNlKDAsIHJ1blRvb2xzLmxlbmd0aCk7IC8vIGVtcHR5IHJ1blRvb2xzXHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgdG9vbENhbGxNZXNzYWdlLnRvb2xfY2FsbHMubWFwKCh0b29sKSA9PiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM/Lm9uQmVmb3JlVG9vbD8uKHRvb2wpO1xyXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFxyXG4gICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICBmdW5jc1t0b29sLmZ1bmN0aW9uLm5hbWVdKFxyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgdG9vbD8uZnVuY3Rpb24/LmFyZ3VtZW50c1xyXG4gICAgICAgICAgICAgICAgICA/IEpTT04ucGFyc2UodG9vbD8uZnVuY3Rpb24/LmFyZ3VtZW50cylcclxuICAgICAgICAgICAgICAgICAgOiB7fSxcclxuICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IGNvbnRlbnQgPSByZXMuZGF0YSB8fCByZXM/LnN0YXR1c1RleHQ7XHJcbiAgICAgICAgICAgICAgICAvLyBob3RmaXggIzU2MTRcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQgPVxyXG4gICAgICAgICAgICAgICAgICB0eXBlb2YgY29udGVudCA9PT0gXCJzdHJpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgID8gY29udGVudFxyXG4gICAgICAgICAgICAgICAgICAgIDogSlNPTi5zdHJpbmdpZnkoY29udGVudCk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA+PSAzMDApIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGNvbnRlbnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAudGhlbigoY29udGVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgb3B0aW9ucz8ub25BZnRlclRvb2w/Lih7XHJcbiAgICAgICAgICAgICAgICAgIC4uLnRvb2wsXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICAgIGlzRXJyb3I6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY29udGVudDtcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgb3B0aW9ucz8ub25BZnRlclRvb2w/Lih7XHJcbiAgICAgICAgICAgICAgICAgIC4uLnRvb2wsXHJcbiAgICAgICAgICAgICAgICAgIGlzRXJyb3I6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgIGVycm9yTXNnOiBlLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBlLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAudGhlbigoY29udGVudCkgPT4gKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IHRvb2wuZnVuY3Rpb24ubmFtZSxcclxuICAgICAgICAgICAgICAgIHJvbGU6IFwidG9vbFwiLFxyXG4gICAgICAgICAgICAgICAgY29udGVudCxcclxuICAgICAgICAgICAgICAgIHRvb2xfY2FsbF9pZDogdG9vbC5pZCxcclxuICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICApLnRoZW4oKHRvb2xDYWxsUmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICBwcm9jZXNzVG9vbE1lc3NhZ2UocmVxdWVzdFBheWxvYWQsIHRvb2xDYWxsTWVzc2FnZSwgdG9vbENhbGxSZXN1bHQpO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIGNhbGwgYWdhaW5cclxuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhcIltDaGF0QVBJXSByZXN0YXJ0XCIpO1xyXG4gICAgICAgICAgICBydW5uaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGNoYXRBcGkoY2hhdFBhdGgsIGhlYWRlcnMsIHJlcXVlc3RQYXlsb2FkLCB0b29scyk7IC8vIGNhbGwgZmV0Y2hFdmVudFNvdXJjZVxyXG4gICAgICAgICAgfSwgNjApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAocnVubmluZykge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiW0NoYXRBUEldIGVuZFwiKTtcclxuICAgICAgZmluaXNoZWQgPSB0cnVlO1xyXG4gICAgICBvcHRpb25zLm9uRmluaXNoKHJlc3BvbnNlVGV4dCArIHJlbWFpblRleHQsIHJlc3BvbnNlUmVzKTsgLy8g5bCGcmVz5Lyg6YCS57uZb25GaW5pc2hcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBjb250cm9sbGVyLnNpZ25hbC5vbmFib3J0ID0gZmluaXNoO1xyXG5cclxuICBmdW5jdGlvbiBjaGF0QXBpKFxyXG4gICAgY2hhdFBhdGg6IHN0cmluZyxcclxuICAgIGhlYWRlcnM6IGFueSxcclxuICAgIHJlcXVlc3RQYXlsb2FkOiBhbnksXHJcbiAgICB0b29sczogYW55LFxyXG4gICkge1xyXG4gICAgY29uc3QgY2hhdFBheWxvYWQgPSB7XHJcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXHJcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAuLi5yZXF1ZXN0UGF5bG9hZCxcclxuICAgICAgICB0b29sczogdG9vbHMgJiYgdG9vbHMubGVuZ3RoID8gdG9vbHMgOiB1bmRlZmluZWQsXHJcbiAgICAgIH0pLFxyXG4gICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsLFxyXG4gICAgICBoZWFkZXJzLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlcXVlc3RUaW1lb3V0SWQgPSBzZXRUaW1lb3V0KFxyXG4gICAgICAoKSA9PiBjb250cm9sbGVyLmFib3J0KCksXHJcbiAgICAgIFJFUVVFU1RfVElNRU9VVF9NUyxcclxuICAgICk7XHJcbiAgICBmZXRjaEV2ZW50U291cmNlKGNoYXRQYXRoLCB7XHJcbiAgICAgIGZldGNoOiB0YXVyaUZldGNoIGFzIGFueSxcclxuICAgICAgLi4uY2hhdFBheWxvYWQsXHJcbiAgICAgIGFzeW5jIG9ub3BlbihyZXMpIHtcclxuICAgICAgICBjbGVhclRpbWVvdXQocmVxdWVzdFRpbWVvdXRJZCk7XHJcbiAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSByZXMuaGVhZGVycy5nZXQoXCJjb250ZW50LXR5cGVcIik7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJbUmVxdWVzdF0gcmVzcG9uc2UgY29udGVudCB0eXBlOiBcIiwgY29udGVudFR5cGUpO1xyXG4gICAgICAgIHJlc3BvbnNlUmVzID0gcmVzO1xyXG5cclxuICAgICAgICBpZiAoY29udGVudFR5cGU/LnN0YXJ0c1dpdGgoXCJ0ZXh0L3BsYWluXCIpKSB7XHJcbiAgICAgICAgICByZXNwb25zZVRleHQgPSBhd2FpdCByZXMuY2xvbmUoKS50ZXh0KCk7XHJcbiAgICAgICAgICByZXR1cm4gZmluaXNoKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAhcmVzLm9rIHx8XHJcbiAgICAgICAgICAhcmVzLmhlYWRlcnNcclxuICAgICAgICAgICAgLmdldChcImNvbnRlbnQtdHlwZVwiKVxyXG4gICAgICAgICAgICA/LnN0YXJ0c1dpdGgoRXZlbnRTdHJlYW1Db250ZW50VHlwZSkgfHxcclxuICAgICAgICAgIHJlcy5zdGF0dXMgIT09IDIwMFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgY29uc3QgcmVzcG9uc2VUZXh0cyA9IFtyZXNwb25zZVRleHRdO1xyXG4gICAgICAgICAgbGV0IGV4dHJhSW5mbyA9IGF3YWl0IHJlcy5jbG9uZSgpLnRleHQoKTtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc0pzb24gPSBhd2FpdCByZXMuY2xvbmUoKS5qc29uKCk7XHJcbiAgICAgICAgICAgIGV4dHJhSW5mbyA9IHByZXR0eU9iamVjdChyZXNKc29uKTtcclxuICAgICAgICAgIH0gY2F0Y2gge31cclxuXHJcbiAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gNDAxKSB7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlVGV4dHMucHVzaChMb2NhbGUuRXJyb3IuVW5hdXRob3JpemVkKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAoZXh0cmFJbmZvKSB7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlVGV4dHMucHVzaChleHRyYUluZm8pO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHJlc3BvbnNlVGV4dCA9IHJlc3BvbnNlVGV4dHMuam9pbihcIlxcblxcblwiKTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gZmluaXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBvbm1lc3NhZ2UobXNnKSB7XHJcbiAgICAgICAgaWYgKG1zZy5kYXRhID09PSBcIltET05FXVwiIHx8IGZpbmlzaGVkKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmluaXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHRleHQgPSBtc2cuZGF0YTtcclxuICAgICAgICAvLyBTa2lwIGVtcHR5IG1lc3NhZ2VzXHJcbiAgICAgICAgaWYgKCF0ZXh0IHx8IHRleHQudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgY29uc3QgY2h1bmsgPSBwYXJzZVNTRSh0ZXh0LCBydW5Ub29scyk7XHJcbiAgICAgICAgICBpZiAoY2h1bmspIHtcclxuICAgICAgICAgICAgcmVtYWluVGV4dCArPSBjaHVuaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFwiW1JlcXVlc3RdIHBhcnNlIGVycm9yXCIsIHRleHQsIG1zZywgZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBvbmNsb3NlKCkge1xyXG4gICAgICAgIGZpbmlzaCgpO1xyXG4gICAgICB9LFxyXG4gICAgICBvbmVycm9yKGUpIHtcclxuICAgICAgICBvcHRpb25zPy5vbkVycm9yPy4oZSk7XHJcbiAgICAgICAgdGhyb3cgZTtcclxuICAgICAgfSxcclxuICAgICAgb3BlbldoZW5IaWRkZW46IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29uc29sZS5kZWJ1ZyhcIltDaGF0QVBJXSBzdGFydFwiKTtcclxuICBjaGF0QXBpKGNoYXRQYXRoLCBoZWFkZXJzLCByZXF1ZXN0UGF5bG9hZCwgdG9vbHMpOyAvLyBjYWxsIGZldGNoRXZlbnRTb3VyY2VcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHN0cmVhbVdpdGhUaGluayhcclxuICBjaGF0UGF0aDogc3RyaW5nLFxyXG4gIHJlcXVlc3RQYXlsb2FkOiBhbnksXHJcbiAgaGVhZGVyczogYW55LFxyXG4gIHRvb2xzOiBhbnlbXSxcclxuICBmdW5jczogUmVjb3JkPHN0cmluZywgRnVuY3Rpb24+LFxyXG4gIGNvbnRyb2xsZXI6IEFib3J0Q29udHJvbGxlcixcclxuICBwYXJzZVNTRTogKFxyXG4gICAgdGV4dDogc3RyaW5nLFxyXG4gICAgcnVuVG9vbHM6IGFueVtdLFxyXG4gICkgPT4ge1xyXG4gICAgaXNUaGlua2luZzogYm9vbGVhbjtcclxuICAgIGNvbnRlbnQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICB9LFxyXG4gIHByb2Nlc3NUb29sTWVzc2FnZTogKFxyXG4gICAgcmVxdWVzdFBheWxvYWQ6IGFueSxcclxuICAgIHRvb2xDYWxsTWVzc2FnZTogYW55LFxyXG4gICAgdG9vbENhbGxSZXN1bHQ6IGFueVtdLFxyXG4gICkgPT4gdm9pZCxcclxuICBvcHRpb25zOiBhbnksXHJcbikge1xyXG4gIGxldCByZXNwb25zZVRleHQgPSBcIlwiO1xyXG4gIGxldCByZW1haW5UZXh0ID0gXCJcIjtcclxuICBsZXQgZmluaXNoZWQgPSBmYWxzZTtcclxuICBsZXQgcnVubmluZyA9IGZhbHNlO1xyXG4gIGxldCBydW5Ub29sczogYW55W10gPSBbXTtcclxuICBsZXQgcmVzcG9uc2VSZXM6IFJlc3BvbnNlO1xyXG4gIGxldCBpc0luVGhpbmtpbmdNb2RlID0gZmFsc2U7XHJcbiAgbGV0IGxhc3RJc1RoaW5raW5nID0gZmFsc2U7XHJcblxyXG4gIC8vIGFuaW1hdGUgcmVzcG9uc2UgdG8gbWFrZSBpdCBsb29rcyBzbW9vdGhcclxuICBmdW5jdGlvbiBhbmltYXRlUmVzcG9uc2VUZXh0KCkge1xyXG4gICAgaWYgKGZpbmlzaGVkIHx8IGNvbnRyb2xsZXIuc2lnbmFsLmFib3J0ZWQpIHtcclxuICAgICAgcmVzcG9uc2VUZXh0ICs9IHJlbWFpblRleHQ7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiW1Jlc3BvbnNlIEFuaW1hdGlvbl0gZmluaXNoZWRcIik7XHJcbiAgICAgIGlmIChyZXNwb25zZVRleHQ/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIG9wdGlvbnMub25FcnJvcj8uKG5ldyBFcnJvcihcImVtcHR5IHJlc3BvbnNlIGZyb20gc2VydmVyXCIpKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHJlbWFpblRleHQubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBmZXRjaENvdW50ID0gTWF0aC5tYXgoMSwgTWF0aC5yb3VuZChyZW1haW5UZXh0Lmxlbmd0aCAvIDYwKSk7XHJcbiAgICAgIGNvbnN0IGZldGNoVGV4dCA9IHJlbWFpblRleHQuc2xpY2UoMCwgZmV0Y2hDb3VudCk7XHJcbiAgICAgIHJlc3BvbnNlVGV4dCArPSBmZXRjaFRleHQ7XHJcbiAgICAgIHJlbWFpblRleHQgPSByZW1haW5UZXh0LnNsaWNlKGZldGNoQ291bnQpO1xyXG4gICAgICBvcHRpb25zLm9uVXBkYXRlPy4ocmVzcG9uc2VUZXh0LCBmZXRjaFRleHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShhbmltYXRlUmVzcG9uc2VUZXh0KTtcclxuICB9XHJcblxyXG4gIC8vIHN0YXJ0IGFuaW1haW9uXHJcbiAgYW5pbWF0ZVJlc3BvbnNlVGV4dCgpO1xyXG5cclxuICBjb25zdCBmaW5pc2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoIWZpbmlzaGVkKSB7XHJcbiAgICAgIGlmICghcnVubmluZyAmJiBydW5Ub29scy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgY29uc3QgdG9vbENhbGxNZXNzYWdlID0ge1xyXG4gICAgICAgICAgcm9sZTogXCJhc3Npc3RhbnRcIixcclxuICAgICAgICAgIHRvb2xfY2FsbHM6IFsuLi5ydW5Ub29sc10sXHJcbiAgICAgICAgfTtcclxuICAgICAgICBydW5uaW5nID0gdHJ1ZTtcclxuICAgICAgICBydW5Ub29scy5zcGxpY2UoMCwgcnVuVG9vbHMubGVuZ3RoKTsgLy8gZW1wdHkgcnVuVG9vbHNcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgICB0b29sQ2FsbE1lc3NhZ2UudG9vbF9jYWxscy5tYXAoKHRvb2wpID0+IHtcclxuICAgICAgICAgICAgb3B0aW9ucz8ub25CZWZvcmVUb29sPy4odG9vbCk7XHJcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoXHJcbiAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgIGZ1bmNzW3Rvb2wuZnVuY3Rpb24ubmFtZV0oXHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0b29sPy5mdW5jdGlvbj8uYXJndW1lbnRzXHJcbiAgICAgICAgICAgICAgICAgID8gSlNPTi5wYXJzZSh0b29sPy5mdW5jdGlvbj8uYXJndW1lbnRzKVxyXG4gICAgICAgICAgICAgICAgICA6IHt9LFxyXG4gICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgY29udGVudCA9IHJlcy5kYXRhIHx8IHJlcz8uc3RhdHVzVGV4dDtcclxuICAgICAgICAgICAgICAgIC8vIGhvdGZpeCAjNTYxNFxyXG4gICAgICAgICAgICAgICAgY29udGVudCA9XHJcbiAgICAgICAgICAgICAgICAgIHR5cGVvZiBjb250ZW50ID09PSBcInN0cmluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgPyBjb250ZW50XHJcbiAgICAgICAgICAgICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShjb250ZW50KTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMuc3RhdHVzID49IDMwMCkge1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoY29udGVudCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY29udGVudDtcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIC50aGVuKChjb250ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvcHRpb25zPy5vbkFmdGVyVG9vbD8uKHtcclxuICAgICAgICAgICAgICAgICAgLi4udG9vbCxcclxuICAgICAgICAgICAgICAgICAgY29udGVudCxcclxuICAgICAgICAgICAgICAgICAgaXNFcnJvcjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjb250ZW50O1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgLmNhdGNoKChlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvcHRpb25zPy5vbkFmdGVyVG9vbD8uKHtcclxuICAgICAgICAgICAgICAgICAgLi4udG9vbCxcclxuICAgICAgICAgICAgICAgICAgaXNFcnJvcjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgZXJyb3JNc2c6IGUudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGUudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIC50aGVuKChjb250ZW50KSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogdG9vbC5mdW5jdGlvbi5uYW1lLFxyXG4gICAgICAgICAgICAgICAgcm9sZTogXCJ0b29sXCIsXHJcbiAgICAgICAgICAgICAgICBjb250ZW50LFxyXG4gICAgICAgICAgICAgICAgdG9vbF9jYWxsX2lkOiB0b29sLmlkLFxyXG4gICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICkudGhlbigodG9vbENhbGxSZXN1bHQpID0+IHtcclxuICAgICAgICAgIHByb2Nlc3NUb29sTWVzc2FnZShyZXF1ZXN0UGF5bG9hZCwgdG9vbENhbGxNZXNzYWdlLCB0b29sQ2FsbFJlc3VsdCk7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgLy8gY2FsbCBhZ2FpblxyXG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKFwiW0NoYXRBUEldIHJlc3RhcnRcIik7XHJcbiAgICAgICAgICAgIHJ1bm5pbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgY2hhdEFwaShjaGF0UGF0aCwgaGVhZGVycywgcmVxdWVzdFBheWxvYWQsIHRvb2xzKTsgLy8gY2FsbCBmZXRjaEV2ZW50U291cmNlXHJcbiAgICAgICAgICB9LCA2MCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChydW5uaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJbQ2hhdEFQSV0gZW5kXCIpO1xyXG4gICAgICBmaW5pc2hlZCA9IHRydWU7XHJcbiAgICAgIG9wdGlvbnMub25GaW5pc2gocmVzcG9uc2VUZXh0ICsgcmVtYWluVGV4dCwgcmVzcG9uc2VSZXMpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIGNvbnRyb2xsZXIuc2lnbmFsLm9uYWJvcnQgPSBmaW5pc2g7XHJcblxyXG4gIGZ1bmN0aW9uIGNoYXRBcGkoXHJcbiAgICBjaGF0UGF0aDogc3RyaW5nLFxyXG4gICAgaGVhZGVyczogYW55LFxyXG4gICAgcmVxdWVzdFBheWxvYWQ6IGFueSxcclxuICAgIHRvb2xzOiBhbnksXHJcbiAgKSB7XHJcbiAgICBjb25zdCBjaGF0UGF5bG9hZCA9IHtcclxuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcclxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgIC4uLnJlcXVlc3RQYXlsb2FkLFxyXG4gICAgICAgIHRvb2xzOiB0b29scyAmJiB0b29scy5sZW5ndGggPyB0b29scyA6IHVuZGVmaW5lZCxcclxuICAgICAgfSksXHJcbiAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWwsXHJcbiAgICAgIGhlYWRlcnMsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVxdWVzdFRpbWVvdXRJZCA9IHNldFRpbWVvdXQoXHJcbiAgICAgICgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKSxcclxuICAgICAgUkVRVUVTVF9USU1FT1VUX01TLFxyXG4gICAgKTtcclxuICAgIGZldGNoRXZlbnRTb3VyY2UoY2hhdFBhdGgsIHtcclxuICAgICAgZmV0Y2g6IHRhdXJpRmV0Y2ggYXMgYW55LFxyXG4gICAgICAuLi5jaGF0UGF5bG9hZCxcclxuICAgICAgYXN5bmMgb25vcGVuKHJlcykge1xyXG4gICAgICAgIGNsZWFyVGltZW91dChyZXF1ZXN0VGltZW91dElkKTtcclxuICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IHJlcy5oZWFkZXJzLmdldChcImNvbnRlbnQtdHlwZVwiKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIltSZXF1ZXN0XSByZXNwb25zZSBjb250ZW50IHR5cGU6IFwiLCBjb250ZW50VHlwZSk7XHJcbiAgICAgICAgcmVzcG9uc2VSZXMgPSByZXM7XHJcblxyXG4gICAgICAgIGlmIChjb250ZW50VHlwZT8uc3RhcnRzV2l0aChcInRleHQvcGxhaW5cIikpIHtcclxuICAgICAgICAgIHJlc3BvbnNlVGV4dCA9IGF3YWl0IHJlcy5jbG9uZSgpLnRleHQoKTtcclxuICAgICAgICAgIHJldHVybiBmaW5pc2goKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICFyZXMub2sgfHxcclxuICAgICAgICAgICFyZXMuaGVhZGVyc1xyXG4gICAgICAgICAgICAuZ2V0KFwiY29udGVudC10eXBlXCIpXHJcbiAgICAgICAgICAgID8uc3RhcnRzV2l0aChFdmVudFN0cmVhbUNvbnRlbnRUeXBlKSB8fFxyXG4gICAgICAgICAgcmVzLnN0YXR1cyAhPT0gMjAwXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBjb25zdCByZXNwb25zZVRleHRzID0gW3Jlc3BvbnNlVGV4dF07XHJcbiAgICAgICAgICBsZXQgZXh0cmFJbmZvID0gYXdhaXQgcmVzLmNsb25lKCkudGV4dCgpO1xyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgcmVzSnNvbiA9IGF3YWl0IHJlcy5jbG9uZSgpLmpzb24oKTtcclxuICAgICAgICAgICAgZXh0cmFJbmZvID0gcHJldHR5T2JqZWN0KHJlc0pzb24pO1xyXG4gICAgICAgICAgfSBjYXRjaCB7fVxyXG5cclxuICAgICAgICAgIGlmIChyZXMuc3RhdHVzID09PSA0MDEpIHtcclxuICAgICAgICAgICAgcmVzcG9uc2VUZXh0cy5wdXNoKExvY2FsZS5FcnJvci5VbmF1dGhvcml6ZWQpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmIChleHRyYUluZm8pIHtcclxuICAgICAgICAgICAgcmVzcG9uc2VUZXh0cy5wdXNoKGV4dHJhSW5mbyk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgcmVzcG9uc2VUZXh0ID0gcmVzcG9uc2VUZXh0cy5qb2luKFwiXFxuXFxuXCIpO1xyXG5cclxuICAgICAgICAgIHJldHVybiBmaW5pc2goKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIG9ubWVzc2FnZShtc2cpIHtcclxuICAgICAgICBpZiAobXNnLmRhdGEgPT09IFwiW0RPTkVdXCIgfHwgZmluaXNoZWQpIHtcclxuICAgICAgICAgIHJldHVybiBmaW5pc2goKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdGV4dCA9IG1zZy5kYXRhO1xyXG4gICAgICAgIC8vIFNraXAgZW1wdHkgbWVzc2FnZXNcclxuICAgICAgICBpZiAoIXRleHQgfHwgdGV4dC50cmltKCkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBjb25zdCBjaHVuayA9IHBhcnNlU1NFKHRleHQsIHJ1blRvb2xzKTtcclxuICAgICAgICAgIC8vIFNraXAgaWYgY29udGVudCBpcyBlbXB0eVxyXG4gICAgICAgICAgaWYgKCFjaHVuaz8uY29udGVudCB8fCBjaHVuay5jb250ZW50Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBDaGVjayBpZiB0aGlua2luZyBtb2RlIGNoYW5nZWRcclxuICAgICAgICAgIGNvbnN0IGlzVGhpbmtpbmdDaGFuZ2VkID0gbGFzdElzVGhpbmtpbmcgIT09IGNodW5rLmlzVGhpbmtpbmc7XHJcbiAgICAgICAgICBsYXN0SXNUaGlua2luZyA9IGNodW5rLmlzVGhpbmtpbmc7XHJcblxyXG4gICAgICAgICAgaWYgKGNodW5rLmlzVGhpbmtpbmcpIHtcclxuICAgICAgICAgICAgLy8gSWYgaW4gdGhpbmtpbmcgbW9kZVxyXG4gICAgICAgICAgICBpZiAoIWlzSW5UaGlua2luZ01vZGUgfHwgaXNUaGlua2luZ0NoYW5nZWQpIHtcclxuICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgbmV3IHRoaW5raW5nIGJsb2NrIG9yIG1vZGUgY2hhbmdlZCwgYWRkIHByZWZpeFxyXG4gICAgICAgICAgICAgIGlzSW5UaGlua2luZ01vZGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGlmIChyZW1haW5UZXh0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHJlbWFpblRleHQgKz0gXCJcXG5cIjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmVtYWluVGV4dCArPSBcIj4gXCIgKyBjaHVuay5jb250ZW50O1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIC8vIEhhbmRsZSBuZXdsaW5lcyBpbiB0aGlua2luZyBjb250ZW50XHJcbiAgICAgICAgICAgICAgaWYgKGNodW5rLmNvbnRlbnQuaW5jbHVkZXMoXCJcXG5cXG5cIikpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmVzID0gY2h1bmsuY29udGVudC5zcGxpdChcIlxcblxcblwiKTtcclxuICAgICAgICAgICAgICAgIHJlbWFpblRleHQgKz0gbGluZXMuam9pbihcIlxcblxcbj4gXCIpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZW1haW5UZXh0ICs9IGNodW5rLmNvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBJZiBpbiBub3JtYWwgbW9kZVxyXG4gICAgICAgICAgICBpZiAoaXNJblRoaW5raW5nTW9kZSB8fCBpc1RoaW5raW5nQ2hhbmdlZCkge1xyXG4gICAgICAgICAgICAgIC8vIElmIHN3aXRjaGluZyBmcm9tIHRoaW5raW5nIG1vZGUgdG8gbm9ybWFsIG1vZGVcclxuICAgICAgICAgICAgICBpc0luVGhpbmtpbmdNb2RlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgcmVtYWluVGV4dCArPSBcIlxcblxcblwiICsgY2h1bmsuY29udGVudDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZW1haW5UZXh0ICs9IGNodW5rLmNvbnRlbnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFwiW1JlcXVlc3RdIHBhcnNlIGVycm9yXCIsIHRleHQsIG1zZywgZSk7XHJcbiAgICAgICAgICAvLyBEb24ndCB0aHJvdyBlcnJvciBmb3IgcGFyc2UgZmFpbHVyZXMsIGp1c3QgbG9nIHRoZW1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIG9uY2xvc2UoKSB7XHJcbiAgICAgICAgZmluaXNoKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIG9uZXJyb3IoZSkge1xyXG4gICAgICAgIG9wdGlvbnM/Lm9uRXJyb3I/LihlKTtcclxuICAgICAgICB0aHJvdyBlO1xyXG4gICAgICB9LFxyXG4gICAgICBvcGVuV2hlbkhpZGRlbjogdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb25zb2xlLmRlYnVnKFwiW0NoYXRBUEldIHN0YXJ0XCIpO1xyXG4gIGNoYXRBcGkoY2hhdFBhdGgsIGhlYWRlcnMsIHJlcXVlc3RQYXlsb2FkLCB0b29scyk7IC8vIGNhbGwgZmV0Y2hFdmVudFNvdXJjZVxyXG59XHJcbiJdLCJuYW1lcyI6WyJDQUNIRV9VUkxfUFJFRklYIiwiVVBMT0FEX1VSTCIsIlJFUVVFU1RfVElNRU9VVF9NUyIsIkxvY2FsZSIsIkV2ZW50U3RyZWFtQ29udGVudFR5cGUiLCJmZXRjaEV2ZW50U291cmNlIiwicHJldHR5T2JqZWN0IiwiZmV0Y2giLCJ0YXVyaUZldGNoIiwiY29tcHJlc3NJbWFnZSIsImZpbGUiLCJtYXhTaXplIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwib25sb2FkIiwicmVhZGVyRXZlbnQiLCJpbWFnZSIsIkltYWdlIiwiY2FudmFzIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY3R4IiwiZ2V0Q29udGV4dCIsIndpZHRoIiwiaGVpZ2h0IiwicXVhbGl0eSIsImRhdGFVcmwiLCJjbGVhclJlY3QiLCJkcmF3SW1hZ2UiLCJ0b0RhdGFVUkwiLCJsZW5ndGgiLCJvbmVycm9yIiwic3JjIiwidGFyZ2V0IiwicmVzdWx0IiwidHlwZSIsImluY2x1ZGVzIiwiaGVpYzJhbnkiLCJyZXF1aXJlIiwiYmxvYiIsInRvVHlwZSIsInRoZW4iLCJyZWFkQXNEYXRhVVJMIiwiY2F0Y2giLCJlIiwicHJlUHJvY2Vzc0ltYWdlQ29udGVudCIsImNvbnRlbnQiLCJwYXJ0IiwiaW1hZ2VfdXJsIiwidXJsIiwiY2FjaGVJbWFnZVRvQmFzZTY0SW1hZ2UiLCJwdXNoIiwiZXJyb3IiLCJjb25zb2xlIiwiaW1hZ2VDYWNoZXMiLCJpbWFnZVVybCIsIm1ldGhvZCIsIm1vZGUiLCJjcmVkZW50aWFscyIsInJlcyIsImJhc2U2NEltYWdlMkJsb2IiLCJiYXNlNjREYXRhIiwiY29udGVudFR5cGUiLCJieXRlQ2hhcmFjdGVycyIsImF0b2IiLCJieXRlTnVtYmVycyIsIkFycmF5IiwiaSIsImNoYXJDb2RlQXQiLCJieXRlQXJyYXkiLCJVaW50OEFycmF5IiwiQmxvYiIsInVwbG9hZEltYWdlIiwid2luZG93IiwiX1NXX0VOQUJMRUQiLCJib2R5IiwiRm9ybURhdGEiLCJhcHBlbmQiLCJqc29uIiwiY29kZSIsImRhdGEiLCJFcnJvciIsIm1zZyIsInJlbW92ZUltYWdlIiwic3RyZWFtIiwiY2hhdFBhdGgiLCJyZXF1ZXN0UGF5bG9hZCIsImhlYWRlcnMiLCJ0b29scyIsImZ1bmNzIiwiY29udHJvbGxlciIsInBhcnNlU1NFIiwicHJvY2Vzc1Rvb2xNZXNzYWdlIiwib3B0aW9ucyIsInJlc3BvbnNlVGV4dCIsInJlbWFpblRleHQiLCJmaW5pc2hlZCIsInJ1bm5pbmciLCJydW5Ub29scyIsInJlc3BvbnNlUmVzIiwiYW5pbWF0ZVJlc3BvbnNlVGV4dCIsInNpZ25hbCIsImFib3J0ZWQiLCJsb2ciLCJvbkVycm9yIiwiZmV0Y2hDb3VudCIsIk1hdGgiLCJtYXgiLCJyb3VuZCIsImZldGNoVGV4dCIsInNsaWNlIiwib25VcGRhdGUiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJmaW5pc2giLCJ0b29sQ2FsbE1lc3NhZ2UiLCJyb2xlIiwidG9vbF9jYWxscyIsInNwbGljZSIsImFsbCIsIm1hcCIsInRvb2wiLCJvbkJlZm9yZVRvb2wiLCJmdW5jdGlvbiIsIm5hbWUiLCJhcmd1bWVudHMiLCJKU09OIiwicGFyc2UiLCJzdGF0dXNUZXh0Iiwic3RyaW5naWZ5Iiwic3RhdHVzIiwib25BZnRlclRvb2wiLCJpc0Vycm9yIiwiZXJyb3JNc2ciLCJ0b1N0cmluZyIsInRvb2xfY2FsbF9pZCIsImlkIiwidG9vbENhbGxSZXN1bHQiLCJzZXRUaW1lb3V0IiwiZGVidWciLCJjaGF0QXBpIiwib25GaW5pc2giLCJvbmFib3J0IiwiY2hhdFBheWxvYWQiLCJ1bmRlZmluZWQiLCJyZXF1ZXN0VGltZW91dElkIiwiYWJvcnQiLCJvbm9wZW4iLCJjbGVhclRpbWVvdXQiLCJnZXQiLCJzdGFydHNXaXRoIiwiY2xvbmUiLCJ0ZXh0Iiwib2siLCJyZXNwb25zZVRleHRzIiwiZXh0cmFJbmZvIiwicmVzSnNvbiIsIlVuYXV0aG9yaXplZCIsImpvaW4iLCJvbm1lc3NhZ2UiLCJ0cmltIiwiY2h1bmsiLCJvbmNsb3NlIiwib3BlbldoZW5IaWRkZW4iLCJzdHJlYW1XaXRoVGhpbmsiLCJpc0luVGhpbmtpbmdNb2RlIiwibGFzdElzVGhpbmtpbmciLCJpc1RoaW5raW5nQ2hhbmdlZCIsImlzVGhpbmtpbmciLCJsaW5lcyIsInNwbGl0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/utils/chat.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/utils/clone.ts":
|
|
|
/*!****************************!*\
|
|
|
!*** ./app/utils/clone.ts ***!
|
|
|
\****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ deepClone: () => (/* binding */ deepClone),\n/* harmony export */ ensure: () => (/* binding */ ensure)\n/* harmony export */ });\nfunction deepClone(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\nfunction ensure(obj, keys) {\n return keys.every((k)=>obj[k] !== undefined && obj[k] !== null && obj[k] !== \"\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvdXRpbHMvY2xvbmUudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxTQUFTQSxVQUFhQyxHQUFNO0lBQ2pDLE9BQU9DLEtBQUtDLEtBQUssQ0FBQ0QsS0FBS0UsU0FBUyxDQUFDSDtBQUNuQztBQUVPLFNBQVNJLE9BQ2RKLEdBQU0sRUFDTkssSUFBOEI7SUFFOUIsT0FBT0EsS0FBS0MsS0FBSyxDQUNmLENBQUNDLElBQU1QLEdBQUcsQ0FBQ08sRUFBRSxLQUFLQyxhQUFhUixHQUFHLENBQUNPLEVBQUUsS0FBSyxRQUFRUCxHQUFHLENBQUNPLEVBQUUsS0FBSztBQUVqRSIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL3V0aWxzL2Nsb25lLnRzPzY3N2QiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGRlZXBDbG9uZTxUPihvYmo6IFQpIHtcclxuICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvYmopKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZTxUIGV4dGVuZHMgb2JqZWN0PihcclxuICBvYmo6IFQsXHJcbiAga2V5czogQXJyYXk8W2tleW9mIFRdW251bWJlcl0+LFxyXG4pIHtcclxuICByZXR1cm4ga2V5cy5ldmVyeShcclxuICAgIChrKSA9PiBvYmpba10gIT09IHVuZGVmaW5lZCAmJiBvYmpba10gIT09IG51bGwgJiYgb2JqW2tdICE9PSBcIlwiLFxyXG4gICk7XHJcbn1cclxuIl0sIm5hbWVzIjpbImRlZXBDbG9uZSIsIm9iaiIsIkpTT04iLCJwYXJzZSIsInN0cmluZ2lmeSIsImVuc3VyZSIsImtleXMiLCJldmVyeSIsImsiLCJ1bmRlZmluZWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/utils/clone.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/utils/cloud/index.ts":
|
|
|
/*!**********************************!*\
|
|
|
!*** ./app/utils/cloud/index.ts ***!
|
|
|
\**********************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ProviderType: () => (/* binding */ ProviderType),\n/* harmony export */ SyncClients: () => (/* binding */ SyncClients),\n/* harmony export */ createSyncClient: () => (/* binding */ createSyncClient)\n/* harmony export */ });\n/* harmony import */ var _webdav__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./webdav */ \"(ssr)/./app/utils/cloud/webdav.ts\");\n/* harmony import */ var _upstash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./upstash */ \"(ssr)/./app/utils/cloud/upstash.ts\");\n\n\nvar ProviderType;\n(function(ProviderType) {\n ProviderType[\"WebDAV\"] = \"webdav\";\n ProviderType[\"UpStash\"] = \"upstash\";\n})(ProviderType || (ProviderType = {}));\nconst SyncClients = {\n [\"upstash\"]: _upstash__WEBPACK_IMPORTED_MODULE_1__.createUpstashClient,\n [\"webdav\"]: _webdav__WEBPACK_IMPORTED_MODULE_0__.createWebDavClient\n};\nfunction createSyncClient(provider, config) {\n return SyncClients[provider](config);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvdXRpbHMvY2xvdWQvaW5kZXgudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBOEM7QUFDRTs7VUFFcENFOzs7R0FBQUEsaUJBQUFBO0FBS0wsTUFBTUMsY0FBYztJQUN6QixXQUFzQixFQUFFRix5REFBbUJBO0lBQzNDLFVBQXFCLEVBQUVELHVEQUFrQkE7QUFDM0MsRUFBVztBQWdCSixTQUFTSSxpQkFDZEMsUUFBVyxFQUNYQyxNQUEyQjtJQUUzQixPQUFPSCxXQUFXLENBQUNFLFNBQVMsQ0FBQ0M7QUFDL0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC91dGlscy9jbG91ZC9pbmRleC50cz82OGEyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVdlYkRhdkNsaWVudCB9IGZyb20gXCIuL3dlYmRhdlwiO1xyXG5pbXBvcnQgeyBjcmVhdGVVcHN0YXNoQ2xpZW50IH0gZnJvbSBcIi4vdXBzdGFzaFwiO1xyXG5cclxuZXhwb3J0IGVudW0gUHJvdmlkZXJUeXBlIHtcclxuICBXZWJEQVYgPSBcIndlYmRhdlwiLFxyXG4gIFVwU3Rhc2ggPSBcInVwc3Rhc2hcIixcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFN5bmNDbGllbnRzID0ge1xyXG4gIFtQcm92aWRlclR5cGUuVXBTdGFzaF06IGNyZWF0ZVVwc3Rhc2hDbGllbnQsXHJcbiAgW1Byb3ZpZGVyVHlwZS5XZWJEQVZdOiBjcmVhdGVXZWJEYXZDbGllbnQsXHJcbn0gYXMgY29uc3Q7XHJcblxyXG50eXBlIFN5bmNDbGllbnRDb25maWcgPSB7XHJcbiAgW0sgaW4ga2V5b2YgdHlwZW9mIFN5bmNDbGllbnRzXTogKHR5cGVvZiBTeW5jQ2xpZW50cylbS10gZXh0ZW5kcyAoXHJcbiAgICBfOiBpbmZlciBDLFxyXG4gICkgPT4gYW55XHJcbiAgICA/IENcclxuICAgIDogbmV2ZXI7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBTeW5jQ2xpZW50ID0ge1xyXG4gIGdldDogKGtleTogc3RyaW5nKSA9PiBQcm9taXNlPHN0cmluZz47XHJcbiAgc2V0OiAoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XHJcbiAgY2hlY2s6ICgpID0+IFByb21pc2U8Ym9vbGVhbj47XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3luY0NsaWVudDxUIGV4dGVuZHMgUHJvdmlkZXJUeXBlPihcclxuICBwcm92aWRlcjogVCxcclxuICBjb25maWc6IFN5bmNDbGllbnRDb25maWdbVF0sXHJcbik6IFN5bmNDbGllbnQge1xyXG4gIHJldHVybiBTeW5jQ2xpZW50c1twcm92aWRlcl0oY29uZmlnIGFzIGFueSkgYXMgYW55O1xyXG59XHJcbiJdLCJuYW1lcyI6WyJjcmVhdGVXZWJEYXZDbGllbnQiLCJjcmVhdGVVcHN0YXNoQ2xpZW50IiwiUHJvdmlkZXJUeXBlIiwiU3luY0NsaWVudHMiLCJjcmVhdGVTeW5jQ2xpZW50IiwicHJvdmlkZXIiLCJjb25maWciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/utils/cloud/index.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/utils/cloud/upstash.ts":
|
|
|
/*!************************************!*\
|
|
|
!*** ./app/utils/cloud/upstash.ts ***!
|
|
|
\************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createUpstashClient: () => (/* binding */ createUpstashClient)\n/* harmony export */ });\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _format__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../format */ \"(ssr)/./app/utils/format.ts\");\n\n\nfunction createUpstashClient(store) {\n const config = store.upstash;\n const storeKey = config.username.length === 0 ? _app_constant__WEBPACK_IMPORTED_MODULE_0__.STORAGE_KEY : config.username;\n const chunkCountKey = `${storeKey}-chunk-count`;\n const chunkIndexKey = (i)=>`${storeKey}-chunk-${i}`;\n const proxyUrl = store.useProxy && store.proxyUrl.length > 0 ? store.proxyUrl : undefined;\n return {\n async check () {\n try {\n const res = await fetch(this.path(`get/${storeKey}`, proxyUrl), {\n method: \"GET\",\n headers: this.headers()\n });\n console.log(\"[Upstash] check\", res.status, res.statusText);\n return [\n 200\n ].includes(res.status);\n } catch (e) {\n console.error(\"[Upstash] failed to check\", e);\n }\n return false;\n },\n async redisGet (key) {\n const res = await fetch(this.path(`get/${key}`, proxyUrl), {\n method: \"GET\",\n headers: this.headers()\n });\n console.log(\"[Upstash] get key = \", key, res.status, res.statusText);\n const resJson = await res.json();\n return resJson.result;\n },\n async redisSet (key, value) {\n const res = await fetch(this.path(`set/${key}`, proxyUrl), {\n method: \"POST\",\n headers: this.headers(),\n body: value\n });\n console.log(\"[Upstash] set key = \", key, res.status, res.statusText);\n },\n async get () {\n const chunkCount = Number(await this.redisGet(chunkCountKey));\n if (!Number.isInteger(chunkCount)) return;\n const chunks = await Promise.all(new Array(chunkCount).fill(0).map((_, i)=>this.redisGet(chunkIndexKey(i))));\n console.log(\"[Upstash] get full chunks\", chunks);\n return chunks.join(\"\");\n },\n async set (_, value) {\n // upstash limit the max request size which is 1Mb for “Free” and “Pay as you go”\n // so we need to split the data to chunks\n let index = 0;\n for await (const chunk of (0,_format__WEBPACK_IMPORTED_MODULE_1__.chunks)(value)){\n await this.redisSet(chunkIndexKey(index), chunk);\n index += 1;\n }\n await this.redisSet(chunkCountKey, index.toString());\n },\n headers () {\n return {\n Authorization: `Bearer ${config.apiKey}`\n };\n },\n path (path, proxyUrl = \"\") {\n if (!path.endsWith(\"/\")) {\n path += \"/\";\n }\n if (path.startsWith(\"/\")) {\n path = path.slice(1);\n }\n if (proxyUrl.length > 0 && !proxyUrl.endsWith(\"/\")) {\n proxyUrl += \"/\";\n }\n let url;\n const pathPrefix = \"/api/upstash/\";\n try {\n let u = new URL(proxyUrl + pathPrefix + path);\n // add query params\n u.searchParams.append(\"endpoint\", config.endpoint);\n url = u.toString();\n } catch (e) {\n url = pathPrefix + path + \"?endpoint=\" + config.endpoint;\n }\n return url;\n }\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDZixRQUFRLENBQUN4QixlQUFldUMsTUFBTUUsUUFBUTtRQUNuRDtRQUVBOUI7WUFDRSxPQUFPO2dCQUNMK0IsZUFBZSxDQUFDLE9BQU8sRUFBRS9DLE9BQU9nRCxNQUFNLENBQUMsQ0FBQztZQUMxQztRQUNGO1FBQ0FsQyxNQUFLQSxJQUFZLEVBQUVOLFdBQW1CLEVBQUU7WUFDdEMsSUFBSSxDQUFDTSxLQUFLbUMsUUFBUSxDQUFDLE1BQU07Z0JBQ3ZCbkMsUUFBUTtZQUNWO1lBQ0EsSUFBSUEsS0FBS29DLFVBQVUsQ0FBQyxNQUFNO2dCQUN4QnBDLE9BQU9BLEtBQUtxQyxLQUFLLENBQUM7WUFDcEI7WUFFQSxJQUFJM0MsU0FBU0osTUFBTSxHQUFHLEtBQUssQ0FBQ0ksU0FBU3lDLFFBQVEsQ0FBQyxNQUFNO2dCQUNsRHpDLFlBQVk7WUFDZDtZQUVBLElBQUk0QztZQUNKLE1BQU1DLGFBQWE7WUFFbkIsSUFBSTtnQkFDRixJQUFJQyxJQUFJLElBQUlDLElBQUkvQyxXQUFXNkMsYUFBYXZDO2dCQUN4QyxtQkFBbUI7Z0JBQ25Cd0MsRUFBRUUsWUFBWSxDQUFDQyxNQUFNLENBQUMsWUFBWXpELE9BQU8wRCxRQUFRO2dCQUNqRE4sTUFBTUUsRUFBRVIsUUFBUTtZQUNsQixFQUFFLE9BQU94QixHQUFHO2dCQUNWOEIsTUFBTUMsYUFBYXZDLE9BQU8sZUFBZWQsT0FBTzBELFFBQVE7WUFDMUQ7WUFFQSxPQUFPTjtRQUNUO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL3V0aWxzL2Nsb3VkL3Vwc3Rhc2gudHM/NGJiYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTVE9SQUdFX0tFWSB9IGZyb20gXCJAL2FwcC9jb25zdGFudFwiO1xyXG5pbXBvcnQgeyBTeW5jU3RvcmUgfSBmcm9tIFwiQC9hcHAvc3RvcmUvc3luY1wiO1xyXG5pbXBvcnQgeyBjaHVua3MgfSBmcm9tIFwiLi4vZm9ybWF0XCI7XHJcblxyXG5leHBvcnQgdHlwZSBVcHN0YXNoQ29uZmlnID0gU3luY1N0b3JlW1widXBzdGFzaFwiXTtcclxuZXhwb3J0IHR5cGUgVXBTdGFzaENsaWVudCA9IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZVVwc3Rhc2hDbGllbnQ+O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVwc3Rhc2hDbGllbnQoc3RvcmU6IFN5bmNTdG9yZSkge1xyXG4gIGNvbnN0IGNvbmZpZyA9IHN0b3JlLnVwc3Rhc2g7XHJcbiAgY29uc3Qgc3RvcmVLZXkgPSBjb25maWcudXNlcm5hbWUubGVuZ3RoID09PSAwID8gU1RPUkFHRV9LRVkgOiBjb25maWcudXNlcm5hbWU7XHJcbiAgY29uc3QgY2h1bmtDb3VudEtleSA9IGAke3N0b3JlS2V5fS1jaHVuay1jb3VudGA7XHJcbiAgY29uc3QgY2h1bmtJbmRleEtleSA9IChpOiBudW1iZXIpID0+IGAke3N0b3JlS2V5fS1jaHVuay0ke2l9YDtcclxuXHJcbiAgY29uc3QgcHJveHlVcmwgPVxyXG4gICAgc3RvcmUudXNlUHJveHkgJiYgc3RvcmUucHJveHlVcmwubGVuZ3RoID4gMCA/IHN0b3JlLnByb3h5VXJsIDogdW5kZWZpbmVkO1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgYXN5bmMgY2hlY2soKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2godGhpcy5wYXRoKGBnZXQvJHtzdG9yZUtleX1gLCBwcm94eVVybCksIHtcclxuICAgICAgICAgIG1ldGhvZDogXCJHRVRcIixcclxuICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycygpLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiW1Vwc3Rhc2hdIGNoZWNrXCIsIHJlcy5zdGF0dXMsIHJlcy5zdGF0dXNUZXh0KTtcclxuICAgICAgICByZXR1cm4gWzIwMF0uaW5jbHVkZXMocmVzLnN0YXR1cyk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKFwiW1Vwc3Rhc2hdIGZhaWxlZCB0byBjaGVja1wiLCBlKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9LFxyXG5cclxuICAgIGFzeW5jIHJlZGlzR2V0KGtleTogc3RyaW5nKSB7XHJcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKHRoaXMucGF0aChgZ2V0LyR7a2V5fWAsIHByb3h5VXJsKSwge1xyXG4gICAgICAgIG1ldGhvZDogXCJHRVRcIixcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMoKSxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBjb25zb2xlLmxvZyhcIltVcHN0YXNoXSBnZXQga2V5ID0gXCIsIGtleSwgcmVzLnN0YXR1cywgcmVzLnN0YXR1c1RleHQpO1xyXG4gICAgICBjb25zdCByZXNKc29uID0gKGF3YWl0IHJlcy5qc29uKCkpIGFzIHsgcmVzdWx0OiBzdHJpbmcgfTtcclxuXHJcbiAgICAgIHJldHVybiByZXNKc29uLnJlc3VsdDtcclxuICAgIH0sXHJcblxyXG4gICAgYXN5bmMgcmVkaXNTZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2godGhpcy5wYXRoKGBzZXQvJHtrZXl9YCwgcHJveHlVcmwpLCB7XHJcbiAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMoKSxcclxuICAgICAgICBib2R5OiB2YWx1ZSxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBjb25zb2xlLmxvZyhcIltVcHN0YXNoXSBzZXQga2V5ID0gXCIsIGtleSwgcmVzLnN0YXR1cywgcmVzLnN0YXR1c1RleHQpO1xyXG4gICAgfSxcclxuXHJcbiAgICBhc3luYyBnZXQoKSB7XHJcbiAgICAgIGNvbnN0IGNodW5rQ291bnQgPSBOdW1iZXIoYXdhaXQgdGhpcy5yZWRpc0dldChjaHVua0NvdW50S2V5KSk7XHJcbiAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihjaHVua0NvdW50KSkgcmV0dXJuO1xyXG5cclxuICAgICAgY29uc3QgY2h1bmtzID0gYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgbmV3IEFycmF5KGNodW5rQ291bnQpXHJcbiAgICAgICAgICAuZmlsbCgwKVxyXG4gICAgICAgICAgLm1hcCgoXywgaSkgPT4gdGhpcy5yZWRpc0dldChjaHVua0luZGV4S2V5KGkpKSksXHJcbiAgICAgICk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiW1Vwc3Rhc2hdIGdldCBmdWxsIGNodW5rc1wiLCBjaHVua3MpO1xyXG4gICAgICByZXR1cm4gY2h1bmtzLmpvaW4oXCJcIik7XHJcbiAgICB9LFxyXG5cclxuICAgIGFzeW5jIHNldChfOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgLy8gdXBzdGFzaCBsaW1pdCB0aGUgbWF4IHJlcXVlc3Qgc2l6ZSB3aGljaCBpcyAxTWIgZm9yIOKAnEZyZWXigJ0gYW5kIOKAnFBheSBhcyB5b3UgZ2/igJ1cclxuICAgICAgLy8gc28gd2UgbmVlZCB0byBzcGxpdCB0aGUgZGF0YSB0byBjaHVua3NcclxuICAgICAgbGV0IGluZGV4ID0gMDtcclxuICAgICAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiBjaHVua3ModmFsdWUpKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5yZWRpc1NldChjaHVua0luZGV4S2V5KGluZGV4KSwgY2h1bmspO1xyXG4gICAgICAgIGluZGV4ICs9IDE7XHJcbiAgICAgIH1cclxuICAgICAgYXdhaXQgdGhpcy5yZWRpc1NldChjaHVua0NvdW50S2V5LCBpbmRleC50b1N0cmluZygpKTtcclxuICAgIH0sXHJcblxyXG4gICAgaGVhZGVycygpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7Y29uZmlnLmFwaUtleX1gLFxyXG4gICAgICB9O1xyXG4gICAgfSxcclxuICAgIHBhdGgocGF0aDogc3RyaW5nLCBwcm94eVVybDogc3RyaW5nID0gXCJcIikge1xyXG4gICAgICBpZiAoIXBhdGguZW5kc1dpdGgoXCIvXCIpKSB7XHJcbiAgICAgICAgcGF0aCArPSBcIi9cIjtcclxuICAgICAgfVxyXG4gICAgICBpZiAocGF0aC5zdGFydHNXaXRoKFwiL1wiKSkge1xyXG4gICAgICAgIHBhdGggPSBwYXRoLnNsaWNlKDEpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAocHJveHlVcmwubGVuZ3RoID4gMCAmJiAhcHJveHlVcmwuZW5kc1dpdGgoXCIvXCIpKSB7XHJcbiAgICAgICAgcHJveHlVcmwgKz0gXCIvXCI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCB1cmw7XHJcbiAgICAgIGNvbnN0IHBhdGhQcmVmaXggPSBcIi9hcGkvdXBzdGFzaC9cIjtcclxuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgbGV0IHUgPSBuZXcgVVJMKHByb3h5VXJsICsgcGF0aFByZWZpeCArIHBhdGgpO1xyXG4gICAgICAgIC8vIGFkZCBxdWVyeSBwYXJhbXNcclxuICAgICAgICB1LnNlYXJjaFBhcmFtcy5hcHBlbmQoXCJlbmRwb2ludFwiLCBjb25maWcuZW5kcG9pbnQpO1xyXG4gICAgICAgIHVybCA9IHUudG9TdHJpbmcoKTtcclxuICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIHVybCA9IHBhdGhQcmVmaXggKyBwYXRoICsgXCI/ZW5kcG9pbnQ9XCIgKyBjb25maWcuZW5kcG9pbnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB1cmw7XHJcbiAgICB9LFxyXG4gIH07XHJcbn1cclxuIl0sIm5hbWVzIjpbIlNUT1JBR0VfS0VZIiwiY2h1bmtzIiwiY3JlYXRlVXBzdGFzaENsaWVudCIsInN0b3JlIiwiY29uZmlnIiwidXBzdGFzaCIsInN0b3JlS2V5IiwidXNlcm5hbWUiLCJsZW5ndGgiLCJjaHVua0NvdW50S2V5IiwiY2h1bmtJbmRleEtleSIsImkiLCJwcm94eVVybCIsInVzZVByb3h5IiwidW5kZWZpbmVkIiwiY2hlY2siLCJyZXMiLCJmZXRjaCIsInBhdGgiLCJtZXRob2QiLCJoZWFkZXJzIiwiY29uc29sZSIsImxvZyIsInN0YXR1cyIsInN0YXR1c1RleHQiLCJpbmNsdWRlcyIsImUiLCJlcnJvciIsInJlZGlzR2V0Iiwia2V5IiwicmVzSnNvbiIsImpzb24iLCJyZXN1bHQiLCJyZWRpc1NldCIsInZhbHVlIiwiYm9keSIsImdldCIsImNodW5rQ291bnQiLCJOdW1iZXIiLCJpc0ludGVnZXIiLCJQcm9taXNlIiwiYWxsIiwiQXJyYXkiLCJmaWxsIiwibWFwIiwiXyIsImpvaW4iLCJzZXQiLCJpbmRleCIsImNodW5rIiwidG9TdHJpbmciLCJBdXRob3JpemF0aW9uIiwiYXBpS2V5IiwiZW5kc1dpdGgiLCJzdGFydHNXaXRoIiwic2xpY2UiLCJ1cmwiLCJwYXRoUHJlZml4IiwidSIsIlVSTCIsInNlYXJjaFBhcmFtcyIsImFwcGVuZCIsImVuZHBvaW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/utils/cloud/upstash.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/utils/cloud/webdav.ts":
|
|
|
/*!***********************************!*\
|
|
|
!*** ./app/utils/cloud/webdav.ts ***!
|
|
|
\***********************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createWebDavClient: () => (/* binding */ createWebDavClient)\n/* harmony export */ });\n/* harmony import */ var _app_constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/app/constant */ \"(ssr)/./app/constant.ts\");\n\nfunction createWebDavClient(store) {\n const folder = _app_constant__WEBPACK_IMPORTED_MODULE_0__.STORAGE_KEY;\n const fileName = `${folder}/backup.json`;\n const config = store.webdav;\n const proxyUrl = store.useProxy && store.proxyUrl.length > 0 ? store.proxyUrl : undefined;\n return {\n async check () {\n try {\n const res = await fetch(this.path(folder, proxyUrl, \"MKCOL\"), {\n method: \"GET\",\n headers: this.headers()\n });\n const success = [\n 201,\n 200,\n 404,\n 405,\n 301,\n 302,\n 307,\n 308\n ].includes(res.status);\n console.log(`[WebDav] check ${success ? \"success\" : \"failed\"}, ${res.status} ${res.statusText}`);\n return success;\n } catch (e) {\n console.error(\"[WebDav] failed to check\", e);\n }\n return false;\n },\n async get (key) {\n const res = await fetch(this.path(fileName, proxyUrl), {\n method: \"GET\",\n headers: this.headers()\n });\n console.log(\"[WebDav] get key = \", key, res.status, res.statusText);\n if (404 == res.status) {\n return \"\";\n }\n return await res.text();\n },\n async set (key, value) {\n const res = await fetch(this.path(fileName, proxyUrl), {\n method: \"PUT\",\n headers: this.headers(),\n body: value\n });\n console.log(\"[WebDav] set key = \", key, res.status, res.statusText);\n },\n headers () {\n const auth = btoa(config.username + \":\" + config.password);\n return {\n authorization: `Basic ${auth}`\n };\n },\n path (path, proxyUrl = \"\", proxyMethod = \"\") {\n if (path.startsWith(\"/\")) {\n path = path.slice(1);\n }\n if (proxyUrl.endsWith(\"/\")) {\n proxyUrl = proxyUrl.slice(0, -1);\n }\n let url;\n const pathPrefix = \"/api/webdav/\";\n try {\n let u = new URL(proxyUrl + pathPrefix + path);\n // add query params\n u.searchParams.append(\"endpoint\", config.endpoint);\n proxyMethod && u.searchParams.append(\"proxy_method\", proxyMethod);\n url = u.toString();\n } catch (e) {\n url = pathPrefix + path + \"?endpoint=\" + config.endpoint;\n if (proxyMethod) {\n url += \"&proxy_method=\" + proxyMethod;\n }\n }\n return url;\n }\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFFLE9BQU94QixHQUFHO2dCQUNWaUIsTUFBTUMsYUFBYTNCLE9BQU8sZUFBZVQsT0FBT3lDLFFBQVE7Z0JBQ3hELElBQUlWLGFBQWE7b0JBQ2ZJLE9BQU8sbUJBQW1CSjtnQkFDNUI7WUFDRjtZQUVBLE9BQU9JO1FBQ1Q7SUFDRjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvdXRpbHMvY2xvdWQvd2ViZGF2LnRzPzQzMGEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU1RPUkFHRV9LRVkgfSBmcm9tIFwiQC9hcHAvY29uc3RhbnRcIjtcclxuaW1wb3J0IHsgU3luY1N0b3JlIH0gZnJvbSBcIkAvYXBwL3N0b3JlL3N5bmNcIjtcclxuXHJcbmV4cG9ydCB0eXBlIFdlYkRBVkNvbmZpZyA9IFN5bmNTdG9yZVtcIndlYmRhdlwiXTtcclxuZXhwb3J0IHR5cGUgV2ViRGF2Q2xpZW50ID0gUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlV2ViRGF2Q2xpZW50PjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVXZWJEYXZDbGllbnQoc3RvcmU6IFN5bmNTdG9yZSkge1xyXG4gIGNvbnN0IGZvbGRlciA9IFNUT1JBR0VfS0VZO1xyXG4gIGNvbnN0IGZpbGVOYW1lID0gYCR7Zm9sZGVyfS9iYWNrdXAuanNvbmA7XHJcbiAgY29uc3QgY29uZmlnID0gc3RvcmUud2ViZGF2O1xyXG4gIGNvbnN0IHByb3h5VXJsID1cclxuICAgIHN0b3JlLnVzZVByb3h5ICYmIHN0b3JlLnByb3h5VXJsLmxlbmd0aCA+IDAgPyBzdG9yZS5wcm94eVVybCA6IHVuZGVmaW5lZDtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGFzeW5jIGNoZWNrKCkge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKHRoaXMucGF0aChmb2xkZXIsIHByb3h5VXJsLCBcIk1LQ09MXCIpLCB7XHJcbiAgICAgICAgICBtZXRob2Q6IFwiR0VUXCIsXHJcbiAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMoKSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCBzdWNjZXNzID0gWzIwMSwgMjAwLCA0MDQsIDQwNSwgMzAxLCAzMDIsIDMwNywgMzA4XS5pbmNsdWRlcyhcclxuICAgICAgICAgIHJlcy5zdGF0dXMsXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgIGBbV2ViRGF2XSBjaGVjayAke3N1Y2Nlc3MgPyBcInN1Y2Nlc3NcIiA6IFwiZmFpbGVkXCJ9LCAke3Jlcy5zdGF0dXN9ICR7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNUZXh0XHJcbiAgICAgICAgICB9YCxcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcIltXZWJEYXZdIGZhaWxlZCB0byBjaGVja1wiLCBlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfSxcclxuXHJcbiAgICBhc3luYyBnZXQoa2V5OiBzdHJpbmcpIHtcclxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2godGhpcy5wYXRoKGZpbGVOYW1lLCBwcm94eVVybCksIHtcclxuICAgICAgICBtZXRob2Q6IFwiR0VUXCIsXHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzKCksXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgY29uc29sZS5sb2coXCJbV2ViRGF2XSBnZXQga2V5ID0gXCIsIGtleSwgcmVzLnN0YXR1cywgcmVzLnN0YXR1c1RleHQpO1xyXG5cclxuICAgICAgaWYgKDQwNCA9PSByZXMuc3RhdHVzKSB7XHJcbiAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBhd2FpdCByZXMudGV4dCgpO1xyXG4gICAgfSxcclxuXHJcbiAgICBhc3luYyBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2godGhpcy5wYXRoKGZpbGVOYW1lLCBwcm94eVVybCksIHtcclxuICAgICAgICBtZXRob2Q6IFwiUFVUXCIsXHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzKCksXHJcbiAgICAgICAgYm9keTogdmFsdWUsXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgY29uc29sZS5sb2coXCJbV2ViRGF2XSBzZXQga2V5ID0gXCIsIGtleSwgcmVzLnN0YXR1cywgcmVzLnN0YXR1c1RleHQpO1xyXG4gICAgfSxcclxuXHJcbiAgICBoZWFkZXJzKCkge1xyXG4gICAgICBjb25zdCBhdXRoID0gYnRvYShjb25maWcudXNlcm5hbWUgKyBcIjpcIiArIGNvbmZpZy5wYXNzd29yZCk7XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGF1dGhvcml6YXRpb246IGBCYXNpYyAke2F1dGh9YCxcclxuICAgICAgfTtcclxuICAgIH0sXHJcbiAgICBwYXRoKHBhdGg6IHN0cmluZywgcHJveHlVcmw6IHN0cmluZyA9IFwiXCIsIHByb3h5TWV0aG9kOiBzdHJpbmcgPSBcIlwiKSB7XHJcbiAgICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XHJcbiAgICAgICAgcGF0aCA9IHBhdGguc2xpY2UoMSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChwcm94eVVybC5lbmRzV2l0aChcIi9cIikpIHtcclxuICAgICAgICBwcm94eVVybCA9IHByb3h5VXJsLnNsaWNlKDAsIC0xKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IHVybDtcclxuICAgICAgY29uc3QgcGF0aFByZWZpeCA9IFwiL2FwaS93ZWJkYXYvXCI7XHJcblxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGxldCB1ID0gbmV3IFVSTChwcm94eVVybCArIHBhdGhQcmVmaXggKyBwYXRoKTtcclxuICAgICAgICAvLyBhZGQgcXVlcnkgcGFyYW1zXHJcbiAgICAgICAgdS5zZWFyY2hQYXJhbXMuYXBwZW5kKFwiZW5kcG9pbnRcIiwgY29uZmlnLmVuZHBvaW50KTtcclxuICAgICAgICBwcm94eU1ldGhvZCAmJiB1LnNlYXJjaFBhcmFtcy5hcHBlbmQoXCJwcm94eV9tZXRob2RcIiwgcHJveHlNZXRob2QpO1xyXG4gICAgICAgIHVybCA9IHUudG9TdHJpbmcoKTtcclxuICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIHVybCA9IHBhdGhQcmVmaXggKyBwYXRoICsgXCI/ZW5kcG9pbnQ9XCIgKyBjb25maWcuZW5kcG9pbnQ7XHJcbiAgICAgICAgaWYgKHByb3h5TWV0aG9kKSB7XHJcbiAgICAgICAgICB1cmwgKz0gXCImcHJveHlfbWV0aG9kPVwiICsgcHJveHlNZXRob2Q7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdXJsO1xyXG4gICAgfSxcclxuICB9O1xyXG59XHJcbiJdLCJuYW1lcyI6WyJTVE9SQUdFX0tFWSIsImNyZWF0ZVdlYkRhdkNsaWVudCIsInN0b3JlIiwiZm9sZGVyIiwiZmlsZU5hbWUiLCJjb25maWciLCJ3ZWJkYXYiLCJwcm94eVVybCIsInVzZVByb3h5IiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiY2hlY2siLCJyZXMiLCJmZXRjaCIsInBhdGgiLCJtZXRob2QiLCJoZWFkZXJzIiwic3VjY2VzcyIsImluY2x1ZGVzIiwic3RhdHVzIiwiY29uc29sZSIsImxvZyIsInN0YXR1c1RleHQiLCJlIiwiZXJyb3IiLCJnZXQiLCJrZXkiLCJ0ZXh0Iiwic2V0IiwidmFsdWUiLCJib2R5IiwiYXV0aCIsImJ0b2EiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiYXV0aG9yaXphdGlvbiIsInByb3h5TWV0aG9kIiwic3RhcnRzV2l0aCIsInNsaWNlIiwiZW5kc1dpdGgiLCJ1cmwiLCJwYXRoUHJlZml4IiwidSIsIlVSTCIsInNlYXJjaFBhcmFtcyIsImFwcGVuZCIsImVuZHBvaW50IiwidG9TdHJpbmciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/utils/cloud/webdav.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/utils/cloudflare.ts":
|
|
|
/*!*********************************!*\
|
|
|
!*** ./app/utils/cloudflare.ts ***!
|
|
|
\*********************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cloudflareAIGatewayUrl: () => (/* binding */ cloudflareAIGatewayUrl)\n/* harmony export */ });\nfunction cloudflareAIGatewayUrl(fetchUrl) {\n // rebuild fetchUrl, if using cloudflare ai gateway\n // document: https://developers.cloudflare.com/ai-gateway/providers/openai/\n const paths = fetchUrl.split(\"/\");\n if (\"gateway.ai.cloudflare.com\" == paths[2]) {\n // is cloudflare.com ai gateway\n // https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/azure-openai/{resource_name}/{deployment_name}/chat/completions?api-version=2023-05-15'\n if (\"azure-openai\" == paths[6]) {\n // is azure gateway\n return paths.slice(0, 8).concat(paths.slice(-3)).join(\"/\"); // rebuild ai gateway azure_url\n }\n // https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai/chat/completions\n if (\"openai\" == paths[6]) {\n // is openai gateway\n return paths.slice(0, 7).concat(paths.slice(-2)).join(\"/\"); // rebuild ai gateway openai_url\n }\n // https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/anthropic/v1/messages \\\n if (\"anthropic\" == paths[6]) {\n // is anthropic gateway\n return paths.slice(0, 7).concat(paths.slice(-2)).join(\"/\"); // rebuild ai gateway anthropic_url\n }\n // TODO: Amazon Bedrock, Groq, HuggingFace...\n }\n return fetchUrl;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvdXRpbHMvY2xvdWRmbGFyZS50cyIsIm1hcHBpbmdzIjoiOzs7O0FBQU8sU0FBU0EsdUJBQXVCQyxRQUFnQjtJQUNyRCxtREFBbUQ7SUFDbkQsMkVBQTJFO0lBRTNFLE1BQU1DLFFBQVFELFNBQVNFLEtBQUssQ0FBQztJQUM3QixJQUFJLCtCQUErQkQsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUMzQywrQkFBK0I7UUFDL0IseUpBQXlKO1FBQ3pKLElBQUksa0JBQWtCQSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQzlCLG1CQUFtQjtZQUNuQixPQUFPQSxNQUFNRSxLQUFLLENBQUMsR0FBRyxHQUFHQyxNQUFNLENBQUNILE1BQU1FLEtBQUssQ0FBQyxDQUFDLElBQUlFLElBQUksQ0FBQyxNQUFNLCtCQUErQjtRQUM3RjtRQUNBLHlGQUF5RjtRQUN6RixJQUFJLFlBQVlKLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDeEIsb0JBQW9CO1lBQ3BCLE9BQU9BLE1BQU1FLEtBQUssQ0FBQyxHQUFHLEdBQUdDLE1BQU0sQ0FBQ0gsTUFBTUUsS0FBSyxDQUFDLENBQUMsSUFBSUUsSUFBSSxDQUFDLE1BQU0sZ0NBQWdDO1FBQzlGO1FBQ0EseUZBQXlGO1FBQ3pGLElBQUksZUFBZUosS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUMzQix1QkFBdUI7WUFDdkIsT0FBT0EsTUFBTUUsS0FBSyxDQUFDLEdBQUcsR0FBR0MsTUFBTSxDQUFDSCxNQUFNRSxLQUFLLENBQUMsQ0FBQyxJQUFJRSxJQUFJLENBQUMsTUFBTSxtQ0FBbUM7UUFDakc7SUFDQSw2Q0FBNkM7SUFDL0M7SUFDQSxPQUFPTDtBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvdXRpbHMvY2xvdWRmbGFyZS50cz81NjIxIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBjbG91ZGZsYXJlQUlHYXRld2F5VXJsKGZldGNoVXJsOiBzdHJpbmcpIHtcclxuICAvLyByZWJ1aWxkIGZldGNoVXJsLCBpZiB1c2luZyBjbG91ZGZsYXJlIGFpIGdhdGV3YXlcclxuICAvLyBkb2N1bWVudDogaHR0cHM6Ly9kZXZlbG9wZXJzLmNsb3VkZmxhcmUuY29tL2FpLWdhdGV3YXkvcHJvdmlkZXJzL29wZW5haS9cclxuXHJcbiAgY29uc3QgcGF0aHMgPSBmZXRjaFVybC5zcGxpdChcIi9cIik7XHJcbiAgaWYgKFwiZ2F0ZXdheS5haS5jbG91ZGZsYXJlLmNvbVwiID09IHBhdGhzWzJdKSB7XHJcbiAgICAvLyBpcyBjbG91ZGZsYXJlLmNvbSBhaSBnYXRld2F5XHJcbiAgICAvLyBodHRwczovL2dhdGV3YXkuYWkuY2xvdWRmbGFyZS5jb20vdjEve2FjY291bnRfaWR9L3tnYXRld2F5X2lkfS9henVyZS1vcGVuYWkve3Jlc291cmNlX25hbWV9L3tkZXBsb3ltZW50X25hbWV9L2NoYXQvY29tcGxldGlvbnM/YXBpLXZlcnNpb249MjAyMy0wNS0xNSdcclxuICAgIGlmIChcImF6dXJlLW9wZW5haVwiID09IHBhdGhzWzZdKSB7XHJcbiAgICAgIC8vIGlzIGF6dXJlIGdhdGV3YXlcclxuICAgICAgcmV0dXJuIHBhdGhzLnNsaWNlKDAsIDgpLmNvbmNhdChwYXRocy5zbGljZSgtMykpLmpvaW4oXCIvXCIpOyAvLyByZWJ1aWxkIGFpIGdhdGV3YXkgYXp1cmVfdXJsXHJcbiAgICB9XHJcbiAgICAvLyBodHRwczovL2dhdGV3YXkuYWkuY2xvdWRmbGFyZS5jb20vdjEve2FjY291bnRfaWR9L3tnYXRld2F5X2lkfS9vcGVuYWkvY2hhdC9jb21wbGV0aW9uc1xyXG4gICAgaWYgKFwib3BlbmFpXCIgPT0gcGF0aHNbNl0pIHtcclxuICAgICAgLy8gaXMgb3BlbmFpIGdhdGV3YXlcclxuICAgICAgcmV0dXJuIHBhdGhzLnNsaWNlKDAsIDcpLmNvbmNhdChwYXRocy5zbGljZSgtMikpLmpvaW4oXCIvXCIpOyAvLyByZWJ1aWxkIGFpIGdhdGV3YXkgb3BlbmFpX3VybFxyXG4gICAgfVxyXG4gICAgLy8gaHR0cHM6Ly9nYXRld2F5LmFpLmNsb3VkZmxhcmUuY29tL3YxL3thY2NvdW50X2lkfS97Z2F0ZXdheV9pZH0vYW50aHJvcGljL3YxL21lc3NhZ2VzIFxcXHJcbiAgICBpZiAoXCJhbnRocm9waWNcIiA9PSBwYXRoc1s2XSkge1xyXG4gICAgICAvLyBpcyBhbnRocm9waWMgZ2F0ZXdheVxyXG4gICAgICByZXR1cm4gcGF0aHMuc2xpY2UoMCwgNykuY29uY2F0KHBhdGhzLnNsaWNlKC0yKSkuam9pbihcIi9cIik7IC8vIHJlYnVpbGQgYWkgZ2F0ZXdheSBhbnRocm9waWNfdXJsXHJcbiAgICB9XHJcbiAgICAvLyBUT0RPOiBBbWF6b24gQmVkcm9jaywgR3JvcSwgSHVnZ2luZ0ZhY2UuLi5cclxuICB9XHJcbiAgcmV0dXJuIGZldGNoVXJsO1xyXG59XHJcbiJdLCJuYW1lcyI6WyJjbG91ZGZsYXJlQUlHYXRld2F5VXJsIiwiZmV0Y2hVcmwiLCJwYXRocyIsInNwbGl0Iiwic2xpY2UiLCJjb25jYXQiLCJqb2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/utils/cloudflare.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/utils/format.ts":
|
|
|
/*!*****************************!*\
|
|
|
!*** ./app/utils/format.ts ***!
|
|
|
\*****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ chunks: () => (/* binding */ chunks),\n/* harmony export */ prettyObject: () => (/* binding */ prettyObject)\n/* harmony export */ });\nfunction prettyObject(msg) {\n const obj = msg;\n if (typeof msg !== \"string\") {\n msg = JSON.stringify(msg, null, \" \");\n }\n if (msg === \"{}\") {\n return obj.toString();\n }\n if (msg.startsWith(\"```json\")) {\n return msg;\n }\n return [\n \"```json\",\n msg,\n \"```\"\n ].join(\"\\n\");\n}\nfunction* chunks(s, maxBytes = 1000 * 1000) {\n const decoder = new TextDecoder(\"utf-8\");\n let buf = new TextEncoder().encode(s);\n while(buf.length){\n let i = buf.lastIndexOf(32, maxBytes + 1);\n // If no space found, try forward search\n if (i < 0) i = buf.indexOf(32, maxBytes);\n // If there's no space at all, take all\n if (i < 0) i = buf.length;\n // This is a safe cut-off point; never half-way a multi-byte\n yield decoder.decode(buf.slice(0, i));\n buf = buf.slice(i + 1); // Skip space (if any)\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvdXRpbHMvZm9ybWF0LnRzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQU8sU0FBU0EsYUFBYUMsR0FBUTtJQUNuQyxNQUFNQyxNQUFNRDtJQUNaLElBQUksT0FBT0EsUUFBUSxVQUFVO1FBQzNCQSxNQUFNRSxLQUFLQyxTQUFTLENBQUNILEtBQUssTUFBTTtJQUNsQztJQUNBLElBQUlBLFFBQVEsTUFBTTtRQUNoQixPQUFPQyxJQUFJRyxRQUFRO0lBQ3JCO0lBQ0EsSUFBSUosSUFBSUssVUFBVSxDQUFDLFlBQVk7UUFDN0IsT0FBT0w7SUFDVDtJQUNBLE9BQU87UUFBQztRQUFXQTtRQUFLO0tBQU0sQ0FBQ00sSUFBSSxDQUFDO0FBQ3RDO0FBRU8sVUFBVUMsT0FBT0MsQ0FBUyxFQUFFQyxXQUFXLE9BQU8sSUFBSTtJQUN2RCxNQUFNQyxVQUFVLElBQUlDLFlBQVk7SUFDaEMsSUFBSUMsTUFBTSxJQUFJQyxjQUFjQyxNQUFNLENBQUNOO0lBQ25DLE1BQU9JLElBQUlHLE1BQU0sQ0FBRTtRQUNqQixJQUFJQyxJQUFJSixJQUFJSyxXQUFXLENBQUMsSUFBSVIsV0FBVztRQUN2Qyx3Q0FBd0M7UUFDeEMsSUFBSU8sSUFBSSxHQUFHQSxJQUFJSixJQUFJTSxPQUFPLENBQUMsSUFBSVQ7UUFDL0IsdUNBQXVDO1FBQ3ZDLElBQUlPLElBQUksR0FBR0EsSUFBSUosSUFBSUcsTUFBTTtRQUN6Qiw0REFBNEQ7UUFDNUQsTUFBTUwsUUFBUVMsTUFBTSxDQUFDUCxJQUFJUSxLQUFLLENBQUMsR0FBR0o7UUFDbENKLE1BQU1BLElBQUlRLEtBQUssQ0FBQ0osSUFBSSxJQUFJLHNCQUFzQjtJQUNoRDtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvdXRpbHMvZm9ybWF0LnRzPzkyNmUiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHByZXR0eU9iamVjdChtc2c6IGFueSkge1xyXG4gIGNvbnN0IG9iaiA9IG1zZztcclxuICBpZiAodHlwZW9mIG1zZyAhPT0gXCJzdHJpbmdcIikge1xyXG4gICAgbXNnID0gSlNPTi5zdHJpbmdpZnkobXNnLCBudWxsLCBcIiAgXCIpO1xyXG4gIH1cclxuICBpZiAobXNnID09PSBcInt9XCIpIHtcclxuICAgIHJldHVybiBvYmoudG9TdHJpbmcoKTtcclxuICB9XHJcbiAgaWYgKG1zZy5zdGFydHNXaXRoKFwiYGBganNvblwiKSkge1xyXG4gICAgcmV0dXJuIG1zZztcclxuICB9XHJcbiAgcmV0dXJuIFtcImBgYGpzb25cIiwgbXNnLCBcImBgYFwiXS5qb2luKFwiXFxuXCIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24qIGNodW5rcyhzOiBzdHJpbmcsIG1heEJ5dGVzID0gMTAwMCAqIDEwMDApIHtcclxuICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKFwidXRmLThcIik7XHJcbiAgbGV0IGJ1ZiA9IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShzKTtcclxuICB3aGlsZSAoYnVmLmxlbmd0aCkge1xyXG4gICAgbGV0IGkgPSBidWYubGFzdEluZGV4T2YoMzIsIG1heEJ5dGVzICsgMSk7XHJcbiAgICAvLyBJZiBubyBzcGFjZSBmb3VuZCwgdHJ5IGZvcndhcmQgc2VhcmNoXHJcbiAgICBpZiAoaSA8IDApIGkgPSBidWYuaW5kZXhPZigzMiwgbWF4Qnl0ZXMpO1xyXG4gICAgLy8gSWYgdGhlcmUncyBubyBzcGFjZSBhdCBhbGwsIHRha2UgYWxsXHJcbiAgICBpZiAoaSA8IDApIGkgPSBidWYubGVuZ3RoO1xyXG4gICAgLy8gVGhpcyBpcyBhIHNhZmUgY3V0LW9mZiBwb2ludDsgbmV2ZXIgaGFsZi13YXkgYSBtdWx0aS1ieXRlXHJcbiAgICB5aWVsZCBkZWNvZGVyLmRlY29kZShidWYuc2xpY2UoMCwgaSkpO1xyXG4gICAgYnVmID0gYnVmLnNsaWNlKGkgKyAxKTsgLy8gU2tpcCBzcGFjZSAoaWYgYW55KVxyXG4gIH1cclxufVxyXG4iXSwibmFtZXMiOlsicHJldHR5T2JqZWN0IiwibXNnIiwib2JqIiwiSlNPTiIsInN0cmluZ2lmeSIsInRvU3RyaW5nIiwic3RhcnRzV2l0aCIsImpvaW4iLCJjaHVua3MiLCJzIiwibWF4Qnl0ZXMiLCJkZWNvZGVyIiwiVGV4dERlY29kZXIiLCJidWYiLCJUZXh0RW5jb2RlciIsImVuY29kZSIsImxlbmd0aCIsImkiLCJsYXN0SW5kZXhPZiIsImluZGV4T2YiLCJkZWNvZGUiLCJzbGljZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/utils/format.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/utils/indexedDB-storage.ts":
|
|
|
/*!****************************************!*\
|
|
|
!*** ./app/utils/indexedDB-storage.ts ***!
|
|
|
\****************************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ indexedDBStorage: () => (/* binding */ indexedDBStorage)\n/* harmony export */ });\n/* harmony import */ var idb_keyval__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! idb-keyval */ \"(ssr)/./node_modules/idb-keyval/dist/index.js\");\n/* harmony import */ var _app_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/app/utils */ \"(ssr)/./app/utils.ts\");\n\n\nconst localStorage = (0,_app_utils__WEBPACK_IMPORTED_MODULE_0__.safeLocalStorage)();\nclass IndexedDBStorage {\n async getItem(name) {\n try {\n const value = await (0,idb_keyval__WEBPACK_IMPORTED_MODULE_1__.get)(name) || localStorage.getItem(name);\n return value;\n } catch (error) {\n return localStorage.getItem(name);\n }\n }\n async setItem(name, value) {\n try {\n const _value = JSON.parse(value);\n if (!_value?.state?._hasHydrated) {\n console.warn(\"skip setItem\", name);\n return;\n }\n await (0,idb_keyval__WEBPACK_IMPORTED_MODULE_1__.set)(name, value);\n } catch (error) {\n localStorage.setItem(name, value);\n }\n }\n async removeItem(name) {\n try {\n await (0,idb_keyval__WEBPACK_IMPORTED_MODULE_1__.del)(name);\n } catch (error) {\n localStorage.removeItem(name);\n }\n }\n async clear() {\n try {\n await (0,idb_keyval__WEBPACK_IMPORTED_MODULE_1__.clear)();\n } catch (error) {\n localStorage.clear();\n }\n }\n}\nconst indexedDBStorage = new IndexedDBStorage();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvdXRpbHMvaW5kZXhlZERCLXN0b3JhZ2UudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ2tEO0FBQ0g7QUFFL0MsTUFBTUssZUFBZUQsNERBQWdCQTtBQUVyQyxNQUFNRTtJQUNKLE1BQWFDLFFBQVFDLElBQVksRUFBMEI7UUFDekQsSUFBSTtZQUNGLE1BQU1DLFFBQVEsTUFBT1QsK0NBQUdBLENBQUNRLFNBQVVILGFBQWFFLE9BQU8sQ0FBQ0M7WUFDeEQsT0FBT0M7UUFDVCxFQUFFLE9BQU9DLE9BQU87WUFDZCxPQUFPTCxhQUFhRSxPQUFPLENBQUNDO1FBQzlCO0lBQ0Y7SUFFQSxNQUFhRyxRQUFRSCxJQUFZLEVBQUVDLEtBQWEsRUFBaUI7UUFDL0QsSUFBSTtZQUNGLE1BQU1HLFNBQVNDLEtBQUtDLEtBQUssQ0FBQ0w7WUFDMUIsSUFBSSxDQUFDRyxRQUFRRyxPQUFPQyxjQUFjO2dCQUNoQ0MsUUFBUUMsSUFBSSxDQUFDLGdCQUFnQlY7Z0JBQzdCO1lBQ0Y7WUFDQSxNQUFNUCwrQ0FBR0EsQ0FBQ08sTUFBTUM7UUFDbEIsRUFBRSxPQUFPQyxPQUFPO1lBQ2RMLGFBQWFNLE9BQU8sQ0FBQ0gsTUFBTUM7UUFDN0I7SUFDRjtJQUVBLE1BQWFVLFdBQVdYLElBQVksRUFBaUI7UUFDbkQsSUFBSTtZQUNGLE1BQU1OLCtDQUFHQSxDQUFDTTtRQUNaLEVBQUUsT0FBT0UsT0FBTztZQUNkTCxhQUFhYyxVQUFVLENBQUNYO1FBQzFCO0lBQ0Y7SUFFQSxNQUFhTCxRQUF1QjtRQUNsQyxJQUFJO1lBQ0YsTUFBTUEsaURBQUtBO1FBQ2IsRUFBRSxPQUFPTyxPQUFPO1lBQ2RMLGFBQWFGLEtBQUs7UUFDcEI7SUFDRjtBQUNGO0FBRU8sTUFBTWlCLG1CQUFtQixJQUFJZCxtQkFBbUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC91dGlscy9pbmRleGVkREItc3RvcmFnZS50cz8zMjI2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXRlU3RvcmFnZSB9IGZyb20gXCJ6dXN0YW5kL21pZGRsZXdhcmVcIjtcclxuaW1wb3J0IHsgZ2V0LCBzZXQsIGRlbCwgY2xlYXIgfSBmcm9tIFwiaWRiLWtleXZhbFwiO1xyXG5pbXBvcnQgeyBzYWZlTG9jYWxTdG9yYWdlIH0gZnJvbSBcIkAvYXBwL3V0aWxzXCI7XHJcblxyXG5jb25zdCBsb2NhbFN0b3JhZ2UgPSBzYWZlTG9jYWxTdG9yYWdlKCk7XHJcblxyXG5jbGFzcyBJbmRleGVkREJTdG9yYWdlIGltcGxlbWVudHMgU3RhdGVTdG9yYWdlIHtcclxuICBwdWJsaWMgYXN5bmMgZ2V0SXRlbShuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gKGF3YWl0IGdldChuYW1lKSkgfHwgbG9jYWxTdG9yYWdlLmdldEl0ZW0obmFtZSk7XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShuYW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzZXRJdGVtKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgX3ZhbHVlID0gSlNPTi5wYXJzZSh2YWx1ZSk7XHJcbiAgICAgIGlmICghX3ZhbHVlPy5zdGF0ZT8uX2hhc0h5ZHJhdGVkKSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKFwic2tpcCBzZXRJdGVtXCIsIG5hbWUpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBhd2FpdCBzZXQobmFtZSwgdmFsdWUpO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0obmFtZSwgdmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHJlbW92ZUl0ZW0obmFtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBhd2FpdCBkZWwobmFtZSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShuYW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjbGVhcigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGF3YWl0IGNsZWFyKCk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBpbmRleGVkREJTdG9yYWdlID0gbmV3IEluZGV4ZWREQlN0b3JhZ2UoKTtcclxuIl0sIm5hbWVzIjpbImdldCIsInNldCIsImRlbCIsImNsZWFyIiwic2FmZUxvY2FsU3RvcmFnZSIsImxvY2FsU3RvcmFnZSIsIkluZGV4ZWREQlN0b3JhZ2UiLCJnZXRJdGVtIiwibmFtZSIsInZhbHVlIiwiZXJyb3IiLCJzZXRJdGVtIiwiX3ZhbHVlIiwiSlNPTiIsInBhcnNlIiwic3RhdGUiLCJfaGFzSHlkcmF0ZWQiLCJjb25zb2xlIiwid2FybiIsInJlbW92ZUl0ZW0iLCJpbmRleGVkREJTdG9yYWdlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/utils/indexedDB-storage.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/utils/merge.ts":
|
|
|
/*!****************************!*\
|
|
|
!*** ./app/utils/merge.ts ***!
|
|
|
\****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ merge: () => (/* binding */ merge)\n/* harmony export */ });\nfunction merge(target, source) {\n Object.keys(source).forEach(function(key) {\n if (source.hasOwnProperty(key) && // Check if the property is not inherited\n source[key] && typeof source[key] === \"object\" || key === \"__proto__\" || key === \"constructor\") {\n merge(target[key] = target[key] || {}, source[key]);\n return;\n }\n target[key] = source[key];\n });\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvdXRpbHMvbWVyZ2UudHMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPLFNBQVNBLE1BQU1DLE1BQVcsRUFBRUMsTUFBVztJQUM1Q0MsT0FBT0MsSUFBSSxDQUFDRixRQUFRRyxPQUFPLENBQUMsU0FBVUMsR0FBRztRQUN2QyxJQUNFSixPQUFPSyxjQUFjLENBQUNELFFBQVEseUNBQXlDO1FBQ3ZFSixNQUFNLENBQUNJLElBQUksSUFDWCxPQUFPSixNQUFNLENBQUNJLElBQUksS0FBSyxZQUFZQSxRQUFRLGVBQWVBLFFBQVEsZUFDbEU7WUFDQU4sTUFBT0MsTUFBTSxDQUFDSyxJQUFJLEdBQUdMLE1BQU0sQ0FBQ0ssSUFBSSxJQUFJLENBQUMsR0FBSUosTUFBTSxDQUFDSSxJQUFJO1lBQ3BEO1FBQ0Y7UUFDQUwsTUFBTSxDQUFDSyxJQUFJLEdBQUdKLE1BQU0sQ0FBQ0ksSUFBSTtJQUMzQjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvdXRpbHMvbWVyZ2UudHM/ZTM1NSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gbWVyZ2UodGFyZ2V0OiBhbnksIHNvdXJjZTogYW55KSB7XHJcbiAgT2JqZWN0LmtleXMoc291cmNlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcclxuICAgIGlmIChcclxuICAgICAgc291cmNlLmhhc093blByb3BlcnR5KGtleSkgJiYgLy8gQ2hlY2sgaWYgdGhlIHByb3BlcnR5IGlzIG5vdCBpbmhlcml0ZWRcclxuICAgICAgc291cmNlW2tleV0gJiZcclxuICAgICAgdHlwZW9mIHNvdXJjZVtrZXldID09PSBcIm9iamVjdFwiIHx8IGtleSA9PT0gXCJfX3Byb3RvX19cIiB8fCBrZXkgPT09IFwiY29uc3RydWN0b3JcIlxyXG4gICAgKSB7XHJcbiAgICAgIG1lcmdlKCh0YXJnZXRba2V5XSA9IHRhcmdldFtrZXldIHx8IHt9KSwgc291cmNlW2tleV0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xyXG4gIH0pO1xyXG59ICJdLCJuYW1lcyI6WyJtZXJnZSIsInRhcmdldCIsInNvdXJjZSIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwiaGFzT3duUHJvcGVydHkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/utils/merge.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/utils/model.ts":
|
|
|
/*!****************************!*\
|
|
|
!*** ./app/utils/model.ts ***!
|
|
|
\****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ collectModelTable: () => (/* binding */ collectModelTable),\n/* harmony export */ collectModelTableWithDefaultModel: () => (/* binding */ collectModelTableWithDefaultModel),\n/* harmony export */ collectModels: () => (/* binding */ collectModels),\n/* harmony export */ collectModelsWithDefaultModel: () => (/* binding */ collectModelsWithDefaultModel),\n/* harmony export */ getModelProvider: () => (/* binding */ getModelProvider),\n/* harmony export */ isGPT4Model: () => (/* binding */ isGPT4Model),\n/* harmony export */ isModelAvailableInServer: () => (/* binding */ isModelAvailableInServer),\n/* harmony export */ isModelNotavailableInServer: () => (/* binding */ isModelNotavailableInServer)\n/* harmony export */ });\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constant */ \"(ssr)/./app/constant.ts\");\n\nconst CustomSeq = {\n val: -1000,\n cache: new Map(),\n next: (id)=>{\n if (CustomSeq.cache.has(id)) {\n return CustomSeq.cache.get(id);\n } else {\n let seq = CustomSeq.val++;\n CustomSeq.cache.set(id, seq);\n return seq;\n }\n }\n};\nconst customProvider = (providerName)=>({\n id: providerName.toLowerCase(),\n providerName: providerName,\n providerType: \"custom\",\n sorted: CustomSeq.next(providerName)\n });\n/**\r\n * Sorts an array of models based on specified rules.\r\n *\r\n * First, sorted by provider; if the same, sorted by model\r\n */ const sortModelTable = (models)=>models.sort((a, b)=>{\n if (a.provider && b.provider) {\n let cmp = a.provider.sorted - b.provider.sorted;\n return cmp === 0 ? a.sorted - b.sorted : cmp;\n } else {\n return a.sorted - b.sorted;\n }\n });\n/**\r\n * get model name and provider from a formatted string,\r\n * e.g. `gpt-4@OpenAi` or `claude-3-5-sonnet@20240620@Google`\r\n * @param modelWithProvider model name with provider separated by last `@` char,\r\n * @returns [model, provider] tuple, if no `@` char found, provider is undefined\r\n */ function getModelProvider(modelWithProvider) {\n const [model, provider] = modelWithProvider.split(/@(?!.*@)/);\n return [\n model,\n provider\n ];\n}\nfunction collectModelTable(models, customModels) {\n const modelTable = {};\n // default models\n models.forEach((m)=>{\n // using <modelName>@<providerId> as fullName\n modelTable[`${m.name}@${m?.provider?.id}`] = {\n ...m,\n displayName: m.name\n };\n });\n // server custom models\n customModels.split(\",\").filter((v)=>!!v && v.length > 0).forEach((m)=>{\n const available = !m.startsWith(\"-\");\n const nameConfig = m.startsWith(\"+\") || m.startsWith(\"-\") ? m.slice(1) : m;\n let [name, displayName] = nameConfig.split(\"=\");\n // enable or disable all models\n if (name === \"all\") {\n Object.values(modelTable).forEach((model)=>model.available = available);\n } else {\n // 1. find model by name, and set available value\n const [customModelName, customProviderName] = getModelProvider(name);\n let count = 0;\n for(const fullName in modelTable){\n const [modelName, providerName] = getModelProvider(fullName);\n if (customModelName == modelName && (customProviderName === undefined || customProviderName === providerName)) {\n count += 1;\n modelTable[fullName][\"available\"] = available;\n // swap name and displayName for bytedance\n if (providerName === \"bytedance\") {\n [name, displayName] = [\n displayName,\n modelName\n ];\n modelTable[fullName][\"name\"] = name;\n }\n if (displayName) {\n modelTable[fullName][\"displayName\"] = displayName;\n }\n }\n }\n // 2. if model not exists, create new model with available value\n if (count === 0) {\n let [customModelName, customProviderName] = getModelProvider(name);\n const provider = customProvider(customProviderName || customModelName);\n // swap name and displayName for bytedance\n if (displayName && provider.providerName == \"ByteDance\") {\n [customModelName, displayName] = [\n displayName,\n customModelName\n ];\n }\n modelTable[`${customModelName}@${provider?.id}`] = {\n name: customModelName,\n displayName: displayName || customModelName,\n available,\n provider,\n sorted: CustomSeq.next(`${customModelName}@${provider?.id}`)\n };\n }\n }\n });\n return modelTable;\n}\nfunction collectModelTableWithDefaultModel(models, customModels, defaultModel) {\n let modelTable = collectModelTable(models, customModels);\n if (defaultModel && defaultModel !== \"\") {\n if (defaultModel.includes(\"@\")) {\n if (defaultModel in modelTable) {\n modelTable[defaultModel].isDefault = true;\n }\n } else {\n for (const key of Object.keys(modelTable)){\n if (modelTable[key].available && getModelProvider(key)[0] == defaultModel) {\n modelTable[key].isDefault = true;\n break;\n }\n }\n }\n }\n return modelTable;\n}\n/**\r\n * Generate full model table.\r\n */ function collectModels(models, customModels) {\n const modelTable = collectModelTable(models, customModels);\n let allModels = Object.values(modelTable);\n allModels = sortModelTable(allModels);\n return allModels;\n}\nfunction collectModelsWithDefaultModel(models, customModels, defaultModel) {\n const modelTable = collectModelTableWithDefaultModel(models, customModels, defaultModel);\n let allModels = Object.values(modelTable);\n allModels = sortModelTable(allModels);\n return allModels;\n}\nfunction isModelAvailableInServer(customModels, modelName, providerName) {\n const fullName = `${modelName}@${providerName}`;\n const modelTable = collectModelTable(_constant__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_MODELS, customModels);\n return modelTable[fullName]?.available === false;\n}\n/**\r\n * Check if the model name is a GPT-4 related model\r\n *\r\n * @param modelName The name of the model to check\r\n * @returns True if the model is a GPT-4 related model (excluding gpt-4o-mini)\r\n */ function isGPT4Model(modelName) {\n return (modelName.startsWith(\"gpt-4\") || modelName.startsWith(\"chatgpt-4o\") || modelName.startsWith(\"o1\")) && !modelName.startsWith(\"gpt-4o-mini\");\n}\n/**\r\n * Checks if a model is not available on any of the specified providers in the server.\r\n *\r\n * @param {string} customModels - A string of custom models, comma-separated.\r\n * @param {string} modelName - The name of the model to check.\r\n * @param {string|string[]} providerNames - A string or array of provider names to check against.\r\n *\r\n * @returns {boolean} True if the model is not available on any of the specified providers, false otherwise.\r\n */ function isModelNotavailableInServer(customModels, modelName, providerNames) {\n // Check DISABLE_GPT4 environment variable\n if (process.env.DISABLE_GPT4 === \"1\" && isGPT4Model(modelName.toLowerCase())) {\n return true;\n }\n const modelTable = collectModelTable(_constant__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_MODELS, customModels);\n const providerNamesArray = Array.isArray(providerNames) ? providerNames : [\n providerNames\n ];\n for (const providerName of providerNamesArray){\n // if model provider is bytedance, use model config name to check if not avaliable\n if (providerName === _constant__WEBPACK_IMPORTED_MODULE_0__.ServiceProvider.ByteDance) {\n return !Object.values(modelTable).filter((v)=>v.name === modelName)?.[0]?.available;\n }\n const fullName = `${modelName}@${providerName.toLowerCase()}`;\n if (modelTable?.[fullName]?.available === true) return false;\n }\n return true;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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VCxVQUFVLENBQUM7QUFFMUI7QUFFQTs7Ozs7Ozs7Q0FRQyxHQUNNLFNBQVNzQiw0QkFDZGhDLFlBQW9CLEVBQ3BCbUIsU0FBaUIsRUFDakJjLGFBQWdDO0lBRWhDLDBDQUEwQztJQUMxQyxJQUNFQyxRQUFRQyxHQUFHLENBQUNDLFlBQVksS0FBSyxPQUM3QkwsWUFBWVosVUFBVWxDLFdBQVcsS0FDakM7UUFDQSxPQUFPO0lBQ1Q7SUFFQSxNQUFNZ0IsYUFBYUYsa0JBQWtCNUIscURBQWNBLEVBQUU2QjtJQUVyRCxNQUFNcUMscUJBQXFCQyxNQUFNQyxPQUFPLENBQUNOLGlCQUNyQ0EsZ0JBQ0E7UUFBQ0E7S0FBYztJQUNuQixLQUFLLE1BQU1qRCxnQkFBZ0JxRCxtQkFBb0I7UUFDN0Msa0ZBQWtGO1FBQ2xGLElBQUlyRCxpQkFBaUJaLHNEQUFlQSxDQUFDb0UsU0FBUyxFQUFFO1lBQzlDLE9BQU8sQ0FBQzNCLE9BQU9DLE1BQU0sQ0FBQ2IsWUFBWUssTUFBTSxDQUFDLENBQUNDLElBQU1BLEVBQUVILElBQUksS0FBS2UsWUFBWSxDQUFDLEVBQUUsRUFDdEVWO1FBQ047UUFDQSxNQUFNUyxXQUFXLENBQUMsRUFBRUMsVUFBVSxDQUFDLEVBQUVuQyxhQUFhQyxXQUFXLEdBQUcsQ0FBQztRQUM3RCxJQUFJZ0IsWUFBWSxDQUFDaUIsU0FBUyxFQUFFVCxjQUFjLE1BQU0sT0FBTztJQUN6RDtJQUNBLE9BQU87QUFDVCIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL3V0aWxzL21vZGVsLnRzP2U0OWYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVGQVVMVF9NT0RFTFMsIFNlcnZpY2VQcm92aWRlciB9IGZyb20gXCIuLi9jb25zdGFudFwiO1xyXG5pbXBvcnQgeyBMTE1Nb2RlbCB9IGZyb20gXCIuLi9jbGllbnQvYXBpXCI7XHJcblxyXG5jb25zdCBDdXN0b21TZXEgPSB7XHJcbiAgdmFsOiAtMTAwMCwgLy9UbyBlbnN1cmUgdGhlIGN1c3RvbSBtb2RlbCBsb2NhdGVkIGF0IGZyb250LCBzdGFydCBmcm9tIC0xMDAwLCByZWZlciB0byBjb25zdGFudC50c1xyXG4gIGNhY2hlOiBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpLFxyXG4gIG5leHQ6IChpZDogc3RyaW5nKSA9PiB7XHJcbiAgICBpZiAoQ3VzdG9tU2VxLmNhY2hlLmhhcyhpZCkpIHtcclxuICAgICAgcmV0dXJuIEN1c3RvbVNlcS5jYWNoZS5nZXQoaWQpIGFzIG51bWJlcjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBzZXEgPSBDdXN0b21TZXEudmFsKys7XHJcbiAgICAgIEN1c3RvbVNlcS5jYWNoZS5zZXQoaWQsIHNlcSk7XHJcbiAgICAgIHJldHVybiBzZXE7XHJcbiAgICB9XHJcbiAgfSxcclxufTtcclxuXHJcbmNvbnN0IGN1c3RvbVByb3ZpZGVyID0gKHByb3ZpZGVyTmFtZTogc3RyaW5nKSA9PiAoe1xyXG4gIGlkOiBwcm92aWRlck5hbWUudG9Mb3dlckNhc2UoKSxcclxuICBwcm92aWRlck5hbWU6IHByb3ZpZGVyTmFtZSxcclxuICBwcm92aWRlclR5cGU6IFwiY3VzdG9tXCIsXHJcbiAgc29ydGVkOiBDdXN0b21TZXEubmV4dChwcm92aWRlck5hbWUpLFxyXG59KTtcclxuXHJcbi8qKlxyXG4gKiBTb3J0cyBhbiBhcnJheSBvZiBtb2RlbHMgYmFzZWQgb24gc3BlY2lmaWVkIHJ1bGVzLlxyXG4gKlxyXG4gKiBGaXJzdCwgc29ydGVkIGJ5IHByb3ZpZGVyOyBpZiB0aGUgc2FtZSwgc29ydGVkIGJ5IG1vZGVsXHJcbiAqL1xyXG5jb25zdCBzb3J0TW9kZWxUYWJsZSA9IChtb2RlbHM6IFJldHVyblR5cGU8dHlwZW9mIGNvbGxlY3RNb2RlbHM+KSA9PlxyXG4gIG1vZGVscy5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICBpZiAoYS5wcm92aWRlciAmJiBiLnByb3ZpZGVyKSB7XHJcbiAgICAgIGxldCBjbXAgPSBhLnByb3ZpZGVyLnNvcnRlZCAtIGIucHJvdmlkZXIuc29ydGVkO1xyXG4gICAgICByZXR1cm4gY21wID09PSAwID8gYS5zb3J0ZWQgLSBiLnNvcnRlZCA6IGNtcDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBhLnNvcnRlZCAtIGIuc29ydGVkO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuLyoqXHJcbiAqIGdldCBtb2RlbCBuYW1lIGFuZCBwcm92aWRlciBmcm9tIGEgZm9ybWF0dGVkIHN0cmluZyxcclxuICogZS5nLiBgZ3B0LTRAT3BlbkFpYCBvciBgY2xhdWRlLTMtNS1zb25uZXRAMjAyNDA2MjBAR29vZ2xlYFxyXG4gKiBAcGFyYW0gbW9kZWxXaXRoUHJvdmlkZXIgbW9kZWwgbmFtZSB3aXRoIHByb3ZpZGVyIHNlcGFyYXRlZCBieSBsYXN0IGBAYCBjaGFyLFxyXG4gKiBAcmV0dXJucyBbbW9kZWwsIHByb3ZpZGVyXSB0dXBsZSwgaWYgbm8gYEBgIGNoYXIgZm91bmQsIHByb3ZpZGVyIGlzIHVuZGVmaW5lZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vZGVsUHJvdmlkZXIobW9kZWxXaXRoUHJvdmlkZXI6IHN0cmluZyk6IFtzdHJpbmcsIHN0cmluZz9dIHtcclxuICBjb25zdCBbbW9kZWwsIHByb3ZpZGVyXSA9IG1vZGVsV2l0aFByb3ZpZGVyLnNwbGl0KC9AKD8hLipAKS8pO1xyXG4gIHJldHVybiBbbW9kZWwsIHByb3ZpZGVyXTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbGxlY3RNb2RlbFRhYmxlKFxyXG4gIG1vZGVsczogcmVhZG9ubHkgTExNTW9kZWxbXSxcclxuICBjdXN0b21Nb2RlbHM6IHN0cmluZyxcclxuKSB7XHJcbiAgY29uc3QgbW9kZWxUYWJsZTogUmVjb3JkPFxyXG4gICAgc3RyaW5nLFxyXG4gICAge1xyXG4gICAgICBhdmFpbGFibGU6IGJvb2xlYW47XHJcbiAgICAgIG5hbWU6IHN0cmluZztcclxuICAgICAgZGlzcGxheU5hbWU6IHN0cmluZztcclxuICAgICAgc29ydGVkOiBudW1iZXI7XHJcbiAgICAgIHByb3ZpZGVyPzogTExNTW9kZWxbXCJwcm92aWRlclwiXTsgLy8gTWFya2VkIGFzIG9wdGlvbmFsXHJcbiAgICAgIGlzRGVmYXVsdD86IGJvb2xlYW47XHJcbiAgICB9XHJcbiAgPiA9IHt9O1xyXG5cclxuICAvLyBkZWZhdWx0IG1vZGVsc1xyXG4gIG1vZGVscy5mb3JFYWNoKChtKSA9PiB7XHJcbiAgICAvLyB1c2luZyA8bW9kZWxOYW1lPkA8cHJvdmlkZXJJZD4gYXMgZnVsbE5hbWVcclxuICAgIG1vZGVsVGFibGVbYCR7bS5uYW1lfUAke20/LnByb3ZpZGVyPy5pZH1gXSA9IHtcclxuICAgICAgLi4ubSxcclxuICAgICAgZGlzcGxheU5hbWU6IG0ubmFtZSwgLy8gJ3Byb3ZpZGVyJyBpcyBjb3BpZWQgb3ZlciBpZiBpdCBleGlzdHNcclxuICAgIH07XHJcbiAgfSk7XHJcblxyXG4gIC8vIHNlcnZlciBjdXN0b20gbW9kZWxzXHJcbiAgY3VzdG9tTW9kZWxzXHJcbiAgICAuc3BsaXQoXCIsXCIpXHJcbiAgICAuZmlsdGVyKCh2KSA9PiAhIXYgJiYgdi5sZW5ndGggPiAwKVxyXG4gICAgLmZvckVhY2goKG0pID0+IHtcclxuICAgICAgY29uc3QgYXZhaWxhYmxlID0gIW0uc3RhcnRzV2l0aChcIi1cIik7XHJcbiAgICAgIGNvbnN0IG5hbWVDb25maWcgPVxyXG4gICAgICAgIG0uc3RhcnRzV2l0aChcIitcIikgfHwgbS5zdGFydHNXaXRoKFwiLVwiKSA/IG0uc2xpY2UoMSkgOiBtO1xyXG4gICAgICBsZXQgW25hbWUsIGRpc3BsYXlOYW1lXSA9IG5hbWVDb25maWcuc3BsaXQoXCI9XCIpO1xyXG5cclxuICAgICAgLy8gZW5hYmxlIG9yIGRpc2FibGUgYWxsIG1vZGVsc1xyXG4gICAgICBpZiAobmFtZSA9PT0gXCJhbGxcIikge1xyXG4gICAgICAgIE9iamVjdC52YWx1ZXMobW9kZWxUYWJsZSkuZm9yRWFjaChcclxuICAgICAgICAgIChtb2RlbCkgPT4gKG1vZGVsLmF2YWlsYWJsZSA9IGF2YWlsYWJsZSksXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyAxLiBmaW5kIG1vZGVsIGJ5IG5hbWUsIGFuZCBzZXQgYXZhaWxhYmxlIHZhbHVlXHJcbiAgICAgICAgY29uc3QgW2N1c3RvbU1vZGVsTmFtZSwgY3VzdG9tUHJvdmlkZXJOYW1lXSA9IGdldE1vZGVsUHJvdmlkZXIobmFtZSk7XHJcbiAgICAgICAgbGV0IGNvdW50ID0gMDtcclxuICAgICAgICBmb3IgKGNvbnN0IGZ1bGxOYW1lIGluIG1vZGVsVGFibGUpIHtcclxuICAgICAgICAgIGNvbnN0IFttb2RlbE5hbWUsIHByb3ZpZGVyTmFtZV0gPSBnZXRNb2RlbFByb3ZpZGVyKGZ1bGxOYW1lKTtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgY3VzdG9tTW9kZWxOYW1lID09IG1vZGVsTmFtZSAmJlxyXG4gICAgICAgICAgICAoY3VzdG9tUHJvdmlkZXJOYW1lID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICAgICAgICBjdXN0b21Qcm92aWRlck5hbWUgPT09IHByb3ZpZGVyTmFtZSlcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBjb3VudCArPSAxO1xyXG4gICAgICAgICAgICBtb2RlbFRhYmxlW2Z1bGxOYW1lXVtcImF2YWlsYWJsZVwiXSA9IGF2YWlsYWJsZTtcclxuICAgICAgICAgICAgLy8gc3dhcCBuYW1lIGFuZCBkaXNwbGF5TmFtZSBmb3IgYnl0ZWRhbmNlXHJcbiAgICAgICAgICAgIGlmIChwcm92aWRlck5hbWUgPT09IFwiYnl0ZWRhbmNlXCIpIHtcclxuICAgICAgICAgICAgICBbbmFtZSwgZGlzcGxheU5hbWVdID0gW2Rpc3BsYXlOYW1lLCBtb2RlbE5hbWVdO1xyXG4gICAgICAgICAgICAgIG1vZGVsVGFibGVbZnVsbE5hbWVdW1wibmFtZVwiXSA9IG5hbWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGRpc3BsYXlOYW1lKSB7XHJcbiAgICAgICAgICAgICAgbW9kZWxUYWJsZVtmdWxsTmFtZV1bXCJkaXNwbGF5TmFtZVwiXSA9IGRpc3BsYXlOYW1lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIDIuIGlmIG1vZGVsIG5vdCBleGlzdHMsIGNyZWF0ZSBuZXcgbW9kZWwgd2l0aCBhdmFpbGFibGUgdmFsdWVcclxuICAgICAgICBpZiAoY291bnQgPT09IDApIHtcclxuICAgICAgICAgIGxldCBbY3VzdG9tTW9kZWxOYW1lLCBjdXN0b21Qcm92aWRlck5hbWVdID0gZ2V0TW9kZWxQcm92aWRlcihuYW1lKTtcclxuICAgICAgICAgIGNvbnN0IHByb3ZpZGVyID0gY3VzdG9tUHJvdmlkZXIoXHJcbiAgICAgICAgICAgIGN1c3RvbVByb3ZpZGVyTmFtZSB8fCBjdXN0b21Nb2RlbE5hbWUsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgLy8gc3dhcCBuYW1lIGFuZCBkaXNwbGF5TmFtZSBmb3IgYnl0ZWRhbmNlXHJcbiAgICAgICAgICBpZiAoZGlzcGxheU5hbWUgJiYgcHJvdmlkZXIucHJvdmlkZXJOYW1lID09IFwiQnl0ZURhbmNlXCIpIHtcclxuICAgICAgICAgICAgW2N1c3RvbU1vZGVsTmFtZSwgZGlzcGxheU5hbWVdID0gW2Rpc3BsYXlOYW1lLCBjdXN0b21Nb2RlbE5hbWVdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgbW9kZWxUYWJsZVtgJHtjdXN0b21Nb2RlbE5hbWV9QCR7cHJvdmlkZXI/LmlkfWBdID0ge1xyXG4gICAgICAgICAgICBuYW1lOiBjdXN0b21Nb2RlbE5hbWUsXHJcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBkaXNwbGF5TmFtZSB8fCBjdXN0b21Nb2RlbE5hbWUsXHJcbiAgICAgICAgICAgIGF2YWlsYWJsZSxcclxuICAgICAgICAgICAgcHJvdmlkZXIsIC8vIFVzZSBvcHRpb25hbCBjaGFpbmluZ1xyXG4gICAgICAgICAgICBzb3J0ZWQ6IEN1c3RvbVNlcS5uZXh0KGAke2N1c3RvbU1vZGVsTmFtZX1AJHtwcm92aWRlcj8uaWR9YCksXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gIHJldHVybiBtb2RlbFRhYmxlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29sbGVjdE1vZGVsVGFibGVXaXRoRGVmYXVsdE1vZGVsKFxyXG4gIG1vZGVsczogcmVhZG9ubHkgTExNTW9kZWxbXSxcclxuICBjdXN0b21Nb2RlbHM6IHN0cmluZyxcclxuICBkZWZhdWx0TW9kZWw6IHN0cmluZyxcclxuKSB7XHJcbiAgbGV0IG1vZGVsVGFibGUgPSBjb2xsZWN0TW9kZWxUYWJsZShtb2RlbHMsIGN1c3RvbU1vZGVscyk7XHJcbiAgaWYgKGRlZmF1bHRNb2RlbCAmJiBkZWZhdWx0TW9kZWwgIT09IFwiXCIpIHtcclxuICAgIGlmIChkZWZhdWx0TW9kZWwuaW5jbHVkZXMoXCJAXCIpKSB7XHJcbiAgICAgIGlmIChkZWZhdWx0TW9kZWwgaW4gbW9kZWxUYWJsZSkge1xyXG4gICAgICAgIG1vZGVsVGFibGVbZGVmYXVsdE1vZGVsXS5pc0RlZmF1bHQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtb2RlbFRhYmxlKSkge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIG1vZGVsVGFibGVba2V5XS5hdmFpbGFibGUgJiZcclxuICAgICAgICAgIGdldE1vZGVsUHJvdmlkZXIoa2V5KVswXSA9PSBkZWZhdWx0TW9kZWxcclxuICAgICAgICApIHtcclxuICAgICAgICAgIG1vZGVsVGFibGVba2V5XS5pc0RlZmF1bHQgPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBtb2RlbFRhYmxlO1xyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhdGUgZnVsbCBtb2RlbCB0YWJsZS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjb2xsZWN0TW9kZWxzKFxyXG4gIG1vZGVsczogcmVhZG9ubHkgTExNTW9kZWxbXSxcclxuICBjdXN0b21Nb2RlbHM6IHN0cmluZyxcclxuKSB7XHJcbiAgY29uc3QgbW9kZWxUYWJsZSA9IGNvbGxlY3RNb2RlbFRhYmxlKG1vZGVscywgY3VzdG9tTW9kZWxzKTtcclxuICBsZXQgYWxsTW9kZWxzID0gT2JqZWN0LnZhbHVlcyhtb2RlbFRhYmxlKTtcclxuXHJcbiAgYWxsTW9kZWxzID0gc29ydE1vZGVsVGFibGUoYWxsTW9kZWxzKTtcclxuXHJcbiAgcmV0dXJuIGFsbE1vZGVscztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbGxlY3RNb2RlbHNXaXRoRGVmYXVsdE1vZGVsKFxyXG4gIG1vZGVsczogcmVhZG9ubHkgTExNTW9kZWxbXSxcclxuICBjdXN0b21Nb2RlbHM6IHN0cmluZyxcclxuICBkZWZhdWx0TW9kZWw6IHN0cmluZyxcclxuKSB7XHJcbiAgY29uc3QgbW9kZWxUYWJsZSA9IGNvbGxlY3RNb2RlbFRhYmxlV2l0aERlZmF1bHRNb2RlbChcclxuICAgIG1vZGVscyxcclxuICAgIGN1c3RvbU1vZGVscyxcclxuICAgIGRlZmF1bHRNb2RlbCxcclxuICApO1xyXG4gIGxldCBhbGxNb2RlbHMgPSBPYmplY3QudmFsdWVzKG1vZGVsVGFibGUpO1xyXG5cclxuICBhbGxNb2RlbHMgPSBzb3J0TW9kZWxUYWJsZShhbGxNb2RlbHMpO1xyXG5cclxuICByZXR1cm4gYWxsTW9kZWxzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNNb2RlbEF2YWlsYWJsZUluU2VydmVyKFxyXG4gIGN1c3RvbU1vZGVsczogc3RyaW5nLFxyXG4gIG1vZGVsTmFtZTogc3RyaW5nLFxyXG4gIHByb3ZpZGVyTmFtZTogc3RyaW5nLFxyXG4pIHtcclxuICBjb25zdCBmdWxsTmFtZSA9IGAke21vZGVsTmFtZX1AJHtwcm92aWRlck5hbWV9YDtcclxuICBjb25zdCBtb2RlbFRhYmxlID0gY29sbGVjdE1vZGVsVGFibGUoREVGQVVMVF9NT0RFTFMsIGN1c3RvbU1vZGVscyk7XHJcbiAgcmV0dXJuIG1vZGVsVGFibGVbZnVsbE5hbWVdPy5hdmFpbGFibGUgPT09IGZhbHNlO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2sgaWYgdGhlIG1vZGVsIG5hbWUgaXMgYSBHUFQtNCByZWxhdGVkIG1vZGVsXHJcbiAqXHJcbiAqIEBwYXJhbSBtb2RlbE5hbWUgVGhlIG5hbWUgb2YgdGhlIG1vZGVsIHRvIGNoZWNrXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIG1vZGVsIGlzIGEgR1BULTQgcmVsYXRlZCBtb2RlbCAoZXhjbHVkaW5nIGdwdC00by1taW5pKVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzR1BUNE1vZGVsKG1vZGVsTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIChcclxuICAgIChtb2RlbE5hbWUuc3RhcnRzV2l0aChcImdwdC00XCIpIHx8XHJcbiAgICAgIG1vZGVsTmFtZS5zdGFydHNXaXRoKFwiY2hhdGdwdC00b1wiKSB8fFxyXG4gICAgICBtb2RlbE5hbWUuc3RhcnRzV2l0aChcIm8xXCIpKSAmJlxyXG4gICAgIW1vZGVsTmFtZS5zdGFydHNXaXRoKFwiZ3B0LTRvLW1pbmlcIilcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGlmIGEgbW9kZWwgaXMgbm90IGF2YWlsYWJsZSBvbiBhbnkgb2YgdGhlIHNwZWNpZmllZCBwcm92aWRlcnMgaW4gdGhlIHNlcnZlci5cclxuICpcclxuICogQHBhcmFtIHtzdHJpbmd9IGN1c3RvbU1vZGVscyAtIEEgc3RyaW5nIG9mIGN1c3RvbSBtb2RlbHMsIGNvbW1hLXNlcGFyYXRlZC5cclxuICogQHBhcmFtIHtzdHJpbmd9IG1vZGVsTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBtb2RlbCB0byBjaGVjay5cclxuICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IHByb3ZpZGVyTmFtZXMgLSBBIHN0cmluZyBvciBhcnJheSBvZiBwcm92aWRlciBuYW1lcyB0byBjaGVjayBhZ2FpbnN0LlxyXG4gKlxyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgbW9kZWwgaXMgbm90IGF2YWlsYWJsZSBvbiBhbnkgb2YgdGhlIHNwZWNpZmllZCBwcm92aWRlcnMsIGZhbHNlIG90aGVyd2lzZS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc01vZGVsTm90YXZhaWxhYmxlSW5TZXJ2ZXIoXHJcbiAgY3VzdG9tTW9kZWxzOiBzdHJpbmcsXHJcbiAgbW9kZWxOYW1lOiBzdHJpbmcsXHJcbiAgcHJvdmlkZXJOYW1lczogc3RyaW5nIHwgc3RyaW5nW10sXHJcbik6IGJvb2xlYW4ge1xyXG4gIC8vIENoZWNrIERJU0FCTEVfR1BUNCBlbnZpcm9ubWVudCB2YXJpYWJsZVxyXG4gIGlmIChcclxuICAgIHByb2Nlc3MuZW52LkRJU0FCTEVfR1BUNCA9PT0gXCIxXCIgJiZcclxuICAgIGlzR1BUNE1vZGVsKG1vZGVsTmFtZS50b0xvd2VyQ2FzZSgpKVxyXG4gICkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBjb25zdCBtb2RlbFRhYmxlID0gY29sbGVjdE1vZGVsVGFibGUoREVGQVVMVF9NT0RFTFMsIGN1c3RvbU1vZGVscyk7XHJcblxyXG4gIGNvbnN0IHByb3ZpZGVyTmFtZXNBcnJheSA9IEFycmF5LmlzQXJyYXkocHJvdmlkZXJOYW1lcylcclxuICAgID8gcHJvdmlkZXJOYW1lc1xyXG4gICAgOiBbcHJvdmlkZXJOYW1lc107XHJcbiAgZm9yIChjb25zdCBwcm92aWRlck5hbWUgb2YgcHJvdmlkZXJOYW1lc0FycmF5KSB7XHJcbiAgICAvLyBpZiBtb2RlbCBwcm92aWRlciBpcyBieXRlZGFuY2UsIHVzZSBtb2RlbCBjb25maWcgbmFtZSB0byBjaGVjayBpZiBub3QgYXZhbGlhYmxlXHJcbiAgICBpZiAocHJvdmlkZXJOYW1lID09PSBTZXJ2aWNlUHJvdmlkZXIuQnl0ZURhbmNlKSB7XHJcbiAgICAgIHJldHVybiAhT2JqZWN0LnZhbHVlcyhtb2RlbFRhYmxlKS5maWx0ZXIoKHYpID0+IHYubmFtZSA9PT0gbW9kZWxOYW1lKT8uWzBdXHJcbiAgICAgICAgPy5hdmFpbGFibGU7XHJcbiAgICB9XHJcbiAgICBjb25zdCBmdWxsTmFtZSA9IGAke21vZGVsTmFtZX1AJHtwcm92aWRlck5hbWUudG9Mb3dlckNhc2UoKX1gO1xyXG4gICAgaWYgKG1vZGVsVGFibGU/LltmdWxsTmFtZV0/LmF2YWlsYWJsZSA9PT0gdHJ1ZSkgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICByZXR1cm4gdHJ1ZTtcclxufVxyXG4iXSwibmFtZXMiOlsiREVGQVVMVF9NT0RFTFMiLCJTZXJ2aWNlUHJvdmlkZXIiLCJDdXN0b21TZXEiLCJ2YWwiLCJjYWNoZSIsIk1hcCIsIm5leHQiLCJpZCIsImhhcyIsImdldCIsInNlcSIsInNldCIsImN1c3RvbVByb3ZpZGVyIiwicHJvdmlkZXJOYW1lIiwidG9Mb3dlckNhc2UiLCJwcm92aWRlclR5cGUiLCJzb3J0ZWQiLCJzb3J0TW9kZWxUYWJsZSIsIm1vZGVscyIsInNvcnQiLCJhIiwiYiIsInByb3ZpZGVyIiwiY21wIiwiZ2V0TW9kZWxQcm92aWRlciIsIm1vZGVsV2l0aFByb3ZpZGVyIiwibW9kZWwiLCJzcGxpdCIsImNvbGxlY3RNb2RlbFRhYmxlIiwiY3VzdG9tTW9kZWxzIiwibW9kZWxUYWJsZSIsImZvckVhY2giLCJtIiwibmFtZSIsImRpc3BsYXlOYW1lIiwiZmlsdGVyIiwidiIsImxlbmd0aCIsImF2YWlsYWJsZSIsInN0YXJ0c1dpdGgiLCJuYW1lQ29uZmlnIiwic2xpY2UiLCJPYmplY3QiLCJ2YWx1ZXMiLCJjdXN0b21Nb2RlbE5hbWUiLCJjdXN0b21Qcm92aWRlck5hbWUiLCJjb3VudCIsImZ1bGxOYW1lIiwibW9kZWxOYW1lIiwidW5kZWZpbmVkIiwiY29sbGVjdE1vZGVsVGFibGVXaXRoRGVmYXVsdE1vZGVsIiwiZGVmYXVsdE1vZGVsIiwiaW5jbHVkZXMiLCJpc0RlZmF1bHQiLCJrZXkiLCJrZXlzIiwiY29sbGVjdE1vZGVscyIsImFsbE1vZGVscyIsImNvbGxlY3RNb2RlbHNXaXRoRGVmYXVsdE1vZGVsIiwiaXNNb2RlbEF2YWlsYWJsZUluU2VydmVyIiwiaXNHUFQ0TW9kZWwiLCJpc01vZGVsTm90YXZhaWxhYmxlSW5TZXJ2ZXIiLCJwcm92aWRlck5hbWVzIiwicHJvY2VzcyIsImVudiIsIkRJU0FCTEVfR1BUNCIsInByb3ZpZGVyTmFtZXNBcnJheSIsIkFycmF5IiwiaXNBcnJheSIsIkJ5dGVEYW5jZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/utils/model.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/utils/store.ts":
|
|
|
/*!****************************!*\
|
|
|
!*** ./app/utils/store.ts ***!
|
|
|
\****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createPersistStore: () => (/* binding */ createPersistStore)\n/* harmony export */ });\n/* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! zustand */ \"(ssr)/./node_modules/zustand/esm/index.mjs\");\n/* harmony import */ var zustand_middleware__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! zustand/middleware */ \"(ssr)/./node_modules/zustand/esm/middleware.mjs\");\n/* harmony import */ var _clone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clone */ \"(ssr)/./app/utils/clone.ts\");\n/* harmony import */ var _app_utils_indexedDB_storage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/app/utils/indexedDB-storage */ \"(ssr)/./app/utils/indexedDB-storage.ts\");\n\n\n\n\nfunction createPersistStore(state, methods, persistOptions) {\n persistOptions.storage = (0,zustand_middleware__WEBPACK_IMPORTED_MODULE_2__.createJSONStorage)(()=>_app_utils_indexedDB_storage__WEBPACK_IMPORTED_MODULE_1__.indexedDBStorage);\n const oldOonRehydrateStorage = persistOptions?.onRehydrateStorage;\n persistOptions.onRehydrateStorage = (state)=>{\n oldOonRehydrateStorage?.(state);\n return ()=>state.setHasHydrated(true);\n };\n return (0,zustand__WEBPACK_IMPORTED_MODULE_3__.create)((0,zustand_middleware__WEBPACK_IMPORTED_MODULE_2__.persist)((0,zustand_middleware__WEBPACK_IMPORTED_MODULE_2__.combine)({\n ...state,\n lastUpdateTime: 0,\n _hasHydrated: false\n }, (set, get)=>{\n return {\n ...methods(set, get),\n markUpdate () {\n set({\n lastUpdateTime: Date.now()\n });\n },\n update (updater) {\n const state = (0,_clone__WEBPACK_IMPORTED_MODULE_0__.deepClone)(get());\n updater(state);\n set({\n ...state,\n lastUpdateTime: Date.now()\n });\n },\n setHasHydrated: (state)=>{\n set({\n _hasHydrated: state\n });\n }\n };\n }), persistOptions));\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvdXRpbHMvc3RvcmUudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBaUM7QUFDd0M7QUFFckM7QUFDNkI7QUF3QjFELFNBQVNNLG1CQUNkQyxLQUFRLEVBQ1JDLE9BR00sRUFDTkMsY0FBbUU7SUFFbkVBLGVBQWVDLE9BQU8sR0FBR1AscUVBQWlCQSxDQUFDLElBQU1FLDBFQUFnQkE7SUFDakUsTUFBTU0seUJBQXlCRixnQkFBZ0JHO0lBQy9DSCxlQUFlRyxrQkFBa0IsR0FBRyxDQUFDTDtRQUNuQ0kseUJBQXlCSjtRQUN6QixPQUFPLElBQU1BLE1BQU1NLGNBQWMsQ0FBQztJQUNwQztJQUVBLE9BQU9iLCtDQUFNQSxDQUNYRSwyREFBT0EsQ0FDTEQsMkRBQU9BLENBQ0w7UUFDRSxHQUFHTSxLQUFLO1FBQ1JPLGdCQUFnQjtRQUNoQkMsY0FBYztJQUNoQixHQUNBLENBQUNDLEtBQUtDO1FBQ0osT0FBTztZQUNMLEdBQUdULFFBQVFRLEtBQUtDLElBQVc7WUFFM0JDO2dCQUNFRixJQUFJO29CQUFFRixnQkFBZ0JLLEtBQUtDLEdBQUc7Z0JBQUc7WUFHbkM7WUFDQUMsUUFBT0MsT0FBTztnQkFDWixNQUFNZixRQUFRSCxpREFBU0EsQ0FBQ2E7Z0JBQ3hCSyxRQUFRZjtnQkFDUlMsSUFBSTtvQkFDRixHQUFHVCxLQUFLO29CQUNSTyxnQkFBZ0JLLEtBQUtDLEdBQUc7Z0JBQzFCO1lBQ0Y7WUFDQVAsZ0JBQWdCLENBQUNOO2dCQUNmUyxJQUFJO29CQUFFRCxjQUFjUjtnQkFBTTtZQUM1QjtRQUNGO0lBQ0YsSUFFRkU7QUFHTiIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL3V0aWxzL3N0b3JlLnRzPzQyMmIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlIH0gZnJvbSBcInp1c3RhbmRcIjtcclxuaW1wb3J0IHsgY29tYmluZSwgcGVyc2lzdCwgY3JlYXRlSlNPTlN0b3JhZ2UgfSBmcm9tIFwienVzdGFuZC9taWRkbGV3YXJlXCI7XHJcbmltcG9ydCB7IFVwZGF0ZXIgfSBmcm9tIFwiLi4vdHlwaW5nXCI7XHJcbmltcG9ydCB7IGRlZXBDbG9uZSB9IGZyb20gXCIuL2Nsb25lXCI7XHJcbmltcG9ydCB7IGluZGV4ZWREQlN0b3JhZ2UgfSBmcm9tIFwiQC9hcHAvdXRpbHMvaW5kZXhlZERCLXN0b3JhZ2VcIjtcclxuXHJcbnR5cGUgU2Vjb25kUGFyYW08VD4gPSBUIGV4dGVuZHMgKFxyXG4gIF9mOiBpbmZlciBfRixcclxuICBfczogaW5mZXIgUyxcclxuICAuLi5hcmdzOiBpbmZlciBfVVxyXG4pID0+IGFueVxyXG4gID8gU1xyXG4gIDogbmV2ZXI7XHJcblxyXG50eXBlIE1ha2VVcGRhdGVyPFQ+ID0ge1xyXG4gIGxhc3RVcGRhdGVUaW1lOiBudW1iZXI7XHJcbiAgX2hhc0h5ZHJhdGVkOiBib29sZWFuO1xyXG5cclxuICBtYXJrVXBkYXRlOiAoKSA9PiB2b2lkO1xyXG4gIHVwZGF0ZTogVXBkYXRlcjxUPjtcclxuICBzZXRIYXNIeWRyYXRlZDogKHN0YXRlOiBib29sZWFuKSA9PiB2b2lkO1xyXG59O1xyXG5cclxudHlwZSBTZXRTdG9yZVN0YXRlPFQ+ID0gKFxyXG4gIHBhcnRpYWw6IFQgfCBQYXJ0aWFsPFQ+IHwgKChzdGF0ZTogVCkgPT4gVCB8IFBhcnRpYWw8VD4pLFxyXG4gIHJlcGxhY2U/OiBib29sZWFuIHwgdW5kZWZpbmVkLFxyXG4pID0+IHZvaWQ7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGVyc2lzdFN0b3JlPFQgZXh0ZW5kcyBvYmplY3QsIE0+KFxyXG4gIHN0YXRlOiBULFxyXG4gIG1ldGhvZHM6IChcclxuICAgIHNldDogU2V0U3RvcmVTdGF0ZTxUICYgTWFrZVVwZGF0ZXI8VD4+LFxyXG4gICAgZ2V0OiAoKSA9PiBUICYgTWFrZVVwZGF0ZXI8VD4sXHJcbiAgKSA9PiBNLFxyXG4gIHBlcnNpc3RPcHRpb25zOiBTZWNvbmRQYXJhbTx0eXBlb2YgcGVyc2lzdDxUICYgTSAmIE1ha2VVcGRhdGVyPFQ+Pj4sXHJcbikge1xyXG4gIHBlcnNpc3RPcHRpb25zLnN0b3JhZ2UgPSBjcmVhdGVKU09OU3RvcmFnZSgoKSA9PiBpbmRleGVkREJTdG9yYWdlKTtcclxuICBjb25zdCBvbGRPb25SZWh5ZHJhdGVTdG9yYWdlID0gcGVyc2lzdE9wdGlvbnM/Lm9uUmVoeWRyYXRlU3RvcmFnZTtcclxuICBwZXJzaXN0T3B0aW9ucy5vblJlaHlkcmF0ZVN0b3JhZ2UgPSAoc3RhdGUpID0+IHtcclxuICAgIG9sZE9vblJlaHlkcmF0ZVN0b3JhZ2U/LihzdGF0ZSk7XHJcbiAgICByZXR1cm4gKCkgPT4gc3RhdGUuc2V0SGFzSHlkcmF0ZWQodHJ1ZSk7XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGNyZWF0ZShcclxuICAgIHBlcnNpc3QoXHJcbiAgICAgIGNvbWJpbmUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgLi4uc3RhdGUsXHJcbiAgICAgICAgICBsYXN0VXBkYXRlVGltZTogMCxcclxuICAgICAgICAgIF9oYXNIeWRyYXRlZDogZmFsc2UsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAoc2V0LCBnZXQpID0+IHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC4uLm1ldGhvZHMoc2V0LCBnZXQgYXMgYW55KSxcclxuXHJcbiAgICAgICAgICAgIG1hcmtVcGRhdGUoKSB7XHJcbiAgICAgICAgICAgICAgc2V0KHsgbGFzdFVwZGF0ZVRpbWU6IERhdGUubm93KCkgfSBhcyBQYXJ0aWFsPFxyXG4gICAgICAgICAgICAgICAgVCAmIE0gJiBNYWtlVXBkYXRlcjxUPlxyXG4gICAgICAgICAgICAgID4pO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB1cGRhdGUodXBkYXRlcikge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHN0YXRlID0gZGVlcENsb25lKGdldCgpKTtcclxuICAgICAgICAgICAgICB1cGRhdGVyKHN0YXRlKTtcclxuICAgICAgICAgICAgICBzZXQoe1xyXG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXHJcbiAgICAgICAgICAgICAgICBsYXN0VXBkYXRlVGltZTogRGF0ZS5ub3coKSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc2V0SGFzSHlkcmF0ZWQ6IChzdGF0ZTogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICAgIHNldCh7IF9oYXNIeWRyYXRlZDogc3RhdGUgfSBhcyBQYXJ0aWFsPFQgJiBNICYgTWFrZVVwZGF0ZXI8VD4+KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0gYXMgTSAmIE1ha2VVcGRhdGVyPFQ+O1xyXG4gICAgICAgIH0sXHJcbiAgICAgICksXHJcbiAgICAgIHBlcnNpc3RPcHRpb25zIGFzIGFueSxcclxuICAgICksXHJcbiAgKTtcclxufVxyXG4iXSwibmFtZXMiOlsiY3JlYXRlIiwiY29tYmluZSIsInBlcnNpc3QiLCJjcmVhdGVKU09OU3RvcmFnZSIsImRlZXBDbG9uZSIsImluZGV4ZWREQlN0b3JhZ2UiLCJjcmVhdGVQZXJzaXN0U3RvcmUiLCJzdGF0ZSIsIm1ldGhvZHMiLCJwZXJzaXN0T3B0aW9ucyIsInN0b3JhZ2UiLCJvbGRPb25SZWh5ZHJhdGVTdG9yYWdlIiwib25SZWh5ZHJhdGVTdG9yYWdlIiwic2V0SGFzSHlkcmF0ZWQiLCJsYXN0VXBkYXRlVGltZSIsIl9oYXNIeWRyYXRlZCIsInNldCIsImdldCIsIm1hcmtVcGRhdGUiLCJEYXRlIiwibm93IiwidXBkYXRlIiwidXBkYXRlciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./app/utils/store.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/utils/stream.ts":
|
|
|
/*!*****************************!*\
|
|
|
!*** ./app/utils/stream.ts ***!
|
|
|
\*****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fetch: () => (/* binding */ fetch)\n/* harmony export */ });\n// using tauri command to send request\n// see src-tauri/src/stream.rs, and src-tauri/src/main.rs\n// 1. invoke('stream_fetch', {url, method, headers, body}), get response with headers.\n// 2. listen event: `stream-response` multi times to get body\nfunction fetch(url, options) {\n if (window.__TAURI__) {\n const { signal, method = \"GET\", headers: _headers = {}, body = [] } = options || {};\n let unlisten;\n let setRequestId;\n const requestIdPromise = new Promise((resolve)=>setRequestId = resolve);\n const ts = new TransformStream();\n const writer = ts.writable.getWriter();\n let closed = false;\n const close = ()=>{\n if (closed) return;\n closed = true;\n unlisten && unlisten();\n writer.ready.then(()=>{\n writer.close().catch((e)=>console.error(e));\n });\n };\n if (signal) {\n signal.addEventListener(\"abort\", ()=>close());\n }\n // @ts-ignore 2. listen response multi times, and write to Response.body\n window.__TAURI__.event.listen(\"stream-response\", (e)=>requestIdPromise.then((request_id)=>{\n const { request_id: rid, chunk, status } = e?.payload || {};\n if (request_id != rid) {\n return;\n }\n if (chunk) {\n writer.ready.then(()=>{\n writer.write(new Uint8Array(chunk));\n });\n } else if (status === 0) {\n // end of body\n close();\n }\n })).then((u)=>unlisten = u);\n const headers = {\n Accept: \"application/json, text/plain, */*\",\n \"Accept-Language\": \"en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7\",\n \"User-Agent\": navigator.userAgent\n };\n for (const item of new Headers(_headers || {})){\n headers[item[0]] = item[1];\n }\n return window.__TAURI__.invoke(\"stream_fetch\", {\n method: method.toUpperCase(),\n url,\n headers,\n // TODO FormData\n body: typeof body === \"string\" ? Array.from(new TextEncoder().encode(body)) : []\n }).then((res)=>{\n const { request_id, status, status_text: statusText, headers } = res;\n setRequestId?.(request_id);\n const response = new Response(ts.readable, {\n status,\n statusText,\n headers\n });\n if (status >= 300) {\n setTimeout(close, 100);\n }\n return response;\n }).catch((e)=>{\n console.error(\"stream error\", e);\n // throw e;\n return new Response(\"\", {\n status: 599\n });\n });\n }\n return window.fetch(url, options);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUk7UUFDeEM7SUFDSjtJQUNBLE9BQU8vQixPQUFPSCxLQUFLLENBQUNDLEtBQUtDO0FBQzNCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvdXRpbHMvc3RyZWFtLnRzP2ZhNzciXSwic291cmNlc0NvbnRlbnQiOlsiLy8gdXNpbmcgdGF1cmkgY29tbWFuZCB0byBzZW5kIHJlcXVlc3RcclxuLy8gc2VlIHNyYy10YXVyaS9zcmMvc3RyZWFtLnJzLCBhbmQgc3JjLXRhdXJpL3NyYy9tYWluLnJzXHJcbi8vIDEuIGludm9rZSgnc3RyZWFtX2ZldGNoJywge3VybCwgbWV0aG9kLCBoZWFkZXJzLCBib2R5fSksIGdldCByZXNwb25zZSB3aXRoIGhlYWRlcnMuXHJcbi8vIDIuIGxpc3RlbiBldmVudDogYHN0cmVhbS1yZXNwb25zZWAgbXVsdGkgdGltZXMgdG8gZ2V0IGJvZHlcclxuXHJcbnR5cGUgUmVzcG9uc2VFdmVudCA9IHtcclxuICBpZDogbnVtYmVyO1xyXG4gIHBheWxvYWQ6IHtcclxuICAgIHJlcXVlc3RfaWQ6IG51bWJlcjtcclxuICAgIHN0YXR1cz86IG51bWJlcjtcclxuICAgIGNodW5rPzogbnVtYmVyW107XHJcbiAgfTtcclxufTtcclxuXHJcbnR5cGUgU3RyZWFtUmVzcG9uc2UgPSB7XHJcbiAgcmVxdWVzdF9pZDogbnVtYmVyO1xyXG4gIHN0YXR1czogbnVtYmVyO1xyXG4gIHN0YXR1c190ZXh0OiBzdHJpbmc7XHJcbiAgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmZXRjaCh1cmw6IHN0cmluZywgb3B0aW9ucz86IFJlcXVlc3RJbml0KTogUHJvbWlzZTxSZXNwb25zZT4ge1xyXG4gIGlmICh3aW5kb3cuX19UQVVSSV9fKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHNpZ25hbCxcclxuICAgICAgbWV0aG9kID0gXCJHRVRcIixcclxuICAgICAgaGVhZGVyczogX2hlYWRlcnMgPSB7fSxcclxuICAgICAgYm9keSA9IFtdLFxyXG4gICAgfSA9IG9wdGlvbnMgfHwge307XHJcbiAgICBsZXQgdW5saXN0ZW46IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xyXG4gICAgbGV0IHNldFJlcXVlc3RJZDogRnVuY3Rpb24gfCB1bmRlZmluZWQ7XHJcbiAgICBjb25zdCByZXF1ZXN0SWRQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IChzZXRSZXF1ZXN0SWQgPSByZXNvbHZlKSk7XHJcbiAgICBjb25zdCB0cyA9IG5ldyBUcmFuc2Zvcm1TdHJlYW0oKTtcclxuICAgIGNvbnN0IHdyaXRlciA9IHRzLndyaXRhYmxlLmdldFdyaXRlcigpO1xyXG5cclxuICAgIGxldCBjbG9zZWQgPSBmYWxzZTtcclxuICAgIGNvbnN0IGNsb3NlID0gKCkgPT4ge1xyXG4gICAgICBpZiAoY2xvc2VkKSByZXR1cm47XHJcbiAgICAgIGNsb3NlZCA9IHRydWU7XHJcbiAgICAgIHVubGlzdGVuICYmIHVubGlzdGVuKCk7XHJcbiAgICAgIHdyaXRlci5yZWFkeS50aGVuKCgpID0+IHtcclxuICAgICAgICB3cml0ZXIuY2xvc2UoKS5jYXRjaCgoZSkgPT4gY29uc29sZS5lcnJvcihlKSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAoc2lnbmFsKSB7XHJcbiAgICAgIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgKCkgPT4gY2xvc2UoKSk7XHJcbiAgICB9XHJcbiAgICAvLyBAdHMtaWdub3JlIDIuIGxpc3RlbiByZXNwb25zZSBtdWx0aSB0aW1lcywgYW5kIHdyaXRlIHRvIFJlc3BvbnNlLmJvZHlcclxuICAgIHdpbmRvdy5fX1RBVVJJX18uZXZlbnRcclxuICAgICAgLmxpc3RlbihcInN0cmVhbS1yZXNwb25zZVwiLCAoZTogUmVzcG9uc2VFdmVudCkgPT5cclxuICAgICAgICByZXF1ZXN0SWRQcm9taXNlLnRoZW4oKHJlcXVlc3RfaWQpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHsgcmVxdWVzdF9pZDogcmlkLCBjaHVuaywgc3RhdHVzIH0gPSBlPy5wYXlsb2FkIHx8IHt9O1xyXG4gICAgICAgICAgaWYgKHJlcXVlc3RfaWQgIT0gcmlkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChjaHVuaykge1xyXG4gICAgICAgICAgICB3cml0ZXIucmVhZHkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgd3JpdGVyLndyaXRlKG5ldyBVaW50OEFycmF5KGNodW5rKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChzdGF0dXMgPT09IDApIHtcclxuICAgICAgICAgICAgLy8gZW5kIG9mIGJvZHlcclxuICAgICAgICAgICAgY2xvc2UoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgKVxyXG4gICAgICAudGhlbigodTogRnVuY3Rpb24pID0+ICh1bmxpc3RlbiA9IHUpKTtcclxuXHJcbiAgICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xyXG4gICAgICBBY2NlcHQ6IFwiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qXCIsXHJcbiAgICAgIFwiQWNjZXB0LUxhbmd1YWdlXCI6IFwiZW4tVVMsZW47cT0wLjksemgtQ047cT0wLjgsemg7cT0wLjdcIixcclxuICAgICAgXCJVc2VyLUFnZW50XCI6IG5hdmlnYXRvci51c2VyQWdlbnQsXHJcbiAgICB9O1xyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIG5ldyBIZWFkZXJzKF9oZWFkZXJzIHx8IHt9KSkge1xyXG4gICAgICBoZWFkZXJzW2l0ZW1bMF1dID0gaXRlbVsxXTtcclxuICAgIH1cclxuICAgIHJldHVybiB3aW5kb3cuX19UQVVSSV9fXHJcbiAgICAgIC5pbnZva2UoXCJzdHJlYW1fZmV0Y2hcIiwge1xyXG4gICAgICAgIG1ldGhvZDogbWV0aG9kLnRvVXBwZXJDYXNlKCksXHJcbiAgICAgICAgdXJsLFxyXG4gICAgICAgIGhlYWRlcnMsXHJcbiAgICAgICAgLy8gVE9ETyBGb3JtRGF0YVxyXG4gICAgICAgIGJvZHk6XHJcbiAgICAgICAgICB0eXBlb2YgYm9keSA9PT0gXCJzdHJpbmdcIlxyXG4gICAgICAgICAgICA/IEFycmF5LmZyb20obmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKGJvZHkpKVxyXG4gICAgICAgICAgICA6IFtdLFxyXG4gICAgICB9KVxyXG4gICAgICAudGhlbigocmVzOiBTdHJlYW1SZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgcmVxdWVzdF9pZCwgc3RhdHVzLCBzdGF0dXNfdGV4dDogc3RhdHVzVGV4dCwgaGVhZGVycyB9ID0gcmVzO1xyXG4gICAgICAgIHNldFJlcXVlc3RJZD8uKHJlcXVlc3RfaWQpO1xyXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKHRzLnJlYWRhYmxlLCB7XHJcbiAgICAgICAgICBzdGF0dXMsXHJcbiAgICAgICAgICBzdGF0dXNUZXh0LFxyXG4gICAgICAgICAgaGVhZGVycyxcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoc3RhdHVzID49IDMwMCkge1xyXG4gICAgICAgICAgc2V0VGltZW91dChjbG9zZSwgMTAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGUpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKFwic3RyZWFtIGVycm9yXCIsIGUpO1xyXG4gICAgICAgIC8vIHRocm93IGU7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBSZXNwb25zZShcIlwiLCB7IHN0YXR1czogNTk5IH0pO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgcmV0dXJuIHdpbmRvdy5mZXRjaCh1cmwsIG9wdGlvbnMpO1xyXG59XHJcbiJdLCJuYW1lcyI6WyJmZXRjaCIsInVybCIsIm9wdGlvbnMiLCJ3aW5kb3ciLCJfX1RBVVJJX18iLCJzaWduYWwiLCJtZXRob2QiLCJoZWFkZXJzIiwiX2hlYWRlcnMiLCJib2R5IiwidW5saXN0ZW4iLCJzZXRSZXF1ZXN0SWQiLCJyZXF1ZXN0SWRQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0cyIsIlRyYW5zZm9ybVN0cmVhbSIsIndyaXRlciIsIndyaXRhYmxlIiwiZ2V0V3JpdGVyIiwiY2xvc2VkIiwiY2xvc2UiLCJyZWFkeSIsInRoZW4iLCJjYXRjaCIsImUiLCJjb25zb2xlIiwiZXJyb3IiLCJhZGRFdmVudExpc3RlbmVyIiwiZXZlbnQiLCJsaXN0ZW4iLCJyZXF1ZXN0X2lkIiwicmlkIiwiY2h1bmsiLCJzdGF0dXMiLCJwYXlsb2FkIiwid3JpdGUiLCJVaW50OEFycmF5IiwidSIsIkFjY2VwdCIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsIml0ZW0iLCJIZWFkZXJzIiwiaW52b2tlIiwidG9VcHBlckNhc2UiLCJBcnJheSIsImZyb20iLCJUZXh0RW5jb2RlciIsImVuY29kZSIsInJlcyIsInN0YXR1c190ZXh0Iiwic3RhdHVzVGV4dCIsInJlc3BvbnNlIiwiUmVzcG9uc2UiLCJyZWFkYWJsZSIsInNldFRpbWVvdXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/utils/stream.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/utils/sync.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/utils/sync.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getLocalAppState: () => (/* binding */ getLocalAppState),\n/* harmony export */ getNonFunctionFileds: () => (/* binding */ getNonFunctionFileds),\n/* harmony export */ mergeAppState: () => (/* binding */ mergeAppState),\n/* harmony export */ mergeWithUpdate: () => (/* binding */ mergeWithUpdate),\n/* harmony export */ setLocalAppState: () => (/* binding */ setLocalAppState)\n/* harmony export */ });\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../store */ \"(ssr)/./app/store/index.ts\");\n/* harmony import */ var _store_mask__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../store/mask */ \"(ssr)/./app/store/mask.ts\");\n/* harmony import */ var _store_prompt__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../store/prompt */ \"(ssr)/./app/store/prompt.ts\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../constant */ \"(ssr)/./app/constant.ts\");\n/* harmony import */ var _merge__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./merge */ \"(ssr)/./app/utils/merge.ts\");\n\n\n\n\n\nfunction getNonFunctionFileds(obj) {\n const ret = {};\n Object.entries(obj).map(([k, v])=>{\n if (typeof v !== \"function\") {\n ret[k] = v;\n }\n });\n return ret;\n}\nconst LocalStateSetters = {\n [_constant__WEBPACK_IMPORTED_MODULE_3__.StoreKey.Chat]: _store__WEBPACK_IMPORTED_MODULE_0__.useChatStore.setState,\n [_constant__WEBPACK_IMPORTED_MODULE_3__.StoreKey.Access]: _store__WEBPACK_IMPORTED_MODULE_0__.useAccessStore.setState,\n [_constant__WEBPACK_IMPORTED_MODULE_3__.StoreKey.Config]: _store__WEBPACK_IMPORTED_MODULE_0__.useAppConfig.setState,\n [_constant__WEBPACK_IMPORTED_MODULE_3__.StoreKey.Mask]: _store_mask__WEBPACK_IMPORTED_MODULE_1__.useMaskStore.setState,\n [_constant__WEBPACK_IMPORTED_MODULE_3__.StoreKey.Prompt]: _store_prompt__WEBPACK_IMPORTED_MODULE_2__.usePromptStore.setState\n};\nconst LocalStateGetters = {\n [_constant__WEBPACK_IMPORTED_MODULE_3__.StoreKey.Chat]: ()=>getNonFunctionFileds(_store__WEBPACK_IMPORTED_MODULE_0__.useChatStore.getState()),\n [_constant__WEBPACK_IMPORTED_MODULE_3__.StoreKey.Access]: ()=>getNonFunctionFileds(_store__WEBPACK_IMPORTED_MODULE_0__.useAccessStore.getState()),\n [_constant__WEBPACK_IMPORTED_MODULE_3__.StoreKey.Config]: ()=>getNonFunctionFileds(_store__WEBPACK_IMPORTED_MODULE_0__.useAppConfig.getState()),\n [_constant__WEBPACK_IMPORTED_MODULE_3__.StoreKey.Mask]: ()=>getNonFunctionFileds(_store_mask__WEBPACK_IMPORTED_MODULE_1__.useMaskStore.getState()),\n [_constant__WEBPACK_IMPORTED_MODULE_3__.StoreKey.Prompt]: ()=>getNonFunctionFileds(_store_prompt__WEBPACK_IMPORTED_MODULE_2__.usePromptStore.getState())\n};\n// we merge remote state to local state\nconst MergeStates = {\n [_constant__WEBPACK_IMPORTED_MODULE_3__.StoreKey.Chat]: (localState, remoteState)=>{\n // merge sessions\n const localSessions = {};\n localState.sessions.forEach((s)=>localSessions[s.id] = s);\n remoteState.sessions.forEach((remoteSession)=>{\n // skip empty chats\n if (remoteSession.messages.length === 0) return;\n const localSession = localSessions[remoteSession.id];\n if (!localSession) {\n // if remote session is new, just merge it\n localState.sessions.push(remoteSession);\n } else {\n // if both have the same session id, merge the messages\n const localMessageIds = new Set(localSession.messages.map((v)=>v.id));\n remoteSession.messages.forEach((m)=>{\n if (!localMessageIds.has(m.id)) {\n localSession.messages.push(m);\n }\n });\n // sort local messages with date field in asc order\n localSession.messages.sort((a, b)=>new Date(a.date).getTime() - new Date(b.date).getTime());\n }\n });\n // sort local sessions with date field in desc order\n localState.sessions.sort((a, b)=>new Date(b.lastUpdate).getTime() - new Date(a.lastUpdate).getTime());\n return localState;\n },\n [_constant__WEBPACK_IMPORTED_MODULE_3__.StoreKey.Prompt]: (localState, remoteState)=>{\n localState.prompts = {\n ...remoteState.prompts,\n ...localState.prompts\n };\n return localState;\n },\n [_constant__WEBPACK_IMPORTED_MODULE_3__.StoreKey.Mask]: (localState, remoteState)=>{\n localState.masks = {\n ...remoteState.masks,\n ...localState.masks\n };\n return localState;\n },\n [_constant__WEBPACK_IMPORTED_MODULE_3__.StoreKey.Config]: mergeWithUpdate,\n [_constant__WEBPACK_IMPORTED_MODULE_3__.StoreKey.Access]: mergeWithUpdate\n};\nfunction getLocalAppState() {\n const appState = Object.fromEntries(Object.entries(LocalStateGetters).map(([key, getter])=>{\n return [\n key,\n getter()\n ];\n }));\n return appState;\n}\nfunction setLocalAppState(appState) {\n Object.entries(LocalStateSetters).forEach(([key, setter])=>{\n setter(appState[key]);\n });\n}\nfunction mergeAppState(localState, remoteState) {\n Object.keys(localState).forEach((k)=>{\n const key = k;\n const localStoreState = localState[key];\n const remoteStoreState = remoteState[key];\n MergeStates[key](localStoreState, remoteStoreState);\n });\n return localState;\n}\n/**\r\n * Merge state with `lastUpdateTime`, older state will be override\r\n */ function mergeWithUpdate(localState, remoteState) {\n const localUpdateTime = localState.lastUpdateTime ?? 0;\n const remoteUpdateTime = localState.lastUpdateTime ?? 1;\n if (localUpdateTime < remoteUpdateTime) {\n (0,_merge__WEBPACK_IMPORTED_MODULE_4__.merge)(remoteState, localState);\n return {\n ...remoteState\n };\n } else {\n (0,_merge__WEBPACK_IMPORTED_MODULE_4__.merge)(localState, remoteState);\n return {\n ...localState\n };\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q3ZFaEIsT0FBT2lELElBQUksQ0FBQ2xDLFlBQVlJLE9BQU8sQ0FBQyxDQUEyQmhCO1FBQ3pELE1BQU15QyxNQUFNekM7UUFDWixNQUFNK0Msa0JBQWtCbkMsVUFBVSxDQUFDNkIsSUFBSTtRQUN2QyxNQUFNTyxtQkFBbUJuQyxXQUFXLENBQUM0QixJQUFJO1FBQ3pDOUIsV0FBVyxDQUFDOEIsSUFBSSxDQUFDTSxpQkFBaUJDO0lBQ3BDO0lBRUEsT0FBT3BDO0FBQ1Q7QUFFQTs7Q0FFQyxHQUNNLFNBQVN5QixnQkFDZHpCLFVBQWEsRUFDYkMsV0FBYztJQUVkLE1BQU1vQyxrQkFBa0JyQyxXQUFXc0MsY0FBYyxJQUFJO0lBQ3JELE1BQU1DLG1CQUFtQnZDLFdBQVdzQyxjQUFjLElBQUk7SUFFdEQsSUFBSUQsa0JBQWtCRSxrQkFBa0I7UUFDdEMxRCw2Q0FBS0EsQ0FBQ29CLGFBQWFEO1FBQ25CLE9BQU87WUFBRSxHQUFHQyxXQUFXO1FBQUM7SUFDMUIsT0FBTztRQUNMcEIsNkNBQUtBLENBQUNtQixZQUFZQztRQUNsQixPQUFPO1lBQUUsR0FBR0QsVUFBVTtRQUFDO0lBQ3pCO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC91dGlscy9zeW5jLnRzPzE0NTEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGF0U2Vzc2lvbixcclxuICB1c2VBY2Nlc3NTdG9yZSxcclxuICB1c2VBcHBDb25maWcsXHJcbiAgdXNlQ2hhdFN0b3JlLFxyXG59IGZyb20gXCIuLi9zdG9yZVwiO1xyXG5pbXBvcnQgeyB1c2VNYXNrU3RvcmUgfSBmcm9tIFwiLi4vc3RvcmUvbWFza1wiO1xyXG5pbXBvcnQgeyB1c2VQcm9tcHRTdG9yZSB9IGZyb20gXCIuLi9zdG9yZS9wcm9tcHRcIjtcclxuaW1wb3J0IHsgU3RvcmVLZXkgfSBmcm9tIFwiLi4vY29uc3RhbnRcIjtcclxuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tIFwiLi9tZXJnZVwiO1xyXG5cclxudHlwZSBOb25GdW5jdGlvbktleXM8VD4gPSB7XHJcbiAgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyAoLi4uYXJnczogYW55W10pID0+IGFueSA/IG5ldmVyIDogSztcclxufVtrZXlvZiBUXTtcclxudHlwZSBOb25GdW5jdGlvbkZpZWxkczxUPiA9IFBpY2s8VCwgTm9uRnVuY3Rpb25LZXlzPFQ+PjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXROb25GdW5jdGlvbkZpbGVkczxUIGV4dGVuZHMgb2JqZWN0PihvYmo6IFQpIHtcclxuICBjb25zdCByZXQ6IGFueSA9IHt9O1xyXG5cclxuICBPYmplY3QuZW50cmllcyhvYmopLm1hcCgoW2ssIHZdKSA9PiB7XHJcbiAgICBpZiAodHlwZW9mIHYgIT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICByZXRba10gPSB2O1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICByZXR1cm4gcmV0IGFzIE5vbkZ1bmN0aW9uRmllbGRzPFQ+O1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBHZXRTdG9yZVN0YXRlPFQ+ID0gVCBleHRlbmRzIHsgZ2V0U3RhdGU6ICgpID0+IGluZmVyIFUgfVxyXG4gID8gTm9uRnVuY3Rpb25GaWVsZHM8VT5cclxuICA6IG5ldmVyO1xyXG5cclxuY29uc3QgTG9jYWxTdGF0ZVNldHRlcnMgPSB7XHJcbiAgW1N0b3JlS2V5LkNoYXRdOiB1c2VDaGF0U3RvcmUuc2V0U3RhdGUsXHJcbiAgW1N0b3JlS2V5LkFjY2Vzc106IHVzZUFjY2Vzc1N0b3JlLnNldFN0YXRlLFxyXG4gIFtTdG9yZUtleS5Db25maWddOiB1c2VBcHBDb25maWcuc2V0U3RhdGUsXHJcbiAgW1N0b3JlS2V5Lk1hc2tdOiB1c2VNYXNrU3RvcmUuc2V0U3RhdGUsXHJcbiAgW1N0b3JlS2V5LlByb21wdF06IHVzZVByb21wdFN0b3JlLnNldFN0YXRlLFxyXG59IGFzIGNvbnN0O1xyXG5cclxuY29uc3QgTG9jYWxTdGF0ZUdldHRlcnMgPSB7XHJcbiAgW1N0b3JlS2V5LkNoYXRdOiAoKSA9PiBnZXROb25GdW5jdGlvbkZpbGVkcyh1c2VDaGF0U3RvcmUuZ2V0U3RhdGUoKSksXHJcbiAgW1N0b3JlS2V5LkFjY2Vzc106ICgpID0+IGdldE5vbkZ1bmN0aW9uRmlsZWRzKHVzZUFjY2Vzc1N0b3JlLmdldFN0YXRlKCkpLFxyXG4gIFtTdG9yZUtleS5Db25maWddOiAoKSA9PiBnZXROb25GdW5jdGlvbkZpbGVkcyh1c2VBcHBDb25maWcuZ2V0U3RhdGUoKSksXHJcbiAgW1N0b3JlS2V5Lk1hc2tdOiAoKSA9PiBnZXROb25GdW5jdGlvbkZpbGVkcyh1c2VNYXNrU3RvcmUuZ2V0U3RhdGUoKSksXHJcbiAgW1N0b3JlS2V5LlByb21wdF06ICgpID0+IGdldE5vbkZ1bmN0aW9uRmlsZWRzKHVzZVByb21wdFN0b3JlLmdldFN0YXRlKCkpLFxyXG59IGFzIGNvbnN0O1xyXG5cclxuZXhwb3J0IHR5cGUgQXBwU3RhdGUgPSB7XHJcbiAgW2sgaW4ga2V5b2YgdHlwZW9mIExvY2FsU3RhdGVHZXR0ZXJzXTogUmV0dXJuVHlwZTxcclxuICAgICh0eXBlb2YgTG9jYWxTdGF0ZUdldHRlcnMpW2tdXHJcbiAgPjtcclxufTtcclxuXHJcbnR5cGUgTWVyZ2VyPFQgZXh0ZW5kcyBrZXlvZiBBcHBTdGF0ZSwgVSA9IEFwcFN0YXRlW1RdPiA9IChcclxuICBsb2NhbFN0YXRlOiBVLFxyXG4gIHJlbW90ZVN0YXRlOiBVLFxyXG4pID0+IFU7XHJcblxyXG50eXBlIFN0YXRlTWVyZ2VyID0ge1xyXG4gIFtLIGluIGtleW9mIEFwcFN0YXRlXTogTWVyZ2VyPEs+O1xyXG59O1xyXG5cclxuLy8gd2UgbWVyZ2UgcmVtb3RlIHN0YXRlIHRvIGxvY2FsIHN0YXRlXHJcbmNvbnN0IE1lcmdlU3RhdGVzOiBTdGF0ZU1lcmdlciA9IHtcclxuICBbU3RvcmVLZXkuQ2hhdF06IChsb2NhbFN0YXRlLCByZW1vdGVTdGF0ZSkgPT4ge1xyXG4gICAgLy8gbWVyZ2Ugc2Vzc2lvbnNcclxuICAgIGNvbnN0IGxvY2FsU2Vzc2lvbnM6IFJlY29yZDxzdHJpbmcsIENoYXRTZXNzaW9uPiA9IHt9O1xyXG4gICAgbG9jYWxTdGF0ZS5zZXNzaW9ucy5mb3JFYWNoKChzKSA9PiAobG9jYWxTZXNzaW9uc1tzLmlkXSA9IHMpKTtcclxuXHJcbiAgICByZW1vdGVTdGF0ZS5zZXNzaW9ucy5mb3JFYWNoKChyZW1vdGVTZXNzaW9uKSA9PiB7XHJcbiAgICAgIC8vIHNraXAgZW1wdHkgY2hhdHNcclxuICAgICAgaWYgKHJlbW90ZVNlc3Npb24ubWVzc2FnZXMubGVuZ3RoID09PSAwKSByZXR1cm47XHJcblxyXG4gICAgICBjb25zdCBsb2NhbFNlc3Npb24gPSBsb2NhbFNlc3Npb25zW3JlbW90ZVNlc3Npb24uaWRdO1xyXG4gICAgICBpZiAoIWxvY2FsU2Vzc2lvbikge1xyXG4gICAgICAgIC8vIGlmIHJlbW90ZSBzZXNzaW9uIGlzIG5ldywganVzdCBtZXJnZSBpdFxyXG4gICAgICAgIGxvY2FsU3RhdGUuc2Vzc2lvbnMucHVzaChyZW1vdGVTZXNzaW9uKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBpZiBib3RoIGhhdmUgdGhlIHNhbWUgc2Vzc2lvbiBpZCwgbWVyZ2UgdGhlIG1lc3NhZ2VzXHJcbiAgICAgICAgY29uc3QgbG9jYWxNZXNzYWdlSWRzID0gbmV3IFNldChsb2NhbFNlc3Npb24ubWVzc2FnZXMubWFwKCh2KSA9PiB2LmlkKSk7XHJcbiAgICAgICAgcmVtb3RlU2Vzc2lvbi5tZXNzYWdlcy5mb3JFYWNoKChtKSA9PiB7XHJcbiAgICAgICAgICBpZiAoIWxvY2FsTWVzc2FnZUlkcy5oYXMobS5pZCkpIHtcclxuICAgICAgICAgICAgbG9jYWxTZXNzaW9uLm1lc3NhZ2VzLnB1c2gobSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIHNvcnQgbG9jYWwgbWVzc2FnZXMgd2l0aCBkYXRlIGZpZWxkIGluIGFzYyBvcmRlclxyXG4gICAgICAgIGxvY2FsU2Vzc2lvbi5tZXNzYWdlcy5zb3J0KFxyXG4gICAgICAgICAgKGEsIGIpID0+IG5ldyBEYXRlKGEuZGF0ZSkuZ2V0VGltZSgpIC0gbmV3IERhdGUoYi5kYXRlKS5nZXRUaW1lKCksXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gc29ydCBsb2NhbCBzZXNzaW9ucyB3aXRoIGRhdGUgZmllbGQgaW4gZGVzYyBvcmRlclxyXG4gICAgbG9jYWxTdGF0ZS5zZXNzaW9ucy5zb3J0KFxyXG4gICAgICAoYSwgYikgPT5cclxuICAgICAgICBuZXcgRGF0ZShiLmxhc3RVcGRhdGUpLmdldFRpbWUoKSAtIG5ldyBEYXRlKGEubGFzdFVwZGF0ZSkuZ2V0VGltZSgpLFxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gbG9jYWxTdGF0ZTtcclxuICB9LFxyXG4gIFtTdG9yZUtleS5Qcm9tcHRdOiAobG9jYWxTdGF0ZSwgcmVtb3RlU3RhdGUpID0+IHtcclxuICAgIGxvY2FsU3RhdGUucHJvbXB0cyA9IHtcclxuICAgICAgLi4ucmVtb3RlU3RhdGUucHJvbXB0cyxcclxuICAgICAgLi4ubG9jYWxTdGF0ZS5wcm9tcHRzLFxyXG4gICAgfTtcclxuICAgIHJldHVybiBsb2NhbFN0YXRlO1xyXG4gIH0sXHJcbiAgW1N0b3JlS2V5Lk1hc2tdOiAobG9jYWxTdGF0ZSwgcmVtb3RlU3RhdGUpID0+IHtcclxuICAgIGxvY2FsU3RhdGUubWFza3MgPSB7XHJcbiAgICAgIC4uLnJlbW90ZVN0YXRlLm1hc2tzLFxyXG4gICAgICAuLi5sb2NhbFN0YXRlLm1hc2tzLFxyXG4gICAgfTtcclxuICAgIHJldHVybiBsb2NhbFN0YXRlO1xyXG4gIH0sXHJcbiAgW1N0b3JlS2V5LkNvbmZpZ106IG1lcmdlV2l0aFVwZGF0ZTxBcHBTdGF0ZVtTdG9yZUtleS5Db25maWddPixcclxuICBbU3RvcmVLZXkuQWNjZXNzXTogbWVyZ2VXaXRoVXBkYXRlPEFwcFN0YXRlW1N0b3JlS2V5LkFjY2Vzc10+LFxyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsQXBwU3RhdGUoKSB7XHJcbiAgY29uc3QgYXBwU3RhdGUgPSBPYmplY3QuZnJvbUVudHJpZXMoXHJcbiAgICBPYmplY3QuZW50cmllcyhMb2NhbFN0YXRlR2V0dGVycykubWFwKChba2V5LCBnZXR0ZXJdKSA9PiB7XHJcbiAgICAgIHJldHVybiBba2V5LCBnZXR0ZXIoKV07XHJcbiAgICB9KSxcclxuICApIGFzIEFwcFN0YXRlO1xyXG5cclxuICByZXR1cm4gYXBwU3RhdGU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRMb2NhbEFwcFN0YXRlKGFwcFN0YXRlOiBBcHBTdGF0ZSkge1xyXG4gIE9iamVjdC5lbnRyaWVzKExvY2FsU3RhdGVTZXR0ZXJzKS5mb3JFYWNoKChba2V5LCBzZXR0ZXJdKSA9PiB7XHJcbiAgICBzZXR0ZXIoYXBwU3RhdGVba2V5IGFzIGtleW9mIEFwcFN0YXRlXSk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUFwcFN0YXRlKGxvY2FsU3RhdGU6IEFwcFN0YXRlLCByZW1vdGVTdGF0ZTogQXBwU3RhdGUpIHtcclxuICBPYmplY3Qua2V5cyhsb2NhbFN0YXRlKS5mb3JFYWNoKDxUIGV4dGVuZHMga2V5b2YgQXBwU3RhdGU+KGs6IHN0cmluZykgPT4ge1xyXG4gICAgY29uc3Qga2V5ID0gayBhcyBUO1xyXG4gICAgY29uc3QgbG9jYWxTdG9yZVN0YXRlID0gbG9jYWxTdGF0ZVtrZXldO1xyXG4gICAgY29uc3QgcmVtb3RlU3RvcmVTdGF0ZSA9IHJlbW90ZVN0YXRlW2tleV07XHJcbiAgICBNZXJnZVN0YXRlc1trZXldKGxvY2FsU3RvcmVTdGF0ZSwgcmVtb3RlU3RvcmVTdGF0ZSk7XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiBsb2NhbFN0YXRlO1xyXG59XHJcblxyXG4vKipcclxuICogTWVyZ2Ugc3RhdGUgd2l0aCBgbGFzdFVwZGF0ZVRpbWVgLCBvbGRlciBzdGF0ZSB3aWxsIGJlIG92ZXJyaWRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VXaXRoVXBkYXRlPFQgZXh0ZW5kcyB7IGxhc3RVcGRhdGVUaW1lPzogbnVtYmVyIH0+KFxyXG4gIGxvY2FsU3RhdGU6IFQsXHJcbiAgcmVtb3RlU3RhdGU6IFQsXHJcbikge1xyXG4gIGNvbnN0IGxvY2FsVXBkYXRlVGltZSA9IGxvY2FsU3RhdGUubGFzdFVwZGF0ZVRpbWUgPz8gMDtcclxuICBjb25zdCByZW1vdGVVcGRhdGVUaW1lID0gbG9jYWxTdGF0ZS5sYXN0VXBkYXRlVGltZSA/PyAxO1xyXG5cclxuICBpZiAobG9jYWxVcGRhdGVUaW1lIDwgcmVtb3RlVXBkYXRlVGltZSkge1xyXG4gICAgbWVyZ2UocmVtb3RlU3RhdGUsIGxvY2FsU3RhdGUpO1xyXG4gICAgcmV0dXJuIHsgLi4ucmVtb3RlU3RhdGUgfTtcclxuICB9IGVsc2Uge1xyXG4gICAgbWVyZ2UobG9jYWxTdGF0ZSwgcmVtb3RlU3RhdGUpO1xyXG4gICAgcmV0dXJuIHsgLi4ubG9jYWxTdGF0ZSB9O1xyXG4gIH1cclxufVxyXG4iXSwibmFtZXMiOlsidXNlQWNjZXNzU3RvcmUiLCJ1c2VBcHBDb25maWciLCJ1c2VDaGF0U3RvcmUiLCJ1c2VNYXNrU3RvcmUiLCJ1c2VQcm9tcHRTdG9yZSIsIlN0b3JlS2V5IiwibWVyZ2UiLCJnZXROb25GdW5jdGlvbkZpbGVkcyIsIm9iaiIsInJldCIsIk9iamVjdCIsImVudHJpZXMiLCJtYXAiLCJrIiwidiIsIkxvY2FsU3RhdGVTZXR0ZXJzIiwiQ2hhdCIsInNldFN0YXRlIiwiQWNjZXNzIiwiQ29uZmlnIiwiTWFzayIsIlByb21wdCIsIkxvY2FsU3RhdGVHZXR0ZXJzIiwiZ2V0U3RhdGUiLCJNZXJnZVN0YXRlcyIsImxvY2FsU3RhdGUiLCJyZW1vdGVTdGF0ZSIsImxvY2FsU2Vzc2lvbnMiLCJzZXNzaW9ucyIsImZvckVhY2giLCJzIiwiaWQiLCJyZW1vdGVTZXNzaW9uIiwibWVzc2FnZXMiLCJsZW5ndGgiLCJsb2NhbFNlc3Npb24iLCJwdXNoIiwibG9jYWxNZXNzYWdlSWRzIiwiU2V0IiwibSIsImhhcyIsInNvcnQiLCJhIiwiYiIsIkRhdGUiLCJkYXRlIiwiZ2V0VGltZSIsImxhc3RVcGRhdGUiLCJwcm9tcHRzIiwibWFza3MiLCJtZXJnZVdpdGhVcGRhdGUiLCJnZXRMb2NhbEFwcFN0YXRlIiwiYXBwU3RhdGUiLCJmcm9tRW50cmllcyIsImtleSIsImdldHRlciIsInNldExvY2FsQXBwU3RhdGUiLCJzZXR0ZXIiLCJtZXJnZUFwcFN0YXRlIiwia2V5cyIsImxvY2FsU3RvcmVTdGF0ZSIsInJlbW90ZVN0b3JlU3RhdGUiLCJsb2NhbFVwZGF0ZVRpbWUiLCJsYXN0VXBkYXRlVGltZSIsInJlbW90ZVVwZGF0ZVRpbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/utils/sync.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/utils/token.ts":
|
|
|
/*!****************************!*\
|
|
|
!*** ./app/utils/token.ts ***!
|
|
|
\****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ estimateTokenLength: () => (/* binding */ estimateTokenLength)\n/* harmony export */ });\nfunction estimateTokenLength(input) {\n let tokenLength = 0;\n for(let i = 0; i < input.length; i++){\n const charCode = input.charCodeAt(i);\n if (charCode < 128) {\n // ASCII character\n if (charCode <= 122 && charCode >= 65) {\n // a-Z\n tokenLength += 0.25;\n } else {\n tokenLength += 0.5;\n }\n } else {\n // Unicode character\n tokenLength += 1.5;\n }\n }\n return tokenLength;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvdXRpbHMvdG9rZW4udHMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPLFNBQVNBLG9CQUFvQkMsS0FBYTtJQUMvQyxJQUFJQyxjQUFjO0lBRWxCLElBQUssSUFBSUMsSUFBSSxHQUFHQSxJQUFJRixNQUFNRyxNQUFNLEVBQUVELElBQUs7UUFDckMsTUFBTUUsV0FBV0osTUFBTUssVUFBVSxDQUFDSDtRQUVsQyxJQUFJRSxXQUFXLEtBQUs7WUFDbEIsa0JBQWtCO1lBQ2xCLElBQUlBLFlBQVksT0FBT0EsWUFBWSxJQUFJO2dCQUNyQyxNQUFNO2dCQUNOSCxlQUFlO1lBQ2pCLE9BQU87Z0JBQ0xBLGVBQWU7WUFDakI7UUFDRixPQUFPO1lBQ0wsb0JBQW9CO1lBQ3BCQSxlQUFlO1FBQ2pCO0lBQ0Y7SUFFQSxPQUFPQTtBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvdXRpbHMvdG9rZW4udHM/Y2FkZiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZXN0aW1hdGVUb2tlbkxlbmd0aChpbnB1dDogc3RyaW5nKTogbnVtYmVyIHtcclxuICBsZXQgdG9rZW5MZW5ndGggPSAwO1xyXG5cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjb25zdCBjaGFyQ29kZSA9IGlucHV0LmNoYXJDb2RlQXQoaSk7XHJcblxyXG4gICAgaWYgKGNoYXJDb2RlIDwgMTI4KSB7XHJcbiAgICAgIC8vIEFTQ0lJIGNoYXJhY3RlclxyXG4gICAgICBpZiAoY2hhckNvZGUgPD0gMTIyICYmIGNoYXJDb2RlID49IDY1KSB7XHJcbiAgICAgICAgLy8gYS1aXHJcbiAgICAgICAgdG9rZW5MZW5ndGggKz0gMC4yNTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0b2tlbkxlbmd0aCArPSAwLjU7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIFVuaWNvZGUgY2hhcmFjdGVyXHJcbiAgICAgIHRva2VuTGVuZ3RoICs9IDEuNTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiB0b2tlbkxlbmd0aDtcclxufVxyXG4iXSwibmFtZXMiOlsiZXN0aW1hdGVUb2tlbkxlbmd0aCIsImlucHV0IiwidG9rZW5MZW5ndGgiLCJpIiwibGVuZ3RoIiwiY2hhckNvZGUiLCJjaGFyQ29kZUF0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/utils/token.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(rsc)/./app/styles/globals.scss":
|
|
|
/*!*********************************!*\
|
|
|
!*** ./app/styles/globals.scss ***!
|
|
|
\*********************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"79f713fb4a70\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvc3R5bGVzL2dsb2JhbHMuc2NzcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsaUVBQWUsY0FBYztBQUM3QixJQUFJLEtBQVUsRUFBRSxFQUF1QiIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL3N0eWxlcy9nbG9iYWxzLnNjc3M/NWE0MCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBcIjc5ZjcxM2ZiNGE3MFwiXG5pZiAobW9kdWxlLmhvdCkgeyBtb2R1bGUuaG90LmFjY2VwdCgpIH1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./app/styles/globals.scss\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(rsc)/./app/styles/highlight.scss":
|
|
|
/*!***********************************!*\
|
|
|
!*** ./app/styles/highlight.scss ***!
|
|
|
\***********************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"96b16481ca6b\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvc3R5bGVzL2hpZ2hsaWdodC5zY3NzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZSxjQUFjO0FBQzdCLElBQUksS0FBVSxFQUFFLEVBQXVCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvc3R5bGVzL2hpZ2hsaWdodC5zY3NzP2RiOWMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI5NmIxNjQ4MWNhNmJcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./app/styles/highlight.scss\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(rsc)/./app/styles/markdown.scss":
|
|
|
/*!**********************************!*\
|
|
|
!*** ./app/styles/markdown.scss ***!
|
|
|
\**********************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"eb3f00974e45\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvc3R5bGVzL21hcmtkb3duLnNjc3MiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGlFQUFlLGNBQWM7QUFDN0IsSUFBSSxLQUFVLEVBQUUsRUFBdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9zdHlsZXMvbWFya2Rvd24uc2Nzcz80NTI3Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFwiZWIzZjAwOTc0ZTQ1XCJcbmlmIChtb2R1bGUuaG90KSB7IG1vZHVsZS5ob3QuYWNjZXB0KCkgfVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./app/styles/markdown.scss\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/components/auth.module.scss":
|
|
|
/*!*****************************************!*\
|
|
|
!*** ./app/components/auth.module.scss ***!
|
|
|
\*****************************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
eval("// Exports\nmodule.exports = {\n\t\"auth-page\": \"auth_auth-page___xlla\",\n\t\"top-banner\": \"auth_top-banner__c8Ojv\",\n\t\"top-banner-inner\": \"auth_top-banner-inner__ldJDF\",\n\t\"top-banner-close\": \"auth_top-banner-close__odCd0\",\n\t\"top-banner-logo\": \"auth_top-banner-logo__dcxaG\",\n\t\"auth-header\": \"auth_auth-header__0Hqhv\",\n\t\"slide-in-from-top\": \"auth_slide-in-from-top___U4lF\",\n\t\"auth-logo\": \"auth_auth-logo__nRpuh\",\n\t\"auth-title\": \"auth_auth-title__HOqZA\",\n\t\"auth-tips\": \"auth_auth-tips__RhhUb\",\n\t\"auth-input\": \"auth_auth-input__qZhCU\",\n\t\"auth-input-second\": \"auth_auth-input-second__SLYNw\",\n\t\"auth-actions\": \"auth_auth-actions__SW4gf\"\n};\n\nmodule.exports.__checksum = \"eb2d93d9d68a\"\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvY29tcG9uZW50cy9hdXRoLm1vZHVsZS5zY3NzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHlCQUF5QiIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2NvbXBvbmVudHMvYXV0aC5tb2R1bGUuc2Nzcz9jYzA3Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEV4cG9ydHNcbm1vZHVsZS5leHBvcnRzID0ge1xuXHRcImF1dGgtcGFnZVwiOiBcImF1dGhfYXV0aC1wYWdlX19feGxsYVwiLFxuXHRcInRvcC1iYW5uZXJcIjogXCJhdXRoX3RvcC1iYW5uZXJfX2M4T2p2XCIsXG5cdFwidG9wLWJhbm5lci1pbm5lclwiOiBcImF1dGhfdG9wLWJhbm5lci1pbm5lcl9fbGRKREZcIixcblx0XCJ0b3AtYmFubmVyLWNsb3NlXCI6IFwiYXV0aF90b3AtYmFubmVyLWNsb3NlX19vZENkMFwiLFxuXHRcInRvcC1iYW5uZXItbG9nb1wiOiBcImF1dGhfdG9wLWJhbm5lci1sb2dvX19kY3hhR1wiLFxuXHRcImF1dGgtaGVhZGVyXCI6IFwiYXV0aF9hdXRoLWhlYWRlcl9fMEhxaHZcIixcblx0XCJzbGlkZS1pbi1mcm9tLXRvcFwiOiBcImF1dGhfc2xpZGUtaW4tZnJvbS10b3BfX19VNGxGXCIsXG5cdFwiYXV0aC1sb2dvXCI6IFwiYXV0aF9hdXRoLWxvZ29fX25ScHVoXCIsXG5cdFwiYXV0aC10aXRsZVwiOiBcImF1dGhfYXV0aC10aXRsZV9fSE9xWkFcIixcblx0XCJhdXRoLXRpcHNcIjogXCJhdXRoX2F1dGgtdGlwc19fUmhoVWJcIixcblx0XCJhdXRoLWlucHV0XCI6IFwiYXV0aF9hdXRoLWlucHV0X19xWmhDVVwiLFxuXHRcImF1dGgtaW5wdXQtc2Vjb25kXCI6IFwiYXV0aF9hdXRoLWlucHV0LXNlY29uZF9fU0xZTndcIixcblx0XCJhdXRoLWFjdGlvbnNcIjogXCJhdXRoX2F1dGgtYWN0aW9uc19fU1c0Z2ZcIlxufTtcblxubW9kdWxlLmV4cG9ydHMuX19jaGVja3N1bSA9IFwiZWIyZDkzZDlkNjhhXCJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/components/auth.module.scss\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/components/button.module.scss":
|
|
|
/*!*******************************************!*\
|
|
|
!*** ./app/components/button.module.scss ***!
|
|
|
\*******************************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
eval("// Exports\nmodule.exports = {\n\t\"icon-button\": \"button_icon-button__VwAMf\",\n\t\"primary\": \"button_primary__dwYZ6\",\n\t\"danger\": \"button_danger__aE7By\",\n\t\"shadow\": \"button_shadow__G4m_0\",\n\t\"border\": \"button_border__F3gcK\",\n\t\"icon-button-icon\": \"button_icon-button-icon__AMZta\",\n\t\"icon-button-text\": \"button_icon-button-text__my76e\"\n};\n\nmodule.exports.__checksum = \"9656de4becac\"\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvY29tcG9uZW50cy9idXR0b24ubW9kdWxlLnNjc3MiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvY29tcG9uZW50cy9idXR0b24ubW9kdWxlLnNjc3M/OWFmMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBFeHBvcnRzXG5tb2R1bGUuZXhwb3J0cyA9IHtcblx0XCJpY29uLWJ1dHRvblwiOiBcImJ1dHRvbl9pY29uLWJ1dHRvbl9fVndBTWZcIixcblx0XCJwcmltYXJ5XCI6IFwiYnV0dG9uX3ByaW1hcnlfX2R3WVo2XCIsXG5cdFwiZGFuZ2VyXCI6IFwiYnV0dG9uX2Rhbmdlcl9fYUU3QnlcIixcblx0XCJzaGFkb3dcIjogXCJidXR0b25fc2hhZG93X19HNG1fMFwiLFxuXHRcImJvcmRlclwiOiBcImJ1dHRvbl9ib3JkZXJfX0YzZ2NLXCIsXG5cdFwiaWNvbi1idXR0b24taWNvblwiOiBcImJ1dHRvbl9pY29uLWJ1dHRvbi1pY29uX19BTVp0YVwiLFxuXHRcImljb24tYnV0dG9uLXRleHRcIjogXCJidXR0b25faWNvbi1idXR0b24tdGV4dF9fbXk3NmVcIlxufTtcblxubW9kdWxlLmV4cG9ydHMuX19jaGVja3N1bSA9IFwiOTY1NmRlNGJlY2FjXCJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/components/button.module.scss\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/components/home.module.scss":
|
|
|
/*!*****************************************!*\
|
|
|
!*** ./app/components/home.module.scss ***!
|
|
|
\*****************************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
eval("// Exports\nmodule.exports = {\n\t\"container\": \"home_container__4PEJZ\",\n\t\"tight-container\": \"home_tight-container__ztaM7\",\n\t\"sidebar\": \"home_sidebar__fPZfq\",\n\t\"sidebar-header-bar\": \"home_sidebar-header-bar__SVjIN\",\n\t\"sidebar-bar-button\": \"home_sidebar-bar-button__zJdvw\",\n\t\"sidebar-drag\": \"home_sidebar-drag__G9SJI\",\n\t\"window-content\": \"home_window-content__2WGYf\",\n\t\"mobile\": \"home_mobile__Wfp_k\",\n\t\"sidebar-show\": \"home_sidebar-show__9bQfu\",\n\t\"sidebar-header\": \"home_sidebar-header___NHg_\",\n\t\"sidebar-header-narrow\": \"home_sidebar-header-narrow___9iq_\",\n\t\"sidebar-logo\": \"home_sidebar-logo__Cd7hL\",\n\t\"sidebar-title-container\": \"home_sidebar-title-container__aX2l2\",\n\t\"sidebar-title\": \"home_sidebar-title__l3KhW\",\n\t\"slide-in\": \"home_slide-in__h1Bn_\",\n\t\"sidebar-sub-title\": \"home_sidebar-sub-title__sbT6Z\",\n\t\"sidebar-body\": \"home_sidebar-body__9zbei\",\n\t\"chat-item\": \"home_chat-item__Oblai\",\n\t\"chat-item-selected\": \"home_chat-item-selected__b6eBe\",\n\t\"chat-item-title\": \"home_chat-item-title__sRstw\",\n\t\"chat-item-delete\": \"home_chat-item-delete__3qV5m\",\n\t\"chat-item-info\": \"home_chat-item-info__9r6z_\",\n\t\"chat-item-count\": \"home_chat-item-count____Lpy\",\n\t\"chat-item-date\": \"home_chat-item-date__NOFrp\",\n\t\"narrow-sidebar\": \"home_narrow-sidebar__SFIXN\",\n\t\"chat-item-narrow\": \"home_chat-item-narrow__Kd4e0\",\n\t\"chat-item-avatar\": \"home_chat-item-avatar__KJu_J\",\n\t\"chat-item-narrow-count\": \"home_chat-item-narrow-count__B3b3g\",\n\t\"sidebar-tail\": \"home_sidebar-tail__T2_u7\",\n\t\"sidebar-actions\": \"home_sidebar-actions__LcDT9\",\n\t\"sidebar-action\": \"home_sidebar-action__IVfyJ\",\n\t\"loading-content\": \"home_loading-content__7_JjP\",\n\t\"rtl-screen\": \"home_rtl-screen__Pwr_6\"\n};\n\nmodule.exports.__checksum = \"1fddeb19a867\"\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvY29tcG9uZW50cy9ob21lLm1vZHVsZS5zY3NzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSx5QkFBeUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9jb21wb25lbnRzL2hvbWUubW9kdWxlLnNjc3M/Yjg5MCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBFeHBvcnRzXG5tb2R1bGUuZXhwb3J0cyA9IHtcblx0XCJjb250YWluZXJcIjogXCJob21lX2NvbnRhaW5lcl9fNFBFSlpcIixcblx0XCJ0aWdodC1jb250YWluZXJcIjogXCJob21lX3RpZ2h0LWNvbnRhaW5lcl9fenRhTTdcIixcblx0XCJzaWRlYmFyXCI6IFwiaG9tZV9zaWRlYmFyX19mUFpmcVwiLFxuXHRcInNpZGViYXItaGVhZGVyLWJhclwiOiBcImhvbWVfc2lkZWJhci1oZWFkZXItYmFyX19TVmpJTlwiLFxuXHRcInNpZGViYXItYmFyLWJ1dHRvblwiOiBcImhvbWVfc2lkZWJhci1iYXItYnV0dG9uX196SmR2d1wiLFxuXHRcInNpZGViYXItZHJhZ1wiOiBcImhvbWVfc2lkZWJhci1kcmFnX19HOVNKSVwiLFxuXHRcIndpbmRvdy1jb250ZW50XCI6IFwiaG9tZV93aW5kb3ctY29udGVudF9fMldHWWZcIixcblx0XCJtb2JpbGVcIjogXCJob21lX21vYmlsZV9fV2ZwX2tcIixcblx0XCJzaWRlYmFyLXNob3dcIjogXCJob21lX3NpZGViYXItc2hvd19fOWJRZnVcIixcblx0XCJzaWRlYmFyLWhlYWRlclwiOiBcImhvbWVfc2lkZWJhci1oZWFkZXJfX19OSGdfXCIsXG5cdFwic2lkZWJhci1oZWFkZXItbmFycm93XCI6IFwiaG9tZV9zaWRlYmFyLWhlYWRlci1uYXJyb3dfX185aXFfXCIsXG5cdFwic2lkZWJhci1sb2dvXCI6IFwiaG9tZV9zaWRlYmFyLWxvZ29fX0NkN2hMXCIsXG5cdFwic2lkZWJhci10aXRsZS1jb250YWluZXJcIjogXCJob21lX3NpZGViYXItdGl0bGUtY29udGFpbmVyX19hWDJsMlwiLFxuXHRcInNpZGViYXItdGl0bGVcIjogXCJob21lX3NpZGViYXItdGl0bGVfX2wzS2hXXCIsXG5cdFwic2xpZGUtaW5cIjogXCJob21lX3NsaWRlLWluX19oMUJuX1wiLFxuXHRcInNpZGViYXItc3ViLXRpdGxlXCI6IFwiaG9tZV9zaWRlYmFyLXN1Yi10aXRsZV9fc2JUNlpcIixcblx0XCJzaWRlYmFyLWJvZHlcIjogXCJob21lX3NpZGViYXItYm9keV9fOXpiZWlcIixcblx0XCJjaGF0LWl0ZW1cIjogXCJob21lX2NoYXQtaXRlbV9fT2JsYWlcIixcblx0XCJjaGF0LWl0ZW0tc2VsZWN0ZWRcIjogXCJob21lX2NoYXQtaXRlbS1zZWxlY3RlZF9fYjZlQmVcIixcblx0XCJjaGF0LWl0ZW0tdGl0bGVcIjogXCJob21lX2NoYXQtaXRlbS10aXRsZV9fc1JzdHdcIixcblx0XCJjaGF0LWl0ZW0tZGVsZXRlXCI6IFwiaG9tZV9jaGF0LWl0ZW0tZGVsZXRlX18zcVY1bVwiLFxuXHRcImNoYXQtaXRlbS1pbmZvXCI6IFwiaG9tZV9jaGF0LWl0ZW0taW5mb19fOXI2el9cIixcblx0XCJjaGF0LWl0ZW0tY291bnRcIjogXCJob21lX2NoYXQtaXRlbS1jb3VudF9fX19McHlcIixcblx0XCJjaGF0LWl0ZW0tZGF0ZVwiOiBcImhvbWVfY2hhdC1pdGVtLWRhdGVfX05PRnJwXCIsXG5cdFwibmFycm93LXNpZGViYXJcIjogXCJob21lX25hcnJvdy1zaWRlYmFyX19TRklYTlwiLFxuXHRcImNoYXQtaXRlbS1uYXJyb3dcIjogXCJob21lX2NoYXQtaXRlbS1uYXJyb3dfX0tkNGUwXCIsXG5cdFwiY2hhdC1pdGVtLWF2YXRhclwiOiBcImhvbWVfY2hhdC1pdGVtLWF2YXRhcl9fS0p1X0pcIixcblx0XCJjaGF0LWl0ZW0tbmFycm93LWNvdW50XCI6IFwiaG9tZV9jaGF0LWl0ZW0tbmFycm93LWNvdW50X19CM2IzZ1wiLFxuXHRcInNpZGViYXItdGFpbFwiOiBcImhvbWVfc2lkZWJhci10YWlsX19UMl91N1wiLFxuXHRcInNpZGViYXItYWN0aW9uc1wiOiBcImhvbWVfc2lkZWJhci1hY3Rpb25zX19MY0RUOVwiLFxuXHRcInNpZGViYXItYWN0aW9uXCI6IFwiaG9tZV9zaWRlYmFyLWFjdGlvbl9fSVZmeUpcIixcblx0XCJsb2FkaW5nLWNvbnRlbnRcIjogXCJob21lX2xvYWRpbmctY29udGVudF9fN19KalBcIixcblx0XCJydGwtc2NyZWVuXCI6IFwiaG9tZV9ydGwtc2NyZWVuX19Qd3JfNlwiXG59O1xuXG5tb2R1bGUuZXhwb3J0cy5fX2NoZWNrc3VtID0gXCIxZmRkZWIxOWE4NjdcIlxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/components/home.module.scss\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/components/ui-lib.module.scss":
|
|
|
/*!*******************************************!*\
|
|
|
!*** ./app/components/ui-lib.module.scss ***!
|
|
|
\*******************************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
eval("// Exports\nmodule.exports = {\n\t\"card\": \"ui-lib_card__7vhpy\",\n\t\"popover\": \"ui-lib_popover___HGhK\",\n\t\"popover-content\": \"ui-lib_popover-content__DAsxM\",\n\t\"slide-in\": \"ui-lib_slide-in__1VMXW\",\n\t\"popover-mask\": \"ui-lib_popover-mask__HfrgX\",\n\t\"list-item\": \"ui-lib_list-item__YH0DO\",\n\t\"list-header\": \"ui-lib_list-header__RwThu\",\n\t\"list-icon\": \"ui-lib_list-icon__HuWqu\",\n\t\"list-item-title\": \"ui-lib_list-item-title__Fsa9c\",\n\t\"list-item-sub-title\": \"ui-lib_list-item-sub-title__jSgHb\",\n\t\"vertical\": \"ui-lib_vertical__HpgSa\",\n\t\"list\": \"ui-lib_list__1KN23\",\n\t\"modal-container\": \"ui-lib_modal-container__V07hJ\",\n\t\"modal-container-max\": \"ui-lib_modal-container-max__9yDQB\",\n\t\"modal-content\": \"ui-lib_modal-content___F0dm\",\n\t\"modal-header\": \"ui-lib_modal-header__ez8kk\",\n\t\"modal-title\": \"ui-lib_modal-title__uDyyZ\",\n\t\"modal-header-actions\": \"ui-lib_modal-header-actions__sGgzm\",\n\t\"modal-header-action\": \"ui-lib_modal-header-action__TQHsu\",\n\t\"modal-footer\": \"ui-lib_modal-footer__U6Gef\",\n\t\"modal-actions\": \"ui-lib_modal-actions__Ag5eX\",\n\t\"modal-action\": \"ui-lib_modal-action__o5vae\",\n\t\"show\": \"ui-lib_show__Oyrs0\",\n\t\"hide\": \"ui-lib_hide__HRR6J\",\n\t\"toast-container\": \"ui-lib_toast-container__t7drF\",\n\t\"toast-content\": \"ui-lib_toast-content__gUAwT\",\n\t\"toast-action\": \"ui-lib_toast-action__fBR8E\",\n\t\"input\": \"ui-lib_input__5JXLJ\",\n\t\"select-with-icon\": \"ui-lib_select-with-icon__L6FLF\",\n\t\"left-align-option\": \"ui-lib_left-align-option__GsJMu\",\n\t\"select-with-icon-select\": \"ui-lib_select-with-icon-select__JhHwp\",\n\t\"select-with-icon-icon\": \"ui-lib_select-with-icon-icon__7R2_b\",\n\t\"modal-input\": \"ui-lib_modal-input__vxrdT\",\n\t\"selector\": \"ui-lib_selector__tdy57\",\n\t\"selector-item-disabled\": \"ui-lib_selector-item-disabled__ggiJt\",\n\t\"selector-content\": \"ui-lib_selector-content__Ucr2_\",\n\t\"slide-in-from-top\": \"ui-lib_slide-in-from-top__cfJKh\"\n};\n\nmodule.exports.__checksum = \"a27fac511c26\"\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvY29tcG9uZW50cy91aS1saWIubW9kdWxlLnNjc3MiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEseUJBQXlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvY29tcG9uZW50cy91aS1saWIubW9kdWxlLnNjc3M/MzYzYyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBFeHBvcnRzXG5tb2R1bGUuZXhwb3J0cyA9IHtcblx0XCJjYXJkXCI6IFwidWktbGliX2NhcmRfXzd2aHB5XCIsXG5cdFwicG9wb3ZlclwiOiBcInVpLWxpYl9wb3BvdmVyX19fSEdoS1wiLFxuXHRcInBvcG92ZXItY29udGVudFwiOiBcInVpLWxpYl9wb3BvdmVyLWNvbnRlbnRfX0RBc3hNXCIsXG5cdFwic2xpZGUtaW5cIjogXCJ1aS1saWJfc2xpZGUtaW5fXzFWTVhXXCIsXG5cdFwicG9wb3Zlci1tYXNrXCI6IFwidWktbGliX3BvcG92ZXItbWFza19fSGZyZ1hcIixcblx0XCJsaXN0LWl0ZW1cIjogXCJ1aS1saWJfbGlzdC1pdGVtX19ZSDBET1wiLFxuXHRcImxpc3QtaGVhZGVyXCI6IFwidWktbGliX2xpc3QtaGVhZGVyX19Sd1RodVwiLFxuXHRcImxpc3QtaWNvblwiOiBcInVpLWxpYl9saXN0LWljb25fX0h1V3F1XCIsXG5cdFwibGlzdC1pdGVtLXRpdGxlXCI6IFwidWktbGliX2xpc3QtaXRlbS10aXRsZV9fRnNhOWNcIixcblx0XCJsaXN0LWl0ZW0tc3ViLXRpdGxlXCI6IFwidWktbGliX2xpc3QtaXRlbS1zdWItdGl0bGVfX2pTZ0hiXCIsXG5cdFwidmVydGljYWxcIjogXCJ1aS1saWJfdmVydGljYWxfX0hwZ1NhXCIsXG5cdFwibGlzdFwiOiBcInVpLWxpYl9saXN0X18xS04yM1wiLFxuXHRcIm1vZGFsLWNvbnRhaW5lclwiOiBcInVpLWxpYl9tb2RhbC1jb250YWluZXJfX1YwN2hKXCIsXG5cdFwibW9kYWwtY29udGFpbmVyLW1heFwiOiBcInVpLWxpYl9tb2RhbC1jb250YWluZXItbWF4X185eURRQlwiLFxuXHRcIm1vZGFsLWNvbnRlbnRcIjogXCJ1aS1saWJfbW9kYWwtY29udGVudF9fX0YwZG1cIixcblx0XCJtb2RhbC1oZWFkZXJcIjogXCJ1aS1saWJfbW9kYWwtaGVhZGVyX19lejhra1wiLFxuXHRcIm1vZGFsLXRpdGxlXCI6IFwidWktbGliX21vZGFsLXRpdGxlX191RHl5WlwiLFxuXHRcIm1vZGFsLWhlYWRlci1hY3Rpb25zXCI6IFwidWktbGliX21vZGFsLWhlYWRlci1hY3Rpb25zX19zR2d6bVwiLFxuXHRcIm1vZGFsLWhlYWRlci1hY3Rpb25cIjogXCJ1aS1saWJfbW9kYWwtaGVhZGVyLWFjdGlvbl9fVFFIc3VcIixcblx0XCJtb2RhbC1mb290ZXJcIjogXCJ1aS1saWJfbW9kYWwtZm9vdGVyX19VNkdlZlwiLFxuXHRcIm1vZGFsLWFjdGlvbnNcIjogXCJ1aS1saWJfbW9kYWwtYWN0aW9uc19fQWc1ZVhcIixcblx0XCJtb2RhbC1hY3Rpb25cIjogXCJ1aS1saWJfbW9kYWwtYWN0aW9uX19vNXZhZVwiLFxuXHRcInNob3dcIjogXCJ1aS1saWJfc2hvd19fT3lyczBcIixcblx0XCJoaWRlXCI6IFwidWktbGliX2hpZGVfX0hSUjZKXCIsXG5cdFwidG9hc3QtY29udGFpbmVyXCI6IFwidWktbGliX3RvYXN0LWNvbnRhaW5lcl9fdDdkckZcIixcblx0XCJ0b2FzdC1jb250ZW50XCI6IFwidWktbGliX3RvYXN0LWNvbnRlbnRfX2dVQXdUXCIsXG5cdFwidG9hc3QtYWN0aW9uXCI6IFwidWktbGliX3RvYXN0LWFjdGlvbl9fZkJSOEVcIixcblx0XCJpbnB1dFwiOiBcInVpLWxpYl9pbnB1dF9fNUpYTEpcIixcblx0XCJzZWxlY3Qtd2l0aC1pY29uXCI6IFwidWktbGliX3NlbGVjdC13aXRoLWljb25fX0w2RkxGXCIsXG5cdFwibGVmdC1hbGlnbi1vcHRpb25cIjogXCJ1aS1saWJfbGVmdC1hbGlnbi1vcHRpb25fX0dzSk11XCIsXG5cdFwic2VsZWN0LXdpdGgtaWNvbi1zZWxlY3RcIjogXCJ1aS1saWJfc2VsZWN0LXdpdGgtaWNvbi1zZWxlY3RfX0poSHdwXCIsXG5cdFwic2VsZWN0LXdpdGgtaWNvbi1pY29uXCI6IFwidWktbGliX3NlbGVjdC13aXRoLWljb24taWNvbl9fN1IyX2JcIixcblx0XCJtb2RhbC1pbnB1dFwiOiBcInVpLWxpYl9tb2RhbC1pbnB1dF9fdnhyZFRcIixcblx0XCJzZWxlY3RvclwiOiBcInVpLWxpYl9zZWxlY3Rvcl9fdGR5NTdcIixcblx0XCJzZWxlY3Rvci1pdGVtLWRpc2FibGVkXCI6IFwidWktbGliX3NlbGVjdG9yLWl0ZW0tZGlzYWJsZWRfX2dnaUp0XCIsXG5cdFwic2VsZWN0b3ItY29udGVudFwiOiBcInVpLWxpYl9zZWxlY3Rvci1jb250ZW50X19VY3IyX1wiLFxuXHRcInNsaWRlLWluLWZyb20tdG9wXCI6IFwidWktbGliX3NsaWRlLWluLWZyb20tdG9wX19jZkpLaFwiXG59O1xuXG5tb2R1bGUuZXhwb3J0cy5fX2NoZWNrc3VtID0gXCJhMjdmYWM1MTFjMjZcIlxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/components/ui-lib.module.scss\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(rsc)/./app/components/home.tsx":
|
|
|
/*!*********************************!*\
|
|
|
!*** ./app/components/home.tsx ***!
|
|
|
\*********************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
__webpack_require__.r(__webpack_exports__);
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
|
/* harmony export */ Home: () => (/* binding */ e4),
|
|
|
/* harmony export */ Loading: () => (/* binding */ e0),
|
|
|
/* harmony export */ WindowContent: () => (/* binding */ e2),
|
|
|
/* harmony export */ useLoadData: () => (/* binding */ e3),
|
|
|
/* harmony export */ useSwitchTheme: () => (/* binding */ e1)
|
|
|
/* harmony export */ });
|
|
|
/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __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");
|
|
|
|
|
|
const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`D:\NextChatCD\app\components\home.tsx`)
|
|
|
|
|
|
// Accessing the __esModule property and exporting $$typeof are required here.
|
|
|
// The __esModule getter forces the proxy target to create the default export
|
|
|
// and the $$typeof value is for rendering logic to determine if the module
|
|
|
// is a client boundary.
|
|
|
const { __esModule, $$typeof } = proxy;
|
|
|
const __default__ = proxy.default;
|
|
|
|
|
|
const e0 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`D:\NextChatCD\app\components\home.tsx#Loading`);
|
|
|
|
|
|
const e1 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`D:\NextChatCD\app\components\home.tsx#useSwitchTheme`);
|
|
|
|
|
|
const e2 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`D:\NextChatCD\app\components\home.tsx#WindowContent`);
|
|
|
|
|
|
const e3 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`D:\NextChatCD\app\components\home.tsx#useLoadData`);
|
|
|
|
|
|
const e4 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`D:\NextChatCD\app\components\home.tsx#Home`);
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(rsc)/./app/config/build.ts":
|
|
|
/*!*****************************!*\
|
|
|
!*** ./app/config/build.ts ***!
|
|
|
\*****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getBuildConfig: () => (/* binding */ getBuildConfig)\n/* harmony export */ });\n/* harmony import */ var _src_tauri_tauri_conf_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../src-tauri/tauri.conf.json */ \"(rsc)/./src-tauri/tauri.conf.json\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constant */ \"(rsc)/./app/constant.ts\");\n\n\nconst getBuildConfig = ()=>{\n if (typeof process === \"undefined\") {\n throw Error(\"[Server Config] you are importing a nodejs-only module outside of nodejs\");\n }\n const buildMode = process.env.BUILD_MODE ?? \"standalone\";\n const isApp = !!process.env.BUILD_APP;\n const version = \"v\" + _src_tauri_tauri_conf_json__WEBPACK_IMPORTED_MODULE_0__[\"package\"].version;\n const commitInfo = (()=>{\n try {\n const childProcess = __webpack_require__(/*! child_process */ \"child_process\");\n const commitDate = childProcess.execSync('git log -1 --format=\"%at000\" --date=unix').toString().trim();\n const commitHash = childProcess.execSync('git log --pretty=format:\"%H\" -n 1').toString().trim();\n return {\n commitDate,\n commitHash\n };\n } catch (e) {\n console.error(\"[Build Config] No git or not from git repo.\");\n return {\n commitDate: \"unknown\",\n commitHash: \"unknown\"\n };\n }\n })();\n return {\n version,\n ...commitInfo,\n buildMode,\n isApp,\n template: process.env.DEFAULT_INPUT_TEMPLATE ?? _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_INPUT_TEMPLATE\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvY29uZmlnL2J1aWxkLnRzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUEwRDtBQUNMO0FBRTlDLE1BQU1FLGlCQUFpQjtJQUM1QixJQUFJLE9BQU9DLFlBQVksYUFBYTtRQUNsQyxNQUFNQyxNQUNKO0lBRUo7SUFFQSxNQUFNQyxZQUFZRixRQUFRRyxHQUFHLENBQUNDLFVBQVUsSUFBSTtJQUM1QyxNQUFNQyxRQUFRLENBQUMsQ0FBQ0wsUUFBUUcsR0FBRyxDQUFDRyxTQUFTO0lBQ3JDLE1BQU1DLFVBQVUsTUFBTVYsMEVBQTJCO0lBRWpELE1BQU1ZLGFBQWEsQ0FBQztRQUNsQixJQUFJO1lBQ0YsTUFBTUMsZUFBZUMsbUJBQU9BLENBQUMsb0NBQWU7WUFDNUMsTUFBTUMsYUFBcUJGLGFBQ3hCRyxRQUFRLENBQUMsNENBQ1RDLFFBQVEsR0FDUkMsSUFBSTtZQUNQLE1BQU1DLGFBQXFCTixhQUN4QkcsUUFBUSxDQUFDLHFDQUNUQyxRQUFRLEdBQ1JDLElBQUk7WUFFUCxPQUFPO2dCQUFFSDtnQkFBWUk7WUFBVztRQUNsQyxFQUFFLE9BQU9DLEdBQUc7WUFDVkMsUUFBUUMsS0FBSyxDQUFDO1lBQ2QsT0FBTztnQkFDTFAsWUFBWTtnQkFDWkksWUFBWTtZQUNkO1FBQ0Y7SUFDRjtJQUVBLE9BQU87UUFDTFQ7UUFDQSxHQUFHRSxVQUFVO1FBQ2JQO1FBQ0FHO1FBQ0FlLFVBQVVwQixRQUFRRyxHQUFHLENBQUNMLHNCQUFzQixJQUFJQSw2REFBc0JBO0lBQ3hFO0FBQ0YsRUFBRSIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2NvbmZpZy9idWlsZC50cz9hZGQwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0YXVyaUNvbmZpZyBmcm9tIFwiLi4vLi4vc3JjLXRhdXJpL3RhdXJpLmNvbmYuanNvblwiO1xyXG5pbXBvcnQgeyBERUZBVUxUX0lOUFVUX1RFTVBMQVRFIH0gZnJvbSBcIi4uL2NvbnN0YW50XCI7XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0QnVpbGRDb25maWcgPSAoKSA9PiB7XHJcbiAgaWYgKHR5cGVvZiBwcm9jZXNzID09PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICB0aHJvdyBFcnJvcihcclxuICAgICAgXCJbU2VydmVyIENvbmZpZ10geW91IGFyZSBpbXBvcnRpbmcgYSBub2RlanMtb25seSBtb2R1bGUgb3V0c2lkZSBvZiBub2RlanNcIixcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBidWlsZE1vZGUgPSBwcm9jZXNzLmVudi5CVUlMRF9NT0RFID8/IFwic3RhbmRhbG9uZVwiO1xyXG4gIGNvbnN0IGlzQXBwID0gISFwcm9jZXNzLmVudi5CVUlMRF9BUFA7XHJcbiAgY29uc3QgdmVyc2lvbiA9IFwidlwiICsgdGF1cmlDb25maWcucGFja2FnZS52ZXJzaW9uO1xyXG5cclxuICBjb25zdCBjb21taXRJbmZvID0gKCgpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGNoaWxkUHJvY2VzcyA9IHJlcXVpcmUoXCJjaGlsZF9wcm9jZXNzXCIpO1xyXG4gICAgICBjb25zdCBjb21taXREYXRlOiBzdHJpbmcgPSBjaGlsZFByb2Nlc3NcclxuICAgICAgICAuZXhlY1N5bmMoJ2dpdCBsb2cgLTEgLS1mb3JtYXQ9XCIlYXQwMDBcIiAtLWRhdGU9dW5peCcpXHJcbiAgICAgICAgLnRvU3RyaW5nKClcclxuICAgICAgICAudHJpbSgpO1xyXG4gICAgICBjb25zdCBjb21taXRIYXNoOiBzdHJpbmcgPSBjaGlsZFByb2Nlc3NcclxuICAgICAgICAuZXhlY1N5bmMoJ2dpdCBsb2cgLS1wcmV0dHk9Zm9ybWF0OlwiJUhcIiAtbiAxJylcclxuICAgICAgICAudG9TdHJpbmcoKVxyXG4gICAgICAgIC50cmltKCk7XHJcblxyXG4gICAgICByZXR1cm4geyBjb21taXREYXRlLCBjb21taXRIYXNoIH07XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJbQnVpbGQgQ29uZmlnXSBObyBnaXQgb3Igbm90IGZyb20gZ2l0IHJlcG8uXCIpO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGNvbW1pdERhdGU6IFwidW5rbm93blwiLFxyXG4gICAgICAgIGNvbW1pdEhhc2g6IFwidW5rbm93blwiLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH0pKCk7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICB2ZXJzaW9uLFxyXG4gICAgLi4uY29tbWl0SW5mbyxcclxuICAgIGJ1aWxkTW9kZSxcclxuICAgIGlzQXBwLFxyXG4gICAgdGVtcGxhdGU6IHByb2Nlc3MuZW52LkRFRkFVTFRfSU5QVVRfVEVNUExBVEUgPz8gREVGQVVMVF9JTlBVVF9URU1QTEFURSxcclxuICB9O1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgQnVpbGRDb25maWcgPSBSZXR1cm5UeXBlPHR5cGVvZiBnZXRCdWlsZENvbmZpZz47XHJcbiJdLCJuYW1lcyI6WyJ0YXVyaUNvbmZpZyIsIkRFRkFVTFRfSU5QVVRfVEVNUExBVEUiLCJnZXRCdWlsZENvbmZpZyIsInByb2Nlc3MiLCJFcnJvciIsImJ1aWxkTW9kZSIsImVudiIsIkJVSUxEX01PREUiLCJpc0FwcCIsIkJVSUxEX0FQUCIsInZlcnNpb24iLCJwYWNrYWdlIiwiY29tbWl0SW5mbyIsImNoaWxkUHJvY2VzcyIsInJlcXVpcmUiLCJjb21taXREYXRlIiwiZXhlY1N5bmMiLCJ0b1N0cmluZyIsInRyaW0iLCJjb21taXRIYXNoIiwiZSIsImNvbnNvbGUiLCJlcnJvciIsInRlbXBsYXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./app/config/build.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(rsc)/./app/config/client.ts":
|
|
|
/*!******************************!*\
|
|
|
!*** ./app/config/client.ts ***!
|
|
|
\******************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getClientConfig: () => (/* binding */ getClientConfig)\n/* harmony export */ });\n/* harmony import */ var _build__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./build */ \"(rsc)/./app/config/build.ts\");\n\nfunction getClientConfig() {\n if (typeof document !== \"undefined\") {\n // client side\n return JSON.parse(queryMeta(\"config\") || \"{}\");\n }\n if (typeof process !== \"undefined\") {\n // server side\n return (0,_build__WEBPACK_IMPORTED_MODULE_0__.getBuildConfig)();\n }\n}\nfunction queryMeta(key, defaultValue) {\n let ret;\n if (document) {\n const meta = document.head.querySelector(`meta[name='${key}']`);\n ret = meta?.content ?? \"\";\n } else {\n ret = defaultValue ?? \"\";\n }\n return ret;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvY29uZmlnL2NsaWVudC50cyIsIm1hcHBpbmdzIjoiOzs7OztBQUFzRDtBQUUvQyxTQUFTQztJQUNkLElBQUksT0FBT0MsYUFBYSxhQUFhO1FBQ25DLGNBQWM7UUFDZCxPQUFPQyxLQUFLQyxLQUFLLENBQUNDLFVBQVUsYUFBYTtJQUMzQztJQUVBLElBQUksT0FBT0MsWUFBWSxhQUFhO1FBQ2xDLGNBQWM7UUFDZCxPQUFPTixzREFBY0E7SUFDdkI7QUFDRjtBQUVBLFNBQVNLLFVBQVVFLEdBQVcsRUFBRUMsWUFBcUI7SUFDbkQsSUFBSUM7SUFDSixJQUFJUCxVQUFVO1FBQ1osTUFBTVEsT0FBT1IsU0FBU1MsSUFBSSxDQUFDQyxhQUFhLENBQ3RDLENBQUMsV0FBVyxFQUFFTCxJQUFJLEVBQUUsQ0FBQztRQUV2QkUsTUFBTUMsTUFBTUcsV0FBVztJQUN6QixPQUFPO1FBQ0xKLE1BQU1ELGdCQUFnQjtJQUN4QjtJQUVBLE9BQU9DO0FBQ1QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9jb25maWcvY2xpZW50LnRzP2Q2ODIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbGRDb25maWcsIGdldEJ1aWxkQ29uZmlnIH0gZnJvbSBcIi4vYnVpbGRcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGllbnRDb25maWcoKSB7XHJcbiAgaWYgKHR5cGVvZiBkb2N1bWVudCAhPT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgLy8gY2xpZW50IHNpZGVcclxuICAgIHJldHVybiBKU09OLnBhcnNlKHF1ZXJ5TWV0YShcImNvbmZpZ1wiKSB8fCBcInt9XCIpIGFzIEJ1aWxkQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgaWYgKHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAvLyBzZXJ2ZXIgc2lkZVxyXG4gICAgcmV0dXJuIGdldEJ1aWxkQ29uZmlnKCk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBxdWVyeU1ldGEoa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgbGV0IHJldDogc3RyaW5nO1xyXG4gIGlmIChkb2N1bWVudCkge1xyXG4gICAgY29uc3QgbWV0YSA9IGRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3RvcihcclxuICAgICAgYG1ldGFbbmFtZT0nJHtrZXl9J11gLFxyXG4gICAgKSBhcyBIVE1MTWV0YUVsZW1lbnQ7XHJcbiAgICByZXQgPSBtZXRhPy5jb250ZW50ID8/IFwiXCI7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldCA9IGRlZmF1bHRWYWx1ZSA/PyBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHJldDtcclxufVxyXG4iXSwibmFtZXMiOlsiZ2V0QnVpbGRDb25maWciLCJnZXRDbGllbnRDb25maWciLCJkb2N1bWVudCIsIkpTT04iLCJwYXJzZSIsInF1ZXJ5TWV0YSIsInByb2Nlc3MiLCJrZXkiLCJkZWZhdWx0VmFsdWUiLCJyZXQiLCJtZXRhIiwiaGVhZCIsInF1ZXJ5U2VsZWN0b3IiLCJjb250ZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./app/config/client.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(action-browser)/./app/config/server.ts":
|
|
|
/*!******************************!*\
|
|
|
!*** ./app/config/server.ts ***!
|
|
|
\******************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getServerSideConfig: () => (/* binding */ getServerSideConfig)\n/* harmony export */ });\n/* harmony import */ var spark_md5__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! spark-md5 */ \"(action-browser)/./node_modules/spark-md5/spark-md5.js\");\n/* harmony import */ var spark_md5__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(spark_md5__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constant */ \"(action-browser)/./app/constant.ts\");\n/* harmony import */ var _utils_model__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/model */ \"(action-browser)/./app/utils/model.ts\");\n\n\n\nconst ACCESS_CODES = function getAccessCodes() {\n const code = process.env.CODE;\n try {\n const codes = (code?.split(\",\") ?? []).filter((v)=>!!v).map((v)=>spark_md5__WEBPACK_IMPORTED_MODULE_0___default().hash(v.trim()));\n return new Set(codes);\n } catch (e) {\n return new Set();\n }\n}();\nfunction getApiKey(keys) {\n const apiKeyEnvVar = keys ?? \"\";\n const apiKeys = apiKeyEnvVar.split(\",\").map((v)=>v.trim());\n const randomIndex = Math.floor(Math.random() * apiKeys.length);\n const apiKey = apiKeys[randomIndex];\n if (apiKey) {\n console.log(`[Server Config] using ${randomIndex + 1} of ${apiKeys.length} api key - ${apiKey}`);\n }\n return apiKey;\n}\nconst getServerSideConfig = ()=>{\n if (typeof process === \"undefined\") {\n throw Error(\"[Server Config] you are importing a nodejs-only module outside of nodejs\");\n }\n const disableGPT4 = !!process.env.DISABLE_GPT4;\n let customModels = process.env.CUSTOM_MODELS ?? \"\";\n let defaultModel = process.env.DEFAULT_MODEL ?? \"\";\n let visionModels = process.env.VISION_MODELS ?? \"\";\n if (disableGPT4) {\n if (customModels) customModels += \",\";\n customModels += _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_MODELS.filter((m)=>(0,_utils_model__WEBPACK_IMPORTED_MODULE_2__.isGPT4Model)(m.name)).map((m)=>\"-\" + m.name).join(\",\");\n if (defaultModel && (0,_utils_model__WEBPACK_IMPORTED_MODULE_2__.isGPT4Model)(defaultModel)) {\n defaultModel = \"\";\n }\n }\n const isStability = !!process.env.STABILITY_API_KEY;\n const isAzure = !!process.env.AZURE_URL;\n const isGoogle = !!process.env.GOOGLE_API_KEY;\n const isAnthropic = !!process.env.ANTHROPIC_API_KEY;\n const isTencent = !!process.env.TENCENT_API_KEY;\n const isBaidu = !!process.env.BAIDU_API_KEY;\n const isBytedance = !!process.env.BYTEDANCE_API_KEY;\n const isAlibaba = !!process.env.ALIBABA_API_KEY;\n const isMoonshot = !!process.env.MOONSHOT_API_KEY;\n const isIflytek = !!process.env.IFLYTEK_API_KEY;\n const isDeepSeek = !!process.env.DEEPSEEK_API_KEY;\n const isXAI = !!process.env.XAI_API_KEY;\n const isChatGLM = !!process.env.CHATGLM_API_KEY;\n const isSiliconFlow = !!process.env.SILICONFLOW_API_KEY;\n // const apiKeyEnvVar = process.env.OPENAI_API_KEY ?? \"\";\n // const apiKeys = apiKeyEnvVar.split(\",\").map((v) => v.trim());\n // const randomIndex = Math.floor(Math.random() * apiKeys.length);\n // const apiKey = apiKeys[randomIndex];\n // console.log(\n // `[Server Config] using ${randomIndex + 1} of ${apiKeys.length} api key`,\n // );\n const allowedWebDavEndpoints = (process.env.WHITE_WEBDAV_ENDPOINTS ?? \"\").split(\",\");\n return {\n baseUrl: process.env.BASE_URL,\n apiKey: getApiKey(process.env.OPENAI_API_KEY),\n openaiOrgId: process.env.OPENAI_ORG_ID,\n isStability,\n stabilityUrl: process.env.STABILITY_URL,\n stabilityApiKey: getApiKey(process.env.STABILITY_API_KEY),\n isAzure,\n azureUrl: process.env.AZURE_URL,\n azureApiKey: getApiKey(process.env.AZURE_API_KEY),\n azureApiVersion: process.env.AZURE_API_VERSION,\n isGoogle,\n googleApiKey: getApiKey(process.env.GOOGLE_API_KEY),\n googleUrl: process.env.GOOGLE_URL,\n isAnthropic,\n anthropicApiKey: getApiKey(process.env.ANTHROPIC_API_KEY),\n anthropicApiVersion: process.env.ANTHROPIC_API_VERSION,\n anthropicUrl: process.env.ANTHROPIC_URL,\n isBaidu,\n baiduUrl: process.env.BAIDU_URL,\n baiduApiKey: getApiKey(process.env.BAIDU_API_KEY),\n baiduSecretKey: process.env.BAIDU_SECRET_KEY,\n isBytedance,\n bytedanceApiKey: getApiKey(process.env.BYTEDANCE_API_KEY),\n bytedanceUrl: process.env.BYTEDANCE_URL,\n isAlibaba,\n alibabaUrl: process.env.ALIBABA_URL,\n alibabaApiKey: getApiKey(process.env.ALIBABA_API_KEY),\n isTencent,\n tencentUrl: process.env.TENCENT_URL,\n tencentSecretKey: getApiKey(process.env.TENCENT_SECRET_KEY),\n tencentSecretId: process.env.TENCENT_SECRET_ID,\n isMoonshot,\n moonshotUrl: process.env.MOONSHOT_URL,\n moonshotApiKey: getApiKey(process.env.MOONSHOT_API_KEY),\n isIflytek,\n iflytekUrl: process.env.IFLYTEK_URL,\n iflytekApiKey: process.env.IFLYTEK_API_KEY,\n iflytekApiSecret: process.env.IFLYTEK_API_SECRET,\n isDeepSeek,\n deepseekUrl: process.env.DEEPSEEK_URL,\n deepseekApiKey: getApiKey(process.env.DEEPSEEK_API_KEY),\n isXAI,\n xaiUrl: process.env.XAI_URL,\n xaiApiKey: getApiKey(process.env.XAI_API_KEY),\n isChatGLM,\n chatglmUrl: process.env.CHATGLM_URL,\n chatglmApiKey: getApiKey(process.env.CHATGLM_API_KEY),\n cloudflareAccountId: process.env.CLOUDFLARE_ACCOUNT_ID,\n cloudflareKVNamespaceId: process.env.CLOUDFLARE_KV_NAMESPACE_ID,\n cloudflareKVApiKey: getApiKey(process.env.CLOUDFLARE_KV_API_KEY),\n cloudflareKVTTL: process.env.CLOUDFLARE_KV_TTL,\n isSiliconFlow,\n siliconFlowUrl: process.env.SILICONFLOW_URL,\n siliconFlowApiKey: getApiKey(process.env.SILICONFLOW_API_KEY),\n gtmId: process.env.GTM_ID,\n gaId: process.env.GA_ID || _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_GA_ID,\n needCode: ACCESS_CODES.size > 0,\n code: process.env.CODE,\n codes: ACCESS_CODES,\n proxyUrl: process.env.PROXY_URL,\n isVercel: !!process.env.VERCEL,\n hideUserApiKey: !!process.env.HIDE_USER_API_KEY,\n disableGPT4,\n hideBalanceQuery: !process.env.ENABLE_BALANCE_QUERY,\n disableFastLink: !!process.env.DISABLE_FAST_LINK,\n customModels,\n defaultModel,\n visionModels,\n allowedWebDavEndpoints,\n enableMcp: process.env.ENABLE_MCP === \"true\"\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0MsZUFBZTdHLFVBQVVaLFFBQVFDLEdBQUcsQ0FBQzZELGVBQWU7UUFFcEQ0RCxxQkFBcUIxSCxRQUFRQyxHQUFHLENBQUMwSCxxQkFBcUI7UUFDdERDLHlCQUF5QjVILFFBQVFDLEdBQUcsQ0FBQzRILDBCQUEwQjtRQUMvREMsb0JBQW9CbEgsVUFBVVosUUFBUUMsR0FBRyxDQUFDOEgscUJBQXFCO1FBQy9EQyxpQkFBaUJoSSxRQUFRQyxHQUFHLENBQUNnSSxpQkFBaUI7UUFFOUNsRTtRQUNBbUUsZ0JBQWdCbEksUUFBUUMsR0FBRyxDQUFDa0ksZUFBZTtRQUMzQ0MsbUJBQW1CeEgsVUFBVVosUUFBUUMsR0FBRyxDQUFDK0QsbUJBQW1CO1FBRTVEcUUsT0FBT3JJLFFBQVFDLEdBQUcsQ0FBQ3FJLE1BQU07UUFDekJDLE1BQU12SSxRQUFRQyxHQUFHLENBQUN1SSxLQUFLLElBQUk3SSxvREFBYUE7UUFFeEM4SSxVQUFVNUksYUFBYTZJLElBQUksR0FBRztRQUM5QjNJLE1BQU1DLFFBQVFDLEdBQUcsQ0FBQ0MsSUFBSTtRQUN0QkMsT0FBT047UUFFUDhJLFVBQVUzSSxRQUFRQyxHQUFHLENBQUMySSxTQUFTO1FBQy9CQyxVQUFVLENBQUMsQ0FBQzdJLFFBQVFDLEdBQUcsQ0FBQzZJLE1BQU07UUFFOUJDLGdCQUFnQixDQUFDLENBQUMvSSxRQUFRQyxHQUFHLENBQUMrSSxpQkFBaUI7UUFDL0N0SDtRQUNBdUgsa0JBQWtCLENBQUNqSixRQUFRQyxHQUFHLENBQUNpSixvQkFBb0I7UUFDbkRDLGlCQUFpQixDQUFDLENBQUNuSixRQUFRQyxHQUFHLENBQUNtSixpQkFBaUI7UUFDaER4SDtRQUNBRTtRQUNBRTtRQUNBaUM7UUFDQW9GLFdBQVdySixRQUFRQyxHQUFHLENBQUNxSixVQUFVLEtBQUs7SUFDeEM7QUFDRixFQUFFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvY29uZmlnL3NlcnZlci50cz9hZDRmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtZDUgZnJvbSBcInNwYXJrLW1kNVwiO1xyXG5pbXBvcnQgeyBERUZBVUxUX01PREVMUywgREVGQVVMVF9HQV9JRCB9IGZyb20gXCIuLi9jb25zdGFudFwiO1xyXG5pbXBvcnQgeyBpc0dQVDRNb2RlbCB9IGZyb20gXCIuLi91dGlscy9tb2RlbFwiO1xyXG5cclxuZGVjbGFyZSBnbG9iYWwge1xyXG4gIG5hbWVzcGFjZSBOb2RlSlMge1xyXG4gICAgaW50ZXJmYWNlIFByb2Nlc3NFbnYge1xyXG4gICAgICBQUk9YWV9VUkw/OiBzdHJpbmc7IC8vIGRvY2tlciBvbmx5XHJcblxyXG4gICAgICBPUEVOQUlfQVBJX0tFWT86IHN0cmluZztcclxuICAgICAgQ09ERT86IHN0cmluZztcclxuXHJcbiAgICAgIEJBU0VfVVJMPzogc3RyaW5nO1xyXG4gICAgICBPUEVOQUlfT1JHX0lEPzogc3RyaW5nOyAvLyBvcGVuYWkgb25seVxyXG5cclxuICAgICAgVkVSQ0VMPzogc3RyaW5nO1xyXG4gICAgICBCVUlMRF9NT0RFPzogXCJzdGFuZGFsb25lXCIgfCBcImV4cG9ydFwiO1xyXG4gICAgICBCVUlMRF9BUFA/OiBzdHJpbmc7IC8vIGlzIGJ1aWxkaW5nIGRlc2t0b3AgYXBwXHJcblxyXG4gICAgICBISURFX1VTRVJfQVBJX0tFWT86IHN0cmluZzsgLy8gZGlzYWJsZSB1c2VyJ3MgYXBpIGtleSBpbnB1dFxyXG4gICAgICBESVNBQkxFX0dQVDQ/OiBzdHJpbmc7IC8vIGFsbG93IHVzZXIgdG8gdXNlIGdwdC00IG9yIG5vdFxyXG4gICAgICBFTkFCTEVfQkFMQU5DRV9RVUVSWT86IHN0cmluZzsgLy8gYWxsb3cgdXNlciB0byBxdWVyeSBiYWxhbmNlIG9yIG5vdFxyXG4gICAgICBESVNBQkxFX0ZBU1RfTElOSz86IHN0cmluZzsgLy8gZGlzYWxsb3cgcGFyc2Ugc2V0dGluZ3MgZnJvbSB1cmwgb3Igbm90XHJcbiAgICAgIENVU1RPTV9NT0RFTFM/OiBzdHJpbmc7IC8vIHRvIGNvbnRyb2wgY3VzdG9tIG1vZGVsc1xyXG4gICAgICBERUZBVUxUX01PREVMPzogc3RyaW5nOyAvLyB0byBjb250cm9sIGRlZmF1bHQgbW9kZWwgaW4gZXZlcnkgbmV3IGNoYXQgd2luZG93XHJcbiAgICAgIFZJU0lPTl9NT0RFTFM/OiBzdHJpbmc7IC8vIHRvIGNvbnRyb2wgdmlzaW9uIG1vZGVsc1xyXG5cclxuICAgICAgLy8gc3RhYmlsaXR5IG9ubHlcclxuICAgICAgU1RBQklMSVRZX1VSTD86IHN0cmluZztcclxuICAgICAgU1RBQklMSVRZX0FQSV9LRVk/OiBzdHJpbmc7XHJcblxyXG4gICAgICAvLyBhenVyZSBvbmx5XHJcbiAgICAgIEFaVVJFX1VSTD86IHN0cmluZzsgLy8gaHR0cHM6Ly97YXp1cmUtdXJsfS9vcGVuYWkvZGVwbG95bWVudHMve2RlcGxveS1uYW1lfVxyXG4gICAgICBBWlVSRV9BUElfS0VZPzogc3RyaW5nO1xyXG4gICAgICBBWlVSRV9BUElfVkVSU0lPTj86IHN0cmluZztcclxuXHJcbiAgICAgIC8vIGdvb2dsZSBvbmx5XHJcbiAgICAgIEdPT0dMRV9BUElfS0VZPzogc3RyaW5nO1xyXG4gICAgICBHT09HTEVfVVJMPzogc3RyaW5nO1xyXG5cclxuICAgICAgLy8gZ29vZ2xlIHRhZyBtYW5hZ2VyXHJcbiAgICAgIEdUTV9JRD86IHN0cmluZztcclxuXHJcbiAgICAgIC8vIGFudGhyb3BpYyBvbmx5XHJcbiAgICAgIEFOVEhST1BJQ19VUkw/OiBzdHJpbmc7XHJcbiAgICAgIEFOVEhST1BJQ19BUElfS0VZPzogc3RyaW5nO1xyXG4gICAgICBBTlRIUk9QSUNfQVBJX1ZFUlNJT04/OiBzdHJpbmc7XHJcblxyXG4gICAgICAvLyBiYWlkdSBvbmx5XHJcbiAgICAgIEJBSURVX1VSTD86IHN0cmluZztcclxuICAgICAgQkFJRFVfQVBJX0tFWT86IHN0cmluZztcclxuICAgICAgQkFJRFVfU0VDUkVUX0tFWT86IHN0cmluZztcclxuXHJcbiAgICAgIC8vIGJ5dGVkYW5jZSBvbmx5XHJcbiAgICAgIEJZVEVEQU5DRV9VUkw/OiBzdHJpbmc7XHJcbiAgICAgIEJZVEVEQU5DRV9BUElfS0VZPzogc3RyaW5nO1xyXG5cclxuICAgICAgLy8gYWxpYmFiYSBvbmx5XHJcbiAgICAgIEFMSUJBQkFfVVJMPzogc3RyaW5nO1xyXG4gICAgICBBTElCQUJBX0FQSV9LRVk/OiBzdHJpbmc7XHJcblxyXG4gICAgICAvLyB0ZW5jZW50IG9ubHlcclxuICAgICAgVEVOQ0VOVF9VUkw/OiBzdHJpbmc7XHJcbiAgICAgIFRFTkNFTlRfU0VDUkVUX0tFWT86IHN0cmluZztcclxuICAgICAgVEVOQ0VOVF9TRUNSRVRfSUQ/OiBzdHJpbmc7XHJcblxyXG4gICAgICAvLyBtb29uc2hvdCBvbmx5XHJcbiAgICAgIE1PT05TSE9UX1VSTD86IHN0cmluZztcclxuICAgICAgTU9PTlNIT1RfQVBJX0tFWT86IHN0cmluZztcclxuXHJcbiAgICAgIC8vIGlmbHl0ZWsgb25seVxyXG4gICAgICBJRkxZVEVLX1VSTD86IHN0cmluZztcclxuICAgICAgSUZMWVRFS19BUElfS0VZPzogc3RyaW5nO1xyXG4gICAgICBJRkxZVEVLX0FQSV9TRUNSRVQ/OiBzdHJpbmc7XHJcblxyXG4gICAgICBERUVQU0VFS19VUkw/OiBzdHJpbmc7XHJcbiAgICAgIERFRVBTRUVLX0FQSV9LRVk/OiBzdHJpbmc7XHJcblxyXG4gICAgICAvLyB4YWkgb25seVxyXG4gICAgICBYQUlfVVJMPzogc3RyaW5nO1xyXG4gICAgICBYQUlfQVBJX0tFWT86IHN0cmluZztcclxuXHJcbiAgICAgIC8vIGNoYXRnbG0gb25seVxyXG4gICAgICBDSEFUR0xNX1VSTD86IHN0cmluZztcclxuICAgICAgQ0hBVEdMTV9BUElfS0VZPzogc3RyaW5nO1xyXG5cclxuICAgICAgLy8gc2lsaWNvbmZsb3cgb25seVxyXG4gICAgICBTSUxJQ09ORkxPV19VUkw/OiBzdHJpbmc7XHJcbiAgICAgIFNJTElDT05GTE9XX0FQSV9LRVk/OiBzdHJpbmc7XHJcblxyXG4gICAgICAvLyBjdXN0b20gdGVtcGxhdGUgZm9yIHByZXByb2Nlc3NpbmcgdXNlciBpbnB1dFxyXG4gICAgICBERUZBVUxUX0lOUFVUX1RFTVBMQVRFPzogc3RyaW5nO1xyXG5cclxuICAgICAgRU5BQkxFX01DUD86IHN0cmluZzsgLy8gZW5hYmxlIG1jcCBmdW5jdGlvbmFsaXR5XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5jb25zdCBBQ0NFU1NfQ09ERVMgPSAoZnVuY3Rpb24gZ2V0QWNjZXNzQ29kZXMoKTogU2V0PHN0cmluZz4ge1xyXG4gIGNvbnN0IGNvZGUgPSBwcm9jZXNzLmVudi5DT0RFO1xyXG5cclxuICB0cnkge1xyXG4gICAgY29uc3QgY29kZXMgPSAoY29kZT8uc3BsaXQoXCIsXCIpID8/IFtdKVxyXG4gICAgICAuZmlsdGVyKCh2KSA9PiAhIXYpXHJcbiAgICAgIC5tYXAoKHYpID0+IG1kNS5oYXNoKHYudHJpbSgpKSk7XHJcbiAgICByZXR1cm4gbmV3IFNldChjb2Rlcyk7XHJcbiAgfSBjYXRjaCAoZSkge1xyXG4gICAgcmV0dXJuIG5ldyBTZXQoKTtcclxuICB9XHJcbn0pKCk7XHJcblxyXG5mdW5jdGlvbiBnZXRBcGlLZXkoa2V5cz86IHN0cmluZykge1xyXG4gIGNvbnN0IGFwaUtleUVudlZhciA9IGtleXMgPz8gXCJcIjtcclxuICBjb25zdCBhcGlLZXlzID0gYXBpS2V5RW52VmFyLnNwbGl0KFwiLFwiKS5tYXAoKHYpID0+IHYudHJpbSgpKTtcclxuICBjb25zdCByYW5kb21JbmRleCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGFwaUtleXMubGVuZ3RoKTtcclxuICBjb25zdCBhcGlLZXkgPSBhcGlLZXlzW3JhbmRvbUluZGV4XTtcclxuICBpZiAoYXBpS2V5KSB7XHJcbiAgICBjb25zb2xlLmxvZyhcclxuICAgICAgYFtTZXJ2ZXIgQ29uZmlnXSB1c2luZyAke3JhbmRvbUluZGV4ICsgMX0gb2YgJHtcclxuICAgICAgICBhcGlLZXlzLmxlbmd0aFxyXG4gICAgICB9IGFwaSBrZXkgLSAke2FwaUtleX1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBhcGlLZXk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBnZXRTZXJ2ZXJTaWRlQ29uZmlnID0gKCkgPT4ge1xyXG4gIGlmICh0eXBlb2YgcHJvY2VzcyA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgdGhyb3cgRXJyb3IoXHJcbiAgICAgIFwiW1NlcnZlciBDb25maWddIHlvdSBhcmUgaW1wb3J0aW5nIGEgbm9kZWpzLW9ubHkgbW9kdWxlIG91dHNpZGUgb2Ygbm9kZWpzXCIsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZGlzYWJsZUdQVDQgPSAhIXByb2Nlc3MuZW52LkRJU0FCTEVfR1BUNDtcclxuICBsZXQgY3VzdG9tTW9kZWxzID0gcHJvY2Vzcy5lbnYuQ1VTVE9NX01PREVMUyA/PyBcIlwiO1xyXG4gIGxldCBkZWZhdWx0TW9kZWwgPSBwcm9jZXNzLmVudi5ERUZBVUxUX01PREVMID8/IFwiXCI7XHJcbiAgbGV0IHZpc2lvbk1vZGVscyA9IHByb2Nlc3MuZW52LlZJU0lPTl9NT0RFTFMgPz8gXCJcIjtcclxuXHJcbiAgaWYgKGRpc2FibGVHUFQ0KSB7XHJcbiAgICBpZiAoY3VzdG9tTW9kZWxzKSBjdXN0b21Nb2RlbHMgKz0gXCIsXCI7XHJcbiAgICBjdXN0b21Nb2RlbHMgKz0gREVGQVVMVF9NT0RFTFMuZmlsdGVyKChtKSA9PiBpc0dQVDRNb2RlbChtLm5hbWUpKVxyXG4gICAgICAubWFwKChtKSA9PiBcIi1cIiArIG0ubmFtZSlcclxuICAgICAgLmpvaW4oXCIsXCIpO1xyXG4gICAgaWYgKGRlZmF1bHRNb2RlbCAmJiBpc0dQVDRNb2RlbChkZWZhdWx0TW9kZWwpKSB7XHJcbiAgICAgIGRlZmF1bHRNb2RlbCA9IFwiXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdCBpc1N0YWJpbGl0eSA9ICEhcHJvY2Vzcy5lbnYuU1RBQklMSVRZX0FQSV9LRVk7XHJcblxyXG4gIGNvbnN0IGlzQXp1cmUgPSAhIXByb2Nlc3MuZW52LkFaVVJFX1VSTDtcclxuICBjb25zdCBpc0dvb2dsZSA9ICEhcHJvY2Vzcy5lbnYuR09PR0xFX0FQSV9LRVk7XHJcbiAgY29uc3QgaXNBbnRocm9waWMgPSAhIXByb2Nlc3MuZW52LkFOVEhST1BJQ19BUElfS0VZO1xyXG4gIGNvbnN0IGlzVGVuY2VudCA9ICEhcHJvY2Vzcy5lbnYuVEVOQ0VOVF9BUElfS0VZO1xyXG5cclxuICBjb25zdCBpc0JhaWR1ID0gISFwcm9jZXNzLmVudi5CQUlEVV9BUElfS0VZO1xyXG4gIGNvbnN0IGlzQnl0ZWRhbmNlID0gISFwcm9jZXNzLmVudi5CWVRFREFOQ0VfQVBJX0tFWTtcclxuICBjb25zdCBpc0FsaWJhYmEgPSAhIXByb2Nlc3MuZW52LkFMSUJBQkFfQVBJX0tFWTtcclxuICBjb25zdCBpc01vb25zaG90ID0gISFwcm9jZXNzLmVudi5NT09OU0hPVF9BUElfS0VZO1xyXG4gIGNvbnN0IGlzSWZseXRlayA9ICEhcHJvY2Vzcy5lbnYuSUZMWVRFS19BUElfS0VZO1xyXG4gIGNvbnN0IGlzRGVlcFNlZWsgPSAhIXByb2Nlc3MuZW52LkRFRVBTRUVLX0FQSV9LRVk7XHJcbiAgY29uc3QgaXNYQUkgPSAhIXByb2Nlc3MuZW52LlhBSV9BUElfS0VZO1xyXG4gIGNvbnN0IGlzQ2hhdEdMTSA9ICEhcHJvY2Vzcy5lbnYuQ0hBVEdMTV9BUElfS0VZO1xyXG4gIGNvbnN0IGlzU2lsaWNvbkZsb3cgPSAhIXByb2Nlc3MuZW52LlNJTElDT05GTE9XX0FQSV9LRVk7XHJcbiAgLy8gY29uc3QgYXBpS2V5RW52VmFyID0gcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVkgPz8gXCJcIjtcclxuICAvLyBjb25zdCBhcGlLZXlzID0gYXBpS2V5RW52VmFyLnNwbGl0KFwiLFwiKS5tYXAoKHYpID0+IHYudHJpbSgpKTtcclxuICAvLyBjb25zdCByYW5kb21JbmRleCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGFwaUtleXMubGVuZ3RoKTtcclxuICAvLyBjb25zdCBhcGlLZXkgPSBhcGlLZXlzW3JhbmRvbUluZGV4XTtcclxuICAvLyBjb25zb2xlLmxvZyhcclxuICAvLyAgIGBbU2VydmVyIENvbmZpZ10gdXNpbmcgJHtyYW5kb21JbmRleCArIDF9IG9mICR7YXBpS2V5cy5sZW5ndGh9IGFwaSBrZXlgLFxyXG4gIC8vICk7XHJcblxyXG4gIGNvbnN0IGFsbG93ZWRXZWJEYXZFbmRwb2ludHMgPSAoXHJcbiAgICBwcm9jZXNzLmVudi5XSElURV9XRUJEQVZfRU5EUE9JTlRTID8/IFwiXCJcclxuICApLnNwbGl0KFwiLFwiKTtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGJhc2VVcmw6IHByb2Nlc3MuZW52LkJBU0VfVVJMLFxyXG4gICAgYXBpS2V5OiBnZXRBcGlLZXkocHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVkpLFxyXG4gICAgb3BlbmFpT3JnSWQ6IHByb2Nlc3MuZW52Lk9QRU5BSV9PUkdfSUQsXHJcblxyXG4gICAgaXNTdGFiaWxpdHksXHJcbiAgICBzdGFiaWxpdHlVcmw6IHByb2Nlc3MuZW52LlNUQUJJTElUWV9VUkwsXHJcbiAgICBzdGFiaWxpdHlBcGlLZXk6IGdldEFwaUtleShwcm9jZXNzLmVudi5TVEFCSUxJVFlfQVBJX0tFWSksXHJcblxyXG4gICAgaXNBenVyZSxcclxuICAgIGF6dXJlVXJsOiBwcm9jZXNzLmVudi5BWlVSRV9VUkwsXHJcbiAgICBhenVyZUFwaUtleTogZ2V0QXBpS2V5KHByb2Nlc3MuZW52LkFaVVJFX0FQSV9LRVkpLFxyXG4gICAgYXp1cmVBcGlWZXJzaW9uOiBwcm9jZXNzLmVudi5BWlVSRV9BUElfVkVSU0lPTixcclxuXHJcbiAgICBpc0dvb2dsZSxcclxuICAgIGdvb2dsZUFwaUtleTogZ2V0QXBpS2V5KHByb2Nlc3MuZW52LkdPT0dMRV9BUElfS0VZKSxcclxuICAgIGdvb2dsZVVybDogcHJvY2Vzcy5lbnYuR09PR0xFX1VSTCxcclxuXHJcbiAgICBpc0FudGhyb3BpYyxcclxuICAgIGFudGhyb3BpY0FwaUtleTogZ2V0QXBpS2V5KHByb2Nlc3MuZW52LkFOVEhST1BJQ19BUElfS0VZKSxcclxuICAgIGFudGhyb3BpY0FwaVZlcnNpb246IHByb2Nlc3MuZW52LkFOVEhST1BJQ19BUElfVkVSU0lPTixcclxuICAgIGFudGhyb3BpY1VybDogcHJvY2Vzcy5lbnYuQU5USFJPUElDX1VSTCxcclxuXHJcbiAgICBpc0JhaWR1LFxyXG4gICAgYmFpZHVVcmw6IHByb2Nlc3MuZW52LkJBSURVX1VSTCxcclxuICAgIGJhaWR1QXBpS2V5OiBnZXRBcGlLZXkocHJvY2Vzcy5lbnYuQkFJRFVfQVBJX0tFWSksXHJcbiAgICBiYWlkdVNlY3JldEtleTogcHJvY2Vzcy5lbnYuQkFJRFVfU0VDUkVUX0tFWSxcclxuXHJcbiAgICBpc0J5dGVkYW5jZSxcclxuICAgIGJ5dGVkYW5jZUFwaUtleTogZ2V0QXBpS2V5KHByb2Nlc3MuZW52LkJZVEVEQU5DRV9BUElfS0VZKSxcclxuICAgIGJ5dGVkYW5jZVVybDogcHJvY2Vzcy5lbnYuQllURURBTkNFX1VSTCxcclxuXHJcbiAgICBpc0FsaWJhYmEsXHJcbiAgICBhbGliYWJhVXJsOiBwcm9jZXNzLmVudi5BTElCQUJBX1VSTCxcclxuICAgIGFsaWJhYmFBcGlLZXk6IGdldEFwaUtleShwcm9jZXNzLmVudi5BTElCQUJBX0FQSV9LRVkpLFxyXG5cclxuICAgIGlzVGVuY2VudCxcclxuICAgIHRlbmNlbnRVcmw6IHByb2Nlc3MuZW52LlRFTkNFTlRfVVJMLFxyXG4gICAgdGVuY2VudFNlY3JldEtleTogZ2V0QXBpS2V5KHByb2Nlc3MuZW52LlRFTkNFTlRfU0VDUkVUX0tFWSksXHJcbiAgICB0ZW5jZW50U2VjcmV0SWQ6IHByb2Nlc3MuZW52LlRFTkNFTlRfU0VDUkVUX0lELFxyXG5cclxuICAgIGlzTW9vbnNob3QsXHJcbiAgICBtb29uc2hvdFVybDogcHJvY2Vzcy5lbnYuTU9PTlNIT1RfVVJMLFxyXG4gICAgbW9vbnNob3RBcGlLZXk6IGdldEFwaUtleShwcm9jZXNzLmVudi5NT09OU0hPVF9BUElfS0VZKSxcclxuXHJcbiAgICBpc0lmbHl0ZWssXHJcbiAgICBpZmx5dGVrVXJsOiBwcm9jZXNzLmVudi5JRkxZVEVLX1VSTCxcclxuICAgIGlmbHl0ZWtBcGlLZXk6IHByb2Nlc3MuZW52LklGTFlURUtfQVBJX0tFWSxcclxuICAgIGlmbHl0ZWtBcGlTZWNyZXQ6IHByb2Nlc3MuZW52LklGTFlURUtfQVBJX1NFQ1JFVCxcclxuXHJcbiAgICBpc0RlZXBTZWVrLFxyXG4gICAgZGVlcHNlZWtVcmw6IHByb2Nlc3MuZW52LkRFRVBTRUVLX1VSTCxcclxuICAgIGRlZXBzZWVrQXBpS2V5OiBnZXRBcGlLZXkocHJvY2Vzcy5lbnYuREVFUFNFRUtfQVBJX0tFWSksXHJcblxyXG4gICAgaXNYQUksXHJcbiAgICB4YWlVcmw6IHByb2Nlc3MuZW52LlhBSV9VUkwsXHJcbiAgICB4YWlBcGlLZXk6IGdldEFwaUtleShwcm9jZXNzLmVudi5YQUlfQVBJX0tFWSksXHJcblxyXG4gICAgaXNDaGF0R0xNLFxyXG4gICAgY2hhdGdsbVVybDogcHJvY2Vzcy5lbnYuQ0hBVEdMTV9VUkwsXHJcbiAgICBjaGF0Z2xtQXBpS2V5OiBnZXRBcGlLZXkocHJvY2Vzcy5lbnYuQ0hBVEdMTV9BUElfS0VZKSxcclxuXHJcbiAgICBjbG91ZGZsYXJlQWNjb3VudElkOiBwcm9jZXNzLmVudi5DTE9VREZMQVJFX0FDQ09VTlRfSUQsXHJcbiAgICBjbG91ZGZsYXJlS1ZOYW1lc3BhY2VJZDogcHJvY2Vzcy5lbnYuQ0xPVURGTEFSRV9LVl9OQU1FU1BBQ0VfSUQsXHJcbiAgICBjbG91ZGZsYXJlS1ZBcGlLZXk6IGdldEFwaUtleShwcm9jZXNzLmVudi5DTE9VREZMQVJFX0tWX0FQSV9LRVkpLFxyXG4gICAgY2xvdWRmbGFyZUtWVFRMOiBwcm9jZXNzLmVudi5DTE9VREZMQVJFX0tWX1RUTCxcclxuXHJcbiAgICBpc1NpbGljb25GbG93LFxyXG4gICAgc2lsaWNvbkZsb3dVcmw6IHByb2Nlc3MuZW52LlNJTElDT05GTE9XX1VSTCxcclxuICAgIHNpbGljb25GbG93QXBpS2V5OiBnZXRBcGlLZXkocHJvY2Vzcy5lbnYuU0lMSUNPTkZMT1dfQVBJX0tFWSksXHJcblxyXG4gICAgZ3RtSWQ6IHByb2Nlc3MuZW52LkdUTV9JRCxcclxuICAgIGdhSWQ6IHByb2Nlc3MuZW52LkdBX0lEIHx8IERFRkFVTFRfR0FfSUQsXHJcblxyXG4gICAgbmVlZENvZGU6IEFDQ0VTU19DT0RFUy5zaXplID4gMCxcclxuICAgIGNvZGU6IHByb2Nlc3MuZW52LkNPREUsXHJcbiAgICBjb2RlczogQUNDRVNTX0NPREVTLFxyXG5cclxuICAgIHByb3h5VXJsOiBwcm9jZXNzLmVudi5QUk9YWV9VUkwsXHJcbiAgICBpc1ZlcmNlbDogISFwcm9jZXNzLmVudi5WRVJDRUwsXHJcblxyXG4gICAgaGlkZVVzZXJBcGlLZXk6ICEhcHJvY2Vzcy5lbnYuSElERV9VU0VSX0FQSV9LRVksXHJcbiAgICBkaXNhYmxlR1BUNCxcclxuICAgIGhpZGVCYWxhbmNlUXVlcnk6ICFwcm9jZXNzLmVudi5FTkFCTEVfQkFMQU5DRV9RVUVSWSxcclxuICAgIGRpc2FibGVGYXN0TGluazogISFwcm9jZXNzLmVudi5ESVNBQkxFX0ZBU1RfTElOSyxcclxuICAgIGN1c3RvbU1vZGVscyxcclxuICAgIGRlZmF1bHRNb2RlbCxcclxuICAgIHZpc2lvbk1vZGVscyxcclxuICAgIGFsbG93ZWRXZWJEYXZFbmRwb2ludHMsXHJcbiAgICBlbmFibGVNY3A6IHByb2Nlc3MuZW52LkVOQUJMRV9NQ1AgPT09IFwidHJ1ZVwiLFxyXG4gIH07XHJcbn07XHJcbiJdLCJuYW1lcyI6WyJtZDUiLCJERUZBVUxUX01PREVMUyIsIkRFRkFVTFRfR0FfSUQiLCJpc0dQVDRNb2RlbCIsIkFDQ0VTU19DT0RFUyIsImdldEFjY2Vzc0NvZGVzIiwiY29kZSIsInByb2Nlc3MiLCJlbnYiLCJDT0RFIiwiY29kZXMiLCJzcGxpdCIsImZpbHRlciIsInYiLCJtYXAiLCJoYXNoIiwidHJpbSIsIlNldCIsImUiLCJnZXRBcGlLZXkiLCJrZXlzIiwiYXBpS2V5RW52VmFyIiwiYXBpS2V5cyIsInJhbmRvbUluZGV4IiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwibGVuZ3RoIiwiYXBpS2V5IiwiY29uc29sZSIsImxvZyIsImdldFNlcnZlclNpZGVDb25maWciLCJFcnJvciIsImRpc2FibGVHUFQ0IiwiRElTQUJMRV9HUFQ0IiwiY3VzdG9tTW9kZWxzIiwiQ1VTVE9NX01PREVMUyIsImRlZmF1bHRNb2RlbCIsIkRFRkFVTFRfTU9ERUwiLCJ2aXNpb25Nb2RlbHMiLCJWSVNJT05fTU9ERUxTIiwibSIsIm5hbWUiLCJqb2luIiwiaXNTdGFiaWxpdHkiLCJTVEFCSUxJVFlfQVBJX0tFWSIsImlzQXp1cmUiLCJBWlVSRV9VUkwiLCJpc0dvb2dsZSIsIkdPT0dMRV9BUElfS0VZIiwiaXNBbnRocm9waWMiLCJBTlRIUk9QSUNfQVBJX0tFWSIsImlzVGVuY2VudCIsIlRFTkNFTlRfQVBJX0tFWSIsImlzQmFpZHUiLCJCQUlEVV9BUElfS0VZIiwiaXNCeXRlZGFuY2UiLCJCWVRFREFOQ0VfQVBJX0tFWSIsImlzQWxpYmFiYSIsIkFMSUJBQkFfQVBJX0tFWSIsImlzTW9vbnNob3QiLCJNT09OU0hPVF9BUElfS0VZIiwiaXNJZmx5dGVrIiwiSUZMWVRFS19BUElfS0VZIiwiaXNEZWVwU2VlayIsIkRFRVBTRUVLX0FQSV9LRVkiLCJpc1hBSSIsIlhBSV9BUElfS0VZIiwiaXNDaGF0R0xNIiwiQ0hBVEdMTV9BUElfS0VZIiwiaXNTaWxpY29uRmxvdyIsIlNJTElDT05GTE9XX0FQSV9LRVkiLCJhbGxvd2VkV2ViRGF2RW5kcG9pbnRzIiwiV0hJVEVfV0VCREFWX0VORFBPSU5UUyIsImJhc2VVcmwiLCJCQVNFX1VSTCIsIk9QRU5BSV9BUElfS0VZIiwib3BlbmFpT3JnSWQiLCJPUEVOQUlfT1JHX0lEIiwic3RhYmlsaXR5VXJsIiwiU1RBQklMSVRZX1VSTCIsInN0YWJpbGl0eUFwaUtleSIsImF6dXJlVXJsIiwiYXp1cmVBcGlLZXkiLCJBWlVSRV9BUElfS0VZIiwiYXp1cmVBcGlWZXJzaW9uIiwiQVpVUkVfQVBJX1ZFUlNJT04iLCJnb29nbGVBcGlLZXkiLCJnb29nbGVVcmwiLCJHT09HTEVfVVJMIiwiYW50aHJvcGljQXBpS2V5IiwiYW50aHJvcGljQXBpVmVyc2lvbiIsIkFOVEhST1BJQ19BUElfVkVSU0lPTiIsImFudGhyb3BpY1VybCIsIkFOVEhST1BJQ19VUkwiLCJiYWlkdVVybCIsIkJBSURVX1VSTCIsImJhaWR1QXBpS2V5IiwiYmFpZHVTZWNyZXRLZXkiLCJCQUlEVV9TRUNSRVRfS0VZIiwiYnl0ZWRhbmNlQXBpS2V5IiwiYnl0ZWRhbmNlVXJsIiwiQllURURBTkNFX1VSTCIsImFsaWJhYmFVcmwiLCJBTElCQUJBX1VSTCIsImFsaWJhYmFBcGlLZXkiLCJ0ZW5jZW50VXJsIiwiVEVOQ0VOVF9VUkwiLCJ0ZW5jZW50U2VjcmV0S2V5IiwiVEVOQ0VOVF9TRUNSRVRfS0VZIiwidGVuY2VudFNlY3JldElkIiwiVEVOQ0VOVF9TRUNSRVRfSUQiLCJtb29uc2hvdFVybCIsIk1PT05TSE9UX1VSTCIsIm1vb25zaG90QXBpS2V5IiwiaWZseXRla1VybCIsIklGTFlURUtfVVJMIiwiaWZseXRla0FwaUtleSIsImlmbHl0ZWtBcGlTZWNyZXQiLCJJRkxZVEVLX0FQSV9TRUNSRVQiLCJkZWVwc2Vla1VybCIsIkRFRVBTRUVLX1VSTCIsImRlZXBzZWVrQXBpS2V5IiwieGFpVXJsIiwiWEFJX1VSTCIsInhhaUFwaUtleSIsImNoYXRnbG1VcmwiLCJDSEFUR0xNX1VSTCIsImNoYXRnbG1BcGlLZXkiLCJjbG91ZGZsYXJlQWNjb3VudElkIiwiQ0xPVURGTEFSRV9BQ0NPVU5UX0lEIiwiY2xvdWRmbGFyZUtWTmFtZXNwYWNlSWQiLCJDTE9VREZMQVJFX0tWX05BTUVTUEFDRV9JRCIsImNsb3VkZmxhcmVLVkFwaUtleSIsIkNMT1VERkxBUkVfS1ZfQVBJX0tFWSIsImNsb3VkZmxhcmVLVlRUTCIsIkNMT1VERkxBUkVfS1ZfVFRMIiwic2lsaWNvbkZsb3dVcmwiLCJTSUxJQ09ORkxPV19VUkwiLCJzaWxpY29uRmxvd0FwaUtleSIsImd0bUlkIiwiR1RNX0lEIiwiZ2FJZCIsIkdBX0lEIiwibmVlZENvZGUiLCJzaXplIiwicHJveHlVcmwiLCJQUk9YWV9VUkwiLCJpc1ZlcmNlbCIsIlZFUkNFTCIsImhpZGVVc2VyQXBpS2V5IiwiSElERV9VU0VSX0FQSV9LRVkiLCJoaWRlQmFsYW5jZVF1ZXJ5IiwiRU5BQkxFX0JBTEFOQ0VfUVVFUlkiLCJkaXNhYmxlRmFzdExpbmsiLCJESVNBQkxFX0ZBU1RfTElOSyIsImVuYWJsZU1jcCIsIkVOQUJMRV9NQ1AiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(action-browser)/./app/config/server.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(rsc)/./app/config/server.ts":
|
|
|
/*!******************************!*\
|
|
|
!*** ./app/config/server.ts ***!
|
|
|
\******************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getServerSideConfig: () => (/* binding */ getServerSideConfig)\n/* harmony export */ });\n/* harmony import */ var spark_md5__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! spark-md5 */ \"(rsc)/./node_modules/spark-md5/spark-md5.js\");\n/* harmony import */ var spark_md5__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(spark_md5__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constant */ \"(rsc)/./app/constant.ts\");\n/* harmony import */ var _utils_model__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/model */ \"(rsc)/./app/utils/model.ts\");\n\n\n\nconst ACCESS_CODES = function getAccessCodes() {\n const code = process.env.CODE;\n try {\n const codes = (code?.split(\",\") ?? []).filter((v)=>!!v).map((v)=>spark_md5__WEBPACK_IMPORTED_MODULE_0___default().hash(v.trim()));\n return new Set(codes);\n } catch (e) {\n return new Set();\n }\n}();\nfunction getApiKey(keys) {\n const apiKeyEnvVar = keys ?? \"\";\n const apiKeys = apiKeyEnvVar.split(\",\").map((v)=>v.trim());\n const randomIndex = Math.floor(Math.random() * apiKeys.length);\n const apiKey = apiKeys[randomIndex];\n if (apiKey) {\n console.log(`[Server Config] using ${randomIndex + 1} of ${apiKeys.length} api key - ${apiKey}`);\n }\n return apiKey;\n}\nconst getServerSideConfig = ()=>{\n if (typeof process === \"undefined\") {\n throw Error(\"[Server Config] you are importing a nodejs-only module outside of nodejs\");\n }\n const disableGPT4 = !!process.env.DISABLE_GPT4;\n let customModels = process.env.CUSTOM_MODELS ?? \"\";\n let defaultModel = process.env.DEFAULT_MODEL ?? \"\";\n let visionModels = process.env.VISION_MODELS ?? \"\";\n if (disableGPT4) {\n if (customModels) customModels += \",\";\n customModels += _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_MODELS.filter((m)=>(0,_utils_model__WEBPACK_IMPORTED_MODULE_2__.isGPT4Model)(m.name)).map((m)=>\"-\" + m.name).join(\",\");\n if (defaultModel && (0,_utils_model__WEBPACK_IMPORTED_MODULE_2__.isGPT4Model)(defaultModel)) {\n defaultModel = \"\";\n }\n }\n const isStability = !!process.env.STABILITY_API_KEY;\n const isAzure = !!process.env.AZURE_URL;\n const isGoogle = !!process.env.GOOGLE_API_KEY;\n const isAnthropic = !!process.env.ANTHROPIC_API_KEY;\n const isTencent = !!process.env.TENCENT_API_KEY;\n const isBaidu = !!process.env.BAIDU_API_KEY;\n const isBytedance = !!process.env.BYTEDANCE_API_KEY;\n const isAlibaba = !!process.env.ALIBABA_API_KEY;\n const isMoonshot = !!process.env.MOONSHOT_API_KEY;\n const isIflytek = !!process.env.IFLYTEK_API_KEY;\n const isDeepSeek = !!process.env.DEEPSEEK_API_KEY;\n const isXAI = !!process.env.XAI_API_KEY;\n const isChatGLM = !!process.env.CHATGLM_API_KEY;\n const isSiliconFlow = !!process.env.SILICONFLOW_API_KEY;\n // const apiKeyEnvVar = process.env.OPENAI_API_KEY ?? \"\";\n // const apiKeys = apiKeyEnvVar.split(\",\").map((v) => v.trim());\n // const randomIndex = Math.floor(Math.random() * apiKeys.length);\n // const apiKey = apiKeys[randomIndex];\n // console.log(\n // `[Server Config] using ${randomIndex + 1} of ${apiKeys.length} api key`,\n // );\n const allowedWebDavEndpoints = (process.env.WHITE_WEBDAV_ENDPOINTS ?? \"\").split(\",\");\n return {\n baseUrl: process.env.BASE_URL,\n apiKey: getApiKey(process.env.OPENAI_API_KEY),\n openaiOrgId: process.env.OPENAI_ORG_ID,\n isStability,\n stabilityUrl: process.env.STABILITY_URL,\n stabilityApiKey: getApiKey(process.env.STABILITY_API_KEY),\n isAzure,\n azureUrl: process.env.AZURE_URL,\n azureApiKey: getApiKey(process.env.AZURE_API_KEY),\n azureApiVersion: process.env.AZURE_API_VERSION,\n isGoogle,\n googleApiKey: getApiKey(process.env.GOOGLE_API_KEY),\n googleUrl: process.env.GOOGLE_URL,\n isAnthropic,\n anthropicApiKey: getApiKey(process.env.ANTHROPIC_API_KEY),\n anthropicApiVersion: process.env.ANTHROPIC_API_VERSION,\n anthropicUrl: process.env.ANTHROPIC_URL,\n isBaidu,\n baiduUrl: process.env.BAIDU_URL,\n baiduApiKey: getApiKey(process.env.BAIDU_API_KEY),\n baiduSecretKey: process.env.BAIDU_SECRET_KEY,\n isBytedance,\n bytedanceApiKey: getApiKey(process.env.BYTEDANCE_API_KEY),\n bytedanceUrl: process.env.BYTEDANCE_URL,\n isAlibaba,\n alibabaUrl: process.env.ALIBABA_URL,\n alibabaApiKey: getApiKey(process.env.ALIBABA_API_KEY),\n isTencent,\n tencentUrl: process.env.TENCENT_URL,\n tencentSecretKey: getApiKey(process.env.TENCENT_SECRET_KEY),\n tencentSecretId: process.env.TENCENT_SECRET_ID,\n isMoonshot,\n moonshotUrl: process.env.MOONSHOT_URL,\n moonshotApiKey: getApiKey(process.env.MOONSHOT_API_KEY),\n isIflytek,\n iflytekUrl: process.env.IFLYTEK_URL,\n iflytekApiKey: process.env.IFLYTEK_API_KEY,\n iflytekApiSecret: process.env.IFLYTEK_API_SECRET,\n isDeepSeek,\n deepseekUrl: process.env.DEEPSEEK_URL,\n deepseekApiKey: getApiKey(process.env.DEEPSEEK_API_KEY),\n isXAI,\n xaiUrl: process.env.XAI_URL,\n xaiApiKey: getApiKey(process.env.XAI_API_KEY),\n isChatGLM,\n chatglmUrl: process.env.CHATGLM_URL,\n chatglmApiKey: getApiKey(process.env.CHATGLM_API_KEY),\n cloudflareAccountId: process.env.CLOUDFLARE_ACCOUNT_ID,\n cloudflareKVNamespaceId: process.env.CLOUDFLARE_KV_NAMESPACE_ID,\n cloudflareKVApiKey: getApiKey(process.env.CLOUDFLARE_KV_API_KEY),\n cloudflareKVTTL: process.env.CLOUDFLARE_KV_TTL,\n isSiliconFlow,\n siliconFlowUrl: process.env.SILICONFLOW_URL,\n siliconFlowApiKey: getApiKey(process.env.SILICONFLOW_API_KEY),\n gtmId: process.env.GTM_ID,\n gaId: process.env.GA_ID || _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_GA_ID,\n needCode: ACCESS_CODES.size > 0,\n code: process.env.CODE,\n codes: ACCESS_CODES,\n proxyUrl: process.env.PROXY_URL,\n isVercel: !!process.env.VERCEL,\n hideUserApiKey: !!process.env.HIDE_USER_API_KEY,\n disableGPT4,\n hideBalanceQuery: !process.env.ENABLE_BALANCE_QUERY,\n disableFastLink: !!process.env.DISABLE_FAST_LINK,\n customModels,\n defaultModel,\n visionModels,\n allowedWebDavEndpoints,\n enableMcp: process.env.ENABLE_MCP === \"true\"\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFVWixRQUFRQyxHQUFHLENBQUM2RCxlQUFlO1FBRXBENEQscUJBQXFCMUgsUUFBUUMsR0FBRyxDQUFDMEgscUJBQXFCO1FBQ3REQyx5QkFBeUI1SCxRQUFRQyxHQUFHLENBQUM0SCwwQkFBMEI7UUFDL0RDLG9CQUFvQmxILFVBQVVaLFFBQVFDLEdBQUcsQ0FBQzhILHFCQUFxQjtRQUMvREMsaUJBQWlCaEksUUFBUUMsR0FBRyxDQUFDZ0ksaUJBQWlCO1FBRTlDbEU7UUFDQW1FLGdCQUFnQmxJLFFBQVFDLEdBQUcsQ0FBQ2tJLGVBQWU7UUFDM0NDLG1CQUFtQnhILFVBQVVaLFFBQVFDLEdBQUcsQ0FBQytELG1CQUFtQjtRQUU1RHFFLE9BQU9ySSxRQUFRQyxHQUFHLENBQUNxSSxNQUFNO1FBQ3pCQyxNQUFNdkksUUFBUUMsR0FBRyxDQUFDdUksS0FBSyxJQUFJN0ksb0RBQWFBO1FBRXhDOEksVUFBVTVJLGFBQWE2SSxJQUFJLEdBQUc7UUFDOUIzSSxNQUFNQyxRQUFRQyxHQUFHLENBQUNDLElBQUk7UUFDdEJDLE9BQU9OO1FBRVA4SSxVQUFVM0ksUUFBUUMsR0FBRyxDQUFDMkksU0FBUztRQUMvQkMsVUFBVSxDQUFDLENBQUM3SSxRQUFRQyxHQUFHLENBQUM2SSxNQUFNO1FBRTlCQyxnQkFBZ0IsQ0FBQyxDQUFDL0ksUUFBUUMsR0FBRyxDQUFDK0ksaUJBQWlCO1FBQy9DdEg7UUFDQXVILGtCQUFrQixDQUFDakosUUFBUUMsR0FBRyxDQUFDaUosb0JBQW9CO1FBQ25EQyxpQkFBaUIsQ0FBQyxDQUFDbkosUUFBUUMsR0FBRyxDQUFDbUosaUJBQWlCO1FBQ2hEeEg7UUFDQUU7UUFDQUU7UUFDQWlDO1FBQ0FvRixXQUFXckosUUFBUUMsR0FBRyxDQUFDcUosVUFBVSxLQUFLO0lBQ3hDO0FBQ0YsRUFBRSIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2NvbmZpZy9zZXJ2ZXIudHM/YWQ0ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWQ1IGZyb20gXCJzcGFyay1tZDVcIjtcclxuaW1wb3J0IHsgREVGQVVMVF9NT0RFTFMsIERFRkFVTFRfR0FfSUQgfSBmcm9tIFwiLi4vY29uc3RhbnRcIjtcclxuaW1wb3J0IHsgaXNHUFQ0TW9kZWwgfSBmcm9tIFwiLi4vdXRpbHMvbW9kZWxcIjtcclxuXHJcbmRlY2xhcmUgZ2xvYmFsIHtcclxuICBuYW1lc3BhY2UgTm9kZUpTIHtcclxuICAgIGludGVyZmFjZSBQcm9jZXNzRW52IHtcclxuICAgICAgUFJPWFlfVVJMPzogc3RyaW5nOyAvLyBkb2NrZXIgb25seVxyXG5cclxuICAgICAgT1BFTkFJX0FQSV9LRVk/OiBzdHJpbmc7XHJcbiAgICAgIENPREU/OiBzdHJpbmc7XHJcblxyXG4gICAgICBCQVNFX1VSTD86IHN0cmluZztcclxuICAgICAgT1BFTkFJX09SR19JRD86IHN0cmluZzsgLy8gb3BlbmFpIG9ubHlcclxuXHJcbiAgICAgIFZFUkNFTD86IHN0cmluZztcclxuICAgICAgQlVJTERfTU9ERT86IFwic3RhbmRhbG9uZVwiIHwgXCJleHBvcnRcIjtcclxuICAgICAgQlVJTERfQVBQPzogc3RyaW5nOyAvLyBpcyBidWlsZGluZyBkZXNrdG9wIGFwcFxyXG5cclxuICAgICAgSElERV9VU0VSX0FQSV9LRVk/OiBzdHJpbmc7IC8vIGRpc2FibGUgdXNlcidzIGFwaSBrZXkgaW5wdXRcclxuICAgICAgRElTQUJMRV9HUFQ0Pzogc3RyaW5nOyAvLyBhbGxvdyB1c2VyIHRvIHVzZSBncHQtNCBvciBub3RcclxuICAgICAgRU5BQkxFX0JBTEFOQ0VfUVVFUlk/OiBzdHJpbmc7IC8vIGFsbG93IHVzZXIgdG8gcXVlcnkgYmFsYW5jZSBvciBub3RcclxuICAgICAgRElTQUJMRV9GQVNUX0xJTks/OiBzdHJpbmc7IC8vIGRpc2FsbG93IHBhcnNlIHNldHRpbmdzIGZyb20gdXJsIG9yIG5vdFxyXG4gICAgICBDVVNUT01fTU9ERUxTPzogc3RyaW5nOyAvLyB0byBjb250cm9sIGN1c3RvbSBtb2RlbHNcclxuICAgICAgREVGQVVMVF9NT0RFTD86IHN0cmluZzsgLy8gdG8gY29udHJvbCBkZWZhdWx0IG1vZGVsIGluIGV2ZXJ5IG5ldyBjaGF0IHdpbmRvd1xyXG4gICAgICBWSVNJT05fTU9ERUxTPzogc3RyaW5nOyAvLyB0byBjb250cm9sIHZpc2lvbiBtb2RlbHNcclxuXHJcbiAgICAgIC8vIHN0YWJpbGl0eSBvbmx5XHJcbiAgICAgIFNUQUJJTElUWV9VUkw/OiBzdHJpbmc7XHJcbiAgICAgIFNUQUJJTElUWV9BUElfS0VZPzogc3RyaW5nO1xyXG5cclxuICAgICAgLy8gYXp1cmUgb25seVxyXG4gICAgICBBWlVSRV9VUkw/OiBzdHJpbmc7IC8vIGh0dHBzOi8ve2F6dXJlLXVybH0vb3BlbmFpL2RlcGxveW1lbnRzL3tkZXBsb3ktbmFtZX1cclxuICAgICAgQVpVUkVfQVBJX0tFWT86IHN0cmluZztcclxuICAgICAgQVpVUkVfQVBJX1ZFUlNJT04/OiBzdHJpbmc7XHJcblxyXG4gICAgICAvLyBnb29nbGUgb25seVxyXG4gICAgICBHT09HTEVfQVBJX0tFWT86IHN0cmluZztcclxuICAgICAgR09PR0xFX1VSTD86IHN0cmluZztcclxuXHJcbiAgICAgIC8vIGdvb2dsZSB0YWcgbWFuYWdlclxyXG4gICAgICBHVE1fSUQ/OiBzdHJpbmc7XHJcblxyXG4gICAgICAvLyBhbnRocm9waWMgb25seVxyXG4gICAgICBBTlRIUk9QSUNfVVJMPzogc3RyaW5nO1xyXG4gICAgICBBTlRIUk9QSUNfQVBJX0tFWT86IHN0cmluZztcclxuICAgICAgQU5USFJPUElDX0FQSV9WRVJTSU9OPzogc3RyaW5nO1xyXG5cclxuICAgICAgLy8gYmFpZHUgb25seVxyXG4gICAgICBCQUlEVV9VUkw/OiBzdHJpbmc7XHJcbiAgICAgIEJBSURVX0FQSV9LRVk/OiBzdHJpbmc7XHJcbiAgICAgIEJBSURVX1NFQ1JFVF9LRVk/OiBzdHJpbmc7XHJcblxyXG4gICAgICAvLyBieXRlZGFuY2Ugb25seVxyXG4gICAgICBCWVRFREFOQ0VfVVJMPzogc3RyaW5nO1xyXG4gICAgICBCWVRFREFOQ0VfQVBJX0tFWT86IHN0cmluZztcclxuXHJcbiAgICAgIC8vIGFsaWJhYmEgb25seVxyXG4gICAgICBBTElCQUJBX1VSTD86IHN0cmluZztcclxuICAgICAgQUxJQkFCQV9BUElfS0VZPzogc3RyaW5nO1xyXG5cclxuICAgICAgLy8gdGVuY2VudCBvbmx5XHJcbiAgICAgIFRFTkNFTlRfVVJMPzogc3RyaW5nO1xyXG4gICAgICBURU5DRU5UX1NFQ1JFVF9LRVk/OiBzdHJpbmc7XHJcbiAgICAgIFRFTkNFTlRfU0VDUkVUX0lEPzogc3RyaW5nO1xyXG5cclxuICAgICAgLy8gbW9vbnNob3Qgb25seVxyXG4gICAgICBNT09OU0hPVF9VUkw/OiBzdHJpbmc7XHJcbiAgICAgIE1PT05TSE9UX0FQSV9LRVk/OiBzdHJpbmc7XHJcblxyXG4gICAgICAvLyBpZmx5dGVrIG9ubHlcclxuICAgICAgSUZMWVRFS19VUkw/OiBzdHJpbmc7XHJcbiAgICAgIElGTFlURUtfQVBJX0tFWT86IHN0cmluZztcclxuICAgICAgSUZMWVRFS19BUElfU0VDUkVUPzogc3RyaW5nO1xyXG5cclxuICAgICAgREVFUFNFRUtfVVJMPzogc3RyaW5nO1xyXG4gICAgICBERUVQU0VFS19BUElfS0VZPzogc3RyaW5nO1xyXG5cclxuICAgICAgLy8geGFpIG9ubHlcclxuICAgICAgWEFJX1VSTD86IHN0cmluZztcclxuICAgICAgWEFJX0FQSV9LRVk/OiBzdHJpbmc7XHJcblxyXG4gICAgICAvLyBjaGF0Z2xtIG9ubHlcclxuICAgICAgQ0hBVEdMTV9VUkw/OiBzdHJpbmc7XHJcbiAgICAgIENIQVRHTE1fQVBJX0tFWT86IHN0cmluZztcclxuXHJcbiAgICAgIC8vIHNpbGljb25mbG93IG9ubHlcclxuICAgICAgU0lMSUNPTkZMT1dfVVJMPzogc3RyaW5nO1xyXG4gICAgICBTSUxJQ09ORkxPV19BUElfS0VZPzogc3RyaW5nO1xyXG5cclxuICAgICAgLy8gY3VzdG9tIHRlbXBsYXRlIGZvciBwcmVwcm9jZXNzaW5nIHVzZXIgaW5wdXRcclxuICAgICAgREVGQVVMVF9JTlBVVF9URU1QTEFURT86IHN0cmluZztcclxuXHJcbiAgICAgIEVOQUJMRV9NQ1A/OiBzdHJpbmc7IC8vIGVuYWJsZSBtY3AgZnVuY3Rpb25hbGl0eVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuY29uc3QgQUNDRVNTX0NPREVTID0gKGZ1bmN0aW9uIGdldEFjY2Vzc0NvZGVzKCk6IFNldDxzdHJpbmc+IHtcclxuICBjb25zdCBjb2RlID0gcHJvY2Vzcy5lbnYuQ09ERTtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGNvZGVzID0gKGNvZGU/LnNwbGl0KFwiLFwiKSA/PyBbXSlcclxuICAgICAgLmZpbHRlcigodikgPT4gISF2KVxyXG4gICAgICAubWFwKCh2KSA9PiBtZDUuaGFzaCh2LnRyaW0oKSkpO1xyXG4gICAgcmV0dXJuIG5ldyBTZXQoY29kZXMpO1xyXG4gIH0gY2F0Y2ggKGUpIHtcclxuICAgIHJldHVybiBuZXcgU2V0KCk7XHJcbiAgfVxyXG59KSgpO1xyXG5cclxuZnVuY3Rpb24gZ2V0QXBpS2V5KGtleXM/OiBzdHJpbmcpIHtcclxuICBjb25zdCBhcGlLZXlFbnZWYXIgPSBrZXlzID8/IFwiXCI7XHJcbiAgY29uc3QgYXBpS2V5cyA9IGFwaUtleUVudlZhci5zcGxpdChcIixcIikubWFwKCh2KSA9PiB2LnRyaW0oKSk7XHJcbiAgY29uc3QgcmFuZG9tSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBhcGlLZXlzLmxlbmd0aCk7XHJcbiAgY29uc3QgYXBpS2V5ID0gYXBpS2V5c1tyYW5kb21JbmRleF07XHJcbiAgaWYgKGFwaUtleSkge1xyXG4gICAgY29uc29sZS5sb2coXHJcbiAgICAgIGBbU2VydmVyIENvbmZpZ10gdXNpbmcgJHtyYW5kb21JbmRleCArIDF9IG9mICR7XHJcbiAgICAgICAgYXBpS2V5cy5sZW5ndGhcclxuICAgICAgfSBhcGkga2V5IC0gJHthcGlLZXl9YCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gYXBpS2V5O1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0U2VydmVyU2lkZUNvbmZpZyA9ICgpID0+IHtcclxuICBpZiAodHlwZW9mIHByb2Nlc3MgPT09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgIHRocm93IEVycm9yKFxyXG4gICAgICBcIltTZXJ2ZXIgQ29uZmlnXSB5b3UgYXJlIGltcG9ydGluZyBhIG5vZGVqcy1vbmx5IG1vZHVsZSBvdXRzaWRlIG9mIG5vZGVqc1wiLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGRpc2FibGVHUFQ0ID0gISFwcm9jZXNzLmVudi5ESVNBQkxFX0dQVDQ7XHJcbiAgbGV0IGN1c3RvbU1vZGVscyA9IHByb2Nlc3MuZW52LkNVU1RPTV9NT0RFTFMgPz8gXCJcIjtcclxuICBsZXQgZGVmYXVsdE1vZGVsID0gcHJvY2Vzcy5lbnYuREVGQVVMVF9NT0RFTCA/PyBcIlwiO1xyXG4gIGxldCB2aXNpb25Nb2RlbHMgPSBwcm9jZXNzLmVudi5WSVNJT05fTU9ERUxTID8/IFwiXCI7XHJcblxyXG4gIGlmIChkaXNhYmxlR1BUNCkge1xyXG4gICAgaWYgKGN1c3RvbU1vZGVscykgY3VzdG9tTW9kZWxzICs9IFwiLFwiO1xyXG4gICAgY3VzdG9tTW9kZWxzICs9IERFRkFVTFRfTU9ERUxTLmZpbHRlcigobSkgPT4gaXNHUFQ0TW9kZWwobS5uYW1lKSlcclxuICAgICAgLm1hcCgobSkgPT4gXCItXCIgKyBtLm5hbWUpXHJcbiAgICAgIC5qb2luKFwiLFwiKTtcclxuICAgIGlmIChkZWZhdWx0TW9kZWwgJiYgaXNHUFQ0TW9kZWwoZGVmYXVsdE1vZGVsKSkge1xyXG4gICAgICBkZWZhdWx0TW9kZWwgPSBcIlwiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3QgaXNTdGFiaWxpdHkgPSAhIXByb2Nlc3MuZW52LlNUQUJJTElUWV9BUElfS0VZO1xyXG5cclxuICBjb25zdCBpc0F6dXJlID0gISFwcm9jZXNzLmVudi5BWlVSRV9VUkw7XHJcbiAgY29uc3QgaXNHb29nbGUgPSAhIXByb2Nlc3MuZW52LkdPT0dMRV9BUElfS0VZO1xyXG4gIGNvbnN0IGlzQW50aHJvcGljID0gISFwcm9jZXNzLmVudi5BTlRIUk9QSUNfQVBJX0tFWTtcclxuICBjb25zdCBpc1RlbmNlbnQgPSAhIXByb2Nlc3MuZW52LlRFTkNFTlRfQVBJX0tFWTtcclxuXHJcbiAgY29uc3QgaXNCYWlkdSA9ICEhcHJvY2Vzcy5lbnYuQkFJRFVfQVBJX0tFWTtcclxuICBjb25zdCBpc0J5dGVkYW5jZSA9ICEhcHJvY2Vzcy5lbnYuQllURURBTkNFX0FQSV9LRVk7XHJcbiAgY29uc3QgaXNBbGliYWJhID0gISFwcm9jZXNzLmVudi5BTElCQUJBX0FQSV9LRVk7XHJcbiAgY29uc3QgaXNNb29uc2hvdCA9ICEhcHJvY2Vzcy5lbnYuTU9PTlNIT1RfQVBJX0tFWTtcclxuICBjb25zdCBpc0lmbHl0ZWsgPSAhIXByb2Nlc3MuZW52LklGTFlURUtfQVBJX0tFWTtcclxuICBjb25zdCBpc0RlZXBTZWVrID0gISFwcm9jZXNzLmVudi5ERUVQU0VFS19BUElfS0VZO1xyXG4gIGNvbnN0IGlzWEFJID0gISFwcm9jZXNzLmVudi5YQUlfQVBJX0tFWTtcclxuICBjb25zdCBpc0NoYXRHTE0gPSAhIXByb2Nlc3MuZW52LkNIQVRHTE1fQVBJX0tFWTtcclxuICBjb25zdCBpc1NpbGljb25GbG93ID0gISFwcm9jZXNzLmVudi5TSUxJQ09ORkxPV19BUElfS0VZO1xyXG4gIC8vIGNvbnN0IGFwaUtleUVudlZhciA9IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZID8/IFwiXCI7XHJcbiAgLy8gY29uc3QgYXBpS2V5cyA9IGFwaUtleUVudlZhci5zcGxpdChcIixcIikubWFwKCh2KSA9PiB2LnRyaW0oKSk7XHJcbiAgLy8gY29uc3QgcmFuZG9tSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBhcGlLZXlzLmxlbmd0aCk7XHJcbiAgLy8gY29uc3QgYXBpS2V5ID0gYXBpS2V5c1tyYW5kb21JbmRleF07XHJcbiAgLy8gY29uc29sZS5sb2coXHJcbiAgLy8gICBgW1NlcnZlciBDb25maWddIHVzaW5nICR7cmFuZG9tSW5kZXggKyAxfSBvZiAke2FwaUtleXMubGVuZ3RofSBhcGkga2V5YCxcclxuICAvLyApO1xyXG5cclxuICBjb25zdCBhbGxvd2VkV2ViRGF2RW5kcG9pbnRzID0gKFxyXG4gICAgcHJvY2Vzcy5lbnYuV0hJVEVfV0VCREFWX0VORFBPSU5UUyA/PyBcIlwiXHJcbiAgKS5zcGxpdChcIixcIik7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBiYXNlVXJsOiBwcm9jZXNzLmVudi5CQVNFX1VSTCxcclxuICAgIGFwaUtleTogZ2V0QXBpS2V5KHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZKSxcclxuICAgIG9wZW5haU9yZ0lkOiBwcm9jZXNzLmVudi5PUEVOQUlfT1JHX0lELFxyXG5cclxuICAgIGlzU3RhYmlsaXR5LFxyXG4gICAgc3RhYmlsaXR5VXJsOiBwcm9jZXNzLmVudi5TVEFCSUxJVFlfVVJMLFxyXG4gICAgc3RhYmlsaXR5QXBpS2V5OiBnZXRBcGlLZXkocHJvY2Vzcy5lbnYuU1RBQklMSVRZX0FQSV9LRVkpLFxyXG5cclxuICAgIGlzQXp1cmUsXHJcbiAgICBhenVyZVVybDogcHJvY2Vzcy5lbnYuQVpVUkVfVVJMLFxyXG4gICAgYXp1cmVBcGlLZXk6IGdldEFwaUtleShwcm9jZXNzLmVudi5BWlVSRV9BUElfS0VZKSxcclxuICAgIGF6dXJlQXBpVmVyc2lvbjogcHJvY2Vzcy5lbnYuQVpVUkVfQVBJX1ZFUlNJT04sXHJcblxyXG4gICAgaXNHb29nbGUsXHJcbiAgICBnb29nbGVBcGlLZXk6IGdldEFwaUtleShwcm9jZXNzLmVudi5HT09HTEVfQVBJX0tFWSksXHJcbiAgICBnb29nbGVVcmw6IHByb2Nlc3MuZW52LkdPT0dMRV9VUkwsXHJcblxyXG4gICAgaXNBbnRocm9waWMsXHJcbiAgICBhbnRocm9waWNBcGlLZXk6IGdldEFwaUtleShwcm9jZXNzLmVudi5BTlRIUk9QSUNfQVBJX0tFWSksXHJcbiAgICBhbnRocm9waWNBcGlWZXJzaW9uOiBwcm9jZXNzLmVudi5BTlRIUk9QSUNfQVBJX1ZFUlNJT04sXHJcbiAgICBhbnRocm9waWNVcmw6IHByb2Nlc3MuZW52LkFOVEhST1BJQ19VUkwsXHJcblxyXG4gICAgaXNCYWlkdSxcclxuICAgIGJhaWR1VXJsOiBwcm9jZXNzLmVudi5CQUlEVV9VUkwsXHJcbiAgICBiYWlkdUFwaUtleTogZ2V0QXBpS2V5KHByb2Nlc3MuZW52LkJBSURVX0FQSV9LRVkpLFxyXG4gICAgYmFpZHVTZWNyZXRLZXk6IHByb2Nlc3MuZW52LkJBSURVX1NFQ1JFVF9LRVksXHJcblxyXG4gICAgaXNCeXRlZGFuY2UsXHJcbiAgICBieXRlZGFuY2VBcGlLZXk6IGdldEFwaUtleShwcm9jZXNzLmVudi5CWVRFREFOQ0VfQVBJX0tFWSksXHJcbiAgICBieXRlZGFuY2VVcmw6IHByb2Nlc3MuZW52LkJZVEVEQU5DRV9VUkwsXHJcblxyXG4gICAgaXNBbGliYWJhLFxyXG4gICAgYWxpYmFiYVVybDogcHJvY2Vzcy5lbnYuQUxJQkFCQV9VUkwsXHJcbiAgICBhbGliYWJhQXBpS2V5OiBnZXRBcGlLZXkocHJvY2Vzcy5lbnYuQUxJQkFCQV9BUElfS0VZKSxcclxuXHJcbiAgICBpc1RlbmNlbnQsXHJcbiAgICB0ZW5jZW50VXJsOiBwcm9jZXNzLmVudi5URU5DRU5UX1VSTCxcclxuICAgIHRlbmNlbnRTZWNyZXRLZXk6IGdldEFwaUtleShwcm9jZXNzLmVudi5URU5DRU5UX1NFQ1JFVF9LRVkpLFxyXG4gICAgdGVuY2VudFNlY3JldElkOiBwcm9jZXNzLmVudi5URU5DRU5UX1NFQ1JFVF9JRCxcclxuXHJcbiAgICBpc01vb25zaG90LFxyXG4gICAgbW9vbnNob3RVcmw6IHByb2Nlc3MuZW52Lk1PT05TSE9UX1VSTCxcclxuICAgIG1vb25zaG90QXBpS2V5OiBnZXRBcGlLZXkocHJvY2Vzcy5lbnYuTU9PTlNIT1RfQVBJX0tFWSksXHJcblxyXG4gICAgaXNJZmx5dGVrLFxyXG4gICAgaWZseXRla1VybDogcHJvY2Vzcy5lbnYuSUZMWVRFS19VUkwsXHJcbiAgICBpZmx5dGVrQXBpS2V5OiBwcm9jZXNzLmVudi5JRkxZVEVLX0FQSV9LRVksXHJcbiAgICBpZmx5dGVrQXBpU2VjcmV0OiBwcm9jZXNzLmVudi5JRkxZVEVLX0FQSV9TRUNSRVQsXHJcblxyXG4gICAgaXNEZWVwU2VlayxcclxuICAgIGRlZXBzZWVrVXJsOiBwcm9jZXNzLmVudi5ERUVQU0VFS19VUkwsXHJcbiAgICBkZWVwc2Vla0FwaUtleTogZ2V0QXBpS2V5KHByb2Nlc3MuZW52LkRFRVBTRUVLX0FQSV9LRVkpLFxyXG5cclxuICAgIGlzWEFJLFxyXG4gICAgeGFpVXJsOiBwcm9jZXNzLmVudi5YQUlfVVJMLFxyXG4gICAgeGFpQXBpS2V5OiBnZXRBcGlLZXkocHJvY2Vzcy5lbnYuWEFJX0FQSV9LRVkpLFxyXG5cclxuICAgIGlzQ2hhdEdMTSxcclxuICAgIGNoYXRnbG1Vcmw6IHByb2Nlc3MuZW52LkNIQVRHTE1fVVJMLFxyXG4gICAgY2hhdGdsbUFwaUtleTogZ2V0QXBpS2V5KHByb2Nlc3MuZW52LkNIQVRHTE1fQVBJX0tFWSksXHJcblxyXG4gICAgY2xvdWRmbGFyZUFjY291bnRJZDogcHJvY2Vzcy5lbnYuQ0xPVURGTEFSRV9BQ0NPVU5UX0lELFxyXG4gICAgY2xvdWRmbGFyZUtWTmFtZXNwYWNlSWQ6IHByb2Nlc3MuZW52LkNMT1VERkxBUkVfS1ZfTkFNRVNQQUNFX0lELFxyXG4gICAgY2xvdWRmbGFyZUtWQXBpS2V5OiBnZXRBcGlLZXkocHJvY2Vzcy5lbnYuQ0xPVURGTEFSRV9LVl9BUElfS0VZKSxcclxuICAgIGNsb3VkZmxhcmVLVlRUTDogcHJvY2Vzcy5lbnYuQ0xPVURGTEFSRV9LVl9UVEwsXHJcblxyXG4gICAgaXNTaWxpY29uRmxvdyxcclxuICAgIHNpbGljb25GbG93VXJsOiBwcm9jZXNzLmVudi5TSUxJQ09ORkxPV19VUkwsXHJcbiAgICBzaWxpY29uRmxvd0FwaUtleTogZ2V0QXBpS2V5KHByb2Nlc3MuZW52LlNJTElDT05GTE9XX0FQSV9LRVkpLFxyXG5cclxuICAgIGd0bUlkOiBwcm9jZXNzLmVudi5HVE1fSUQsXHJcbiAgICBnYUlkOiBwcm9jZXNzLmVudi5HQV9JRCB8fCBERUZBVUxUX0dBX0lELFxyXG5cclxuICAgIG5lZWRDb2RlOiBBQ0NFU1NfQ09ERVMuc2l6ZSA+IDAsXHJcbiAgICBjb2RlOiBwcm9jZXNzLmVudi5DT0RFLFxyXG4gICAgY29kZXM6IEFDQ0VTU19DT0RFUyxcclxuXHJcbiAgICBwcm94eVVybDogcHJvY2Vzcy5lbnYuUFJPWFlfVVJMLFxyXG4gICAgaXNWZXJjZWw6ICEhcHJvY2Vzcy5lbnYuVkVSQ0VMLFxyXG5cclxuICAgIGhpZGVVc2VyQXBpS2V5OiAhIXByb2Nlc3MuZW52LkhJREVfVVNFUl9BUElfS0VZLFxyXG4gICAgZGlzYWJsZUdQVDQsXHJcbiAgICBoaWRlQmFsYW5jZVF1ZXJ5OiAhcHJvY2Vzcy5lbnYuRU5BQkxFX0JBTEFOQ0VfUVVFUlksXHJcbiAgICBkaXNhYmxlRmFzdExpbms6ICEhcHJvY2Vzcy5lbnYuRElTQUJMRV9GQVNUX0xJTkssXHJcbiAgICBjdXN0b21Nb2RlbHMsXHJcbiAgICBkZWZhdWx0TW9kZWwsXHJcbiAgICB2aXNpb25Nb2RlbHMsXHJcbiAgICBhbGxvd2VkV2ViRGF2RW5kcG9pbnRzLFxyXG4gICAgZW5hYmxlTWNwOiBwcm9jZXNzLmVudi5FTkFCTEVfTUNQID09PSBcInRydWVcIixcclxuICB9O1xyXG59O1xyXG4iXSwibmFtZXMiOlsibWQ1IiwiREVGQVVMVF9NT0RFTFMiLCJERUZBVUxUX0dBX0lEIiwiaXNHUFQ0TW9kZWwiLCJBQ0NFU1NfQ09ERVMiLCJnZXRBY2Nlc3NDb2RlcyIsImNvZGUiLCJwcm9jZXNzIiwiZW52IiwiQ09ERSIsImNvZGVzIiwic3BsaXQiLCJmaWx0ZXIiLCJ2IiwibWFwIiwiaGFzaCIsInRyaW0iLCJTZXQiLCJlIiwiZ2V0QXBpS2V5Iiwia2V5cyIsImFwaUtleUVudlZhciIsImFwaUtleXMiLCJyYW5kb21JbmRleCIsIk1hdGgiLCJmbG9vciIsInJhbmRvbSIsImxlbmd0aCIsImFwaUtleSIsImNvbnNvbGUiLCJsb2ciLCJnZXRTZXJ2ZXJTaWRlQ29uZmlnIiwiRXJyb3IiLCJkaXNhYmxlR1BUNCIsIkRJU0FCTEVfR1BUNCIsImN1c3RvbU1vZGVscyIsIkNVU1RPTV9NT0RFTFMiLCJkZWZhdWx0TW9kZWwiLCJERUZBVUxUX01PREVMIiwidmlzaW9uTW9kZWxzIiwiVklTSU9OX01PREVMUyIsIm0iLCJuYW1lIiwiam9pbiIsImlzU3RhYmlsaXR5IiwiU1RBQklMSVRZX0FQSV9LRVkiLCJpc0F6dXJlIiwiQVpVUkVfVVJMIiwiaXNHb29nbGUiLCJHT09HTEVfQVBJX0tFWSIsImlzQW50aHJvcGljIiwiQU5USFJPUElDX0FQSV9LRVkiLCJpc1RlbmNlbnQiLCJURU5DRU5UX0FQSV9LRVkiLCJpc0JhaWR1IiwiQkFJRFVfQVBJX0tFWSIsImlzQnl0ZWRhbmNlIiwiQllURURBTkNFX0FQSV9LRVkiLCJpc0FsaWJhYmEiLCJBTElCQUJBX0FQSV9LRVkiLCJpc01vb25zaG90IiwiTU9PTlNIT1RfQVBJX0tFWSIsImlzSWZseXRlayIsIklGTFlURUtfQVBJX0tFWSIsImlzRGVlcFNlZWsiLCJERUVQU0VFS19BUElfS0VZIiwiaXNYQUkiLCJYQUlfQVBJX0tFWSIsImlzQ2hhdEdMTSIsIkNIQVRHTE1fQVBJX0tFWSIsImlzU2lsaWNvbkZsb3ciLCJTSUxJQ09ORkxPV19BUElfS0VZIiwiYWxsb3dlZFdlYkRhdkVuZHBvaW50cyIsIldISVRFX1dFQkRBVl9FTkRQT0lOVFMiLCJiYXNlVXJsIiwiQkFTRV9VUkwiLCJPUEVOQUlfQVBJX0tFWSIsIm9wZW5haU9yZ0lkIiwiT1BFTkFJX09SR19JRCIsInN0YWJpbGl0eVVybCIsIlNUQUJJTElUWV9VUkwiLCJzdGFiaWxpdHlBcGlLZXkiLCJhenVyZVVybCIsImF6dXJlQXBpS2V5IiwiQVpVUkVfQVBJX0tFWSIsImF6dXJlQXBpVmVyc2lvbiIsIkFaVVJFX0FQSV9WRVJTSU9OIiwiZ29vZ2xlQXBpS2V5IiwiZ29vZ2xlVXJsIiwiR09PR0xFX1VSTCIsImFudGhyb3BpY0FwaUtleSIsImFudGhyb3BpY0FwaVZlcnNpb24iLCJBTlRIUk9QSUNfQVBJX1ZFUlNJT04iLCJhbnRocm9waWNVcmwiLCJBTlRIUk9QSUNfVVJMIiwiYmFpZHVVcmwiLCJCQUlEVV9VUkwiLCJiYWlkdUFwaUtleSIsImJhaWR1U2VjcmV0S2V5IiwiQkFJRFVfU0VDUkVUX0tFWSIsImJ5dGVkYW5jZUFwaUtleSIsImJ5dGVkYW5jZVVybCIsIkJZVEVEQU5DRV9VUkwiLCJhbGliYWJhVXJsIiwiQUxJQkFCQV9VUkwiLCJhbGliYWJhQXBpS2V5IiwidGVuY2VudFVybCIsIlRFTkNFTlRfVVJMIiwidGVuY2VudFNlY3JldEtleSIsIlRFTkNFTlRfU0VDUkVUX0tFWSIsInRlbmNlbnRTZWNyZXRJZCIsIlRFTkNFTlRfU0VDUkVUX0lEIiwibW9vbnNob3RVcmwiLCJNT09OU0hPVF9VUkwiLCJtb29uc2hvdEFwaUtleSIsImlmbHl0ZWtVcmwiLCJJRkxZVEVLX1VSTCIsImlmbHl0ZWtBcGlLZXkiLCJpZmx5dGVrQXBpU2VjcmV0IiwiSUZMWVRFS19BUElfU0VDUkVUIiwiZGVlcHNlZWtVcmwiLCJERUVQU0VFS19VUkwiLCJkZWVwc2Vla0FwaUtleSIsInhhaVVybCIsIlhBSV9VUkwiLCJ4YWlBcGlLZXkiLCJjaGF0Z2xtVXJsIiwiQ0hBVEdMTV9VUkwiLCJjaGF0Z2xtQXBpS2V5IiwiY2xvdWRmbGFyZUFjY291bnRJZCIsIkNMT1VERkxBUkVfQUNDT1VOVF9JRCIsImNsb3VkZmxhcmVLVk5hbWVzcGFjZUlkIiwiQ0xPVURGTEFSRV9LVl9OQU1FU1BBQ0VfSUQiLCJjbG91ZGZsYXJlS1ZBcGlLZXkiLCJDTE9VREZMQVJFX0tWX0FQSV9LRVkiLCJjbG91ZGZsYXJlS1ZUVEwiLCJDTE9VREZMQVJFX0tWX1RUTCIsInNpbGljb25GbG93VXJsIiwiU0lMSUNPTkZMT1dfVVJMIiwic2lsaWNvbkZsb3dBcGlLZXkiLCJndG1JZCIsIkdUTV9JRCIsImdhSWQiLCJHQV9JRCIsIm5lZWRDb2RlIiwic2l6ZSIsInByb3h5VXJsIiwiUFJPWFlfVVJMIiwiaXNWZXJjZWwiLCJWRVJDRUwiLCJoaWRlVXNlckFwaUtleSIsIkhJREVfVVNFUl9BUElfS0VZIiwiaGlkZUJhbGFuY2VRdWVyeSIsIkVOQUJMRV9CQUxBTkNFX1FVRVJZIiwiZGlzYWJsZUZhc3RMaW5rIiwiRElTQUJMRV9GQVNUX0xJTksiLCJlbmFibGVNY3AiLCJFTkFCTEVfTUNQIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./app/config/server.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(action-browser)/./app/constant.ts":
|
|
|
/*!*************************!*\
|
|
|
!*** ./app/constant.ts ***!
|
|
|
\*************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ACCESS_CODE_PREFIX: () => (/* binding */ ACCESS_CODE_PREFIX),\n/* harmony export */ ALIBABA_BASE_URL: () => (/* binding */ ALIBABA_BASE_URL),\n/* harmony export */ ANTHROPIC_BASE_URL: () => (/* binding */ ANTHROPIC_BASE_URL),\n/* harmony export */ Alibaba: () => (/* binding */ Alibaba),\n/* harmony export */ Anthropic: () => (/* binding */ Anthropic),\n/* harmony export */ ApiPath: () => (/* binding */ ApiPath),\n/* harmony export */ Azure: () => (/* binding */ Azure),\n/* harmony export */ BAIDU_BASE_URL: () => (/* binding */ BAIDU_BASE_URL),\n/* harmony export */ BAIDU_OATUH_URL: () => (/* binding */ BAIDU_OATUH_URL),\n/* harmony export */ BYTEDANCE_BASE_URL: () => (/* binding */ BYTEDANCE_BASE_URL),\n/* harmony export */ Baidu: () => (/* binding */ Baidu),\n/* harmony export */ ByteDance: () => (/* binding */ ByteDance),\n/* harmony export */ CACHE_URL_PREFIX: () => (/* binding */ CACHE_URL_PREFIX),\n/* harmony export */ CHATGLM_BASE_URL: () => (/* binding */ CHATGLM_BASE_URL),\n/* harmony export */ CHAT_PAGE_SIZE: () => (/* binding */ CHAT_PAGE_SIZE),\n/* harmony export */ ChatGLM: () => (/* binding */ ChatGLM),\n/* harmony export */ DEEPSEEK_BASE_URL: () => (/* binding */ DEEPSEEK_BASE_URL),\n/* harmony export */ DEEPSEEK_SUMMARIZE_MODEL: () => (/* binding */ DEEPSEEK_SUMMARIZE_MODEL),\n/* harmony export */ DEFAULT_GA_ID: () => (/* binding */ DEFAULT_GA_ID),\n/* harmony export */ DEFAULT_INPUT_TEMPLATE: () => (/* binding */ DEFAULT_INPUT_TEMPLATE),\n/* harmony export */ DEFAULT_MODELS: () => (/* binding */ DEFAULT_MODELS),\n/* harmony export */ DEFAULT_SIDEBAR_WIDTH: () => (/* binding */ DEFAULT_SIDEBAR_WIDTH),\n/* harmony export */ DEFAULT_SYSTEM_TEMPLATE: () => (/* binding */ DEFAULT_SYSTEM_TEMPLATE),\n/* harmony export */ DEFAULT_TTS_ENGINE: () => (/* binding */ DEFAULT_TTS_ENGINE),\n/* harmony export */ DEFAULT_TTS_ENGINES: () => (/* binding */ DEFAULT_TTS_ENGINES),\n/* harmony export */ DEFAULT_TTS_MODEL: () => (/* binding */ DEFAULT_TTS_MODEL),\n/* harmony export */ DEFAULT_TTS_MODELS: () => (/* binding */ DEFAULT_TTS_MODELS),\n/* harmony export */ DEFAULT_TTS_VOICE: () => (/* binding */ DEFAULT_TTS_VOICE),\n/* harmony export */ DEFAULT_TTS_VOICES: () => (/* binding */ DEFAULT_TTS_VOICES),\n/* harmony export */ DeepSeek: () => (/* binding */ DeepSeek),\n/* harmony export */ EXCLUDE_VISION_MODEL_REGEXES: () => (/* binding */ EXCLUDE_VISION_MODEL_REGEXES),\n/* harmony export */ EXPORT_MESSAGE_CLASS_NAME: () => (/* binding */ EXPORT_MESSAGE_CLASS_NAME),\n/* harmony export */ FETCH_COMMIT_URL: () => (/* binding */ FETCH_COMMIT_URL),\n/* harmony export */ FETCH_TAG_URL: () => (/* binding */ FETCH_TAG_URL),\n/* harmony export */ FileName: () => (/* binding */ FileName),\n/* harmony export */ GEMINI_BASE_URL: () => (/* binding */ GEMINI_BASE_URL),\n/* harmony export */ GEMINI_SUMMARIZE_MODEL: () => (/* binding */ GEMINI_SUMMARIZE_MODEL),\n/* harmony export */ Google: () => (/* binding */ Google),\n/* harmony export */ GoogleSafetySettingsThreshold: () => (/* binding */ GoogleSafetySettingsThreshold),\n/* harmony export */ IFLYTEK_BASE_URL: () => (/* binding */ IFLYTEK_BASE_URL),\n/* harmony export */ ISSUE_URL: () => (/* binding */ ISSUE_URL),\n/* harmony export */ Iflytek: () => (/* binding */ Iflytek),\n/* harmony export */ KnowledgeCutOffDate: () => (/* binding */ KnowledgeCutOffDate),\n/* harmony export */ LAST_INPUT_KEY: () => (/* binding */ LAST_INPUT_KEY),\n/* harmony export */ MAX_RENDER_MSG_COUNT: () => (/* binding */ MAX_RENDER_MSG_COUNT),\n/* harmony export */ MAX_SIDEBAR_WIDTH: () => (/* binding */ MAX_SIDEBAR_WIDTH),\n/* harmony export */ MCP_SYSTEM_TEMPLATE: () => (/* binding */ MCP_SYSTEM_TEMPLATE),\n/* harmony export */ MCP_TOOLS_TEMPLATE: () => (/* binding */ MCP_TOOLS_TEMPLATE),\n/* harmony export */ MIN_SIDEBAR_WIDTH: () => (/* binding */ MIN_SIDEBAR_WIDTH),\n/* harmony export */ MOONSHOT_BASE_URL: () => (/* binding */ MOONSHOT_BASE_URL),\n/* harmony export */ ModelProvider: () => (/* binding */ ModelProvider),\n/* harmony export */ Moonshot: () => (/* binding */ Moonshot),\n/* harmony export */ NARROW_SIDEBAR_WIDTH: () => (/* binding */ NARROW_SIDEBAR_WIDTH),\n/* harmony export */ OPENAI_BASE_URL: () => (/* binding */ OPENAI_BASE_URL),\n/* harmony export */ OWNER: () => (/* binding */ OWNER),\n/* harmony export */ OpenaiPath: () => (/* binding */ OpenaiPath),\n/* harmony export */ PLUGINS_REPO_URL: () => (/* binding */ PLUGINS_REPO_URL),\n/* harmony export */ Path: () => (/* binding */ Path),\n/* harmony export */ RELEASE_URL: () => (/* binding */ RELEASE_URL),\n/* harmony export */ REPO: () => (/* binding */ REPO),\n/* harmony export */ REPO_URL: () => (/* binding */ REPO_URL),\n/* harmony export */ REQUEST_TIMEOUT_MS: () => (/* binding */ REQUEST_TIMEOUT_MS),\n/* harmony export */ REQUEST_TIMEOUT_MS_FOR_THINKING: () => (/* binding */ REQUEST_TIMEOUT_MS_FOR_THINKING),\n/* harmony export */ RUNTIME_CONFIG_DOM: () => (/* binding */ RUNTIME_CONFIG_DOM),\n/* harmony export */ SAAS_CHAT_URL: () => (/* binding */ SAAS_CHAT_URL),\n/* harmony export */ SAAS_CHAT_UTM_URL: () => (/* binding */ SAAS_CHAT_UTM_URL),\n/* harmony export */ SILICONFLOW_BASE_URL: () => (/* binding */ SILICONFLOW_BASE_URL),\n/* harmony export */ STABILITY_BASE_URL: () => (/* binding */ STABILITY_BASE_URL),\n/* harmony export */ STORAGE_KEY: () => (/* binding */ STORAGE_KEY),\n/* harmony export */ SUMMARIZE_MODEL: () => (/* binding */ SUMMARIZE_MODEL),\n/* harmony export */ ServiceProvider: () => (/* binding */ ServiceProvider),\n/* harmony export */ SiliconFlow: () => (/* binding */ SiliconFlow),\n/* harmony export */ SlotID: () => (/* binding */ SlotID),\n/* harmony export */ Stability: () => (/* binding */ Stability),\n/* harmony export */ StoreKey: () => (/* binding */ StoreKey),\n/* harmony export */ TENCENT_BASE_URL: () => (/* binding */ TENCENT_BASE_URL),\n/* harmony export */ Tencent: () => (/* binding */ Tencent),\n/* harmony export */ UNFINISHED_INPUT: () => (/* binding */ UNFINISHED_INPUT),\n/* harmony export */ UPDATE_URL: () => (/* binding */ UPDATE_URL),\n/* harmony export */ UPLOAD_URL: () => (/* binding */ UPLOAD_URL),\n/* harmony export */ VISION_MODEL_REGEXES: () => (/* binding */ VISION_MODEL_REGEXES),\n/* harmony export */ XAI: () => (/* binding */ XAI),\n/* harmony export */ XAI_BASE_URL: () => (/* binding */ XAI_BASE_URL),\n/* harmony export */ internalAllowedWebDavEndpoints: () => (/* binding */ internalAllowedWebDavEndpoints)\n/* harmony export */ });\nconst OWNER = \"ChatGPTNextWeb\";\nconst REPO = \"ChatGPT-Next-Web\";\nconst REPO_URL = `https://github.com/${OWNER}/${REPO}`;\nconst PLUGINS_REPO_URL = `https://github.com/${OWNER}/NextChat-Awesome-Plugins`;\nconst ISSUE_URL = `https://github.com/${OWNER}/${REPO}/issues`;\nconst UPDATE_URL = `${REPO_URL}#keep-updated`;\nconst RELEASE_URL = `${REPO_URL}/releases`;\nconst FETCH_COMMIT_URL = `https://api.github.com/repos/${OWNER}/${REPO}/commits?per_page=1`;\nconst FETCH_TAG_URL = `https://api.github.com/repos/${OWNER}/${REPO}/tags?per_page=1`;\nconst RUNTIME_CONFIG_DOM = \"danger-runtime-config\";\nconst STABILITY_BASE_URL = \"https://api.stability.ai\";\nconst OPENAI_BASE_URL = \"https://api.openai.com\";\nconst ANTHROPIC_BASE_URL = \"https://api.anthropic.com\";\nconst GEMINI_BASE_URL = \"https://generativelanguage.googleapis.com/\";\nconst BAIDU_BASE_URL = \"https://aip.baidubce.com\";\nconst BAIDU_OATUH_URL = `${BAIDU_BASE_URL}/oauth/2.0/token`;\nconst BYTEDANCE_BASE_URL = \"https://ark.cn-beijing.volces.com\";\nconst ALIBABA_BASE_URL = \"https://dashscope.aliyuncs.com/api/\";\nconst TENCENT_BASE_URL = \"https://hunyuan.tencentcloudapi.com\";\nconst MOONSHOT_BASE_URL = \"https://api.moonshot.cn\";\nconst IFLYTEK_BASE_URL = \"https://spark-api-open.xf-yun.com\";\nconst DEEPSEEK_BASE_URL = \"https://api.deepseek.com\";\nconst XAI_BASE_URL = \"https://api.x.ai\";\nconst CHATGLM_BASE_URL = \"https://open.bigmodel.cn\";\nconst SILICONFLOW_BASE_URL = \"https://api.siliconflow.cn\";\nconst CACHE_URL_PREFIX = \"/api/cache\";\nconst UPLOAD_URL = `${CACHE_URL_PREFIX}/upload`;\nvar Path;\n(function(Path) {\n Path[\"Home\"] = \"/\";\n Path[\"Chat\"] = \"/chat\";\n Path[\"Settings\"] = \"/settings\";\n Path[\"NewChat\"] = \"/new-chat\";\n Path[\"Masks\"] = \"/masks\";\n Path[\"Plugins\"] = \"/plugins\";\n Path[\"Auth\"] = \"/auth\";\n Path[\"Sd\"] = \"/sd\";\n Path[\"SdNew\"] = \"/sd-new\";\n Path[\"Artifacts\"] = \"/artifacts\";\n Path[\"SearchChat\"] = \"/search-chat\";\n Path[\"McpMarket\"] = \"/mcp-market\";\n})(Path || (Path = {}));\nvar ApiPath;\n(function(ApiPath) {\n ApiPath[\"Cors\"] = \"\";\n ApiPath[\"Azure\"] = \"/api/azure\";\n ApiPath[\"OpenAI\"] = \"/api/openai\";\n ApiPath[\"Anthropic\"] = \"/api/anthropic\";\n ApiPath[\"Google\"] = \"/api/google\";\n ApiPath[\"Baidu\"] = \"/api/baidu\";\n ApiPath[\"ByteDance\"] = \"/api/bytedance\";\n ApiPath[\"Alibaba\"] = \"/api/alibaba\";\n ApiPath[\"Tencent\"] = \"/api/tencent\";\n ApiPath[\"Moonshot\"] = \"/api/moonshot\";\n ApiPath[\"Iflytek\"] = \"/api/iflytek\";\n ApiPath[\"Stability\"] = \"/api/stability\";\n ApiPath[\"Artifacts\"] = \"/api/artifacts\";\n ApiPath[\"XAI\"] = \"/api/xai\";\n ApiPath[\"ChatGLM\"] = \"/api/chatglm\";\n ApiPath[\"DeepSeek\"] = \"/api/deepseek\";\n ApiPath[\"SiliconFlow\"] = \"/api/siliconflow\";\n})(ApiPath || (ApiPath = {}));\nvar SlotID;\n(function(SlotID) {\n SlotID[\"AppBody\"] = \"app-body\";\n SlotID[\"CustomModel\"] = \"custom-model\";\n})(SlotID || (SlotID = {}));\nvar FileName;\n(function(FileName) {\n FileName[\"Masks\"] = \"masks.json\";\n FileName[\"Prompts\"] = \"prompts.json\";\n})(FileName || (FileName = {}));\nvar StoreKey;\n(function(StoreKey) {\n StoreKey[\"Chat\"] = \"chat-next-web-store\";\n StoreKey[\"Plugin\"] = \"chat-next-web-plugin\";\n StoreKey[\"Access\"] = \"access-control\";\n StoreKey[\"Config\"] = \"app-config\";\n StoreKey[\"Mask\"] = \"mask-store\";\n StoreKey[\"Prompt\"] = \"prompt-store\";\n StoreKey[\"Update\"] = \"chat-update\";\n StoreKey[\"Sync\"] = \"sync\";\n StoreKey[\"SdList\"] = \"sd-list\";\n StoreKey[\"Mcp\"] = \"mcp-store\";\n})(StoreKey || (StoreKey = {}));\nconst DEFAULT_SIDEBAR_WIDTH = 300;\nconst MAX_SIDEBAR_WIDTH = 500;\nconst MIN_SIDEBAR_WIDTH = 230;\nconst NARROW_SIDEBAR_WIDTH = 100;\nconst ACCESS_CODE_PREFIX = \"nk-\";\nconst LAST_INPUT_KEY = \"last-input\";\nconst UNFINISHED_INPUT = (id)=>\"unfinished-input-\" + id;\nconst STORAGE_KEY = \"chatgpt-next-web\";\nconst REQUEST_TIMEOUT_MS = 60000;\nconst REQUEST_TIMEOUT_MS_FOR_THINKING = REQUEST_TIMEOUT_MS * 5;\nconst EXPORT_MESSAGE_CLASS_NAME = \"export-markdown\";\nvar ServiceProvider;\n(function(ServiceProvider) {\n ServiceProvider[\"OpenAI\"] = \"OpenAI\";\n ServiceProvider[\"Azure\"] = \"Azure\";\n ServiceProvider[\"Google\"] = \"Google\";\n ServiceProvider[\"Anthropic\"] = \"Anthropic\";\n ServiceProvider[\"Baidu\"] = \"Baidu\";\n ServiceProvider[\"ByteDance\"] = \"ByteDance\";\n ServiceProvider[\"Alibaba\"] = \"Alibaba\";\n ServiceProvider[\"Tencent\"] = \"Tencent\";\n ServiceProvider[\"Moonshot\"] = \"Moonshot\";\n ServiceProvider[\"Stability\"] = \"Stability\";\n ServiceProvider[\"Iflytek\"] = \"Iflytek\";\n ServiceProvider[\"XAI\"] = \"XAI\";\n ServiceProvider[\"ChatGLM\"] = \"ChatGLM\";\n ServiceProvider[\"DeepSeek\"] = \"DeepSeek\";\n ServiceProvider[\"SiliconFlow\"] = \"SiliconFlow\";\n})(ServiceProvider || (ServiceProvider = {}));\nvar GoogleSafetySettingsThreshold;\n(function(GoogleSafetySettingsThreshold) {\n GoogleSafetySettingsThreshold[\"BLOCK_NONE\"] = \"BLOCK_NONE\";\n GoogleSafetySettingsThreshold[\"BLOCK_ONLY_HIGH\"] = \"BLOCK_ONLY_HIGH\";\n GoogleSafetySettingsThreshold[\"BLOCK_MEDIUM_AND_ABOVE\"] = \"BLOCK_MEDIUM_AND_ABOVE\";\n GoogleSafetySettingsThreshold[\"BLOCK_LOW_AND_ABOVE\"] = \"BLOCK_LOW_AND_ABOVE\";\n})(GoogleSafetySettingsThreshold || (GoogleSafetySettingsThreshold = {}));\nvar ModelProvider;\n(function(ModelProvider) {\n ModelProvider[\"Stability\"] = \"Stability\";\n ModelProvider[\"GPT\"] = \"GPT\";\n ModelProvider[\"GeminiPro\"] = \"GeminiPro\";\n ModelProvider[\"Claude\"] = \"Claude\";\n ModelProvider[\"Ernie\"] = \"Ernie\";\n ModelProvider[\"Doubao\"] = \"Doubao\";\n ModelProvider[\"Qwen\"] = \"Qwen\";\n ModelProvider[\"Hunyuan\"] = \"Hunyuan\";\n ModelProvider[\"Moonshot\"] = \"Moonshot\";\n ModelProvider[\"Iflytek\"] = \"Iflytek\";\n ModelProvider[\"XAI\"] = \"XAI\";\n ModelProvider[\"ChatGLM\"] = \"ChatGLM\";\n ModelProvider[\"DeepSeek\"] = \"DeepSeek\";\n ModelProvider[\"SiliconFlow\"] = \"SiliconFlow\";\n})(ModelProvider || (ModelProvider = {}));\nconst Stability = {\n GeneratePath: \"v2beta/stable-image/generate\",\n ExampleEndpoint: \"https://api.stability.ai\"\n};\nconst Anthropic = {\n ChatPath: \"v1/messages\",\n ChatPath1: \"v1/complete\",\n ExampleEndpoint: \"https://api.anthropic.com\",\n Vision: \"2023-06-01\"\n};\nconst OpenaiPath = {\n ChatPath: \"v1/chat/completions\",\n SpeechPath: \"v1/audio/speech\",\n ImagePath: \"v1/images/generations\",\n UsagePath: \"dashboard/billing/usage\",\n SubsPath: \"dashboard/billing/subscription\",\n ListModelPath: \"v1/models\"\n};\nconst Azure = {\n ChatPath: (deployName, apiVersion)=>`deployments/${deployName}/chat/completions?api-version=${apiVersion}`,\n // https://<your_resource_name>.openai.azure.com/openai/deployments/<your_deployment_name>/images/generations?api-version=<api_version>\n ImagePath: (deployName, apiVersion)=>`deployments/${deployName}/images/generations?api-version=${apiVersion}`,\n ExampleEndpoint: \"https://{resource-url}/openai\"\n};\nconst Google = {\n ExampleEndpoint: \"https://generativelanguage.googleapis.com/\",\n ChatPath: (modelName)=>`v1beta/models/${modelName}:streamGenerateContent`\n};\nconst Baidu = {\n ExampleEndpoint: BAIDU_BASE_URL,\n ChatPath: (modelName)=>{\n let endpoint = modelName;\n if (modelName === \"ernie-4.0-8k\") {\n endpoint = \"completions_pro\";\n }\n if (modelName === \"ernie-4.0-8k-preview-0518\") {\n endpoint = \"completions_adv_pro\";\n }\n if (modelName === \"ernie-3.5-8k\") {\n endpoint = \"completions\";\n }\n if (modelName === \"ernie-speed-8k\") {\n endpoint = \"ernie_speed\";\n }\n return `rpc/2.0/ai_custom/v1/wenxinworkshop/chat/${endpoint}`;\n }\n};\nconst ByteDance = {\n ExampleEndpoint: \"https://ark.cn-beijing.volces.com/api/\",\n ChatPath: \"api/v3/chat/completions\"\n};\nconst Alibaba = {\n ExampleEndpoint: ALIBABA_BASE_URL,\n ChatPath: \"v1/services/aigc/text-generation/generation\"\n};\nconst Tencent = {\n ExampleEndpoint: TENCENT_BASE_URL\n};\nconst Moonshot = {\n ExampleEndpoint: MOONSHOT_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst Iflytek = {\n ExampleEndpoint: IFLYTEK_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst DeepSeek = {\n ExampleEndpoint: DEEPSEEK_BASE_URL,\n ChatPath: \"chat/completions\"\n};\nconst XAI = {\n ExampleEndpoint: XAI_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst ChatGLM = {\n ExampleEndpoint: CHATGLM_BASE_URL,\n ChatPath: \"api/paas/v4/chat/completions\",\n ImagePath: \"api/paas/v4/images/generations\",\n VideoPath: \"api/paas/v4/videos/generations\"\n};\nconst SiliconFlow = {\n ExampleEndpoint: SILICONFLOW_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst DEFAULT_INPUT_TEMPLATE = `{{input}}`; // input / time / model / lang\n// export const DEFAULT_SYSTEM_TEMPLATE = `\n// You are ChatGPT, a large language model trained by {{ServiceProvider}}.\n// Knowledge cutoff: {{cutoff}}\n// Current model: {{model}}\n// Current time: {{time}}\n// Latex inline: $x^2$\n// Latex block: $$e=mc^2$$\n// `;\nconst DEFAULT_SYSTEM_TEMPLATE = `\r\nYou are ChatGPT, a large language model trained by {{ServiceProvider}}.\r\nKnowledge cutoff: {{cutoff}}\r\nCurrent model: {{model}}\r\nCurrent time: {{time}}\r\nLatex inline: \\\\(x^2\\\\) \r\nLatex block: $$e=mc^2$$\r\n`;\nconst MCP_TOOLS_TEMPLATE = `\r\n[clientId]\r\n{{ clientId }}\r\n[tools]\r\n{{ tools }}\r\n`;\nconst MCP_SYSTEM_TEMPLATE = `\r\nYou are an AI assistant with access to system tools. Your role is to help users by combining natural language understanding with tool operations when needed.\r\n\r\n1. AVAILABLE TOOLS:\r\n{{ MCP_TOOLS }}\r\n\r\n2. WHEN TO USE TOOLS:\r\n - ALWAYS USE TOOLS when they can help answer user questions\r\n - DO NOT just describe what you could do - TAKE ACTION immediately\r\n - If you're not sure whether to use a tool, USE IT\r\n - Common triggers for tool use:\r\n * Questions about files or directories\r\n * Requests to check, list, or manipulate system resources\r\n * Any query that can be answered with available tools\r\n\r\n3. HOW TO USE TOOLS:\r\n A. Tool Call Format:\r\n - Use markdown code blocks with format: \\`\\`\\`json:mcp:{clientId}\\`\\`\\`\r\n - Always include:\r\n * method: \"tools/call\"(Only this method is supported)\r\n * params: \r\n - name: must match an available primitive name\r\n - arguments: required parameters for the primitive\r\n\r\n B. Response Format:\r\n - Tool responses will come as user messages\r\n - Format: \\`\\`\\`json:mcp-response:{clientId}\\`\\`\\`\r\n - Wait for response before making another tool call\r\n\r\n C. Important Rules:\r\n - Only use tools/call method\r\n - Only ONE tool call per message\r\n - ALWAYS TAKE ACTION instead of just describing what you could do\r\n - Include the correct clientId in code block language tag\r\n - Verify arguments match the primitive's requirements\r\n\r\n4. INTERACTION FLOW:\r\n A. When user makes a request:\r\n - IMMEDIATELY use appropriate tool if available\r\n - DO NOT ask if user wants you to use the tool\r\n - DO NOT just describe what you could do\r\n B. After receiving tool response:\r\n - Explain results clearly\r\n - Take next appropriate action if needed\r\n C. If tools fail:\r\n - Explain the error\r\n - Try alternative approach immediately\r\n\r\n5. EXAMPLE INTERACTION:\r\n\r\n good example:\r\n\r\n \\`\\`\\`json:mcp:filesystem\r\n {\r\n \"method\": \"tools/call\",\r\n \"params\": {\r\n \"name\": \"list_allowed_directories\",\r\n \"arguments\": {}\r\n }\r\n }\r\n \\`\\`\\`\"\r\n\r\n\r\n \\`\\`\\`json:mcp-response:filesystem\r\n {\r\n \"method\": \"tools/call\",\r\n \"params\": {\r\n \"name\": \"write_file\",\r\n \"arguments\": {\r\n \"path\": \"/Users/river/dev/nextchat/test/joke.txt\",\r\n \"content\": \"为什么数学书总是感到忧伤?因为它有太多的问题。\"\r\n }\r\n }\r\n }\r\n\\`\\`\\`\r\n\r\n follwing is the wrong! mcp json example:\r\n\r\n \\`\\`\\`json:mcp:filesystem\r\n {\r\n \"method\": \"write_file\",\r\n \"params\": {\r\n \"path\": \"NextChat_Information.txt\",\r\n \"content\": \"1\"\r\n }\r\n }\r\n \\`\\`\\`\r\n\r\n This is wrong because the method is not tools/call.\r\n \r\n \\`\\`\\`{\r\n \"method\": \"search_repositories\",\r\n \"params\": {\r\n \"query\": \"2oeee\"\r\n }\r\n}\r\n \\`\\`\\`\r\n\r\n This is wrong because the method is not tools/call.!!!!!!!!!!!\r\n\r\n the right format is:\r\n \\`\\`\\`json:mcp:filesystem\r\n {\r\n \"method\": \"tools/call\",\r\n \"params\": {\r\n \"name\": \"search_repositories\",\r\n \"arguments\": {\r\n \"query\": \"2oeee\"\r\n }\r\n }\r\n }\r\n \\`\\`\\`\r\n \r\n please follow the format strictly ONLY use tools/call method!!!!!!!!!!!\r\n \r\n`;\nconst SUMMARIZE_MODEL = \"gpt-4o-mini\";\nconst GEMINI_SUMMARIZE_MODEL = \"gemini-pro\";\nconst DEEPSEEK_SUMMARIZE_MODEL = \"deepseek-ai/DeepSeek-V3\";\nconst KnowledgeCutOffDate = {\n default: \"2021-09\",\n \"gpt-4-turbo\": \"2023-12\",\n \"gpt-4-turbo-2024-04-09\": \"2023-12\",\n \"gpt-4-turbo-preview\": \"2023-12\",\n \"gpt-4o\": \"2023-10\",\n \"gpt-4o-2024-05-13\": \"2023-10\",\n \"gpt-4o-2024-08-06\": \"2023-10\",\n \"gpt-4o-2024-11-20\": \"2023-10\",\n \"chatgpt-4o-latest\": \"2023-10\",\n \"gpt-4o-mini\": \"2023-10\",\n \"gpt-4o-mini-2024-07-18\": \"2023-10\",\n \"gpt-4-vision-preview\": \"2023-04\",\n \"o1-mini-2024-09-12\": \"2023-10\",\n \"o1-mini\": \"2023-10\",\n \"o1-preview-2024-09-12\": \"2023-10\",\n \"o1-preview\": \"2023-10\",\n \"o1-2024-12-17\": \"2023-10\",\n o1: \"2023-10\",\n \"o3-mini-2025-01-31\": \"2023-10\",\n \"o3-mini\": \"2023-10\",\n // After improvements,\n // it's now easier to add \"KnowledgeCutOffDate\" instead of stupid hardcoding it, as was done previously.\n \"gemini-pro\": \"2023-12\",\n \"gemini-pro-vision\": \"2023-12\",\n \"deepseek-chat\": \"2024-07\",\n \"deepseek-coder\": \"2024-07\"\n};\nconst DEFAULT_TTS_ENGINE = \"OpenAI-TTS\";\nconst DEFAULT_TTS_ENGINES = [\n \"OpenAI-TTS\",\n \"Edge-TTS\"\n];\nconst DEFAULT_TTS_MODEL = \"tts-1\";\nconst DEFAULT_TTS_VOICE = \"alloy\";\nconst DEFAULT_TTS_MODELS = [\n \"tts-1\",\n \"tts-1-hd\"\n];\nconst DEFAULT_TTS_VOICES = [\n \"alloy\",\n \"echo\",\n \"fable\",\n \"onyx\",\n \"nova\",\n \"shimmer\"\n];\nconst VISION_MODEL_REGEXES = [\n /vision/,\n /gpt-4o/,\n /claude-3/,\n /gemini-1\\.5/,\n /gemini-exp/,\n /gemini-2\\.0/,\n /learnlm/,\n /qwen-vl/,\n /qwen2-vl/,\n /gpt-4-turbo(?!.*preview)/,\n /^dall-e-3$/,\n /glm-4v/\n];\nconst EXCLUDE_VISION_MODEL_REGEXES = [\n /claude-3-5-haiku-20241022/\n];\nconst openaiModels = [];\nconst googleModels = [];\nconst anthropicModels = [];\nconst baiduModels = [];\nconst bytedanceModels = [];\nconst alibabaModes = [];\nconst tencentModels = [];\nconst moonshotModes = [];\nconst iflytekModels = [];\nconst deepseekModels = [];\nconst xAIModes = [];\nconst chatglmModels = [];\nconst siliconflowModels = [\n \"deepseek-ai/DeepSeek-V3\",\n \"deepseek-ai/DeepSeek-R1\"\n];\nlet seq = 1000; // 内置的模型序号生成器从1000开始\nconst DEFAULT_MODELS = [\n ...openaiModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"openai\",\n providerName: \"OpenAI\",\n providerType: \"openai\",\n sorted: 1\n }\n })),\n ...openaiModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"azure\",\n providerName: \"Azure\",\n providerType: \"azure\",\n sorted: 2\n }\n })),\n ...googleModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"google\",\n providerName: \"Google\",\n providerType: \"google\",\n sorted: 3\n }\n })),\n ...anthropicModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"anthropic\",\n providerName: \"Anthropic\",\n providerType: \"anthropic\",\n sorted: 4\n }\n })),\n ...baiduModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"baidu\",\n providerName: \"Baidu\",\n providerType: \"baidu\",\n sorted: 5\n }\n })),\n ...bytedanceModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"bytedance\",\n providerName: \"ByteDance\",\n providerType: \"bytedance\",\n sorted: 6\n }\n })),\n ...alibabaModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"alibaba\",\n providerName: \"Alibaba\",\n providerType: \"alibaba\",\n sorted: 7\n }\n })),\n ...tencentModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"tencent\",\n providerName: \"Tencent\",\n providerType: \"tencent\",\n sorted: 8\n }\n })),\n ...moonshotModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"moonshot\",\n providerName: \"Moonshot\",\n providerType: \"moonshot\",\n sorted: 9\n }\n })),\n ...iflytekModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"iflytek\",\n providerName: \"Iflytek\",\n providerType: \"iflytek\",\n sorted: 10\n }\n })),\n ...xAIModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"xai\",\n providerName: \"XAI\",\n providerType: \"xai\",\n sorted: 11\n }\n })),\n ...chatglmModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"chatglm\",\n providerName: \"ChatGLM\",\n providerType: \"chatglm\",\n sorted: 12\n }\n })),\n ...deepseekModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"deepseek\",\n providerName: \"DeepSeek\",\n providerType: \"deepseek\",\n sorted: 13\n }\n })),\n ...siliconflowModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"siliconflow\",\n providerName: \"SiliconFlow\",\n providerType: \"siliconflow\",\n sorted: 14\n }\n }))\n];\nconst CHAT_PAGE_SIZE = 15;\nconst MAX_RENDER_MSG_COUNT = 45;\n// some famous webdav endpoints\nconst internalAllowedWebDavEndpoints = [\n \"https://dav.jianguoyun.com/dav/\",\n \"https://dav.dropdav.com/\",\n \"https://dav.box.com/dav\",\n \"https://nanao.teracloud.jp/dav/\",\n \"https://bora.teracloud.jp/dav/\",\n \"https://webdav.4shared.com/\",\n \"https://dav.idrivesync.com\",\n \"https://webdav.yandex.com\",\n \"https://app.koofr.net/dav/Koofr\"\n];\nconst DEFAULT_GA_ID = \"G-89WN60ZK2E\";\nconst SAAS_CHAT_URL = \"https://nextchat.dev/chat\";\nconst SAAS_CHAT_UTM_URL = \"https://nextchat.dev/chat?utm=github\";\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q2xDQTtZQUNBQyxXQUFXO1lBQ1hDLFFBQVFMO1lBQ1JNLFVBQVU7Z0JBQ1IzRSxJQUFJO2dCQUNKNEUsY0FBYztnQkFDZEMsY0FBYztnQkFDZEgsUUFBUTtZQUNWO1FBQ0Y7Q0FDRCxDQUFVO0FBRUosTUFBTUksaUJBQWlCLEdBQUc7QUFDMUIsTUFBTUMsdUJBQXVCLEdBQUc7QUFFdkMsK0JBQStCO0FBQ3hCLE1BQU1DLGlDQUFpQztJQUM1QztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDRCxDQUFDO0FBRUssTUFBTUMsZ0JBQWdCLGVBQWU7QUFFckMsTUFBTUMsZ0JBQWdCLDRCQUE0QjtBQUNsRCxNQUFNQyxvQkFBb0IsdUNBQXVDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvY29uc3RhbnQudHM/YWY0NCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgT1dORVIgPSBcIkNoYXRHUFROZXh0V2ViXCI7XHJcbmV4cG9ydCBjb25zdCBSRVBPID0gXCJDaGF0R1BULU5leHQtV2ViXCI7XHJcbmV4cG9ydCBjb25zdCBSRVBPX1VSTCA9IGBodHRwczovL2dpdGh1Yi5jb20vJHtPV05FUn0vJHtSRVBPfWA7XHJcbmV4cG9ydCBjb25zdCBQTFVHSU5TX1JFUE9fVVJMID0gYGh0dHBzOi8vZ2l0aHViLmNvbS8ke09XTkVSfS9OZXh0Q2hhdC1Bd2Vzb21lLVBsdWdpbnNgO1xyXG5leHBvcnQgY29uc3QgSVNTVUVfVVJMID0gYGh0dHBzOi8vZ2l0aHViLmNvbS8ke09XTkVSfS8ke1JFUE99L2lzc3Vlc2A7XHJcbmV4cG9ydCBjb25zdCBVUERBVEVfVVJMID0gYCR7UkVQT19VUkx9I2tlZXAtdXBkYXRlZGA7XHJcbmV4cG9ydCBjb25zdCBSRUxFQVNFX1VSTCA9IGAke1JFUE9fVVJMfS9yZWxlYXNlc2A7XHJcbmV4cG9ydCBjb25zdCBGRVRDSF9DT01NSVRfVVJMID0gYGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvJHtPV05FUn0vJHtSRVBPfS9jb21taXRzP3Blcl9wYWdlPTFgO1xyXG5leHBvcnQgY29uc3QgRkVUQ0hfVEFHX1VSTCA9IGBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLyR7T1dORVJ9LyR7UkVQT30vdGFncz9wZXJfcGFnZT0xYDtcclxuZXhwb3J0IGNvbnN0IFJVTlRJTUVfQ09ORklHX0RPTSA9IFwiZGFuZ2VyLXJ1bnRpbWUtY29uZmlnXCI7XHJcblxyXG5leHBvcnQgY29uc3QgU1RBQklMSVRZX0JBU0VfVVJMID0gXCJodHRwczovL2FwaS5zdGFiaWxpdHkuYWlcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBPUEVOQUlfQkFTRV9VUkwgPSBcImh0dHBzOi8vYXBpLm9wZW5haS5jb21cIjtcclxuZXhwb3J0IGNvbnN0IEFOVEhST1BJQ19CQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcGkuYW50aHJvcGljLmNvbVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFTUlOSV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly9nZW5lcmF0aXZlbGFuZ3VhZ2UuZ29vZ2xlYXBpcy5jb20vXCI7XHJcblxyXG5leHBvcnQgY29uc3QgQkFJRFVfQkFTRV9VUkwgPSBcImh0dHBzOi8vYWlwLmJhaWR1YmNlLmNvbVwiO1xyXG5leHBvcnQgY29uc3QgQkFJRFVfT0FUVUhfVVJMID0gYCR7QkFJRFVfQkFTRV9VUkx9L29hdXRoLzIuMC90b2tlbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQllURURBTkNFX0JBU0VfVVJMID0gXCJodHRwczovL2Fyay5jbi1iZWlqaW5nLnZvbGNlcy5jb21cIjtcclxuXHJcbmV4cG9ydCBjb25zdCBBTElCQUJBX0JBU0VfVVJMID0gXCJodHRwczovL2Rhc2hzY29wZS5hbGl5dW5jcy5jb20vYXBpL1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRFTkNFTlRfQkFTRV9VUkwgPSBcImh0dHBzOi8vaHVueXVhbi50ZW5jZW50Y2xvdWRhcGkuY29tXCI7XHJcblxyXG5leHBvcnQgY29uc3QgTU9PTlNIT1RfQkFTRV9VUkwgPSBcImh0dHBzOi8vYXBpLm1vb25zaG90LmNuXCI7XHJcbmV4cG9ydCBjb25zdCBJRkxZVEVLX0JBU0VfVVJMID0gXCJodHRwczovL3NwYXJrLWFwaS1vcGVuLnhmLXl1bi5jb21cIjtcclxuXHJcbmV4cG9ydCBjb25zdCBERUVQU0VFS19CQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcGkuZGVlcHNlZWsuY29tXCI7XHJcblxyXG5leHBvcnQgY29uc3QgWEFJX0JBU0VfVVJMID0gXCJodHRwczovL2FwaS54LmFpXCI7XHJcblxyXG5leHBvcnQgY29uc3QgQ0hBVEdMTV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly9vcGVuLmJpZ21vZGVsLmNuXCI7XHJcblxyXG5leHBvcnQgY29uc3QgU0lMSUNPTkZMT1dfQkFTRV9VUkwgPSBcImh0dHBzOi8vYXBpLnNpbGljb25mbG93LmNuXCI7XHJcblxyXG5leHBvcnQgY29uc3QgQ0FDSEVfVVJMX1BSRUZJWCA9IFwiL2FwaS9jYWNoZVwiO1xyXG5leHBvcnQgY29uc3QgVVBMT0FEX1VSTCA9IGAke0NBQ0hFX1VSTF9QUkVGSVh9L3VwbG9hZGA7XHJcblxyXG5leHBvcnQgZW51bSBQYXRoIHtcclxuICBIb21lID0gXCIvXCIsXHJcbiAgQ2hhdCA9IFwiL2NoYXRcIixcclxuICBTZXR0aW5ncyA9IFwiL3NldHRpbmdzXCIsXHJcbiAgTmV3Q2hhdCA9IFwiL25ldy1jaGF0XCIsXHJcbiAgTWFza3MgPSBcIi9tYXNrc1wiLFxyXG4gIFBsdWdpbnMgPSBcIi9wbHVnaW5zXCIsXHJcbiAgQXV0aCA9IFwiL2F1dGhcIixcclxuICBTZCA9IFwiL3NkXCIsXHJcbiAgU2ROZXcgPSBcIi9zZC1uZXdcIixcclxuICBBcnRpZmFjdHMgPSBcIi9hcnRpZmFjdHNcIixcclxuICBTZWFyY2hDaGF0ID0gXCIvc2VhcmNoLWNoYXRcIixcclxuICBNY3BNYXJrZXQgPSBcIi9tY3AtbWFya2V0XCIsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEFwaVBhdGgge1xyXG4gIENvcnMgPSBcIlwiLFxyXG4gIEF6dXJlID0gXCIvYXBpL2F6dXJlXCIsXHJcbiAgT3BlbkFJID0gXCIvYXBpL29wZW5haVwiLFxyXG4gIEFudGhyb3BpYyA9IFwiL2FwaS9hbnRocm9waWNcIixcclxuICBHb29nbGUgPSBcIi9hcGkvZ29vZ2xlXCIsXHJcbiAgQmFpZHUgPSBcIi9hcGkvYmFpZHVcIixcclxuICBCeXRlRGFuY2UgPSBcIi9hcGkvYnl0ZWRhbmNlXCIsXHJcbiAgQWxpYmFiYSA9IFwiL2FwaS9hbGliYWJhXCIsXHJcbiAgVGVuY2VudCA9IFwiL2FwaS90ZW5jZW50XCIsXHJcbiAgTW9vbnNob3QgPSBcIi9hcGkvbW9vbnNob3RcIixcclxuICBJZmx5dGVrID0gXCIvYXBpL2lmbHl0ZWtcIixcclxuICBTdGFiaWxpdHkgPSBcIi9hcGkvc3RhYmlsaXR5XCIsXHJcbiAgQXJ0aWZhY3RzID0gXCIvYXBpL2FydGlmYWN0c1wiLFxyXG4gIFhBSSA9IFwiL2FwaS94YWlcIixcclxuICBDaGF0R0xNID0gXCIvYXBpL2NoYXRnbG1cIixcclxuICBEZWVwU2VlayA9IFwiL2FwaS9kZWVwc2Vla1wiLFxyXG4gIFNpbGljb25GbG93ID0gXCIvYXBpL3NpbGljb25mbG93XCIsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFNsb3RJRCB7XHJcbiAgQXBwQm9keSA9IFwiYXBwLWJvZHlcIixcclxuICBDdXN0b21Nb2RlbCA9IFwiY3VzdG9tLW1vZGVsXCIsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEZpbGVOYW1lIHtcclxuICBNYXNrcyA9IFwibWFza3MuanNvblwiLFxyXG4gIFByb21wdHMgPSBcInByb21wdHMuanNvblwiLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBTdG9yZUtleSB7XHJcbiAgQ2hhdCA9IFwiY2hhdC1uZXh0LXdlYi1zdG9yZVwiLFxyXG4gIFBsdWdpbiA9IFwiY2hhdC1uZXh0LXdlYi1wbHVnaW5cIixcclxuICBBY2Nlc3MgPSBcImFjY2Vzcy1jb250cm9sXCIsXHJcbiAgQ29uZmlnID0gXCJhcHAtY29uZmlnXCIsXHJcbiAgTWFzayA9IFwibWFzay1zdG9yZVwiLFxyXG4gIFByb21wdCA9IFwicHJvbXB0LXN0b3JlXCIsXHJcbiAgVXBkYXRlID0gXCJjaGF0LXVwZGF0ZVwiLFxyXG4gIFN5bmMgPSBcInN5bmNcIixcclxuICBTZExpc3QgPSBcInNkLWxpc3RcIixcclxuICBNY3AgPSBcIm1jcC1zdG9yZVwiLFxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TSURFQkFSX1dJRFRIID0gMzAwO1xyXG5leHBvcnQgY29uc3QgTUFYX1NJREVCQVJfV0lEVEggPSA1MDA7XHJcbmV4cG9ydCBjb25zdCBNSU5fU0lERUJBUl9XSURUSCA9IDIzMDtcclxuZXhwb3J0IGNvbnN0IE5BUlJPV19TSURFQkFSX1dJRFRIID0gMTAwO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFDQ0VTU19DT0RFX1BSRUZJWCA9IFwibmstXCI7XHJcblxyXG5leHBvcnQgY29uc3QgTEFTVF9JTlBVVF9LRVkgPSBcImxhc3QtaW5wdXRcIjtcclxuZXhwb3J0IGNvbnN0IFVORklOSVNIRURfSU5QVVQgPSAoaWQ6IHN0cmluZykgPT4gXCJ1bmZpbmlzaGVkLWlucHV0LVwiICsgaWQ7XHJcblxyXG5leHBvcnQgY29uc3QgU1RPUkFHRV9LRVkgPSBcImNoYXRncHQtbmV4dC13ZWJcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBSRVFVRVNUX1RJTUVPVVRfTVMgPSA2MDAwMDtcclxuZXhwb3J0IGNvbnN0IFJFUVVFU1RfVElNRU9VVF9NU19GT1JfVEhJTktJTkcgPSBSRVFVRVNUX1RJTUVPVVRfTVMgKiA1O1xyXG5cclxuZXhwb3J0IGNvbnN0IEVYUE9SVF9NRVNTQUdFX0NMQVNTX05BTUUgPSBcImV4cG9ydC1tYXJrZG93blwiO1xyXG5cclxuZXhwb3J0IGVudW0gU2VydmljZVByb3ZpZGVyIHtcclxuICBPcGVuQUkgPSBcIk9wZW5BSVwiLFxyXG4gIEF6dXJlID0gXCJBenVyZVwiLFxyXG4gIEdvb2dsZSA9IFwiR29vZ2xlXCIsXHJcbiAgQW50aHJvcGljID0gXCJBbnRocm9waWNcIixcclxuICBCYWlkdSA9IFwiQmFpZHVcIixcclxuICBCeXRlRGFuY2UgPSBcIkJ5dGVEYW5jZVwiLFxyXG4gIEFsaWJhYmEgPSBcIkFsaWJhYmFcIixcclxuICBUZW5jZW50ID0gXCJUZW5jZW50XCIsXHJcbiAgTW9vbnNob3QgPSBcIk1vb25zaG90XCIsXHJcbiAgU3RhYmlsaXR5ID0gXCJTdGFiaWxpdHlcIixcclxuICBJZmx5dGVrID0gXCJJZmx5dGVrXCIsXHJcbiAgWEFJID0gXCJYQUlcIixcclxuICBDaGF0R0xNID0gXCJDaGF0R0xNXCIsXHJcbiAgRGVlcFNlZWsgPSBcIkRlZXBTZWVrXCIsXHJcbiAgU2lsaWNvbkZsb3cgPSBcIlNpbGljb25GbG93XCIsXHJcbn1cclxuXHJcbi8vIEdvb2dsZSBBUEkgc2FmZXR5IHNldHRpbmdzLCBzZWUgaHR0cHM6Ly9haS5nb29nbGUuZGV2L2dlbWluaS1hcGkvZG9jcy9zYWZldHktc2V0dGluZ3NcclxuLy8gQkxPQ0tfTk9ORSB3aWxsIG5vdCBibG9jayBhbnkgY29udGVudCwgYW5kIEJMT0NLX09OTFlfSElHSCB3aWxsIGJsb2NrIG9ubHkgaGlnaC1yaXNrIGNvbnRlbnQuXHJcbmV4cG9ydCBlbnVtIEdvb2dsZVNhZmV0eVNldHRpbmdzVGhyZXNob2xkIHtcclxuICBCTE9DS19OT05FID0gXCJCTE9DS19OT05FXCIsXHJcbiAgQkxPQ0tfT05MWV9ISUdIID0gXCJCTE9DS19PTkxZX0hJR0hcIixcclxuICBCTE9DS19NRURJVU1fQU5EX0FCT1ZFID0gXCJCTE9DS19NRURJVU1fQU5EX0FCT1ZFXCIsXHJcbiAgQkxPQ0tfTE9XX0FORF9BQk9WRSA9IFwiQkxPQ0tfTE9XX0FORF9BQk9WRVwiLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBNb2RlbFByb3ZpZGVyIHtcclxuICBTdGFiaWxpdHkgPSBcIlN0YWJpbGl0eVwiLFxyXG4gIEdQVCA9IFwiR1BUXCIsXHJcbiAgR2VtaW5pUHJvID0gXCJHZW1pbmlQcm9cIixcclxuICBDbGF1ZGUgPSBcIkNsYXVkZVwiLFxyXG4gIEVybmllID0gXCJFcm5pZVwiLFxyXG4gIERvdWJhbyA9IFwiRG91YmFvXCIsXHJcbiAgUXdlbiA9IFwiUXdlblwiLFxyXG4gIEh1bnl1YW4gPSBcIkh1bnl1YW5cIixcclxuICBNb29uc2hvdCA9IFwiTW9vbnNob3RcIixcclxuICBJZmx5dGVrID0gXCJJZmx5dGVrXCIsXHJcbiAgWEFJID0gXCJYQUlcIixcclxuICBDaGF0R0xNID0gXCJDaGF0R0xNXCIsXHJcbiAgRGVlcFNlZWsgPSBcIkRlZXBTZWVrXCIsXHJcbiAgU2lsaWNvbkZsb3cgPSBcIlNpbGljb25GbG93XCIsXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBTdGFiaWxpdHkgPSB7XHJcbiAgR2VuZXJhdGVQYXRoOiBcInYyYmV0YS9zdGFibGUtaW1hZ2UvZ2VuZXJhdGVcIixcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFwiaHR0cHM6Ly9hcGkuc3RhYmlsaXR5LmFpXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgQW50aHJvcGljID0ge1xyXG4gIENoYXRQYXRoOiBcInYxL21lc3NhZ2VzXCIsXHJcbiAgQ2hhdFBhdGgxOiBcInYxL2NvbXBsZXRlXCIsXHJcbiAgRXhhbXBsZUVuZHBvaW50OiBcImh0dHBzOi8vYXBpLmFudGhyb3BpYy5jb21cIixcclxuICBWaXNpb246IFwiMjAyMy0wNi0wMVwiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IE9wZW5haVBhdGggPSB7XHJcbiAgQ2hhdFBhdGg6IFwidjEvY2hhdC9jb21wbGV0aW9uc1wiLFxyXG4gIFNwZWVjaFBhdGg6IFwidjEvYXVkaW8vc3BlZWNoXCIsXHJcbiAgSW1hZ2VQYXRoOiBcInYxL2ltYWdlcy9nZW5lcmF0aW9uc1wiLFxyXG4gIFVzYWdlUGF0aDogXCJkYXNoYm9hcmQvYmlsbGluZy91c2FnZVwiLFxyXG4gIFN1YnNQYXRoOiBcImRhc2hib2FyZC9iaWxsaW5nL3N1YnNjcmlwdGlvblwiLFxyXG4gIExpc3RNb2RlbFBhdGg6IFwidjEvbW9kZWxzXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgQXp1cmUgPSB7XHJcbiAgQ2hhdFBhdGg6IChkZXBsb3lOYW1lOiBzdHJpbmcsIGFwaVZlcnNpb246IHN0cmluZykgPT5cclxuICAgIGBkZXBsb3ltZW50cy8ke2RlcGxveU5hbWV9L2NoYXQvY29tcGxldGlvbnM/YXBpLXZlcnNpb249JHthcGlWZXJzaW9ufWAsXHJcbiAgLy8gaHR0cHM6Ly88eW91cl9yZXNvdXJjZV9uYW1lPi5vcGVuYWkuYXp1cmUuY29tL29wZW5haS9kZXBsb3ltZW50cy88eW91cl9kZXBsb3ltZW50X25hbWU+L2ltYWdlcy9nZW5lcmF0aW9ucz9hcGktdmVyc2lvbj08YXBpX3ZlcnNpb24+XHJcbiAgSW1hZ2VQYXRoOiAoZGVwbG95TmFtZTogc3RyaW5nLCBhcGlWZXJzaW9uOiBzdHJpbmcpID0+XHJcbiAgICBgZGVwbG95bWVudHMvJHtkZXBsb3lOYW1lfS9pbWFnZXMvZ2VuZXJhdGlvbnM/YXBpLXZlcnNpb249JHthcGlWZXJzaW9ufWAsXHJcbiAgRXhhbXBsZUVuZHBvaW50OiBcImh0dHBzOi8ve3Jlc291cmNlLXVybH0vb3BlbmFpXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgR29vZ2xlID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogXCJodHRwczovL2dlbmVyYXRpdmVsYW5ndWFnZS5nb29nbGVhcGlzLmNvbS9cIixcclxuICBDaGF0UGF0aDogKG1vZGVsTmFtZTogc3RyaW5nKSA9PlxyXG4gICAgYHYxYmV0YS9tb2RlbHMvJHttb2RlbE5hbWV9OnN0cmVhbUdlbmVyYXRlQ29udGVudGAsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgQmFpZHUgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBCQUlEVV9CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogKG1vZGVsTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICBsZXQgZW5kcG9pbnQgPSBtb2RlbE5hbWU7XHJcbiAgICBpZiAobW9kZWxOYW1lID09PSBcImVybmllLTQuMC04a1wiKSB7XHJcbiAgICAgIGVuZHBvaW50ID0gXCJjb21wbGV0aW9uc19wcm9cIjtcclxuICAgIH1cclxuICAgIGlmIChtb2RlbE5hbWUgPT09IFwiZXJuaWUtNC4wLThrLXByZXZpZXctMDUxOFwiKSB7XHJcbiAgICAgIGVuZHBvaW50ID0gXCJjb21wbGV0aW9uc19hZHZfcHJvXCI7XHJcbiAgICB9XHJcbiAgICBpZiAobW9kZWxOYW1lID09PSBcImVybmllLTMuNS04a1wiKSB7XHJcbiAgICAgIGVuZHBvaW50ID0gXCJjb21wbGV0aW9uc1wiO1xyXG4gICAgfVxyXG4gICAgaWYgKG1vZGVsTmFtZSA9PT0gXCJlcm5pZS1zcGVlZC04a1wiKSB7XHJcbiAgICAgIGVuZHBvaW50ID0gXCJlcm5pZV9zcGVlZFwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGBycGMvMi4wL2FpX2N1c3RvbS92MS93ZW54aW53b3Jrc2hvcC9jaGF0LyR7ZW5kcG9pbnR9YDtcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEJ5dGVEYW5jZSA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFwiaHR0cHM6Ly9hcmsuY24tYmVpamluZy52b2xjZXMuY29tL2FwaS9cIixcclxuICBDaGF0UGF0aDogXCJhcGkvdjMvY2hhdC9jb21wbGV0aW9uc1wiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEFsaWJhYmEgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBBTElCQUJBX0JBU0VfVVJMLFxyXG4gIENoYXRQYXRoOiBcInYxL3NlcnZpY2VzL2FpZ2MvdGV4dC1nZW5lcmF0aW9uL2dlbmVyYXRpb25cIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBUZW5jZW50ID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogVEVOQ0VOVF9CQVNFX1VSTCxcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBNb29uc2hvdCA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IE1PT05TSE9UX0JBU0VfVVJMLFxyXG4gIENoYXRQYXRoOiBcInYxL2NoYXQvY29tcGxldGlvbnNcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBJZmx5dGVrID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogSUZMWVRFS19CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJ2MS9jaGF0L2NvbXBsZXRpb25zXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgRGVlcFNlZWsgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBERUVQU0VFS19CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJjaGF0L2NvbXBsZXRpb25zXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgWEFJID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogWEFJX0JBU0VfVVJMLFxyXG4gIENoYXRQYXRoOiBcInYxL2NoYXQvY29tcGxldGlvbnNcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBDaGF0R0xNID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogQ0hBVEdMTV9CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJhcGkvcGFhcy92NC9jaGF0L2NvbXBsZXRpb25zXCIsXHJcbiAgSW1hZ2VQYXRoOiBcImFwaS9wYWFzL3Y0L2ltYWdlcy9nZW5lcmF0aW9uc1wiLFxyXG4gIFZpZGVvUGF0aDogXCJhcGkvcGFhcy92NC92aWRlb3MvZ2VuZXJhdGlvbnNcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBTaWxpY29uRmxvdyA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFNJTElDT05GTE9XX0JBU0VfVVJMLFxyXG4gIENoYXRQYXRoOiBcInYxL2NoYXQvY29tcGxldGlvbnNcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUX1RFTVBMQVRFID0gYHt7aW5wdXR9fWA7IC8vIGlucHV0IC8gdGltZSAvIG1vZGVsIC8gbGFuZ1xyXG4vLyBleHBvcnQgY29uc3QgREVGQVVMVF9TWVNURU1fVEVNUExBVEUgPSBgXHJcbi8vIFlvdSBhcmUgQ2hhdEdQVCwgYSBsYXJnZSBsYW5ndWFnZSBtb2RlbCB0cmFpbmVkIGJ5IHt7U2VydmljZVByb3ZpZGVyfX0uXHJcbi8vIEtub3dsZWRnZSBjdXRvZmY6IHt7Y3V0b2ZmfX1cclxuLy8gQ3VycmVudCBtb2RlbDoge3ttb2RlbH19XHJcbi8vIEN1cnJlbnQgdGltZToge3t0aW1lfX1cclxuLy8gTGF0ZXggaW5saW5lOiAkeF4yJFxyXG4vLyBMYXRleCBibG9jazogJCRlPW1jXjIkJFxyXG4vLyBgO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TWVNURU1fVEVNUExBVEUgPSBgXHJcbllvdSBhcmUgQ2hhdEdQVCwgYSBsYXJnZSBsYW5ndWFnZSBtb2RlbCB0cmFpbmVkIGJ5IHt7U2VydmljZVByb3ZpZGVyfX0uXHJcbktub3dsZWRnZSBjdXRvZmY6IHt7Y3V0b2ZmfX1cclxuQ3VycmVudCBtb2RlbDoge3ttb2RlbH19XHJcbkN1cnJlbnQgdGltZToge3t0aW1lfX1cclxuTGF0ZXggaW5saW5lOiBcXFxcKHheMlxcXFwpIFxyXG5MYXRleCBibG9jazogJCRlPW1jXjIkJFxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1DUF9UT09MU19URU1QTEFURSA9IGBcclxuW2NsaWVudElkXVxyXG57eyBjbGllbnRJZCB9fVxyXG5bdG9vbHNdXHJcbnt7IHRvb2xzIH19XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgTUNQX1NZU1RFTV9URU1QTEFURSA9IGBcclxuWW91IGFyZSBhbiBBSSBhc3Npc3RhbnQgd2l0aCBhY2Nlc3MgdG8gc3lzdGVtIHRvb2xzLiBZb3VyIHJvbGUgaXMgdG8gaGVscCB1c2VycyBieSBjb21iaW5pbmcgbmF0dXJhbCBsYW5ndWFnZSB1bmRlcnN0YW5kaW5nIHdpdGggdG9vbCBvcGVyYXRpb25zIHdoZW4gbmVlZGVkLlxyXG5cclxuMS4gQVZBSUxBQkxFIFRPT0xTOlxyXG57eyBNQ1BfVE9PTFMgfX1cclxuXHJcbjIuIFdIRU4gVE8gVVNFIFRPT0xTOlxyXG4gICAtIEFMV0FZUyBVU0UgVE9PTFMgd2hlbiB0aGV5IGNhbiBoZWxwIGFuc3dlciB1c2VyIHF1ZXN0aW9uc1xyXG4gICAtIERPIE5PVCBqdXN0IGRlc2NyaWJlIHdoYXQgeW91IGNvdWxkIGRvIC0gVEFLRSBBQ1RJT04gaW1tZWRpYXRlbHlcclxuICAgLSBJZiB5b3UncmUgbm90IHN1cmUgd2hldGhlciB0byB1c2UgYSB0b29sLCBVU0UgSVRcclxuICAgLSBDb21tb24gdHJpZ2dlcnMgZm9yIHRvb2wgdXNlOlxyXG4gICAgICogUXVlc3Rpb25zIGFib3V0IGZpbGVzIG9yIGRpcmVjdG9yaWVzXHJcbiAgICAgKiBSZXF1ZXN0cyB0byBjaGVjaywgbGlzdCwgb3IgbWFuaXB1bGF0ZSBzeXN0ZW0gcmVzb3VyY2VzXHJcbiAgICAgKiBBbnkgcXVlcnkgdGhhdCBjYW4gYmUgYW5zd2VyZWQgd2l0aCBhdmFpbGFibGUgdG9vbHNcclxuXHJcbjMuIEhPVyBUTyBVU0UgVE9PTFM6XHJcbiAgIEEuIFRvb2wgQ2FsbCBGb3JtYXQ6XHJcbiAgICAgIC0gVXNlIG1hcmtkb3duIGNvZGUgYmxvY2tzIHdpdGggZm9ybWF0OiBcXGBcXGBcXGBqc29uOm1jcDp7Y2xpZW50SWR9XFxgXFxgXFxgXHJcbiAgICAgIC0gQWx3YXlzIGluY2x1ZGU6XHJcbiAgICAgICAgKiBtZXRob2Q6IFwidG9vbHMvY2FsbFwi77yIT25seSB0aGlzIG1ldGhvZCBpcyBzdXBwb3J0ZWTvvIlcclxuICAgICAgICAqIHBhcmFtczogXHJcbiAgICAgICAgICAtIG5hbWU6IG11c3QgbWF0Y2ggYW4gYXZhaWxhYmxlIHByaW1pdGl2ZSBuYW1lXHJcbiAgICAgICAgICAtIGFyZ3VtZW50czogcmVxdWlyZWQgcGFyYW1ldGVycyBmb3IgdGhlIHByaW1pdGl2ZVxyXG5cclxuICAgQi4gUmVzcG9uc2UgRm9ybWF0OlxyXG4gICAgICAtIFRvb2wgcmVzcG9uc2VzIHdpbGwgY29tZSBhcyB1c2VyIG1lc3NhZ2VzXHJcbiAgICAgIC0gRm9ybWF0OiBcXGBcXGBcXGBqc29uOm1jcC1yZXNwb25zZTp7Y2xpZW50SWR9XFxgXFxgXFxgXHJcbiAgICAgIC0gV2FpdCBmb3IgcmVzcG9uc2UgYmVmb3JlIG1ha2luZyBhbm90aGVyIHRvb2wgY2FsbFxyXG5cclxuICAgQy4gSW1wb3J0YW50IFJ1bGVzOlxyXG4gICAgICAtIE9ubHkgdXNlIHRvb2xzL2NhbGwgbWV0aG9kXHJcbiAgICAgIC0gT25seSBPTkUgdG9vbCBjYWxsIHBlciBtZXNzYWdlXHJcbiAgICAgIC0gQUxXQVlTIFRBS0UgQUNUSU9OIGluc3RlYWQgb2YganVzdCBkZXNjcmliaW5nIHdoYXQgeW91IGNvdWxkIGRvXHJcbiAgICAgIC0gSW5jbHVkZSB0aGUgY29ycmVjdCBjbGllbnRJZCBpbiBjb2RlIGJsb2NrIGxhbmd1YWdlIHRhZ1xyXG4gICAgICAtIFZlcmlmeSBhcmd1bWVudHMgbWF0Y2ggdGhlIHByaW1pdGl2ZSdzIHJlcXVpcmVtZW50c1xyXG5cclxuNC4gSU5URVJBQ1RJT04gRkxPVzpcclxuICAgQS4gV2hlbiB1c2VyIG1ha2VzIGEgcmVxdWVzdDpcclxuICAgICAgLSBJTU1FRElBVEVMWSB1c2UgYXBwcm9wcmlhdGUgdG9vbCBpZiBhdmFpbGFibGVcclxuICAgICAgLSBETyBOT1QgYXNrIGlmIHVzZXIgd2FudHMgeW91IHRvIHVzZSB0aGUgdG9vbFxyXG4gICAgICAtIERPIE5PVCBqdXN0IGRlc2NyaWJlIHdoYXQgeW91IGNvdWxkIGRvXHJcbiAgIEIuIEFmdGVyIHJlY2VpdmluZyB0b29sIHJlc3BvbnNlOlxyXG4gICAgICAtIEV4cGxhaW4gcmVzdWx0cyBjbGVhcmx5XHJcbiAgICAgIC0gVGFrZSBuZXh0IGFwcHJvcHJpYXRlIGFjdGlvbiBpZiBuZWVkZWRcclxuICAgQy4gSWYgdG9vbHMgZmFpbDpcclxuICAgICAgLSBFeHBsYWluIHRoZSBlcnJvclxyXG4gICAgICAtIFRyeSBhbHRlcm5hdGl2ZSBhcHByb2FjaCBpbW1lZGlhdGVseVxyXG5cclxuNS4gRVhBTVBMRSBJTlRFUkFDVElPTjpcclxuXHJcbiAgZ29vZCBleGFtcGxlOlxyXG5cclxuICAgXFxgXFxgXFxganNvbjptY3A6ZmlsZXN5c3RlbVxyXG4gICB7XHJcbiAgICAgXCJtZXRob2RcIjogXCJ0b29scy9jYWxsXCIsXHJcbiAgICAgXCJwYXJhbXNcIjoge1xyXG4gICAgICAgXCJuYW1lXCI6IFwibGlzdF9hbGxvd2VkX2RpcmVjdG9yaWVzXCIsXHJcbiAgICAgICBcImFyZ3VtZW50c1wiOiB7fVxyXG4gICAgIH1cclxuICAgfVxyXG4gICBcXGBcXGBcXGBcIlxyXG5cclxuXHJcbiAgXFxgXFxgXFxganNvbjptY3AtcmVzcG9uc2U6ZmlsZXN5c3RlbVxyXG4gIHtcclxuICBcIm1ldGhvZFwiOiBcInRvb2xzL2NhbGxcIixcclxuICBcInBhcmFtc1wiOiB7XHJcbiAgICBcIm5hbWVcIjogXCJ3cml0ZV9maWxlXCIsXHJcbiAgICBcImFyZ3VtZW50c1wiOiB7XHJcbiAgICAgIFwicGF0aFwiOiBcIi9Vc2Vycy9yaXZlci9kZXYvbmV4dGNoYXQvdGVzdC9qb2tlLnR4dFwiLFxyXG4gICAgICBcImNvbnRlbnRcIjogXCLkuLrku4DkuYjmlbDlrabkuabmgLvmmK/mhJ/liLDlv6fkvKTvvJ/lm6DkuLrlroPmnInlpKrlpJrnmoTpl67popjjgIJcIlxyXG4gICAgfVxyXG4gIH1cclxuICB9XHJcblxcYFxcYFxcYFxyXG5cclxuICAgZm9sbHdpbmcgaXMgdGhlIHdyb25nISBtY3AganNvbiBleGFtcGxlOlxyXG5cclxuICAgXFxgXFxgXFxganNvbjptY3A6ZmlsZXN5c3RlbVxyXG4gICB7XHJcbiAgICAgIFwibWV0aG9kXCI6IFwid3JpdGVfZmlsZVwiLFxyXG4gICAgICBcInBhcmFtc1wiOiB7XHJcbiAgICAgICAgXCJwYXRoXCI6IFwiTmV4dENoYXRfSW5mb3JtYXRpb24udHh0XCIsXHJcbiAgICAgICAgXCJjb250ZW50XCI6IFwiMVwiXHJcbiAgICB9XHJcbiAgIH1cclxuICAgXFxgXFxgXFxgXHJcblxyXG4gICBUaGlzIGlzIHdyb25nIGJlY2F1c2UgdGhlIG1ldGhvZCBpcyBub3QgdG9vbHMvY2FsbC5cclxuICAgXHJcbiAgIFxcYFxcYFxcYHtcclxuICBcIm1ldGhvZFwiOiBcInNlYXJjaF9yZXBvc2l0b3JpZXNcIixcclxuICBcInBhcmFtc1wiOiB7XHJcbiAgICBcInF1ZXJ5XCI6IFwiMm9lZWVcIlxyXG4gIH1cclxufVxyXG4gICBcXGBcXGBcXGBcclxuXHJcbiAgIFRoaXMgaXMgd3JvbmcgYmVjYXVzZSB0aGUgbWV0aG9kIGlzIG5vdCB0b29scy9jYWxsLiEhISEhISEhISEhXHJcblxyXG4gICB0aGUgcmlnaHQgZm9ybWF0IGlzOlxyXG4gICBcXGBcXGBcXGBqc29uOm1jcDpmaWxlc3lzdGVtXHJcbiAgIHtcclxuICAgICBcIm1ldGhvZFwiOiBcInRvb2xzL2NhbGxcIixcclxuICAgICBcInBhcmFtc1wiOiB7XHJcbiAgICAgICBcIm5hbWVcIjogXCJzZWFyY2hfcmVwb3NpdG9yaWVzXCIsXHJcbiAgICAgICBcImFyZ3VtZW50c1wiOiB7XHJcbiAgICAgICAgIFwicXVlcnlcIjogXCIyb2VlZVwiXHJcbiAgICAgICB9XHJcbiAgICAgfVxyXG4gICB9XHJcbiAgIFxcYFxcYFxcYFxyXG4gICBcclxuICAgcGxlYXNlIGZvbGxvdyB0aGUgZm9ybWF0IHN0cmljdGx5IE9OTFkgdXNlIHRvb2xzL2NhbGwgbWV0aG9kISEhISEhISEhISFcclxuICAgXHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgU1VNTUFSSVpFX01PREVMID0gXCJncHQtNG8tbWluaVwiO1xyXG5leHBvcnQgY29uc3QgR0VNSU5JX1NVTU1BUklaRV9NT0RFTCA9IFwiZ2VtaW5pLXByb1wiO1xyXG5leHBvcnQgY29uc3QgREVFUFNFRUtfU1VNTUFSSVpFX01PREVMID0gXCJkZWVwc2Vlay1haS9EZWVwU2Vlay1WM1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IEtub3dsZWRnZUN1dE9mZkRhdGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XHJcbiAgZGVmYXVsdDogXCIyMDIxLTA5XCIsXHJcbiAgXCJncHQtNC10dXJib1wiOiBcIjIwMjMtMTJcIixcclxuICBcImdwdC00LXR1cmJvLTIwMjQtMDQtMDlcIjogXCIyMDIzLTEyXCIsXHJcbiAgXCJncHQtNC10dXJiby1wcmV2aWV3XCI6IFwiMjAyMy0xMlwiLFxyXG4gIFwiZ3B0LTRvXCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwiZ3B0LTRvLTIwMjQtMDUtMTNcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJncHQtNG8tMjAyNC0wOC0wNlwiOiBcIjIwMjMtMTBcIixcclxuICBcImdwdC00by0yMDI0LTExLTIwXCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwiY2hhdGdwdC00by1sYXRlc3RcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJncHQtNG8tbWluaVwiOiBcIjIwMjMtMTBcIixcclxuICBcImdwdC00by1taW5pLTIwMjQtMDctMThcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJncHQtNC12aXNpb24tcHJldmlld1wiOiBcIjIwMjMtMDRcIixcclxuICBcIm8xLW1pbmktMjAyNC0wOS0xMlwiOiBcIjIwMjMtMTBcIixcclxuICBcIm8xLW1pbmlcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJvMS1wcmV2aWV3LTIwMjQtMDktMTJcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJvMS1wcmV2aWV3XCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwibzEtMjAyNC0xMi0xN1wiOiBcIjIwMjMtMTBcIixcclxuICBvMTogXCIyMDIzLTEwXCIsXHJcbiAgXCJvMy1taW5pLTIwMjUtMDEtMzFcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJvMy1taW5pXCI6IFwiMjAyMy0xMFwiLFxyXG4gIC8vIEFmdGVyIGltcHJvdmVtZW50cyxcclxuICAvLyBpdCdzIG5vdyBlYXNpZXIgdG8gYWRkIFwiS25vd2xlZGdlQ3V0T2ZmRGF0ZVwiIGluc3RlYWQgb2Ygc3R1cGlkIGhhcmRjb2RpbmcgaXQsIGFzIHdhcyBkb25lIHByZXZpb3VzbHkuXHJcbiAgXCJnZW1pbmktcHJvXCI6IFwiMjAyMy0xMlwiLFxyXG4gIFwiZ2VtaW5pLXByby12aXNpb25cIjogXCIyMDIzLTEyXCIsXHJcbiAgXCJkZWVwc2Vlay1jaGF0XCI6IFwiMjAyNC0wN1wiLFxyXG4gIFwiZGVlcHNlZWstY29kZXJcIjogXCIyMDI0LTA3XCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9UVFNfRU5HSU5FID0gXCJPcGVuQUktVFRTXCI7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1RUU19FTkdJTkVTID0gW1wiT3BlbkFJLVRUU1wiLCBcIkVkZ2UtVFRTXCJdO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9UVFNfTU9ERUwgPSBcInR0cy0xXCI7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1RUU19WT0lDRSA9IFwiYWxsb3lcIjtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVFRTX01PREVMUyA9IFtcInR0cy0xXCIsIFwidHRzLTEtaGRcIl07XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1RUU19WT0lDRVMgPSBbXHJcbiAgXCJhbGxveVwiLFxyXG4gIFwiZWNob1wiLFxyXG4gIFwiZmFibGVcIixcclxuICBcIm9ueXhcIixcclxuICBcIm5vdmFcIixcclxuICBcInNoaW1tZXJcIixcclxuXTtcclxuXHJcbmV4cG9ydCBjb25zdCBWSVNJT05fTU9ERUxfUkVHRVhFUyA9IFtcclxuICAvdmlzaW9uLyxcclxuICAvZ3B0LTRvLyxcclxuICAvY2xhdWRlLTMvLFxyXG4gIC9nZW1pbmktMVxcLjUvLFxyXG4gIC9nZW1pbmktZXhwLyxcclxuICAvZ2VtaW5pLTJcXC4wLyxcclxuICAvbGVhcm5sbS8sXHJcbiAgL3F3ZW4tdmwvLFxyXG4gIC9xd2VuMi12bC8sXHJcbiAgL2dwdC00LXR1cmJvKD8hLipwcmV2aWV3KS8sIC8vIE1hdGNoZXMgXCJncHQtNC10dXJib1wiIGJ1dCBub3QgXCJncHQtNC10dXJiby1wcmV2aWV3XCJcclxuICAvXmRhbGwtZS0zJC8sIC8vIE1hdGNoZXMgZXhhY3RseSBcImRhbGwtZS0zXCJcclxuICAvZ2xtLTR2LyxcclxuXTtcclxuXHJcbmV4cG9ydCBjb25zdCBFWENMVURFX1ZJU0lPTl9NT0RFTF9SRUdFWEVTID0gWy9jbGF1ZGUtMy01LWhhaWt1LTIwMjQxMDIyL107XHJcblxyXG5jb25zdCBvcGVuYWlNb2RlbHMgPSBbXHJcbl07XHJcblxyXG5jb25zdCBnb29nbGVNb2RlbHMgPSBbXHJcbl07XHJcblxyXG5jb25zdCBhbnRocm9waWNNb2RlbHMgPSBbXHJcbl07XHJcblxyXG5jb25zdCBiYWlkdU1vZGVscyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IGJ5dGVkYW5jZU1vZGVscyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IGFsaWJhYmFNb2RlcyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IHRlbmNlbnRNb2RlbHMgPSBbXHJcbl07XHJcblxyXG5jb25zdCBtb29uc2hvdE1vZGVzID0gW107XHJcblxyXG5jb25zdCBpZmx5dGVrTW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgZGVlcHNlZWtNb2RlbHMgPSBbXTtcclxuXHJcbmNvbnN0IHhBSU1vZGVzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgY2hhdGdsbU1vZGVscyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IHNpbGljb25mbG93TW9kZWxzID0gW1xyXG4gIFwiZGVlcHNlZWstYWkvRGVlcFNlZWstVjNcIixcclxuICBcImRlZXBzZWVrLWFpL0RlZXBTZWVrLVIxXCIsXHJcbl07XHJcblxyXG5sZXQgc2VxID0gMTAwMDsgLy8g5YaF572u55qE5qih5Z6L5bqP5Y+355Sf5oiQ5Zmo5LuOMTAwMOW8gOWni1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9NT0RFTFMgPSBbXHJcbiAgLi4ub3BlbmFpTW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLCAvLyBHbG9iYWwgc2VxdWVuY2Ugc29ydChpbmRleClcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcIm9wZW5haVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiT3BlbkFJXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJvcGVuYWlcIixcclxuICAgICAgc29ydGVkOiAxLCAvLyDov5nph4zmmK/lm7rlrprnmoTvvIznoa7kv53pobrluo/kuI7kuYvliY3lhoXnva7nmoTniYjmnKzkuIDoh7RcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLm9wZW5haU1vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcImF6dXJlXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJBenVyZVwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiYXp1cmVcIixcclxuICAgICAgc29ydGVkOiAyLFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4uZ29vZ2xlTW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiZ29vZ2xlXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJHb29nbGVcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcImdvb2dsZVwiLFxyXG4gICAgICBzb3J0ZWQ6IDMsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5hbnRocm9waWNNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJhbnRocm9waWNcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIkFudGhyb3BpY1wiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiYW50aHJvcGljXCIsXHJcbiAgICAgIHNvcnRlZDogNCxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLmJhaWR1TW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiYmFpZHVcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIkJhaWR1XCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJiYWlkdVwiLFxyXG4gICAgICBzb3J0ZWQ6IDUsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5ieXRlZGFuY2VNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJieXRlZGFuY2VcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIkJ5dGVEYW5jZVwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiYnl0ZWRhbmNlXCIsXHJcbiAgICAgIHNvcnRlZDogNixcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLmFsaWJhYmFNb2Rlcy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcImFsaWJhYmFcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIkFsaWJhYmFcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcImFsaWJhYmFcIixcclxuICAgICAgc29ydGVkOiA3LFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4udGVuY2VudE1vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcInRlbmNlbnRcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIlRlbmNlbnRcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcInRlbmNlbnRcIixcclxuICAgICAgc29ydGVkOiA4LFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4ubW9vbnNob3RNb2Rlcy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcIm1vb25zaG90XCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJNb29uc2hvdFwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwibW9vbnNob3RcIixcclxuICAgICAgc29ydGVkOiA5LFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4uaWZseXRla01vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcImlmbHl0ZWtcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIklmbHl0ZWtcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcImlmbHl0ZWtcIixcclxuICAgICAgc29ydGVkOiAxMCxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLnhBSU1vZGVzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwieGFpXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJYQUlcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcInhhaVwiLFxyXG4gICAgICBzb3J0ZWQ6IDExLFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4uY2hhdGdsbU1vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcImNoYXRnbG1cIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIkNoYXRHTE1cIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcImNoYXRnbG1cIixcclxuICAgICAgc29ydGVkOiAxMixcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLmRlZXBzZWVrTW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiZGVlcHNlZWtcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIkRlZXBTZWVrXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJkZWVwc2Vla1wiLFxyXG4gICAgICBzb3J0ZWQ6IDEzLFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4uc2lsaWNvbmZsb3dNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJzaWxpY29uZmxvd1wiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiU2lsaWNvbkZsb3dcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcInNpbGljb25mbG93XCIsXHJcbiAgICAgIHNvcnRlZDogMTQsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuXSBhcyBjb25zdDtcclxuXHJcbmV4cG9ydCBjb25zdCBDSEFUX1BBR0VfU0laRSA9IDE1O1xyXG5leHBvcnQgY29uc3QgTUFYX1JFTkRFUl9NU0dfQ09VTlQgPSA0NTtcclxuXHJcbi8vIHNvbWUgZmFtb3VzIHdlYmRhdiBlbmRwb2ludHNcclxuZXhwb3J0IGNvbnN0IGludGVybmFsQWxsb3dlZFdlYkRhdkVuZHBvaW50cyA9IFtcclxuICBcImh0dHBzOi8vZGF2LmppYW5ndW95dW4uY29tL2Rhdi9cIixcclxuICBcImh0dHBzOi8vZGF2LmRyb3BkYXYuY29tL1wiLFxyXG4gIFwiaHR0cHM6Ly9kYXYuYm94LmNvbS9kYXZcIixcclxuICBcImh0dHBzOi8vbmFuYW8udGVyYWNsb3VkLmpwL2Rhdi9cIixcclxuICBcImh0dHBzOi8vYm9yYS50ZXJhY2xvdWQuanAvZGF2L1wiLFxyXG4gIFwiaHR0cHM6Ly93ZWJkYXYuNHNoYXJlZC5jb20vXCIsXHJcbiAgXCJodHRwczovL2Rhdi5pZHJpdmVzeW5jLmNvbVwiLFxyXG4gIFwiaHR0cHM6Ly93ZWJkYXYueWFuZGV4LmNvbVwiLFxyXG4gIFwiaHR0cHM6Ly9hcHAua29vZnIubmV0L2Rhdi9Lb29mclwiLFxyXG5dO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfR0FfSUQgPSBcIkctODlXTjYwWksyRVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNBQVNfQ0hBVF9VUkwgPSBcImh0dHBzOi8vbmV4dGNoYXQuZGV2L2NoYXRcIjtcclxuZXhwb3J0IGNvbnN0IFNBQVNfQ0hBVF9VVE1fVVJMID0gXCJodHRwczovL25leHRjaGF0LmRldi9jaGF0P3V0bT1naXRodWJcIjtcclxuIl0sIm5hbWVzIjpbIk9XTkVSIiwiUkVQTyIsIlJFUE9fVVJMIiwiUExVR0lOU19SRVBPX1VSTCIsIklTU1VFX1VSTCIsIlVQREFURV9VUkwiLCJSRUxFQVNFX1VSTCIsIkZFVENIX0NPTU1JVF9VUkwiLCJGRVRDSF9UQUdfVVJMIiwiUlVOVElNRV9DT05GSUdfRE9NIiwiU1RBQklMSVRZX0JBU0VfVVJMIiwiT1BFTkFJX0JBU0VfVVJMIiwiQU5USFJPUElDX0JBU0VfVVJMIiwiR0VNSU5JX0JBU0VfVVJMIiwiQkFJRFVfQkFTRV9VUkwiLCJCQUlEVV9PQVRVSF9VUkwiLCJCWVRFREFOQ0VfQkFTRV9VUkwiLCJBTElCQUJBX0JBU0VfVVJMIiwiVEVOQ0VOVF9CQVNFX1VSTCIsIk1PT05TSE9UX0JBU0VfVVJMIiwiSUZMWVRFS19CQVNFX1VSTCIsIkRFRVBTRUVLX0JBU0VfVVJMIiwiWEFJX0JBU0VfVVJMIiwiQ0hBVEdMTV9CQVNFX1VSTCIsIlNJTElDT05GTE9XX0JBU0VfVVJMIiwiQ0FDSEVfVVJMX1BSRUZJWCIsIlVQTE9BRF9VUkwiLCJQYXRoIiwiQXBpUGF0aCIsIlNsb3RJRCIsIkZpbGVOYW1lIiwiU3RvcmVLZXkiLCJERUZBVUxUX1NJREVCQVJfV0lEVEgiLCJNQVhfU0lERUJBUl9XSURUSCIsIk1JTl9TSURFQkFSX1dJRFRIIiwiTkFSUk9XX1NJREVCQVJfV0lEVEgiLCJBQ0NFU1NfQ09ERV9QUkVGSVgiLCJMQVNUX0lOUFVUX0tFWSIsIlVORklOSVNIRURfSU5QVVQiLCJpZCIsIlNUT1JBR0VfS0VZIiwiUkVRVUVTVF9USU1FT1VUX01TIiwiUkVRVUVTVF9USU1FT1VUX01TX0ZPUl9USElOS0lORyIsIkVYUE9SVF9NRVNTQUdFX0NMQVNTX05BTUUiLCJTZXJ2aWNlUHJvdmlkZXIiLCJHb29nbGVTYWZldHlTZXR0aW5nc1RocmVzaG9sZCIsIk1vZGVsUHJvdmlkZXIiLCJTdGFiaWxpdHkiLCJHZW5lcmF0ZVBhdGgiLCJFeGFtcGxlRW5kcG9pbnQiLCJBbnRocm9waWMiLCJDaGF0UGF0aCIsIkNoYXRQYXRoMSIsIlZpc2lvbiIsIk9wZW5haVBhdGgiLCJTcGVlY2hQYXRoIiwiSW1hZ2VQYXRoIiwiVXNhZ2VQYXRoIiwiU3Vic1BhdGgiLCJMaXN0TW9kZWxQYXRoIiwiQXp1cmUiLCJkZXBsb3lOYW1lIiwiYXBpVmVyc2lvbiIsIkdvb2dsZSIsIm1vZGVsTmFtZSIsIkJhaWR1IiwiZW5kcG9pbnQiLCJCeXRlRGFuY2UiLCJBbGliYWJhIiwiVGVuY2VudCIsIk1vb25zaG90IiwiSWZseXRlayIsIkRlZXBTZWVrIiwiWEFJIiwiQ2hhdEdMTSIsIlZpZGVvUGF0aCIsIlNpbGljb25GbG93IiwiREVGQVVMVF9JTlBVVF9URU1QTEFURSIsIkRFRkFVTFRfU1lTVEVNX1RFTVBMQVRFIiwiTUNQX1RPT0xTX1RFTVBMQVRFIiwiTUNQX1NZU1RFTV9URU1QTEFURSIsIlNVTU1BUklaRV9NT0RFTCIsIkdFTUlOSV9TVU1NQVJJWkVfTU9ERUwiLCJERUVQU0VFS19TVU1NQVJJWkVfTU9ERUwiLCJLbm93bGVkZ2VDdXRPZmZEYXRlIiwiZGVmYXVsdCIsIm8xIiwiREVGQVVMVF9UVFNfRU5HSU5FIiwiREVGQVVMVF9UVFNfRU5HSU5FUyIsIkRFRkFVTFRfVFRTX01PREVMIiwiREVGQVVMVF9UVFNfVk9JQ0UiLCJERUZBVUxUX1RUU19NT0RFTFMiLCJERUZBVUxUX1RUU19WT0lDRVMiLCJWSVNJT05fTU9ERUxfUkVHRVhFUyIsIkVYQ0xVREVfVklTSU9OX01PREVMX1JFR0VYRVMiLCJvcGVuYWlNb2RlbHMiLCJnb29nbGVNb2RlbHMiLCJhbnRocm9waWNNb2RlbHMiLCJiYWlkdU1vZGVscyIsImJ5dGVkYW5jZU1vZGVscyIsImFsaWJhYmFNb2RlcyIsInRlbmNlbnRNb2RlbHMiLCJtb29uc2hvdE1vZGVzIiwiaWZseXRla01vZGVscyIsImRlZXBzZWVrTW9kZWxzIiwieEFJTW9kZXMiLCJjaGF0Z2xtTW9kZWxzIiwic2lsaWNvbmZsb3dNb2RlbHMiLCJzZXEiLCJERUZBVUxUX01PREVMUyIsIm1hcCIsIm5hbWUiLCJhdmFpbGFibGUiLCJzb3J0ZWQiLCJwcm92aWRlciIsInByb3ZpZGVyTmFtZSIsInByb3ZpZGVyVHlwZSIsIkNIQVRfUEFHRV9TSVpFIiwiTUFYX1JFTkRFUl9NU0dfQ09VTlQiLCJpbnRlcm5hbEFsbG93ZWRXZWJEYXZFbmRwb2ludHMiLCJERUZBVUxUX0dBX0lEIiwiU0FBU19DSEFUX1VSTCIsIlNBQVNfQ0hBVF9VVE1fVVJMIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(action-browser)/./app/constant.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(rsc)/./app/constant.ts":
|
|
|
/*!*************************!*\
|
|
|
!*** ./app/constant.ts ***!
|
|
|
\*************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ACCESS_CODE_PREFIX: () => (/* binding */ ACCESS_CODE_PREFIX),\n/* harmony export */ ALIBABA_BASE_URL: () => (/* binding */ ALIBABA_BASE_URL),\n/* harmony export */ ANTHROPIC_BASE_URL: () => (/* binding */ ANTHROPIC_BASE_URL),\n/* harmony export */ Alibaba: () => (/* binding */ Alibaba),\n/* harmony export */ Anthropic: () => (/* binding */ Anthropic),\n/* harmony export */ ApiPath: () => (/* binding */ ApiPath),\n/* harmony export */ Azure: () => (/* binding */ Azure),\n/* harmony export */ BAIDU_BASE_URL: () => (/* binding */ BAIDU_BASE_URL),\n/* harmony export */ BAIDU_OATUH_URL: () => (/* binding */ BAIDU_OATUH_URL),\n/* harmony export */ BYTEDANCE_BASE_URL: () => (/* binding */ BYTEDANCE_BASE_URL),\n/* harmony export */ Baidu: () => (/* binding */ Baidu),\n/* harmony export */ ByteDance: () => (/* binding */ ByteDance),\n/* harmony export */ CACHE_URL_PREFIX: () => (/* binding */ CACHE_URL_PREFIX),\n/* harmony export */ CHATGLM_BASE_URL: () => (/* binding */ CHATGLM_BASE_URL),\n/* harmony export */ CHAT_PAGE_SIZE: () => (/* binding */ CHAT_PAGE_SIZE),\n/* harmony export */ ChatGLM: () => (/* binding */ ChatGLM),\n/* harmony export */ DEEPSEEK_BASE_URL: () => (/* binding */ DEEPSEEK_BASE_URL),\n/* harmony export */ DEEPSEEK_SUMMARIZE_MODEL: () => (/* binding */ DEEPSEEK_SUMMARIZE_MODEL),\n/* harmony export */ DEFAULT_GA_ID: () => (/* binding */ DEFAULT_GA_ID),\n/* harmony export */ DEFAULT_INPUT_TEMPLATE: () => (/* binding */ DEFAULT_INPUT_TEMPLATE),\n/* harmony export */ DEFAULT_MODELS: () => (/* binding */ DEFAULT_MODELS),\n/* harmony export */ DEFAULT_SIDEBAR_WIDTH: () => (/* binding */ DEFAULT_SIDEBAR_WIDTH),\n/* harmony export */ DEFAULT_SYSTEM_TEMPLATE: () => (/* binding */ DEFAULT_SYSTEM_TEMPLATE),\n/* harmony export */ DEFAULT_TTS_ENGINE: () => (/* binding */ DEFAULT_TTS_ENGINE),\n/* harmony export */ DEFAULT_TTS_ENGINES: () => (/* binding */ DEFAULT_TTS_ENGINES),\n/* harmony export */ DEFAULT_TTS_MODEL: () => (/* binding */ DEFAULT_TTS_MODEL),\n/* harmony export */ DEFAULT_TTS_MODELS: () => (/* binding */ DEFAULT_TTS_MODELS),\n/* harmony export */ DEFAULT_TTS_VOICE: () => (/* binding */ DEFAULT_TTS_VOICE),\n/* harmony export */ DEFAULT_TTS_VOICES: () => (/* binding */ DEFAULT_TTS_VOICES),\n/* harmony export */ DeepSeek: () => (/* binding */ DeepSeek),\n/* harmony export */ EXCLUDE_VISION_MODEL_REGEXES: () => (/* binding */ EXCLUDE_VISION_MODEL_REGEXES),\n/* harmony export */ EXPORT_MESSAGE_CLASS_NAME: () => (/* binding */ EXPORT_MESSAGE_CLASS_NAME),\n/* harmony export */ FETCH_COMMIT_URL: () => (/* binding */ FETCH_COMMIT_URL),\n/* harmony export */ FETCH_TAG_URL: () => (/* binding */ FETCH_TAG_URL),\n/* harmony export */ FileName: () => (/* binding */ FileName),\n/* harmony export */ GEMINI_BASE_URL: () => (/* binding */ GEMINI_BASE_URL),\n/* harmony export */ GEMINI_SUMMARIZE_MODEL: () => (/* binding */ GEMINI_SUMMARIZE_MODEL),\n/* harmony export */ Google: () => (/* binding */ Google),\n/* harmony export */ GoogleSafetySettingsThreshold: () => (/* binding */ GoogleSafetySettingsThreshold),\n/* harmony export */ IFLYTEK_BASE_URL: () => (/* binding */ IFLYTEK_BASE_URL),\n/* harmony export */ ISSUE_URL: () => (/* binding */ ISSUE_URL),\n/* harmony export */ Iflytek: () => (/* binding */ Iflytek),\n/* harmony export */ KnowledgeCutOffDate: () => (/* binding */ KnowledgeCutOffDate),\n/* harmony export */ LAST_INPUT_KEY: () => (/* binding */ LAST_INPUT_KEY),\n/* harmony export */ MAX_RENDER_MSG_COUNT: () => (/* binding */ MAX_RENDER_MSG_COUNT),\n/* harmony export */ MAX_SIDEBAR_WIDTH: () => (/* binding */ MAX_SIDEBAR_WIDTH),\n/* harmony export */ MCP_SYSTEM_TEMPLATE: () => (/* binding */ MCP_SYSTEM_TEMPLATE),\n/* harmony export */ MCP_TOOLS_TEMPLATE: () => (/* binding */ MCP_TOOLS_TEMPLATE),\n/* harmony export */ MIN_SIDEBAR_WIDTH: () => (/* binding */ MIN_SIDEBAR_WIDTH),\n/* harmony export */ MOONSHOT_BASE_URL: () => (/* binding */ MOONSHOT_BASE_URL),\n/* harmony export */ ModelProvider: () => (/* binding */ ModelProvider),\n/* harmony export */ Moonshot: () => (/* binding */ Moonshot),\n/* harmony export */ NARROW_SIDEBAR_WIDTH: () => (/* binding */ NARROW_SIDEBAR_WIDTH),\n/* harmony export */ OPENAI_BASE_URL: () => (/* binding */ OPENAI_BASE_URL),\n/* harmony export */ OWNER: () => (/* binding */ OWNER),\n/* harmony export */ OpenaiPath: () => (/* binding */ OpenaiPath),\n/* harmony export */ PLUGINS_REPO_URL: () => (/* binding */ PLUGINS_REPO_URL),\n/* harmony export */ Path: () => (/* binding */ Path),\n/* harmony export */ RELEASE_URL: () => (/* binding */ RELEASE_URL),\n/* harmony export */ REPO: () => (/* binding */ REPO),\n/* harmony export */ REPO_URL: () => (/* binding */ REPO_URL),\n/* harmony export */ REQUEST_TIMEOUT_MS: () => (/* binding */ REQUEST_TIMEOUT_MS),\n/* harmony export */ REQUEST_TIMEOUT_MS_FOR_THINKING: () => (/* binding */ REQUEST_TIMEOUT_MS_FOR_THINKING),\n/* harmony export */ RUNTIME_CONFIG_DOM: () => (/* binding */ RUNTIME_CONFIG_DOM),\n/* harmony export */ SAAS_CHAT_URL: () => (/* binding */ SAAS_CHAT_URL),\n/* harmony export */ SAAS_CHAT_UTM_URL: () => (/* binding */ SAAS_CHAT_UTM_URL),\n/* harmony export */ SILICONFLOW_BASE_URL: () => (/* binding */ SILICONFLOW_BASE_URL),\n/* harmony export */ STABILITY_BASE_URL: () => (/* binding */ STABILITY_BASE_URL),\n/* harmony export */ STORAGE_KEY: () => (/* binding */ STORAGE_KEY),\n/* harmony export */ SUMMARIZE_MODEL: () => (/* binding */ SUMMARIZE_MODEL),\n/* harmony export */ ServiceProvider: () => (/* binding */ ServiceProvider),\n/* harmony export */ SiliconFlow: () => (/* binding */ SiliconFlow),\n/* harmony export */ SlotID: () => (/* binding */ SlotID),\n/* harmony export */ Stability: () => (/* binding */ Stability),\n/* harmony export */ StoreKey: () => (/* binding */ StoreKey),\n/* harmony export */ TENCENT_BASE_URL: () => (/* binding */ TENCENT_BASE_URL),\n/* harmony export */ Tencent: () => (/* binding */ Tencent),\n/* harmony export */ UNFINISHED_INPUT: () => (/* binding */ UNFINISHED_INPUT),\n/* harmony export */ UPDATE_URL: () => (/* binding */ UPDATE_URL),\n/* harmony export */ UPLOAD_URL: () => (/* binding */ UPLOAD_URL),\n/* harmony export */ VISION_MODEL_REGEXES: () => (/* binding */ VISION_MODEL_REGEXES),\n/* harmony export */ XAI: () => (/* binding */ XAI),\n/* harmony export */ XAI_BASE_URL: () => (/* binding */ XAI_BASE_URL),\n/* harmony export */ internalAllowedWebDavEndpoints: () => (/* binding */ internalAllowedWebDavEndpoints)\n/* harmony export */ });\nconst OWNER = \"ChatGPTNextWeb\";\nconst REPO = \"ChatGPT-Next-Web\";\nconst REPO_URL = `https://github.com/${OWNER}/${REPO}`;\nconst PLUGINS_REPO_URL = `https://github.com/${OWNER}/NextChat-Awesome-Plugins`;\nconst ISSUE_URL = `https://github.com/${OWNER}/${REPO}/issues`;\nconst UPDATE_URL = `${REPO_URL}#keep-updated`;\nconst RELEASE_URL = `${REPO_URL}/releases`;\nconst FETCH_COMMIT_URL = `https://api.github.com/repos/${OWNER}/${REPO}/commits?per_page=1`;\nconst FETCH_TAG_URL = `https://api.github.com/repos/${OWNER}/${REPO}/tags?per_page=1`;\nconst RUNTIME_CONFIG_DOM = \"danger-runtime-config\";\nconst STABILITY_BASE_URL = \"https://api.stability.ai\";\nconst OPENAI_BASE_URL = \"https://api.openai.com\";\nconst ANTHROPIC_BASE_URL = \"https://api.anthropic.com\";\nconst GEMINI_BASE_URL = \"https://generativelanguage.googleapis.com/\";\nconst BAIDU_BASE_URL = \"https://aip.baidubce.com\";\nconst BAIDU_OATUH_URL = `${BAIDU_BASE_URL}/oauth/2.0/token`;\nconst BYTEDANCE_BASE_URL = \"https://ark.cn-beijing.volces.com\";\nconst ALIBABA_BASE_URL = \"https://dashscope.aliyuncs.com/api/\";\nconst TENCENT_BASE_URL = \"https://hunyuan.tencentcloudapi.com\";\nconst MOONSHOT_BASE_URL = \"https://api.moonshot.cn\";\nconst IFLYTEK_BASE_URL = \"https://spark-api-open.xf-yun.com\";\nconst DEEPSEEK_BASE_URL = \"https://api.deepseek.com\";\nconst XAI_BASE_URL = \"https://api.x.ai\";\nconst CHATGLM_BASE_URL = \"https://open.bigmodel.cn\";\nconst SILICONFLOW_BASE_URL = \"https://api.siliconflow.cn\";\nconst CACHE_URL_PREFIX = \"/api/cache\";\nconst UPLOAD_URL = `${CACHE_URL_PREFIX}/upload`;\nvar Path;\n(function(Path) {\n Path[\"Home\"] = \"/\";\n Path[\"Chat\"] = \"/chat\";\n Path[\"Settings\"] = \"/settings\";\n Path[\"NewChat\"] = \"/new-chat\";\n Path[\"Masks\"] = \"/masks\";\n Path[\"Plugins\"] = \"/plugins\";\n Path[\"Auth\"] = \"/auth\";\n Path[\"Sd\"] = \"/sd\";\n Path[\"SdNew\"] = \"/sd-new\";\n Path[\"Artifacts\"] = \"/artifacts\";\n Path[\"SearchChat\"] = \"/search-chat\";\n Path[\"McpMarket\"] = \"/mcp-market\";\n})(Path || (Path = {}));\nvar ApiPath;\n(function(ApiPath) {\n ApiPath[\"Cors\"] = \"\";\n ApiPath[\"Azure\"] = \"/api/azure\";\n ApiPath[\"OpenAI\"] = \"/api/openai\";\n ApiPath[\"Anthropic\"] = \"/api/anthropic\";\n ApiPath[\"Google\"] = \"/api/google\";\n ApiPath[\"Baidu\"] = \"/api/baidu\";\n ApiPath[\"ByteDance\"] = \"/api/bytedance\";\n ApiPath[\"Alibaba\"] = \"/api/alibaba\";\n ApiPath[\"Tencent\"] = \"/api/tencent\";\n ApiPath[\"Moonshot\"] = \"/api/moonshot\";\n ApiPath[\"Iflytek\"] = \"/api/iflytek\";\n ApiPath[\"Stability\"] = \"/api/stability\";\n ApiPath[\"Artifacts\"] = \"/api/artifacts\";\n ApiPath[\"XAI\"] = \"/api/xai\";\n ApiPath[\"ChatGLM\"] = \"/api/chatglm\";\n ApiPath[\"DeepSeek\"] = \"/api/deepseek\";\n ApiPath[\"SiliconFlow\"] = \"/api/siliconflow\";\n})(ApiPath || (ApiPath = {}));\nvar SlotID;\n(function(SlotID) {\n SlotID[\"AppBody\"] = \"app-body\";\n SlotID[\"CustomModel\"] = \"custom-model\";\n})(SlotID || (SlotID = {}));\nvar FileName;\n(function(FileName) {\n FileName[\"Masks\"] = \"masks.json\";\n FileName[\"Prompts\"] = \"prompts.json\";\n})(FileName || (FileName = {}));\nvar StoreKey;\n(function(StoreKey) {\n StoreKey[\"Chat\"] = \"chat-next-web-store\";\n StoreKey[\"Plugin\"] = \"chat-next-web-plugin\";\n StoreKey[\"Access\"] = \"access-control\";\n StoreKey[\"Config\"] = \"app-config\";\n StoreKey[\"Mask\"] = \"mask-store\";\n StoreKey[\"Prompt\"] = \"prompt-store\";\n StoreKey[\"Update\"] = \"chat-update\";\n StoreKey[\"Sync\"] = \"sync\";\n StoreKey[\"SdList\"] = \"sd-list\";\n StoreKey[\"Mcp\"] = \"mcp-store\";\n})(StoreKey || (StoreKey = {}));\nconst DEFAULT_SIDEBAR_WIDTH = 300;\nconst MAX_SIDEBAR_WIDTH = 500;\nconst MIN_SIDEBAR_WIDTH = 230;\nconst NARROW_SIDEBAR_WIDTH = 100;\nconst ACCESS_CODE_PREFIX = \"nk-\";\nconst LAST_INPUT_KEY = \"last-input\";\nconst UNFINISHED_INPUT = (id)=>\"unfinished-input-\" + id;\nconst STORAGE_KEY = \"chatgpt-next-web\";\nconst REQUEST_TIMEOUT_MS = 60000;\nconst REQUEST_TIMEOUT_MS_FOR_THINKING = REQUEST_TIMEOUT_MS * 5;\nconst EXPORT_MESSAGE_CLASS_NAME = \"export-markdown\";\nvar ServiceProvider;\n(function(ServiceProvider) {\n ServiceProvider[\"OpenAI\"] = \"OpenAI\";\n ServiceProvider[\"Azure\"] = \"Azure\";\n ServiceProvider[\"Google\"] = \"Google\";\n ServiceProvider[\"Anthropic\"] = \"Anthropic\";\n ServiceProvider[\"Baidu\"] = \"Baidu\";\n ServiceProvider[\"ByteDance\"] = \"ByteDance\";\n ServiceProvider[\"Alibaba\"] = \"Alibaba\";\n ServiceProvider[\"Tencent\"] = \"Tencent\";\n ServiceProvider[\"Moonshot\"] = \"Moonshot\";\n ServiceProvider[\"Stability\"] = \"Stability\";\n ServiceProvider[\"Iflytek\"] = \"Iflytek\";\n ServiceProvider[\"XAI\"] = \"XAI\";\n ServiceProvider[\"ChatGLM\"] = \"ChatGLM\";\n ServiceProvider[\"DeepSeek\"] = \"DeepSeek\";\n ServiceProvider[\"SiliconFlow\"] = \"SiliconFlow\";\n})(ServiceProvider || (ServiceProvider = {}));\nvar GoogleSafetySettingsThreshold;\n(function(GoogleSafetySettingsThreshold) {\n GoogleSafetySettingsThreshold[\"BLOCK_NONE\"] = \"BLOCK_NONE\";\n GoogleSafetySettingsThreshold[\"BLOCK_ONLY_HIGH\"] = \"BLOCK_ONLY_HIGH\";\n GoogleSafetySettingsThreshold[\"BLOCK_MEDIUM_AND_ABOVE\"] = \"BLOCK_MEDIUM_AND_ABOVE\";\n GoogleSafetySettingsThreshold[\"BLOCK_LOW_AND_ABOVE\"] = \"BLOCK_LOW_AND_ABOVE\";\n})(GoogleSafetySettingsThreshold || (GoogleSafetySettingsThreshold = {}));\nvar ModelProvider;\n(function(ModelProvider) {\n ModelProvider[\"Stability\"] = \"Stability\";\n ModelProvider[\"GPT\"] = \"GPT\";\n ModelProvider[\"GeminiPro\"] = \"GeminiPro\";\n ModelProvider[\"Claude\"] = \"Claude\";\n ModelProvider[\"Ernie\"] = \"Ernie\";\n ModelProvider[\"Doubao\"] = \"Doubao\";\n ModelProvider[\"Qwen\"] = \"Qwen\";\n ModelProvider[\"Hunyuan\"] = \"Hunyuan\";\n ModelProvider[\"Moonshot\"] = \"Moonshot\";\n ModelProvider[\"Iflytek\"] = \"Iflytek\";\n ModelProvider[\"XAI\"] = \"XAI\";\n ModelProvider[\"ChatGLM\"] = \"ChatGLM\";\n ModelProvider[\"DeepSeek\"] = \"DeepSeek\";\n ModelProvider[\"SiliconFlow\"] = \"SiliconFlow\";\n})(ModelProvider || (ModelProvider = {}));\nconst Stability = {\n GeneratePath: \"v2beta/stable-image/generate\",\n ExampleEndpoint: \"https://api.stability.ai\"\n};\nconst Anthropic = {\n ChatPath: \"v1/messages\",\n ChatPath1: \"v1/complete\",\n ExampleEndpoint: \"https://api.anthropic.com\",\n Vision: \"2023-06-01\"\n};\nconst OpenaiPath = {\n ChatPath: \"v1/chat/completions\",\n SpeechPath: \"v1/audio/speech\",\n ImagePath: \"v1/images/generations\",\n UsagePath: \"dashboard/billing/usage\",\n SubsPath: \"dashboard/billing/subscription\",\n ListModelPath: \"v1/models\"\n};\nconst Azure = {\n ChatPath: (deployName, apiVersion)=>`deployments/${deployName}/chat/completions?api-version=${apiVersion}`,\n // https://<your_resource_name>.openai.azure.com/openai/deployments/<your_deployment_name>/images/generations?api-version=<api_version>\n ImagePath: (deployName, apiVersion)=>`deployments/${deployName}/images/generations?api-version=${apiVersion}`,\n ExampleEndpoint: \"https://{resource-url}/openai\"\n};\nconst Google = {\n ExampleEndpoint: \"https://generativelanguage.googleapis.com/\",\n ChatPath: (modelName)=>`v1beta/models/${modelName}:streamGenerateContent`\n};\nconst Baidu = {\n ExampleEndpoint: BAIDU_BASE_URL,\n ChatPath: (modelName)=>{\n let endpoint = modelName;\n if (modelName === \"ernie-4.0-8k\") {\n endpoint = \"completions_pro\";\n }\n if (modelName === \"ernie-4.0-8k-preview-0518\") {\n endpoint = \"completions_adv_pro\";\n }\n if (modelName === \"ernie-3.5-8k\") {\n endpoint = \"completions\";\n }\n if (modelName === \"ernie-speed-8k\") {\n endpoint = \"ernie_speed\";\n }\n return `rpc/2.0/ai_custom/v1/wenxinworkshop/chat/${endpoint}`;\n }\n};\nconst ByteDance = {\n ExampleEndpoint: \"https://ark.cn-beijing.volces.com/api/\",\n ChatPath: \"api/v3/chat/completions\"\n};\nconst Alibaba = {\n ExampleEndpoint: ALIBABA_BASE_URL,\n ChatPath: \"v1/services/aigc/text-generation/generation\"\n};\nconst Tencent = {\n ExampleEndpoint: TENCENT_BASE_URL\n};\nconst Moonshot = {\n ExampleEndpoint: MOONSHOT_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst Iflytek = {\n ExampleEndpoint: IFLYTEK_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst DeepSeek = {\n ExampleEndpoint: DEEPSEEK_BASE_URL,\n ChatPath: \"chat/completions\"\n};\nconst XAI = {\n ExampleEndpoint: XAI_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst ChatGLM = {\n ExampleEndpoint: CHATGLM_BASE_URL,\n ChatPath: \"api/paas/v4/chat/completions\",\n ImagePath: \"api/paas/v4/images/generations\",\n VideoPath: \"api/paas/v4/videos/generations\"\n};\nconst SiliconFlow = {\n ExampleEndpoint: SILICONFLOW_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst DEFAULT_INPUT_TEMPLATE = `{{input}}`; // input / time / model / lang\n// export const DEFAULT_SYSTEM_TEMPLATE = `\n// You are ChatGPT, a large language model trained by {{ServiceProvider}}.\n// Knowledge cutoff: {{cutoff}}\n// Current model: {{model}}\n// Current time: {{time}}\n// Latex inline: $x^2$\n// Latex block: $$e=mc^2$$\n// `;\nconst DEFAULT_SYSTEM_TEMPLATE = `\r\nYou are ChatGPT, a large language model trained by {{ServiceProvider}}.\r\nKnowledge cutoff: {{cutoff}}\r\nCurrent model: {{model}}\r\nCurrent time: {{time}}\r\nLatex inline: \\\\(x^2\\\\) \r\nLatex block: $$e=mc^2$$\r\n`;\nconst MCP_TOOLS_TEMPLATE = `\r\n[clientId]\r\n{{ clientId }}\r\n[tools]\r\n{{ tools }}\r\n`;\nconst MCP_SYSTEM_TEMPLATE = `\r\nYou are an AI assistant with access to system tools. Your role is to help users by combining natural language understanding with tool operations when needed.\r\n\r\n1. AVAILABLE TOOLS:\r\n{{ MCP_TOOLS }}\r\n\r\n2. WHEN TO USE TOOLS:\r\n - ALWAYS USE TOOLS when they can help answer user questions\r\n - DO NOT just describe what you could do - TAKE ACTION immediately\r\n - If you're not sure whether to use a tool, USE IT\r\n - Common triggers for tool use:\r\n * Questions about files or directories\r\n * Requests to check, list, or manipulate system resources\r\n * Any query that can be answered with available tools\r\n\r\n3. HOW TO USE TOOLS:\r\n A. Tool Call Format:\r\n - Use markdown code blocks with format: \\`\\`\\`json:mcp:{clientId}\\`\\`\\`\r\n - Always include:\r\n * method: \"tools/call\"(Only this method is supported)\r\n * params: \r\n - name: must match an available primitive name\r\n - arguments: required parameters for the primitive\r\n\r\n B. Response Format:\r\n - Tool responses will come as user messages\r\n - Format: \\`\\`\\`json:mcp-response:{clientId}\\`\\`\\`\r\n - Wait for response before making another tool call\r\n\r\n C. Important Rules:\r\n - Only use tools/call method\r\n - Only ONE tool call per message\r\n - ALWAYS TAKE ACTION instead of just describing what you could do\r\n - Include the correct clientId in code block language tag\r\n - Verify arguments match the primitive's requirements\r\n\r\n4. INTERACTION FLOW:\r\n A. When user makes a request:\r\n - IMMEDIATELY use appropriate tool if available\r\n - DO NOT ask if user wants you to use the tool\r\n - DO NOT just describe what you could do\r\n B. After receiving tool response:\r\n - Explain results clearly\r\n - Take next appropriate action if needed\r\n C. If tools fail:\r\n - Explain the error\r\n - Try alternative approach immediately\r\n\r\n5. EXAMPLE INTERACTION:\r\n\r\n good example:\r\n\r\n \\`\\`\\`json:mcp:filesystem\r\n {\r\n \"method\": \"tools/call\",\r\n \"params\": {\r\n \"name\": \"list_allowed_directories\",\r\n \"arguments\": {}\r\n }\r\n }\r\n \\`\\`\\`\"\r\n\r\n\r\n \\`\\`\\`json:mcp-response:filesystem\r\n {\r\n \"method\": \"tools/call\",\r\n \"params\": {\r\n \"name\": \"write_file\",\r\n \"arguments\": {\r\n \"path\": \"/Users/river/dev/nextchat/test/joke.txt\",\r\n \"content\": \"为什么数学书总是感到忧伤?因为它有太多的问题。\"\r\n }\r\n }\r\n }\r\n\\`\\`\\`\r\n\r\n follwing is the wrong! mcp json example:\r\n\r\n \\`\\`\\`json:mcp:filesystem\r\n {\r\n \"method\": \"write_file\",\r\n \"params\": {\r\n \"path\": \"NextChat_Information.txt\",\r\n \"content\": \"1\"\r\n }\r\n }\r\n \\`\\`\\`\r\n\r\n This is wrong because the method is not tools/call.\r\n \r\n \\`\\`\\`{\r\n \"method\": \"search_repositories\",\r\n \"params\": {\r\n \"query\": \"2oeee\"\r\n }\r\n}\r\n \\`\\`\\`\r\n\r\n This is wrong because the method is not tools/call.!!!!!!!!!!!\r\n\r\n the right format is:\r\n \\`\\`\\`json:mcp:filesystem\r\n {\r\n \"method\": \"tools/call\",\r\n \"params\": {\r\n \"name\": \"search_repositories\",\r\n \"arguments\": {\r\n \"query\": \"2oeee\"\r\n }\r\n }\r\n }\r\n \\`\\`\\`\r\n \r\n please follow the format strictly ONLY use tools/call method!!!!!!!!!!!\r\n \r\n`;\nconst SUMMARIZE_MODEL = \"gpt-4o-mini\";\nconst GEMINI_SUMMARIZE_MODEL = \"gemini-pro\";\nconst DEEPSEEK_SUMMARIZE_MODEL = \"deepseek-ai/DeepSeek-V3\";\nconst KnowledgeCutOffDate = {\n default: \"2021-09\",\n \"gpt-4-turbo\": \"2023-12\",\n \"gpt-4-turbo-2024-04-09\": \"2023-12\",\n \"gpt-4-turbo-preview\": \"2023-12\",\n \"gpt-4o\": \"2023-10\",\n \"gpt-4o-2024-05-13\": \"2023-10\",\n \"gpt-4o-2024-08-06\": \"2023-10\",\n \"gpt-4o-2024-11-20\": \"2023-10\",\n \"chatgpt-4o-latest\": \"2023-10\",\n \"gpt-4o-mini\": \"2023-10\",\n \"gpt-4o-mini-2024-07-18\": \"2023-10\",\n \"gpt-4-vision-preview\": \"2023-04\",\n \"o1-mini-2024-09-12\": \"2023-10\",\n \"o1-mini\": \"2023-10\",\n \"o1-preview-2024-09-12\": \"2023-10\",\n \"o1-preview\": \"2023-10\",\n \"o1-2024-12-17\": \"2023-10\",\n o1: \"2023-10\",\n \"o3-mini-2025-01-31\": \"2023-10\",\n \"o3-mini\": \"2023-10\",\n // After improvements,\n // it's now easier to add \"KnowledgeCutOffDate\" instead of stupid hardcoding it, as was done previously.\n \"gemini-pro\": \"2023-12\",\n \"gemini-pro-vision\": \"2023-12\",\n \"deepseek-chat\": \"2024-07\",\n \"deepseek-coder\": \"2024-07\"\n};\nconst DEFAULT_TTS_ENGINE = \"OpenAI-TTS\";\nconst DEFAULT_TTS_ENGINES = [\n \"OpenAI-TTS\",\n \"Edge-TTS\"\n];\nconst DEFAULT_TTS_MODEL = \"tts-1\";\nconst DEFAULT_TTS_VOICE = \"alloy\";\nconst DEFAULT_TTS_MODELS = [\n \"tts-1\",\n \"tts-1-hd\"\n];\nconst DEFAULT_TTS_VOICES = [\n \"alloy\",\n \"echo\",\n \"fable\",\n \"onyx\",\n \"nova\",\n \"shimmer\"\n];\nconst VISION_MODEL_REGEXES = [\n /vision/,\n /gpt-4o/,\n /claude-3/,\n /gemini-1\\.5/,\n /gemini-exp/,\n /gemini-2\\.0/,\n /learnlm/,\n /qwen-vl/,\n /qwen2-vl/,\n /gpt-4-turbo(?!.*preview)/,\n /^dall-e-3$/,\n /glm-4v/\n];\nconst EXCLUDE_VISION_MODEL_REGEXES = [\n /claude-3-5-haiku-20241022/\n];\nconst openaiModels = [];\nconst googleModels = [];\nconst anthropicModels = [];\nconst baiduModels = [];\nconst bytedanceModels = [];\nconst alibabaModes = [];\nconst tencentModels = [];\nconst moonshotModes = [];\nconst iflytekModels = [];\nconst deepseekModels = [];\nconst xAIModes = [];\nconst chatglmModels = [];\nconst siliconflowModels = [\n \"deepseek-ai/DeepSeek-V3\",\n \"deepseek-ai/DeepSeek-R1\"\n];\nlet seq = 1000; // 内置的模型序号生成器从1000开始\nconst DEFAULT_MODELS = [\n ...openaiModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"openai\",\n providerName: \"OpenAI\",\n providerType: \"openai\",\n sorted: 1\n }\n })),\n ...openaiModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"azure\",\n providerName: \"Azure\",\n providerType: \"azure\",\n sorted: 2\n }\n })),\n ...googleModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"google\",\n providerName: \"Google\",\n providerType: \"google\",\n sorted: 3\n }\n })),\n ...anthropicModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"anthropic\",\n providerName: \"Anthropic\",\n providerType: \"anthropic\",\n sorted: 4\n }\n })),\n ...baiduModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"baidu\",\n providerName: \"Baidu\",\n providerType: \"baidu\",\n sorted: 5\n }\n })),\n ...bytedanceModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"bytedance\",\n providerName: \"ByteDance\",\n providerType: \"bytedance\",\n sorted: 6\n }\n })),\n ...alibabaModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"alibaba\",\n providerName: \"Alibaba\",\n providerType: \"alibaba\",\n sorted: 7\n }\n })),\n ...tencentModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"tencent\",\n providerName: \"Tencent\",\n providerType: \"tencent\",\n sorted: 8\n }\n })),\n ...moonshotModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"moonshot\",\n providerName: \"Moonshot\",\n providerType: \"moonshot\",\n sorted: 9\n }\n })),\n ...iflytekModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"iflytek\",\n providerName: \"Iflytek\",\n providerType: \"iflytek\",\n sorted: 10\n }\n })),\n ...xAIModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"xai\",\n providerName: \"XAI\",\n providerType: \"xai\",\n sorted: 11\n }\n })),\n ...chatglmModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"chatglm\",\n providerName: \"ChatGLM\",\n providerType: \"chatglm\",\n sorted: 12\n }\n })),\n ...deepseekModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"deepseek\",\n providerName: \"DeepSeek\",\n providerType: \"deepseek\",\n sorted: 13\n }\n })),\n ...siliconflowModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"siliconflow\",\n providerName: \"SiliconFlow\",\n providerType: \"siliconflow\",\n sorted: 14\n }\n }))\n];\nconst CHAT_PAGE_SIZE = 15;\nconst MAX_RENDER_MSG_COUNT = 45;\n// some famous webdav endpoints\nconst internalAllowedWebDavEndpoints = [\n \"https://dav.jianguoyun.com/dav/\",\n \"https://dav.dropdav.com/\",\n \"https://dav.box.com/dav\",\n \"https://nanao.teracloud.jp/dav/\",\n \"https://bora.teracloud.jp/dav/\",\n \"https://webdav.4shared.com/\",\n \"https://dav.idrivesync.com\",\n \"https://webdav.yandex.com\",\n \"https://app.koofr.net/dav/Koofr\"\n];\nconst DEFAULT_GA_ID = \"G-89WN60ZK2E\";\nconst SAAS_CHAT_URL = \"https://nextchat.dev/chat\";\nconst SAAS_CHAT_UTM_URL = \"https://nextchat.dev/chat?utm=github\";\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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V0FBVztZQUNYQyxRQUFRTDtZQUNSTSxVQUFVO2dCQUNSM0UsSUFBSTtnQkFDSjRFLGNBQWM7Z0JBQ2RDLGNBQWM7Z0JBQ2RILFFBQVE7WUFDVjtRQUNGO0NBQ0QsQ0FBVTtBQUVKLE1BQU1JLGlCQUFpQixHQUFHO0FBQzFCLE1BQU1DLHVCQUF1QixHQUFHO0FBRXZDLCtCQUErQjtBQUN4QixNQUFNQyxpQ0FBaUM7SUFDNUM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0QsQ0FBQztBQUVLLE1BQU1DLGdCQUFnQixlQUFlO0FBRXJDLE1BQU1DLGdCQUFnQiw0QkFBNEI7QUFDbEQsTUFBTUMsb0JBQW9CLHVDQUF1QyIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL2NvbnN0YW50LnRzP2FmNDQiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE9XTkVSID0gXCJDaGF0R1BUTmV4dFdlYlwiO1xyXG5leHBvcnQgY29uc3QgUkVQTyA9IFwiQ2hhdEdQVC1OZXh0LVdlYlwiO1xyXG5leHBvcnQgY29uc3QgUkVQT19VUkwgPSBgaHR0cHM6Ly9naXRodWIuY29tLyR7T1dORVJ9LyR7UkVQT31gO1xyXG5leHBvcnQgY29uc3QgUExVR0lOU19SRVBPX1VSTCA9IGBodHRwczovL2dpdGh1Yi5jb20vJHtPV05FUn0vTmV4dENoYXQtQXdlc29tZS1QbHVnaW5zYDtcclxuZXhwb3J0IGNvbnN0IElTU1VFX1VSTCA9IGBodHRwczovL2dpdGh1Yi5jb20vJHtPV05FUn0vJHtSRVBPfS9pc3N1ZXNgO1xyXG5leHBvcnQgY29uc3QgVVBEQVRFX1VSTCA9IGAke1JFUE9fVVJMfSNrZWVwLXVwZGF0ZWRgO1xyXG5leHBvcnQgY29uc3QgUkVMRUFTRV9VUkwgPSBgJHtSRVBPX1VSTH0vcmVsZWFzZXNgO1xyXG5leHBvcnQgY29uc3QgRkVUQ0hfQ09NTUlUX1VSTCA9IGBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLyR7T1dORVJ9LyR7UkVQT30vY29tbWl0cz9wZXJfcGFnZT0xYDtcclxuZXhwb3J0IGNvbnN0IEZFVENIX1RBR19VUkwgPSBgaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy8ke09XTkVSfS8ke1JFUE99L3RhZ3M/cGVyX3BhZ2U9MWA7XHJcbmV4cG9ydCBjb25zdCBSVU5USU1FX0NPTkZJR19ET00gPSBcImRhbmdlci1ydW50aW1lLWNvbmZpZ1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNUQUJJTElUWV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcGkuc3RhYmlsaXR5LmFpXCI7XHJcblxyXG5leHBvcnQgY29uc3QgT1BFTkFJX0JBU0VfVVJMID0gXCJodHRwczovL2FwaS5vcGVuYWkuY29tXCI7XHJcbmV4cG9ydCBjb25zdCBBTlRIUk9QSUNfQkFTRV9VUkwgPSBcImh0dHBzOi8vYXBpLmFudGhyb3BpYy5jb21cIjtcclxuXHJcbmV4cG9ydCBjb25zdCBHRU1JTklfQkFTRV9VUkwgPSBcImh0dHBzOi8vZ2VuZXJhdGl2ZWxhbmd1YWdlLmdvb2dsZWFwaXMuY29tL1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJBSURVX0JBU0VfVVJMID0gXCJodHRwczovL2FpcC5iYWlkdWJjZS5jb21cIjtcclxuZXhwb3J0IGNvbnN0IEJBSURVX09BVFVIX1VSTCA9IGAke0JBSURVX0JBU0VfVVJMfS9vYXV0aC8yLjAvdG9rZW5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJZVEVEQU5DRV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcmsuY24tYmVpamluZy52b2xjZXMuY29tXCI7XHJcblxyXG5leHBvcnQgY29uc3QgQUxJQkFCQV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly9kYXNoc2NvcGUuYWxpeXVuY3MuY29tL2FwaS9cIjtcclxuXHJcbmV4cG9ydCBjb25zdCBURU5DRU5UX0JBU0VfVVJMID0gXCJodHRwczovL2h1bnl1YW4udGVuY2VudGNsb3VkYXBpLmNvbVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1PT05TSE9UX0JBU0VfVVJMID0gXCJodHRwczovL2FwaS5tb29uc2hvdC5jblwiO1xyXG5leHBvcnQgY29uc3QgSUZMWVRFS19CQVNFX1VSTCA9IFwiaHR0cHM6Ly9zcGFyay1hcGktb3Blbi54Zi15dW4uY29tXCI7XHJcblxyXG5leHBvcnQgY29uc3QgREVFUFNFRUtfQkFTRV9VUkwgPSBcImh0dHBzOi8vYXBpLmRlZXBzZWVrLmNvbVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFhBSV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcGkueC5haVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IENIQVRHTE1fQkFTRV9VUkwgPSBcImh0dHBzOi8vb3Blbi5iaWdtb2RlbC5jblwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNJTElDT05GTE9XX0JBU0VfVVJMID0gXCJodHRwczovL2FwaS5zaWxpY29uZmxvdy5jblwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IENBQ0hFX1VSTF9QUkVGSVggPSBcIi9hcGkvY2FjaGVcIjtcclxuZXhwb3J0IGNvbnN0IFVQTE9BRF9VUkwgPSBgJHtDQUNIRV9VUkxfUFJFRklYfS91cGxvYWRgO1xyXG5cclxuZXhwb3J0IGVudW0gUGF0aCB7XHJcbiAgSG9tZSA9IFwiL1wiLFxyXG4gIENoYXQgPSBcIi9jaGF0XCIsXHJcbiAgU2V0dGluZ3MgPSBcIi9zZXR0aW5nc1wiLFxyXG4gIE5ld0NoYXQgPSBcIi9uZXctY2hhdFwiLFxyXG4gIE1hc2tzID0gXCIvbWFza3NcIixcclxuICBQbHVnaW5zID0gXCIvcGx1Z2luc1wiLFxyXG4gIEF1dGggPSBcIi9hdXRoXCIsXHJcbiAgU2QgPSBcIi9zZFwiLFxyXG4gIFNkTmV3ID0gXCIvc2QtbmV3XCIsXHJcbiAgQXJ0aWZhY3RzID0gXCIvYXJ0aWZhY3RzXCIsXHJcbiAgU2VhcmNoQ2hhdCA9IFwiL3NlYXJjaC1jaGF0XCIsXHJcbiAgTWNwTWFya2V0ID0gXCIvbWNwLW1hcmtldFwiLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBBcGlQYXRoIHtcclxuICBDb3JzID0gXCJcIixcclxuICBBenVyZSA9IFwiL2FwaS9henVyZVwiLFxyXG4gIE9wZW5BSSA9IFwiL2FwaS9vcGVuYWlcIixcclxuICBBbnRocm9waWMgPSBcIi9hcGkvYW50aHJvcGljXCIsXHJcbiAgR29vZ2xlID0gXCIvYXBpL2dvb2dsZVwiLFxyXG4gIEJhaWR1ID0gXCIvYXBpL2JhaWR1XCIsXHJcbiAgQnl0ZURhbmNlID0gXCIvYXBpL2J5dGVkYW5jZVwiLFxyXG4gIEFsaWJhYmEgPSBcIi9hcGkvYWxpYmFiYVwiLFxyXG4gIFRlbmNlbnQgPSBcIi9hcGkvdGVuY2VudFwiLFxyXG4gIE1vb25zaG90ID0gXCIvYXBpL21vb25zaG90XCIsXHJcbiAgSWZseXRlayA9IFwiL2FwaS9pZmx5dGVrXCIsXHJcbiAgU3RhYmlsaXR5ID0gXCIvYXBpL3N0YWJpbGl0eVwiLFxyXG4gIEFydGlmYWN0cyA9IFwiL2FwaS9hcnRpZmFjdHNcIixcclxuICBYQUkgPSBcIi9hcGkveGFpXCIsXHJcbiAgQ2hhdEdMTSA9IFwiL2FwaS9jaGF0Z2xtXCIsXHJcbiAgRGVlcFNlZWsgPSBcIi9hcGkvZGVlcHNlZWtcIixcclxuICBTaWxpY29uRmxvdyA9IFwiL2FwaS9zaWxpY29uZmxvd1wiLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBTbG90SUQge1xyXG4gIEFwcEJvZHkgPSBcImFwcC1ib2R5XCIsXHJcbiAgQ3VzdG9tTW9kZWwgPSBcImN1c3RvbS1tb2RlbFwiLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBGaWxlTmFtZSB7XHJcbiAgTWFza3MgPSBcIm1hc2tzLmpzb25cIixcclxuICBQcm9tcHRzID0gXCJwcm9tcHRzLmpzb25cIixcclxufVxyXG5cclxuZXhwb3J0IGVudW0gU3RvcmVLZXkge1xyXG4gIENoYXQgPSBcImNoYXQtbmV4dC13ZWItc3RvcmVcIixcclxuICBQbHVnaW4gPSBcImNoYXQtbmV4dC13ZWItcGx1Z2luXCIsXHJcbiAgQWNjZXNzID0gXCJhY2Nlc3MtY29udHJvbFwiLFxyXG4gIENvbmZpZyA9IFwiYXBwLWNvbmZpZ1wiLFxyXG4gIE1hc2sgPSBcIm1hc2stc3RvcmVcIixcclxuICBQcm9tcHQgPSBcInByb21wdC1zdG9yZVwiLFxyXG4gIFVwZGF0ZSA9IFwiY2hhdC11cGRhdGVcIixcclxuICBTeW5jID0gXCJzeW5jXCIsXHJcbiAgU2RMaXN0ID0gXCJzZC1saXN0XCIsXHJcbiAgTWNwID0gXCJtY3Atc3RvcmVcIixcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0lERUJBUl9XSURUSCA9IDMwMDtcclxuZXhwb3J0IGNvbnN0IE1BWF9TSURFQkFSX1dJRFRIID0gNTAwO1xyXG5leHBvcnQgY29uc3QgTUlOX1NJREVCQVJfV0lEVEggPSAyMzA7XHJcbmV4cG9ydCBjb25zdCBOQVJST1dfU0lERUJBUl9XSURUSCA9IDEwMDtcclxuXHJcbmV4cG9ydCBjb25zdCBBQ0NFU1NfQ09ERV9QUkVGSVggPSBcIm5rLVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IExBU1RfSU5QVVRfS0VZID0gXCJsYXN0LWlucHV0XCI7XHJcbmV4cG9ydCBjb25zdCBVTkZJTklTSEVEX0lOUFVUID0gKGlkOiBzdHJpbmcpID0+IFwidW5maW5pc2hlZC1pbnB1dC1cIiArIGlkO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNUT1JBR0VfS0VZID0gXCJjaGF0Z3B0LW5leHQtd2ViXCI7XHJcblxyXG5leHBvcnQgY29uc3QgUkVRVUVTVF9USU1FT1VUX01TID0gNjAwMDA7XHJcbmV4cG9ydCBjb25zdCBSRVFVRVNUX1RJTUVPVVRfTVNfRk9SX1RISU5LSU5HID0gUkVRVUVTVF9USU1FT1VUX01TICogNTtcclxuXHJcbmV4cG9ydCBjb25zdCBFWFBPUlRfTUVTU0FHRV9DTEFTU19OQU1FID0gXCJleHBvcnQtbWFya2Rvd25cIjtcclxuXHJcbmV4cG9ydCBlbnVtIFNlcnZpY2VQcm92aWRlciB7XHJcbiAgT3BlbkFJID0gXCJPcGVuQUlcIixcclxuICBBenVyZSA9IFwiQXp1cmVcIixcclxuICBHb29nbGUgPSBcIkdvb2dsZVwiLFxyXG4gIEFudGhyb3BpYyA9IFwiQW50aHJvcGljXCIsXHJcbiAgQmFpZHUgPSBcIkJhaWR1XCIsXHJcbiAgQnl0ZURhbmNlID0gXCJCeXRlRGFuY2VcIixcclxuICBBbGliYWJhID0gXCJBbGliYWJhXCIsXHJcbiAgVGVuY2VudCA9IFwiVGVuY2VudFwiLFxyXG4gIE1vb25zaG90ID0gXCJNb29uc2hvdFwiLFxyXG4gIFN0YWJpbGl0eSA9IFwiU3RhYmlsaXR5XCIsXHJcbiAgSWZseXRlayA9IFwiSWZseXRla1wiLFxyXG4gIFhBSSA9IFwiWEFJXCIsXHJcbiAgQ2hhdEdMTSA9IFwiQ2hhdEdMTVwiLFxyXG4gIERlZXBTZWVrID0gXCJEZWVwU2Vla1wiLFxyXG4gIFNpbGljb25GbG93ID0gXCJTaWxpY29uRmxvd1wiLFxyXG59XHJcblxyXG4vLyBHb29nbGUgQVBJIHNhZmV0eSBzZXR0aW5ncywgc2VlIGh0dHBzOi8vYWkuZ29vZ2xlLmRldi9nZW1pbmktYXBpL2RvY3Mvc2FmZXR5LXNldHRpbmdzXHJcbi8vIEJMT0NLX05PTkUgd2lsbCBub3QgYmxvY2sgYW55IGNvbnRlbnQsIGFuZCBCTE9DS19PTkxZX0hJR0ggd2lsbCBibG9jayBvbmx5IGhpZ2gtcmlzayBjb250ZW50LlxyXG5leHBvcnQgZW51bSBHb29nbGVTYWZldHlTZXR0aW5nc1RocmVzaG9sZCB7XHJcbiAgQkxPQ0tfTk9ORSA9IFwiQkxPQ0tfTk9ORVwiLFxyXG4gIEJMT0NLX09OTFlfSElHSCA9IFwiQkxPQ0tfT05MWV9ISUdIXCIsXHJcbiAgQkxPQ0tfTUVESVVNX0FORF9BQk9WRSA9IFwiQkxPQ0tfTUVESVVNX0FORF9BQk9WRVwiLFxyXG4gIEJMT0NLX0xPV19BTkRfQUJPVkUgPSBcIkJMT0NLX0xPV19BTkRfQUJPVkVcIixcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTW9kZWxQcm92aWRlciB7XHJcbiAgU3RhYmlsaXR5ID0gXCJTdGFiaWxpdHlcIixcclxuICBHUFQgPSBcIkdQVFwiLFxyXG4gIEdlbWluaVBybyA9IFwiR2VtaW5pUHJvXCIsXHJcbiAgQ2xhdWRlID0gXCJDbGF1ZGVcIixcclxuICBFcm5pZSA9IFwiRXJuaWVcIixcclxuICBEb3ViYW8gPSBcIkRvdWJhb1wiLFxyXG4gIFF3ZW4gPSBcIlF3ZW5cIixcclxuICBIdW55dWFuID0gXCJIdW55dWFuXCIsXHJcbiAgTW9vbnNob3QgPSBcIk1vb25zaG90XCIsXHJcbiAgSWZseXRlayA9IFwiSWZseXRla1wiLFxyXG4gIFhBSSA9IFwiWEFJXCIsXHJcbiAgQ2hhdEdMTSA9IFwiQ2hhdEdMTVwiLFxyXG4gIERlZXBTZWVrID0gXCJEZWVwU2Vla1wiLFxyXG4gIFNpbGljb25GbG93ID0gXCJTaWxpY29uRmxvd1wiLFxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgU3RhYmlsaXR5ID0ge1xyXG4gIEdlbmVyYXRlUGF0aDogXCJ2MmJldGEvc3RhYmxlLWltYWdlL2dlbmVyYXRlXCIsXHJcbiAgRXhhbXBsZUVuZHBvaW50OiBcImh0dHBzOi8vYXBpLnN0YWJpbGl0eS5haVwiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEFudGhyb3BpYyA9IHtcclxuICBDaGF0UGF0aDogXCJ2MS9tZXNzYWdlc1wiLFxyXG4gIENoYXRQYXRoMTogXCJ2MS9jb21wbGV0ZVwiLFxyXG4gIEV4YW1wbGVFbmRwb2ludDogXCJodHRwczovL2FwaS5hbnRocm9waWMuY29tXCIsXHJcbiAgVmlzaW9uOiBcIjIwMjMtMDYtMDFcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBPcGVuYWlQYXRoID0ge1xyXG4gIENoYXRQYXRoOiBcInYxL2NoYXQvY29tcGxldGlvbnNcIixcclxuICBTcGVlY2hQYXRoOiBcInYxL2F1ZGlvL3NwZWVjaFwiLFxyXG4gIEltYWdlUGF0aDogXCJ2MS9pbWFnZXMvZ2VuZXJhdGlvbnNcIixcclxuICBVc2FnZVBhdGg6IFwiZGFzaGJvYXJkL2JpbGxpbmcvdXNhZ2VcIixcclxuICBTdWJzUGF0aDogXCJkYXNoYm9hcmQvYmlsbGluZy9zdWJzY3JpcHRpb25cIixcclxuICBMaXN0TW9kZWxQYXRoOiBcInYxL21vZGVsc1wiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEF6dXJlID0ge1xyXG4gIENoYXRQYXRoOiAoZGVwbG95TmFtZTogc3RyaW5nLCBhcGlWZXJzaW9uOiBzdHJpbmcpID0+XHJcbiAgICBgZGVwbG95bWVudHMvJHtkZXBsb3lOYW1lfS9jaGF0L2NvbXBsZXRpb25zP2FwaS12ZXJzaW9uPSR7YXBpVmVyc2lvbn1gLFxyXG4gIC8vIGh0dHBzOi8vPHlvdXJfcmVzb3VyY2VfbmFtZT4ub3BlbmFpLmF6dXJlLmNvbS9vcGVuYWkvZGVwbG95bWVudHMvPHlvdXJfZGVwbG95bWVudF9uYW1lPi9pbWFnZXMvZ2VuZXJhdGlvbnM/YXBpLXZlcnNpb249PGFwaV92ZXJzaW9uPlxyXG4gIEltYWdlUGF0aDogKGRlcGxveU5hbWU6IHN0cmluZywgYXBpVmVyc2lvbjogc3RyaW5nKSA9PlxyXG4gICAgYGRlcGxveW1lbnRzLyR7ZGVwbG95TmFtZX0vaW1hZ2VzL2dlbmVyYXRpb25zP2FwaS12ZXJzaW9uPSR7YXBpVmVyc2lvbn1gLFxyXG4gIEV4YW1wbGVFbmRwb2ludDogXCJodHRwczovL3tyZXNvdXJjZS11cmx9L29wZW5haVwiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEdvb2dsZSA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFwiaHR0cHM6Ly9nZW5lcmF0aXZlbGFuZ3VhZ2UuZ29vZ2xlYXBpcy5jb20vXCIsXHJcbiAgQ2hhdFBhdGg6IChtb2RlbE5hbWU6IHN0cmluZykgPT5cclxuICAgIGB2MWJldGEvbW9kZWxzLyR7bW9kZWxOYW1lfTpzdHJlYW1HZW5lcmF0ZUNvbnRlbnRgLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEJhaWR1ID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogQkFJRFVfQkFTRV9VUkwsXHJcbiAgQ2hhdFBhdGg6IChtb2RlbE5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgbGV0IGVuZHBvaW50ID0gbW9kZWxOYW1lO1xyXG4gICAgaWYgKG1vZGVsTmFtZSA9PT0gXCJlcm5pZS00LjAtOGtcIikge1xyXG4gICAgICBlbmRwb2ludCA9IFwiY29tcGxldGlvbnNfcHJvXCI7XHJcbiAgICB9XHJcbiAgICBpZiAobW9kZWxOYW1lID09PSBcImVybmllLTQuMC04ay1wcmV2aWV3LTA1MThcIikge1xyXG4gICAgICBlbmRwb2ludCA9IFwiY29tcGxldGlvbnNfYWR2X3Byb1wiO1xyXG4gICAgfVxyXG4gICAgaWYgKG1vZGVsTmFtZSA9PT0gXCJlcm5pZS0zLjUtOGtcIikge1xyXG4gICAgICBlbmRwb2ludCA9IFwiY29tcGxldGlvbnNcIjtcclxuICAgIH1cclxuICAgIGlmIChtb2RlbE5hbWUgPT09IFwiZXJuaWUtc3BlZWQtOGtcIikge1xyXG4gICAgICBlbmRwb2ludCA9IFwiZXJuaWVfc3BlZWRcIjtcclxuICAgIH1cclxuICAgIHJldHVybiBgcnBjLzIuMC9haV9jdXN0b20vdjEvd2VueGlud29ya3Nob3AvY2hhdC8ke2VuZHBvaW50fWA7XHJcbiAgfSxcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBCeXRlRGFuY2UgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBcImh0dHBzOi8vYXJrLmNuLWJlaWppbmcudm9sY2VzLmNvbS9hcGkvXCIsXHJcbiAgQ2hhdFBhdGg6IFwiYXBpL3YzL2NoYXQvY29tcGxldGlvbnNcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBBbGliYWJhID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogQUxJQkFCQV9CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJ2MS9zZXJ2aWNlcy9haWdjL3RleHQtZ2VuZXJhdGlvbi9nZW5lcmF0aW9uXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgVGVuY2VudCA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFRFTkNFTlRfQkFTRV9VUkwsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgTW9vbnNob3QgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBNT09OU0hPVF9CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJ2MS9jaGF0L2NvbXBsZXRpb25zXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgSWZseXRlayA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IElGTFlURUtfQkFTRV9VUkwsXHJcbiAgQ2hhdFBhdGg6IFwidjEvY2hhdC9jb21wbGV0aW9uc1wiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IERlZXBTZWVrID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogREVFUFNFRUtfQkFTRV9VUkwsXHJcbiAgQ2hhdFBhdGg6IFwiY2hhdC9jb21wbGV0aW9uc1wiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IFhBSSA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFhBSV9CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJ2MS9jaGF0L2NvbXBsZXRpb25zXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgQ2hhdEdMTSA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IENIQVRHTE1fQkFTRV9VUkwsXHJcbiAgQ2hhdFBhdGg6IFwiYXBpL3BhYXMvdjQvY2hhdC9jb21wbGV0aW9uc1wiLFxyXG4gIEltYWdlUGF0aDogXCJhcGkvcGFhcy92NC9pbWFnZXMvZ2VuZXJhdGlvbnNcIixcclxuICBWaWRlb1BhdGg6IFwiYXBpL3BhYXMvdjQvdmlkZW9zL2dlbmVyYXRpb25zXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgU2lsaWNvbkZsb3cgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBTSUxJQ09ORkxPV19CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJ2MS9jaGF0L2NvbXBsZXRpb25zXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlBVVF9URU1QTEFURSA9IGB7e2lucHV0fX1gOyAvLyBpbnB1dCAvIHRpbWUgLyBtb2RlbCAvIGxhbmdcclxuLy8gZXhwb3J0IGNvbnN0IERFRkFVTFRfU1lTVEVNX1RFTVBMQVRFID0gYFxyXG4vLyBZb3UgYXJlIENoYXRHUFQsIGEgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgdHJhaW5lZCBieSB7e1NlcnZpY2VQcm92aWRlcn19LlxyXG4vLyBLbm93bGVkZ2UgY3V0b2ZmOiB7e2N1dG9mZn19XHJcbi8vIEN1cnJlbnQgbW9kZWw6IHt7bW9kZWx9fVxyXG4vLyBDdXJyZW50IHRpbWU6IHt7dGltZX19XHJcbi8vIExhdGV4IGlubGluZTogJHheMiRcclxuLy8gTGF0ZXggYmxvY2s6ICQkZT1tY14yJCRcclxuLy8gYDtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU1lTVEVNX1RFTVBMQVRFID0gYFxyXG5Zb3UgYXJlIENoYXRHUFQsIGEgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWwgdHJhaW5lZCBieSB7e1NlcnZpY2VQcm92aWRlcn19LlxyXG5Lbm93bGVkZ2UgY3V0b2ZmOiB7e2N1dG9mZn19XHJcbkN1cnJlbnQgbW9kZWw6IHt7bW9kZWx9fVxyXG5DdXJyZW50IHRpbWU6IHt7dGltZX19XHJcbkxhdGV4IGlubGluZTogXFxcXCh4XjJcXFxcKSBcclxuTGF0ZXggYmxvY2s6ICQkZT1tY14yJCRcclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBNQ1BfVE9PTFNfVEVNUExBVEUgPSBgXHJcbltjbGllbnRJZF1cclxue3sgY2xpZW50SWQgfX1cclxuW3Rvb2xzXVxyXG57eyB0b29scyB9fVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1DUF9TWVNURU1fVEVNUExBVEUgPSBgXHJcbllvdSBhcmUgYW4gQUkgYXNzaXN0YW50IHdpdGggYWNjZXNzIHRvIHN5c3RlbSB0b29scy4gWW91ciByb2xlIGlzIHRvIGhlbHAgdXNlcnMgYnkgY29tYmluaW5nIG5hdHVyYWwgbGFuZ3VhZ2UgdW5kZXJzdGFuZGluZyB3aXRoIHRvb2wgb3BlcmF0aW9ucyB3aGVuIG5lZWRlZC5cclxuXHJcbjEuIEFWQUlMQUJMRSBUT09MUzpcclxue3sgTUNQX1RPT0xTIH19XHJcblxyXG4yLiBXSEVOIFRPIFVTRSBUT09MUzpcclxuICAgLSBBTFdBWVMgVVNFIFRPT0xTIHdoZW4gdGhleSBjYW4gaGVscCBhbnN3ZXIgdXNlciBxdWVzdGlvbnNcclxuICAgLSBETyBOT1QganVzdCBkZXNjcmliZSB3aGF0IHlvdSBjb3VsZCBkbyAtIFRBS0UgQUNUSU9OIGltbWVkaWF0ZWx5XHJcbiAgIC0gSWYgeW91J3JlIG5vdCBzdXJlIHdoZXRoZXIgdG8gdXNlIGEgdG9vbCwgVVNFIElUXHJcbiAgIC0gQ29tbW9uIHRyaWdnZXJzIGZvciB0b29sIHVzZTpcclxuICAgICAqIFF1ZXN0aW9ucyBhYm91dCBmaWxlcyBvciBkaXJlY3Rvcmllc1xyXG4gICAgICogUmVxdWVzdHMgdG8gY2hlY2ssIGxpc3QsIG9yIG1hbmlwdWxhdGUgc3lzdGVtIHJlc291cmNlc1xyXG4gICAgICogQW55IHF1ZXJ5IHRoYXQgY2FuIGJlIGFuc3dlcmVkIHdpdGggYXZhaWxhYmxlIHRvb2xzXHJcblxyXG4zLiBIT1cgVE8gVVNFIFRPT0xTOlxyXG4gICBBLiBUb29sIENhbGwgRm9ybWF0OlxyXG4gICAgICAtIFVzZSBtYXJrZG93biBjb2RlIGJsb2NrcyB3aXRoIGZvcm1hdDogXFxgXFxgXFxganNvbjptY3A6e2NsaWVudElkfVxcYFxcYFxcYFxyXG4gICAgICAtIEFsd2F5cyBpbmNsdWRlOlxyXG4gICAgICAgICogbWV0aG9kOiBcInRvb2xzL2NhbGxcIu+8iE9ubHkgdGhpcyBtZXRob2QgaXMgc3VwcG9ydGVk77yJXHJcbiAgICAgICAgKiBwYXJhbXM6IFxyXG4gICAgICAgICAgLSBuYW1lOiBtdXN0IG1hdGNoIGFuIGF2YWlsYWJsZSBwcmltaXRpdmUgbmFtZVxyXG4gICAgICAgICAgLSBhcmd1bWVudHM6IHJlcXVpcmVkIHBhcmFtZXRlcnMgZm9yIHRoZSBwcmltaXRpdmVcclxuXHJcbiAgIEIuIFJlc3BvbnNlIEZvcm1hdDpcclxuICAgICAgLSBUb29sIHJlc3BvbnNlcyB3aWxsIGNvbWUgYXMgdXNlciBtZXNzYWdlc1xyXG4gICAgICAtIEZvcm1hdDogXFxgXFxgXFxganNvbjptY3AtcmVzcG9uc2U6e2NsaWVudElkfVxcYFxcYFxcYFxyXG4gICAgICAtIFdhaXQgZm9yIHJlc3BvbnNlIGJlZm9yZSBtYWtpbmcgYW5vdGhlciB0b29sIGNhbGxcclxuXHJcbiAgIEMuIEltcG9ydGFudCBSdWxlczpcclxuICAgICAgLSBPbmx5IHVzZSB0b29scy9jYWxsIG1ldGhvZFxyXG4gICAgICAtIE9ubHkgT05FIHRvb2wgY2FsbCBwZXIgbWVzc2FnZVxyXG4gICAgICAtIEFMV0FZUyBUQUtFIEFDVElPTiBpbnN0ZWFkIG9mIGp1c3QgZGVzY3JpYmluZyB3aGF0IHlvdSBjb3VsZCBkb1xyXG4gICAgICAtIEluY2x1ZGUgdGhlIGNvcnJlY3QgY2xpZW50SWQgaW4gY29kZSBibG9jayBsYW5ndWFnZSB0YWdcclxuICAgICAgLSBWZXJpZnkgYXJndW1lbnRzIG1hdGNoIHRoZSBwcmltaXRpdmUncyByZXF1aXJlbWVudHNcclxuXHJcbjQuIElOVEVSQUNUSU9OIEZMT1c6XHJcbiAgIEEuIFdoZW4gdXNlciBtYWtlcyBhIHJlcXVlc3Q6XHJcbiAgICAgIC0gSU1NRURJQVRFTFkgdXNlIGFwcHJvcHJpYXRlIHRvb2wgaWYgYXZhaWxhYmxlXHJcbiAgICAgIC0gRE8gTk9UIGFzayBpZiB1c2VyIHdhbnRzIHlvdSB0byB1c2UgdGhlIHRvb2xcclxuICAgICAgLSBETyBOT1QganVzdCBkZXNjcmliZSB3aGF0IHlvdSBjb3VsZCBkb1xyXG4gICBCLiBBZnRlciByZWNlaXZpbmcgdG9vbCByZXNwb25zZTpcclxuICAgICAgLSBFeHBsYWluIHJlc3VsdHMgY2xlYXJseVxyXG4gICAgICAtIFRha2UgbmV4dCBhcHByb3ByaWF0ZSBhY3Rpb24gaWYgbmVlZGVkXHJcbiAgIEMuIElmIHRvb2xzIGZhaWw6XHJcbiAgICAgIC0gRXhwbGFpbiB0aGUgZXJyb3JcclxuICAgICAgLSBUcnkgYWx0ZXJuYXRpdmUgYXBwcm9hY2ggaW1tZWRpYXRlbHlcclxuXHJcbjUuIEVYQU1QTEUgSU5URVJBQ1RJT046XHJcblxyXG4gIGdvb2QgZXhhbXBsZTpcclxuXHJcbiAgIFxcYFxcYFxcYGpzb246bWNwOmZpbGVzeXN0ZW1cclxuICAge1xyXG4gICAgIFwibWV0aG9kXCI6IFwidG9vbHMvY2FsbFwiLFxyXG4gICAgIFwicGFyYW1zXCI6IHtcclxuICAgICAgIFwibmFtZVwiOiBcImxpc3RfYWxsb3dlZF9kaXJlY3Rvcmllc1wiLFxyXG4gICAgICAgXCJhcmd1bWVudHNcIjoge31cclxuICAgICB9XHJcbiAgIH1cclxuICAgXFxgXFxgXFxgXCJcclxuXHJcblxyXG4gIFxcYFxcYFxcYGpzb246bWNwLXJlc3BvbnNlOmZpbGVzeXN0ZW1cclxuICB7XHJcbiAgXCJtZXRob2RcIjogXCJ0b29scy9jYWxsXCIsXHJcbiAgXCJwYXJhbXNcIjoge1xyXG4gICAgXCJuYW1lXCI6IFwid3JpdGVfZmlsZVwiLFxyXG4gICAgXCJhcmd1bWVudHNcIjoge1xyXG4gICAgICBcInBhdGhcIjogXCIvVXNlcnMvcml2ZXIvZGV2L25leHRjaGF0L3Rlc3Qvam9rZS50eHRcIixcclxuICAgICAgXCJjb250ZW50XCI6IFwi5Li65LuA5LmI5pWw5a2m5Lmm5oC75piv5oSf5Yiw5b+n5Lyk77yf5Zug5Li65a6D5pyJ5aSq5aSa55qE6Zeu6aKY44CCXCJcclxuICAgIH1cclxuICB9XHJcbiAgfVxyXG5cXGBcXGBcXGBcclxuXHJcbiAgIGZvbGx3aW5nIGlzIHRoZSB3cm9uZyEgbWNwIGpzb24gZXhhbXBsZTpcclxuXHJcbiAgIFxcYFxcYFxcYGpzb246bWNwOmZpbGVzeXN0ZW1cclxuICAge1xyXG4gICAgICBcIm1ldGhvZFwiOiBcIndyaXRlX2ZpbGVcIixcclxuICAgICAgXCJwYXJhbXNcIjoge1xyXG4gICAgICAgIFwicGF0aFwiOiBcIk5leHRDaGF0X0luZm9ybWF0aW9uLnR4dFwiLFxyXG4gICAgICAgIFwiY29udGVudFwiOiBcIjFcIlxyXG4gICAgfVxyXG4gICB9XHJcbiAgIFxcYFxcYFxcYFxyXG5cclxuICAgVGhpcyBpcyB3cm9uZyBiZWNhdXNlIHRoZSBtZXRob2QgaXMgbm90IHRvb2xzL2NhbGwuXHJcbiAgIFxyXG4gICBcXGBcXGBcXGB7XHJcbiAgXCJtZXRob2RcIjogXCJzZWFyY2hfcmVwb3NpdG9yaWVzXCIsXHJcbiAgXCJwYXJhbXNcIjoge1xyXG4gICAgXCJxdWVyeVwiOiBcIjJvZWVlXCJcclxuICB9XHJcbn1cclxuICAgXFxgXFxgXFxgXHJcblxyXG4gICBUaGlzIGlzIHdyb25nIGJlY2F1c2UgdGhlIG1ldGhvZCBpcyBub3QgdG9vbHMvY2FsbC4hISEhISEhISEhIVxyXG5cclxuICAgdGhlIHJpZ2h0IGZvcm1hdCBpczpcclxuICAgXFxgXFxgXFxganNvbjptY3A6ZmlsZXN5c3RlbVxyXG4gICB7XHJcbiAgICAgXCJtZXRob2RcIjogXCJ0b29scy9jYWxsXCIsXHJcbiAgICAgXCJwYXJhbXNcIjoge1xyXG4gICAgICAgXCJuYW1lXCI6IFwic2VhcmNoX3JlcG9zaXRvcmllc1wiLFxyXG4gICAgICAgXCJhcmd1bWVudHNcIjoge1xyXG4gICAgICAgICBcInF1ZXJ5XCI6IFwiMm9lZWVcIlxyXG4gICAgICAgfVxyXG4gICAgIH1cclxuICAgfVxyXG4gICBcXGBcXGBcXGBcclxuICAgXHJcbiAgIHBsZWFzZSBmb2xsb3cgdGhlIGZvcm1hdCBzdHJpY3RseSBPTkxZIHVzZSB0b29scy9jYWxsIG1ldGhvZCEhISEhISEhISEhXHJcbiAgIFxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNVTU1BUklaRV9NT0RFTCA9IFwiZ3B0LTRvLW1pbmlcIjtcclxuZXhwb3J0IGNvbnN0IEdFTUlOSV9TVU1NQVJJWkVfTU9ERUwgPSBcImdlbWluaS1wcm9cIjtcclxuZXhwb3J0IGNvbnN0IERFRVBTRUVLX1NVTU1BUklaRV9NT0RFTCA9IFwiZGVlcHNlZWstYWkvRGVlcFNlZWstVjNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBLbm93bGVkZ2VDdXRPZmZEYXRlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xyXG4gIGRlZmF1bHQ6IFwiMjAyMS0wOVwiLFxyXG4gIFwiZ3B0LTQtdHVyYm9cIjogXCIyMDIzLTEyXCIsXHJcbiAgXCJncHQtNC10dXJiby0yMDI0LTA0LTA5XCI6IFwiMjAyMy0xMlwiLFxyXG4gIFwiZ3B0LTQtdHVyYm8tcHJldmlld1wiOiBcIjIwMjMtMTJcIixcclxuICBcImdwdC00b1wiOiBcIjIwMjMtMTBcIixcclxuICBcImdwdC00by0yMDI0LTA1LTEzXCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwiZ3B0LTRvLTIwMjQtMDgtMDZcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJncHQtNG8tMjAyNC0xMS0yMFwiOiBcIjIwMjMtMTBcIixcclxuICBcImNoYXRncHQtNG8tbGF0ZXN0XCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwiZ3B0LTRvLW1pbmlcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJncHQtNG8tbWluaS0yMDI0LTA3LTE4XCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwiZ3B0LTQtdmlzaW9uLXByZXZpZXdcIjogXCIyMDIzLTA0XCIsXHJcbiAgXCJvMS1taW5pLTIwMjQtMDktMTJcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJvMS1taW5pXCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwibzEtcHJldmlldy0yMDI0LTA5LTEyXCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwibzEtcHJldmlld1wiOiBcIjIwMjMtMTBcIixcclxuICBcIm8xLTIwMjQtMTItMTdcIjogXCIyMDIzLTEwXCIsXHJcbiAgbzE6IFwiMjAyMy0xMFwiLFxyXG4gIFwibzMtbWluaS0yMDI1LTAxLTMxXCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwibzMtbWluaVwiOiBcIjIwMjMtMTBcIixcclxuICAvLyBBZnRlciBpbXByb3ZlbWVudHMsXHJcbiAgLy8gaXQncyBub3cgZWFzaWVyIHRvIGFkZCBcIktub3dsZWRnZUN1dE9mZkRhdGVcIiBpbnN0ZWFkIG9mIHN0dXBpZCBoYXJkY29kaW5nIGl0LCBhcyB3YXMgZG9uZSBwcmV2aW91c2x5LlxyXG4gIFwiZ2VtaW5pLXByb1wiOiBcIjIwMjMtMTJcIixcclxuICBcImdlbWluaS1wcm8tdmlzaW9uXCI6IFwiMjAyMy0xMlwiLFxyXG4gIFwiZGVlcHNlZWstY2hhdFwiOiBcIjIwMjQtMDdcIixcclxuICBcImRlZXBzZWVrLWNvZGVyXCI6IFwiMjAyNC0wN1wiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVFRTX0VOR0lORSA9IFwiT3BlbkFJLVRUU1wiO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9UVFNfRU5HSU5FUyA9IFtcIk9wZW5BSS1UVFNcIiwgXCJFZGdlLVRUU1wiXTtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVFRTX01PREVMID0gXCJ0dHMtMVwiO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9UVFNfVk9JQ0UgPSBcImFsbG95XCI7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1RUU19NT0RFTFMgPSBbXCJ0dHMtMVwiLCBcInR0cy0xLWhkXCJdO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9UVFNfVk9JQ0VTID0gW1xyXG4gIFwiYWxsb3lcIixcclxuICBcImVjaG9cIixcclxuICBcImZhYmxlXCIsXHJcbiAgXCJvbnl4XCIsXHJcbiAgXCJub3ZhXCIsXHJcbiAgXCJzaGltbWVyXCIsXHJcbl07XHJcblxyXG5leHBvcnQgY29uc3QgVklTSU9OX01PREVMX1JFR0VYRVMgPSBbXHJcbiAgL3Zpc2lvbi8sXHJcbiAgL2dwdC00by8sXHJcbiAgL2NsYXVkZS0zLyxcclxuICAvZ2VtaW5pLTFcXC41LyxcclxuICAvZ2VtaW5pLWV4cC8sXHJcbiAgL2dlbWluaS0yXFwuMC8sXHJcbiAgL2xlYXJubG0vLFxyXG4gIC9xd2VuLXZsLyxcclxuICAvcXdlbjItdmwvLFxyXG4gIC9ncHQtNC10dXJibyg/IS4qcHJldmlldykvLCAvLyBNYXRjaGVzIFwiZ3B0LTQtdHVyYm9cIiBidXQgbm90IFwiZ3B0LTQtdHVyYm8tcHJldmlld1wiXHJcbiAgL15kYWxsLWUtMyQvLCAvLyBNYXRjaGVzIGV4YWN0bHkgXCJkYWxsLWUtM1wiXHJcbiAgL2dsbS00di8sXHJcbl07XHJcblxyXG5leHBvcnQgY29uc3QgRVhDTFVERV9WSVNJT05fTU9ERUxfUkVHRVhFUyA9IFsvY2xhdWRlLTMtNS1oYWlrdS0yMDI0MTAyMi9dO1xyXG5cclxuY29uc3Qgb3BlbmFpTW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgZ29vZ2xlTW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgYW50aHJvcGljTW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgYmFpZHVNb2RlbHMgPSBbXHJcbl07XHJcblxyXG5jb25zdCBieXRlZGFuY2VNb2RlbHMgPSBbXHJcbl07XHJcblxyXG5jb25zdCBhbGliYWJhTW9kZXMgPSBbXHJcbl07XHJcblxyXG5jb25zdCB0ZW5jZW50TW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgbW9vbnNob3RNb2RlcyA9IFtdO1xyXG5cclxuY29uc3QgaWZseXRla01vZGVscyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IGRlZXBzZWVrTW9kZWxzID0gW107XHJcblxyXG5jb25zdCB4QUlNb2RlcyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IGNoYXRnbG1Nb2RlbHMgPSBbXHJcbl07XHJcblxyXG5jb25zdCBzaWxpY29uZmxvd01vZGVscyA9IFtcclxuICBcImRlZXBzZWVrLWFpL0RlZXBTZWVrLVYzXCIsXHJcbiAgXCJkZWVwc2Vlay1haS9EZWVwU2Vlay1SMVwiLFxyXG5dO1xyXG5cclxubGV0IHNlcSA9IDEwMDA7IC8vIOWGhee9rueahOaooeWei+W6j+WPt+eUn+aIkOWZqOS7jjEwMDDlvIDlp4tcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTU9ERUxTID0gW1xyXG4gIC4uLm9wZW5haU1vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKywgLy8gR2xvYmFsIHNlcXVlbmNlIHNvcnQoaW5kZXgpXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJvcGVuYWlcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIk9wZW5BSVwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwib3BlbmFpXCIsXHJcbiAgICAgIHNvcnRlZDogMSwgLy8g6L+Z6YeM5piv5Zu65a6a55qE77yM56Gu5L+d6aG65bqP5LiO5LmL5YmN5YaF572u55qE54mI5pys5LiA6Ie0XHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5vcGVuYWlNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJhenVyZVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiQXp1cmVcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcImF6dXJlXCIsXHJcbiAgICAgIHNvcnRlZDogMixcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLmdvb2dsZU1vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcImdvb2dsZVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiR29vZ2xlXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJnb29nbGVcIixcclxuICAgICAgc29ydGVkOiAzLFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4uYW50aHJvcGljTW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiYW50aHJvcGljXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJBbnRocm9waWNcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcImFudGhyb3BpY1wiLFxyXG4gICAgICBzb3J0ZWQ6IDQsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5iYWlkdU1vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcImJhaWR1XCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJCYWlkdVwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiYmFpZHVcIixcclxuICAgICAgc29ydGVkOiA1LFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4uYnl0ZWRhbmNlTW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiYnl0ZWRhbmNlXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJCeXRlRGFuY2VcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcImJ5dGVkYW5jZVwiLFxyXG4gICAgICBzb3J0ZWQ6IDYsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5hbGliYWJhTW9kZXMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJhbGliYWJhXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJBbGliYWJhXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJhbGliYWJhXCIsXHJcbiAgICAgIHNvcnRlZDogNyxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLnRlbmNlbnRNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJ0ZW5jZW50XCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJUZW5jZW50XCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJ0ZW5jZW50XCIsXHJcbiAgICAgIHNvcnRlZDogOCxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLm1vb25zaG90TW9kZXMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJtb29uc2hvdFwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiTW9vbnNob3RcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcIm1vb25zaG90XCIsXHJcbiAgICAgIHNvcnRlZDogOSxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLmlmbHl0ZWtNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJpZmx5dGVrXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJJZmx5dGVrXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJpZmx5dGVrXCIsXHJcbiAgICAgIHNvcnRlZDogMTAsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi54QUlNb2Rlcy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcInhhaVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiWEFJXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJ4YWlcIixcclxuICAgICAgc29ydGVkOiAxMSxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLmNoYXRnbG1Nb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJjaGF0Z2xtXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJDaGF0R0xNXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJjaGF0Z2xtXCIsXHJcbiAgICAgIHNvcnRlZDogMTIsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5kZWVwc2Vla01vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcImRlZXBzZWVrXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJEZWVwU2Vla1wiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiZGVlcHNlZWtcIixcclxuICAgICAgc29ydGVkOiAxMyxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLnNpbGljb25mbG93TW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwic2lsaWNvbmZsb3dcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIlNpbGljb25GbG93XCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJzaWxpY29uZmxvd1wiLFxyXG4gICAgICBzb3J0ZWQ6IDE0LFxyXG4gICAgfSxcclxuICB9KSksXHJcbl0gYXMgY29uc3Q7XHJcblxyXG5leHBvcnQgY29uc3QgQ0hBVF9QQUdFX1NJWkUgPSAxNTtcclxuZXhwb3J0IGNvbnN0IE1BWF9SRU5ERVJfTVNHX0NPVU5UID0gNDU7XHJcblxyXG4vLyBzb21lIGZhbW91cyB3ZWJkYXYgZW5kcG9pbnRzXHJcbmV4cG9ydCBjb25zdCBpbnRlcm5hbEFsbG93ZWRXZWJEYXZFbmRwb2ludHMgPSBbXHJcbiAgXCJodHRwczovL2Rhdi5qaWFuZ3VveXVuLmNvbS9kYXYvXCIsXHJcbiAgXCJodHRwczovL2Rhdi5kcm9wZGF2LmNvbS9cIixcclxuICBcImh0dHBzOi8vZGF2LmJveC5jb20vZGF2XCIsXHJcbiAgXCJodHRwczovL25hbmFvLnRlcmFjbG91ZC5qcC9kYXYvXCIsXHJcbiAgXCJodHRwczovL2JvcmEudGVyYWNsb3VkLmpwL2Rhdi9cIixcclxuICBcImh0dHBzOi8vd2ViZGF2LjRzaGFyZWQuY29tL1wiLFxyXG4gIFwiaHR0cHM6Ly9kYXYuaWRyaXZlc3luYy5jb21cIixcclxuICBcImh0dHBzOi8vd2ViZGF2LnlhbmRleC5jb21cIixcclxuICBcImh0dHBzOi8vYXBwLmtvb2ZyLm5ldC9kYXYvS29vZnJcIixcclxuXTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0dBX0lEID0gXCJHLTg5V042MFpLMkVcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBTQUFTX0NIQVRfVVJMID0gXCJodHRwczovL25leHRjaGF0LmRldi9jaGF0XCI7XHJcbmV4cG9ydCBjb25zdCBTQUFTX0NIQVRfVVRNX1VSTCA9IFwiaHR0cHM6Ly9uZXh0Y2hhdC5kZXYvY2hhdD91dG09Z2l0aHViXCI7XHJcbiJdLCJuYW1lcyI6WyJPV05FUiIsIlJFUE8iLCJSRVBPX1VSTCIsIlBMVUdJTlNfUkVQT19VUkwiLCJJU1NVRV9VUkwiLCJVUERBVEVfVVJMIiwiUkVMRUFTRV9VUkwiLCJGRVRDSF9DT01NSVRfVVJMIiwiRkVUQ0hfVEFHX1VSTCIsIlJVTlRJTUVfQ09ORklHX0RPTSIsIlNUQUJJTElUWV9CQVNFX1VSTCIsIk9QRU5BSV9CQVNFX1VSTCIsIkFOVEhST1BJQ19CQVNFX1VSTCIsIkdFTUlOSV9CQVNFX1VSTCIsIkJBSURVX0JBU0VfVVJMIiwiQkFJRFVfT0FUVUhfVVJMIiwiQllURURBTkNFX0JBU0VfVVJMIiwiQUxJQkFCQV9CQVNFX1VSTCIsIlRFTkNFTlRfQkFTRV9VUkwiLCJNT09OU0hPVF9CQVNFX1VSTCIsIklGTFlURUtfQkFTRV9VUkwiLCJERUVQU0VFS19CQVNFX1VSTCIsIlhBSV9CQVNFX1VSTCIsIkNIQVRHTE1fQkFTRV9VUkwiLCJTSUxJQ09ORkxPV19CQVNFX1VSTCIsIkNBQ0hFX1VSTF9QUkVGSVgiLCJVUExPQURfVVJMIiwiUGF0aCIsIkFwaVBhdGgiLCJTbG90SUQiLCJGaWxlTmFtZSIsIlN0b3JlS2V5IiwiREVGQVVMVF9TSURFQkFSX1dJRFRIIiwiTUFYX1NJREVCQVJfV0lEVEgiLCJNSU5fU0lERUJBUl9XSURUSCIsIk5BUlJPV19TSURFQkFSX1dJRFRIIiwiQUNDRVNTX0NPREVfUFJFRklYIiwiTEFTVF9JTlBVVF9LRVkiLCJVTkZJTklTSEVEX0lOUFVUIiwiaWQiLCJTVE9SQUdFX0tFWSIsIlJFUVVFU1RfVElNRU9VVF9NUyIsIlJFUVVFU1RfVElNRU9VVF9NU19GT1JfVEhJTktJTkciLCJFWFBPUlRfTUVTU0FHRV9DTEFTU19OQU1FIiwiU2VydmljZVByb3ZpZGVyIiwiR29vZ2xlU2FmZXR5U2V0dGluZ3NUaHJlc2hvbGQiLCJNb2RlbFByb3ZpZGVyIiwiU3RhYmlsaXR5IiwiR2VuZXJhdGVQYXRoIiwiRXhhbXBsZUVuZHBvaW50IiwiQW50aHJvcGljIiwiQ2hhdFBhdGgiLCJDaGF0UGF0aDEiLCJWaXNpb24iLCJPcGVuYWlQYXRoIiwiU3BlZWNoUGF0aCIsIkltYWdlUGF0aCIsIlVzYWdlUGF0aCIsIlN1YnNQYXRoIiwiTGlzdE1vZGVsUGF0aCIsIkF6dXJlIiwiZGVwbG95TmFtZSIsImFwaVZlcnNpb24iLCJHb29nbGUiLCJtb2RlbE5hbWUiLCJCYWlkdSIsImVuZHBvaW50IiwiQnl0ZURhbmNlIiwiQWxpYmFiYSIsIlRlbmNlbnQiLCJNb29uc2hvdCIsIklmbHl0ZWsiLCJEZWVwU2VlayIsIlhBSSIsIkNoYXRHTE0iLCJWaWRlb1BhdGgiLCJTaWxpY29uRmxvdyIsIkRFRkFVTFRfSU5QVVRfVEVNUExBVEUiLCJERUZBVUxUX1NZU1RFTV9URU1QTEFURSIsIk1DUF9UT09MU19URU1QTEFURSIsIk1DUF9TWVNURU1fVEVNUExBVEUiLCJTVU1NQVJJWkVfTU9ERUwiLCJHRU1JTklfU1VNTUFSSVpFX01PREVMIiwiREVFUFNFRUtfU1VNTUFSSVpFX01PREVMIiwiS25vd2xlZGdlQ3V0T2ZmRGF0ZSIsImRlZmF1bHQiLCJvMSIsIkRFRkFVTFRfVFRTX0VOR0lORSIsIkRFRkFVTFRfVFRTX0VOR0lORVMiLCJERUZBVUxUX1RUU19NT0RFTCIsIkRFRkFVTFRfVFRTX1ZPSUNFIiwiREVGQVVMVF9UVFNfTU9ERUxTIiwiREVGQVVMVF9UVFNfVk9JQ0VTIiwiVklTSU9OX01PREVMX1JFR0VYRVMiLCJFWENMVURFX1ZJU0lPTl9NT0RFTF9SRUdFWEVTIiwib3BlbmFpTW9kZWxzIiwiZ29vZ2xlTW9kZWxzIiwiYW50aHJvcGljTW9kZWxzIiwiYmFpZHVNb2RlbHMiLCJieXRlZGFuY2VNb2RlbHMiLCJhbGliYWJhTW9kZXMiLCJ0ZW5jZW50TW9kZWxzIiwibW9vbnNob3RNb2RlcyIsImlmbHl0ZWtNb2RlbHMiLCJkZWVwc2Vla01vZGVscyIsInhBSU1vZGVzIiwiY2hhdGdsbU1vZGVscyIsInNpbGljb25mbG93TW9kZWxzIiwic2VxIiwiREVGQVVMVF9NT0RFTFMiLCJtYXAiLCJuYW1lIiwiYXZhaWxhYmxlIiwic29ydGVkIiwicHJvdmlkZXIiLCJwcm92aWRlck5hbWUiLCJwcm92aWRlclR5cGUiLCJDSEFUX1BBR0VfU0laRSIsIk1BWF9SRU5ERVJfTVNHX0NPVU5UIiwiaW50ZXJuYWxBbGxvd2VkV2ViRGF2RW5kcG9pbnRzIiwiREVGQVVMVF9HQV9JRCIsIlNBQVNfQ0hBVF9VUkwiLCJTQUFTX0NIQVRfVVRNX1VSTCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./app/constant.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(rsc)/./app/layout.tsx":
|
|
|
/*!************************!*\
|
|
|
!*** ./app/layout.tsx ***!
|
|
|
\************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ RootLayout),\n/* harmony export */ metadata: () => (/* binding */ metadata),\n/* harmony export */ viewport: () => (/* binding */ viewport)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(rsc)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _styles_globals_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./styles/globals.scss */ \"(rsc)/./app/styles/globals.scss\");\n/* harmony import */ var _styles_markdown_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./styles/markdown.scss */ \"(rsc)/./app/styles/markdown.scss\");\n/* harmony import */ var _styles_highlight_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./styles/highlight.scss */ \"(rsc)/./app/styles/highlight.scss\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./config/client */ \"(rsc)/./app/config/client.ts\");\n/* harmony import */ var _vercel_speed_insights_next__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @vercel/speed-insights/next */ \"(rsc)/./node_modules/@vercel/speed-insights/dist/next/index.mjs\");\n/* harmony import */ var _next_third_parties_google__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @next/third-parties/google */ \"(rsc)/./node_modules/@next/third-parties/dist/google/index.js\");\n/* harmony import */ var _config_server__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./config/server */ \"(rsc)/./app/config/server.ts\");\n/* eslint-disable @next/next/no-page-custom-font */ \n\n\n\n\n\n\n\nconst metadata = {\n title: \"NextChat\",\n description: \"Your personal ChatGPT Chat Bot.\",\n appleWebApp: {\n title: \"NextChat\",\n statusBarStyle: \"default\"\n }\n};\nconst viewport = {\n width: \"device-width\",\n initialScale: 1,\n maximumScale: 1,\n themeColor: [\n {\n media: \"(prefers-color-scheme: light)\",\n color: \"#fafafa\"\n },\n {\n media: \"(prefers-color-scheme: dark)\",\n color: \"#151515\"\n }\n ]\n};\nfunction RootLayout({ children }) {\n const serverConfig = (0,_config_server__WEBPACK_IMPORTED_MODULE_7__.getServerSideConfig)();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n lang: \"en\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"head\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"meta\", {\n name: \"config\",\n content: JSON.stringify((0,_config_client__WEBPACK_IMPORTED_MODULE_4__.getClientConfig)())\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\layout.tsx\",\n lineNumber: 40,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\layout.tsx\",\n lineNumber: 41,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"link\", {\n rel: \"manifest\",\n href: \"/site.webmanifest\",\n crossOrigin: \"use-credentials\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\layout.tsx\",\n lineNumber: 45,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"script\", {\n src: \"/serviceWorkerRegister.js\",\n defer: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\layout.tsx\",\n lineNumber: 50,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\layout.tsx\",\n lineNumber: 39,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n children: [\n children,\n serverConfig?.isVercel && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_vercel_speed_insights_next__WEBPACK_IMPORTED_MODULE_5__.SpeedInsights, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\layout.tsx\",\n lineNumber: 56,\n columnNumber: 13\n }, this)\n }, void 0, false),\n serverConfig?.gtmId && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_next_third_parties_google__WEBPACK_IMPORTED_MODULE_6__.GoogleTagManager, {\n gtmId: serverConfig.gtmId\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\layout.tsx\",\n lineNumber: 61,\n columnNumber: 13\n }, this)\n }, void 0, false),\n serverConfig?.gaId && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_next_third_parties_google__WEBPACK_IMPORTED_MODULE_6__.GoogleAnalytics, {\n gaId: serverConfig.gaId\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\layout.tsx\",\n lineNumber: 66,\n columnNumber: 13\n }, this)\n }, void 0, false)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\layout.tsx\",\n lineNumber: 52,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\layout.tsx\",\n lineNumber: 38,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvbGF5b3V0LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBaUQ7QUFDbEI7QUFDQztBQUNDO0FBQ2lCO0FBRVU7QUFDbUI7QUFDekI7QUFFL0MsTUFBTUssV0FBcUI7SUFDaENDLE9BQU87SUFDUEMsYUFBYTtJQUNiQyxhQUFhO1FBQ1hGLE9BQU87UUFDUEcsZ0JBQWdCO0lBQ2xCO0FBQ0YsRUFBRTtBQUVLLE1BQU1DLFdBQXFCO0lBQ2hDQyxPQUFPO0lBQ1BDLGNBQWM7SUFDZEMsY0FBYztJQUNkQyxZQUFZO1FBQ1Y7WUFBRUMsT0FBTztZQUFpQ0MsT0FBTztRQUFVO1FBQzNEO1lBQUVELE9BQU87WUFBZ0NDLE9BQU87UUFBVTtLQUMzRDtBQUNILEVBQUU7QUFFYSxTQUFTQyxXQUFXLEVBQ2pDQyxRQUFRLEVBR1Q7SUFDQyxNQUFNQyxlQUFlZixtRUFBbUJBO0lBRXhDLHFCQUNFLDhEQUFDZ0I7UUFBS0MsTUFBSzs7MEJBQ1QsOERBQUNDOztrQ0FDQyw4REFBQ0M7d0JBQUtDLE1BQUs7d0JBQVNDLFNBQVNDLEtBQUtDLFNBQVMsQ0FBQzNCLCtEQUFlQTs7Ozs7O2tDQUMzRCw4REFBQ3VCO3dCQUNDQyxNQUFLO3dCQUNMQyxTQUFROzs7Ozs7a0NBRVYsOERBQUNHO3dCQUNDQyxLQUFJO3dCQUNKQyxNQUFLO3dCQUNMQyxhQUFZOzs7Ozs7a0NBRWQsOERBQUNDO3dCQUFPQyxLQUFJO3dCQUE0QkMsS0FBSzs7Ozs7Ozs7Ozs7OzBCQUUvQyw4REFBQ0M7O29CQUNFakI7b0JBQ0FDLGNBQWNpQiwwQkFDYjtrQ0FDRSw0RUFBQ25DLHNFQUFhQTs7Ozs7O29CQUdqQmtCLGNBQWNrQix1QkFDYjtrQ0FDRSw0RUFBQ25DLHdFQUFnQkE7NEJBQUNtQyxPQUFPbEIsYUFBYWtCLEtBQUs7Ozs7Ozs7b0JBRzlDbEIsY0FBY21CLHNCQUNiO2tDQUNFLDRFQUFDbkMsdUVBQWVBOzRCQUFDbUMsTUFBTW5CLGFBQWFtQixJQUFJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTXBEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvbGF5b3V0LnRzeD85OTg4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBuZXh0L25leHQvbm8tcGFnZS1jdXN0b20tZm9udCAqL1xyXG5pbXBvcnQgXCIuL3N0eWxlcy9nbG9iYWxzLnNjc3NcIjtcclxuaW1wb3J0IFwiLi9zdHlsZXMvbWFya2Rvd24uc2Nzc1wiO1xyXG5pbXBvcnQgXCIuL3N0eWxlcy9oaWdobGlnaHQuc2Nzc1wiO1xyXG5pbXBvcnQgeyBnZXRDbGllbnRDb25maWcgfSBmcm9tIFwiLi9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB0eXBlIHsgTWV0YWRhdGEsIFZpZXdwb3J0IH0gZnJvbSBcIm5leHRcIjtcclxuaW1wb3J0IHsgU3BlZWRJbnNpZ2h0cyB9IGZyb20gXCJAdmVyY2VsL3NwZWVkLWluc2lnaHRzL25leHRcIjtcclxuaW1wb3J0IHsgR29vZ2xlVGFnTWFuYWdlciwgR29vZ2xlQW5hbHl0aWNzIH0gZnJvbSBcIkBuZXh0L3RoaXJkLXBhcnRpZXMvZ29vZ2xlXCI7XHJcbmltcG9ydCB7IGdldFNlcnZlclNpZGVDb25maWcgfSBmcm9tIFwiLi9jb25maWcvc2VydmVyXCI7XHJcblxyXG5leHBvcnQgY29uc3QgbWV0YWRhdGE6IE1ldGFkYXRhID0ge1xyXG4gIHRpdGxlOiBcIk5leHRDaGF0XCIsXHJcbiAgZGVzY3JpcHRpb246IFwiWW91ciBwZXJzb25hbCBDaGF0R1BUIENoYXQgQm90LlwiLFxyXG4gIGFwcGxlV2ViQXBwOiB7XHJcbiAgICB0aXRsZTogXCJOZXh0Q2hhdFwiLFxyXG4gICAgc3RhdHVzQmFyU3R5bGU6IFwiZGVmYXVsdFwiLFxyXG4gIH0sXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3Qgdmlld3BvcnQ6IFZpZXdwb3J0ID0ge1xyXG4gIHdpZHRoOiBcImRldmljZS13aWR0aFwiLFxyXG4gIGluaXRpYWxTY2FsZTogMSxcclxuICBtYXhpbXVtU2NhbGU6IDEsXHJcbiAgdGhlbWVDb2xvcjogW1xyXG4gICAgeyBtZWRpYTogXCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KVwiLCBjb2xvcjogXCIjZmFmYWZhXCIgfSxcclxuICAgIHsgbWVkaWE6IFwiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKVwiLCBjb2xvcjogXCIjMTUxNTE1XCIgfSxcclxuICBdLFxyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUm9vdExheW91dCh7XHJcbiAgY2hpbGRyZW4sXHJcbn06IHtcclxuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xyXG59KSB7XHJcbiAgY29uc3Qgc2VydmVyQ29uZmlnID0gZ2V0U2VydmVyU2lkZUNvbmZpZygpO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGh0bWwgbGFuZz1cImVuXCI+XHJcbiAgICAgIDxoZWFkPlxyXG4gICAgICAgIDxtZXRhIG5hbWU9XCJjb25maWdcIiBjb250ZW50PXtKU09OLnN0cmluZ2lmeShnZXRDbGllbnRDb25maWcoKSl9IC8+XHJcbiAgICAgICAgPG1ldGFcclxuICAgICAgICAgIG5hbWU9XCJ2aWV3cG9ydFwiXHJcbiAgICAgICAgICBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9bm9cIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGxpbmtcclxuICAgICAgICAgIHJlbD1cIm1hbmlmZXN0XCJcclxuICAgICAgICAgIGhyZWY9XCIvc2l0ZS53ZWJtYW5pZmVzdFwiXHJcbiAgICAgICAgICBjcm9zc09yaWdpbj1cInVzZS1jcmVkZW50aWFsc1wiXHJcbiAgICAgICAgPjwvbGluaz5cclxuICAgICAgICA8c2NyaXB0IHNyYz1cIi9zZXJ2aWNlV29ya2VyUmVnaXN0ZXIuanNcIiBkZWZlcj48L3NjcmlwdD5cclxuICAgICAgPC9oZWFkPlxyXG4gICAgICA8Ym9keT5cclxuICAgICAgICB7Y2hpbGRyZW59XHJcbiAgICAgICAge3NlcnZlckNvbmZpZz8uaXNWZXJjZWwgJiYgKFxyXG4gICAgICAgICAgPD5cclxuICAgICAgICAgICAgPFNwZWVkSW5zaWdodHMgLz5cclxuICAgICAgICAgIDwvPlxyXG4gICAgICAgICl9XHJcbiAgICAgICAge3NlcnZlckNvbmZpZz8uZ3RtSWQgJiYgKFxyXG4gICAgICAgICAgPD5cclxuICAgICAgICAgICAgPEdvb2dsZVRhZ01hbmFnZXIgZ3RtSWQ9e3NlcnZlckNvbmZpZy5ndG1JZH0gLz5cclxuICAgICAgICAgIDwvPlxyXG4gICAgICAgICl9XHJcbiAgICAgICAge3NlcnZlckNvbmZpZz8uZ2FJZCAmJiAoXHJcbiAgICAgICAgICA8PlxyXG4gICAgICAgICAgICA8R29vZ2xlQW5hbHl0aWNzIGdhSWQ9e3NlcnZlckNvbmZpZy5nYUlkfSAvPlxyXG4gICAgICAgICAgPC8+XHJcbiAgICAgICAgKX1cclxuICAgICAgPC9ib2R5PlxyXG4gICAgPC9odG1sPlxyXG4gICk7XHJcbn1cclxuIl0sIm5hbWVzIjpbImdldENsaWVudENvbmZpZyIsIlNwZWVkSW5zaWdodHMiLCJHb29nbGVUYWdNYW5hZ2VyIiwiR29vZ2xlQW5hbHl0aWNzIiwiZ2V0U2VydmVyU2lkZUNvbmZpZyIsIm1ldGFkYXRhIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImFwcGxlV2ViQXBwIiwic3RhdHVzQmFyU3R5bGUiLCJ2aWV3cG9ydCIsIndpZHRoIiwiaW5pdGlhbFNjYWxlIiwibWF4aW11bVNjYWxlIiwidGhlbWVDb2xvciIsIm1lZGlhIiwiY29sb3IiLCJSb290TGF5b3V0IiwiY2hpbGRyZW4iLCJzZXJ2ZXJDb25maWciLCJodG1sIiwibGFuZyIsImhlYWQiLCJtZXRhIiwibmFtZSIsImNvbnRlbnQiLCJKU09OIiwic3RyaW5naWZ5IiwibGluayIsInJlbCIsImhyZWYiLCJjcm9zc09yaWdpbiIsInNjcmlwdCIsInNyYyIsImRlZmVyIiwiYm9keSIsImlzVmVyY2VsIiwiZ3RtSWQiLCJnYUlkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./app/layout.tsx\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(action-browser)/./app/mcp/actions.ts":
|
|
|
/*!****************************!*\
|
|
|
!*** ./app/mcp/actions.ts ***!
|
|
|
\****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addMcpServer: () => (/* binding */ addMcpServer),\n/* harmony export */ executeMcpAction: () => (/* binding */ executeMcpAction),\n/* harmony export */ getAllTools: () => (/* binding */ getAllTools),\n/* harmony export */ getAvailableClientsCount: () => (/* binding */ getAvailableClientsCount),\n/* harmony export */ getClientTools: () => (/* binding */ getClientTools),\n/* harmony export */ getClientsStatus: () => (/* binding */ getClientsStatus),\n/* harmony export */ getMcpConfigFromFile: () => (/* binding */ getMcpConfigFromFile),\n/* harmony export */ initializeMcpSystem: () => (/* binding */ initializeMcpSystem),\n/* harmony export */ isMcpEnabled: () => (/* binding */ isMcpEnabled),\n/* harmony export */ pauseMcpServer: () => (/* binding */ pauseMcpServer),\n/* harmony export */ removeMcpServer: () => (/* binding */ removeMcpServer),\n/* harmony export */ restartAllClients: () => (/* binding */ restartAllClients),\n/* harmony export */ resumeMcpServer: () => (/* binding */ resumeMcpServer)\n/* harmony export */ });\n/* harmony import */ var private_next_rsc_server_reference__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! private-next-rsc-server-reference */ \"(action-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/server-reference.js\");\n/* harmony import */ var private_next_rsc_action_encryption__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! private-next-rsc-action-encryption */ \"(action-browser)/./node_modules/next/dist/server/app-render/action-encryption.js\");\n/* harmony import */ var private_next_rsc_action_encryption__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(private_next_rsc_action_encryption__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./client */ \"(action-browser)/./app/mcp/client.ts\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./logger */ \"(action-browser)/./app/mcp/logger.ts\");\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./types */ \"(action-browser)/./app/mcp/types.ts\");\n/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! fs/promises */ \"fs/promises\");\n/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(fs_promises__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _config_server__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../config/server */ \"(action-browser)/./app/config/server.ts\");\n/* harmony import */ var private_next_rsc_action_validate__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! private-next-rsc-action-validate */ \"(action-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-validate.js\");\n/* __next_internal_action_entry_do_not_use__ {\"0738121a4b6e945d4d7f19a0cf865a5a810ff059\":\"pauseMcpServer\",\"0cc1bb8b7fae04fc0bfe16559f3c71def9d3e202\":\"getAllTools\",\"12a02a0a1bb30f418eeb2f78145610a80751fddd\":\"removeMcpServer\",\"6a284ad1ba0aba80fa5c9a24b8d5668436584677\":\"executeMcpAction\",\"6bc662cc2c04a1f59a62824812c945b2b84b8ff2\":\"getClientsStatus\",\"83ae1d001e1c16ff855b009e3cffcdb234c9a926\":\"resumeMcpServer\",\"990a011258fb8dfa09437cad83b00c0996c82263\":\"restartAllClients\",\"abfb777b0108b39c6c56a81eb04ddd578f59d807\":\"getClientTools\",\"c547693e672eb51f34b4a980d1c3f04b3aae5f84\":\"isMcpEnabled\",\"cd172e1a35b3579639d863b253384632f568bab9\":\"addMcpServer\",\"dfb3d1712f775deceab516c90c44b67a4cf20ea8\":\"getMcpConfigFromFile\",\"e2f0b7ee2e57e1faf5bcc9de96b591a1968800b8\":\"initializeMcpSystem\",\"fbda293b3f26334f4c26878a53ae4c17bedab52e\":\"getAvailableClientsCount\"} */ \n\n\n\n\n\n\n\nconst logger = new _logger__WEBPACK_IMPORTED_MODULE_3__.MCPClientLogger(\"MCP Actions\");\nconst CONFIG_PATH = path__WEBPACK_IMPORTED_MODULE_6___default().join(process.cwd(), \"app/mcp/mcp_config.json\");\nconst clientsMap = new Map();\n// 获取客户端状态\nasync function getClientsStatus() {\n const config = await getMcpConfigFromFile();\n const result = {};\n for (const clientId of Object.keys(config.mcpServers)){\n const status = clientsMap.get(clientId);\n const serverConfig = config.mcpServers[clientId];\n if (!serverConfig) {\n result[clientId] = {\n status: \"undefined\",\n errorMsg: null\n };\n continue;\n }\n if (serverConfig.status === \"paused\") {\n result[clientId] = {\n status: \"paused\",\n errorMsg: null\n };\n continue;\n }\n if (!status) {\n result[clientId] = {\n status: \"undefined\",\n errorMsg: null\n };\n continue;\n }\n if (status.client === null && status.tools === null && status.errorMsg === null) {\n result[clientId] = {\n status: \"initializing\",\n errorMsg: null\n };\n continue;\n }\n if (status.errorMsg) {\n result[clientId] = {\n status: \"error\",\n errorMsg: status.errorMsg\n };\n continue;\n }\n if (status.client) {\n result[clientId] = {\n status: \"active\",\n errorMsg: null\n };\n continue;\n }\n result[clientId] = {\n status: \"error\",\n errorMsg: \"Client not found\"\n };\n }\n return result;\n}\n// 获取客户端工具\nasync function getClientTools(clientId) {\n return clientsMap.get(clientId)?.tools ?? null;\n}\n// 获取可用客户端数量\nasync function getAvailableClientsCount() {\n let count = 0;\n clientsMap.forEach((map)=>!map.errorMsg && count++);\n return count;\n}\n// 获取所有客户端工具\nasync function getAllTools() {\n const result = [];\n for (const [clientId, status] of clientsMap.entries()){\n result.push({\n clientId,\n tools: status.tools\n });\n }\n return result;\n}\n// 初始化单个客户端\nasync function initializeSingleClient(clientId, serverConfig) {\n // 如果服务器状态是暂停,则不初始化\n if (serverConfig.status === \"paused\") {\n logger.info(`Skipping initialization for paused client [${clientId}]`);\n return;\n }\n logger.info(`Initializing client [${clientId}]...`);\n // 先设置初始化状态\n clientsMap.set(clientId, {\n client: null,\n tools: null,\n errorMsg: null\n });\n // 异步初始化\n (0,_client__WEBPACK_IMPORTED_MODULE_2__.createClient)(clientId, serverConfig).then(async (client)=>{\n const tools = await (0,_client__WEBPACK_IMPORTED_MODULE_2__.listTools)(client);\n logger.info(`Supported tools for [${clientId}]: ${JSON.stringify(tools, null, 2)}`);\n clientsMap.set(clientId, {\n client,\n tools,\n errorMsg: null\n });\n logger.success(`Client [${clientId}] initialized successfully`);\n }).catch((error)=>{\n clientsMap.set(clientId, {\n client: null,\n tools: null,\n errorMsg: error instanceof Error ? error.message : String(error)\n });\n logger.error(`Failed to initialize client [${clientId}]: ${error}`);\n });\n}\n// 初始化系统\nasync function initializeMcpSystem() {\n logger.info(\"MCP Actions starting...\");\n try {\n // 检查是否已有活跃的客户端\n if (clientsMap.size > 0) {\n logger.info(\"MCP system already initialized, skipping...\");\n return;\n }\n const config = await getMcpConfigFromFile();\n // 初始化所有客户端\n for (const [clientId, serverConfig] of Object.entries(config.mcpServers)){\n await initializeSingleClient(clientId, serverConfig);\n }\n return config;\n } catch (error) {\n logger.error(`Failed to initialize MCP system: ${error}`);\n throw error;\n }\n}\n// 添加服务器\nasync function addMcpServer(clientId, config) {\n try {\n const currentConfig = await getMcpConfigFromFile();\n const isNewServer = !(clientId in currentConfig.mcpServers);\n // 如果是新服务器,设置默认状态为 active\n if (isNewServer && !config.status) {\n config.status = \"active\";\n }\n const newConfig = {\n ...currentConfig,\n mcpServers: {\n ...currentConfig.mcpServers,\n [clientId]: config\n }\n };\n await updateMcpConfig(newConfig);\n // 只有新服务器或状态为 active 的服务器才初始化\n if (isNewServer || config.status === \"active\") {\n await initializeSingleClient(clientId, config);\n }\n return newConfig;\n } catch (error) {\n logger.error(`Failed to add server [${clientId}]: ${error}`);\n throw error;\n }\n}\n// 暂停服务器\nasync function pauseMcpServer(clientId) {\n try {\n const currentConfig = await getMcpConfigFromFile();\n const serverConfig = currentConfig.mcpServers[clientId];\n if (!serverConfig) {\n throw new Error(`Server ${clientId} not found`);\n }\n // 先更新配置\n const newConfig = {\n ...currentConfig,\n mcpServers: {\n ...currentConfig.mcpServers,\n [clientId]: {\n ...serverConfig,\n status: \"paused\"\n }\n }\n };\n await updateMcpConfig(newConfig);\n // 然后关闭客户端\n const client = clientsMap.get(clientId);\n if (client?.client) {\n await (0,_client__WEBPACK_IMPORTED_MODULE_2__.removeClient)(client.client);\n }\n clientsMap.delete(clientId);\n return newConfig;\n } catch (error) {\n logger.error(`Failed to pause server [${clientId}]: ${error}`);\n throw error;\n }\n}\n// 恢复服务器\nasync function resumeMcpServer(clientId) {\n try {\n const currentConfig = await getMcpConfigFromFile();\n const serverConfig = currentConfig.mcpServers[clientId];\n if (!serverConfig) {\n throw new Error(`Server ${clientId} not found`);\n }\n // 先尝试初始化客户端\n logger.info(`Trying to initialize client [${clientId}]...`);\n try {\n const client = await (0,_client__WEBPACK_IMPORTED_MODULE_2__.createClient)(clientId, serverConfig);\n const tools = await (0,_client__WEBPACK_IMPORTED_MODULE_2__.listTools)(client);\n clientsMap.set(clientId, {\n client,\n tools,\n errorMsg: null\n });\n logger.success(`Client [${clientId}] initialized successfully`);\n // 初始化成功后更新配置\n const newConfig = {\n ...currentConfig,\n mcpServers: {\n ...currentConfig.mcpServers,\n [clientId]: {\n ...serverConfig,\n status: \"active\"\n }\n }\n };\n await updateMcpConfig(newConfig);\n } catch (error) {\n const currentConfig = await getMcpConfigFromFile();\n const serverConfig = currentConfig.mcpServers[clientId];\n // 如果配置中存在该服务器,则更新其状态为 error\n if (serverConfig) {\n serverConfig.status = \"error\";\n await updateMcpConfig(currentConfig);\n }\n // 初始化失败\n clientsMap.set(clientId, {\n client: null,\n tools: null,\n errorMsg: error instanceof Error ? error.message : String(error)\n });\n logger.error(`Failed to initialize client [${clientId}]: ${error}`);\n throw error;\n }\n } catch (error) {\n logger.error(`Failed to resume server [${clientId}]: ${error}`);\n throw error;\n }\n}\n// 移除服务器\nasync function removeMcpServer(clientId) {\n try {\n const currentConfig = await getMcpConfigFromFile();\n const { [clientId]: _, ...rest } = currentConfig.mcpServers;\n const newConfig = {\n ...currentConfig,\n mcpServers: rest\n };\n await updateMcpConfig(newConfig);\n // 关闭并移除客户端\n const client = clientsMap.get(clientId);\n if (client?.client) {\n await (0,_client__WEBPACK_IMPORTED_MODULE_2__.removeClient)(client.client);\n }\n clientsMap.delete(clientId);\n return newConfig;\n } catch (error) {\n logger.error(`Failed to remove server [${clientId}]: ${error}`);\n throw error;\n }\n}\n// 重启所有客户端\nasync function restartAllClients() {\n logger.info(\"Restarting all clients...\");\n try {\n // 关闭所有客户端\n for (const client of clientsMap.values()){\n if (client.client) {\n await (0,_client__WEBPACK_IMPORTED_MODULE_2__.removeClient)(client.client);\n }\n }\n // 清空状态\n clientsMap.clear();\n // 重新初始化\n const config = await getMcpConfigFromFile();\n for (const [clientId, serverConfig] of Object.entries(config.mcpServers)){\n await initializeSingleClient(clientId, serverConfig);\n }\n return config;\n } catch (error) {\n logger.error(`Failed to restart clients: ${error}`);\n throw error;\n }\n}\n// 执行 MCP 请求\nasync function executeMcpAction(clientId, request) {\n try {\n const client = clientsMap.get(clientId);\n if (!client?.client) {\n throw new Error(`Client ${clientId} not found`);\n }\n logger.info(`Executing request for [${clientId}]`);\n return await (0,_client__WEBPACK_IMPORTED_MODULE_2__.executeRequest)(client.client, request);\n } catch (error) {\n logger.error(`Failed to execute request for [${clientId}]: ${error}`);\n throw error;\n }\n}\n// 获取 MCP 配置文件\nasync function getMcpConfigFromFile() {\n try {\n const configStr = await fs_promises__WEBPACK_IMPORTED_MODULE_5___default().readFile(CONFIG_PATH, \"utf-8\");\n return JSON.parse(configStr);\n } catch (error) {\n logger.error(`Failed to load MCP config, using default config: ${error}`);\n return _types__WEBPACK_IMPORTED_MODULE_4__.DEFAULT_MCP_CONFIG;\n }\n}\n// 更新 MCP 配置文件\nasync function updateMcpConfig(config) {\n try {\n // 确保目录存在\n await fs_promises__WEBPACK_IMPORTED_MODULE_5___default().mkdir(path__WEBPACK_IMPORTED_MODULE_6___default().dirname(CONFIG_PATH), {\n recursive: true\n });\n await fs_promises__WEBPACK_IMPORTED_MODULE_5___default().writeFile(CONFIG_PATH, JSON.stringify(config, null, 2));\n } catch (error) {\n throw error;\n }\n}\n// 检查 MCP 是否启用\nasync function isMcpEnabled() {\n try {\n const serverConfig = (0,_config_server__WEBPACK_IMPORTED_MODULE_7__.getServerSideConfig)();\n return serverConfig.enableMcp;\n } catch (error) {\n logger.error(`Failed to check MCP status: ${error}`);\n return false;\n }\n}\n\n(0,private_next_rsc_action_validate__WEBPACK_IMPORTED_MODULE_8__.ensureServerEntryExports)([\n getClientsStatus,\n getClientTools,\n getAvailableClientsCount,\n getAllTools,\n initializeMcpSystem,\n addMcpServer,\n pauseMcpServer,\n resumeMcpServer,\n removeMcpServer,\n restartAllClients,\n executeMcpAction,\n getMcpConfigFromFile,\n isMcpEnabled\n]);\n(0,private_next_rsc_server_reference__WEBPACK_IMPORTED_MODULE_0__.registerServerReference)(\"6bc662cc2c04a1f59a62824812c945b2b84b8ff2\", getClientsStatus);\n(0,private_next_rsc_server_reference__WEBPACK_IMPORTED_MODULE_0__.registerServerReference)(\"abfb777b0108b39c6c56a81eb04ddd578f59d807\", getClientTools);\n(0,private_next_rsc_server_reference__WEBPACK_IMPORTED_MODULE_0__.registerServerReference)(\"fbda293b3f26334f4c26878a53ae4c17bedab52e\", getAvailableClientsCount);\n(0,private_next_rsc_server_reference__WEBPACK_IMPORTED_MODULE_0__.registerServerReference)(\"0cc1bb8b7fae04fc0bfe16559f3c71def9d3e202\", getAllTools);\n(0,private_next_rsc_server_reference__WEBPACK_IMPORTED_MODULE_0__.registerServerReference)(\"e2f0b7ee2e57e1faf5bcc9de96b591a1968800b8\", initializeMcpSystem);\n(0,private_next_rsc_server_reference__WEBPACK_IMPORTED_MODULE_0__.registerServerReference)(\"cd172e1a35b3579639d863b253384632f568bab9\", addMcpServer);\n(0,private_next_rsc_server_reference__WEBPACK_IMPORTED_MODULE_0__.registerServerReference)(\"0738121a4b6e945d4d7f19a0cf865a5a810ff059\", pauseMcpServer);\n(0,private_next_rsc_server_reference__WEBPACK_IMPORTED_MODULE_0__.registerServerReference)(\"83ae1d001e1c16ff855b009e3cffcdb234c9a926\", resumeMcpServer);\n(0,private_next_rsc_server_reference__WEBPACK_IMPORTED_MODULE_0__.registerServerReference)(\"12a02a0a1bb30f418eeb2f78145610a80751fddd\", removeMcpServer);\n(0,private_next_rsc_server_reference__WEBPACK_IMPORTED_MODULE_0__.registerServerReference)(\"990a011258fb8dfa09437cad83b00c0996c82263\", restartAllClients);\n(0,private_next_rsc_server_reference__WEBPACK_IMPORTED_MODULE_0__.registerServerReference)(\"6a284ad1ba0aba80fa5c9a24b8d5668436584677\", executeMcpAction);\n(0,private_next_rsc_server_reference__WEBPACK_IMPORTED_MODULE_0__.registerServerReference)(\"dfb3d1712f775deceab516c90c44b67a4cf20ea8\", getMcpConfigFromFile);\n(0,private_next_rsc_server_reference__WEBPACK_IMPORTED_MODULE_0__.registerServerReference)(\"c547693e672eb51f34b4a980d1c3f04b3aae5f84\", isMcpEnabled);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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SUFDN0MsRUFBRSxPQUFPckIsT0FBTztRQUNkckMsT0FBT3FDLEtBQUssQ0FBQyxDQUFDLCtCQUErQixFQUFFMUIsU0FBUyxHQUFHLEVBQUUwQixNQUFNLENBQUM7UUFDcEUsTUFBTUE7SUFDUjtBQUNGO0FBRUEsY0FBYztBQUNQLGVBQWU1QjtJQUNwQixJQUFJO1FBQ0YsTUFBTWtELFlBQVksTUFBTTlELDJEQUFXLENBQUNJLGFBQWE7UUFDakQsT0FBT2dDLEtBQUs0QixLQUFLLENBQUNGO0lBQ3BCLEVBQUUsT0FBT3RCLE9BQU87UUFDZHJDLE9BQU9xQyxLQUFLLENBQUMsQ0FBQyxpREFBaUQsRUFBRUEsTUFBTSxDQUFDO1FBQ3hFLE9BQU96QyxzREFBa0JBO0lBQzNCO0FBQ0Y7QUFFQSxjQUFjO0FBQ2QsZUFBZW1ELGdCQUFnQnZDLE1BQXFCO0lBQ2xELElBQUk7UUFDRixTQUFTO1FBQ1QsTUFBTVgsd0RBQVEsQ0FBQ0MsbURBQVksQ0FBQ0csY0FBYztZQUFFK0QsV0FBVztRQUFLO1FBQzVELE1BQU1uRSw0REFBWSxDQUFDSSxhQUFhZ0MsS0FBS0MsU0FBUyxDQUFDMUIsUUFBUSxNQUFNO0lBQy9ELEVBQUUsT0FBTzZCLE9BQU87UUFDZCxNQUFNQTtJQUNSO0FBQ0Y7QUFFQSxjQUFjO0FBQ1AsZUFBZTZCO0lBQ3BCLElBQUk7UUFDRixNQUFNakQsZUFBZWxCLG1FQUFtQkE7UUFDeEMsT0FBT2tCLGFBQWFrRCxTQUFTO0lBQy9CLEVBQUUsT0FBTzlCLE9BQU87UUFDZHJDLE9BQU9xQyxLQUFLLENBQUMsQ0FBQyw0QkFBNEIsRUFBRUEsTUFBTSxDQUFDO1FBQ25ELE9BQU87SUFDVDtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvbWNwL2FjdGlvbnMudHM/NTdkYiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzZXJ2ZXJcIjtcclxuaW1wb3J0IHtcclxuICBjcmVhdGVDbGllbnQsXHJcbiAgZXhlY3V0ZVJlcXVlc3QsXHJcbiAgbGlzdFRvb2xzLFxyXG4gIHJlbW92ZUNsaWVudCxcclxufSBmcm9tIFwiLi9jbGllbnRcIjtcclxuaW1wb3J0IHsgTUNQQ2xpZW50TG9nZ2VyIH0gZnJvbSBcIi4vbG9nZ2VyXCI7XHJcbmltcG9ydCB7XHJcbiAgREVGQVVMVF9NQ1BfQ09ORklHLFxyXG4gIE1jcENsaWVudERhdGEsXHJcbiAgTWNwQ29uZmlnRGF0YSxcclxuICBNY3BSZXF1ZXN0TWVzc2FnZSxcclxuICBTZXJ2ZXJDb25maWcsXHJcbiAgU2VydmVyU3RhdHVzUmVzcG9uc2UsXHJcbn0gZnJvbSBcIi4vdHlwZXNcIjtcclxuaW1wb3J0IGZzIGZyb20gXCJmcy9wcm9taXNlc1wiO1xyXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xyXG5pbXBvcnQgeyBnZXRTZXJ2ZXJTaWRlQ29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9zZXJ2ZXJcIjtcclxuXHJcbmNvbnN0IGxvZ2dlciA9IG5ldyBNQ1BDbGllbnRMb2dnZXIoXCJNQ1AgQWN0aW9uc1wiKTtcclxuY29uc3QgQ09ORklHX1BBVEggPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgXCJhcHAvbWNwL21jcF9jb25maWcuanNvblwiKTtcclxuXHJcbmNvbnN0IGNsaWVudHNNYXAgPSBuZXcgTWFwPHN0cmluZywgTWNwQ2xpZW50RGF0YT4oKTtcclxuXHJcbi8vIOiOt+WPluWuouaIt+err+eKtuaAgVxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Q2xpZW50c1N0YXR1cygpOiBQcm9taXNlPFxyXG4gIFJlY29yZDxzdHJpbmcsIFNlcnZlclN0YXR1c1Jlc3BvbnNlPlxyXG4+IHtcclxuICBjb25zdCBjb25maWcgPSBhd2FpdCBnZXRNY3BDb25maWdGcm9tRmlsZSgpO1xyXG4gIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgU2VydmVyU3RhdHVzUmVzcG9uc2U+ID0ge307XHJcblxyXG4gIGZvciAoY29uc3QgY2xpZW50SWQgb2YgT2JqZWN0LmtleXMoY29uZmlnLm1jcFNlcnZlcnMpKSB7XHJcbiAgICBjb25zdCBzdGF0dXMgPSBjbGllbnRzTWFwLmdldChjbGllbnRJZCk7XHJcbiAgICBjb25zdCBzZXJ2ZXJDb25maWcgPSBjb25maWcubWNwU2VydmVyc1tjbGllbnRJZF07XHJcblxyXG4gICAgaWYgKCFzZXJ2ZXJDb25maWcpIHtcclxuICAgICAgcmVzdWx0W2NsaWVudElkXSA9IHsgc3RhdHVzOiBcInVuZGVmaW5lZFwiLCBlcnJvck1zZzogbnVsbCB9O1xyXG4gICAgICBjb250aW51ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc2VydmVyQ29uZmlnLnN0YXR1cyA9PT0gXCJwYXVzZWRcIikge1xyXG4gICAgICByZXN1bHRbY2xpZW50SWRdID0geyBzdGF0dXM6IFwicGF1c2VkXCIsIGVycm9yTXNnOiBudWxsIH07XHJcbiAgICAgIGNvbnRpbnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghc3RhdHVzKSB7XHJcbiAgICAgIHJlc3VsdFtjbGllbnRJZF0gPSB7IHN0YXR1czogXCJ1bmRlZmluZWRcIiwgZXJyb3JNc2c6IG51bGwgfTtcclxuICAgICAgY29udGludWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBzdGF0dXMuY2xpZW50ID09PSBudWxsICYmXHJcbiAgICAgIHN0YXR1cy50b29scyA9PT0gbnVsbCAmJlxyXG4gICAgICBzdGF0dXMuZXJyb3JNc2cgPT09IG51bGxcclxuICAgICkge1xyXG4gICAgICByZXN1bHRbY2xpZW50SWRdID0geyBzdGF0dXM6IFwiaW5pdGlhbGl6aW5nXCIsIGVycm9yTXNnOiBudWxsIH07XHJcbiAgICAgIGNvbnRpbnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzdGF0dXMuZXJyb3JNc2cpIHtcclxuICAgICAgcmVzdWx0W2NsaWVudElkXSA9IHsgc3RhdHVzOiBcImVycm9yXCIsIGVycm9yTXNnOiBzdGF0dXMuZXJyb3JNc2cgfTtcclxuICAgICAgY29udGludWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0YXR1cy5jbGllbnQpIHtcclxuICAgICAgcmVzdWx0W2NsaWVudElkXSA9IHsgc3RhdHVzOiBcImFjdGl2ZVwiLCBlcnJvck1zZzogbnVsbCB9O1xyXG4gICAgICBjb250aW51ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXN1bHRbY2xpZW50SWRdID0geyBzdGF0dXM6IFwiZXJyb3JcIiwgZXJyb3JNc2c6IFwiQ2xpZW50IG5vdCBmb3VuZFwiIH07XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG4vLyDojrflj5blrqLmiLfnq6/lt6XlhbdcclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldENsaWVudFRvb2xzKGNsaWVudElkOiBzdHJpbmcpIHtcclxuICByZXR1cm4gY2xpZW50c01hcC5nZXQoY2xpZW50SWQpPy50b29scyA/PyBudWxsO1xyXG59XHJcblxyXG4vLyDojrflj5blj6/nlKjlrqLmiLfnq6/mlbDph49cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEF2YWlsYWJsZUNsaWVudHNDb3VudCgpIHtcclxuICBsZXQgY291bnQgPSAwO1xyXG4gIGNsaWVudHNNYXAuZm9yRWFjaCgobWFwKSA9PiAhbWFwLmVycm9yTXNnICYmIGNvdW50KyspO1xyXG4gIHJldHVybiBjb3VudDtcclxufVxyXG5cclxuLy8g6I635Y+W5omA5pyJ5a6i5oi356uv5bel5YW3XHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBbGxUb29scygpIHtcclxuICBjb25zdCByZXN1bHQgPSBbXTtcclxuICBmb3IgKGNvbnN0IFtjbGllbnRJZCwgc3RhdHVzXSBvZiBjbGllbnRzTWFwLmVudHJpZXMoKSkge1xyXG4gICAgcmVzdWx0LnB1c2goe1xyXG4gICAgICBjbGllbnRJZCxcclxuICAgICAgdG9vbHM6IHN0YXR1cy50b29scyxcclxuICAgIH0pO1xyXG4gIH1cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG4vLyDliJ3lp4vljJbljZXkuKrlrqLmiLfnq69cclxuYXN5bmMgZnVuY3Rpb24gaW5pdGlhbGl6ZVNpbmdsZUNsaWVudChcclxuICBjbGllbnRJZDogc3RyaW5nLFxyXG4gIHNlcnZlckNvbmZpZzogU2VydmVyQ29uZmlnLFxyXG4pIHtcclxuICAvLyDlpoLmnpzmnI3liqHlmajnirbmgIHmmK/mmoLlgZzvvIzliJnkuI3liJ3lp4vljJZcclxuICBpZiAoc2VydmVyQ29uZmlnLnN0YXR1cyA9PT0gXCJwYXVzZWRcIikge1xyXG4gICAgbG9nZ2VyLmluZm8oYFNraXBwaW5nIGluaXRpYWxpemF0aW9uIGZvciBwYXVzZWQgY2xpZW50IFske2NsaWVudElkfV1gKTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGxvZ2dlci5pbmZvKGBJbml0aWFsaXppbmcgY2xpZW50IFske2NsaWVudElkfV0uLi5gKTtcclxuXHJcbiAgLy8g5YWI6K6+572u5Yid5aeL5YyW54q25oCBXHJcbiAgY2xpZW50c01hcC5zZXQoY2xpZW50SWQsIHtcclxuICAgIGNsaWVudDogbnVsbCxcclxuICAgIHRvb2xzOiBudWxsLFxyXG4gICAgZXJyb3JNc2c6IG51bGwsIC8vIG51bGwg6KGo56S65q2j5Zyo5Yid5aeL5YyWXHJcbiAgfSk7XHJcblxyXG4gIC8vIOW8guatpeWIneWni+WMllxyXG4gIGNyZWF0ZUNsaWVudChjbGllbnRJZCwgc2VydmVyQ29uZmlnKVxyXG4gICAgLnRoZW4oYXN5bmMgKGNsaWVudCkgPT4ge1xyXG4gICAgICBjb25zdCB0b29scyA9IGF3YWl0IGxpc3RUb29scyhjbGllbnQpO1xyXG4gICAgICBsb2dnZXIuaW5mbyhcclxuICAgICAgICBgU3VwcG9ydGVkIHRvb2xzIGZvciBbJHtjbGllbnRJZH1dOiAke0pTT04uc3RyaW5naWZ5KHRvb2xzLCBudWxsLCAyKX1gLFxyXG4gICAgICApO1xyXG4gICAgICBjbGllbnRzTWFwLnNldChjbGllbnRJZCwgeyBjbGllbnQsIHRvb2xzLCBlcnJvck1zZzogbnVsbCB9KTtcclxuICAgICAgbG9nZ2VyLnN1Y2Nlc3MoYENsaWVudCBbJHtjbGllbnRJZH1dIGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseWApO1xyXG4gICAgfSlcclxuICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcclxuICAgICAgY2xpZW50c01hcC5zZXQoY2xpZW50SWQsIHtcclxuICAgICAgICBjbGllbnQ6IG51bGwsXHJcbiAgICAgICAgdG9vbHM6IG51bGwsXHJcbiAgICAgICAgZXJyb3JNc2c6IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKSxcclxuICAgICAgfSk7XHJcbiAgICAgIGxvZ2dlci5lcnJvcihgRmFpbGVkIHRvIGluaXRpYWxpemUgY2xpZW50IFske2NsaWVudElkfV06ICR7ZXJyb3J9YCk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuLy8g5Yid5aeL5YyW57O757ufXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbml0aWFsaXplTWNwU3lzdGVtKCkge1xyXG4gIGxvZ2dlci5pbmZvKFwiTUNQIEFjdGlvbnMgc3RhcnRpbmcuLi5cIik7XHJcbiAgdHJ5IHtcclxuICAgIC8vIOajgOafpeaYr+WQpuW3suaciea0u+i3g+eahOWuouaIt+err1xyXG4gICAgaWYgKGNsaWVudHNNYXAuc2l6ZSA+IDApIHtcclxuICAgICAgbG9nZ2VyLmluZm8oXCJNQ1Agc3lzdGVtIGFscmVhZHkgaW5pdGlhbGl6ZWQsIHNraXBwaW5nLi4uXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29uZmlnID0gYXdhaXQgZ2V0TWNwQ29uZmlnRnJvbUZpbGUoKTtcclxuICAgIC8vIOWIneWni+WMluaJgOacieWuouaIt+err1xyXG4gICAgZm9yIChjb25zdCBbY2xpZW50SWQsIHNlcnZlckNvbmZpZ10gb2YgT2JqZWN0LmVudHJpZXMoY29uZmlnLm1jcFNlcnZlcnMpKSB7XHJcbiAgICAgIGF3YWl0IGluaXRpYWxpemVTaW5nbGVDbGllbnQoY2xpZW50SWQsIHNlcnZlckNvbmZpZyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29uZmlnO1xyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICBsb2dnZXIuZXJyb3IoYEZhaWxlZCB0byBpbml0aWFsaXplIE1DUCBzeXN0ZW06ICR7ZXJyb3J9YCk7XHJcbiAgICB0aHJvdyBlcnJvcjtcclxuICB9XHJcbn1cclxuXHJcbi8vIOa3u+WKoOacjeWKoeWZqFxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkTWNwU2VydmVyKGNsaWVudElkOiBzdHJpbmcsIGNvbmZpZzogU2VydmVyQ29uZmlnKSB7XHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGN1cnJlbnRDb25maWcgPSBhd2FpdCBnZXRNY3BDb25maWdGcm9tRmlsZSgpO1xyXG4gICAgY29uc3QgaXNOZXdTZXJ2ZXIgPSAhKGNsaWVudElkIGluIGN1cnJlbnRDb25maWcubWNwU2VydmVycyk7XHJcblxyXG4gICAgLy8g5aaC5p6c5piv5paw5pyN5Yqh5Zmo77yM6K6+572u6buY6K6k54q25oCB5Li6IGFjdGl2ZVxyXG4gICAgaWYgKGlzTmV3U2VydmVyICYmICFjb25maWcuc3RhdHVzKSB7XHJcbiAgICAgIGNvbmZpZy5zdGF0dXMgPSBcImFjdGl2ZVwiO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG5ld0NvbmZpZyA9IHtcclxuICAgICAgLi4uY3VycmVudENvbmZpZyxcclxuICAgICAgbWNwU2VydmVyczoge1xyXG4gICAgICAgIC4uLmN1cnJlbnRDb25maWcubWNwU2VydmVycyxcclxuICAgICAgICBbY2xpZW50SWRdOiBjb25maWcsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgYXdhaXQgdXBkYXRlTWNwQ29uZmlnKG5ld0NvbmZpZyk7XHJcblxyXG4gICAgLy8g5Y+q5pyJ5paw5pyN5Yqh5Zmo5oiW54q25oCB5Li6IGFjdGl2ZSDnmoTmnI3liqHlmajmiY3liJ3lp4vljJZcclxuICAgIGlmIChpc05ld1NlcnZlciB8fCBjb25maWcuc3RhdHVzID09PSBcImFjdGl2ZVwiKSB7XHJcbiAgICAgIGF3YWl0IGluaXRpYWxpemVTaW5nbGVDbGllbnQoY2xpZW50SWQsIGNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5ld0NvbmZpZztcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgbG9nZ2VyLmVycm9yKGBGYWlsZWQgdG8gYWRkIHNlcnZlciBbJHtjbGllbnRJZH1dOiAke2Vycm9yfWApO1xyXG4gICAgdGhyb3cgZXJyb3I7XHJcbiAgfVxyXG59XHJcblxyXG4vLyDmmoLlgZzmnI3liqHlmahcclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhdXNlTWNwU2VydmVyKGNsaWVudElkOiBzdHJpbmcpIHtcclxuICB0cnkge1xyXG4gICAgY29uc3QgY3VycmVudENvbmZpZyA9IGF3YWl0IGdldE1jcENvbmZpZ0Zyb21GaWxlKCk7XHJcbiAgICBjb25zdCBzZXJ2ZXJDb25maWcgPSBjdXJyZW50Q29uZmlnLm1jcFNlcnZlcnNbY2xpZW50SWRdO1xyXG4gICAgaWYgKCFzZXJ2ZXJDb25maWcpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTZXJ2ZXIgJHtjbGllbnRJZH0gbm90IGZvdW5kYCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g5YWI5pu05paw6YWN572uXHJcbiAgICBjb25zdCBuZXdDb25maWc6IE1jcENvbmZpZ0RhdGEgPSB7XHJcbiAgICAgIC4uLmN1cnJlbnRDb25maWcsXHJcbiAgICAgIG1jcFNlcnZlcnM6IHtcclxuICAgICAgICAuLi5jdXJyZW50Q29uZmlnLm1jcFNlcnZlcnMsXHJcbiAgICAgICAgW2NsaWVudElkXToge1xyXG4gICAgICAgICAgLi4uc2VydmVyQ29uZmlnLFxyXG4gICAgICAgICAgc3RhdHVzOiBcInBhdXNlZFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgYXdhaXQgdXBkYXRlTWNwQ29uZmlnKG5ld0NvbmZpZyk7XHJcblxyXG4gICAgLy8g54S25ZCO5YWz6Zet5a6i5oi356uvXHJcbiAgICBjb25zdCBjbGllbnQgPSBjbGllbnRzTWFwLmdldChjbGllbnRJZCk7XHJcbiAgICBpZiAoY2xpZW50Py5jbGllbnQpIHtcclxuICAgICAgYXdhaXQgcmVtb3ZlQ2xpZW50KGNsaWVudC5jbGllbnQpO1xyXG4gICAgfVxyXG4gICAgY2xpZW50c01hcC5kZWxldGUoY2xpZW50SWQpO1xyXG5cclxuICAgIHJldHVybiBuZXdDb25maWc7XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIGxvZ2dlci5lcnJvcihgRmFpbGVkIHRvIHBhdXNlIHNlcnZlciBbJHtjbGllbnRJZH1dOiAke2Vycm9yfWApO1xyXG4gICAgdGhyb3cgZXJyb3I7XHJcbiAgfVxyXG59XHJcblxyXG4vLyDmgaLlpI3mnI3liqHlmahcclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc3VtZU1jcFNlcnZlcihjbGllbnRJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGN1cnJlbnRDb25maWcgPSBhd2FpdCBnZXRNY3BDb25maWdGcm9tRmlsZSgpO1xyXG4gICAgY29uc3Qgc2VydmVyQ29uZmlnID0gY3VycmVudENvbmZpZy5tY3BTZXJ2ZXJzW2NsaWVudElkXTtcclxuICAgIGlmICghc2VydmVyQ29uZmlnKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU2VydmVyICR7Y2xpZW50SWR9IG5vdCBmb3VuZGApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOWFiOWwneivleWIneWni+WMluWuouaIt+err1xyXG4gICAgbG9nZ2VyLmluZm8oYFRyeWluZyB0byBpbml0aWFsaXplIGNsaWVudCBbJHtjbGllbnRJZH1dLi4uYCk7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBjcmVhdGVDbGllbnQoY2xpZW50SWQsIHNlcnZlckNvbmZpZyk7XHJcbiAgICAgIGNvbnN0IHRvb2xzID0gYXdhaXQgbGlzdFRvb2xzKGNsaWVudCk7XHJcbiAgICAgIGNsaWVudHNNYXAuc2V0KGNsaWVudElkLCB7IGNsaWVudCwgdG9vbHMsIGVycm9yTXNnOiBudWxsIH0pO1xyXG4gICAgICBsb2dnZXIuc3VjY2VzcyhgQ2xpZW50IFske2NsaWVudElkfV0gaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5YCk7XHJcblxyXG4gICAgICAvLyDliJ3lp4vljJbmiJDlip/lkI7mm7TmlrDphY3nva5cclxuICAgICAgY29uc3QgbmV3Q29uZmlnOiBNY3BDb25maWdEYXRhID0ge1xyXG4gICAgICAgIC4uLmN1cnJlbnRDb25maWcsXHJcbiAgICAgICAgbWNwU2VydmVyczoge1xyXG4gICAgICAgICAgLi4uY3VycmVudENvbmZpZy5tY3BTZXJ2ZXJzLFxyXG4gICAgICAgICAgW2NsaWVudElkXToge1xyXG4gICAgICAgICAgICAuLi5zZXJ2ZXJDb25maWcsXHJcbiAgICAgICAgICAgIHN0YXR1czogXCJhY3RpdmVcIiBhcyBjb25zdCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgICAgYXdhaXQgdXBkYXRlTWNwQ29uZmlnKG5ld0NvbmZpZyk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zdCBjdXJyZW50Q29uZmlnID0gYXdhaXQgZ2V0TWNwQ29uZmlnRnJvbUZpbGUoKTtcclxuICAgICAgY29uc3Qgc2VydmVyQ29uZmlnID0gY3VycmVudENvbmZpZy5tY3BTZXJ2ZXJzW2NsaWVudElkXTtcclxuXHJcbiAgICAgIC8vIOWmguaenOmFjee9ruS4reWtmOWcqOivpeacjeWKoeWZqO+8jOWImeabtOaWsOWFtueKtuaAgeS4uiBlcnJvclxyXG4gICAgICBpZiAoc2VydmVyQ29uZmlnKSB7XHJcbiAgICAgICAgc2VydmVyQ29uZmlnLnN0YXR1cyA9IFwiZXJyb3JcIjtcclxuICAgICAgICBhd2FpdCB1cGRhdGVNY3BDb25maWcoY3VycmVudENvbmZpZyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIOWIneWni+WMluWksei0pVxyXG4gICAgICBjbGllbnRzTWFwLnNldChjbGllbnRJZCwge1xyXG4gICAgICAgIGNsaWVudDogbnVsbCxcclxuICAgICAgICB0b29sczogbnVsbCxcclxuICAgICAgICBlcnJvck1zZzogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpLFxyXG4gICAgICB9KTtcclxuICAgICAgbG9nZ2VyLmVycm9yKGBGYWlsZWQgdG8gaW5pdGlhbGl6ZSBjbGllbnQgWyR7Y2xpZW50SWR9XTogJHtlcnJvcn1gKTtcclxuICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICB9XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIGxvZ2dlci5lcnJvcihgRmFpbGVkIHRvIHJlc3VtZSBzZXJ2ZXIgWyR7Y2xpZW50SWR9XTogJHtlcnJvcn1gKTtcclxuICAgIHRocm93IGVycm9yO1xyXG4gIH1cclxufVxyXG5cclxuLy8g56e76Zmk5pyN5Yqh5ZmoXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW1vdmVNY3BTZXJ2ZXIoY2xpZW50SWQ6IHN0cmluZykge1xyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBjdXJyZW50Q29uZmlnID0gYXdhaXQgZ2V0TWNwQ29uZmlnRnJvbUZpbGUoKTtcclxuICAgIGNvbnN0IHsgW2NsaWVudElkXTogXywgLi4ucmVzdCB9ID0gY3VycmVudENvbmZpZy5tY3BTZXJ2ZXJzO1xyXG4gICAgY29uc3QgbmV3Q29uZmlnID0ge1xyXG4gICAgICAuLi5jdXJyZW50Q29uZmlnLFxyXG4gICAgICBtY3BTZXJ2ZXJzOiByZXN0LFxyXG4gICAgfTtcclxuICAgIGF3YWl0IHVwZGF0ZU1jcENvbmZpZyhuZXdDb25maWcpO1xyXG5cclxuICAgIC8vIOWFs+mXreW5tuenu+mZpOWuouaIt+err1xyXG4gICAgY29uc3QgY2xpZW50ID0gY2xpZW50c01hcC5nZXQoY2xpZW50SWQpO1xyXG4gICAgaWYgKGNsaWVudD8uY2xpZW50KSB7XHJcbiAgICAgIGF3YWl0IHJlbW92ZUNsaWVudChjbGllbnQuY2xpZW50KTtcclxuICAgIH1cclxuICAgIGNsaWVudHNNYXAuZGVsZXRlKGNsaWVudElkKTtcclxuXHJcbiAgICByZXR1cm4gbmV3Q29uZmlnO1xyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICBsb2dnZXIuZXJyb3IoYEZhaWxlZCB0byByZW1vdmUgc2VydmVyIFske2NsaWVudElkfV06ICR7ZXJyb3J9YCk7XHJcbiAgICB0aHJvdyBlcnJvcjtcclxuICB9XHJcbn1cclxuXHJcbi8vIOmHjeWQr+aJgOacieWuouaIt+err1xyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzdGFydEFsbENsaWVudHMoKSB7XHJcbiAgbG9nZ2VyLmluZm8oXCJSZXN0YXJ0aW5nIGFsbCBjbGllbnRzLi4uXCIpO1xyXG4gIHRyeSB7XHJcbiAgICAvLyDlhbPpl63miYDmnInlrqLmiLfnq69cclxuICAgIGZvciAoY29uc3QgY2xpZW50IG9mIGNsaWVudHNNYXAudmFsdWVzKCkpIHtcclxuICAgICAgaWYgKGNsaWVudC5jbGllbnQpIHtcclxuICAgICAgICBhd2FpdCByZW1vdmVDbGllbnQoY2xpZW50LmNsaWVudCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyDmuIXnqbrnirbmgIFcclxuICAgIGNsaWVudHNNYXAuY2xlYXIoKTtcclxuXHJcbiAgICAvLyDph43mlrDliJ3lp4vljJZcclxuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGdldE1jcENvbmZpZ0Zyb21GaWxlKCk7XHJcbiAgICBmb3IgKGNvbnN0IFtjbGllbnRJZCwgc2VydmVyQ29uZmlnXSBvZiBPYmplY3QuZW50cmllcyhjb25maWcubWNwU2VydmVycykpIHtcclxuICAgICAgYXdhaXQgaW5pdGlhbGl6ZVNpbmdsZUNsaWVudChjbGllbnRJZCwgc2VydmVyQ29uZmlnKTtcclxuICAgIH1cclxuICAgIHJldHVybiBjb25maWc7XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIGxvZ2dlci5lcnJvcihgRmFpbGVkIHRvIHJlc3RhcnQgY2xpZW50czogJHtlcnJvcn1gKTtcclxuICAgIHRocm93IGVycm9yO1xyXG4gIH1cclxufVxyXG5cclxuLy8g5omn6KGMIE1DUCDor7fmsYJcclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVNY3BBY3Rpb24oXHJcbiAgY2xpZW50SWQ6IHN0cmluZyxcclxuICByZXF1ZXN0OiBNY3BSZXF1ZXN0TWVzc2FnZSxcclxuKSB7XHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGNsaWVudCA9IGNsaWVudHNNYXAuZ2V0KGNsaWVudElkKTtcclxuICAgIGlmICghY2xpZW50Py5jbGllbnQpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDbGllbnQgJHtjbGllbnRJZH0gbm90IGZvdW5kYCk7XHJcbiAgICB9XHJcbiAgICBsb2dnZXIuaW5mbyhgRXhlY3V0aW5nIHJlcXVlc3QgZm9yIFske2NsaWVudElkfV1gKTtcclxuICAgIHJldHVybiBhd2FpdCBleGVjdXRlUmVxdWVzdChjbGllbnQuY2xpZW50LCByZXF1ZXN0KTtcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgbG9nZ2VyLmVycm9yKGBGYWlsZWQgdG8gZXhlY3V0ZSByZXF1ZXN0IGZvciBbJHtjbGllbnRJZH1dOiAke2Vycm9yfWApO1xyXG4gICAgdGhyb3cgZXJyb3I7XHJcbiAgfVxyXG59XHJcblxyXG4vLyDojrflj5YgTUNQIOmFjee9ruaWh+S7tlxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TWNwQ29uZmlnRnJvbUZpbGUoKTogUHJvbWlzZTxNY3BDb25maWdEYXRhPiB7XHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGNvbmZpZ1N0ciA9IGF3YWl0IGZzLnJlYWRGaWxlKENPTkZJR19QQVRILCBcInV0Zi04XCIpO1xyXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoY29uZmlnU3RyKTtcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgbG9nZ2VyLmVycm9yKGBGYWlsZWQgdG8gbG9hZCBNQ1AgY29uZmlnLCB1c2luZyBkZWZhdWx0IGNvbmZpZzogJHtlcnJvcn1gKTtcclxuICAgIHJldHVybiBERUZBVUxUX01DUF9DT05GSUc7XHJcbiAgfVxyXG59XHJcblxyXG4vLyDmm7TmlrAgTUNQIOmFjee9ruaWh+S7tlxyXG5hc3luYyBmdW5jdGlvbiB1cGRhdGVNY3BDb25maWcoY29uZmlnOiBNY3BDb25maWdEYXRhKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgdHJ5IHtcclxuICAgIC8vIOehruS/neebruW9leWtmOWcqFxyXG4gICAgYXdhaXQgZnMubWtkaXIocGF0aC5kaXJuYW1lKENPTkZJR19QQVRIKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XHJcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUoQ09ORklHX1BBVEgsIEpTT04uc3RyaW5naWZ5KGNvbmZpZywgbnVsbCwgMikpO1xyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICB0aHJvdyBlcnJvcjtcclxuICB9XHJcbn1cclxuXHJcbi8vIOajgOafpSBNQ1Ag5piv5ZCm5ZCv55SoXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpc01jcEVuYWJsZWQoKSB7XHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IHNlcnZlckNvbmZpZyA9IGdldFNlcnZlclNpZGVDb25maWcoKTtcclxuICAgIHJldHVybiBzZXJ2ZXJDb25maWcuZW5hYmxlTWNwO1xyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICBsb2dnZXIuZXJyb3IoYEZhaWxlZCB0byBjaGVjayBNQ1Agc3RhdHVzOiAke2Vycm9yfWApO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG4iXSwibmFtZXMiOlsiY3JlYXRlQ2xpZW50IiwiZXhlY3V0ZVJlcXVlc3QiLCJsaXN0VG9vbHMiLCJyZW1vdmVDbGllbnQiLCJNQ1BDbGllbnRMb2dnZXIiLCJERUZBVUxUX01DUF9DT05GSUciLCJmcyIsInBhdGgiLCJnZXRTZXJ2ZXJTaWRlQ29uZmlnIiwibG9nZ2VyIiwiQ09ORklHX1BBVEgiLCJqb2luIiwicHJvY2VzcyIsImN3ZCIsImNsaWVudHNNYXAiLCJNYXAiLCJnZXRDbGllbnRzU3RhdHVzIiwiY29uZmlnIiwiZ2V0TWNwQ29uZmlnRnJvbUZpbGUiLCJyZXN1bHQiLCJjbGllbnRJZCIsIk9iamVjdCIsImtleXMiLCJtY3BTZXJ2ZXJzIiwic3RhdHVzIiwiZ2V0Iiwic2VydmVyQ29uZmlnIiwiZXJyb3JNc2ciLCJjbGllbnQiLCJ0b29scyIsImdldENsaWVudFRvb2xzIiwiZ2V0QXZhaWxhYmxlQ2xpZW50c0NvdW50IiwiY291bnQiLCJmb3JFYWNoIiwibWFwIiwiZ2V0QWxsVG9vbHMiLCJlbnRyaWVzIiwicHVzaCIsImluaXRpYWxpemVTaW5nbGVDbGllbnQiLCJpbmZvIiwic2V0IiwidGhlbiIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdWNjZXNzIiwiY2F0Y2giLCJlcnJvciIsIkVycm9yIiwibWVzc2FnZSIsIlN0cmluZyIsImluaXRpYWxpemVNY3BTeXN0ZW0iLCJzaXplIiwiYWRkTWNwU2VydmVyIiwiY3VycmVudENvbmZpZyIsImlzTmV3U2VydmVyIiwibmV3Q29uZmlnIiwidXBkYXRlTWNwQ29uZmlnIiwicGF1c2VNY3BTZXJ2ZXIiLCJkZWxldGUiLCJyZXN1bWVNY3BTZXJ2ZXIiLCJyZW1vdmVNY3BTZXJ2ZXIiLCJfIiwicmVzdCIsInJlc3RhcnRBbGxDbGllbnRzIiwidmFsdWVzIiwiY2xlYXIiLCJleGVjdXRlTWNwQWN0aW9uIiwicmVxdWVzdCIsImNvbmZpZ1N0ciIsInJlYWRGaWxlIiwicGFyc2UiLCJta2RpciIsImRpcm5hbWUiLCJyZWN1cnNpdmUiLCJ3cml0ZUZpbGUiLCJpc01jcEVuYWJsZWQiLCJlbmFibGVNY3AiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(action-browser)/./app/mcp/actions.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(action-browser)/./app/mcp/client.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/mcp/client.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createClient: () => (/* binding */ createClient),\n/* harmony export */ executeRequest: () => (/* binding */ executeRequest),\n/* harmony export */ listTools: () => (/* binding */ listTools),\n/* harmony export */ removeClient: () => (/* binding */ removeClient)\n/* harmony export */ });\n/* harmony import */ var _modelcontextprotocol_sdk_client_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @modelcontextprotocol/sdk/client/index.js */ \"(action-browser)/./node_modules/@modelcontextprotocol/sdk/dist/client/index.js\");\n/* harmony import */ var _modelcontextprotocol_sdk_client_stdio_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @modelcontextprotocol/sdk/client/stdio.js */ \"(action-browser)/./node_modules/@modelcontextprotocol/sdk/dist/client/stdio.js\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./logger */ \"(action-browser)/./app/mcp/logger.ts\");\n/* harmony import */ var zod__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! zod */ \"(action-browser)/./node_modules/zod/lib/index.mjs\");\n\n\n\n\nconst logger = new _logger__WEBPACK_IMPORTED_MODULE_2__.MCPClientLogger();\nasync function createClient(id, config) {\n logger.info(`Creating client for ${id}...`);\n const transport = new _modelcontextprotocol_sdk_client_stdio_js__WEBPACK_IMPORTED_MODULE_1__.StdioClientTransport({\n command: config.command,\n args: config.args,\n env: {\n ...Object.fromEntries(Object.entries(process.env).filter(([_, v])=>v !== undefined).map(([k, v])=>[\n k,\n v\n ])),\n ...config.env || {}\n }\n });\n const client = new _modelcontextprotocol_sdk_client_index_js__WEBPACK_IMPORTED_MODULE_0__.Client({\n name: `nextchat-mcp-client-${id}`,\n version: \"1.0.0\"\n }, {\n capabilities: {}\n });\n await client.connect(transport);\n return client;\n}\nasync function removeClient(client) {\n logger.info(`Removing client...`);\n await client.close();\n}\nasync function listTools(client) {\n return client.listTools();\n}\nasync function executeRequest(client, request) {\n return client.request(request, zod__WEBPACK_IMPORTED_MODULE_3__.z.any());\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL2FwcC9tY3AvY2xpZW50LnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQW1FO0FBQ2M7QUFDdEM7QUFFbkI7QUFFeEIsTUFBTUksU0FBUyxJQUFJRixvREFBZUE7QUFFM0IsZUFBZUcsYUFDcEJDLEVBQVUsRUFDVkMsTUFBb0I7SUFFcEJILE9BQU9JLElBQUksQ0FBQyxDQUFDLG9CQUFvQixFQUFFRixHQUFHLEdBQUcsQ0FBQztJQUUxQyxNQUFNRyxZQUFZLElBQUlSLDJGQUFvQkEsQ0FBQztRQUN6Q1MsU0FBU0gsT0FBT0csT0FBTztRQUN2QkMsTUFBTUosT0FBT0ksSUFBSTtRQUNqQkMsS0FBSztZQUNILEdBQUdDLE9BQU9DLFdBQVcsQ0FDbkJELE9BQU9FLE9BQU8sQ0FBQ0MsUUFBUUosR0FBRyxFQUN2QkssTUFBTSxDQUFDLENBQUMsQ0FBQ0MsR0FBR0MsRUFBRSxHQUFLQSxNQUFNQyxXQUN6QkMsR0FBRyxDQUFDLENBQUMsQ0FBQ0MsR0FBR0gsRUFBRSxHQUFLO29CQUFDRztvQkFBR0g7aUJBQVksRUFDcEM7WUFDRCxHQUFJWixPQUFPSyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3RCO0lBQ0Y7SUFFQSxNQUFNVyxTQUFTLElBQUl2Qiw2RUFBTUEsQ0FDdkI7UUFDRXdCLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRWxCLEdBQUcsQ0FBQztRQUNqQ21CLFNBQVM7SUFDWCxHQUNBO1FBQ0VDLGNBQWMsQ0FBQztJQUNqQjtJQUVGLE1BQU1ILE9BQU9JLE9BQU8sQ0FBQ2xCO0lBQ3JCLE9BQU9jO0FBQ1Q7QUFFTyxlQUFlSyxhQUFhTCxNQUFjO0lBQy9DbkIsT0FBT0ksSUFBSSxDQUFDLENBQUMsa0JBQWtCLENBQUM7SUFDaEMsTUFBTWUsT0FBT00sS0FBSztBQUNwQjtBQUVPLGVBQWVDLFVBQVVQLE1BQWM7SUFDNUMsT0FBT0EsT0FBT08sU0FBUztBQUN6QjtBQUVPLGVBQWVDLGVBQ3BCUixNQUFjLEVBQ2RTLE9BQTBCO0lBRTFCLE9BQU9ULE9BQU9TLE9BQU8sQ0FBQ0EsU0FBUzdCLGtDQUFDQSxDQUFDOEIsR0FBRztBQUN0QyIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL21jcC9jbGllbnQudHM/YjZhOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbGllbnQgfSBmcm9tIFwiQG1vZGVsY29udGV4dHByb3RvY29sL3Nkay9jbGllbnQvaW5kZXguanNcIjtcclxuaW1wb3J0IHsgU3RkaW9DbGllbnRUcmFuc3BvcnQgfSBmcm9tIFwiQG1vZGVsY29udGV4dHByb3RvY29sL3Nkay9jbGllbnQvc3RkaW8uanNcIjtcclxuaW1wb3J0IHsgTUNQQ2xpZW50TG9nZ2VyIH0gZnJvbSBcIi4vbG9nZ2VyXCI7XHJcbmltcG9ydCB7IExpc3RUb29sc1Jlc3BvbnNlLCBNY3BSZXF1ZXN0TWVzc2FnZSwgU2VydmVyQ29uZmlnIH0gZnJvbSBcIi4vdHlwZXNcIjtcclxuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcclxuXHJcbmNvbnN0IGxvZ2dlciA9IG5ldyBNQ1BDbGllbnRMb2dnZXIoKTtcclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVDbGllbnQoXHJcbiAgaWQ6IHN0cmluZyxcclxuICBjb25maWc6IFNlcnZlckNvbmZpZyxcclxuKTogUHJvbWlzZTxDbGllbnQ+IHtcclxuICBsb2dnZXIuaW5mbyhgQ3JlYXRpbmcgY2xpZW50IGZvciAke2lkfS4uLmApO1xyXG5cclxuICBjb25zdCB0cmFuc3BvcnQgPSBuZXcgU3RkaW9DbGllbnRUcmFuc3BvcnQoe1xyXG4gICAgY29tbWFuZDogY29uZmlnLmNvbW1hbmQsXHJcbiAgICBhcmdzOiBjb25maWcuYXJncyxcclxuICAgIGVudjoge1xyXG4gICAgICAuLi5PYmplY3QuZnJvbUVudHJpZXMoXHJcbiAgICAgICAgT2JqZWN0LmVudHJpZXMocHJvY2Vzcy5lbnYpXHJcbiAgICAgICAgICAuZmlsdGVyKChbXywgdl0pID0+IHYgIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgIC5tYXAoKFtrLCB2XSkgPT4gW2ssIHYgYXMgc3RyaW5nXSksXHJcbiAgICAgICksXHJcbiAgICAgIC4uLihjb25maWcuZW52IHx8IHt9KSxcclxuICAgIH0sXHJcbiAgfSk7XHJcblxyXG4gIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6IGBuZXh0Y2hhdC1tY3AtY2xpZW50LSR7aWR9YCxcclxuICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgY2FwYWJpbGl0aWVzOiB7fSxcclxuICAgIH0sXHJcbiAgKTtcclxuICBhd2FpdCBjbGllbnQuY29ubmVjdCh0cmFuc3BvcnQpO1xyXG4gIHJldHVybiBjbGllbnQ7XHJcbn1cclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW1vdmVDbGllbnQoY2xpZW50OiBDbGllbnQpIHtcclxuICBsb2dnZXIuaW5mbyhgUmVtb3ZpbmcgY2xpZW50Li4uYCk7XHJcbiAgYXdhaXQgY2xpZW50LmNsb3NlKCk7XHJcbn1cclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsaXN0VG9vbHMoY2xpZW50OiBDbGllbnQpOiBQcm9taXNlPExpc3RUb29sc1Jlc3BvbnNlPiB7XHJcbiAgcmV0dXJuIGNsaWVudC5saXN0VG9vbHMoKTtcclxufVxyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVSZXF1ZXN0KFxyXG4gIGNsaWVudDogQ2xpZW50LFxyXG4gIHJlcXVlc3Q6IE1jcFJlcXVlc3RNZXNzYWdlLFxyXG4pIHtcclxuICByZXR1cm4gY2xpZW50LnJlcXVlc3QocmVxdWVzdCwgei5hbnkoKSk7XHJcbn1cclxuIl0sIm5hbWVzIjpbIkNsaWVudCIsIlN0ZGlvQ2xpZW50VHJhbnNwb3J0IiwiTUNQQ2xpZW50TG9nZ2VyIiwieiIsImxvZ2dlciIsImNyZWF0ZUNsaWVudCIsImlkIiwiY29uZmlnIiwiaW5mbyIsInRyYW5zcG9ydCIsImNvbW1hbmQiLCJhcmdzIiwiZW52IiwiT2JqZWN0IiwiZnJvbUVudHJpZXMiLCJlbnRyaWVzIiwicHJvY2VzcyIsImZpbHRlciIsIl8iLCJ2IiwidW5kZWZpbmVkIiwibWFwIiwiayIsImNsaWVudCIsIm5hbWUiLCJ2ZXJzaW9uIiwiY2FwYWJpbGl0aWVzIiwiY29ubmVjdCIsInJlbW92ZUNsaWVudCIsImNsb3NlIiwibGlzdFRvb2xzIiwiZXhlY3V0ZVJlcXVlc3QiLCJyZXF1ZXN0IiwiYW55Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(action-browser)/./app/mcp/client.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(action-browser)/./app/mcp/logger.ts":
|
|
|
/*!***************************!*\
|
|
|
!*** ./app/mcp/logger.ts ***!
|
|
|
\***************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MCPClientLogger: () => (/* binding */ MCPClientLogger)\n/* harmony export */ });\n// ANSI color codes for terminal output\nconst colors = {\n reset: \"\\x1b[0m\",\n bright: \"\\x1b[1m\",\n dim: \"\\x1b[2m\",\n green: \"\\x1b[32m\",\n yellow: \"\\x1b[33m\",\n red: \"\\x1b[31m\",\n blue: \"\\x1b[34m\"\n};\nclass MCPClientLogger {\n constructor(prefix = \"NextChat MCP Client\", debugMode = false){\n this.prefix = prefix;\n this.debugMode = debugMode;\n }\n info(message) {\n this.print(colors.blue, message);\n }\n success(message) {\n this.print(colors.green, message);\n }\n error(message) {\n this.print(colors.red, message);\n }\n warn(message) {\n this.print(colors.yellow, message);\n }\n debug(message) {\n if (this.debugMode) {\n this.print(colors.dim, message);\n }\n }\n /**\r\n * Format message to string, if message is object, convert to JSON string\r\n */ formatMessage(message) {\n return typeof message === \"object\" ? JSON.stringify(message, null, 2) : message;\n }\n /**\r\n * Print formatted message to console\r\n */ print(color, message) {\n const formattedMessage = this.formatMessage(message);\n const logMessage = `${color}${colors.bright}[${this.prefix}]${colors.reset} ${formattedMessage}`;\n // 只使用 console.log,这样日志会显示在 Tauri 的终端中\n console.log(logMessage);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL2FwcC9tY3AvbG9nZ2VyLnRzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSx1Q0FBdUM7QUFDdkMsTUFBTUEsU0FBUztJQUNiQyxPQUFPO0lBQ1BDLFFBQVE7SUFDUkMsS0FBSztJQUNMQyxPQUFPO0lBQ1BDLFFBQVE7SUFDUkMsS0FBSztJQUNMQyxNQUFNO0FBQ1I7QUFFTyxNQUFNQztJQUlYQyxZQUNFQyxTQUFpQixxQkFBcUIsRUFDdENDLFlBQXFCLEtBQUssQ0FDMUI7UUFDQSxJQUFJLENBQUNELE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLFNBQVMsR0FBR0E7SUFDbkI7SUFFQUMsS0FBS0MsT0FBWSxFQUFFO1FBQ2pCLElBQUksQ0FBQ0MsS0FBSyxDQUFDZCxPQUFPTyxJQUFJLEVBQUVNO0lBQzFCO0lBRUFFLFFBQVFGLE9BQVksRUFBRTtRQUNwQixJQUFJLENBQUNDLEtBQUssQ0FBQ2QsT0FBT0ksS0FBSyxFQUFFUztJQUMzQjtJQUVBRyxNQUFNSCxPQUFZLEVBQUU7UUFDbEIsSUFBSSxDQUFDQyxLQUFLLENBQUNkLE9BQU9NLEdBQUcsRUFBRU87SUFDekI7SUFFQUksS0FBS0osT0FBWSxFQUFFO1FBQ2pCLElBQUksQ0FBQ0MsS0FBSyxDQUFDZCxPQUFPSyxNQUFNLEVBQUVRO0lBQzVCO0lBRUFLLE1BQU1MLE9BQVksRUFBRTtRQUNsQixJQUFJLElBQUksQ0FBQ0YsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQ0csS0FBSyxDQUFDZCxPQUFPRyxHQUFHLEVBQUVVO1FBQ3pCO0lBQ0Y7SUFFQTs7R0FFQyxHQUNELGNBQXNCQSxPQUFZLEVBQVU7UUFDMUMsT0FBTyxPQUFPQSxZQUFZLFdBQ3RCTyxLQUFLQyxTQUFTLENBQUNSLFNBQVMsTUFBTSxLQUM5QkE7SUFDTjtJQUVBOztHQUVDLEdBQ0QsTUFBY1MsS0FBYSxFQUFFVCxPQUFZLEVBQUU7UUFDekMsTUFBTVUsbUJBQW1CLElBQUksQ0FBQ0osYUFBYSxDQUFDTjtRQUM1QyxNQUFNVyxhQUFhLENBQUMsRUFBRUYsTUFBTSxFQUFFdEIsT0FBT0UsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUNRLE1BQU0sQ0FBQyxDQUFDLEVBQUVWLE9BQU9DLEtBQUssQ0FBQyxDQUFDLEVBQUVzQixpQkFBaUIsQ0FBQztRQUVoRyxzQ0FBc0M7UUFDdENFLFFBQVFDLEdBQUcsQ0FBQ0Y7SUFDZDtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvbWNwL2xvZ2dlci50cz85YWVhIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEFOU0kgY29sb3IgY29kZXMgZm9yIHRlcm1pbmFsIG91dHB1dFxyXG5jb25zdCBjb2xvcnMgPSB7XHJcbiAgcmVzZXQ6IFwiXFx4MWJbMG1cIixcclxuICBicmlnaHQ6IFwiXFx4MWJbMW1cIixcclxuICBkaW06IFwiXFx4MWJbMm1cIixcclxuICBncmVlbjogXCJcXHgxYlszMm1cIixcclxuICB5ZWxsb3c6IFwiXFx4MWJbMzNtXCIsXHJcbiAgcmVkOiBcIlxceDFiWzMxbVwiLFxyXG4gIGJsdWU6IFwiXFx4MWJbMzRtXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY2xhc3MgTUNQQ2xpZW50TG9nZ2VyIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IHByZWZpeDogc3RyaW5nO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVidWdNb2RlOiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByZWZpeDogc3RyaW5nID0gXCJOZXh0Q2hhdCBNQ1AgQ2xpZW50XCIsXHJcbiAgICBkZWJ1Z01vZGU6IGJvb2xlYW4gPSBmYWxzZSxcclxuICApIHtcclxuICAgIHRoaXMucHJlZml4ID0gcHJlZml4O1xyXG4gICAgdGhpcy5kZWJ1Z01vZGUgPSBkZWJ1Z01vZGU7XHJcbiAgfVxyXG5cclxuICBpbmZvKG1lc3NhZ2U6IGFueSkge1xyXG4gICAgdGhpcy5wcmludChjb2xvcnMuYmx1ZSwgbWVzc2FnZSk7XHJcbiAgfVxyXG5cclxuICBzdWNjZXNzKG1lc3NhZ2U6IGFueSkge1xyXG4gICAgdGhpcy5wcmludChjb2xvcnMuZ3JlZW4sIG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgZXJyb3IobWVzc2FnZTogYW55KSB7XHJcbiAgICB0aGlzLnByaW50KGNvbG9ycy5yZWQsIG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgd2FybihtZXNzYWdlOiBhbnkpIHtcclxuICAgIHRoaXMucHJpbnQoY29sb3JzLnllbGxvdywgbWVzc2FnZSk7XHJcbiAgfVxyXG5cclxuICBkZWJ1ZyhtZXNzYWdlOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmRlYnVnTW9kZSkge1xyXG4gICAgICB0aGlzLnByaW50KGNvbG9ycy5kaW0sIG1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRm9ybWF0IG1lc3NhZ2UgdG8gc3RyaW5nLCBpZiBtZXNzYWdlIGlzIG9iamVjdCwgY29udmVydCB0byBKU09OIHN0cmluZ1xyXG4gICAqL1xyXG4gIHByaXZhdGUgZm9ybWF0TWVzc2FnZShtZXNzYWdlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHR5cGVvZiBtZXNzYWdlID09PSBcIm9iamVjdFwiXHJcbiAgICAgID8gSlNPTi5zdHJpbmdpZnkobWVzc2FnZSwgbnVsbCwgMilcclxuICAgICAgOiBtZXNzYWdlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJpbnQgZm9ybWF0dGVkIG1lc3NhZ2UgdG8gY29uc29sZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgcHJpbnQoY29sb3I6IHN0cmluZywgbWVzc2FnZTogYW55KSB7XHJcbiAgICBjb25zdCBmb3JtYXR0ZWRNZXNzYWdlID0gdGhpcy5mb3JtYXRNZXNzYWdlKG1lc3NhZ2UpO1xyXG4gICAgY29uc3QgbG9nTWVzc2FnZSA9IGAke2NvbG9yfSR7Y29sb3JzLmJyaWdodH1bJHt0aGlzLnByZWZpeH1dJHtjb2xvcnMucmVzZXR9ICR7Zm9ybWF0dGVkTWVzc2FnZX1gO1xyXG5cclxuICAgIC8vIOWPquS9v+eUqCBjb25zb2xlLmxvZ++8jOi/meagt+aXpeW/l+S8muaYvuekuuWcqCBUYXVyaSDnmoTnu4jnq6/kuK1cclxuICAgIGNvbnNvbGUubG9nKGxvZ01lc3NhZ2UpO1xyXG4gIH1cclxufVxyXG4iXSwibmFtZXMiOlsiY29sb3JzIiwicmVzZXQiLCJicmlnaHQiLCJkaW0iLCJncmVlbiIsInllbGxvdyIsInJlZCIsImJsdWUiLCJNQ1BDbGllbnRMb2dnZXIiLCJjb25zdHJ1Y3RvciIsInByZWZpeCIsImRlYnVnTW9kZSIsImluZm8iLCJtZXNzYWdlIiwicHJpbnQiLCJzdWNjZXNzIiwiZXJyb3IiLCJ3YXJuIiwiZGVidWciLCJmb3JtYXRNZXNzYWdlIiwiSlNPTiIsInN0cmluZ2lmeSIsImNvbG9yIiwiZm9ybWF0dGVkTWVzc2FnZSIsImxvZ01lc3NhZ2UiLCJjb25zb2xlIiwibG9nIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(action-browser)/./app/mcp/logger.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(action-browser)/./app/mcp/types.ts":
|
|
|
/*!**************************!*\
|
|
|
!*** ./app/mcp/types.ts ***!
|
|
|
\**************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DEFAULT_MCP_CONFIG: () => (/* binding */ DEFAULT_MCP_CONFIG),\n/* harmony export */ McpNotificationsSchema: () => (/* binding */ McpNotificationsSchema),\n/* harmony export */ McpRequestMessageSchema: () => (/* binding */ McpRequestMessageSchema),\n/* harmony export */ McpResponseMessageSchema: () => (/* binding */ McpResponseMessageSchema)\n/* harmony export */ });\n/* harmony import */ var zod__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! zod */ \"(action-browser)/./node_modules/zod/lib/index.mjs\");\n// ref: https://spec.modelcontextprotocol.io/specification/basic/messages/\n\nconst McpRequestMessageSchema = zod__WEBPACK_IMPORTED_MODULE_0__.z.object({\n jsonrpc: zod__WEBPACK_IMPORTED_MODULE_0__.z.literal(\"2.0\").optional(),\n id: zod__WEBPACK_IMPORTED_MODULE_0__.z.union([\n zod__WEBPACK_IMPORTED_MODULE_0__.z.string(),\n zod__WEBPACK_IMPORTED_MODULE_0__.z.number()\n ]).optional(),\n method: zod__WEBPACK_IMPORTED_MODULE_0__.z.string(),\n params: zod__WEBPACK_IMPORTED_MODULE_0__.z.record(zod__WEBPACK_IMPORTED_MODULE_0__.z.unknown()).optional()\n});\nconst McpResponseMessageSchema = zod__WEBPACK_IMPORTED_MODULE_0__.z.object({\n jsonrpc: zod__WEBPACK_IMPORTED_MODULE_0__.z.literal(\"2.0\").optional(),\n id: zod__WEBPACK_IMPORTED_MODULE_0__.z.union([\n zod__WEBPACK_IMPORTED_MODULE_0__.z.string(),\n zod__WEBPACK_IMPORTED_MODULE_0__.z.number()\n ]).optional(),\n result: zod__WEBPACK_IMPORTED_MODULE_0__.z.record(zod__WEBPACK_IMPORTED_MODULE_0__.z.unknown()).optional(),\n error: zod__WEBPACK_IMPORTED_MODULE_0__.z.object({\n code: zod__WEBPACK_IMPORTED_MODULE_0__.z.number(),\n message: zod__WEBPACK_IMPORTED_MODULE_0__.z.string(),\n data: zod__WEBPACK_IMPORTED_MODULE_0__.z.unknown().optional()\n }).optional()\n});\nconst McpNotificationsSchema = zod__WEBPACK_IMPORTED_MODULE_0__.z.object({\n jsonrpc: zod__WEBPACK_IMPORTED_MODULE_0__.z.literal(\"2.0\").optional(),\n method: zod__WEBPACK_IMPORTED_MODULE_0__.z.string(),\n params: zod__WEBPACK_IMPORTED_MODULE_0__.z.record(zod__WEBPACK_IMPORTED_MODULE_0__.z.unknown()).optional()\n});\nconst DEFAULT_MCP_CONFIG = {\n mcpServers: {}\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL2FwcC9tY3AvdHlwZXMudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSwwRUFBMEU7QUFFbEQ7QUFZakIsTUFBTUMsMEJBQXdERCxrQ0FBQ0EsQ0FBQ0UsTUFBTSxDQUFDO0lBQzVFQyxTQUFTSCxrQ0FBQ0EsQ0FBQ0ksT0FBTyxDQUFDLE9BQU9DLFFBQVE7SUFDbENDLElBQUlOLGtDQUFDQSxDQUFDTyxLQUFLLENBQUM7UUFBQ1Asa0NBQUNBLENBQUNRLE1BQU07UUFBSVIsa0NBQUNBLENBQUNTLE1BQU07S0FBRyxFQUFFSixRQUFRO0lBQzlDSyxRQUFRVixrQ0FBQ0EsQ0FBQ1EsTUFBTTtJQUNoQkcsUUFBUVgsa0NBQUNBLENBQUNZLE1BQU0sQ0FBQ1osa0NBQUNBLENBQUNhLE9BQU8sSUFBSVIsUUFBUTtBQUN4QyxHQUFHO0FBZUksTUFBTVMsMkJBQTBEZCxrQ0FBQ0EsQ0FBQ0UsTUFBTSxDQUM3RTtJQUNFQyxTQUFTSCxrQ0FBQ0EsQ0FBQ0ksT0FBTyxDQUFDLE9BQU9DLFFBQVE7SUFDbENDLElBQUlOLGtDQUFDQSxDQUFDTyxLQUFLLENBQUM7UUFBQ1Asa0NBQUNBLENBQUNRLE1BQU07UUFBSVIsa0NBQUNBLENBQUNTLE1BQU07S0FBRyxFQUFFSixRQUFRO0lBQzlDVSxRQUFRZixrQ0FBQ0EsQ0FBQ1ksTUFBTSxDQUFDWixrQ0FBQ0EsQ0FBQ2EsT0FBTyxJQUFJUixRQUFRO0lBQ3RDVyxPQUFPaEIsa0NBQUNBLENBQ0xFLE1BQU0sQ0FBQztRQUNOZSxNQUFNakIsa0NBQUNBLENBQUNTLE1BQU07UUFDZFMsU0FBU2xCLGtDQUFDQSxDQUFDUSxNQUFNO1FBQ2pCVyxNQUFNbkIsa0NBQUNBLENBQUNhLE9BQU8sR0FBR1IsUUFBUTtJQUM1QixHQUNDQSxRQUFRO0FBQ2IsR0FDQTtBQVVLLE1BQU1lLHlCQUFzRHBCLGtDQUFDQSxDQUFDRSxNQUFNLENBQUM7SUFDMUVDLFNBQVNILGtDQUFDQSxDQUFDSSxPQUFPLENBQUMsT0FBT0MsUUFBUTtJQUNsQ0ssUUFBUVYsa0NBQUNBLENBQUNRLE1BQU07SUFDaEJHLFFBQVFYLGtDQUFDQSxDQUFDWSxNQUFNLENBQUNaLGtDQUFDQSxDQUFDYSxPQUFPLElBQUlSLFFBQVE7QUFDeEMsR0FBRztBQStESSxNQUFNZ0IscUJBQW9DO0lBQy9DQyxZQUFZLENBQUM7QUFDZixFQUFFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvbWNwL3R5cGVzLnRzPzc2YzMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcmVmOiBodHRwczovL3NwZWMubW9kZWxjb250ZXh0cHJvdG9jb2wuaW8vc3BlY2lmaWNhdGlvbi9iYXNpYy9tZXNzYWdlcy9cclxuXHJcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XHJcbmltcG9ydCB7IENsaWVudCB9IGZyb20gXCJAbW9kZWxjb250ZXh0cHJvdG9jb2wvc2RrL2NsaWVudC9pbmRleC5qc1wiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNY3BSZXF1ZXN0TWVzc2FnZSB7XHJcbiAganNvbnJwYz86IFwiMi4wXCI7XHJcbiAgaWQ/OiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgbWV0aG9kOiBcInRvb2xzL2NhbGxcIiB8IHN0cmluZztcclxuICBwYXJhbXM/OiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBNY3BSZXF1ZXN0TWVzc2FnZVNjaGVtYTogei5ab2RUeXBlPE1jcFJlcXVlc3RNZXNzYWdlPiA9IHoub2JqZWN0KHtcclxuICBqc29ucnBjOiB6LmxpdGVyYWwoXCIyLjBcIikub3B0aW9uYWwoKSxcclxuICBpZDogei51bmlvbihbei5zdHJpbmcoKSwgei5udW1iZXIoKV0pLm9wdGlvbmFsKCksXHJcbiAgbWV0aG9kOiB6LnN0cmluZygpLFxyXG4gIHBhcmFtczogei5yZWNvcmQoei51bmtub3duKCkpLm9wdGlvbmFsKCksXHJcbn0pO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNY3BSZXNwb25zZU1lc3NhZ2Uge1xyXG4gIGpzb25ycGM/OiBcIjIuMFwiO1xyXG4gIGlkPzogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIHJlc3VsdD86IHtcclxuICAgIFtrZXk6IHN0cmluZ106IHVua25vd247XHJcbiAgfTtcclxuICBlcnJvcj86IHtcclxuICAgIGNvZGU6IG51bWJlcjtcclxuICAgIG1lc3NhZ2U6IHN0cmluZztcclxuICAgIGRhdGE/OiB1bmtub3duO1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBNY3BSZXNwb25zZU1lc3NhZ2VTY2hlbWE6IHouWm9kVHlwZTxNY3BSZXNwb25zZU1lc3NhZ2U+ID0gei5vYmplY3QoXHJcbiAge1xyXG4gICAganNvbnJwYzogei5saXRlcmFsKFwiMi4wXCIpLm9wdGlvbmFsKCksXHJcbiAgICBpZDogei51bmlvbihbei5zdHJpbmcoKSwgei5udW1iZXIoKV0pLm9wdGlvbmFsKCksXHJcbiAgICByZXN1bHQ6IHoucmVjb3JkKHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxyXG4gICAgZXJyb3I6IHpcclxuICAgICAgLm9iamVjdCh7XHJcbiAgICAgICAgY29kZTogei5udW1iZXIoKSxcclxuICAgICAgICBtZXNzYWdlOiB6LnN0cmluZygpLFxyXG4gICAgICAgIGRhdGE6IHoudW5rbm93bigpLm9wdGlvbmFsKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5vcHRpb25hbCgpLFxyXG4gIH0sXHJcbik7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1jcE5vdGlmaWNhdGlvbnMge1xyXG4gIGpzb25ycGM/OiBcIjIuMFwiO1xyXG4gIG1ldGhvZDogc3RyaW5nO1xyXG4gIHBhcmFtcz86IHtcclxuICAgIFtrZXk6IHN0cmluZ106IHVua25vd247XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IE1jcE5vdGlmaWNhdGlvbnNTY2hlbWE6IHouWm9kVHlwZTxNY3BOb3RpZmljYXRpb25zPiA9IHoub2JqZWN0KHtcclxuICBqc29ucnBjOiB6LmxpdGVyYWwoXCIyLjBcIikub3B0aW9uYWwoKSxcclxuICBtZXRob2Q6IHouc3RyaW5nKCksXHJcbiAgcGFyYW1zOiB6LnJlY29yZCh6LnVua25vd24oKSkub3B0aW9uYWwoKSxcclxufSk7XHJcblxyXG4vLy8vLy8vLy8vLy9cclxuLy8gTmV4dCBDaGF0XHJcbi8vLy8vLy8vLy8vL1xyXG5leHBvcnQgaW50ZXJmYWNlIExpc3RUb29sc1Jlc3BvbnNlIHtcclxuICB0b29sczoge1xyXG4gICAgbmFtZT86IHN0cmluZztcclxuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG4gICAgaW5wdXRTY2hlbWE/OiBvYmplY3Q7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTWNwQ2xpZW50RGF0YSA9XHJcbiAgfCBNY3BBY3RpdmVDbGllbnRcclxuICB8IE1jcEVycm9yQ2xpZW50XHJcbiAgfCBNY3BJbml0aWFsaXppbmdDbGllbnQ7XHJcblxyXG5pbnRlcmZhY2UgTWNwSW5pdGlhbGl6aW5nQ2xpZW50IHtcclxuICBjbGllbnQ6IG51bGw7XHJcbiAgdG9vbHM6IG51bGw7XHJcbiAgZXJyb3JNc2c6IG51bGw7XHJcbn1cclxuXHJcbmludGVyZmFjZSBNY3BBY3RpdmVDbGllbnQge1xyXG4gIGNsaWVudDogQ2xpZW50O1xyXG4gIHRvb2xzOiBMaXN0VG9vbHNSZXNwb25zZTtcclxuICBlcnJvck1zZzogbnVsbDtcclxufVxyXG5cclxuaW50ZXJmYWNlIE1jcEVycm9yQ2xpZW50IHtcclxuICBjbGllbnQ6IG51bGw7XHJcbiAgdG9vbHM6IG51bGw7XHJcbiAgZXJyb3JNc2c6IHN0cmluZztcclxufVxyXG5cclxuLy8g5pyN5Yqh5Zmo54q25oCB57G75Z6LXHJcbmV4cG9ydCB0eXBlIFNlcnZlclN0YXR1cyA9XHJcbiAgfCBcInVuZGVmaW5lZFwiXHJcbiAgfCBcImFjdGl2ZVwiXHJcbiAgfCBcInBhdXNlZFwiXHJcbiAgfCBcImVycm9yXCJcclxuICB8IFwiaW5pdGlhbGl6aW5nXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlclN0YXR1c1Jlc3BvbnNlIHtcclxuICBzdGF0dXM6IFNlcnZlclN0YXR1cztcclxuICBlcnJvck1zZzogc3RyaW5nIHwgbnVsbDtcclxufVxyXG5cclxuLy8gTUNQIOacjeWKoeWZqOmFjee9ruebuOWFs+exu+Wei1xyXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlckNvbmZpZyB7XHJcbiAgY29tbWFuZDogc3RyaW5nO1xyXG4gIGFyZ3M6IHN0cmluZ1tdO1xyXG4gIGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XHJcbiAgc3RhdHVzPzogXCJhY3RpdmVcIiB8IFwicGF1c2VkXCIgfCBcImVycm9yXCI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWNwQ29uZmlnRGF0YSB7XHJcbiAgLy8gTUNQIFNlcnZlciDnmoTphY3nva5cclxuICBtY3BTZXJ2ZXJzOiBSZWNvcmQ8c3RyaW5nLCBTZXJ2ZXJDb25maWc+O1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9NQ1BfQ09ORklHOiBNY3BDb25maWdEYXRhID0ge1xyXG4gIG1jcFNlcnZlcnM6IHt9LFxyXG59O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBcmdzTWFwcGluZyB7XHJcbiAgLy8g5Y+C5pWw5pig5bCE55qE57G75Z6LXHJcbiAgdHlwZTogXCJzcHJlYWRcIiB8IFwic2luZ2xlXCIgfCBcImVudlwiO1xyXG5cclxuICAvLyDlj4LmlbDmmKDlsITnmoTkvY3nva5cclxuICBwb3NpdGlvbj86IG51bWJlcjtcclxuXHJcbiAgLy8g5Y+C5pWw5pig5bCE55qEIGtleVxyXG4gIGtleT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcmVzZXRTZXJ2ZXIge1xyXG4gIC8vIE1DUCBTZXJ2ZXIg55qE5ZSv5LiA5qCH6K+G77yM5L2c5Li65pyA57uI6YWN572u5paH5Lu2IEpzb24g55qEIGtleVxyXG4gIGlkOiBzdHJpbmc7XHJcblxyXG4gIC8vIE1DUCBTZXJ2ZXIg55qE5pi+56S65ZCN56ewXHJcbiAgbmFtZTogc3RyaW5nO1xyXG5cclxuICAvLyBNQ1AgU2VydmVyIOeahOaPj+i/sFxyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcblxyXG4gIC8vIE1DUCBTZXJ2ZXIg55qE5LuT5bqT5Zyw5Z2AXHJcbiAgcmVwbzogc3RyaW5nO1xyXG5cclxuICAvLyBNQ1AgU2VydmVyIOeahOagh+etvlxyXG4gIHRhZ3M6IHN0cmluZ1tdO1xyXG5cclxuICAvLyBNQ1AgU2VydmVyIOeahOWRveS7pFxyXG4gIGNvbW1hbmQ6IHN0cmluZztcclxuXHJcbiAgLy8gTUNQIFNlcnZlciDnmoTlj4LmlbBcclxuICBiYXNlQXJnczogc3RyaW5nW107XHJcblxyXG4gIC8vIE1DUCBTZXJ2ZXIg5piv5ZCm6ZyA6KaB6YWN572uXHJcbiAgY29uZmlndXJhYmxlOiBib29sZWFuO1xyXG5cclxuICAvLyBNQ1AgU2VydmVyIOeahOmFjee9riBzY2hlbWFcclxuICBjb25maWdTY2hlbWE/OiB7XHJcbiAgICBwcm9wZXJ0aWVzOiBSZWNvcmQ8XHJcbiAgICAgIHN0cmluZyxcclxuICAgICAge1xyXG4gICAgICAgIHR5cGU6IHN0cmluZztcclxuICAgICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcclxuICAgICAgICByZXF1aXJlZD86IGJvb2xlYW47XHJcbiAgICAgICAgbWluSXRlbXM/OiBudW1iZXI7XHJcbiAgICAgIH1cclxuICAgID47XHJcbiAgfTtcclxuXHJcbiAgLy8gTUNQIFNlcnZlciDnmoTlj4LmlbDmmKDlsIRcclxuICBhcmdzTWFwcGluZz86IFJlY29yZDxzdHJpbmcsIEFyZ3NNYXBwaW5nPjtcclxufVxyXG4iXSwibmFtZXMiOlsieiIsIk1jcFJlcXVlc3RNZXNzYWdlU2NoZW1hIiwib2JqZWN0IiwianNvbnJwYyIsImxpdGVyYWwiLCJvcHRpb25hbCIsImlkIiwidW5pb24iLCJzdHJpbmciLCJudW1iZXIiLCJtZXRob2QiLCJwYXJhbXMiLCJyZWNvcmQiLCJ1bmtub3duIiwiTWNwUmVzcG9uc2VNZXNzYWdlU2NoZW1hIiwicmVzdWx0IiwiZXJyb3IiLCJjb2RlIiwibWVzc2FnZSIsImRhdGEiLCJNY3BOb3RpZmljYXRpb25zU2NoZW1hIiwiREVGQVVMVF9NQ1BfQ09ORklHIiwibWNwU2VydmVycyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(action-browser)/./app/mcp/types.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(rsc)/./app/page.tsx":
|
|
|
/*!**********************!*\
|
|
|
!*** ./app/page.tsx ***!
|
|
|
\**********************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ App)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(rsc)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vercel_analytics_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @vercel/analytics/react */ \"(rsc)/./node_modules/@vercel/analytics/dist/react/index.js\");\n/* harmony import */ var _components_home__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/home */ \"(rsc)/./app/components/home.tsx\");\n/* harmony import */ var _config_server__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./config/server */ \"(rsc)/./app/config/server.ts\");\n\n\n\n\nconst serverConfig = (0,_config_server__WEBPACK_IMPORTED_MODULE_3__.getServerSideConfig)();\nasync function App() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_home__WEBPACK_IMPORTED_MODULE_2__.Home, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\page.tsx\",\n lineNumber: 10,\n columnNumber: 7\n }, this),\n serverConfig?.isVercel && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_vercel_analytics_react__WEBPACK_IMPORTED_MODULE_1__.Analytics, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\page.tsx\",\n lineNumber: 13,\n columnNumber: 11\n }, this)\n }, void 0, false)\n ]\n }, void 0, true);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvcGFnZS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFvRDtBQUNYO0FBQ2E7QUFFdEQsTUFBTUcsZUFBZUQsbUVBQW1CQTtBQUV6QixlQUFlRTtJQUM1QixxQkFDRTs7MEJBQ0UsOERBQUNILGtEQUFJQTs7Ozs7WUFDSkUsY0FBY0UsMEJBQ2I7MEJBQ0UsNEVBQUNMLDhEQUFTQTs7Ozs7Ozs7QUFLcEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZXh0Y2hhdC8uL2FwcC9wYWdlLnRzeD83NjAzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuYWx5dGljcyB9IGZyb20gXCJAdmVyY2VsL2FuYWx5dGljcy9yZWFjdFwiO1xyXG5pbXBvcnQgeyBIb21lIH0gZnJvbSBcIi4vY29tcG9uZW50cy9ob21lXCI7XHJcbmltcG9ydCB7IGdldFNlcnZlclNpZGVDb25maWcgfSBmcm9tIFwiLi9jb25maWcvc2VydmVyXCI7XHJcblxyXG5jb25zdCBzZXJ2ZXJDb25maWcgPSBnZXRTZXJ2ZXJTaWRlQ29uZmlnKCk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBBcHAoKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDw+XHJcbiAgICAgIDxIb21lIC8+XHJcbiAgICAgIHtzZXJ2ZXJDb25maWc/LmlzVmVyY2VsICYmIChcclxuICAgICAgICA8PlxyXG4gICAgICAgICAgPEFuYWx5dGljcyAvPlxyXG4gICAgICAgIDwvPlxyXG4gICAgICApfVxyXG4gICAgPC8+XHJcbiAgKTtcclxufVxyXG4iXSwibmFtZXMiOlsiQW5hbHl0aWNzIiwiSG9tZSIsImdldFNlcnZlclNpZGVDb25maWciLCJzZXJ2ZXJDb25maWciLCJBcHAiLCJpc1ZlcmNlbCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./app/page.tsx\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(action-browser)/./app/utils/model.ts":
|
|
|
/*!****************************!*\
|
|
|
!*** ./app/utils/model.ts ***!
|
|
|
\****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ collectModelTable: () => (/* binding */ collectModelTable),\n/* harmony export */ collectModelTableWithDefaultModel: () => (/* binding */ collectModelTableWithDefaultModel),\n/* harmony export */ collectModels: () => (/* binding */ collectModels),\n/* harmony export */ collectModelsWithDefaultModel: () => (/* binding */ collectModelsWithDefaultModel),\n/* harmony export */ getModelProvider: () => (/* binding */ getModelProvider),\n/* harmony export */ isGPT4Model: () => (/* binding */ isGPT4Model),\n/* harmony export */ isModelAvailableInServer: () => (/* binding */ isModelAvailableInServer),\n/* harmony export */ isModelNotavailableInServer: () => (/* binding */ isModelNotavailableInServer)\n/* harmony export */ });\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constant */ \"(action-browser)/./app/constant.ts\");\n\nconst CustomSeq = {\n val: -1000,\n cache: new Map(),\n next: (id)=>{\n if (CustomSeq.cache.has(id)) {\n return CustomSeq.cache.get(id);\n } else {\n let seq = CustomSeq.val++;\n CustomSeq.cache.set(id, seq);\n return seq;\n }\n }\n};\nconst customProvider = (providerName)=>({\n id: providerName.toLowerCase(),\n providerName: providerName,\n providerType: \"custom\",\n sorted: CustomSeq.next(providerName)\n });\n/**\r\n * Sorts an array of models based on specified rules.\r\n *\r\n * First, sorted by provider; if the same, sorted by model\r\n */ const sortModelTable = (models)=>models.sort((a, b)=>{\n if (a.provider && b.provider) {\n let cmp = a.provider.sorted - b.provider.sorted;\n return cmp === 0 ? a.sorted - b.sorted : cmp;\n } else {\n return a.sorted - b.sorted;\n }\n });\n/**\r\n * get model name and provider from a formatted string,\r\n * e.g. `gpt-4@OpenAi` or `claude-3-5-sonnet@20240620@Google`\r\n * @param modelWithProvider model name with provider separated by last `@` char,\r\n * @returns [model, provider] tuple, if no `@` char found, provider is undefined\r\n */ function getModelProvider(modelWithProvider) {\n const [model, provider] = modelWithProvider.split(/@(?!.*@)/);\n return [\n model,\n provider\n ];\n}\nfunction collectModelTable(models, customModels) {\n const modelTable = {};\n // default models\n models.forEach((m)=>{\n // using <modelName>@<providerId> as fullName\n modelTable[`${m.name}@${m?.provider?.id}`] = {\n ...m,\n displayName: m.name\n };\n });\n // server custom models\n customModels.split(\",\").filter((v)=>!!v && v.length > 0).forEach((m)=>{\n const available = !m.startsWith(\"-\");\n const nameConfig = m.startsWith(\"+\") || m.startsWith(\"-\") ? m.slice(1) : m;\n let [name, displayName] = nameConfig.split(\"=\");\n // enable or disable all models\n if (name === \"all\") {\n Object.values(modelTable).forEach((model)=>model.available = available);\n } else {\n // 1. find model by name, and set available value\n const [customModelName, customProviderName] = getModelProvider(name);\n let count = 0;\n for(const fullName in modelTable){\n const [modelName, providerName] = getModelProvider(fullName);\n if (customModelName == modelName && (customProviderName === undefined || customProviderName === providerName)) {\n count += 1;\n modelTable[fullName][\"available\"] = available;\n // swap name and displayName for bytedance\n if (providerName === \"bytedance\") {\n [name, displayName] = [\n displayName,\n modelName\n ];\n modelTable[fullName][\"name\"] = name;\n }\n if (displayName) {\n modelTable[fullName][\"displayName\"] = displayName;\n }\n }\n }\n // 2. if model not exists, create new model with available value\n if (count === 0) {\n let [customModelName, customProviderName] = getModelProvider(name);\n const provider = customProvider(customProviderName || customModelName);\n // swap name and displayName for bytedance\n if (displayName && provider.providerName == \"ByteDance\") {\n [customModelName, displayName] = [\n displayName,\n customModelName\n ];\n }\n modelTable[`${customModelName}@${provider?.id}`] = {\n name: customModelName,\n displayName: displayName || customModelName,\n available,\n provider,\n sorted: CustomSeq.next(`${customModelName}@${provider?.id}`)\n };\n }\n }\n });\n return modelTable;\n}\nfunction collectModelTableWithDefaultModel(models, customModels, defaultModel) {\n let modelTable = collectModelTable(models, customModels);\n if (defaultModel && defaultModel !== \"\") {\n if (defaultModel.includes(\"@\")) {\n if (defaultModel in modelTable) {\n modelTable[defaultModel].isDefault = true;\n }\n } else {\n for (const key of Object.keys(modelTable)){\n if (modelTable[key].available && getModelProvider(key)[0] == defaultModel) {\n modelTable[key].isDefault = true;\n break;\n }\n }\n }\n }\n return modelTable;\n}\n/**\r\n * Generate full model table.\r\n */ function collectModels(models, customModels) {\n const modelTable = collectModelTable(models, customModels);\n let allModels = Object.values(modelTable);\n allModels = sortModelTable(allModels);\n return allModels;\n}\nfunction collectModelsWithDefaultModel(models, customModels, defaultModel) {\n const modelTable = collectModelTableWithDefaultModel(models, customModels, defaultModel);\n let allModels = Object.values(modelTable);\n allModels = sortModelTable(allModels);\n return allModels;\n}\nfunction isModelAvailableInServer(customModels, modelName, providerName) {\n const fullName = `${modelName}@${providerName}`;\n const modelTable = collectModelTable(_constant__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_MODELS, customModels);\n return modelTable[fullName]?.available === false;\n}\n/**\r\n * Check if the model name is a GPT-4 related model\r\n *\r\n * @param modelName The name of the model to check\r\n * @returns True if the model is a GPT-4 related model (excluding gpt-4o-mini)\r\n */ function isGPT4Model(modelName) {\n return (modelName.startsWith(\"gpt-4\") || modelName.startsWith(\"chatgpt-4o\") || modelName.startsWith(\"o1\")) && !modelName.startsWith(\"gpt-4o-mini\");\n}\n/**\r\n * Checks if a model is not available on any of the specified providers in the server.\r\n *\r\n * @param {string} customModels - A string of custom models, comma-separated.\r\n * @param {string} modelName - The name of the model to check.\r\n * @param {string|string[]} providerNames - A string or array of provider names to check against.\r\n *\r\n * @returns {boolean} True if the model is not available on any of the specified providers, false otherwise.\r\n */ function isModelNotavailableInServer(customModels, modelName, providerNames) {\n // Check DISABLE_GPT4 environment variable\n if (process.env.DISABLE_GPT4 === \"1\" && isGPT4Model(modelName.toLowerCase())) {\n return true;\n }\n const modelTable = collectModelTable(_constant__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_MODELS, customModels);\n const providerNamesArray = Array.isArray(providerNames) ? providerNames : [\n providerNames\n ];\n for (const providerName of providerNamesArray){\n // if model provider is bytedance, use model config name to check if not avaliable\n if (providerName === _constant__WEBPACK_IMPORTED_MODULE_0__.ServiceProvider.ByteDance) {\n return !Object.values(modelTable).filter((v)=>v.name === modelName)?.[0]?.available;\n }\n const fullName = `${modelName}@${providerName.toLowerCase()}`;\n if (modelTable?.[fullName]?.available === true) return false;\n }\n return true;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LENBQUNTLFVBQVVULFVBQVUsQ0FBQztBQUUxQjtBQUVBOzs7Ozs7OztDQVFDLEdBQ00sU0FBU3NCLDRCQUNkaEMsWUFBb0IsRUFDcEJtQixTQUFpQixFQUNqQmMsYUFBZ0M7SUFFaEMsMENBQTBDO0lBQzFDLElBQ0VDLFFBQVFDLEdBQUcsQ0FBQ0MsWUFBWSxLQUFLLE9BQzdCTCxZQUFZWixVQUFVbEMsV0FBVyxLQUNqQztRQUNBLE9BQU87SUFDVDtJQUVBLE1BQU1nQixhQUFhRixrQkFBa0I1QixxREFBY0EsRUFBRTZCO0lBRXJELE1BQU1xQyxxQkFBcUJDLE1BQU1DLE9BQU8sQ0FBQ04saUJBQ3JDQSxnQkFDQTtRQUFDQTtLQUFjO0lBQ25CLEtBQUssTUFBTWpELGdCQUFnQnFELG1CQUFvQjtRQUM3QyxrRkFBa0Y7UUFDbEYsSUFBSXJELGlCQUFpQlosc0RBQWVBLENBQUNvRSxTQUFTLEVBQUU7WUFDOUMsT0FBTyxDQUFDM0IsT0FBT0MsTUFBTSxDQUFDYixZQUFZSyxNQUFNLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUgsSUFBSSxLQUFLZSxZQUFZLENBQUMsRUFBRSxFQUN0RVY7UUFDTjtRQUNBLE1BQU1TLFdBQVcsQ0FBQyxFQUFFQyxVQUFVLENBQUMsRUFBRW5DLGFBQWFDLFdBQVcsR0FBRyxDQUFDO1FBQzdELElBQUlnQixZQUFZLENBQUNpQixTQUFTLEVBQUVULGNBQWMsTUFBTSxPQUFPO0lBQ3pEO0lBQ0EsT0FBTztBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvdXRpbHMvbW9kZWwudHM/ZTQ5ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUZBVUxUX01PREVMUywgU2VydmljZVByb3ZpZGVyIH0gZnJvbSBcIi4uL2NvbnN0YW50XCI7XHJcbmltcG9ydCB7IExMTU1vZGVsIH0gZnJvbSBcIi4uL2NsaWVudC9hcGlcIjtcclxuXHJcbmNvbnN0IEN1c3RvbVNlcSA9IHtcclxuICB2YWw6IC0xMDAwLCAvL1RvIGVuc3VyZSB0aGUgY3VzdG9tIG1vZGVsIGxvY2F0ZWQgYXQgZnJvbnQsIHN0YXJ0IGZyb20gLTEwMDAsIHJlZmVyIHRvIGNvbnN0YW50LnRzXHJcbiAgY2FjaGU6IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCksXHJcbiAgbmV4dDogKGlkOiBzdHJpbmcpID0+IHtcclxuICAgIGlmIChDdXN0b21TZXEuY2FjaGUuaGFzKGlkKSkge1xyXG4gICAgICByZXR1cm4gQ3VzdG9tU2VxLmNhY2hlLmdldChpZCkgYXMgbnVtYmVyO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IHNlcSA9IEN1c3RvbVNlcS52YWwrKztcclxuICAgICAgQ3VzdG9tU2VxLmNhY2hlLnNldChpZCwgc2VxKTtcclxuICAgICAgcmV0dXJuIHNlcTtcclxuICAgIH1cclxuICB9LFxyXG59O1xyXG5cclxuY29uc3QgY3VzdG9tUHJvdmlkZXIgPSAocHJvdmlkZXJOYW1lOiBzdHJpbmcpID0+ICh7XHJcbiAgaWQ6IHByb3ZpZGVyTmFtZS50b0xvd2VyQ2FzZSgpLFxyXG4gIHByb3ZpZGVyTmFtZTogcHJvdmlkZXJOYW1lLFxyXG4gIHByb3ZpZGVyVHlwZTogXCJjdXN0b21cIixcclxuICBzb3J0ZWQ6IEN1c3RvbVNlcS5uZXh0KHByb3ZpZGVyTmFtZSksXHJcbn0pO1xyXG5cclxuLyoqXHJcbiAqIFNvcnRzIGFuIGFycmF5IG9mIG1vZGVscyBiYXNlZCBvbiBzcGVjaWZpZWQgcnVsZXMuXHJcbiAqXHJcbiAqIEZpcnN0LCBzb3J0ZWQgYnkgcHJvdmlkZXI7IGlmIHRoZSBzYW1lLCBzb3J0ZWQgYnkgbW9kZWxcclxuICovXHJcbmNvbnN0IHNvcnRNb2RlbFRhYmxlID0gKG1vZGVsczogUmV0dXJuVHlwZTx0eXBlb2YgY29sbGVjdE1vZGVscz4pID0+XHJcbiAgbW9kZWxzLnNvcnQoKGEsIGIpID0+IHtcclxuICAgIGlmIChhLnByb3ZpZGVyICYmIGIucHJvdmlkZXIpIHtcclxuICAgICAgbGV0IGNtcCA9IGEucHJvdmlkZXIuc29ydGVkIC0gYi5wcm92aWRlci5zb3J0ZWQ7XHJcbiAgICAgIHJldHVybiBjbXAgPT09IDAgPyBhLnNvcnRlZCAtIGIuc29ydGVkIDogY21wO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGEuc29ydGVkIC0gYi5zb3J0ZWQ7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4vKipcclxuICogZ2V0IG1vZGVsIG5hbWUgYW5kIHByb3ZpZGVyIGZyb20gYSBmb3JtYXR0ZWQgc3RyaW5nLFxyXG4gKiBlLmcuIGBncHQtNEBPcGVuQWlgIG9yIGBjbGF1ZGUtMy01LXNvbm5ldEAyMDI0MDYyMEBHb29nbGVgXHJcbiAqIEBwYXJhbSBtb2RlbFdpdGhQcm92aWRlciBtb2RlbCBuYW1lIHdpdGggcHJvdmlkZXIgc2VwYXJhdGVkIGJ5IGxhc3QgYEBgIGNoYXIsXHJcbiAqIEByZXR1cm5zIFttb2RlbCwgcHJvdmlkZXJdIHR1cGxlLCBpZiBubyBgQGAgY2hhciBmb3VuZCwgcHJvdmlkZXIgaXMgdW5kZWZpbmVkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9kZWxQcm92aWRlcihtb2RlbFdpdGhQcm92aWRlcjogc3RyaW5nKTogW3N0cmluZywgc3RyaW5nP10ge1xyXG4gIGNvbnN0IFttb2RlbCwgcHJvdmlkZXJdID0gbW9kZWxXaXRoUHJvdmlkZXIuc3BsaXQoL0AoPyEuKkApLyk7XHJcbiAgcmV0dXJuIFttb2RlbCwgcHJvdmlkZXJdO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29sbGVjdE1vZGVsVGFibGUoXHJcbiAgbW9kZWxzOiByZWFkb25seSBMTE1Nb2RlbFtdLFxyXG4gIGN1c3RvbU1vZGVsczogc3RyaW5nLFxyXG4pIHtcclxuICBjb25zdCBtb2RlbFRhYmxlOiBSZWNvcmQ8XHJcbiAgICBzdHJpbmcsXHJcbiAgICB7XHJcbiAgICAgIGF2YWlsYWJsZTogYm9vbGVhbjtcclxuICAgICAgbmFtZTogc3RyaW5nO1xyXG4gICAgICBkaXNwbGF5TmFtZTogc3RyaW5nO1xyXG4gICAgICBzb3J0ZWQ6IG51bWJlcjtcclxuICAgICAgcHJvdmlkZXI/OiBMTE1Nb2RlbFtcInByb3ZpZGVyXCJdOyAvLyBNYXJrZWQgYXMgb3B0aW9uYWxcclxuICAgICAgaXNEZWZhdWx0PzogYm9vbGVhbjtcclxuICAgIH1cclxuICA+ID0ge307XHJcblxyXG4gIC8vIGRlZmF1bHQgbW9kZWxzXHJcbiAgbW9kZWxzLmZvckVhY2goKG0pID0+IHtcclxuICAgIC8vIHVzaW5nIDxtb2RlbE5hbWU+QDxwcm92aWRlcklkPiBhcyBmdWxsTmFtZVxyXG4gICAgbW9kZWxUYWJsZVtgJHttLm5hbWV9QCR7bT8ucHJvdmlkZXI/LmlkfWBdID0ge1xyXG4gICAgICAuLi5tLFxyXG4gICAgICBkaXNwbGF5TmFtZTogbS5uYW1lLCAvLyAncHJvdmlkZXInIGlzIGNvcGllZCBvdmVyIGlmIGl0IGV4aXN0c1xyXG4gICAgfTtcclxuICB9KTtcclxuXHJcbiAgLy8gc2VydmVyIGN1c3RvbSBtb2RlbHNcclxuICBjdXN0b21Nb2RlbHNcclxuICAgIC5zcGxpdChcIixcIilcclxuICAgIC5maWx0ZXIoKHYpID0+ICEhdiAmJiB2Lmxlbmd0aCA+IDApXHJcbiAgICAuZm9yRWFjaCgobSkgPT4ge1xyXG4gICAgICBjb25zdCBhdmFpbGFibGUgPSAhbS5zdGFydHNXaXRoKFwiLVwiKTtcclxuICAgICAgY29uc3QgbmFtZUNvbmZpZyA9XHJcbiAgICAgICAgbS5zdGFydHNXaXRoKFwiK1wiKSB8fCBtLnN0YXJ0c1dpdGgoXCItXCIpID8gbS5zbGljZSgxKSA6IG07XHJcbiAgICAgIGxldCBbbmFtZSwgZGlzcGxheU5hbWVdID0gbmFtZUNvbmZpZy5zcGxpdChcIj1cIik7XHJcblxyXG4gICAgICAvLyBlbmFibGUgb3IgZGlzYWJsZSBhbGwgbW9kZWxzXHJcbiAgICAgIGlmIChuYW1lID09PSBcImFsbFwiKSB7XHJcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhtb2RlbFRhYmxlKS5mb3JFYWNoKFxyXG4gICAgICAgICAgKG1vZGVsKSA9PiAobW9kZWwuYXZhaWxhYmxlID0gYXZhaWxhYmxlKSxcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIDEuIGZpbmQgbW9kZWwgYnkgbmFtZSwgYW5kIHNldCBhdmFpbGFibGUgdmFsdWVcclxuICAgICAgICBjb25zdCBbY3VzdG9tTW9kZWxOYW1lLCBjdXN0b21Qcm92aWRlck5hbWVdID0gZ2V0TW9kZWxQcm92aWRlcihuYW1lKTtcclxuICAgICAgICBsZXQgY291bnQgPSAwO1xyXG4gICAgICAgIGZvciAoY29uc3QgZnVsbE5hbWUgaW4gbW9kZWxUYWJsZSkge1xyXG4gICAgICAgICAgY29uc3QgW21vZGVsTmFtZSwgcHJvdmlkZXJOYW1lXSA9IGdldE1vZGVsUHJvdmlkZXIoZnVsbE5hbWUpO1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBjdXN0b21Nb2RlbE5hbWUgPT0gbW9kZWxOYW1lICYmXHJcbiAgICAgICAgICAgIChjdXN0b21Qcm92aWRlck5hbWUgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgICAgICAgIGN1c3RvbVByb3ZpZGVyTmFtZSA9PT0gcHJvdmlkZXJOYW1lKVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGNvdW50ICs9IDE7XHJcbiAgICAgICAgICAgIG1vZGVsVGFibGVbZnVsbE5hbWVdW1wiYXZhaWxhYmxlXCJdID0gYXZhaWxhYmxlO1xyXG4gICAgICAgICAgICAvLyBzd2FwIG5hbWUgYW5kIGRpc3BsYXlOYW1lIGZvciBieXRlZGFuY2VcclxuICAgICAgICAgICAgaWYgKHByb3ZpZGVyTmFtZSA9PT0gXCJieXRlZGFuY2VcIikge1xyXG4gICAgICAgICAgICAgIFtuYW1lLCBkaXNwbGF5TmFtZV0gPSBbZGlzcGxheU5hbWUsIG1vZGVsTmFtZV07XHJcbiAgICAgICAgICAgICAgbW9kZWxUYWJsZVtmdWxsTmFtZV1bXCJuYW1lXCJdID0gbmFtZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZGlzcGxheU5hbWUpIHtcclxuICAgICAgICAgICAgICBtb2RlbFRhYmxlW2Z1bGxOYW1lXVtcImRpc3BsYXlOYW1lXCJdID0gZGlzcGxheU5hbWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gMi4gaWYgbW9kZWwgbm90IGV4aXN0cywgY3JlYXRlIG5ldyBtb2RlbCB3aXRoIGF2YWlsYWJsZSB2YWx1ZVxyXG4gICAgICAgIGlmIChjb3VudCA9PT0gMCkge1xyXG4gICAgICAgICAgbGV0IFtjdXN0b21Nb2RlbE5hbWUsIGN1c3RvbVByb3ZpZGVyTmFtZV0gPSBnZXRNb2RlbFByb3ZpZGVyKG5hbWUpO1xyXG4gICAgICAgICAgY29uc3QgcHJvdmlkZXIgPSBjdXN0b21Qcm92aWRlcihcclxuICAgICAgICAgICAgY3VzdG9tUHJvdmlkZXJOYW1lIHx8IGN1c3RvbU1vZGVsTmFtZSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICAvLyBzd2FwIG5hbWUgYW5kIGRpc3BsYXlOYW1lIGZvciBieXRlZGFuY2VcclxuICAgICAgICAgIGlmIChkaXNwbGF5TmFtZSAmJiBwcm92aWRlci5wcm92aWRlck5hbWUgPT0gXCJCeXRlRGFuY2VcIikge1xyXG4gICAgICAgICAgICBbY3VzdG9tTW9kZWxOYW1lLCBkaXNwbGF5TmFtZV0gPSBbZGlzcGxheU5hbWUsIGN1c3RvbU1vZGVsTmFtZV07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBtb2RlbFRhYmxlW2Ake2N1c3RvbU1vZGVsTmFtZX1AJHtwcm92aWRlcj8uaWR9YF0gPSB7XHJcbiAgICAgICAgICAgIG5hbWU6IGN1c3RvbU1vZGVsTmFtZSxcclxuICAgICAgICAgICAgZGlzcGxheU5hbWU6IGRpc3BsYXlOYW1lIHx8IGN1c3RvbU1vZGVsTmFtZSxcclxuICAgICAgICAgICAgYXZhaWxhYmxlLFxyXG4gICAgICAgICAgICBwcm92aWRlciwgLy8gVXNlIG9wdGlvbmFsIGNoYWluaW5nXHJcbiAgICAgICAgICAgIHNvcnRlZDogQ3VzdG9tU2VxLm5leHQoYCR7Y3VzdG9tTW9kZWxOYW1lfUAke3Byb3ZpZGVyPy5pZH1gKSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgcmV0dXJuIG1vZGVsVGFibGU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb2xsZWN0TW9kZWxUYWJsZVdpdGhEZWZhdWx0TW9kZWwoXHJcbiAgbW9kZWxzOiByZWFkb25seSBMTE1Nb2RlbFtdLFxyXG4gIGN1c3RvbU1vZGVsczogc3RyaW5nLFxyXG4gIGRlZmF1bHRNb2RlbDogc3RyaW5nLFxyXG4pIHtcclxuICBsZXQgbW9kZWxUYWJsZSA9IGNvbGxlY3RNb2RlbFRhYmxlKG1vZGVscywgY3VzdG9tTW9kZWxzKTtcclxuICBpZiAoZGVmYXVsdE1vZGVsICYmIGRlZmF1bHRNb2RlbCAhPT0gXCJcIikge1xyXG4gICAgaWYgKGRlZmF1bHRNb2RlbC5pbmNsdWRlcyhcIkBcIikpIHtcclxuICAgICAgaWYgKGRlZmF1bHRNb2RlbCBpbiBtb2RlbFRhYmxlKSB7XHJcbiAgICAgICAgbW9kZWxUYWJsZVtkZWZhdWx0TW9kZWxdLmlzRGVmYXVsdCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG1vZGVsVGFibGUpKSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgbW9kZWxUYWJsZVtrZXldLmF2YWlsYWJsZSAmJlxyXG4gICAgICAgICAgZ2V0TW9kZWxQcm92aWRlcihrZXkpWzBdID09IGRlZmF1bHRNb2RlbFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgbW9kZWxUYWJsZVtrZXldLmlzRGVmYXVsdCA9IHRydWU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIG1vZGVsVGFibGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmF0ZSBmdWxsIG1vZGVsIHRhYmxlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbGxlY3RNb2RlbHMoXHJcbiAgbW9kZWxzOiByZWFkb25seSBMTE1Nb2RlbFtdLFxyXG4gIGN1c3RvbU1vZGVsczogc3RyaW5nLFxyXG4pIHtcclxuICBjb25zdCBtb2RlbFRhYmxlID0gY29sbGVjdE1vZGVsVGFibGUobW9kZWxzLCBjdXN0b21Nb2RlbHMpO1xyXG4gIGxldCBhbGxNb2RlbHMgPSBPYmplY3QudmFsdWVzKG1vZGVsVGFibGUpO1xyXG5cclxuICBhbGxNb2RlbHMgPSBzb3J0TW9kZWxUYWJsZShhbGxNb2RlbHMpO1xyXG5cclxuICByZXR1cm4gYWxsTW9kZWxzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29sbGVjdE1vZGVsc1dpdGhEZWZhdWx0TW9kZWwoXHJcbiAgbW9kZWxzOiByZWFkb25seSBMTE1Nb2RlbFtdLFxyXG4gIGN1c3RvbU1vZGVsczogc3RyaW5nLFxyXG4gIGRlZmF1bHRNb2RlbDogc3RyaW5nLFxyXG4pIHtcclxuICBjb25zdCBtb2RlbFRhYmxlID0gY29sbGVjdE1vZGVsVGFibGVXaXRoRGVmYXVsdE1vZGVsKFxyXG4gICAgbW9kZWxzLFxyXG4gICAgY3VzdG9tTW9kZWxzLFxyXG4gICAgZGVmYXVsdE1vZGVsLFxyXG4gICk7XHJcbiAgbGV0IGFsbE1vZGVscyA9IE9iamVjdC52YWx1ZXMobW9kZWxUYWJsZSk7XHJcblxyXG4gIGFsbE1vZGVscyA9IHNvcnRNb2RlbFRhYmxlKGFsbE1vZGVscyk7XHJcblxyXG4gIHJldHVybiBhbGxNb2RlbHM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc01vZGVsQXZhaWxhYmxlSW5TZXJ2ZXIoXHJcbiAgY3VzdG9tTW9kZWxzOiBzdHJpbmcsXHJcbiAgbW9kZWxOYW1lOiBzdHJpbmcsXHJcbiAgcHJvdmlkZXJOYW1lOiBzdHJpbmcsXHJcbikge1xyXG4gIGNvbnN0IGZ1bGxOYW1lID0gYCR7bW9kZWxOYW1lfUAke3Byb3ZpZGVyTmFtZX1gO1xyXG4gIGNvbnN0IG1vZGVsVGFibGUgPSBjb2xsZWN0TW9kZWxUYWJsZShERUZBVUxUX01PREVMUywgY3VzdG9tTW9kZWxzKTtcclxuICByZXR1cm4gbW9kZWxUYWJsZVtmdWxsTmFtZV0/LmF2YWlsYWJsZSA9PT0gZmFsc2U7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVjayBpZiB0aGUgbW9kZWwgbmFtZSBpcyBhIEdQVC00IHJlbGF0ZWQgbW9kZWxcclxuICpcclxuICogQHBhcmFtIG1vZGVsTmFtZSBUaGUgbmFtZSBvZiB0aGUgbW9kZWwgdG8gY2hlY2tcclxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgbW9kZWwgaXMgYSBHUFQtNCByZWxhdGVkIG1vZGVsIChleGNsdWRpbmcgZ3B0LTRvLW1pbmkpXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNHUFQ0TW9kZWwobW9kZWxOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICByZXR1cm4gKFxyXG4gICAgKG1vZGVsTmFtZS5zdGFydHNXaXRoKFwiZ3B0LTRcIikgfHxcclxuICAgICAgbW9kZWxOYW1lLnN0YXJ0c1dpdGgoXCJjaGF0Z3B0LTRvXCIpIHx8XHJcbiAgICAgIG1vZGVsTmFtZS5zdGFydHNXaXRoKFwibzFcIikpICYmXHJcbiAgICAhbW9kZWxOYW1lLnN0YXJ0c1dpdGgoXCJncHQtNG8tbWluaVwiKVxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3MgaWYgYSBtb2RlbCBpcyBub3QgYXZhaWxhYmxlIG9uIGFueSBvZiB0aGUgc3BlY2lmaWVkIHByb3ZpZGVycyBpbiB0aGUgc2VydmVyLlxyXG4gKlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gY3VzdG9tTW9kZWxzIC0gQSBzdHJpbmcgb2YgY3VzdG9tIG1vZGVscywgY29tbWEtc2VwYXJhdGVkLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gbW9kZWxOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIG1vZGVsIHRvIGNoZWNrLlxyXG4gKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXX0gcHJvdmlkZXJOYW1lcyAtIEEgc3RyaW5nIG9yIGFycmF5IG9mIHByb3ZpZGVyIG5hbWVzIHRvIGNoZWNrIGFnYWluc3QuXHJcbiAqXHJcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHRoZSBtb2RlbCBpcyBub3QgYXZhaWxhYmxlIG9uIGFueSBvZiB0aGUgc3BlY2lmaWVkIHByb3ZpZGVycywgZmFsc2Ugb3RoZXJ3aXNlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzTW9kZWxOb3RhdmFpbGFibGVJblNlcnZlcihcclxuICBjdXN0b21Nb2RlbHM6IHN0cmluZyxcclxuICBtb2RlbE5hbWU6IHN0cmluZyxcclxuICBwcm92aWRlck5hbWVzOiBzdHJpbmcgfCBzdHJpbmdbXSxcclxuKTogYm9vbGVhbiB7XHJcbiAgLy8gQ2hlY2sgRElTQUJMRV9HUFQ0IGVudmlyb25tZW50IHZhcmlhYmxlXHJcbiAgaWYgKFxyXG4gICAgcHJvY2Vzcy5lbnYuRElTQUJMRV9HUFQ0ID09PSBcIjFcIiAmJlxyXG4gICAgaXNHUFQ0TW9kZWwobW9kZWxOYW1lLnRvTG93ZXJDYXNlKCkpXHJcbiAgKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IG1vZGVsVGFibGUgPSBjb2xsZWN0TW9kZWxUYWJsZShERUZBVUxUX01PREVMUywgY3VzdG9tTW9kZWxzKTtcclxuXHJcbiAgY29uc3QgcHJvdmlkZXJOYW1lc0FycmF5ID0gQXJyYXkuaXNBcnJheShwcm92aWRlck5hbWVzKVxyXG4gICAgPyBwcm92aWRlck5hbWVzXHJcbiAgICA6IFtwcm92aWRlck5hbWVzXTtcclxuICBmb3IgKGNvbnN0IHByb3ZpZGVyTmFtZSBvZiBwcm92aWRlck5hbWVzQXJyYXkpIHtcclxuICAgIC8vIGlmIG1vZGVsIHByb3ZpZGVyIGlzIGJ5dGVkYW5jZSwgdXNlIG1vZGVsIGNvbmZpZyBuYW1lIHRvIGNoZWNrIGlmIG5vdCBhdmFsaWFibGVcclxuICAgIGlmIChwcm92aWRlck5hbWUgPT09IFNlcnZpY2VQcm92aWRlci5CeXRlRGFuY2UpIHtcclxuICAgICAgcmV0dXJuICFPYmplY3QudmFsdWVzKG1vZGVsVGFibGUpLmZpbHRlcigodikgPT4gdi5uYW1lID09PSBtb2RlbE5hbWUpPy5bMF1cclxuICAgICAgICA/LmF2YWlsYWJsZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGZ1bGxOYW1lID0gYCR7bW9kZWxOYW1lfUAke3Byb3ZpZGVyTmFtZS50b0xvd2VyQ2FzZSgpfWA7XHJcbiAgICBpZiAobW9kZWxUYWJsZT8uW2Z1bGxOYW1lXT8uYXZhaWxhYmxlID09PSB0cnVlKSByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIHJldHVybiB0cnVlO1xyXG59XHJcbiJdLCJuYW1lcyI6WyJERUZBVUxUX01PREVMUyIsIlNlcnZpY2VQcm92aWRlciIsIkN1c3RvbVNlcSIsInZhbCIsImNhY2hlIiwiTWFwIiwibmV4dCIsImlkIiwiaGFzIiwiZ2V0Iiwic2VxIiwic2V0IiwiY3VzdG9tUHJvdmlkZXIiLCJwcm92aWRlck5hbWUiLCJ0b0xvd2VyQ2FzZSIsInByb3ZpZGVyVHlwZSIsInNvcnRlZCIsInNvcnRNb2RlbFRhYmxlIiwibW9kZWxzIiwic29ydCIsImEiLCJiIiwicHJvdmlkZXIiLCJjbXAiLCJnZXRNb2RlbFByb3ZpZGVyIiwibW9kZWxXaXRoUHJvdmlkZXIiLCJtb2RlbCIsInNwbGl0IiwiY29sbGVjdE1vZGVsVGFibGUiLCJjdXN0b21Nb2RlbHMiLCJtb2RlbFRhYmxlIiwiZm9yRWFjaCIsIm0iLCJuYW1lIiwiZGlzcGxheU5hbWUiLCJmaWx0ZXIiLCJ2IiwibGVuZ3RoIiwiYXZhaWxhYmxlIiwic3RhcnRzV2l0aCIsIm5hbWVDb25maWciLCJzbGljZSIsIk9iamVjdCIsInZhbHVlcyIsImN1c3RvbU1vZGVsTmFtZSIsImN1c3RvbVByb3ZpZGVyTmFtZSIsImNvdW50IiwiZnVsbE5hbWUiLCJtb2RlbE5hbWUiLCJ1bmRlZmluZWQiLCJjb2xsZWN0TW9kZWxUYWJsZVdpdGhEZWZhdWx0TW9kZWwiLCJkZWZhdWx0TW9kZWwiLCJpbmNsdWRlcyIsImlzRGVmYXVsdCIsImtleSIsImtleXMiLCJjb2xsZWN0TW9kZWxzIiwiYWxsTW9kZWxzIiwiY29sbGVjdE1vZGVsc1dpdGhEZWZhdWx0TW9kZWwiLCJpc01vZGVsQXZhaWxhYmxlSW5TZXJ2ZXIiLCJpc0dQVDRNb2RlbCIsImlzTW9kZWxOb3RhdmFpbGFibGVJblNlcnZlciIsInByb3ZpZGVyTmFtZXMiLCJwcm9jZXNzIiwiZW52IiwiRElTQUJMRV9HUFQ0IiwicHJvdmlkZXJOYW1lc0FycmF5IiwiQXJyYXkiLCJpc0FycmF5IiwiQnl0ZURhbmNlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(action-browser)/./app/utils/model.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(rsc)/./app/utils/model.ts":
|
|
|
/*!****************************!*\
|
|
|
!*** ./app/utils/model.ts ***!
|
|
|
\****************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ collectModelTable: () => (/* binding */ collectModelTable),\n/* harmony export */ collectModelTableWithDefaultModel: () => (/* binding */ collectModelTableWithDefaultModel),\n/* harmony export */ collectModels: () => (/* binding */ collectModels),\n/* harmony export */ collectModelsWithDefaultModel: () => (/* binding */ collectModelsWithDefaultModel),\n/* harmony export */ getModelProvider: () => (/* binding */ getModelProvider),\n/* harmony export */ isGPT4Model: () => (/* binding */ isGPT4Model),\n/* harmony export */ isModelAvailableInServer: () => (/* binding */ isModelAvailableInServer),\n/* harmony export */ isModelNotavailableInServer: () => (/* binding */ isModelNotavailableInServer)\n/* harmony export */ });\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constant */ \"(rsc)/./app/constant.ts\");\n\nconst CustomSeq = {\n val: -1000,\n cache: new Map(),\n next: (id)=>{\n if (CustomSeq.cache.has(id)) {\n return CustomSeq.cache.get(id);\n } else {\n let seq = CustomSeq.val++;\n CustomSeq.cache.set(id, seq);\n return seq;\n }\n }\n};\nconst customProvider = (providerName)=>({\n id: providerName.toLowerCase(),\n providerName: providerName,\n providerType: \"custom\",\n sorted: CustomSeq.next(providerName)\n });\n/**\r\n * Sorts an array of models based on specified rules.\r\n *\r\n * First, sorted by provider; if the same, sorted by model\r\n */ const sortModelTable = (models)=>models.sort((a, b)=>{\n if (a.provider && b.provider) {\n let cmp = a.provider.sorted - b.provider.sorted;\n return cmp === 0 ? a.sorted - b.sorted : cmp;\n } else {\n return a.sorted - b.sorted;\n }\n });\n/**\r\n * get model name and provider from a formatted string,\r\n * e.g. `gpt-4@OpenAi` or `claude-3-5-sonnet@20240620@Google`\r\n * @param modelWithProvider model name with provider separated by last `@` char,\r\n * @returns [model, provider] tuple, if no `@` char found, provider is undefined\r\n */ function getModelProvider(modelWithProvider) {\n const [model, provider] = modelWithProvider.split(/@(?!.*@)/);\n return [\n model,\n provider\n ];\n}\nfunction collectModelTable(models, customModels) {\n const modelTable = {};\n // default models\n models.forEach((m)=>{\n // using <modelName>@<providerId> as fullName\n modelTable[`${m.name}@${m?.provider?.id}`] = {\n ...m,\n displayName: m.name\n };\n });\n // server custom models\n customModels.split(\",\").filter((v)=>!!v && v.length > 0).forEach((m)=>{\n const available = !m.startsWith(\"-\");\n const nameConfig = m.startsWith(\"+\") || m.startsWith(\"-\") ? m.slice(1) : m;\n let [name, displayName] = nameConfig.split(\"=\");\n // enable or disable all models\n if (name === \"all\") {\n Object.values(modelTable).forEach((model)=>model.available = available);\n } else {\n // 1. find model by name, and set available value\n const [customModelName, customProviderName] = getModelProvider(name);\n let count = 0;\n for(const fullName in modelTable){\n const [modelName, providerName] = getModelProvider(fullName);\n if (customModelName == modelName && (customProviderName === undefined || customProviderName === providerName)) {\n count += 1;\n modelTable[fullName][\"available\"] = available;\n // swap name and displayName for bytedance\n if (providerName === \"bytedance\") {\n [name, displayName] = [\n displayName,\n modelName\n ];\n modelTable[fullName][\"name\"] = name;\n }\n if (displayName) {\n modelTable[fullName][\"displayName\"] = displayName;\n }\n }\n }\n // 2. if model not exists, create new model with available value\n if (count === 0) {\n let [customModelName, customProviderName] = getModelProvider(name);\n const provider = customProvider(customProviderName || customModelName);\n // swap name and displayName for bytedance\n if (displayName && provider.providerName == \"ByteDance\") {\n [customModelName, displayName] = [\n displayName,\n customModelName\n ];\n }\n modelTable[`${customModelName}@${provider?.id}`] = {\n name: customModelName,\n displayName: displayName || customModelName,\n available,\n provider,\n sorted: CustomSeq.next(`${customModelName}@${provider?.id}`)\n };\n }\n }\n });\n return modelTable;\n}\nfunction collectModelTableWithDefaultModel(models, customModels, defaultModel) {\n let modelTable = collectModelTable(models, customModels);\n if (defaultModel && defaultModel !== \"\") {\n if (defaultModel.includes(\"@\")) {\n if (defaultModel in modelTable) {\n modelTable[defaultModel].isDefault = true;\n }\n } else {\n for (const key of Object.keys(modelTable)){\n if (modelTable[key].available && getModelProvider(key)[0] == defaultModel) {\n modelTable[key].isDefault = true;\n break;\n }\n }\n }\n }\n return modelTable;\n}\n/**\r\n * Generate full model table.\r\n */ function collectModels(models, customModels) {\n const modelTable = collectModelTable(models, customModels);\n let allModels = Object.values(modelTable);\n allModels = sortModelTable(allModels);\n return allModels;\n}\nfunction collectModelsWithDefaultModel(models, customModels, defaultModel) {\n const modelTable = collectModelTableWithDefaultModel(models, customModels, defaultModel);\n let allModels = Object.values(modelTable);\n allModels = sortModelTable(allModels);\n return allModels;\n}\nfunction isModelAvailableInServer(customModels, modelName, providerName) {\n const fullName = `${modelName}@${providerName}`;\n const modelTable = collectModelTable(_constant__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_MODELS, customModels);\n return modelTable[fullName]?.available === false;\n}\n/**\r\n * Check if the model name is a GPT-4 related model\r\n *\r\n * @param modelName The name of the model to check\r\n * @returns True if the model is a GPT-4 related model (excluding gpt-4o-mini)\r\n */ function isGPT4Model(modelName) {\n return (modelName.startsWith(\"gpt-4\") || modelName.startsWith(\"chatgpt-4o\") || modelName.startsWith(\"o1\")) && !modelName.startsWith(\"gpt-4o-mini\");\n}\n/**\r\n * Checks if a model is not available on any of the specified providers in the server.\r\n *\r\n * @param {string} customModels - A string of custom models, comma-separated.\r\n * @param {string} modelName - The name of the model to check.\r\n * @param {string|string[]} providerNames - A string or array of provider names to check against.\r\n *\r\n * @returns {boolean} True if the model is not available on any of the specified providers, false otherwise.\r\n */ function isModelNotavailableInServer(customModels, modelName, providerNames) {\n // Check DISABLE_GPT4 environment variable\n if (process.env.DISABLE_GPT4 === \"1\" && isGPT4Model(modelName.toLowerCase())) {\n return true;\n }\n const modelTable = collectModelTable(_constant__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_MODELS, customModels);\n const providerNamesArray = Array.isArray(providerNames) ? providerNames : [\n providerNames\n ];\n for (const providerName of providerNamesArray){\n // if model provider is bytedance, use model config name to check if not avaliable\n if (providerName === _constant__WEBPACK_IMPORTED_MODULE_0__.ServiceProvider.ByteDance) {\n return !Object.values(modelTable).filter((v)=>v.name === modelName)?.[0]?.available;\n }\n const fullName = `${modelName}@${providerName.toLowerCase()}`;\n if (modelTable?.[fullName]?.available === true) return false;\n }\n return true;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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VCxVQUFVLENBQUM7QUFFMUI7QUFFQTs7Ozs7Ozs7Q0FRQyxHQUNNLFNBQVNzQiw0QkFDZGhDLFlBQW9CLEVBQ3BCbUIsU0FBaUIsRUFDakJjLGFBQWdDO0lBRWhDLDBDQUEwQztJQUMxQyxJQUNFQyxRQUFRQyxHQUFHLENBQUNDLFlBQVksS0FBSyxPQUM3QkwsWUFBWVosVUFBVWxDLFdBQVcsS0FDakM7UUFDQSxPQUFPO0lBQ1Q7SUFFQSxNQUFNZ0IsYUFBYUYsa0JBQWtCNUIscURBQWNBLEVBQUU2QjtJQUVyRCxNQUFNcUMscUJBQXFCQyxNQUFNQyxPQUFPLENBQUNOLGlCQUNyQ0EsZ0JBQ0E7UUFBQ0E7S0FBYztJQUNuQixLQUFLLE1BQU1qRCxnQkFBZ0JxRCxtQkFBb0I7UUFDN0Msa0ZBQWtGO1FBQ2xGLElBQUlyRCxpQkFBaUJaLHNEQUFlQSxDQUFDb0UsU0FBUyxFQUFFO1lBQzlDLE9BQU8sQ0FBQzNCLE9BQU9DLE1BQU0sQ0FBQ2IsWUFBWUssTUFBTSxDQUFDLENBQUNDLElBQU1BLEVBQUVILElBQUksS0FBS2UsWUFBWSxDQUFDLEVBQUUsRUFDdEVWO1FBQ047UUFDQSxNQUFNUyxXQUFXLENBQUMsRUFBRUMsVUFBVSxDQUFDLEVBQUVuQyxhQUFhQyxXQUFXLEdBQUcsQ0FBQztRQUM3RCxJQUFJZ0IsWUFBWSxDQUFDaUIsU0FBUyxFQUFFVCxjQUFjLE1BQU0sT0FBTztJQUN6RDtJQUNBLE9BQU87QUFDVCIsInNvdXJjZXMiOlsid2VicGFjazovL25leHRjaGF0Ly4vYXBwL3V0aWxzL21vZGVsLnRzP2U0OWYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVGQVVMVF9NT0RFTFMsIFNlcnZpY2VQcm92aWRlciB9IGZyb20gXCIuLi9jb25zdGFudFwiO1xyXG5pbXBvcnQgeyBMTE1Nb2RlbCB9IGZyb20gXCIuLi9jbGllbnQvYXBpXCI7XHJcblxyXG5jb25zdCBDdXN0b21TZXEgPSB7XHJcbiAgdmFsOiAtMTAwMCwgLy9UbyBlbnN1cmUgdGhlIGN1c3RvbSBtb2RlbCBsb2NhdGVkIGF0IGZyb250LCBzdGFydCBmcm9tIC0xMDAwLCByZWZlciB0byBjb25zdGFudC50c1xyXG4gIGNhY2hlOiBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpLFxyXG4gIG5leHQ6IChpZDogc3RyaW5nKSA9PiB7XHJcbiAgICBpZiAoQ3VzdG9tU2VxLmNhY2hlLmhhcyhpZCkpIHtcclxuICAgICAgcmV0dXJuIEN1c3RvbVNlcS5jYWNoZS5nZXQoaWQpIGFzIG51bWJlcjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBzZXEgPSBDdXN0b21TZXEudmFsKys7XHJcbiAgICAgIEN1c3RvbVNlcS5jYWNoZS5zZXQoaWQsIHNlcSk7XHJcbiAgICAgIHJldHVybiBzZXE7XHJcbiAgICB9XHJcbiAgfSxcclxufTtcclxuXHJcbmNvbnN0IGN1c3RvbVByb3ZpZGVyID0gKHByb3ZpZGVyTmFtZTogc3RyaW5nKSA9PiAoe1xyXG4gIGlkOiBwcm92aWRlck5hbWUudG9Mb3dlckNhc2UoKSxcclxuICBwcm92aWRlck5hbWU6IHByb3ZpZGVyTmFtZSxcclxuICBwcm92aWRlclR5cGU6IFwiY3VzdG9tXCIsXHJcbiAgc29ydGVkOiBDdXN0b21TZXEubmV4dChwcm92aWRlck5hbWUpLFxyXG59KTtcclxuXHJcbi8qKlxyXG4gKiBTb3J0cyBhbiBhcnJheSBvZiBtb2RlbHMgYmFzZWQgb24gc3BlY2lmaWVkIHJ1bGVzLlxyXG4gKlxyXG4gKiBGaXJzdCwgc29ydGVkIGJ5IHByb3ZpZGVyOyBpZiB0aGUgc2FtZSwgc29ydGVkIGJ5IG1vZGVsXHJcbiAqL1xyXG5jb25zdCBzb3J0TW9kZWxUYWJsZSA9IChtb2RlbHM6IFJldHVyblR5cGU8dHlwZW9mIGNvbGxlY3RNb2RlbHM+KSA9PlxyXG4gIG1vZGVscy5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICBpZiAoYS5wcm92aWRlciAmJiBiLnByb3ZpZGVyKSB7XHJcbiAgICAgIGxldCBjbXAgPSBhLnByb3ZpZGVyLnNvcnRlZCAtIGIucHJvdmlkZXIuc29ydGVkO1xyXG4gICAgICByZXR1cm4gY21wID09PSAwID8gYS5zb3J0ZWQgLSBiLnNvcnRlZCA6IGNtcDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBhLnNvcnRlZCAtIGIuc29ydGVkO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuLyoqXHJcbiAqIGdldCBtb2RlbCBuYW1lIGFuZCBwcm92aWRlciBmcm9tIGEgZm9ybWF0dGVkIHN0cmluZyxcclxuICogZS5nLiBgZ3B0LTRAT3BlbkFpYCBvciBgY2xhdWRlLTMtNS1zb25uZXRAMjAyNDA2MjBAR29vZ2xlYFxyXG4gKiBAcGFyYW0gbW9kZWxXaXRoUHJvdmlkZXIgbW9kZWwgbmFtZSB3aXRoIHByb3ZpZGVyIHNlcGFyYXRlZCBieSBsYXN0IGBAYCBjaGFyLFxyXG4gKiBAcmV0dXJucyBbbW9kZWwsIHByb3ZpZGVyXSB0dXBsZSwgaWYgbm8gYEBgIGNoYXIgZm91bmQsIHByb3ZpZGVyIGlzIHVuZGVmaW5lZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vZGVsUHJvdmlkZXIobW9kZWxXaXRoUHJvdmlkZXI6IHN0cmluZyk6IFtzdHJpbmcsIHN0cmluZz9dIHtcclxuICBjb25zdCBbbW9kZWwsIHByb3ZpZGVyXSA9IG1vZGVsV2l0aFByb3ZpZGVyLnNwbGl0KC9AKD8hLipAKS8pO1xyXG4gIHJldHVybiBbbW9kZWwsIHByb3ZpZGVyXTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbGxlY3RNb2RlbFRhYmxlKFxyXG4gIG1vZGVsczogcmVhZG9ubHkgTExNTW9kZWxbXSxcclxuICBjdXN0b21Nb2RlbHM6IHN0cmluZyxcclxuKSB7XHJcbiAgY29uc3QgbW9kZWxUYWJsZTogUmVjb3JkPFxyXG4gICAgc3RyaW5nLFxyXG4gICAge1xyXG4gICAgICBhdmFpbGFibGU6IGJvb2xlYW47XHJcbiAgICAgIG5hbWU6IHN0cmluZztcclxuICAgICAgZGlzcGxheU5hbWU6IHN0cmluZztcclxuICAgICAgc29ydGVkOiBudW1iZXI7XHJcbiAgICAgIHByb3ZpZGVyPzogTExNTW9kZWxbXCJwcm92aWRlclwiXTsgLy8gTWFya2VkIGFzIG9wdGlvbmFsXHJcbiAgICAgIGlzRGVmYXVsdD86IGJvb2xlYW47XHJcbiAgICB9XHJcbiAgPiA9IHt9O1xyXG5cclxuICAvLyBkZWZhdWx0IG1vZGVsc1xyXG4gIG1vZGVscy5mb3JFYWNoKChtKSA9PiB7XHJcbiAgICAvLyB1c2luZyA8bW9kZWxOYW1lPkA8cHJvdmlkZXJJZD4gYXMgZnVsbE5hbWVcclxuICAgIG1vZGVsVGFibGVbYCR7bS5uYW1lfUAke20/LnByb3ZpZGVyPy5pZH1gXSA9IHtcclxuICAgICAgLi4ubSxcclxuICAgICAgZGlzcGxheU5hbWU6IG0ubmFtZSwgLy8gJ3Byb3ZpZGVyJyBpcyBjb3BpZWQgb3ZlciBpZiBpdCBleGlzdHNcclxuICAgIH07XHJcbiAgfSk7XHJcblxyXG4gIC8vIHNlcnZlciBjdXN0b20gbW9kZWxzXHJcbiAgY3VzdG9tTW9kZWxzXHJcbiAgICAuc3BsaXQoXCIsXCIpXHJcbiAgICAuZmlsdGVyKCh2KSA9PiAhIXYgJiYgdi5sZW5ndGggPiAwKVxyXG4gICAgLmZvckVhY2goKG0pID0+IHtcclxuICAgICAgY29uc3QgYXZhaWxhYmxlID0gIW0uc3RhcnRzV2l0aChcIi1cIik7XHJcbiAgICAgIGNvbnN0IG5hbWVDb25maWcgPVxyXG4gICAgICAgIG0uc3RhcnRzV2l0aChcIitcIikgfHwgbS5zdGFydHNXaXRoKFwiLVwiKSA/IG0uc2xpY2UoMSkgOiBtO1xyXG4gICAgICBsZXQgW25hbWUsIGRpc3BsYXlOYW1lXSA9IG5hbWVDb25maWcuc3BsaXQoXCI9XCIpO1xyXG5cclxuICAgICAgLy8gZW5hYmxlIG9yIGRpc2FibGUgYWxsIG1vZGVsc1xyXG4gICAgICBpZiAobmFtZSA9PT0gXCJhbGxcIikge1xyXG4gICAgICAgIE9iamVjdC52YWx1ZXMobW9kZWxUYWJsZSkuZm9yRWFjaChcclxuICAgICAgICAgIChtb2RlbCkgPT4gKG1vZGVsLmF2YWlsYWJsZSA9IGF2YWlsYWJsZSksXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyAxLiBmaW5kIG1vZGVsIGJ5IG5hbWUsIGFuZCBzZXQgYXZhaWxhYmxlIHZhbHVlXHJcbiAgICAgICAgY29uc3QgW2N1c3RvbU1vZGVsTmFtZSwgY3VzdG9tUHJvdmlkZXJOYW1lXSA9IGdldE1vZGVsUHJvdmlkZXIobmFtZSk7XHJcbiAgICAgICAgbGV0IGNvdW50ID0gMDtcclxuICAgICAgICBmb3IgKGNvbnN0IGZ1bGxOYW1lIGluIG1vZGVsVGFibGUpIHtcclxuICAgICAgICAgIGNvbnN0IFttb2RlbE5hbWUsIHByb3ZpZGVyTmFtZV0gPSBnZXRNb2RlbFByb3ZpZGVyKGZ1bGxOYW1lKTtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgY3VzdG9tTW9kZWxOYW1lID09IG1vZGVsTmFtZSAmJlxyXG4gICAgICAgICAgICAoY3VzdG9tUHJvdmlkZXJOYW1lID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICAgICAgICBjdXN0b21Qcm92aWRlck5hbWUgPT09IHByb3ZpZGVyTmFtZSlcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBjb3VudCArPSAxO1xyXG4gICAgICAgICAgICBtb2RlbFRhYmxlW2Z1bGxOYW1lXVtcImF2YWlsYWJsZVwiXSA9IGF2YWlsYWJsZTtcclxuICAgICAgICAgICAgLy8gc3dhcCBuYW1lIGFuZCBkaXNwbGF5TmFtZSBmb3IgYnl0ZWRhbmNlXHJcbiAgICAgICAgICAgIGlmIChwcm92aWRlck5hbWUgPT09IFwiYnl0ZWRhbmNlXCIpIHtcclxuICAgICAgICAgICAgICBbbmFtZSwgZGlzcGxheU5hbWVdID0gW2Rpc3BsYXlOYW1lLCBtb2RlbE5hbWVdO1xyXG4gICAgICAgICAgICAgIG1vZGVsVGFibGVbZnVsbE5hbWVdW1wibmFtZVwiXSA9IG5hbWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGRpc3BsYXlOYW1lKSB7XHJcbiAgICAgICAgICAgICAgbW9kZWxUYWJsZVtmdWxsTmFtZV1bXCJkaXNwbGF5TmFtZVwiXSA9IGRpc3BsYXlOYW1lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIDIuIGlmIG1vZGVsIG5vdCBleGlzdHMsIGNyZWF0ZSBuZXcgbW9kZWwgd2l0aCBhdmFpbGFibGUgdmFsdWVcclxuICAgICAgICBpZiAoY291bnQgPT09IDApIHtcclxuICAgICAgICAgIGxldCBbY3VzdG9tTW9kZWxOYW1lLCBjdXN0b21Qcm92aWRlck5hbWVdID0gZ2V0TW9kZWxQcm92aWRlcihuYW1lKTtcclxuICAgICAgICAgIGNvbnN0IHByb3ZpZGVyID0gY3VzdG9tUHJvdmlkZXIoXHJcbiAgICAgICAgICAgIGN1c3RvbVByb3ZpZGVyTmFtZSB8fCBjdXN0b21Nb2RlbE5hbWUsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgLy8gc3dhcCBuYW1lIGFuZCBkaXNwbGF5TmFtZSBmb3IgYnl0ZWRhbmNlXHJcbiAgICAgICAgICBpZiAoZGlzcGxheU5hbWUgJiYgcHJvdmlkZXIucHJvdmlkZXJOYW1lID09IFwiQnl0ZURhbmNlXCIpIHtcclxuICAgICAgICAgICAgW2N1c3RvbU1vZGVsTmFtZSwgZGlzcGxheU5hbWVdID0gW2Rpc3BsYXlOYW1lLCBjdXN0b21Nb2RlbE5hbWVdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgbW9kZWxUYWJsZVtgJHtjdXN0b21Nb2RlbE5hbWV9QCR7cHJvdmlkZXI/LmlkfWBdID0ge1xyXG4gICAgICAgICAgICBuYW1lOiBjdXN0b21Nb2RlbE5hbWUsXHJcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBkaXNwbGF5TmFtZSB8fCBjdXN0b21Nb2RlbE5hbWUsXHJcbiAgICAgICAgICAgIGF2YWlsYWJsZSxcclxuICAgICAgICAgICAgcHJvdmlkZXIsIC8vIFVzZSBvcHRpb25hbCBjaGFpbmluZ1xyXG4gICAgICAgICAgICBzb3J0ZWQ6IEN1c3RvbVNlcS5uZXh0KGAke2N1c3RvbU1vZGVsTmFtZX1AJHtwcm92aWRlcj8uaWR9YCksXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gIHJldHVybiBtb2RlbFRhYmxlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29sbGVjdE1vZGVsVGFibGVXaXRoRGVmYXVsdE1vZGVsKFxyXG4gIG1vZGVsczogcmVhZG9ubHkgTExNTW9kZWxbXSxcclxuICBjdXN0b21Nb2RlbHM6IHN0cmluZyxcclxuICBkZWZhdWx0TW9kZWw6IHN0cmluZyxcclxuKSB7XHJcbiAgbGV0IG1vZGVsVGFibGUgPSBjb2xsZWN0TW9kZWxUYWJsZShtb2RlbHMsIGN1c3RvbU1vZGVscyk7XHJcbiAgaWYgKGRlZmF1bHRNb2RlbCAmJiBkZWZhdWx0TW9kZWwgIT09IFwiXCIpIHtcclxuICAgIGlmIChkZWZhdWx0TW9kZWwuaW5jbHVkZXMoXCJAXCIpKSB7XHJcbiAgICAgIGlmIChkZWZhdWx0TW9kZWwgaW4gbW9kZWxUYWJsZSkge1xyXG4gICAgICAgIG1vZGVsVGFibGVbZGVmYXVsdE1vZGVsXS5pc0RlZmF1bHQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtb2RlbFRhYmxlKSkge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIG1vZGVsVGFibGVba2V5XS5hdmFpbGFibGUgJiZcclxuICAgICAgICAgIGdldE1vZGVsUHJvdmlkZXIoa2V5KVswXSA9PSBkZWZhdWx0TW9kZWxcclxuICAgICAgICApIHtcclxuICAgICAgICAgIG1vZGVsVGFibGVba2V5XS5pc0RlZmF1bHQgPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBtb2RlbFRhYmxlO1xyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhdGUgZnVsbCBtb2RlbCB0YWJsZS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjb2xsZWN0TW9kZWxzKFxyXG4gIG1vZGVsczogcmVhZG9ubHkgTExNTW9kZWxbXSxcclxuICBjdXN0b21Nb2RlbHM6IHN0cmluZyxcclxuKSB7XHJcbiAgY29uc3QgbW9kZWxUYWJsZSA9IGNvbGxlY3RNb2RlbFRhYmxlKG1vZGVscywgY3VzdG9tTW9kZWxzKTtcclxuICBsZXQgYWxsTW9kZWxzID0gT2JqZWN0LnZhbHVlcyhtb2RlbFRhYmxlKTtcclxuXHJcbiAgYWxsTW9kZWxzID0gc29ydE1vZGVsVGFibGUoYWxsTW9kZWxzKTtcclxuXHJcbiAgcmV0dXJuIGFsbE1vZGVscztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbGxlY3RNb2RlbHNXaXRoRGVmYXVsdE1vZGVsKFxyXG4gIG1vZGVsczogcmVhZG9ubHkgTExNTW9kZWxbXSxcclxuICBjdXN0b21Nb2RlbHM6IHN0cmluZyxcclxuICBkZWZhdWx0TW9kZWw6IHN0cmluZyxcclxuKSB7XHJcbiAgY29uc3QgbW9kZWxUYWJsZSA9IGNvbGxlY3RNb2RlbFRhYmxlV2l0aERlZmF1bHRNb2RlbChcclxuICAgIG1vZGVscyxcclxuICAgIGN1c3RvbU1vZGVscyxcclxuICAgIGRlZmF1bHRNb2RlbCxcclxuICApO1xyXG4gIGxldCBhbGxNb2RlbHMgPSBPYmplY3QudmFsdWVzKG1vZGVsVGFibGUpO1xyXG5cclxuICBhbGxNb2RlbHMgPSBzb3J0TW9kZWxUYWJsZShhbGxNb2RlbHMpO1xyXG5cclxuICByZXR1cm4gYWxsTW9kZWxzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNNb2RlbEF2YWlsYWJsZUluU2VydmVyKFxyXG4gIGN1c3RvbU1vZGVsczogc3RyaW5nLFxyXG4gIG1vZGVsTmFtZTogc3RyaW5nLFxyXG4gIHByb3ZpZGVyTmFtZTogc3RyaW5nLFxyXG4pIHtcclxuICBjb25zdCBmdWxsTmFtZSA9IGAke21vZGVsTmFtZX1AJHtwcm92aWRlck5hbWV9YDtcclxuICBjb25zdCBtb2RlbFRhYmxlID0gY29sbGVjdE1vZGVsVGFibGUoREVGQVVMVF9NT0RFTFMsIGN1c3RvbU1vZGVscyk7XHJcbiAgcmV0dXJuIG1vZGVsVGFibGVbZnVsbE5hbWVdPy5hdmFpbGFibGUgPT09IGZhbHNlO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2sgaWYgdGhlIG1vZGVsIG5hbWUgaXMgYSBHUFQtNCByZWxhdGVkIG1vZGVsXHJcbiAqXHJcbiAqIEBwYXJhbSBtb2RlbE5hbWUgVGhlIG5hbWUgb2YgdGhlIG1vZGVsIHRvIGNoZWNrXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIG1vZGVsIGlzIGEgR1BULTQgcmVsYXRlZCBtb2RlbCAoZXhjbHVkaW5nIGdwdC00by1taW5pKVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzR1BUNE1vZGVsKG1vZGVsTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIChcclxuICAgIChtb2RlbE5hbWUuc3RhcnRzV2l0aChcImdwdC00XCIpIHx8XHJcbiAgICAgIG1vZGVsTmFtZS5zdGFydHNXaXRoKFwiY2hhdGdwdC00b1wiKSB8fFxyXG4gICAgICBtb2RlbE5hbWUuc3RhcnRzV2l0aChcIm8xXCIpKSAmJlxyXG4gICAgIW1vZGVsTmFtZS5zdGFydHNXaXRoKFwiZ3B0LTRvLW1pbmlcIilcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGlmIGEgbW9kZWwgaXMgbm90IGF2YWlsYWJsZSBvbiBhbnkgb2YgdGhlIHNwZWNpZmllZCBwcm92aWRlcnMgaW4gdGhlIHNlcnZlci5cclxuICpcclxuICogQHBhcmFtIHtzdHJpbmd9IGN1c3RvbU1vZGVscyAtIEEgc3RyaW5nIG9mIGN1c3RvbSBtb2RlbHMsIGNvbW1hLXNlcGFyYXRlZC5cclxuICogQHBhcmFtIHtzdHJpbmd9IG1vZGVsTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBtb2RlbCB0byBjaGVjay5cclxuICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IHByb3ZpZGVyTmFtZXMgLSBBIHN0cmluZyBvciBhcnJheSBvZiBwcm92aWRlciBuYW1lcyB0byBjaGVjayBhZ2FpbnN0LlxyXG4gKlxyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgbW9kZWwgaXMgbm90IGF2YWlsYWJsZSBvbiBhbnkgb2YgdGhlIHNwZWNpZmllZCBwcm92aWRlcnMsIGZhbHNlIG90aGVyd2lzZS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc01vZGVsTm90YXZhaWxhYmxlSW5TZXJ2ZXIoXHJcbiAgY3VzdG9tTW9kZWxzOiBzdHJpbmcsXHJcbiAgbW9kZWxOYW1lOiBzdHJpbmcsXHJcbiAgcHJvdmlkZXJOYW1lczogc3RyaW5nIHwgc3RyaW5nW10sXHJcbik6IGJvb2xlYW4ge1xyXG4gIC8vIENoZWNrIERJU0FCTEVfR1BUNCBlbnZpcm9ubWVudCB2YXJpYWJsZVxyXG4gIGlmIChcclxuICAgIHByb2Nlc3MuZW52LkRJU0FCTEVfR1BUNCA9PT0gXCIxXCIgJiZcclxuICAgIGlzR1BUNE1vZGVsKG1vZGVsTmFtZS50b0xvd2VyQ2FzZSgpKVxyXG4gICkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBjb25zdCBtb2RlbFRhYmxlID0gY29sbGVjdE1vZGVsVGFibGUoREVGQVVMVF9NT0RFTFMsIGN1c3RvbU1vZGVscyk7XHJcblxyXG4gIGNvbnN0IHByb3ZpZGVyTmFtZXNBcnJheSA9IEFycmF5LmlzQXJyYXkocHJvdmlkZXJOYW1lcylcclxuICAgID8gcHJvdmlkZXJOYW1lc1xyXG4gICAgOiBbcHJvdmlkZXJOYW1lc107XHJcbiAgZm9yIChjb25zdCBwcm92aWRlck5hbWUgb2YgcHJvdmlkZXJOYW1lc0FycmF5KSB7XHJcbiAgICAvLyBpZiBtb2RlbCBwcm92aWRlciBpcyBieXRlZGFuY2UsIHVzZSBtb2RlbCBjb25maWcgbmFtZSB0byBjaGVjayBpZiBub3QgYXZhbGlhYmxlXHJcbiAgICBpZiAocHJvdmlkZXJOYW1lID09PSBTZXJ2aWNlUHJvdmlkZXIuQnl0ZURhbmNlKSB7XHJcbiAgICAgIHJldHVybiAhT2JqZWN0LnZhbHVlcyhtb2RlbFRhYmxlKS5maWx0ZXIoKHYpID0+IHYubmFtZSA9PT0gbW9kZWxOYW1lKT8uWzBdXHJcbiAgICAgICAgPy5hdmFpbGFibGU7XHJcbiAgICB9XHJcbiAgICBjb25zdCBmdWxsTmFtZSA9IGAke21vZGVsTmFtZX1AJHtwcm92aWRlck5hbWUudG9Mb3dlckNhc2UoKX1gO1xyXG4gICAgaWYgKG1vZGVsVGFibGU/LltmdWxsTmFtZV0/LmF2YWlsYWJsZSA9PT0gdHJ1ZSkgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICByZXR1cm4gdHJ1ZTtcclxufVxyXG4iXSwibmFtZXMiOlsiREVGQVVMVF9NT0RFTFMiLCJTZXJ2aWNlUHJvdmlkZXIiLCJDdXN0b21TZXEiLCJ2YWwiLCJjYWNoZSIsIk1hcCIsIm5leHQiLCJpZCIsImhhcyIsImdldCIsInNlcSIsInNldCIsImN1c3RvbVByb3ZpZGVyIiwicHJvdmlkZXJOYW1lIiwidG9Mb3dlckNhc2UiLCJwcm92aWRlclR5cGUiLCJzb3J0ZWQiLCJzb3J0TW9kZWxUYWJsZSIsIm1vZGVscyIsInNvcnQiLCJhIiwiYiIsInByb3ZpZGVyIiwiY21wIiwiZ2V0TW9kZWxQcm92aWRlciIsIm1vZGVsV2l0aFByb3ZpZGVyIiwibW9kZWwiLCJzcGxpdCIsImNvbGxlY3RNb2RlbFRhYmxlIiwiY3VzdG9tTW9kZWxzIiwibW9kZWxUYWJsZSIsImZvckVhY2giLCJtIiwibmFtZSIsImRpc3BsYXlOYW1lIiwiZmlsdGVyIiwidiIsImxlbmd0aCIsImF2YWlsYWJsZSIsInN0YXJ0c1dpdGgiLCJuYW1lQ29uZmlnIiwic2xpY2UiLCJPYmplY3QiLCJ2YWx1ZXMiLCJjdXN0b21Nb2RlbE5hbWUiLCJjdXN0b21Qcm92aWRlck5hbWUiLCJjb3VudCIsImZ1bGxOYW1lIiwibW9kZWxOYW1lIiwidW5kZWZpbmVkIiwiY29sbGVjdE1vZGVsVGFibGVXaXRoRGVmYXVsdE1vZGVsIiwiZGVmYXVsdE1vZGVsIiwiaW5jbHVkZXMiLCJpc0RlZmF1bHQiLCJrZXkiLCJrZXlzIiwiY29sbGVjdE1vZGVscyIsImFsbE1vZGVscyIsImNvbGxlY3RNb2RlbHNXaXRoRGVmYXVsdE1vZGVsIiwiaXNNb2RlbEF2YWlsYWJsZUluU2VydmVyIiwiaXNHUFQ0TW9kZWwiLCJpc01vZGVsTm90YXZhaWxhYmxlSW5TZXJ2ZXIiLCJwcm92aWRlck5hbWVzIiwicHJvY2VzcyIsImVudiIsIkRJU0FCTEVfR1BUNCIsInByb3ZpZGVyTmFtZXNBcnJheSIsIkFycmF5IiwiaXNBcnJheSIsIkJ5dGVEYW5jZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./app/utils/model.ts\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./app/icons/chatgpt.png":
|
|
|
/*!*******************************!*\
|
|
|
!*** ./app/icons/chatgpt.png ***!
|
|
|
\*******************************/
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
"use strict";
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\"src\":\"/_next/static/media/chatgpt.1956a04f.png\",\"height\":153,\"width\":150,\"blurDataURL\":\"/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fchatgpt.1956a04f.png&w=8&q=70\",\"blurWidth\":8,\"blurHeight\":8});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvaWNvbnMvY2hhdGdwdC5wbmciLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGlFQUFlLENBQUMsa01BQWtNIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmV4dGNoYXQvLi9hcHAvaWNvbnMvY2hhdGdwdC5wbmc/MjkzMSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XCJzcmNcIjpcIi9fbmV4dC9zdGF0aWMvbWVkaWEvY2hhdGdwdC4xOTU2YTA0Zi5wbmdcIixcImhlaWdodFwiOjE1MyxcIndpZHRoXCI6MTUwLFwiYmx1ckRhdGFVUkxcIjpcIi9fbmV4dC9pbWFnZT91cmw9JTJGX25leHQlMkZzdGF0aWMlMkZtZWRpYSUyRmNoYXRncHQuMTk1NmEwNGYucG5nJnc9OCZxPTcwXCIsXCJibHVyV2lkdGhcIjo4LFwiYmx1ckhlaWdodFwiOjh9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/icons/chatgpt.png\n");
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(rsc)/./src-tauri/tauri.conf.json":
|
|
|
/*!***********************************!*\
|
|
|
!*** ./src-tauri/tauri.conf.json ***!
|
|
|
\***********************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = JSON.parse('{"$schema":"../node_modules/@tauri-apps/cli/schema.json","build":{"beforeBuildCommand":"yarn export","beforeDevCommand":"yarn export:dev","devPath":"http://localhost:3000","distDir":"../out","withGlobalTauri":true},"package":{"productName":"NextChat","version":"2.15.8"},"tauri":{"allowlist":{"all":false,"shell":{"all":false,"open":true},"dialog":{"all":true,"ask":true,"confirm":true,"message":true,"open":true,"save":true},"clipboard":{"all":true,"writeText":true,"readText":true},"window":{"all":false,"close":true,"hide":true,"maximize":true,"minimize":true,"setIcon":true,"setIgnoreCursorEvents":true,"setResizable":true,"show":true,"startDragging":true,"unmaximize":true,"unminimize":true},"fs":{"all":true},"notification":{"all":true},"http":{"all":true,"request":true,"scope":["https://*","http://*"]}},"bundle":{"active":true,"category":"DeveloperTool","copyright":"2023, Zhang Yifei All Rights Reserved.","deb":{"depends":[]},"externalBin":[],"icon":["icons/32x32.png","icons/128x128.png","icons/128x128@2x.png","icons/icon.icns","icons/icon.ico"],"identifier":"com.yida.chatgpt.next.web","longDescription":"NextChat is a cross-platform ChatGPT client, including Web/Win/Linux/OSX/PWA.","macOS":{"entitlements":null,"exceptionDomain":"","frameworks":[],"providerShortName":null,"signingIdentity":null},"resources":[],"shortDescription":"NextChat App","targets":"all","windows":{"certificateThumbprint":null,"digestAlgorithm":"sha256","timestampUrl":""}},"security":{"csp":null,"dangerousUseHttpScheme":true},"updater":{"active":true,"endpoints":["https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web/releases/latest/download/latest.json"],"dialog":true,"windows":{"installMode":"passive"},"pubkey":"dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IERFNDE4MENFM0Y1RTZBOTQKUldTVWFsNC96b0JCM3RqM2NmMnlFTmxIaStRaEJrTHNOU2VqRVlIV1hwVURoWUdVdEc1eDcxVEYK"},"windows":[{"fullscreen":false,"height":600,"resizable":true,"title":"NextChat","width":960,"hiddenTitle":true,"titleBarStyle":"Overlay"}]}}');
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ "(ssr)/./src-tauri/tauri.conf.json":
|
|
|
/*!***********************************!*\
|
|
|
!*** ./src-tauri/tauri.conf.json ***!
|
|
|
\***********************************/
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
"use strict";
|
|
|
module.exports = JSON.parse('{"$schema":"../node_modules/@tauri-apps/cli/schema.json","build":{"beforeBuildCommand":"yarn export","beforeDevCommand":"yarn export:dev","devPath":"http://localhost:3000","distDir":"../out","withGlobalTauri":true},"package":{"productName":"NextChat","version":"2.15.8"},"tauri":{"allowlist":{"all":false,"shell":{"all":false,"open":true},"dialog":{"all":true,"ask":true,"confirm":true,"message":true,"open":true,"save":true},"clipboard":{"all":true,"writeText":true,"readText":true},"window":{"all":false,"close":true,"hide":true,"maximize":true,"minimize":true,"setIcon":true,"setIgnoreCursorEvents":true,"setResizable":true,"show":true,"startDragging":true,"unmaximize":true,"unminimize":true},"fs":{"all":true},"notification":{"all":true},"http":{"all":true,"request":true,"scope":["https://*","http://*"]}},"bundle":{"active":true,"category":"DeveloperTool","copyright":"2023, Zhang Yifei All Rights Reserved.","deb":{"depends":[]},"externalBin":[],"icon":["icons/32x32.png","icons/128x128.png","icons/128x128@2x.png","icons/icon.icns","icons/icon.ico"],"identifier":"com.yida.chatgpt.next.web","longDescription":"NextChat is a cross-platform ChatGPT client, including Web/Win/Linux/OSX/PWA.","macOS":{"entitlements":null,"exceptionDomain":"","frameworks":[],"providerShortName":null,"signingIdentity":null},"resources":[],"shortDescription":"NextChat App","targets":"all","windows":{"certificateThumbprint":null,"digestAlgorithm":"sha256","timestampUrl":""}},"security":{"csp":null,"dangerousUseHttpScheme":true},"updater":{"active":true,"endpoints":["https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web/releases/latest/download/latest.json"],"dialog":true,"windows":{"installMode":"passive"},"pubkey":"dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IERFNDE4MENFM0Y1RTZBOTQKUldTVWFsNC96b0JCM3RqM2NmMnlFTmxIaStRaEJrTHNOU2VqRVlIV1hwVURoWUdVdEc1eDcxVEYK"},"windows":[{"fullscreen":false,"height":600,"resizable":true,"title":"NextChat","width":960,"hiddenTitle":true,"titleBarStyle":"Overlay"}]}}');
|
|
|
|
|
|
/***/ })
|
|
|
|
|
|
};
|
|
|
;
|
|
|
|
|
|
// load runtime
|
|
|
var __webpack_require__ = require("../webpack-runtime.js");
|
|
|
__webpack_require__.C(exports);
|
|
|
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
|
|
|
var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/lodash-es","vendor-chunks/next","vendor-chunks/@swc","vendor-chunks/js-yaml","vendor-chunks/third-party-capital","vendor-chunks/@next","vendor-chunks/asynckit","vendor-chunks/bath-es5","vendor-chunks/@modelcontextprotocol","vendor-chunks/dereference-json-schema","vendor-chunks/@vercel","vendor-chunks/use-sync-external-store","vendor-chunks/debug","vendor-chunks/zustand","vendor-chunks/openapi-client-axios","vendor-chunks/nanoid","vendor-chunks/@fortaine","vendor-chunks/spark-md5","vendor-chunks/react","vendor-chunks/mime-db","vendor-chunks/form-data","vendor-chunks/follow-redirects","vendor-chunks/zod","vendor-chunks/idb-keyval","vendor-chunks/fuse.js","vendor-chunks/clsx","vendor-chunks/axios","vendor-chunks/supports-color","vendor-chunks/react-router","vendor-chunks/react-router-dom","vendor-chunks/proxy-from-env","vendor-chunks/ms","vendor-chunks/mime-types","vendor-chunks/heic2any","vendor-chunks/has-flag","vendor-chunks/flairup","vendor-chunks/emoji-picker-react","vendor-chunks/delayed-stream","vendor-chunks/combined-stream","vendor-chunks/@remix-run"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=D%3A%5CNextChatCD%5Capp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=D%3A%5CNextChatCD&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=standalone&preferredRegion=&middlewareConfig=e30%3D!")));
|
|
|
module.exports = __webpack_exports__;
|
|
|
|
|
|
})(); |