You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NextWeb/.next/static/webpack/_app-pages-browser_app_comp...

22 lines
295 KiB
JavaScript

"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-pages-browser_app_components_settings_tsx",{
/***/ "(app-pages-browser)/./app/components/settings.tsx":
/*!*************************************!*\
!*** ./app/components/settings.tsx ***!
\*************************************/
/***/ (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 */ Settings: function() { return /* binding */ Settings; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _settings_module_scss__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./settings.module.scss */ \"(app-pages-browser)/./app/components/settings.module.scss\");\n/* harmony import */ var _settings_module_scss__WEBPACK_IMPORTED_MODULE_35___default = /*#__PURE__*/__webpack_require__.n(_settings_module_scss__WEBPACK_IMPORTED_MODULE_35__);\n/* harmony import */ var _icons_reload_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/reload.svg */ \"(app-pages-browser)/./app/icons/reload.svg\");\n/* harmony import */ var _icons_add_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/add.svg */ \"(app-pages-browser)/./app/icons/add.svg\");\n/* harmony import */ var _icons_close_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/close.svg */ \"(app-pages-browser)/./app/icons/close.svg\");\n/* harmony import */ var _icons_copy_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../icons/copy.svg */ \"(app-pages-browser)/./app/icons/copy.svg\");\n/* harmony import */ var _icons_clear_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../icons/clear.svg */ \"(app-pages-browser)/./app/icons/clear.svg\");\n/* harmony import */ var _icons_three_dots_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../icons/three-dots.svg */ \"(app-pages-browser)/./app/icons/three-dots.svg\");\n/* harmony import */ var _icons_edit_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../icons/edit.svg */ \"(app-pages-browser)/./app/icons/edit.svg\");\n/* harmony import */ var _icons_fire_svg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../icons/fire.svg */ \"(app-pages-browser)/./app/icons/fire.svg\");\n/* harmony import */ var _icons_eye_svg__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../icons/eye.svg */ \"(app-pages-browser)/./app/icons/eye.svg\");\n/* harmony import */ var _icons_download_svg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../icons/download.svg */ \"(app-pages-browser)/./app/icons/download.svg\");\n/* harmony import */ var _icons_upload_svg__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../icons/upload.svg */ \"(app-pages-browser)/./app/icons/upload.svg\");\n/* harmony import */ var _icons_confirm_svg__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../icons/confirm.svg */ \"(app-pages-browser)/./app/icons/confirm.svg\");\n/* harmony import */ var _icons_connection_svg__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../icons/connection.svg */ \"(app-pages-browser)/./app/icons/connection.svg\");\n/* harmony import */ var _icons_cloud_success_svg__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../icons/cloud-success.svg */ \"(app-pages-browser)/./app/icons/cloud-success.svg\");\n/* harmony import */ var _icons_cloud_fail_svg__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../icons/cloud-fail.svg */ \"(app-pages-browser)/./app/icons/cloud-fail.svg\");\n/* harmony import */ var _utils_auth_settings_events__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/auth-settings-events */ \"(app-pages-browser)/./app/utils/auth-settings-events.ts\");\n/* harmony import */ var _ui_lib__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./ui-lib */ \"(app-pages-browser)/./app/components/ui-lib.tsx\");\n/* harmony import */ var _model_config__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./model-config */ \"(app-pages-browser)/./app/components/model-config.tsx\");\n/* harmony import */ var _button__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./button */ \"(app-pages-browser)/./app/components/button.tsx\");\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../store */ \"(app-pages-browser)/./app/store/index.ts\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../locales */ \"(app-pages-browser)/./app/locales/index.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../utils */ \"(app-pages-browser)/./app/utils.ts\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! next/link */ \"(app-pages-browser)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../constant */ \"(app-pages-browser)/./app/constant.ts\");\n/* harmony import */ var _store_prompt__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../store/prompt */ \"(app-pages-browser)/./app/store/prompt.ts\");\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./error */ \"(app-pages-browser)/./app/components/error.tsx\");\n/* harmony import */ var _input_range__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./input-range */ \"(app-pages-browser)/./app/components/input-range.tsx\");\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! react-router-dom */ \"(app-pages-browser)/./node_modules/react-router/dist/index.js\");\n/* harmony import */ var _emoji__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./emoji */ \"(app-pages-browser)/./app/components/emoji.tsx\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../config/client */ \"(app-pages-browser)/./app/config/client.ts\");\n/* harmony import */ var _store_sync__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../store/sync */ \"(app-pages-browser)/./app/store/sync.ts\");\n/* harmony import */ var nanoid__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! nanoid */ \"(app-pages-browser)/./node_modules/nanoid/index.browser.js\");\n/* harmony import */ var _store_mask__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../store/mask */ \"(app-pages-browser)/./app/store/mask.ts\");\n/* harmony import */ var _utils_cloud__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ../utils/cloud */ \"(app-pages-browser)/./app/utils/cloud/index.ts\");\n/* harmony import */ var _tts_config__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./tts-config */ \"(app-pages-browser)/./app/components/tts-config.tsx\");\n\nvar _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$(), _s4 = $RefreshSig$(), _s5 = $RefreshSig$(), _s6 = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction EditPromptModal(props) {\n _s();\n const promptStore = (0,_store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore)();\n const prompt = promptStore.get(props.id);\n return prompt ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"modal-mask\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Modal, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Prompt.EditModal.Title,\n onClose: props.onClose,\n actions: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n onClick: props.onClose,\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Confirm,\n bordered: true\n }, \"\", false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 102,\n columnNumber: 11\n }, void 0)\n ],\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_35___default()[\"edit-prompt-modal\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: prompt.title,\n readOnly: !prompt.isUser,\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_35___default()[\"edit-prompt-title\"]),\n onInput: (e)=>promptStore.updatePrompt(props.id, (prompt)=>prompt.title = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 111,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Input, {\n value: prompt.content,\n readOnly: !prompt.isUser,\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_35___default()[\"edit-prompt-content\"]),\n rows: 10,\n onInput: (e)=>promptStore.updatePrompt(props.id, (prompt)=>prompt.content = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 123,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 110,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 98,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 97,\n columnNumber: 5\n }, this) : null;\n}\n_s(EditPromptModal, \"EzYblIzMAFxPJK+yzvwKHzO38X8=\", false, function() {\n return [\n _store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore\n ];\n});\n_c = EditPromptModal;\nfunction UserPromptModal(props) {\n _s1();\n const promptStore = (0,_store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore)();\n const userPrompts = promptStore.getUserPrompts();\n const builtinPrompts = _store_prompt__WEBPACK_IMPORTED_MODULE_26__.SearchService.builtinPrompts;\n const allPrompts = userPrompts.concat(builtinPrompts);\n const [searchInput, setSearchInput] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [searchPrompts, setSearchPrompts] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const prompts = searchInput.length > 0 ? searchPrompts : allPrompts;\n const [editingPromptId, setEditingPromptId] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)();\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (searchInput.length > 0) {\n const searchResult = _store_prompt__WEBPACK_IMPORTED_MODULE_26__.SearchService.search(searchInput);\n setSearchPrompts(searchResult);\n } else {\n setSearchPrompts([]);\n }\n }, [\n searchInput\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"modal-mask\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Modal, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Prompt.Modal.Title,\n onClose: ()=>{\n var _props_onClose;\n return (_props_onClose = props.onClose) === null || _props_onClose === void 0 ? void 0 : _props_onClose.call(props);\n },\n actions: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n onClick: ()=>{\n const promptId = promptStore.add({\n id: (0,nanoid__WEBPACK_IMPORTED_MODULE_36__.nanoid)(),\n createdAt: Date.now(),\n title: \"Empty Prompt\",\n content: \"Empty Prompt Content\"\n });\n setEditingPromptId(promptId);\n },\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_add_svg__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 178,\n columnNumber: 19\n }, void 0),\n bordered: true,\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Prompt.Modal.Add\n }, \"add\", false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 167,\n columnNumber: 11\n }, void 0)\n ],\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_35___default()[\"user-prompt-modal\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_35___default()[\"user-prompt-search\"]),\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Prompt.Modal.Search,\n value: searchInput,\n onInput: (e)=>setSearchInput(e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 185,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_35___default()[\"user-prompt-list\"]),\n children: prompts.map((v, _)=>/*#__PURE__*/ {\n var _v_id;\n return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_35___default()[\"user-prompt-item\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_35___default()[\"user-prompt-header\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_35___default()[\"user-prompt-title\"]),\n children: v.title\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 197,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_35___default()[\"user-prompt-content\"]) + \" one-line\",\n children: v.content\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 198,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 196,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_35___default()[\"user-prompt-buttons\"]),\n children: [\n v.isUser && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_clear_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 206,\n columnNumber: 29\n }, void 0),\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_35___default()[\"user-prompt-button\"]),\n onClick: ()=>promptStore.remove(v.id)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 205,\n columnNumber: 21\n }, this),\n v.isUser ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_edit_svg__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 213,\n columnNumber: 29\n }, void 0),\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_35___default()[\"user-prompt-button\"]),\n onClick: ()=>setEditingPromptId(v.id)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 212,\n columnNumber: 21\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_eye_svg__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 219,\n columnNumber: 29\n }, void 0),\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_35___default()[\"user-prompt-button\"]),\n onClick: ()=>setEditingPromptId(v.id)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 218,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_copy_svg__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 225,\n columnNumber: 27\n }, void 0),\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_35___default()[\"user-prompt-button\"]),\n onClick: ()=>(0,_utils__WEBPACK_IMPORTED_MODULE_23__.copyToClipboard)(v.content)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 224,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 203,\n columnNumber: 17\n }, this)\n ]\n }, (_v_id = v.id) !== null && _v_id !== void 0 ? _v_id : v.title, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 195,\n columnNumber: 15\n }, this);\n })\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 193,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 184,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 163,\n columnNumber: 7\n }, this),\n editingPromptId !== undefined && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(EditPromptModal, {\n id: editingPromptId,\n onClose: ()=>setEditingPromptId(undefined)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 237,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 162,\n columnNumber: 5\n }, this);\n}\n_s1(UserPromptModal, \"j8e7IC+Qorb6vYwwV+saiLvwdt4=\", false, function() {\n return [\n _store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore\n ];\n});\n_c1 = UserPromptModal;\nfunction DangerItems() {\n _s2();\n const chatStore = (0,_store__WEBPACK_IMPORTED_MODULE_21__.useChatStore)();\n const appConfig = (0,_store__WEBPACK_IMPORTED_MODULE_21__.useAppConfig)();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Reset.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Reset.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Reset.Title,\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Reset.Action,\n onClick: async ()=>{\n if (await (0,_ui_lib__WEBPACK_IMPORTED_MODULE_18__.showConfirm)(_locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Reset.Confirm)) {\n appConfig.reset();\n }\n },\n type: \"danger\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 256,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 252,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Clear.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Clear.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Clear.Title,\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Clear.Action,\n onClick: async ()=>{\n if (await (0,_ui_lib__WEBPACK_IMPORTED_MODULE_18__.showConfirm)(_locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Clear.Confirm)) {\n chatStore.clearAllData();\n }\n },\n type: \"danger\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 271,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 267,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 251,\n columnNumber: 5\n }, this);\n}\n_s2(DangerItems, \"bujEX65sRm+zZElj4DteQrQ/PHM=\", false, function() {\n return [\n _store__WEBPACK_IMPORTED_MODULE_21__.useChatStore,\n _store__WEBPACK_IMPORTED_MODULE_21__.useAppConfig\n ];\n});\n_c2 = DangerItems;\nfunction CheckButton() {\n _s3();\n const syncStore = (0,_store_sync__WEBPACK_IMPORTED_MODULE_31__.useSyncStore)();\n const couldCheck = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n return syncStore.cloudSync();\n }, [\n syncStore\n ]);\n const [checkState, setCheckState] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"none\");\n async function check() {\n setCheckState(\"checking\");\n const valid = await syncStore.check();\n setCheckState(valid ? \"success\" : \"failed\");\n }\n if (!couldCheck) return null;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.Modal.Check,\n bordered: true,\n onClick: check,\n icon: checkState === \"none\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_connection_svg__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 312,\n columnNumber: 11\n }, void 0) : checkState === \"checking\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_three_dots_svg__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 314,\n columnNumber: 11\n }, void 0) : checkState === \"success\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_cloud_success_svg__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 316,\n columnNumber: 11\n }, void 0) : checkState === \"failed\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_cloud_fail_svg__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 318,\n columnNumber: 11\n }, void 0) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_connection_svg__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 320,\n columnNumber: 11\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 306,\n columnNumber: 5\n }, this);\n}\n_s3(CheckButton, \"/6RI3yEungwoEAZn8dbo3xLpAIg=\", false, function() {\n return [\n _store_sync__WEBPACK_IMPORTED_MODULE_31__.useSyncStore\n ];\n});\n_c3 = CheckButton;\nfunction SyncConfigModal(props) {\n _s4();\n const syncStore = (0,_store_sync__WEBPACK_IMPORTED_MODULE_31__.useSyncStore)();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"modal-mask\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Modal, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.Modal.Title,\n onClose: ()=>{\n var _props_onClose;\n return (_props_onClose = props.onClose) === null || _props_onClose === void 0 ? void 0 : _props_onClose.call(props);\n },\n actions: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(CheckButton, {}, \"check\", false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 336,\n columnNumber: 11\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n onClick: props.onClose,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_confirm_svg__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 340,\n columnNumber: 19\n }, void 0),\n bordered: true,\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Confirm\n }, \"confirm\", false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 337,\n columnNumber: 11\n }, void 0)\n ],\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.SyncType.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.SyncType.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n value: syncStore.provider,\n onChange: (e)=>{\n syncStore.update((config)=>config.provider = e.target.value);\n },\n children: Object.entries(_utils_cloud__WEBPACK_IMPORTED_MODULE_33__.ProviderType).map((param)=>{\n let [k, v] = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: v,\n children: k\n }, k, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 361,\n columnNumber: 17\n }, this);\n })\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 351,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 347,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.Proxy.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.Proxy.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n checked: syncStore.useProxy,\n onChange: (e)=>{\n syncStore.update((config)=>config.useProxy = e.currentTarget.checked);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 372,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 368,\n columnNumber: 11\n }, this),\n syncStore.useProxy ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.ProxyUrl.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.ProxyUrl.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: syncStore.proxyUrl,\n onChange: (e)=>{\n syncStore.update((config)=>config.proxyUrl = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 387,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 383,\n columnNumber: 13\n }, this) : null\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 346,\n columnNumber: 9\n }, this),\n syncStore.provider === _utils_cloud__WEBPACK_IMPORTED_MODULE_33__.ProviderType.WebDAV && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.WebDav.Endpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: syncStore.webdav.endpoint,\n onChange: (e)=>{\n syncStore.update((config)=>config.webdav.endpoint = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 404,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 403,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.WebDav.UserName,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: syncStore.webdav.username,\n onChange: (e)=>{\n syncStore.update((config)=>config.webdav.username = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 417,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 416,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.WebDav.Password,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n value: syncStore.webdav.password,\n onChange: (e)=>{\n syncStore.update((config)=>config.webdav.password = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 429,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 428,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 402,\n columnNumber: 13\n }, this)\n }, void 0, false),\n syncStore.provider === _utils_cloud__WEBPACK_IMPORTED_MODULE_33__.ProviderType.UpStash && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.UpStash.Endpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: syncStore.upstash.endpoint,\n onChange: (e)=>{\n syncStore.update((config)=>config.upstash.endpoint = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 446,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 445,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.UpStash.UserName,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: syncStore.upstash.username,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.STORAGE_KEY,\n onChange: (e)=>{\n syncStore.update((config)=>config.upstash.username = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 459,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 458,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.UpStash.Password,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n value: syncStore.upstash.apiKey,\n onChange: (e)=>{\n syncStore.update((config)=>config.upstash.apiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 472,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 471,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 444,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 332,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 331,\n columnNumber: 5\n }, this);\n}\n_s4(SyncConfigModal, \"7LGHNOh5zyQVSbzbR8YwVjAXtoY=\", false, function() {\n return [\n _store_sync__WEBPACK_IMPORTED_MODULE_31__.useSyncStore\n ];\n});\n_c4 = SyncConfigModal;\nfunction SyncItems() {\n _s5();\n const syncStore = (0,_store_sync__WEBPACK_IMPORTED_MODULE_31__.useSyncStore)();\n const chatStore = (0,_store__WEBPACK_IMPORTED_MODULE_21__.useChatStore)();\n const promptStore = (0,_store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore)();\n const maskStore = (0,_store_mask__WEBPACK_IMPORTED_MODULE_32__.useMaskStore)();\n const couldSync = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n return syncStore.cloudSync();\n }, [\n syncStore\n ]);\n const [showSyncConfigModal, setShowSyncConfigModal] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const stateOverview = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n const sessions = chatStore.sessions;\n const messageCount = sessions.reduce((p, c)=>p + c.messages.length, 0);\n return {\n chat: sessions.length,\n message: messageCount,\n prompt: Object.keys(promptStore.prompts).length,\n mask: Object.keys(maskStore.masks).length\n };\n }, [\n chatStore.sessions,\n maskStore.masks,\n promptStore.prompts\n ]);\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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.LocalState,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Overview(stateOverview),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.LocalState + _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Export,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_upload_svg__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 521,\n columnNumber: 21\n }, void 0),\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Export,\n onClick: ()=>{\n syncStore.export();\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 519,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.LocalState + _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Import,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_download_svg__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 529,\n columnNumber: 21\n }, void 0),\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Import,\n onClick: ()=>{\n syncStore.import();\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 527,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 518,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 514,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 513,\n columnNumber: 7\n }, this),\n showSyncConfigModal && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SyncConfigModal, {\n onClose: ()=>setShowSyncConfigModal(false)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 540,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true);\n}\n_s5(SyncItems, \"nX5YTDzhgMuya10UCPA20+lQ5Uw=\", false, function() {\n return [\n _store_sync__WEBPACK_IMPORTED_MODULE_31__.useSyncStore,\n _store__WEBPACK_IMPORTED_MODULE_21__.useChatStore,\n _store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore,\n _store_mask__WEBPACK_IMPORTED_MODULE_32__.useMaskStore\n ];\n});\n_c5 = SyncItems;\nfunction Settings() {\n var _getClientConfig;\n _s6();\n const navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_37__.useNavigate)();\n const [showEmojiPicker, setShowEmojiPicker] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const config = (0,_store__WEBPACK_IMPORTED_MODULE_21__.useAppConfig)();\n const updateConfig = config.update;\n const updateStore = (0,_store__WEBPACK_IMPORTED_MODULE_21__.useUpdateStore)();\n const [checkingUpdate, setCheckingUpdate] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const currentVersion = updateStore.formatVersion(updateStore.version);\n const remoteId = updateStore.formatVersion(updateStore.remoteVersion);\n const hasNewVersion = (0,_utils__WEBPACK_IMPORTED_MODULE_23__.semverCompare)(currentVersion, remoteId) === -1;\n const updateUrl = ((_getClientConfig = (0,_config_client__WEBPACK_IMPORTED_MODULE_30__.getClientConfig)()) === null || _getClientConfig === void 0 ? void 0 : _getClientConfig.isApp) ? _constant__WEBPACK_IMPORTED_MODULE_25__.RELEASE_URL : _constant__WEBPACK_IMPORTED_MODULE_25__.UPDATE_URL;\n function checkUpdate() {\n let force = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;\n setCheckingUpdate(true);\n updateStore.getLatestVersion(force).then(()=>{\n setCheckingUpdate(false);\n });\n console.log(\"[Update] local version \", updateStore.version);\n console.log(\"[Update] remote version \", updateStore.remoteVersion);\n }\n const accessStore = (0,_store__WEBPACK_IMPORTED_MODULE_21__.useAccessStore)();\n const shouldHideBalanceQuery = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n const isOpenAiUrl = accessStore.openaiUrl.includes(_constant__WEBPACK_IMPORTED_MODULE_25__.OPENAI_BASE_URL);\n return accessStore.hideBalanceQuery || isOpenAiUrl || accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Azure;\n }, [\n accessStore.hideBalanceQuery,\n accessStore.openaiUrl,\n accessStore.provider\n ]);\n const usage = {\n used: updateStore.used,\n subscription: updateStore.subscription\n };\n const [loadingUsage, setLoadingUsage] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n function checkUsage() {\n let force = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;\n if (shouldHideBalanceQuery) {\n return;\n }\n setLoadingUsage(true);\n updateStore.updateUsage(force).finally(()=>{\n setLoadingUsage(false);\n });\n }\n const enabledAccessControl = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>accessStore.enabledAccessControl(), // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n const promptStore = (0,_store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore)();\n const builtinCount = _store_prompt__WEBPACK_IMPORTED_MODULE_26__.SearchService.count.builtin;\n var _promptStore_getUserPrompts_length;\n const customCount = (_promptStore_getUserPrompts_length = promptStore.getUserPrompts().length) !== null && _promptStore_getUserPrompts_length !== void 0 ? _promptStore_getUserPrompts_length : 0;\n const [shouldShowPromptModal, setShowPromptModal] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const showUsage = accessStore.isAuthorized();\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // checks per minutes\n checkUpdate();\n showUsage && checkUsage();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const keydownEvent = (e)=>{\n if (e.key === \"Escape\") {\n navigate(_constant__WEBPACK_IMPORTED_MODULE_25__.Path.Home);\n }\n };\n if (clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.isApp) {\n // Force to set custom endpoint to true if it's app\n accessStore.update((state)=>{\n state.useCustomConfig = true;\n });\n }\n document.addEventListener(\"keydown\", keydownEvent);\n return ()=>{\n document.removeEventListener(\"keydown\", keydownEvent);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const clientConfig = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>(0,_config_client__WEBPACK_IMPORTED_MODULE_30__.getClientConfig)(), []);\n const showAccessCode = enabledAccessControl && !(clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.isApp);\n const accessCodeComponent = showAccessCode && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.AccessCode.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.AccessCode.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n value: accessStore.accessCode,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.AccessCode.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.accessCode = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 646,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 642,\n columnNumber: 5\n }, this);\n const saasStartComponent = /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_35___default()[\"subtitle-button\"]),\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SaasStart.Title + \"\".concat(_locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SaasStart.Label),\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SaasStart.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SaasStart.Title + _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SaasStart.ChatNow,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_fire_svg__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 673,\n columnNumber: 15\n }, void 0),\n type: \"primary\",\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SaasStart.ChatNow,\n onClick: ()=>{\n (0,_utils_auth_settings_events__WEBPACK_IMPORTED_MODULE_17__.trackSettingsPageGuideToCPaymentClick)();\n window.location.href = _constant__WEBPACK_IMPORTED_MODULE_25__.SAAS_CHAT_URL;\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 668,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 660,\n columnNumber: 5\n }, this);\n const useCustomConfigComponent = !(clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.isApp) && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.CustomEndpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.CustomEndpoint.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.CustomEndpoint.Title,\n type: \"checkbox\",\n checked: accessStore.useCustomConfig,\n onChange: (e)=>accessStore.update((access)=>access.useCustomConfig = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 690,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 686,\n columnNumber: 7\n }, this);\n const openAIConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.OpenAI && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.OpenAI.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.OpenAI.Endpoint.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.OpenAI.Endpoint.Title,\n type: \"text\",\n value: accessStore.openaiUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.OPENAI_BASE_URL,\n onChange: (e)=>accessStore.update((access)=>access.openaiUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 710,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 706,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.OpenAI.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.OpenAI.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.ShowPassword,\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.OpenAI.ApiKey.Title,\n value: accessStore.openaiApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"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\\\\settings.tsx\",\n lineNumber: 726,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 722,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const azureConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Azure && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Azure.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.Endpoint.Title,\n type: \"text\",\n value: accessStore.azureUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Azure.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.azureUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 751,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 745,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiKey.Title,\n value: accessStore.azureApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.azureApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 767,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 763,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiVerion.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiVerion.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiVerion.Title,\n type: \"text\",\n value: accessStore.azureApiVersion,\n placeholder: \"2023-08-01-preview\",\n onChange: (e)=>accessStore.update((access)=>access.azureApiVersion = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 783,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 779,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const googleConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Google && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Google.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.Endpoint.Title,\n type: \"text\",\n value: accessStore.googleUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Google.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.googleUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 808,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 801,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.ApiKey.Title,\n value: accessStore.googleApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"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\\\\settings.tsx\",\n lineNumber: 824,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 820,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.ApiVersion.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.ApiVersion.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.ApiVersion.Title,\n type: \"text\",\n value: accessStore.googleApiVersion,\n placeholder: \"2023-08-01-preview\",\n onChange: (e)=>accessStore.update((access)=>access.googleApiVersion = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 840,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 836,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.GoogleSafetySettings.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.GoogleSafetySettings.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Select, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.GoogleSafetySettings.Title,\n value: accessStore.googleSafetySettings,\n onChange: (e)=>{\n accessStore.update((access)=>access.googleSafetySettings = e.target.value);\n },\n children: Object.entries(_constant__WEBPACK_IMPORTED_MODULE_25__.GoogleSafetySettingsThreshold).map((param)=>{\n let [k, v] = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: v,\n children: k\n }, k, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 868,\n columnNumber: 13\n }, this);\n })\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 856,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 852,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const anthropicConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Anthropic && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Anthropic.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.Endpoint.Title,\n type: \"text\",\n value: accessStore.anthropicUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Anthropic.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.anthropicUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 887,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 880,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiKey.Title,\n value: accessStore.anthropicApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.anthropicApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 903,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 899,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiVerion.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiVerion.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiVerion.Title,\n type: \"text\",\n value: accessStore.anthropicApiVersion,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Anthropic.Vision,\n onChange: (e)=>accessStore.update((access)=>access.anthropicApiVersion = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 919,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 915,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const baiduConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Baidu && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.Endpoint.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.Endpoint.Title,\n type: \"text\",\n value: accessStore.baiduUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Baidu.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.baiduUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 941,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 937,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.ApiKey.Title,\n value: accessStore.baiduApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.baiduApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 957,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 953,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.SecretKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.SecretKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.SecretKey.Title,\n value: accessStore.baiduSecretKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.SecretKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.baiduSecretKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 973,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 969,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const tencentConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Tencent && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.Endpoint.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.Endpoint.Title,\n type: \"text\",\n value: accessStore.tencentUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Tencent.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.tencentUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 995,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 991,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.ApiKey.Title,\n value: accessStore.tencentSecretId,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.tencentSecretId = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1011,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1007,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.SecretKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.SecretKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.SecretKey.Title,\n value: accessStore.tencentSecretKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.SecretKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.tencentSecretKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1027,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1023,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const byteDanceConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.ByteDance && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.ByteDance.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.Endpoint.Title,\n type: \"text\",\n value: accessStore.bytedanceUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.ByteDance.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.bytedanceUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1052,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1045,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.ApiKey.Title,\n value: accessStore.bytedanceApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.bytedanceApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1068,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1064,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const alibabaConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Alibaba && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Alibaba.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.Endpoint.Title,\n type: \"text\",\n value: accessStore.alibabaUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Alibaba.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.alibabaUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1093,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1086,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.ApiKey.Title,\n value: accessStore.alibabaApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.alibabaApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1109,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1105,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const moonshotConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Moonshot && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Moonshot.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.Endpoint.Title,\n type: \"text\",\n value: accessStore.moonshotUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Moonshot.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.moonshotUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1134,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1127,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.ApiKey.Title,\n value: accessStore.moonshotApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.moonshotApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1150,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1146,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const deepseekConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.DeepSeek && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.DeepSeek.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.Endpoint.Title,\n type: \"text\",\n value: accessStore.deepseekUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.DeepSeek.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.deepseekUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1175,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1168,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.ApiKey.Title,\n value: accessStore.deepseekApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.deepseekApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1191,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1187,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const XAIConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.XAI && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.XAI.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.Endpoint.Title,\n type: \"text\",\n value: accessStore.xaiUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.XAI.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.xaiUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1214,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1208,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.ApiKey.Title,\n value: accessStore.xaiApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.xaiApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1230,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1226,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const chatglmConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.ChatGLM && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.ChatGLM.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.Endpoint.Title,\n type: \"text\",\n value: accessStore.chatglmUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.ChatGLM.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.chatglmUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1255,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1248,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.ApiKey.Title,\n value: accessStore.chatglmApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.chatglmApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1271,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1267,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const siliconflowConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.SiliconFlow && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.SiliconFlow.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.Endpoint.Title,\n type: \"text\",\n value: accessStore.siliconflowUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.SiliconFlow.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.siliconflowUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1295,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1288,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.ApiKey.Title,\n value: accessStore.siliconflowApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.siliconflowApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1311,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1307,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const stabilityConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Stability && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Stability.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.Endpoint.Title,\n type: \"text\",\n value: accessStore.stabilityUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Stability.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.stabilityUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1336,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1329,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.ApiKey.Title,\n value: accessStore.stabilityApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.stabilityApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1352,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1348,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const lflytekConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Iflytek && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Iflytek.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.Endpoint.Title,\n type: \"text\",\n value: accessStore.iflytekUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Iflytek.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.iflytekUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1376,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1369,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiKey.Title,\n value: accessStore.iflytekApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.iflytekApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1392,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1388,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiSecret.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiSecret.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiSecret.Title,\n value: accessStore.iflytekApiSecret,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiSecret.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.iflytekApiSecret = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1409,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1405,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n var _config_fontSize;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_error__WEBPACK_IMPORTED_MODULE_27__.ErrorBoundary, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-header\",\n \"data-tauri-drag-region\": true,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-header-title\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-header-main-title\",\n children: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Title\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1428,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-header-sub-title\",\n children: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.SubTitle\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1431,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1427,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-actions\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-action-button\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1436,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-action-button\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1437,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-action-button\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Close,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_close_svg__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1441,\n columnNumber: 21\n }, void 0),\n onClick: ()=>navigate(_constant__WEBPACK_IMPORTED_MODULE_25__.Path.Home),\n bordered: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1439,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1438,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1435,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1426,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_35___default().settings),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Avatar,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Popover, {\n onClose: ()=>setShowEmojiPicker(false),\n content: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_emoji__WEBPACK_IMPORTED_MODULE_29__.AvatarPicker, {\n onEmojiClick: (avatar)=>{\n updateConfig((config)=>config.avatar = avatar);\n setShowEmojiPicker(false);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1454,\n columnNumber: 17\n }, void 0),\n open: showEmojiPicker,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Avatar,\n tabIndex: 0,\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_35___default().avatar),\n onClick: ()=>{\n setShowEmojiPicker(!showEmojiPicker);\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_emoji__WEBPACK_IMPORTED_MODULE_29__.Avatar, {\n avatar: config.avatar\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1471,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1463,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1451,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1450,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.Version(currentVersion !== null && currentVersion !== void 0 ? currentVersion : \"unknown\"),\n subTitle: checkingUpdate ? _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.IsChecking : hasNewVersion ? _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.FoundUpdate(remoteId !== null && remoteId !== void 0 ? remoteId : \"ERROR\") : _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.IsLatest,\n children: checkingUpdate ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_three_dots_svg__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1487,\n columnNumber: 15\n }, this) : hasNewVersion ? (clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.isApp) ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_reload_svg__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1491,\n columnNumber: 25\n }, void 0),\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.GoToUpdate,\n onClick: ()=>(0,_utils__WEBPACK_IMPORTED_MODULE_23__.clientUpdate)()\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1490,\n columnNumber: 17\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_24__[\"default\"], {\n href: updateUrl,\n target: \"_blank\",\n className: \"link\",\n children: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.GoToUpdate\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1496,\n columnNumber: 17\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_reload_svg__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1502,\n columnNumber: 23\n }, void 0),\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.CheckUpdate,\n onClick: ()=>checkUpdate(true)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1501,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1476,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.SendKey,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Select, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.SendKey,\n value: config.submitKey,\n onChange: (e)=>{\n updateConfig((config)=>config.submitKey = e.target.value);\n },\n children: Object.values(_store__WEBPACK_IMPORTED_MODULE_21__.SubmitKey).map((v)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: v,\n children: v\n }, v, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1521,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1510,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1509,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Theme,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Select, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Theme,\n value: config.theme,\n onChange: (e)=>{\n updateConfig((config)=>config.theme = e.target.value);\n },\n children: Object.values(_store__WEBPACK_IMPORTED_MODULE_21__.Theme).map((v)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: v,\n children: v\n }, v, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1539,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1529,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1528,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Lang.Name,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Select, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Lang.Name,\n value: (0,_locales__WEBPACK_IMPORTED_MODULE_22__.getLang)(),\n onChange: (e)=>{\n (0,_locales__WEBPACK_IMPORTED_MODULE_22__.changeLang)(e.target.value);\n },\n children: _locales__WEBPACK_IMPORTED_MODULE_22__.AllLangs.map((lang)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: lang,\n children: _locales__WEBPACK_IMPORTED_MODULE_22__.ALL_LANG_OPTIONS[lang]\n }, lang, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1555,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1547,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1546,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontSize.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontSize.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_input_range__WEBPACK_IMPORTED_MODULE_28__.InputRange, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontSize.Title,\n title: \"\".concat((_config_fontSize = config.fontSize) !== null && _config_fontSize !== void 0 ? _config_fontSize : 14, \"px\"),\n value: config.fontSize,\n min: \"12\",\n max: \"40\",\n step: \"1\",\n onChange: (e)=>updateConfig((config)=>config.fontSize = Number.parseInt(e.currentTarget.value))\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1566,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1562,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontFamily.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontFamily.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontFamily.Title,\n type: \"text\",\n value: config.fontFamily,\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontFamily.Placeholder,\n onChange: (e)=>updateConfig((config)=>config.fontFamily = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1586,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1582,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.AutoGenerateTitle.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.AutoGenerateTitle.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.AutoGenerateTitle.Title,\n type: \"checkbox\",\n checked: config.enableAutoGenerateTitle,\n onChange: (e)=>updateConfig((config)=>config.enableAutoGenerateTitle = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1603,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1599,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.SendPreviewBubble.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.SendPreviewBubble.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.SendPreviewBubble.Title,\n type: \"checkbox\",\n checked: config.sendPreviewBubble,\n onChange: (e)=>updateConfig((config)=>config.sendPreviewBubble = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1620,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1616,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Mask.Config.Artifacts.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Mask.Config.Artifacts.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Mask.Config.Artifacts.Title,\n type: \"checkbox\",\n checked: config.enableArtifacts,\n onChange: (e)=>updateConfig((config)=>config.enableArtifacts = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1637,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1633,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Mask.Config.CodeFold.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Mask.Config.CodeFold.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Mask.Config.CodeFold.Title,\n type: \"checkbox\",\n checked: config.enableCodeFold,\n \"data-testid\": \"enable-code-fold-checkbox\",\n onChange: (e)=>updateConfig((config)=>config.enableCodeFold = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1653,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1649,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1449,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SyncItems, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1667,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_model_config__WEBPACK_IMPORTED_MODULE_19__.ModelConfigList, {\n modelConfig: config.modelConfig,\n updateConfig: (updater)=>{\n const modelConfig = {\n ...config.modelConfig\n };\n updater(modelConfig);\n config.update((config)=>config.modelConfig = modelConfig);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1670,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1669,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_tts_config__WEBPACK_IMPORTED_MODULE_34__.TTSConfigList, {\n ttsConfig: config.ttsConfig,\n updateConfig: (updater)=>{\n const ttsConfig = {\n ...config.ttsConfig\n };\n updater(ttsConfig);\n config.update((config)=>config.ttsConfig = ttsConfig);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1681,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1680,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(DangerItems, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1691,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1448,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1425,\n columnNumber: 5\n }, this);\n}\n_s6(Settings, \"gamYpAPQsfvuG0awLCYLheWjSrg=\", false, function() {\n return [\n react_router_dom__WEBPACK_IMPORTED_MODULE_37__.useNavigate,\n _store__WEBPACK_IMPORTED_MODULE_21__.useAppConfig,\n _store__WEBPACK_IMPORTED_MODULE_21__.useUpdateStore,\n _store__WEBPACK_IMPORTED_MODULE_21__.useAccessStore,\n _store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore\n ];\n});\n_c6 = Settings;\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6;\n$RefreshReg$(_c, \"EditPromptModal\");\n$RefreshReg$(_c1, \"UserPromptModal\");\n$RefreshReg$(_c2, \"DangerItems\");\n$RefreshReg$(_c3, \"CheckButton\");\n$RefreshReg$(_c4, \"SyncConfigModal\");\n$RefreshReg$(_c5, \"SyncItems\");\n$RefreshReg$(_c6, \"Settings\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9jb21wb25lbnRzL3NldHRpbmdzLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXFEO0FBRVQ7QUFFQTtBQUNMO0FBQ0k7QUFDRjtBQUNFO0FBQ087QUFDVDtBQUNBO0FBQ0Y7QUFDVTtBQUNKO0FBRUU7QUFFTTtBQUNLO0FBQ047QUFDa0M7QUFXcEU7QUFDK0I7QUFFWDtBQVFwQjtBQU9FO0FBQ29EO0FBQzNDO0FBeUJSO0FBQ21EO0FBQ2hDO0FBQ0c7QUFDSTtBQUNBO0FBQ0k7QUFDTjtBQUNiO0FBQ2E7QUFDQztBQUNEO0FBRzdDLFNBQVNnRixnQkFBZ0JDLEtBQTBDOztJQUNqRSxNQUFNQyxjQUFjZCw4REFBY0E7SUFDbEMsTUFBTWUsU0FBU0QsWUFBWUUsR0FBRyxDQUFDSCxNQUFNSSxFQUFFO0lBRXZDLE9BQU9GLHVCQUNMLDhEQUFDRztRQUFJQyxXQUFVO2tCQUNiLDRFQUFDaEUsMkNBQUtBO1lBQ0ppRSxPQUFPcEQsaURBQU1BLENBQUNxRCxRQUFRLENBQUNDLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxLQUFLO1lBQzdDQyxTQUFTWixNQUFNWSxPQUFPO1lBQ3RCQyxTQUFTOzhCQUNQLDhEQUFDakUsZ0RBQVVBO29CQUVUa0UsU0FBU2QsTUFBTVksT0FBTztvQkFDdEJHLE1BQU01RCxpREFBTUEsQ0FBQzZELEVBQUUsQ0FBQ0MsT0FBTztvQkFDdkJDLFFBQVE7bUJBSEo7Ozs7O2FBS1A7c0JBRUQsNEVBQUNiO2dCQUFJQyxXQUFXcEYsb0ZBQTJCOztrQ0FDekMsOERBQUNpRzt3QkFDQ0MsTUFBSzt3QkFDTEMsT0FBT25CLE9BQU9LLEtBQUs7d0JBQ25CZSxVQUFVLENBQUNwQixPQUFPcUIsTUFBTTt3QkFDeEJqQixXQUFXcEYsb0ZBQTJCO3dCQUN0Q3NHLFNBQVMsQ0FBQ0MsSUFDUnhCLFlBQVl5QixZQUFZLENBQ3RCMUIsTUFBTUksRUFB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QUFPNE4sU0FBUzs0QkFDM0J6SyxjQUFjLENBQUN3SztnQ0FDYixNQUFNQyxZQUFZO29DQUFFLEdBQUc1TixPQUFPNE4sU0FBUztnQ0FBQztnQ0FDeENELFFBQVFDO2dDQUNSNU4sT0FBT0QsTUFBTSxDQUFDLENBQUNDLFNBQVlBLE9BQU80TixTQUFTLEdBQUdBOzRCQUNoRDs7Ozs7Ozs7Ozs7a0NBSUosOERBQUN6UDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJVDtJQTduQ2dCcEQ7O1FBQ0dsQiwwREFBV0E7UUFFYnBDLGlEQUFZQTtRQUdQRixtREFBY0E7UUFpQmRDLG1EQUFjQTtRQXFDZGtDLDBEQUFjQTs7O01BNURwQnFCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2FwcC9jb21wb25lbnRzL3NldHRpbmdzLnRzeD8wOTBmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vc2V0dGluZ3MubW9kdWxlLnNjc3NcIjtcclxuXHJcbmltcG9ydCBSZXNldEljb24gZnJvbSBcIi4uL2ljb25zL3JlbG9hZC5zdmdcIjtcclxuaW1wb3J0IEFkZEljb24gZnJvbSBcIi4uL2ljb25zL2FkZC5zdmdcIjtcclxuaW1wb3J0IENsb3NlSWNvbiBmcm9tIFwiLi4vaWNvbnMvY2xvc2Uuc3ZnXCI7XHJcbmltcG9ydCBDb3B5SWNvbiBmcm9tIFwiLi4vaWNvbnMvY29weS5zdmdcIjtcclxuaW1wb3J0IENsZWFySWNvbiBmcm9tIFwiLi4vaWNvbnMvY2xlYXIuc3ZnXCI7XHJcbmltcG9ydCBMb2FkaW5nSWNvbiBmcm9tIFwiLi4vaWNvbnMvdGhyZWUtZG90cy5zdmdcIjtcclxuaW1wb3J0IEVkaXRJY29uIGZyb20gXCIuLi9pY29ucy9lZGl0LnN2Z1wiO1xyXG5pbXBvcnQgRmlyZUljb24gZnJvbSBcIi4uL2ljb25zL2ZpcmUuc3ZnXCI7XHJcbmltcG9ydCBFeWVJY29uIGZyb20gXCIuLi9pY29ucy9leWUuc3ZnXCI7XHJcbmltcG9ydCBEb3dubG9hZEljb24gZnJvbSBcIi4uL2ljb25zL2Rvd25sb2FkLnN2Z1wiO1xyXG5pbXBvcnQgVXBsb2FkSWNvbiBmcm9tIFwiLi4vaWNvbnMvdXBsb2FkLnN2Z1wiO1xyXG5pbXBvcnQgQ29uZmlnSWNvbiBmcm9tIFwiLi4vaWNvbnMvY29uZmlnLnN2Z1wiO1xyXG5pbXBvcnQgQ29uZmlybUljb24gZnJvbSBcIi4uL2ljb25zL2NvbmZpcm0uc3ZnXCI7XHJcblxyXG5pbXBvcnQgQ29ubmVjdGlvbkljb24gZnJvbSBcIi4uL2ljb25zL2Nvbm5lY3Rpb24uc3ZnXCI7XHJcbmltcG9ydCBDbG91ZFN1Y2Nlc3NJY29uIGZyb20gXCIuLi9pY29ucy9jbG91ZC1zdWNjZXNzLnN2Z1wiO1xyXG5pbXBvcnQgQ2xvdWRGYWlsSWNvbiBmcm9tIFwiLi4vaWNvbnMvY2xvdWQtZmFpbC5zdmdcIjtcclxuaW1wb3J0IHsgdHJhY2tTZXR0aW5nc1BhZ2VHdWlkZVRvQ1BheW1lbnRDbGljayB9IGZyb20gXCIuLi91dGlscy9hdXRoLXNldHRpbmdzLWV2ZW50c1wiO1xyXG5pbXBvcnQge1xyXG4gIElucHV0LFxyXG4gIExpc3QsXHJcbiAgTGlzdEl0ZW0sXHJcbiAgTW9kYWwsXHJcbiAgUGFzc3dvcmRJbnB1dCxcclxuICBQb3BvdmVyLFxyXG4gIFNlbGVjdCxcclxuICBzaG93Q29uZmlybSxcclxuICBzaG93VG9hc3QsXHJcbn0gZnJvbSBcIi4vdWktbGliXCI7XHJcbmltcG9ydCB7IE1vZGVsQ29uZmlnTGlzdCB9IGZyb20gXCIuL21vZGVsLWNvbmZpZ1wiO1xyXG5cclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gXCIuL2J1dHRvblwiO1xyXG5pbXBvcnQge1xyXG4gIFN1Ym1pdEtleSxcclxuICB1c2VDaGF0U3RvcmUsXHJcbiAgVGhlbWUsXHJcbiAgdXNlVXBkYXRlU3RvcmUsXHJcbiAgdXNlQWNjZXNzU3RvcmUsXHJcbiAgdXNlQXBwQ29uZmlnLFxyXG59IGZyb20gXCIuLi9zdG9yZVwiO1xyXG5cclxuaW1wb3J0IExvY2FsZSwge1xyXG4gIEFsbExhbmdzLFxyXG4gIEFMTF9MQU5HX09QVElPTlMsXHJcbiAgY2hhbmdlTGFuZyxcclxuICBnZXRMYW5nLFxyXG59IGZyb20gXCIuLi9sb2NhbGVzXCI7XHJcbmltcG9ydCB7IGNvcHlUb0NsaXBib2FyZCwgY2xpZW50VXBkYXRlLCBzZW12ZXJDb21wYXJlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IHtcclxuICBBbnRocm9waWMsXHJcbiAgQXp1cmUsXHJcbiAgQmFpZHUsXHJcbiAgVGVuY2VudCxcclxuICBCeXRlRGFuY2UsXHJcbiAgQWxpYmFiYSxcclxuICBNb29uc2hvdCxcclxuICBYQUksXHJcbiAgR29vZ2xlLFxyXG4gIEdvb2dsZVNhZmV0eVNldHRpbmdzVGhyZXNob2xkLFxyXG4gIE9QRU5BSV9CQVNFX1VSTCxcclxuICBQYXRoLFxyXG4gIFJFTEVBU0VfVVJMLFxyXG4gIFNUT1JBR0VfS0VZLFxyXG4gIFNlcnZpY2VQcm92aWRlcixcclxuICBTbG90SUQsXHJcbiAgVVBEQVRFX1VSTCxcclxuICBTdGFiaWxpdHksXHJcbiAgSWZseXRlayxcclxuICBTQUFTX0NIQVRfVVJMLFxyXG4gIENoYXRHTE0sXHJcbiAgRGVlcFNlZWssXHJcbiAgU2lsaWNvbkZsb3csXHJcbn0gZnJvbSBcIi4uL2NvbnN0YW50XCI7XHJcbmltcG9ydCB7IFByb21wdCwgU2VhcmNoU2VydmljZSwgdXNlUHJvbXB0U3RvcmUgfSBmcm9tIFwiLi4vc3RvcmUvcHJvbXB0XCI7XHJcbmltcG9ydCB7IEVycm9yQm91bmRhcnkgfSBmcm9tIFwiLi9lcnJvclwiO1xyXG5pbXBvcnQgeyBJbnB1dFJhbmdlIH0gZnJvbSBcIi4vaW5wdXQtcmFuZ2VcIjtcclxuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xyXG5pbXBvcnQgeyBBdmF0YXIsIEF2YXRhclBpY2tlciB9IGZyb20gXCIuL2Vtb2ppXCI7XHJcbmltcG9ydCB7IGdldENsaWVudENvbmZpZyB9IGZyb20gXCIuLi9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB7IHVzZVN5bmNTdG9yZSB9IGZyb20gXCIuLi9zdG9yZS9zeW5jXCI7XHJcbmltcG9ydCB7IG5hbm9pZCB9IGZyb20gXCJuYW5vaWRcIjtcclxuaW1wb3J0IHsgdXNlTWFza1N0b3JlIH0gZnJvbSBcIi4uL3N0b3JlL21hc2tcIjtcclxuaW1wb3J0IHsgUHJvdmlkZXJUeXBlIH0gZnJvbSBcIi4uL3V0aWxzL2Nsb3VkXCI7XHJcbmltcG9ydCB7IFRUU0NvbmZpZ0xpc3QgfSBmcm9tIFwiLi90dHMtY29uZmlnXCI7XHJcbmltcG9ydCB7IFJlYWx0aW1lQ29uZmlnTGlzdCB9IGZyb20gXCIuL3JlYWx0aW1lLWNoYXQvcmVhbHRpbWUtY29uZmlnXCI7XHJcblxyXG5mdW5jdGlvbiBFZGl0UHJvbXB0TW9kYWwocHJvcHM6IHsgaWQ6IHN0cmluZzsgb25DbG9zZTogKCkgPT4gdm9pZCB9KSB7XHJcbiAgY29uc3QgcHJvbXB0U3RvcmUgPSB1c2VQcm9tcHRTdG9yZSgpO1xyXG4gIGNvbnN0IHByb21wdCA9IHByb21wdFN0b3JlLmdldChwcm9wcy5pZCk7XHJcblxyXG4gIHJldHVybiBwcm9tcHQgPyAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLW1hc2tcIj5cclxuICAgICAgPE1vZGFsXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5Qcm9tcHQuRWRpdE1vZGFsLlRpdGxlfVxyXG4gICAgICAgIG9uQ2xvc2U9e3Byb3BzLm9uQ2xvc2V9XHJcbiAgICAgICAgYWN0aW9ucz17W1xyXG4gICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAga2V5PVwiXCJcclxuICAgICAgICAgICAgb25DbGljaz17cHJvcHMub25DbG9zZX1cclxuICAgICAgICAgICAgdGV4dD17TG9jYWxlLlVJLkNvbmZpcm19XHJcbiAgICAgICAgICAgIGJvcmRlcmVkXHJcbiAgICAgICAgICAvPixcclxuICAgICAgICBdfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImVkaXQtcHJvbXB0LW1vZGFsXCJdfT5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIHZhbHVlPXtwcm9tcHQudGl0bGV9XHJcbiAgICAgICAgICAgIHJlYWRPbmx5PXshcHJvbXB0LmlzVXNlcn1cclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJlZGl0LXByb21wdC10aXRsZVwiXX1cclxuICAgICAgICAgICAgb25JbnB1dD17KGUpID0+XHJcbiAgICAgICAgICAgICAgcHJvbXB0U3RvcmUudXBkYXRlUHJvbXB0KFxyXG4gICAgICAgICAgICAgICAgcHJvcHMuaWQsXHJcbiAgICAgICAgICAgICAgICAocHJvbXB0KSA9PiAocHJvbXB0LnRpdGxlID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgID48L2lucHV0PlxyXG4gICAgICAgICAgPElucHV0XHJcbiAgICAgICAgICAgIHZhbHVlPXtwcm9tcHQuY29udGVudH1cclxuICAgICAgICAgICAgcmVhZE9ubHk9eyFwcm9tcHQuaXNVc2VyfVxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcImVkaXQtcHJvbXB0LWNvbnRlbnRcIl19XHJcbiAgICAgICAgICAgIHJvd3M9ezEwfVxyXG4gICAgICAgICAgICBvbklucHV0PXsoZSkgPT5cclxuICAgICAgICAgICAgICBwcm9tcHRTdG9yZS51cGRhdGVQcm9tcHQoXHJcbiAgICAgICAgICAgICAgICBwcm9wcy5pZCxcclxuICAgICAgICAgICAgICAgIChwcm9tcHQpID0+IChwcm9tcHQuY29udGVudCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA+PC9JbnB1dD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9Nb2RhbD5cclxuICAgIDwvZGl2PlxyXG4gICkgOiBudWxsO1xyXG59XHJcblxyXG5mdW5jdGlvbiBVc2VyUHJvbXB0TW9kYWwocHJvcHM6IHsgb25DbG9zZT86ICgpID0+IHZvaWQgfSkge1xyXG4gIGNvbnN0IHByb21wdFN0b3JlID0gdXNlUHJvbXB0U3RvcmUoKTtcclxuICBjb25zdCB1c2VyUHJvbXB0cyA9IHByb21wdFN0b3JlLmdldFVzZXJQcm9tcHRzKCk7XHJcbiAgY29uc3QgYnVpbHRpblByb21wdHMgPSBTZWFyY2hTZXJ2aWNlLmJ1aWx0aW5Qcm9tcHRzO1xyXG4gIGNvbnN0IGFsbFByb21wdHMgPSB1c2VyUHJvbXB0cy5jb25jYXQoYnVpbHRpblByb21wdHMpO1xyXG4gIGNvbnN0IFtzZWFyY2hJbnB1dCwgc2V0U2VhcmNoSW5wdXRdID0gdXNlU3RhdGUoXCJcIik7XHJcbiAgY29uc3QgW3NlYXJjaFByb21wdHMsIHNldFNlYXJjaFByb21wdHNdID0gdXNlU3RhdGU8UHJvbXB0W10+KFtdKTtcclxuICBjb25zdCBwcm9tcHRzID0gc2VhcmNoSW5wdXQubGVuZ3RoID4gMCA/IHNlYXJjaFByb21wdHMgOiBhbGxQcm9tcHRzO1xyXG5cclxuICBjb25zdCBbZWRpdGluZ1Byb21wdElkLCBzZXRFZGl0aW5nUHJvbXB0SWRdID0gdXNlU3RhdGU8c3RyaW5nPigpO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKHNlYXJjaElucHV0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3Qgc2VhcmNoUmVzdWx0ID0gU2VhcmNoU2VydmljZS5zZWFyY2goc2VhcmNoSW5wdXQpO1xyXG4gICAgICBzZXRTZWFyY2hQcm9tcHRzKHNlYXJjaFJlc3VsdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZXRTZWFyY2hQcm9tcHRzKFtdKTtcclxuICAgIH1cclxuICB9LCBbc2VhcmNoSW5wdXRdKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPVwibW9kYWwtbWFza1wiPlxyXG4gICAgICA8TW9kYWxcclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlByb21wdC5Nb2RhbC5UaXRsZX1cclxuICAgICAgICBvbkNsb3NlPXsoKSA9PiBwcm9wcy5vbkNsb3NlPy4oKX1cclxuICAgICAgICBhY3Rpb25zPXtbXHJcbiAgICAgICAgICA8SWNvbkJ1dHRvblxyXG4gICAgICAgICAgICBrZXk9XCJhZGRcIlxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcHJvbXB0SWQgPSBwcm9tcHRTdG9yZS5hZGQoe1xyXG4gICAgICAgICAgICAgICAgaWQ6IG5hbm9pZCgpLFxyXG4gICAgICAgICAgICAgICAgY3JlYXRlZEF0OiBEYXRlLm5vdygpLFxyXG4gICAgICAgICAgICAgICAgdGl0bGU6IFwiRW1wdHkgUHJvbXB0XCIsXHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIkVtcHR5IFByb21wdCBDb250ZW50XCIsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgc2V0RWRpdGluZ1Byb21wdElkKHByb21wdElkKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgaWNvbj17PEFkZEljb24gLz59XHJcbiAgICAgICAgICAgIGJvcmRlcmVkXHJcbiAgICAgICAgICAgIHRleHQ9e0xvY2FsZS5TZXR0aW5ncy5Qcm9tcHQuTW9kYWwuQWRkfVxyXG4gICAgICAgICAgLz4sXHJcbiAgICAgICAgXX1cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJ1c2VyLXByb21wdC1tb2RhbFwiXX0+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcInVzZXItcHJvbXB0LXNlYXJjaFwiXX1cclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5Qcm9tcHQuTW9kYWwuU2VhcmNofVxyXG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoSW5wdXR9XHJcbiAgICAgICAgICAgIG9uSW5wdXQ9eyhlKSA9PiBzZXRTZWFyY2hJbnB1dChlLmN1cnJlbnRUYXJnZXQudmFsdWUpfVxyXG4gICAgICAgICAgPjwvaW5wdXQ+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInVzZXItcHJvbXB0LWxpc3RcIl19PlxyXG4gICAgICAgICAgICB7cHJvbXB0cy5tYXAoKHYsIF8pID0+IChcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1widXNlci1wcm9tcHQtaXRlbVwiXX0ga2V5PXt2LmlkID8/IHYudGl0bGV9PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInVzZXItcHJvbXB0LWhlYWRlclwiXX0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJ1c2VyLXByb21wdC10aXRsZVwiXX0+e3YudGl0bGV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJ1c2VyLXByb21wdC1jb250ZW50XCJdICsgXCIgb25lLWxpbmVcIn0+XHJcbiAgICAgICAgICAgICAgICAgICAge3YuY29udGVudH1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1widXNlci1wcm9tcHQtYnV0dG9uc1wiXX0+XHJcbiAgICAgICAgICAgICAgICAgIHt2LmlzVXNlciAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgIGljb249ezxDbGVhckljb24gLz59XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcInVzZXItcHJvbXB0LWJ1dHRvblwiXX1cclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHByb21wdFN0b3JlLnJlbW92ZSh2LmlkISl9XHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAge3YuaXNVc2VyID8gKFxyXG4gICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICBpY29uPXs8RWRpdEljb24gLz59XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcInVzZXItcHJvbXB0LWJ1dHRvblwiXX1cclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEVkaXRpbmdQcm9tcHRJZCh2LmlkKX1cclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICBpY29uPXs8RXllSWNvbiAvPn1cclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1widXNlci1wcm9tcHQtYnV0dG9uXCJdfVxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0RWRpdGluZ1Byb21wdElkKHYuaWQpfVxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj17PENvcHlJY29uIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1widXNlci1wcm9tcHQtYnV0dG9uXCJdfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGNvcHlUb0NsaXBib2FyZCh2LmNvbnRlbnQpfVxyXG4gICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvTW9kYWw+XHJcblxyXG4gICAgICB7ZWRpdGluZ1Byb21wdElkICE9PSB1bmRlZmluZWQgJiYgKFxyXG4gICAgICAgIDxFZGl0UHJvbXB0TW9kYWxcclxuICAgICAgICAgIGlkPXtlZGl0aW5nUHJvbXB0SWQhfVxyXG4gICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0RWRpdGluZ1Byb21wdElkKHVuZGVmaW5lZCl9XHJcbiAgICAgICAgLz5cclxuICAgICAgKX1cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIERhbmdlckl0ZW1zKCkge1xyXG4gIGNvbnN0IGNoYXRTdG9yZSA9IHVzZUNoYXRTdG9yZSgpO1xyXG4gIGNvbnN0IGFwcENvbmZpZyA9IHVzZUFwcENvbmZpZygpO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPExpc3Q+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLlJlc2V0LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLlJlc2V0LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgIGFyaWE9e0xvY2FsZS5TZXR0aW5ncy5EYW5nZXIuUmVzZXQuVGl0bGV9XHJcbiAgICAgICAgICB0ZXh0PXtMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLlJlc2V0LkFjdGlvbn1cclxuICAgICAgICAgIG9uQ2xpY2s9e2FzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGF3YWl0IHNob3dDb25maXJtKExvY2FsZS5TZXR0aW5ncy5EYW5nZXIuUmVzZXQuQ29uZmlybSkpIHtcclxuICAgICAgICAgICAgICBhcHBDb25maWcucmVzZXQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIHR5cGU9XCJkYW5nZXJcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLkNsZWFyLlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLkNsZWFyLlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgIGFyaWE9e0xvY2FsZS5TZXR0aW5ncy5EYW5nZXIuQ2xlYXIuVGl0bGV9XHJcbiAgICAgICAgICB0ZXh0PXtMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLkNsZWFyLkFjdGlvbn1cclxuICAgICAgICAgIG9uQ2xpY2s9e2FzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGF3YWl0IHNob3dDb25maXJtKExvY2FsZS5TZXR0aW5ncy5EYW5nZXIuQ2xlYXIuQ29uZmlybSkpIHtcclxuICAgICAgICAgICAgICBjaGF0U3RvcmUuY2xlYXJBbGxEYXRhKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICB0eXBlPVwiZGFuZ2VyXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC9MaXN0PlxyXG4gICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIENoZWNrQnV0dG9uKCkge1xyXG4gIGNvbnN0IHN5bmNTdG9yZSA9IHVzZVN5bmNTdG9yZSgpO1xyXG5cclxuICBjb25zdCBjb3VsZENoZWNrID0gdXNlTWVtbygoKSA9PiB7XHJcbiAgICByZXR1cm4gc3luY1N0b3JlLmNsb3VkU3luYygpO1xyXG4gIH0sIFtzeW5jU3RvcmVdKTtcclxuXHJcbiAgY29uc3QgW2NoZWNrU3RhdGUsIHNldENoZWNrU3RhdGVdID0gdXNlU3RhdGU8XHJcbiAgICBcIm5vbmVcIiB8IFwiY2hlY2tpbmdcIiB8IFwic3VjY2Vzc1wiIHwgXCJmYWlsZWRcIlxyXG4gID4oXCJub25lXCIpO1xyXG5cclxuICBhc3luYyBmdW5jdGlvbiBjaGVjaygpIHtcclxuICAgIHNldENoZWNrU3RhdGUoXCJjaGVja2luZ1wiKTtcclxuICAgIGNvbnN0IHZhbGlkID0gYXdhaXQgc3luY1N0b3JlLmNoZWNrKCk7XHJcbiAgICBzZXRDaGVja1N0YXRlKHZhbGlkID8gXCJzdWNjZXNzXCIgOiBcImZhaWxlZFwiKTtcclxuICB9XHJcblxyXG4gIGlmICghY291bGRDaGVjaykgcmV0dXJuIG51bGw7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8SWNvbkJ1dHRvblxyXG4gICAgICB0ZXh0PXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuTW9kYWwuQ2hlY2t9XHJcbiAgICAgIGJvcmRlcmVkXHJcbiAgICAgIG9uQ2xpY2s9e2NoZWNrfVxyXG4gICAgICBpY29uPXtcclxuICAgICAgICBjaGVja1N0YXRlID09PSBcIm5vbmVcIiA/IChcclxuICAgICAgICAgIDxDb25uZWN0aW9uSWNvbiAvPlxyXG4gICAgICAgICkgOiBjaGVja1N0YXRlID09PSBcImNoZWNraW5nXCIgPyAoXHJcbiAgICAgICAgICA8TG9hZGluZ0ljb24gLz5cclxuICAgICAgICApIDogY2hlY2tTdGF0ZSA9PT0gXCJzdWNjZXNzXCIgPyAoXHJcbiAgICAgICAgICA8Q2xvdWRTdWNjZXNzSWNvbiAvPlxyXG4gICAgICAgICkgOiBjaGVja1N0YXRlID09PSBcImZhaWxlZFwiID8gKFxyXG4gICAgICAgICAgPENsb3VkRmFpbEljb24gLz5cclxuICAgICAgICApIDogKFxyXG4gICAgICAgICAgPENvbm5lY3Rpb25JY29uIC8+XHJcbiAgICAgICAgKVxyXG4gICAgICB9XHJcbiAgICA+PC9JY29uQnV0dG9uPlxyXG4gICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIFN5bmNDb25maWdNb2RhbChwcm9wczogeyBvbkNsb3NlPzogKCkgPT4gdm9pZCB9KSB7XHJcbiAgY29uc3Qgc3luY1N0b3JlID0gdXNlU3luY1N0b3JlKCk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLW1hc2tcIj5cclxuICAgICAgPE1vZGFsXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5TeW5jLkNvbmZpZy5Nb2RhbC5UaXRsZX1cclxuICAgICAgICBvbkNsb3NlPXsoKSA9PiBwcm9wcy5vbkNsb3NlPy4oKX1cclxuICAgICAgICBhY3Rpb25zPXtbXHJcbiAgICAgICAgICA8Q2hlY2tCdXR0b24ga2V5PVwiY2hlY2tcIiAvPixcclxuICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgIGtleT1cImNvbmZpcm1cIlxyXG4gICAgICAgICAgICBvbkNsaWNrPXtwcm9wcy5vbkNsb3NlfVxyXG4gICAgICAgICAgICBpY29uPXs8Q29uZmlybUljb24gLz59XHJcbiAgICAgICAgICAgIGJvcmRlcmVkXHJcbiAgICAgICAgICAgIHRleHQ9e0xvY2FsZS5VSS5Db25maXJtfVxyXG4gICAgICAgICAgLz4sXHJcbiAgICAgICAgXX1cclxuICAgICAgPlxyXG4gICAgICAgIDxMaXN0PlxyXG4gICAgICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuU3luY1R5cGUuVGl0bGV9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuU3luY1R5cGUuU3ViVGl0bGV9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICB2YWx1ZT17c3luY1N0b3JlLnByb3ZpZGVyfVxyXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3luY1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgKGNvbmZpZykgPT5cclxuICAgICAgICAgICAgICAgICAgICAoY29uZmlnLnByb3ZpZGVyID0gZS50YXJnZXQudmFsdWUgYXMgUHJvdmlkZXJUeXBlKSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtPYmplY3QuZW50cmllcyhQcm92aWRlclR5cGUpLm1hcCgoW2ssIHZdKSA9PiAoXHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPXt2fSBrZXk9e2t9PlxyXG4gICAgICAgICAgICAgICAgICB7a31cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcblxyXG4gICAgICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuUHJveHkuVGl0bGV9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuUHJveHkuU3ViVGl0bGV9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgY2hlY2tlZD17c3luY1N0b3JlLnVzZVByb3h5fVxyXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3luY1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgKGNvbmZpZykgPT4gKGNvbmZpZy51c2VQcm94eSA9IGUuY3VycmVudFRhcmdldC5jaGVja2VkKSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICAgICAge3N5bmNTdG9yZS51c2VQcm94eSA/IChcclxuICAgICAgICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5TeW5jLkNvbmZpZy5Qcm94eVVybC5UaXRsZX1cclxuICAgICAgICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuQ29uZmlnLlByb3h5VXJsLlN1YlRpdGxlfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICB2YWx1ZT17c3luY1N0b3JlLnByb3h5VXJsfVxyXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHN5bmNTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZykgPT4gKGNvbmZpZy5wcm94eVVybCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID48L2lucHV0PlxyXG4gICAgICAgICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICAgICAgKSA6IG51bGx9XHJcbiAgICAgICAgPC9MaXN0PlxyXG5cclxuICAgICAgICB7c3luY1N0b3JlLnByb3ZpZGVyID09PSBQcm92aWRlclR5cGUuV2ViREFWICYmIChcclxuICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgIDxMaXN0PlxyXG4gICAgICAgICAgICAgIDxMaXN0SXRlbSB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuQ29uZmlnLldlYkRhdi5FbmRwb2ludH0+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17c3luY1N0b3JlLndlYmRhdi5lbmRwb2ludH1cclxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3luY1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjb25maWcud2ViZGF2LmVuZHBvaW50ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgICAgICAgICAgPC9MaXN0SXRlbT5cclxuXHJcbiAgICAgICAgICAgICAgPExpc3RJdGVtIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuV2ViRGF2LlVzZXJOYW1lfT5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtzeW5jU3RvcmUud2ViZGF2LnVzZXJuYW1lfVxyXG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzeW5jU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNvbmZpZykgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy53ZWJkYXYudXNlcm5hbWUgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgICAgICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICAgICAgICAgIDxMaXN0SXRlbSB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuQ29uZmlnLldlYkRhdi5QYXNzd29yZH0+XHJcbiAgICAgICAgICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17c3luY1N0b3JlLndlYmRhdi5wYXNzd29yZH1cclxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3luY1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjb25maWcud2ViZGF2LnBhc3N3b3JkID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPjwvUGFzc3dvcmRJbnB1dD5cclxuICAgICAgICAgICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICAgICAgICA8L0xpc3Q+XHJcbiAgICAgICAgICA8Lz5cclxuICAgICAgICApfVxyXG5cclxuICAgICAgICB7c3luY1N0b3JlLnByb3ZpZGVyID09PSBQcm92aWRlclR5cGUuVXBTdGFzaCAmJiAoXHJcbiAgICAgICAgICA8TGlzdD5cclxuICAgICAgICAgICAgPExpc3RJdGVtIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuVXBTdGFzaC5FbmRwb2ludH0+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICB2YWx1ZT17c3luY1N0b3JlLnVwc3Rhc2guZW5kcG9pbnR9XHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgc3luY1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy51cHN0YXNoLmVuZHBvaW50ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcblxyXG4gICAgICAgICAgICA8TGlzdEl0ZW0gdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5TeW5jLkNvbmZpZy5VcFN0YXNoLlVzZXJOYW1lfT5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIHZhbHVlPXtzeW5jU3RvcmUudXBzdGFzaC51c2VybmFtZX1cclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtTVE9SQUdFX0tFWX1cclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBzeW5jU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAoY29uZmlnLnVwc3Rhc2gudXNlcm5hbWUgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgICAgICAgPExpc3RJdGVtIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuVXBTdGFzaC5QYXNzd29yZH0+XHJcbiAgICAgICAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgICAgICAgIHZhbHVlPXtzeW5jU3RvcmUudXBzdGFzaC5hcGlLZXl9XHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgc3luY1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PiAoY29uZmlnLnVwc3Rhc2guYXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPjwvUGFzc3dvcmRJbnB1dD5cclxuICAgICAgICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgICAgIDwvTGlzdD5cclxuICAgICAgICApfVxyXG4gICAgICA8L01vZGFsPlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gU3luY0l0ZW1zKCkge1xyXG4gIGNvbnN0IHN5bmNTdG9yZSA9IHVzZVN5bmNTdG9yZSgpO1xyXG4gIGNvbnN0IGNoYXRTdG9yZSA9IHVzZUNoYXRTdG9yZSgpO1xyXG4gIGNvbnN0IHByb21wdFN0b3JlID0gdXNlUHJvbXB0U3RvcmUoKTtcclxuICBjb25zdCBtYXNrU3RvcmUgPSB1c2VNYXNrU3RvcmUoKTtcclxuICBjb25zdCBjb3VsZFN5bmMgPSB1c2VNZW1vKCgpID0+IHtcclxuICAgIHJldHVybiBzeW5jU3RvcmUuY2xvdWRTeW5jKCk7XHJcbiAgfSwgW3N5bmNTdG9yZV0pO1xyXG5cclxuICBjb25zdCBbc2hvd1N5bmNDb25maWdNb2RhbCwgc2V0U2hvd1N5bmNDb25maWdNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcblxyXG4gIGNvbnN0IHN0YXRlT3ZlcnZpZXcgPSB1c2VNZW1vKCgpID0+IHtcclxuICAgIGNvbnN0IHNlc3Npb25zID0gY2hhdFN0b3JlLnNlc3Npb25zO1xyXG4gICAgY29uc3QgbWVzc2FnZUNvdW50ID0gc2Vzc2lvbnMucmVkdWNlKChwLCBjKSA9PiBwICsgYy5tZXNzYWdlcy5sZW5ndGgsIDApO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNoYXQ6IHNlc3Npb25zLmxlbmd0aCxcclxuICAgICAgbWVzc2FnZTogbWVzc2FnZUNvdW50LFxyXG4gICAgICBwcm9tcHQ6IE9iamVjdC5rZXlzKHByb21wdFN0b3JlLnByb21wdHMpLmxlbmd0aCxcclxuICAgICAgbWFzazogT2JqZWN0LmtleXMobWFza1N0b3JlLm1hc2tzKS5sZW5ndGgsXHJcbiAgICB9O1xyXG4gIH0sIFtjaGF0U3RvcmUuc2Vzc2lvbnMsIG1hc2tTdG9yZS5tYXNrcywgcHJvbXB0U3RvcmUucHJvbXB0c10pO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPD5cclxuICAgICAgPExpc3Q+XHJcbiAgICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuTG9jYWxTdGF0ZX1cclxuICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5PdmVydmlldyhzdGF0ZU92ZXJ2aWV3KX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6IFwiZmxleFwiIH19PlxyXG4gICAgICAgICAgICA8SWNvbkJ1dHRvblxyXG4gICAgICAgICAgICAgIGFyaWE9e0xvY2FsZS5TZXR0aW5ncy5TeW5jLkxvY2FsU3RhdGUgKyBMb2NhbGUuVUkuRXhwb3J0fVxyXG4gICAgICAgICAgICAgIGljb249ezxVcGxvYWRJY29uIC8+fVxyXG4gICAgICAgICAgICAgIHRleHQ9e0xvY2FsZS5VSS5FeHBvcnR9XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3luY1N0b3JlLmV4cG9ydCgpO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgYXJpYT17TG9jYWxlLlNldHRpbmdzLlN5bmMuTG9jYWxTdGF0ZSArIExvY2FsZS5VSS5JbXBvcnR9XHJcbiAgICAgICAgICAgICAgaWNvbj17PERvd25sb2FkSWNvbiAvPn1cclxuICAgICAgICAgICAgICB0ZXh0PXtMb2NhbGUuVUkuSW1wb3J0fVxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIHN5bmNTdG9yZS5pbXBvcnQoKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPC9MaXN0PlxyXG5cclxuICAgICAge3Nob3dTeW5jQ29uZmlnTW9kYWwgJiYgKFxyXG4gICAgICAgIDxTeW5jQ29uZmlnTW9kYWwgb25DbG9zZT17KCkgPT4gc2V0U2hvd1N5bmNDb25maWdNb2RhbChmYWxzZSl9IC8+XHJcbiAgICAgICl9XHJcbiAgICA8Lz5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gU2V0dGluZ3MoKSB7XHJcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xyXG4gIGNvbnN0IFtzaG93RW1vamlQaWNrZXIsIHNldFNob3dFbW9qaVBpY2tlcl0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgY29uc3QgY29uZmlnID0gdXNlQXBwQ29uZmlnKCk7XHJcbiAgY29uc3QgdXBkYXRlQ29uZmlnID0gY29uZmlnLnVwZGF0ZTtcclxuXHJcbiAgY29uc3QgdXBkYXRlU3RvcmUgPSB1c2VVcGRhdGVTdG9yZSgpO1xyXG4gIGNvbnN0IFtjaGVja2luZ1VwZGF0ZSwgc2V0Q2hlY2tpbmdVcGRhdGVdID0gdXNlU3RhdGUoZmFsc2UpO1xyXG4gIGNvbnN0IGN1cnJlbnRWZXJzaW9uID0gdXBkYXRlU3RvcmUuZm9ybWF0VmVyc2lvbih1cGRhdGVTdG9yZS52ZXJzaW9uKTtcclxuICBjb25zdCByZW1vdGVJZCA9IHVwZGF0ZVN0b3JlLmZvcm1hdFZlcnNpb24odXBkYXRlU3RvcmUucmVtb3RlVmVyc2lvbik7XHJcbiAgY29uc3QgaGFzTmV3VmVyc2lvbiA9IHNlbXZlckNvbXBhcmUoY3VycmVudFZlcnNpb24sIHJlbW90ZUlkKSA9PT0gLTE7XHJcbiAgY29uc3QgdXBkYXRlVXJsID0gZ2V0Q2xpZW50Q29uZmlnKCk/LmlzQXBwID8gUkVMRUFTRV9VUkwgOiBVUERBVEVfVVJMO1xyXG5cclxuICBmdW5jdGlvbiBjaGVja1VwZGF0ZShmb3JjZSA9IGZhbHNlKSB7XHJcbiAgICBzZXRDaGVja2luZ1VwZGF0ZSh0cnVlKTtcclxuICAgIHVwZGF0ZVN0b3JlLmdldExhdGVzdFZlcnNpb24oZm9yY2UpLnRoZW4oKCkgPT4ge1xyXG4gICAgICBzZXRDaGVja2luZ1VwZGF0ZShmYWxzZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIltVcGRhdGVdIGxvY2FsIHZlcnNpb24gXCIsIHVwZGF0ZVN0b3JlLnZlcnNpb24pO1xyXG4gICAgY29uc29sZS5sb2coXCJbVXBkYXRlXSByZW1vdGUgdmVyc2lvbiBcIiwgdXBkYXRlU3RvcmUucmVtb3RlVmVyc2lvbik7XHJcbiAgfVxyXG5cclxuICBjb25zdCBhY2Nlc3NTdG9yZSA9IHVzZUFjY2Vzc1N0b3JlKCk7XHJcbiAgY29uc3Qgc2hvdWxkSGlkZUJhbGFuY2VRdWVyeSA9IHVzZU1lbW8oKCkgPT4ge1xyXG4gICAgY29uc3QgaXNPcGVuQWlVcmwgPSBhY2Nlc3NTdG9yZS5vcGVuYWlVcmwuaW5jbHVkZXMoT1BFTkFJX0JBU0VfVVJMKTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICBhY2Nlc3NTdG9yZS5oaWRlQmFsYW5jZVF1ZXJ5IHx8XHJcbiAgICAgIGlzT3BlbkFpVXJsIHx8XHJcbiAgICAgIGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PSBTZXJ2aWNlUHJvdmlkZXIuQXp1cmVcclxuICAgICk7XHJcbiAgfSwgW1xyXG4gICAgYWNjZXNzU3RvcmUuaGlkZUJhbGFuY2VRdWVyeSxcclxuICAgIGFjY2Vzc1N0b3JlLm9wZW5haVVybCxcclxuICAgIGFjY2Vzc1N0b3JlLnByb3ZpZGVyLFxyXG4gIF0pO1xyXG5cclxuICBjb25zdCB1c2FnZSA9IHtcclxuICAgIHVzZWQ6IHVwZGF0ZVN0b3JlLnVzZWQsXHJcbiAgICBzdWJzY3JpcHRpb246IHVwZGF0ZVN0b3JlLnN1YnNjcmlwdGlvbixcclxuICB9O1xyXG4gIGNvbnN0IFtsb2FkaW5nVXNhZ2UsIHNldExvYWRpbmdVc2FnZV0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgZnVuY3Rpb24gY2hlY2tVc2FnZShmb3JjZSA9IGZhbHNlKSB7XHJcbiAgICBpZiAoc2hvdWxkSGlkZUJhbGFuY2VRdWVyeSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TG9hZGluZ1VzYWdlKHRydWUpO1xyXG4gICAgdXBkYXRlU3RvcmUudXBkYXRlVXNhZ2UoZm9yY2UpLmZpbmFsbHkoKCkgPT4ge1xyXG4gICAgICBzZXRMb2FkaW5nVXNhZ2UoZmFsc2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBlbmFibGVkQWNjZXNzQ29udHJvbCA9IHVzZU1lbW8oXHJcbiAgICAoKSA9PiBhY2Nlc3NTdG9yZS5lbmFibGVkQWNjZXNzQ29udHJvbCgpLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xyXG4gICAgW10sXHJcbiAgKTtcclxuXHJcbiAgY29uc3QgcHJvbXB0U3RvcmUgPSB1c2VQcm9tcHRTdG9yZSgpO1xyXG4gIGNvbnN0IGJ1aWx0aW5Db3VudCA9IFNlYXJjaFNlcnZpY2UuY291bnQuYnVpbHRpbjtcclxuICBjb25zdCBjdXN0b21Db3VudCA9IHByb21wdFN0b3JlLmdldFVzZXJQcm9tcHRzKCkubGVuZ3RoID8/IDA7XHJcbiAgY29uc3QgW3Nob3VsZFNob3dQcm9tcHRNb2RhbCwgc2V0U2hvd1Byb21wdE1vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuXHJcbiAgY29uc3Qgc2hvd1VzYWdlID0gYWNjZXNzU3RvcmUuaXNBdXRob3JpemVkKCk7XHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIC8vIGNoZWNrcyBwZXIgbWludXRlc1xyXG4gICAgY2hlY2tVcGRhdGUoKTtcclxuICAgIHNob3dVc2FnZSAmJiBjaGVja1VzYWdlKCk7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXHJcbiAgfSwgW10pO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3Qga2V5ZG93bkV2ZW50ID0gKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcclxuICAgICAgaWYgKGUua2V5ID09PSBcIkVzY2FwZVwiKSB7XHJcbiAgICAgICAgbmF2aWdhdGUoUGF0aC5Ib21lKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGlmIChjbGllbnRDb25maWc/LmlzQXBwKSB7XHJcbiAgICAgIC8vIEZvcmNlIHRvIHNldCBjdXN0b20gZW5kcG9pbnQgdG8gdHJ1ZSBpZiBpdCdzIGFwcFxyXG4gICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoKHN0YXRlKSA9PiB7XHJcbiAgICAgICAgc3RhdGUudXNlQ3VzdG9tQ29uZmlnID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBrZXlkb3duRXZlbnQpO1xyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwga2V5ZG93bkV2ZW50KTtcclxuICAgIH07XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXHJcbiAgfSwgW10pO1xyXG5cclxuICBjb25zdCBjbGllbnRDb25maWcgPSB1c2VNZW1vKCgpID0+IGdldENsaWVudENvbmZpZygpLCBbXSk7XHJcbiAgY29uc3Qgc2hvd0FjY2Vzc0NvZGUgPSBlbmFibGVkQWNjZXNzQ29udHJvbCAmJiAhY2xpZW50Q29uZmlnPy5pc0FwcDtcclxuXHJcbiAgY29uc3QgYWNjZXNzQ29kZUNvbXBvbmVudCA9IHNob3dBY2Nlc3NDb2RlICYmIChcclxuICAgIDxMaXN0SXRlbVxyXG4gICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BY2Nlc3NDb2RlLlRpdGxlfVxyXG4gICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BY2Nlc3NDb2RlLlN1YlRpdGxlfVxyXG4gICAgPlxyXG4gICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5hY2Nlc3NDb2RlfVxyXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BY2Nlc3NDb2RlLlBsYWNlaG9sZGVyfVxyXG4gICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmFjY2Vzc0NvZGUgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9fVxyXG4gICAgICAvPlxyXG4gICAgPC9MaXN0SXRlbT5cclxuICApO1xyXG5cclxuICBjb25zdCBzYWFzU3RhcnRDb21wb25lbnQgPSAoXHJcbiAgICA8TGlzdEl0ZW1cclxuICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJzdWJ0aXRsZS1idXR0b25cIl19XHJcbiAgICAgIHRpdGxlPXtcclxuICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlNhYXNTdGFydC5UaXRsZSArXHJcbiAgICAgICAgYCR7TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TYWFzU3RhcnQuTGFiZWx9YFxyXG4gICAgICB9XHJcbiAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlNhYXNTdGFydC5TdWJUaXRsZX1cclxuICAgID5cclxuICAgICAgPEljb25CdXR0b25cclxuICAgICAgICBhcmlhPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuU2Fhc1N0YXJ0LlRpdGxlICtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuU2Fhc1N0YXJ0LkNoYXROb3dcclxuICAgICAgICB9XHJcbiAgICAgICAgaWNvbj17PEZpcmVJY29uIC8+fVxyXG4gICAgICAgIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgIHRleHQ9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuU2Fhc1N0YXJ0LkNoYXROb3d9XHJcbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgdHJhY2tTZXR0aW5nc1BhZ2VHdWlkZVRvQ1BheW1lbnRDbGljaygpO1xyXG4gICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBTQUFTX0NIQVRfVVJMO1xyXG4gICAgICAgIH19XHJcbiAgICAgIC8+XHJcbiAgICA8L0xpc3RJdGVtPlxyXG4gICk7XHJcblxyXG4gIGNvbnN0IHVzZUN1c3RvbUNvbmZpZ0NvbXBvbmVudCA9IC8vIENvbmRpdGlvbmFsbHkgcmVuZGVyIHRoZSBmb2xsb3dpbmcgTGlzdEl0ZW0gYmFzZWQgb24gY2xpZW50Q29uZmlnLmlzQXBwXHJcbiAgICAhY2xpZW50Q29uZmlnPy5pc0FwcCAmJiAoIC8vIG9ubHkgc2hvdyBpZiBpc0FwcCBpcyBmYWxzZVxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5DdXN0b21FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5DdXN0b21FbmRwb2ludC5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5DdXN0b21FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICBjaGVja2VkPXthY2Nlc3NTdG9yZS51c2VDdXN0b21Db25maWd9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLnVzZUN1c3RvbUNvbmZpZyA9IGUuY3VycmVudFRhcmdldC5jaGVja2VkKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgKTtcclxuXHJcbiAgY29uc3Qgb3BlbkFJQ29uZmlnQ29tcG9uZW50ID0gYWNjZXNzU3RvcmUucHJvdmlkZXIgPT09XHJcbiAgICBTZXJ2aWNlUHJvdmlkZXIuT3BlbkFJICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk9wZW5BSS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5PcGVuQUkuRW5kcG9pbnQuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuT3BlbkFJLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLm9wZW5haVVybH1cclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtPUEVOQUlfQkFTRV9VUkx9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLm9wZW5haVVybCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuT3BlbkFJLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5PcGVuQUkuQXBpS2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWE9e0xvY2FsZS5TZXR0aW5ncy5TaG93UGFzc3dvcmR9XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk9wZW5BSS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUub3BlbmFpQXBpS2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuT3BlbkFJLkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5vcGVuYWlBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuXHJcbiAgY29uc3QgYXp1cmVDb25maWdDb21wb25lbnQgPSBhY2Nlc3NTdG9yZS5wcm92aWRlciA9PT1cclxuICAgIFNlcnZpY2VQcm92aWRlci5BenVyZSAmJiAoXHJcbiAgICA8PlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BenVyZS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17XHJcbiAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkF6dXJlLkVuZHBvaW50LlN1YlRpdGxlICsgQXp1cmUuRXhhbXBsZUVuZHBvaW50XHJcbiAgICAgICAgfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkF6dXJlLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmF6dXJlVXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0F6dXJlLkV4YW1wbGVFbmRwb2ludH1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuYXp1cmVVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkF6dXJlLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BenVyZS5BcGlLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BenVyZS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuYXp1cmVBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BenVyZS5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuYXp1cmVBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BenVyZS5BcGlWZXJpb24uVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQXp1cmUuQXBpVmVyaW9uLlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkF6dXJlLkFwaVZlcmlvbi5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5henVyZUFwaVZlcnNpb259XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIjIwMjMtMDgtMDEtcHJldmlld1wiXHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmF6dXJlQXBpVmVyc2lvbiA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgIDwvPlxyXG4gICk7XHJcblxyXG4gIGNvbnN0IGdvb2dsZUNvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLkdvb2dsZSAmJiAoXHJcbiAgICA8PlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e1xyXG4gICAgICAgICAgTG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuRW5kcG9pbnQuU3ViVGl0bGUgK1xyXG4gICAgICAgICAgR29vZ2xlLkV4YW1wbGVFbmRwb2ludFxyXG4gICAgICAgIH1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuZ29vZ2xlVXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0dvb2dsZS5FeGFtcGxlRW5kcG9pbnR9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmdvb2dsZVVybCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuR29vZ2xlLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuQXBpS2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuR29vZ2xlLkFwaUtleS5UaXRsZX1cclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5nb29nbGVBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuQXBpS2V5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmdvb2dsZUFwaUtleSA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkdvb2dsZS5BcGlWZXJzaW9uLlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkdvb2dsZS5BcGlWZXJzaW9uLlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkdvb2dsZS5BcGlWZXJzaW9uLlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmdvb2dsZUFwaVZlcnNpb259XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIjIwMjMtMDgtMDEtcHJldmlld1wiXHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmdvb2dsZUFwaVZlcnNpb24gPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkdvb2dsZS5Hb29nbGVTYWZldHlTZXR0aW5ncy5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuR29vZ2xlU2FmZXR5U2V0dGluZ3MuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkdvb2dsZS5Hb29nbGVTYWZldHlTZXR0aW5ncy5UaXRsZX1cclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5nb29nbGVTYWZldHlTZXR0aW5nc31cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT5cclxuICAgICAgICAgICAgICAgIChhY2Nlc3MuZ29vZ2xlU2FmZXR5U2V0dGluZ3MgPSBlLnRhcmdldFxyXG4gICAgICAgICAgICAgICAgICAudmFsdWUgYXMgR29vZ2xlU2FmZXR5U2V0dGluZ3NUaHJlc2hvbGQpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7T2JqZWN0LmVudHJpZXMoR29vZ2xlU2FmZXR5U2V0dGluZ3NUaHJlc2hvbGQpLm1hcCgoW2ssIHZdKSA9PiAoXHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9e3Z9IGtleT17a30+XHJcbiAgICAgICAgICAgICAge2t9XHJcbiAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgKSl9XHJcbiAgICAgICAgPC9TZWxlY3Q+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICA8Lz5cclxuICApO1xyXG5cclxuICBjb25zdCBhbnRocm9waWNDb25maWdDb21wb25lbnQgPSBhY2Nlc3NTdG9yZS5wcm92aWRlciA9PT1cclxuICAgIFNlcnZpY2VQcm92aWRlci5BbnRocm9waWMgJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQW50aHJvcGljLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQW50aHJvcGljLkVuZHBvaW50LlN1YlRpdGxlICtcclxuICAgICAgICAgIEFudGhyb3BpYy5FeGFtcGxlRW5kcG9pbnRcclxuICAgICAgICB9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQW50aHJvcGljLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmFudGhyb3BpY1VybH1cclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtBbnRocm9waWMuRXhhbXBsZUVuZHBvaW50fVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5hbnRocm9waWNVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFudGhyb3BpYy5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQW50aHJvcGljLkFwaUtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFudGhyb3BpYy5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuYW50aHJvcGljQXBpS2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQW50aHJvcGljLkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5hbnRocm9waWNBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BbnRocm9waWMuQXBpVmVyaW9uLlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFudGhyb3BpYy5BcGlWZXJpb24uU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQW50aHJvcGljLkFwaVZlcmlvbi5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5hbnRocm9waWNBcGlWZXJzaW9ufVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0FudGhyb3BpYy5WaXNpb259XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmFudGhyb3BpY0FwaVZlcnNpb24gPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICA8Lz5cclxuICApO1xyXG5cclxuICBjb25zdCBiYWlkdUNvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLkJhaWR1ICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJhaWR1LkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJhaWR1LkVuZHBvaW50LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJhaWR1LkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmJhaWR1VXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0JhaWR1LkV4YW1wbGVFbmRwb2ludH1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuYmFpZHVVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJhaWR1LkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5CYWlkdS5BcGlLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5CYWlkdS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuYmFpZHVBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5CYWlkdS5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuYmFpZHVBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5CYWlkdS5TZWNyZXRLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQmFpZHUuU2VjcmV0S2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQmFpZHUuU2VjcmV0S2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmJhaWR1U2VjcmV0S2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQmFpZHUuU2VjcmV0S2V5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmJhaWR1U2VjcmV0S2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgIDwvPlxyXG4gICk7XHJcblxyXG4gIGNvbnN0IHRlbmNlbnRDb25maWdDb21wb25lbnQgPSBhY2Nlc3NTdG9yZS5wcm92aWRlciA9PT1cclxuICAgIFNlcnZpY2VQcm92aWRlci5UZW5jZW50ICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlRlbmNlbnQuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuVGVuY2VudC5FbmRwb2ludC5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5UZW5jZW50LkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLnRlbmNlbnRVcmx9XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17VGVuY2VudC5FeGFtcGxlRW5kcG9pbnR9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLnRlbmNlbnRVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlRlbmNlbnQuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlRlbmNlbnQuQXBpS2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuVGVuY2VudC5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUudGVuY2VudFNlY3JldElkfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuVGVuY2VudC5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MudGVuY2VudFNlY3JldElkID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuVGVuY2VudC5TZWNyZXRLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuVGVuY2VudC5TZWNyZXRLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5UZW5jZW50LlNlY3JldEtleS5UaXRsZX1cclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS50ZW5jZW50U2VjcmV0S2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuVGVuY2VudC5TZWNyZXRLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MudGVuY2VudFNlY3JldEtleSA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICA8Lz5cclxuICApO1xyXG5cclxuICBjb25zdCBieXRlRGFuY2VDb25maWdDb21wb25lbnQgPSBhY2Nlc3NTdG9yZS5wcm92aWRlciA9PT1cclxuICAgIFNlcnZpY2VQcm92aWRlci5CeXRlRGFuY2UgJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQnl0ZURhbmNlLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQnl0ZURhbmNlLkVuZHBvaW50LlN1YlRpdGxlICtcclxuICAgICAgICAgIEJ5dGVEYW5jZS5FeGFtcGxlRW5kcG9pbnRcclxuICAgICAgICB9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQnl0ZURhbmNlLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmJ5dGVkYW5jZVVybH1cclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtCeXRlRGFuY2UuRXhhbXBsZUVuZHBvaW50fVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5ieXRlZGFuY2VVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJ5dGVEYW5jZS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQnl0ZURhbmNlLkFwaUtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJ5dGVEYW5jZS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuYnl0ZWRhbmNlQXBpS2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQnl0ZURhbmNlLkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5ieXRlZGFuY2VBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuXHJcbiAgY29uc3QgYWxpYmFiYUNvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLkFsaWJhYmEgJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQWxpYmFiYS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17XHJcbiAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFsaWJhYmEuRW5kcG9pbnQuU3ViVGl0bGUgK1xyXG4gICAgICAgICAgQWxpYmFiYS5FeGFtcGxlRW5kcG9pbnRcclxuICAgICAgICB9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQWxpYmFiYS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5hbGliYWJhVXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0FsaWJhYmEuRXhhbXBsZUVuZHBvaW50fVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5hbGliYWJhVXJsID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BbGliYWJhLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BbGliYWJhLkFwaUtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFsaWJhYmEuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmFsaWJhYmFBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BbGliYWJhLkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5hbGliYWJhQXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgIDwvPlxyXG4gICk7XHJcblxyXG4gIGNvbnN0IG1vb25zaG90Q29uZmlnQ29tcG9uZW50ID0gYWNjZXNzU3RvcmUucHJvdmlkZXIgPT09XHJcbiAgICBTZXJ2aWNlUHJvdmlkZXIuTW9vbnNob3QgJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuTW9vbnNob3QuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e1xyXG4gICAgICAgICAgTG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Nb29uc2hvdC5FbmRwb2ludC5TdWJUaXRsZSArXHJcbiAgICAgICAgICBNb29uc2hvdC5FeGFtcGxlRW5kcG9pbnRcclxuICAgICAgICB9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuTW9vbnNob3QuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUubW9vbnNob3RVcmx9XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TW9vbnNob3QuRXhhbXBsZUVuZHBvaW50fVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5tb29uc2hvdFVybCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuTW9vbnNob3QuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk1vb25zaG90LkFwaUtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk1vb25zaG90LkFwaUtleS5UaXRsZX1cclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5tb29uc2hvdEFwaUtleX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk1vb25zaG90LkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5tb29uc2hvdEFwaUtleSA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICA8Lz5cclxuICApO1xyXG5cclxuICBjb25zdCBkZWVwc2Vla0NvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLkRlZXBTZWVrICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkRlZXBTZWVrLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuRGVlcFNlZWsuRW5kcG9pbnQuU3ViVGl0bGUgK1xyXG4gICAgICAgICAgRGVlcFNlZWsuRXhhbXBsZUVuZHBvaW50XHJcbiAgICAgICAgfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkRlZXBTZWVrLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmRlZXBzZWVrVXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0RlZXBTZWVrLkV4YW1wbGVFbmRwb2ludH1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuZGVlcHNlZWtVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkRlZXBTZWVrLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5EZWVwU2Vlay5BcGlLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5EZWVwU2Vlay5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuZGVlcHNlZWtBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5EZWVwU2Vlay5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuZGVlcHNlZWtBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuXHJcbiAgY29uc3QgWEFJQ29uZmlnQ29tcG9uZW50ID0gYWNjZXNzU3RvcmUucHJvdmlkZXIgPT09IFNlcnZpY2VQcm92aWRlci5YQUkgJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuWEFJLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuWEFJLkVuZHBvaW50LlN1YlRpdGxlICsgWEFJLkV4YW1wbGVFbmRwb2ludFxyXG4gICAgICAgIH1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5YQUkuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUueGFpVXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e1hBSS5FeGFtcGxlRW5kcG9pbnR9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLnhhaVVybCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuWEFJLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5YQUkuQXBpS2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuWEFJLkFwaUtleS5UaXRsZX1cclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS54YWlBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5YQUkuQXBpS2V5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLnhhaUFwaUtleSA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICA8Lz5cclxuICApO1xyXG5cclxuICBjb25zdCBjaGF0Z2xtQ29uZmlnQ29tcG9uZW50ID0gYWNjZXNzU3RvcmUucHJvdmlkZXIgPT09XHJcbiAgICBTZXJ2aWNlUHJvdmlkZXIuQ2hhdEdMTSAmJiAoXHJcbiAgICA8PlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5DaGF0R0xNLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQ2hhdEdMTS5FbmRwb2ludC5TdWJUaXRsZSArXHJcbiAgICAgICAgICBDaGF0R0xNLkV4YW1wbGVFbmRwb2ludFxyXG4gICAgICAgIH1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5DaGF0R0xNLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmNoYXRnbG1Vcmx9XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17Q2hhdEdMTS5FeGFtcGxlRW5kcG9pbnR9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmNoYXRnbG1VcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkNoYXRHTE0uQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkNoYXRHTE0uQXBpS2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQ2hhdEdMTS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuY2hhdGdsbUFwaUtleX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkNoYXRHTE0uQXBpS2V5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmNoYXRnbG1BcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuICBjb25zdCBzaWxpY29uZmxvd0NvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLlNpbGljb25GbG93ICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlNpbGljb25GbG93LkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuU2lsaWNvbkZsb3cuRW5kcG9pbnQuU3ViVGl0bGUgK1xyXG4gICAgICAgICAgU2lsaWNvbkZsb3cuRXhhbXBsZUVuZHBvaW50XHJcbiAgICAgICAgfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlNpbGljb25GbG93LkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLnNpbGljb25mbG93VXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e1NpbGljb25GbG93LkV4YW1wbGVFbmRwb2ludH1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3Muc2lsaWNvbmZsb3dVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlNpbGljb25GbG93LkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TaWxpY29uRmxvdy5BcGlLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TaWxpY29uRmxvdy5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuc2lsaWNvbmZsb3dBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TaWxpY29uRmxvdy5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3Muc2lsaWNvbmZsb3dBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuXHJcbiAgY29uc3Qgc3RhYmlsaXR5Q29uZmlnQ29tcG9uZW50ID0gYWNjZXNzU3RvcmUucHJvdmlkZXIgPT09XHJcbiAgICBTZXJ2aWNlUHJvdmlkZXIuU3RhYmlsaXR5ICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlN0YWJpbGl0eS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17XHJcbiAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlN0YWJpbGl0eS5FbmRwb2ludC5TdWJUaXRsZSArXHJcbiAgICAgICAgICBTdGFiaWxpdHkuRXhhbXBsZUVuZHBvaW50XHJcbiAgICAgICAgfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlN0YWJpbGl0eS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5zdGFiaWxpdHlVcmx9XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17U3RhYmlsaXR5LkV4YW1wbGVFbmRwb2ludH1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3Muc3RhYmlsaXR5VXJsID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TdGFiaWxpdHkuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlN0YWJpbGl0eS5BcGlLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TdGFiaWxpdHkuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLnN0YWJpbGl0eUFwaUtleX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlN0YWJpbGl0eS5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3Muc3RhYmlsaXR5QXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgIDwvPlxyXG4gICk7XHJcbiAgY29uc3QgbGZseXRla0NvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLklmbHl0ZWsgJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuSWZseXRlay5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17XHJcbiAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLklmbHl0ZWsuRW5kcG9pbnQuU3ViVGl0bGUgK1xyXG4gICAgICAgICAgSWZseXRlay5FeGFtcGxlRW5kcG9pbnRcclxuICAgICAgICB9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuSWZseXRlay5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5pZmx5dGVrVXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0lmbHl0ZWsuRXhhbXBsZUVuZHBvaW50fVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5pZmx5dGVrVXJsID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5JZmx5dGVrLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5JZmx5dGVrLkFwaUtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLklmbHl0ZWsuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmlmbHl0ZWtBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5JZmx5dGVrLkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5pZmx5dGVrQXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuXHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLklmbHl0ZWsuQXBpU2VjcmV0LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLklmbHl0ZWsuQXBpU2VjcmV0LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuSWZseXRlay5BcGlTZWNyZXQuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuaWZseXRla0FwaVNlY3JldH1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLklmbHl0ZWsuQXBpU2VjcmV0LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmlmbHl0ZWtBcGlTZWNyZXQgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxFcnJvckJvdW5kYXJ5PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIndpbmRvdy1oZWFkZXJcIiBkYXRhLXRhdXJpLWRyYWctcmVnaW9uPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2luZG93LWhlYWRlci10aXRsZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3aW5kb3ctaGVhZGVyLW1haW4tdGl0bGVcIj5cclxuICAgICAgICAgICAge0xvY2FsZS5TZXR0aW5ncy5UaXRsZX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3aW5kb3ctaGVhZGVyLXN1Yi10aXRsZVwiPlxyXG4gICAgICAgICAgICB7TG9jYWxlLlNldHRpbmdzLlN1YlRpdGxlfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3aW5kb3ctYWN0aW9uc1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3aW5kb3ctYWN0aW9uLWJ1dHRvblwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3aW5kb3ctYWN0aW9uLWJ1dHRvblwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3aW5kb3ctYWN0aW9uLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICA8SWNvbkJ1dHRvblxyXG4gICAgICAgICAgICAgIGFyaWE9e0xvY2FsZS5VSS5DbG9zZX1cclxuICAgICAgICAgICAgICBpY29uPXs8Q2xvc2VJY29uIC8+fVxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKFBhdGguSG9tZSl9XHJcbiAgICAgICAgICAgICAgYm9yZGVyZWRcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInNldHRpbmdzXCJdfT5cclxuICAgICAgICA8TGlzdD5cclxuICAgICAgICAgIDxMaXN0SXRlbSB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkF2YXRhcn0+XHJcbiAgICAgICAgICAgIDxQb3BvdmVyXHJcbiAgICAgICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0U2hvd0Vtb2ppUGlja2VyKGZhbHNlKX1cclxuICAgICAgICAgICAgICBjb250ZW50PXtcclxuICAgICAgICAgICAgICAgIDxBdmF0YXJQaWNrZXJcclxuICAgICAgICAgICAgICAgICAgb25FbW9qaUNsaWNrPXsoYXZhdGFyOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVDb25maWcoKGNvbmZpZykgPT4gKGNvbmZpZy5hdmF0YXIgPSBhdmF0YXIpKTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRTaG93RW1vamlQaWNrZXIoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgb3Blbj17c2hvd0Vtb2ppUGlja2VyfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkF2YXRhcn1cclxuICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMuYXZhdGFyfVxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBzZXRTaG93RW1vamlQaWNrZXIoIXNob3dFbW9qaVBpY2tlcik7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxBdmF0YXIgYXZhdGFyPXtjb25maWcuYXZhdGFyfSAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG5cclxuICAgICAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlVwZGF0ZS5WZXJzaW9uKGN1cnJlbnRWZXJzaW9uID8/IFwidW5rbm93blwiKX1cclxuICAgICAgICAgICAgc3ViVGl0bGU9e1xyXG4gICAgICAgICAgICAgIGNoZWNraW5nVXBkYXRlXHJcbiAgICAgICAgICAgICAgICA/IExvY2FsZS5TZXR0aW5ncy5VcGRhdGUuSXNDaGVja2luZ1xyXG4gICAgICAgICAgICAgICAgOiBoYXNOZXdWZXJzaW9uXHJcbiAgICAgICAgICAgICAgICA/IExvY2FsZS5TZXR0aW5ncy5VcGRhdGUuRm91bmRVcGRhdGUocmVtb3RlSWQgPz8gXCJFUlJPUlwiKVxyXG4gICAgICAgICAgICAgICAgOiBMb2NhbGUuU2V0dGluZ3MuVXBkYXRlLklzTGF0ZXN0XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge2NoZWNraW5nVXBkYXRlID8gKFxyXG4gICAgICAgICAgICAgIDxMb2FkaW5nSWNvbiAvPlxyXG4gICAgICAgICAgICApIDogaGFzTmV3VmVyc2lvbiA/IChcclxuICAgICAgICAgICAgICBjbGllbnRDb25maWc/LmlzQXBwID8gKFxyXG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgICAgICAgaWNvbj17PFJlc2V0SWNvbj48L1Jlc2V0SWNvbj59XHJcbiAgICAgICAgICAgICAgICAgIHRleHQ9e0xvY2FsZS5TZXR0aW5ncy5VcGRhdGUuR29Ub1VwZGF0ZX1cclxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gY2xpZW50VXBkYXRlKCl9XHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICA8TGluayBocmVmPXt1cGRhdGVVcmx9IHRhcmdldD1cIl9ibGFua1wiIGNsYXNzTmFtZT1cImxpbmtcIj5cclxuICAgICAgICAgICAgICAgICAge0xvY2FsZS5TZXR0aW5ncy5VcGRhdGUuR29Ub1VwZGF0ZX1cclxuICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgICAgIGljb249ezxSZXNldEljb24+PC9SZXNldEljb24+fVxyXG4gICAgICAgICAgICAgICAgdGV4dD17TG9jYWxlLlNldHRpbmdzLlVwZGF0ZS5DaGVja1VwZGF0ZX1cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGNoZWNrVXBkYXRlKHRydWUpfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG5cclxuICAgICAgICAgIDxMaXN0SXRlbSB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlNlbmRLZXl9PlxyXG4gICAgICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLlNlbmRLZXl9XHJcbiAgICAgICAgICAgICAgdmFsdWU9e2NvbmZpZy5zdWJtaXRLZXl9XHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVDb25maWcoXHJcbiAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy5zdWJtaXRLZXkgPSBlLnRhcmdldC52YWx1ZSBhcyBhbnkgYXMgU3VibWl0S2V5KSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtPYmplY3QudmFsdWVzKFN1Ym1pdEtleSkubWFwKCh2KSA9PiAoXHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPXt2fSBrZXk9e3Z9PlxyXG4gICAgICAgICAgICAgICAgICB7dn1cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICA8L1NlbGVjdD5cclxuICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcblxyXG4gICAgICAgICAgPExpc3RJdGVtIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuVGhlbWV9PlxyXG4gICAgICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLlRoZW1lfVxyXG4gICAgICAgICAgICAgIHZhbHVlPXtjb25maWcudGhlbWV9XHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVDb25maWcoXHJcbiAgICAgICAgICAgICAgICAgIChjb25maWcpID0+IChjb25maWcudGhlbWUgPSBlLnRhcmdldC52YWx1ZSBhcyBhbnkgYXMgVGhlbWUpLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge09iamVjdC52YWx1ZXMoVGhlbWUpLm1hcCgodikgPT4gKFxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT17dn0ga2V5PXt2fT5cclxuICAgICAgICAgICAgICAgICAge3Z9XHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgPC9TZWxlY3Q+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG5cclxuICAgICAgICAgIDxMaXN0SXRlbSB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkxhbmcuTmFtZX0+XHJcbiAgICAgICAgICAgIDxTZWxlY3RcclxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuTGFuZy5OYW1lfVxyXG4gICAgICAgICAgICAgIHZhbHVlPXtnZXRMYW5nKCl9XHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjaGFuZ2VMYW5nKGUudGFyZ2V0LnZhbHVlIGFzIGFueSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtBbGxMYW5ncy5tYXAoKGxhbmcpID0+IChcclxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9e2xhbmd9IGtleT17bGFuZ30+XHJcbiAgICAgICAgICAgICAgICAgIHtBTExfTEFOR19PUFRJT05TW2xhbmddfVxyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgIDwvU2VsZWN0PlxyXG4gICAgICAgICAgPC9MaXN0SXRlbT5cclxuXHJcbiAgICAgICAgICA8TGlzdEl0ZW1cclxuICAgICAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5Gb250U2l6ZS5UaXRsZX1cclxuICAgICAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5Gb250U2l6ZS5TdWJUaXRsZX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPElucHV0UmFuZ2VcclxuICAgICAgICAgICAgICBhcmlhPXtMb2NhbGUuU2V0dGluZ3MuRm9udFNpemUuVGl0bGV9XHJcbiAgICAgICAgICAgICAgdGl0bGU9e2Ake2NvbmZpZy5mb250U2l6ZSA/PyAxNH1weGB9XHJcbiAgICAgICAgICAgICAgdmFsdWU9e2NvbmZpZy5mb250U2l6ZX1cclxuICAgICAgICAgICAgICBtaW49XCIxMlwiXHJcbiAgICAgICAgICAgICAgbWF4PVwiNDBcIlxyXG4gICAgICAgICAgICAgIHN0ZXA9XCIxXCJcclxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVDb25maWcoXHJcbiAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy5mb250U2l6ZSA9IE51bWJlci5wYXJzZUludChlLmN1cnJlbnRUYXJnZXQudmFsdWUpKSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgID48L0lucHV0UmFuZ2U+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG5cclxuICAgICAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkZvbnRGYW1pbHkuVGl0bGV9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuRm9udEZhbWlseS5TdWJUaXRsZX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkZvbnRGYW1pbHkuVGl0bGV9XHJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgIHZhbHVlPXtjb25maWcuZm9udEZhbWlseX1cclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkZvbnRGYW1pbHkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICAgICAgdXBkYXRlQ29uZmlnKFxyXG4gICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PiAoY29uZmlnLmZvbnRGYW1pbHkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG5cclxuICAgICAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkF1dG9HZW5lcmF0ZVRpdGxlLlRpdGxlfVxyXG4gICAgICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkF1dG9HZW5lcmF0ZVRpdGxlLlN1YlRpdGxlfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQXV0b0dlbmVyYXRlVGl0bGUuVGl0bGV9XHJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICBjaGVja2VkPXtjb25maWcuZW5hYmxlQXV0b0dlbmVyYXRlVGl0bGV9XHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICAgICAgdXBkYXRlQ29uZmlnKFxyXG4gICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIChjb25maWcuZW5hYmxlQXV0b0dlbmVyYXRlVGl0bGUgPSBlLmN1cnJlbnRUYXJnZXQuY2hlY2tlZCksXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcblxyXG4gICAgICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU2VuZFByZXZpZXdCdWJibGUuVGl0bGV9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU2VuZFByZXZpZXdCdWJibGUuU3ViVGl0bGV9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5TZW5kUHJldmlld0J1YmJsZS5UaXRsZX1cclxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgIGNoZWNrZWQ9e2NvbmZpZy5zZW5kUHJldmlld0J1YmJsZX1cclxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVDb25maWcoXHJcbiAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy5zZW5kUHJldmlld0J1YmJsZSA9IGUuY3VycmVudFRhcmdldC5jaGVja2VkKSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgID48L2lucHV0PlxyXG4gICAgICAgICAgPC9MaXN0SXRlbT5cclxuXHJcbiAgICAgICAgICA8TGlzdEl0ZW1cclxuICAgICAgICAgICAgdGl0bGU9e0xvY2FsZS5NYXNrLkNvbmZpZy5BcnRpZmFjdHMuVGl0bGV9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuTWFzay5Db25maWcuQXJ0aWZhY3RzLlN1YlRpdGxlfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuTWFzay5Db25maWcuQXJ0aWZhY3RzLlRpdGxlfVxyXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgY2hlY2tlZD17Y29uZmlnLmVuYWJsZUFydGlmYWN0c31cclxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVDb25maWcoXHJcbiAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy5lbmFibGVBcnRpZmFjdHMgPSBlLmN1cnJlbnRUYXJnZXQuY2hlY2tlZCksXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgICAgICA8TGlzdEl0ZW1cclxuICAgICAgICAgICAgdGl0bGU9e0xvY2FsZS5NYXNrLkNvbmZpZy5Db2RlRm9sZC5UaXRsZX1cclxuICAgICAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5NYXNrLkNvbmZpZy5Db2RlRm9sZC5TdWJUaXRsZX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLk1hc2suQ29uZmlnLkNvZGVGb2xkLlRpdGxlfVxyXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgY2hlY2tlZD17Y29uZmlnLmVuYWJsZUNvZGVGb2xkfVxyXG4gICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiZW5hYmxlLWNvZGUtZm9sZC1jaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICAgICAgdXBkYXRlQ29uZmlnKFxyXG4gICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PiAoY29uZmlnLmVuYWJsZUNvZGVGb2xkID0gZS5jdXJyZW50VGFyZ2V0LmNoZWNrZWQpLFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICAgIDwvTGlzdD5cclxuXHJcbiAgICAgICAgPFN5bmNJdGVtcyAvPlxyXG5cclxuICAgICAgICA8TGlzdD5cclxuICAgICAgICAgIDxNb2RlbENvbmZpZ0xpc3RcclxuICAgICAgICAgICAgbW9kZWxDb25maWc9e2NvbmZpZy5tb2RlbENvbmZpZ31cclxuICAgICAgICAgICAgdXBkYXRlQ29uZmlnPXsodXBkYXRlcikgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG1vZGVsQ29uZmlnID0geyAuLi5jb25maWcubW9kZWxDb25maWcgfTtcclxuICAgICAgICAgICAgICB1cGRhdGVyKG1vZGVsQ29uZmlnKTtcclxuICAgICAgICAgICAgICBjb25maWcudXBkYXRlKChjb25maWcpID0+IChjb25maWcubW9kZWxDb25maWcgPSBtb2RlbENvbmZpZykpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L0xpc3Q+XHJcblxyXG4gICAgICAgIDxMaXN0PlxyXG4gICAgICAgICAgPFRUU0NvbmZpZ0xpc3RcclxuICAgICAgICAgICAgdHRzQ29uZmlnPXtjb25maWcudHRzQ29uZmlnfVxyXG4gICAgICAgICAgICB1cGRhdGVDb25maWc9eyh1cGRhdGVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgdHRzQ29uZmlnID0geyAuLi5jb25maWcudHRzQ29uZmlnIH07XHJcbiAgICAgICAgICAgICAgdXBkYXRlcih0dHNDb25maWcpO1xyXG4gICAgICAgICAgICAgIGNvbmZpZy51cGRhdGUoKGNvbmZpZykgPT4gKGNvbmZpZy50dHNDb25maWcgPSB0dHNDb25maWcpKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9MaXN0PlxyXG5cclxuICAgICAgICA8RGFuZ2VySXRlbXMgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L0Vycm9yQm91bmRhcnk+XHJcbiAgKTtcclxufVxyXG4iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwic3R5bGVzIiwiUmVzZXRJY29uIiwiQWRkSWNvbiIsIkNsb3NlSWNvbiIsIkNvcHlJY29uIiwiQ2xlYXJJY29uIiwiTG9hZGluZ0ljb24iLCJFZGl0SWNvbiIsIkZpcmVJY29uIiwiRXllSWNvbiIsIkRvd25sb2FkSWNvbiIsIlVwbG9hZEljb24iLCJDb25maXJtSWNvbiIsIkNvbm5lY3Rpb25JY29uIiwiQ2xvdWRTdWNjZXNzSWNvbiIsIkNsb3VkRmFpbEljb24iLCJ0cmFja1NldHRpbmdzUGFnZUd1aWRlVG9DUGF5bWVudENsaWNrIiwiSW5wdXQiLCJMaXN0IiwiTGlzdEl0ZW0iLCJNb2RhbCIsIlBhc3N3b3JkSW5wdXQiLCJQb3BvdmVyIiwiU2VsZWN0Iiwic2hvd0NvbmZpcm0iLCJNb2RlbENvbmZpZ0xpc3QiLCJJY29uQnV0dG9uIiwiU3VibWl0S2V5IiwidXNlQ2hhdFN0b3JlIiwiVGhlbWUiLCJ1c2VVcGRhdGVTdG9yZSIsInVzZUFjY2Vzc1N0b3JlIiwidXNlQXBwQ29uZmlnIiwiTG9jYWxlIiwiQWxsTGFuZ3MiLCJBTExfTEFOR19PUFRJT05TIiwiY2hhbmdlTGFuZyIsImdldExhbmciLCJjb3B5VG9DbGlwYm9hcmQiLCJjbGllbnRVcGRhdGUiLCJzZW12ZXJDb21wYXJlIiwiTGluayIsIkFudGhyb3BpYyIsIkF6dXJlIiwiQmFpZHUiLCJUZW5jZW50IiwiQnl0ZURhbmNlIiwiQWxpYmFiYSIsIk1vb25zaG90IiwiWEFJIiwiR29vZ2xlIiwiR29vZ2xlU2FmZXR5U2V0dGluZ3NUaHJlc2hvbGQiLCJPUEVOQUlfQkFTRV9VUkwiLCJQYXRoIiwiUkVMRUFTRV9VUkwiLCJTVE9SQUdFX0tFWSIsIlNlcnZpY2VQcm92aWRlciIsIlVQREFURV9VUkwiLCJTdGFiaWxpdHkiLCJJZmx5dGVrIiwiU0FBU19DSEFUX1VSTCIsIkNoYXRHTE0iLCJEZWVwU2VlayIsIlNpbGljb25GbG93IiwiU2VhcmNoU2VydmljZSIsInVzZVByb21wdFN0b3JlIiwiRXJyb3JCb3VuZGFyeSIsIklucHV0UmFuZ2UiLCJ1c2VOYXZpZ2F0ZSIsIkF2YXRhciIsIkF2YXRhclBpY2tlciIsImdldENsaWVudENvbmZpZyIsInVzZVN5bmNTdG9yZSIsIm5hbm9pZCIsInVzZU1hc2tTdG9yZSIsIlByb3ZpZGVyVHlwZSIsIlRUU0NvbmZpZ0xpc3QiLCJFZGl0UHJvbXB0TW9kYWwiLCJwcm9wcyIsInByb21wdFN0b3JlIiwicHJvbXB0IiwiZ2V0IiwiaWQiLCJkaXYiLCJjbGFzc05hbWUiLCJ0aXRsZSIsIlNldHRpbmdzIiwiUHJvbXB0IiwiRWRpdE1vZGFsIiwiVGl0bGUiLCJvbkNsb3NlIiwiYWN0aW9ucyIsIm9uQ2xpY2siLCJ0ZXh0IiwiVUkiLCJDb25maXJtIiwiYm9yZGVyZWQiLCJpbnB1dCIsInR5cGUiLCJ2YWx1ZSIsInJlYWRPbmx5IiwiaXNVc2VyIiwib25JbnB1dCIsImUiLCJ1cGRhdGVQcm9tcHQiLCJjdXJyZW50VGFyZ2V0IiwiY29udGVudCIsInJvd3MiLCJVc2VyUHJvbXB0TW9kYWwiLCJ1c2VyUHJvbXB0cyIsImdldFVzZXJQcm9tcHRzIiwiYnVpbHRpblByb21wdHMiLCJhbGxQcm9tcHRzIiwiY29uY2F0Iiwic2VhcmNoSW5wdXQiLCJzZXRTZWFyY2hJbnB1dCIsInNlYXJjaFByb21wdHMiLCJzZXRTZWFyY2hQcm9tcHRzIiwicHJvbXB0cyIsImxlbmd0aCIsImVkaXRpbmdQcm9tcHRJZCIsInNldEVkaXRpbmdQcm9tcHRJZCIsInNlYXJjaFJlc3VsdCIsInNlYXJjaCIsInByb21wdElkIiwiYWRkIiwiY3JlYXRlZEF0IiwiRGF0ZSIsIm5vdyIsImljb24iLCJBZGQiLCJwbGFjZWhvbGRlciIsIlNlYXJjaCIsIm1hcCIsInYiLCJfIiwicmVtb3ZlIiwidW5kZWZpbmVkIiwiRGFuZ2VySXRlbXMiLCJjaGF0U3RvcmUiLCJhcHBDb25maWciLCJEYW5nZXIiLCJSZXNldCIsInN1YlRpdGxlIiwiU3ViVGl0bGUiLCJhcmlhIiwiQWN0aW9uIiwicmVzZXQiLCJDbGVhciIsImNsZWFyQWxsRGF0YSIsIkNoZWNrQnV0dG9uIiwic3luY1N0b3JlIiwiY291bGRDaGVjayIsImNsb3VkU3luYyIsImNoZWNrU3RhdGUiLCJzZXRDaGVja1N0YXRlIiwiY2hlY2siLCJ2YWxpZCIsIlN5bmMiLCJDb25maWciLCJDaGVjayIsIlN5bmNDb25maWdNb2RhbCIsIlN5bmNUeXBlIiwic2VsZWN0IiwicHJvdmlkZXIiLCJvbkNoYW5nZSIsInVwZGF0ZSIsImNvbmZpZyIsInRhcmdldCIsIk9iamVjdCIsImVudHJpZXMiLCJrIiwib3B0aW9uIiwiUHJveHkiLCJjaGVja2VkIiwidXNlUHJveHkiLCJQcm94eVVybCIsInByb3h5VXJsIiwiV2ViREFWIiwiV2ViRGF2IiwiRW5kcG9pbnQiLCJ3ZWJkYXYiLCJlbmRwb2ludCIsIlVzZXJOYW1lIiwidXNlcm5hbWUiLCJQYXNzd29yZCIsInBhc3N3b3JkIiwiVXBTdGFzaCIsInVwc3Rhc2giLCJhcGlLZXkiLCJTeW5jSXRlbXMiLCJtYXNrU3RvcmUiLCJjb3VsZFN5bmMiLCJzaG93U3luY0NvbmZpZ01vZGFsIiwic2V0U2hvd1N5bmNDb25maWdNb2RhbCIsInN0YXRlT3ZlcnZpZXciLCJzZXNzaW9ucyIsIm1lc3NhZ2VDb3VudCIsInJlZHVjZSIsInAiLCJjIiwibWVzc2FnZXMiLCJjaGF0IiwibWVzc2FnZSIsImtleXMiLCJtYXNrIiwibWFza3MiLCJMb2NhbFN0YXRlIiwiT3ZlcnZpZXciLCJzdHlsZSIsImRpc3BsYXkiLCJFeHBvcnQiLCJleHBvcnQiLCJJbXBvcnQiLCJpbXBvcnQiLCJuYXZpZ2F0ZSIsInNob3dFbW9qaVBpY2tlciIsInNldFNob3dFbW9qaVBpY2tlciIsInVwZGF0ZUNvbmZpZyIsInVwZGF0ZVN0b3JlIiwiY2hlY2tpbmdVcGRhdGUiLCJzZXRDaGVja2luZ1VwZGF0ZSIsImN1cnJlbnRWZXJzaW9uIiwiZm9ybWF0VmVyc2lvbiIsInZlcnNpb24iLCJyZW1vdGVJZCIsInJlbW90ZVZlcnNpb24iLCJoYXNOZXdWZXJzaW9uIiwidXBkYXRlVXJsIiwiaXNBcHAiLCJjaGVja1VwZGF0ZSIsImZvcmNlIiwiZ2V0TGF0ZXN0VmVyc2lvbiIsInRoZW4iLCJjb25zb2xlIiwibG9nIiwiYWNjZXNzU3RvcmUiLCJzaG91bGRIaWRlQmFsYW5jZVF1ZXJ5IiwiaXNPcGVuQWlVcmwiLCJvcGVuYWlVcmwiLCJpbmNsdWRlcyIsImhpZGVCYWxhbmNlUXVlcnkiLCJ1c2FnZSIsInVzZWQiLCJzdWJzY3JpcHRpb24iLCJsb2FkaW5nVXNhZ2UiLCJzZXRMb2FkaW5nVXNhZ2UiLCJjaGVja1VzYWdlIiwidXBkYXRlVXNhZ2UiLCJmaW5hbGx5IiwiZW5hYmxlZEFjY2Vzc0NvbnRyb2wiLCJidWlsdGluQ291bnQiLCJjb3VudCIsImJ1aWx0aW4iLCJjdXN0b21Db3VudCIsInNob3VsZFNob3dQcm9tcHRNb2RhbCIsInNldFNob3dQcm9tcHRNb2RhbCIsInNob3dVc2FnZSIsImlzQXV0aG9yaXplZCIsImtleWRvd25FdmVudCIsImtleSIsIkhvbWUiLCJjbGllbnRDb25maWciLCJzdGF0ZSIsInVzZUN1c3RvbUNvbmZpZyIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJzaG93QWNjZXNzQ29kZSIsImFjY2Vzc0NvZGVDb21wb25lbnQiLCJBY2Nlc3MiLCJBY2Nlc3NDb2RlIiwiYWNjZXNzQ29kZSIsIlBsYWNlaG9sZGVyIiwiYWNjZXNzIiwic2Fhc1N0YXJ0Q29tcG9uZW50IiwiU2Fhc1N0YXJ0IiwiTGFiZWwiLCJDaGF0Tm93Iiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwidXNlQ3VzdG9tQ29uZmlnQ29tcG9uZW50IiwiQ3VzdG9tRW5kcG9pbnQiLCJhcmlhLWxhYmVsIiwib3BlbkFJQ29uZmlnQ29tcG9uZW50IiwiT3BlbkFJIiwiQXBpS2V5IiwiU2hvd1Bhc3N3b3JkIiwib3BlbmFpQXBpS2V5IiwiYXp1cmVDb25maWdDb21wb25lbnQiLCJFeGFtcGxlRW5kcG9pbnQiLCJhenVyZVVybCIsImF6dXJlQXBpS2V5IiwiQXBpVmVyaW9uIiwiYXp1cmVBcGlWZXJzaW9uIiwiZ29vZ2xlQ29uZmlnQ29tcG9uZW50IiwiZ29vZ2xlVXJsIiwiZ29vZ2xlQXBpS2V5IiwiQXBpVmVyc2lvbiIsImdvb2dsZUFwaVZlcnNpb24iLCJHb29nbGVTYWZldHlTZXR0aW5ncyIsImdvb2dsZVNhZmV0eVNldHRpbmdzIiwiYW50aHJvcGljQ29uZmlnQ29tcG9uZW50IiwiYW50aHJvcGljVXJsIiwiYW50aHJvcGljQXBpS2V5IiwiYW50aHJvcGljQXBpVmVyc2lvbiIsIlZpc2lvbiIsImJhaWR1Q29uZmlnQ29tcG9uZW50IiwiYmFpZHVVcmwiLCJiYWlkdUFwaUtleSIsIlNlY3JldEtleSIsImJhaWR1U2VjcmV0S2V5IiwidGVuY2VudENvbmZpZ0NvbXBvbmVudCIsInRlbmNlbnRVcmwiLCJ0ZW5jZW50U2VjcmV0SWQiLCJ0ZW5jZW50U2VjcmV0S2V5IiwiYnl0ZURhbmNlQ29uZmlnQ29tcG9uZW50IiwiYnl0ZWRhbmNlVXJsIiwiYnl0ZWRhbmNlQXBpS2V5IiwiYWxpYmFiYUNvbmZpZ0NvbXBvbmVudCIsImFsaWJhYmFVcmwiLCJhbGliYWJhQXBpS2V5IiwibW9vbnNob3RDb25maWdDb21wb25lbnQiLCJtb29uc2hvdFVybCIsIm1vb25zaG90QXBpS2V5IiwiZGVlcHNlZWtDb25maWdDb21wb25lbnQiLCJkZWVwc2Vla1VybCIsImRlZXBzZWVrQXBpS2V5IiwiWEFJQ29uZmlnQ29tcG9uZW50IiwieGFpVXJsIiwieGFpQXBpS2V5IiwiY2hhdGdsbUNvbmZpZ0NvbXBvbmVudCIsImNoYXRnbG1VcmwiLCJjaGF0Z2xtQXBpS2V5Iiwic2lsaWNvbmZsb3dDb25maWdDb21wb25lbnQiLCJzaWxpY29uZmxvd1VybCIsInNpbGljb25mbG93QXBpS2V5Iiwic3RhYmlsaXR5Q29uZmlnQ29tcG9uZW50Iiwic3RhYmlsaXR5VXJsIiwic3RhYmlsaXR5QXBpS2V5IiwibGZseXRla0NvbmZpZ0NvbXBvbmVudCIsImlmbHl0ZWtVcmwiLCJpZmx5dGVrQXBpS2V5IiwiQXBpU2VjcmV0IiwiaWZseXRla0FwaVNlY3JldCIsImRhdGEtdGF1cmktZHJhZy1yZWdpb24iLCJDbG9zZSIsIm9uRW1vamlDbGljayIsImF2YXRhciIsIm9wZW4iLCJ0YWJJbmRleCIsIlVwZGF0ZSIsIlZlcnNpb24iLCJJc0NoZWNraW5nIiwiRm91bmRVcGRhdGUiLCJJc0xhdGVzdCIsIkdvVG9VcGRhdGUiLCJDaGVja1VwZGF0ZSIsIlNlbmRLZXkiLCJzdWJtaXRLZXkiLCJ2YWx1ZXMiLCJ0aGVtZSIsIkxhbmciLCJOYW1lIiwibGFuZyIsIkZvbnRTaXplIiwiZm9udFNpemUiLCJtaW4iLCJtYXgiLCJzdGVwIiwiTnVtYmVyIiwicGFyc2VJbnQiLCJGb250RmFtaWx5IiwiZm9udEZhbWlseSIsIkF1dG9HZW5lcmF0ZVRpdGxlIiwiZW5hYmxlQXV0b0dlbmVyYXRlVGl0bGUiLCJTZW5kUHJldmlld0J1YmJsZSIsInNlbmRQcmV2aWV3QnViYmxlIiwiTWFzayIsIkFydGlmYWN0cyIsImVuYWJsZUFydGlmYWN0cyIsIkNvZGVGb2xkIiwiZW5hYmxlQ29kZUZvbGQiLCJkYXRhLXRlc3RpZCIsIm1vZGVsQ29uZmlnIiwidXBkYXRlciIsInR0c0NvbmZpZyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/components/settings.tsx\n"));
/***/ })
});