"use strict"; /* * 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/). */ self["webpackHotUpdate_N_E"]("app/page",{ /***/ "(app-pages-browser)/./app/store/config.ts": /*!*****************************!*\ !*** ./app/store/config.ts ***! \*****************************/ /***/ (function(module, __webpack_exports__, __webpack_require__) { eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DEFAULT_CONFIG: function() { return /* binding */ DEFAULT_CONFIG; },\n/* harmony export */ ModalConfigValidator: function() { return /* binding */ ModalConfigValidator; },\n/* harmony export */ SubmitKey: function() { return /* binding */ SubmitKey; },\n/* harmony export */ TTSConfigValidator: function() { return /* binding */ TTSConfigValidator; },\n/* harmony export */ Theme: function() { return /* binding */ Theme; },\n/* harmony export */ limitNumber: function() { return /* binding */ limitNumber; },\n/* harmony export */ useAppConfig: function() { return /* binding */ useAppConfig; }\n/* harmony export */ });\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../config/client */ \"(app-pages-browser)/./app/config/client.ts\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constant */ \"(app-pages-browser)/./app/constant.ts\");\n/* harmony import */ var _utils_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/store */ \"(app-pages-browser)/./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)();\nvar _config_template;\nconst DEFAULT_CONFIG = {\n lastUpdate: Date.now(),\n submitKey: \"Enter\",\n avatar: \"1f603\",\n fontSize: 14,\n fontFamily: \"\",\n theme: \"auto\",\n tightBorder: !!(config === null || config === void 0 ? void 0 : 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 = config === null || config === void 0 ? void 0 : config.template) !== null && _config_template !== void 0 ? _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 var _model_provider;\n model.available = false;\n modelMap[\"\".concat(model.name, \"@\").concat(model === null || model === void 0 ? void 0 : (_model_provider = model.provider) === null || _model_provider === void 0 ? void 0 : _model_provider.id)] = model;\n }\n for (const model of newModels){\n var _model_provider1;\n model.available = true;\n modelMap[\"\".concat(model.name, \"@\").concat(model === null || model === void 0 ? void 0 : (_model_provider1 = model.provider) === null || _model_provider1 === void 0 ? void 0 : _model_provider1.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 var _config_template;\n state.modelConfig.template = state.modelConfig.template !== _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_INPUT_TEMPLATE ? state.modelConfig.template : (_config_template = config === null || config === void 0 ? void 0 : config.template) !== null && _config_template !== void 0 ? _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\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RixNQUFNM0QsV0FBVyxDQUFDYyxRQUFRLEdBQ3hCNkMsTUFBTTNELFdBQVcsQ0FBQ2MsUUFBUSxLQUFLOUMsNkRBQXNCQSxHQUNqRDJGLE1BQU0zRCxXQUFXLENBQUNjLFFBQVEsR0FDMUJwQyxDQUFBQSxtQkFBQUEsbUJBQUFBLDZCQUFBQSxPQUFRb0MsUUFBUSxjQUFoQnBDLDhCQUFBQSxtQkFBb0JWLDZEQUFzQkE7UUFDbEQ7UUFFQSxJQUFJdUYsVUFBVSxLQUFLO1lBQ2pCSSxNQUFNM0QsV0FBVyxDQUFDVyxhQUFhLEdBQzdCaEMsZUFBZXFCLFdBQVcsQ0FBQ1csYUFBYTtZQUMxQ2dELE1BQU0zRCxXQUFXLENBQUNZLG9CQUFvQixHQUNwQ2pDLGVBQWVxQixXQUFXLENBQUNZLG9CQUFvQjtRQUNuRDtRQUVBLE9BQU8rQztJQUNUO0FBQ0YsR0FDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9hcHAvc3RvcmUvY29uZmlnLnRzPzlmMzMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTExNTW9kZWwgfSBmcm9tIFwiLi4vY2xpZW50L2FwaVwiO1xyXG5pbXBvcnQgeyBEYWxsZVF1YWxpdHksIERhbGxlU3R5bGUsIE1vZGVsU2l6ZSB9IGZyb20gXCIuLi90eXBpbmdcIjtcclxuaW1wb3J0IHsgZ2V0Q2xpZW50Q29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9jbGllbnRcIjtcclxuaW1wb3J0IHtcclxuICBERUZBVUxUX0lOUFVUX1RFTVBMQVRFLFxyXG4gIERFRkFVTFRfTU9ERUxTLFxyXG4gIERFRkFVTFRfU0lERUJBUl9XSURUSCxcclxuICBERUZBVUxUX1RUU19FTkdJTkUsXHJcbiAgREVGQVVMVF9UVFNfRU5HSU5FUyxcclxuICBERUZBVUxUX1RUU19NT0RFTCxcclxuICBERUZBVUxUX1RUU19NT0RFTFMsXHJcbiAgREVGQVVMVF9UVFNfVk9JQ0UsXHJcbiAgREVGQVVMVF9UVFNfVk9JQ0VTLFxyXG4gIFN0b3JlS2V5LFxyXG4gIFNlcnZpY2VQcm92aWRlcixcclxufSBmcm9tIFwiLi4vY29uc3RhbnRcIjtcclxuaW1wb3J0IHsgY3JlYXRlUGVyc2lzdFN0b3JlIH0gZnJvbSBcIi4uL3V0aWxzL3N0b3JlXCI7XHJcbmltcG9ydCB0eXBlIHsgVm9pY2UgfSBmcm9tIFwicnQtY2xpZW50XCI7XHJcblxyXG5leHBvcnQgdHlwZSBNb2RlbFR5cGUgPSAodHlwZW9mIERFRkFVTFRfTU9ERUxTKVtudW1iZXJdW1wibmFtZVwiXTtcclxuZXhwb3J0IHR5cGUgVFRTTW9kZWxUeXBlID0gKHR5cGVvZiBERUZBVUxUX1RUU19NT0RFTFMpW251bWJlcl07XHJcbmV4cG9ydCB0eXBlIFRUU1ZvaWNlVHlwZSA9ICh0eXBlb2YgREVGQVVMVF9UVFNfVk9JQ0VTKVtudW1iZXJdO1xyXG5leHBvcnQgdHlwZSBUVFNFbmdpbmVUeXBlID0gKHR5cGVvZiBERUZBVUxUX1RUU19FTkdJTkVTKVtudW1iZXJdO1xyXG5cclxuZXhwb3J0IGVudW0gU3VibWl0S2V5IHtcclxuICBFbnRlciA9IFwiRW50ZXJcIixcclxuICBDdHJsRW50ZXIgPSBcIkN0cmwgKyBFbnRlclwiLFxyXG4gIFNoaWZ0RW50ZXIgPSBcIlNoaWZ0ICsgRW50ZXJcIixcclxuICBBbHRFbnRlciA9IFwiQWx0ICsgRW50ZXJcIixcclxuICBNZXRhRW50ZXIgPSBcIk1ldGEgKyBFbnRlclwiLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBUaGVtZSB7XHJcbiAgQXV0byA9IFwiYXV0b1wiLFxyXG4gIERhcmsgPSBcImRhcmtcIixcclxuICBMaWdodCA9IFwibGlnaHRcIixcclxufVxyXG5cclxuY29uc3QgY29uZmlnID0gZ2V0Q2xpZW50Q29uZmlnKCk7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT05GSUcgPSB7XHJcbiAgbGFzdFVwZGF0ZTogRGF0ZS5ub3coKSwgLy8gdGltZXN0YW1wLCB0byBtZXJnZSBzdGF0ZVxyXG5cclxuICBzdWJtaXRLZXk6IFN1Ym1pdEtleS5FbnRlcixcclxuICBhdmF0YXI6IFwiMWY2MDNcIixcclxuICBmb250U2l6ZTogMTQsXHJcbiAgZm9udEZhbWlseTogXCJcIixcclxuICB0aGVtZTogVGhlbWUuQXV0byBhcyBUaGVtZSxcclxuICB0aWdodEJvcmRlcjogISFjb25maWc/LmlzQXBwLFxyXG4gIHNlbmRQcmV2aWV3QnViYmxlOiB0cnVlLFxyXG4gIGVuYWJsZUF1dG9HZW5lcmF0ZVRpdGxlOiB0cnVlLFxyXG4gIHNpZGViYXJXaWR0aDogREVGQVVMVF9TSURFQkFSX1dJRFRILFxyXG5cclxuICBlbmFibGVBcnRpZmFjdHM6IHRydWUsIC8vIHNob3cgYXJ0aWZhY3RzIGNvbmZpZ1xyXG5cclxuICBlbmFibGVDb2RlRm9sZDogdHJ1ZSwgLy8gY29kZSBmb2xkIGNvbmZpZ1xyXG5cclxuICBkaXNhYmxlUHJvbXB0SGludDogdHJ1ZSxcclxuXHJcbiAgZG9udFNob3dNYXNrU3BsYXNoU2NyZWVuOiB0cnVlLCAvLyBkb250IHNob3cgc3BsYXNoIHNjcmVlbiB3aGVuIGNyZWF0ZSBjaGF0XHJcbiAgaGlkZUJ1aWx0aW5NYXNrczogZmFsc2UsIC8vIGRvbnQgYWRkIGJ1aWx0aW4gbWFza3NcclxuXHJcbiAgY3VzdG9tTW9kZWxzOiBcIlwiLFxyXG4gIG1vZGVsczogREVGQVVMVF9NT0RFTFMgYXMgYW55IGFzIExMTU1vZGVsW10sXHJcblxyXG4gIG1vZGVsQ29uZmlnOiB7XHJcbiAgICBtb2RlbDogXCJkZWVwc2Vlay1haS9EZWVwU2Vlay1WM1wiIGFzIE1vZGVsVHlwZSxcclxuICAgIHByb3ZpZGVyTmFtZTogXCJTaWxpY29uRmxvd1wiIGFzIFNlcnZpY2VQcm92aWRlcixcclxuICAgIHRlbXBlcmF0dXJlOiAwLjUsXHJcbiAgICB0b3BfcDogMSxcclxuICAgIG1heF90b2tlbnM6IDQwMDAsXHJcbiAgICBwcmVzZW5jZV9wZW5hbHR5OiAwLFxyXG4gICAgZnJlcXVlbmN5X3BlbmFsdHk6IDAsXHJcbiAgICBzZW5kTWVtb3J5OiB0cnVlLFxyXG4gICAgaGlzdG9yeU1lc3NhZ2VDb3VudDogNCxcclxuICAgIGNvbXByZXNzTWVzc2FnZUxlbmd0aFRocmVzaG9sZDogMTAwMCxcclxuICAgIGNvbXByZXNzTW9kZWw6IFwiZGVlcHNlZWstYWkvRGVlcFNlZWstVjNcIixcclxuICAgIGNvbXByZXNzUHJvdmlkZXJOYW1lOiBcIlNpbGljb25GbG93XCIgYXMgU2VydmljZVByb3ZpZGVyLFxyXG4gICAgZW5hYmxlSW5qZWN0U3lzdGVtUHJvbXB0czogZmFsc2UsXHJcbiAgICB0ZW1wbGF0ZTogY29uZmlnPy50ZW1wbGF0ZSA/PyBERUZBVUxUX0lOUFVUX1RFTVBMQVRFLFxyXG4gICAgc2l6ZTogXCIxMDI0eDEwMjRcIiBhcyBNb2RlbFNpemUsXHJcbiAgICBxdWFsaXR5OiBcInN0YW5kYXJkXCIgYXMgRGFsbGVRdWFsaXR5LFxyXG4gICAgc3R5bGU6IFwidml2aWRcIiBhcyBEYWxsZVN0eWxlLFxyXG4gIH0sXHJcblxyXG4gIHR0c0NvbmZpZzoge1xyXG4gICAgZW5hYmxlOiBmYWxzZSxcclxuICAgIGF1dG9wbGF5OiBmYWxzZSxcclxuICAgIGVuZ2luZTogREVGQVVMVF9UVFNfRU5HSU5FLFxyXG4gICAgbW9kZWw6IERFRkFVTFRfVFRTX01PREVMLFxyXG4gICAgdm9pY2U6IERFRkFVTFRfVFRTX1ZPSUNFLFxyXG4gICAgc3BlZWQ6IDEuMCxcclxuICB9LFxyXG5cclxuICByZWFsdGltZUNvbmZpZzoge1xyXG4gICAgZW5hYmxlOiBmYWxzZSxcclxuICAgIHByb3ZpZGVyOiBcIlNpbGljb25GbG93XCIgYXMgU2VydmljZVByb3ZpZGVyLFxyXG4gICAgbW9kZWw6IFwiZ3B0LTRvLXJlYWx0aW1lLXByZXZpZXctMjAyNC0xMC0wMVwiLFxyXG4gICAgYXBpS2V5OiBcIlwiLFxyXG4gICAgYXp1cmU6IHtcclxuICAgICAgZW5kcG9pbnQ6IFwiXCIsXHJcbiAgICAgIGRlcGxveW1lbnQ6IFwiXCIsXHJcbiAgICB9LFxyXG4gICAgdGVtcGVyYXR1cmU6IDAuOSxcclxuICAgIHZvaWNlOiBcImFsbG95XCIgYXMgVm9pY2UsXHJcbiAgfSxcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIENoYXRDb25maWcgPSB0eXBlb2YgREVGQVVMVF9DT05GSUc7XHJcblxyXG5leHBvcnQgdHlwZSBNb2RlbENvbmZpZyA9IENoYXRDb25maWdbXCJtb2RlbENvbmZpZ1wiXTtcclxuZXhwb3J0IHR5cGUgVFRTQ29uZmlnID0gQ2hhdENvbmZpZ1tcInR0c0NvbmZpZ1wiXTtcclxuZXhwb3J0IHR5cGUgUmVhbHRpbWVDb25maWcgPSBDaGF0Q29uZmlnW1wicmVhbHRpbWVDb25maWdcIl07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbGltaXROdW1iZXIoXHJcbiAgeDogbnVtYmVyLFxyXG4gIG1pbjogbnVtYmVyLFxyXG4gIG1heDogbnVtYmVyLFxyXG4gIGRlZmF1bHRWYWx1ZTogbnVtYmVyLFxyXG4pIHtcclxuICBpZiAoaXNOYU4oeCkpIHtcclxuICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gTWF0aC5taW4obWF4LCBNYXRoLm1heChtaW4sIHgpKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFRUU0NvbmZpZ1ZhbGlkYXRvciA9IHtcclxuICBlbmdpbmUoeDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4geCBhcyBUVFNFbmdpbmVUeXBlO1xyXG4gIH0sXHJcbiAgbW9kZWwoeDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4geCBhcyBUVFNNb2RlbFR5cGU7XHJcbiAgfSxcclxuICB2b2ljZSh4OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB4IGFzIFRUU1ZvaWNlVHlwZTtcclxuICB9LFxyXG4gIHNwZWVkKHg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIGxpbWl0TnVtYmVyKHgsIDAuMjUsIDQuMCwgMS4wKTtcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IE1vZGFsQ29uZmlnVmFsaWRhdG9yID0ge1xyXG4gIG1vZGVsKHg6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHggYXMgTW9kZWxUeXBlO1xyXG4gIH0sXHJcbiAgbWF4X3Rva2Vucyh4OiBudW1iZXIpIHtcclxuICAgIHJldHVybiBsaW1pdE51bWJlcih4LCAwLCA1MTIwMDAsIDEwMjQpO1xyXG4gIH0sXHJcbiAgcHJlc2VuY2VfcGVuYWx0eSh4OiBudW1iZXIpIHtcclxuICAgIHJldHVybiBsaW1pdE51bWJlcih4LCAtMiwgMiwgMCk7XHJcbiAgfSxcclxuICBmcmVxdWVuY3lfcGVuYWx0eSh4OiBudW1iZXIpIHtcclxuICAgIHJldHVybiBsaW1pdE51bWJlcih4LCAtMiwgMiwgMCk7XHJcbiAgfSxcclxuICB0ZW1wZXJhdHVyZSh4OiBudW1iZXIpIHtcclxuICAgIHJldHVybiBsaW1pdE51bWJlcih4LCAwLCAyLCAxKTtcclxuICB9LFxyXG4gIHRvcF9wKHg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIGxpbWl0TnVtYmVyKHgsIDAsIDEsIDEpO1xyXG4gIH0sXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgdXNlQXBwQ29uZmlnID0gY3JlYXRlUGVyc2lzdFN0b3JlKFxyXG4gIHsgLi4uREVGQVVMVF9DT05GSUcgfSxcclxuICAoc2V0LCBnZXQpID0+ICh7XHJcbiAgICByZXNldCgpIHtcclxuICAgICAgc2V0KCgpID0+ICh7IC4uLkRFRkFVTFRfQ09ORklHIH0pKTtcclxuICAgIH0sXHJcblxyXG4gICAgbWVyZ2VNb2RlbHMobmV3TW9kZWxzOiBMTE1Nb2RlbFtdKSB7XHJcbiAgICAgIGlmICghbmV3TW9kZWxzIHx8IG5ld01vZGVscy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IG9sZE1vZGVscyA9IGdldCgpLm1vZGVscztcclxuICAgICAgY29uc3QgbW9kZWxNYXA6IFJlY29yZDxzdHJpbmcsIExMTU1vZGVsPiA9IHt9O1xyXG5cclxuICAgICAgZm9yIChjb25zdCBtb2RlbCBvZiBvbGRNb2RlbHMpIHtcclxuICAgICAgICBtb2RlbC5hdmFpbGFibGUgPSBmYWxzZTtcclxuICAgICAgICBtb2RlbE1hcFtgJHttb2RlbC5uYW1lfUAke21vZGVsPy5wcm92aWRlcj8uaWR9YF0gPSBtb2RlbDtcclxuICAgICAgfVxyXG5cclxuICAgICAgZm9yIChjb25zdCBtb2RlbCBvZiBuZXdNb2RlbHMpIHtcclxuICAgICAgICBtb2RlbC5hdmFpbGFibGUgPSB0cnVlO1xyXG4gICAgICAgIG1vZGVsTWFwW2Ake21vZGVsLm5hbWV9QCR7bW9kZWw/LnByb3ZpZGVyPy5pZH1gXSA9IG1vZGVsO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzZXQoKCkgPT4gKHtcclxuICAgICAgICBtb2RlbHM6IE9iamVjdC52YWx1ZXMobW9kZWxNYXApLFxyXG4gICAgICB9KSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGFsbE1vZGVscygpIHt9LFxyXG4gIH0pLFxyXG4gIHtcclxuICAgIG5hbWU6IFN0b3JlS2V5LkNvbmZpZyxcclxuICAgIHZlcnNpb246IDQuMSxcclxuXHJcbiAgICBtZXJnZShwZXJzaXN0ZWRTdGF0ZSwgY3VycmVudFN0YXRlKSB7XHJcbiAgICAgIGNvbnN0IHN0YXRlID0gcGVyc2lzdGVkU3RhdGUgYXMgQ2hhdENvbmZpZyB8IHVuZGVmaW5lZDtcclxuICAgICAgaWYgKCFzdGF0ZSkgcmV0dXJuIHsgLi4uY3VycmVudFN0YXRlIH07XHJcbiAgICAgIGNvbnN0IG1vZGVscyA9IGN1cnJlbnRTdGF0ZS5tb2RlbHMuc2xpY2UoKTtcclxuICAgICAgc3RhdGUubW9kZWxzLmZvckVhY2goKHBNb2RlbCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGlkeCA9IG1vZGVscy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAodikgPT4gdi5uYW1lID09PSBwTW9kZWwubmFtZSAmJiB2LnByb3ZpZGVyID09PSBwTW9kZWwucHJvdmlkZXIsXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaWR4ICE9PSAtMSkgbW9kZWxzW2lkeF0gPSBwTW9kZWw7XHJcbiAgICAgICAgZWxzZSBtb2RlbHMucHVzaChwTW9kZWwpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHsgLi4uY3VycmVudFN0YXRlLCAuLi5zdGF0ZSwgbW9kZWxzOiBtb2RlbHMgfTtcclxuICAgIH0sXHJcblxyXG4gICAgbWlncmF0ZShwZXJzaXN0ZWRTdGF0ZSwgdmVyc2lvbikge1xyXG4gICAgICBjb25zdCBzdGF0ZSA9IHBlcnNpc3RlZFN0YXRlIGFzIENoYXRDb25maWc7XHJcblxyXG4gICAgICBpZiAodmVyc2lvbiA8IDMuNCkge1xyXG4gICAgICAgIHN0YXRlLm1vZGVsQ29uZmlnLnNlbmRNZW1vcnkgPSB0cnVlO1xyXG4gICAgICAgIHN0YXRlLm1vZGVsQ29uZmlnLmhpc3RvcnlNZXNzYWdlQ291bnQgPSA0O1xyXG4gICAgICAgIHN0YXRlLm1vZGVsQ29uZmlnLmNvbXByZXNzTWVzc2FnZUxlbmd0aFRocmVzaG9sZCA9IDEwMDA7XHJcbiAgICAgICAgc3RhdGUubW9kZWxDb25maWcuZnJlcXVlbmN5X3BlbmFsdHkgPSAwO1xyXG4gICAgICAgIHN0YXRlLm1vZGVsQ29uZmlnLnRvcF9wID0gMTtcclxuICAgICAgICBzdGF0ZS5tb2RlbENvbmZpZy50ZW1wbGF0ZSA9IERFRkFVTFRfSU5QVVRfVEVNUExBVEU7XHJcbiAgICAgICAgc3RhdGUuZG9udFNob3dNYXNrU3BsYXNoU2NyZWVuID0gdHJ1ZTtcclxuICAgICAgICBzdGF0ZS5oaWRlQnVpbHRpbk1hc2tzID0gZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh2ZXJzaW9uIDwgMy41KSB7XHJcbiAgICAgICAgc3RhdGUuY3VzdG9tTW9kZWxzID0gXCJjbGF1ZGUsY2xhdWRlLTEwMGtcIjtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHZlcnNpb24gPCAzLjYpIHtcclxuICAgICAgICBzdGF0ZS5tb2RlbENvbmZpZy5lbmFibGVJbmplY3RTeXN0ZW1Qcm9tcHRzID0gdHJ1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHZlcnNpb24gPCAzLjcpIHtcclxuICAgICAgICBzdGF0ZS5lbmFibGVBdXRvR2VuZXJhdGVUaXRsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh2ZXJzaW9uIDwgMy44KSB7XHJcbiAgICAgICAgc3RhdGUubGFzdFVwZGF0ZSA9IERhdGUubm93KCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh2ZXJzaW9uIDwgMy45KSB7XHJcbiAgICAgICAgc3RhdGUubW9kZWxDb25maWcudGVtcGxhdGUgPVxyXG4gICAgICAgICAgc3RhdGUubW9kZWxDb25maWcudGVtcGxhdGUgIT09IERFRkFVTFRfSU5QVVRfVEVNUExBVEVcclxuICAgICAgICAgICAgPyBzdGF0ZS5tb2RlbENvbmZpZy50ZW1wbGF0ZVxyXG4gICAgICAgICAgICA6IGNvbmZpZz8udGVtcGxhdGUgPz8gREVGQVVMVF9JTlBVVF9URU1QTEFURTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHZlcnNpb24gPCA0LjEpIHtcclxuICAgICAgICBzdGF0ZS5tb2RlbENvbmZpZy5jb21wcmVzc01vZGVsID1cclxuICAgICAgICAgIERFRkFVTFRfQ09ORklHLm1vZGVsQ29uZmlnLmNvbXByZXNzTW9kZWw7XHJcbiAgICAgICAgc3RhdGUubW9kZWxDb25maWcuY29tcHJlc3NQcm92aWRlck5hbWUgPVxyXG4gICAgICAgICAgREVGQVVMVF9DT05GSUcubW9kZWxDb25maWcuY29tcHJlc3NQcm92aWRlck5hbWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBzdGF0ZSBhcyBhbnk7XHJcbiAgICB9LFxyXG4gIH0sXHJcbik7XHJcbiJdLCJuYW1lcyI6WyJnZXRDbGllbnRDb25maWciLCJERUZBVUxUX0lOUFVUX1RFTVBMQVRFIiwiREVGQVVMVF9NT0RFTFMiLCJERUZBVUxUX1NJREVCQVJfV0lEVEgiLCJERUZBVUxUX1RUU19FTkdJTkUiLCJERUZBVUxUX1RUU19NT0RFTCIsIkRFRkFVTFRfVFRTX1ZPSUNFIiwiU3RvcmVLZXkiLCJjcmVhdGVQZXJzaXN0U3RvcmUiLCJTdWJtaXRLZXkiLCJUaGVtZSIsImNvbmZpZyIsIkRFRkFVTFRfQ09ORklHIiwibGFzdFVwZGF0ZSIsIkRhdGUiLCJub3ciLCJzdWJtaXRLZXkiLCJhdmF0YXIiLCJmb250U2l6ZSIsImZvbnRGYW1pbHkiLCJ0aGVtZSIsInRpZ2h0Qm9yZGVyIiwiaXNBcHAiLCJzZW5kUHJldmlld0J1YmJsZSIsImVuYWJsZUF1dG9HZW5lcmF0ZVRpdGxlIiwic2lkZWJhcldpZHRoIiwiZW5hYmxlQXJ0aWZhY3RzIiwiZW5hYmxlQ29kZUZvbGQiLCJkaXNhYmxlUHJvbXB0SGludCIsImRvbnRTaG93TWFza1NwbGFzaFNjcmVlbiIsImhpZGVCdWlsdGluTWFza3MiLCJjdXN0b21Nb2RlbHMiLCJtb2RlbHMiLCJtb2RlbENvbmZpZyIsIm1vZGVsIiwicHJvdmlkZXJOYW1lIiwidGVtcGVyYXR1cmUiLCJ0b3BfcCIsIm1heF90b2tlbnMiLCJwcmVzZW5jZV9wZW5hbHR5IiwiZnJlcXVlbmN5X3BlbmFsdHkiLCJzZW5kTWVtb3J5IiwiaGlzdG9yeU1lc3NhZ2VDb3VudCIsImNvbXByZXNzTWVzc2FnZUxlbmd0aFRocmVzaG9sZCIsImNvbXByZXNzTW9kZWwiLCJjb21wcmVzc1Byb3ZpZGVyTmFtZSIsImVuYWJsZUluamVjdFN5c3RlbVByb21wdHMiLCJ0ZW1wbGF0ZSIsInNpemUiLCJxdWFsaXR5Iiwic3R5bGUiLCJ0dHNDb25maWciLCJlbmFibGUiLCJhdXRvcGxheSIsImVuZ2luZSIsInZvaWNlIiwic3BlZWQiLCJyZWFsdGltZUNvbmZpZyIsInByb3ZpZGVyIiwiYXBpS2V5IiwiYXp1cmUiLCJlbmRwb2ludCIsImRlcGxveW1lbnQiLCJsaW1pdE51bWJlciIsIngiLCJtaW4iLCJtYXgiLCJkZWZhdWx0VmFsdWUiLCJpc05hTiIsIk1hdGgiLCJUVFNDb25maWdWYWxpZGF0b3IiLCJNb2RhbENvbmZpZ1ZhbGlkYXRvciIsInVzZUFwcENvbmZpZyIsInNldCIsImdldCIsInJlc2V0IiwibWVyZ2VNb2RlbHMiLCJuZXdNb2RlbHMiLCJsZW5ndGgiLCJvbGRNb2RlbHMiLCJtb2RlbE1hcCIsImF2YWlsYWJsZSIsIm5hbWUiLCJpZCIsIk9iamVjdCIsInZhbHVlcyIsImFsbE1vZGVscyIsIkNvbmZpZyIsInZlcnNpb24iLCJtZXJnZSIsInBlcnNpc3RlZFN0YXRlIiwiY3VycmVudFN0YXRlIiwic3RhdGUiLCJzbGljZSIsImZvckVhY2giLCJwTW9kZWwiLCJpZHgiLCJmaW5kSW5kZXgiLCJ2IiwicHVzaCIsIm1pZ3JhdGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/store/config.ts\n")); /***/ }) });