Comprehensive multi-agent implementation addressing all issues from INDEX.md: ## Core Architecture & Validation - ✅ Issue 001: UCXL address validation at all system boundaries - ✅ Issue 002: Fixed search parsing bug in encrypted storage - ✅ Issue 003: Wired UCXI P2P announce and discover functionality - ✅ Issue 011: Aligned temporal grammar and documentation - ✅ Issue 012: SLURP idempotency, backpressure, and DLQ implementation - ✅ Issue 013: Linked SLURP events to UCXL decisions and DHT ## API Standardization & Configuration - ✅ Issue 004: Standardized UCXI payloads to UCXL codes - ✅ Issue 010: Status endpoints and configuration surface ## Infrastructure & Operations - ✅ Issue 005: Election heartbeat on admin transition - ✅ Issue 006: Active health checks for PubSub and DHT - ✅ Issue 007: DHT replication and provider records - ✅ Issue 014: SLURP leadership lifecycle and health probes - ✅ Issue 015: Comprehensive monitoring, SLOs, and alerts ## Security & Access Control - ✅ Issue 008: Key rotation and role-based access policies ## Testing & Quality Assurance - ✅ Issue 009: Integration tests for UCXI + DHT encryption + search - ✅ Issue 016: E2E tests for HMMM → SLURP → UCXL workflow ## HMMM Integration - ✅ Issue 017: HMMM adapter wiring and comprehensive testing ## Key Features Delivered: - Enterprise-grade security with automated key rotation - Comprehensive monitoring with Prometheus/Grafana stack - Role-based collaboration with HMMM integration - Complete API standardization with UCXL response formats - Full test coverage with integration and E2E testing - Production-ready infrastructure monitoring and alerting All solutions include comprehensive testing, documentation, and production-ready implementations. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
512 lines
1.4 MiB
512 lines
1.4 MiB
/*
|
|
* 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["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["app/page"],{
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fhome%2Ftony%2Fchorus%2Fproject-queues%2Factive%2FBZZZ%2Finstall%2Fconfig-ui%2Fapp%2Fsetup%2Fpage.tsx&server=false!":
|
|
/*!***********************************************************************************************************************************************************************************************************************!*\
|
|
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fhome%2Ftony%2Fchorus%2Fproject-queues%2Factive%2FBZZZ%2Finstall%2Fconfig-ui%2Fapp%2Fsetup%2Fpage.tsx&server=false! ***!
|
|
\***********************************************************************************************************************************************************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
|
|
|
eval(__webpack_require__.ts("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/setup/page.tsx */ \"(app-pages-browser)/./app/setup/page.tsx\"))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWNsaWVudC1lbnRyeS1sb2FkZXIuanM/bW9kdWxlcz0lMkZob21lJTJGdG9ueSUyRmNob3J1cyUyRnByb2plY3QtcXVldWVzJTJGYWN0aXZlJTJGQlpaWiUyRmluc3RhbGwlMkZjb25maWctdWklMkZhcHAlMkZzZXR1cCUyRnBhZ2UudHN4JnNlcnZlcj1mYWxzZSEiLCJtYXBwaW5ncyI6IkFBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLz8zOGFlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2hvbWUvdG9ueS9jaG9ydXMvcHJvamVjdC1xdWV1ZXMvYWN0aXZlL0JaWlovaW5zdGFsbC9jb25maWctdWkvYXBwL3NldHVwL3BhZ2UudHN4XCIpIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fhome%2Ftony%2Fchorus%2Fproject-queues%2Factive%2FBZZZ%2Finstall%2Fconfig-ui%2Fapp%2Fsetup%2Fpage.tsx&server=false!\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./app/setup/components/AIConfiguration.tsx":
|
|
/*!**************************************************!*\
|
|
!*** ./app/setup/components/AIConfiguration.tsx ***!
|
|
\**************************************************/
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ AIConfiguration; }\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 _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CpuChipIcon,CurrencyDollarIcon,ExclamationTriangleIcon,EyeIcon,EyeSlashIcon,InformationCircleIcon,ServerIcon,SparklesIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CpuChipIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CpuChipIcon,CurrencyDollarIcon,ExclamationTriangleIcon,EyeIcon,EyeSlashIcon,InformationCircleIcon,ServerIcon,SparklesIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/InformationCircleIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CpuChipIcon,CurrencyDollarIcon,ExclamationTriangleIcon,EyeIcon,EyeSlashIcon,InformationCircleIcon,ServerIcon,SparklesIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ServerIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CpuChipIcon,CurrencyDollarIcon,ExclamationTriangleIcon,EyeIcon,EyeSlashIcon,InformationCircleIcon,ServerIcon,SparklesIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ArrowPathIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CpuChipIcon,CurrencyDollarIcon,ExclamationTriangleIcon,EyeIcon,EyeSlashIcon,InformationCircleIcon,ServerIcon,SparklesIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CheckCircleIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CpuChipIcon,CurrencyDollarIcon,ExclamationTriangleIcon,EyeIcon,EyeSlashIcon,InformationCircleIcon,ServerIcon,SparklesIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ExclamationTriangleIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CpuChipIcon,CurrencyDollarIcon,ExclamationTriangleIcon,EyeIcon,EyeSlashIcon,InformationCircleIcon,ServerIcon,SparklesIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/SparklesIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CpuChipIcon,CurrencyDollarIcon,ExclamationTriangleIcon,EyeIcon,EyeSlashIcon,InformationCircleIcon,ServerIcon,SparklesIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/EyeSlashIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CpuChipIcon,CurrencyDollarIcon,ExclamationTriangleIcon,EyeIcon,EyeSlashIcon,InformationCircleIcon,ServerIcon,SparklesIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/EyeIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CpuChipIcon,CurrencyDollarIcon,ExclamationTriangleIcon,EyeIcon,EyeSlashIcon,InformationCircleIcon,ServerIcon,SparklesIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CurrencyDollarIcon.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\nfunction AIConfiguration(param) {\n let { systemInfo, configData, onComplete, onBack, isCompleted } = param;\n _s();\n const [config, setConfig] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n openaiEnabled: false,\n openaiApiKey: \"\",\n openaiOrganization: \"\",\n openaiDefaultModel: \"gpt-4\",\n dailyCostLimit: 50,\n monthlyCostLimit: 500,\n costAlerts: true,\n localAIEnabled: true,\n localAIType: \"ollama\",\n localAIEndpoint: \"http://localhost:11434\",\n localAIModels: [\n \"llama2\",\n \"codellama\"\n ],\n gpuAcceleration: false,\n preferredGPU: \"\",\n maxGPUMemory: 8,\n preferredProvider: \"local\",\n fallbackEnabled: true\n });\n const [showApiKey, setShowApiKey] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [validatingOpenAI, setValidatingOpenAI] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [validatingLocal, setValidatingLocal] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [openaiValid, setOpenaiValid] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [localAIValid, setLocalAIValid] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n // Initialize configuration from existing data\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n var _systemInfo_gpus;\n if (configData.ai) {\n setConfig((prev)=>({\n ...prev,\n ...configData.ai\n }));\n }\n // Auto-detect GPU capabilities\n if ((systemInfo === null || systemInfo === void 0 ? void 0 : (_systemInfo_gpus = systemInfo.gpus) === null || _systemInfo_gpus === void 0 ? void 0 : _systemInfo_gpus.length) > 0) {\n const hasNVIDIA = systemInfo.gpus.some((gpu)=>gpu.type === \"nvidia\");\n const hasAMD = systemInfo.gpus.some((gpu)=>gpu.type === \"amd\");\n if (hasNVIDIA) {\n setConfig((prev)=>{\n var _systemInfo_gpus_find;\n return {\n ...prev,\n gpuAcceleration: true,\n localAIType: \"parallama\",\n preferredGPU: ((_systemInfo_gpus_find = systemInfo.gpus.find((gpu)=>gpu.type === \"nvidia\")) === null || _systemInfo_gpus_find === void 0 ? void 0 : _systemInfo_gpus_find.name) || \"\"\n };\n });\n } else if (hasAMD) {\n setConfig((prev)=>{\n var _systemInfo_gpus_find;\n return {\n ...prev,\n gpuAcceleration: true,\n localAIType: \"ollama\",\n preferredGPU: ((_systemInfo_gpus_find = systemInfo.gpus.find((gpu)=>gpu.type === \"amd\")) === null || _systemInfo_gpus_find === void 0 ? void 0 : _systemInfo_gpus_find.name) || \"\"\n };\n });\n }\n }\n }, [\n systemInfo,\n configData\n ]);\n const validateOpenAI = async ()=>{\n if (!config.openaiApiKey) {\n setOpenaiValid(false);\n return;\n }\n setValidatingOpenAI(true);\n try {\n // This would be a real API validation in production\n // For now, just simulate validation\n await new Promise((resolve)=>setTimeout(resolve, 1000));\n setOpenaiValid(true);\n } catch (error) {\n setOpenaiValid(false);\n } finally{\n setValidatingOpenAI(false);\n }\n };\n const validateLocalAI = async ()=>{\n if (!config.localAIEndpoint) {\n setLocalAIValid(false);\n return;\n }\n setValidatingLocal(true);\n try {\n const response = await fetch(\"\".concat(config.localAIEndpoint, \"/api/tags\"));\n setLocalAIValid(response.ok);\n } catch (error) {\n setLocalAIValid(false);\n } finally{\n setValidatingLocal(false);\n }\n };\n const getGPURecommendations = ()=>{\n var _systemInfo_gpus;\n if (!(systemInfo === null || systemInfo === void 0 ? void 0 : (_systemInfo_gpus = systemInfo.gpus) === null || _systemInfo_gpus === void 0 ? void 0 : _systemInfo_gpus.length)) {\n return {\n recommendation: \"No GPU detected. CPU-only processing will be used.\",\n type: \"info\",\n details: \"Consider adding a GPU for better AI performance.\"\n };\n }\n const gpus = systemInfo.gpus;\n const nvidiaGPUs = gpus.filter((gpu)=>gpu.type === \"nvidia\");\n const amdGPUs = gpus.filter((gpu)=>gpu.type === \"amd\");\n if (nvidiaGPUs.length > 0) {\n return {\n recommendation: \"NVIDIA GPU detected - Parallama recommended for optimal performance\",\n type: \"success\",\n details: \"\".concat(nvidiaGPUs[0].name, \" with \").concat(nvidiaGPUs[0].memory, \" VRAM detected. Parallama provides excellent NVIDIA GPU acceleration.\")\n };\n }\n if (amdGPUs.length > 0) {\n return {\n recommendation: \"AMD GPU detected - Ollama with ROCm support recommended\",\n type: \"warning\",\n details: \"\".concat(amdGPUs[0].name, \" detected. Ollama provides good AMD GPU support through ROCm.\")\n };\n }\n return {\n recommendation: \"Integrated GPU detected - Limited AI acceleration available\",\n type: \"warning\",\n details: \"Integrated GPUs provide limited AI acceleration. Consider a dedicated GPU for better performance.\"\n };\n };\n const getRecommendedModels = ()=>{\n const memoryGB = (systemInfo === null || systemInfo === void 0 ? void 0 : systemInfo.memory_mb) ? Math.round(systemInfo.memory_mb / 1024) : 8;\n if (memoryGB >= 32) {\n return [\n \"llama2:70b\",\n \"codellama:34b\",\n \"mixtral:8x7b\"\n ];\n } else if (memoryGB >= 16) {\n return [\n \"llama2:13b\",\n \"codellama:13b\",\n \"llama2:7b\"\n ];\n } else {\n return [\n \"llama2:7b\",\n \"codellama:7b\",\n \"phi2\"\n ];\n }\n };\n const handleSubmit = (e)=>{\n e.preventDefault();\n // Validate that at least one AI provider is configured\n if (!config.openaiEnabled && !config.localAIEnabled) {\n alert(\"Please enable at least one AI provider (OpenAI or Local AI)\");\n return;\n }\n onComplete({\n ai: config\n });\n };\n const gpuRecommendation = getGPURecommendations();\n const recommendedModels = getRecommendedModels();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: handleSubmit,\n className: \"space-y-6\",\n children: [\n (systemInfo === null || systemInfo === void 0 ? void 0 : systemInfo.gpus) && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-gray-50 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900 mb-4 flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 230,\n columnNumber: 13\n }, this),\n \"GPU Configuration\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 229,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-4 rounded-lg border mb-4 \".concat(gpuRecommendation.type === \"success\" ? \"bg-green-50 border-green-200\" : gpuRecommendation.type === \"warning\" ? \"bg-yellow-50 border-yellow-200\" : \"bg-blue-50 border-blue-200\"),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"h-5 w-5 mt-0.5 mr-2 \".concat(gpuRecommendation.type === \"success\" ? \"text-green-600\" : gpuRecommendation.type === \"warning\" ? \"text-yellow-600\" : \"text-blue-600\")\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 240,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"font-medium \".concat(gpuRecommendation.type === \"success\" ? \"text-green-800\" : gpuRecommendation.type === \"warning\" ? \"text-yellow-800\" : \"text-blue-800\"),\n children: gpuRecommendation.recommendation\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 246,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm mt-1 \".concat(gpuRecommendation.type === \"success\" ? \"text-green-700\" : gpuRecommendation.type === \"warning\" ? \"text-yellow-700\" : \"text-blue-700\"),\n children: gpuRecommendation.details\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 253,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 245,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 239,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 234,\n columnNumber: 11\n }, this),\n systemInfo.gpus.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n id: \"gpuAcceleration\",\n checked: config.gpuAcceleration,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n gpuAcceleration: e.target.checked\n })),\n className: \"h-4 w-4 text-bzzz-primary focus:ring-bzzz-primary border-gray-300 rounded\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 267,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: \"gpuAcceleration\",\n className: \"ml-2 text-sm font-medium text-gray-700\",\n children: \"Enable GPU acceleration for AI processing\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 274,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 266,\n columnNumber: 15\n }, this),\n config.gpuAcceleration && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Preferred GPU\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 281,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n value: config.preferredGPU,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n preferredGPU: e.target.value\n })),\n className: \"input-field\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"\",\n children: \"Auto-select\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 287,\n columnNumber: 21\n }, this),\n systemInfo.gpus.map((gpu, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: gpu.name,\n children: [\n gpu.name,\n \" (\",\n gpu.type.toUpperCase(),\n \") - \",\n gpu.memory\n ]\n }, index, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 289,\n columnNumber: 23\n }, this))\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 282,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 280,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 265,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 228,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white border border-gray-200 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900 flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 305,\n columnNumber: 13\n }, this),\n \"Local AI (Ollama/Parallama)\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 304,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n id: \"localAIEnabled\",\n checked: config.localAIEnabled,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n localAIEnabled: e.target.checked\n })),\n className: \"h-4 w-4 text-bzzz-primary focus:ring-bzzz-primary border-gray-300 rounded\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 309,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: \"localAIEnabled\",\n className: \"ml-2 text-sm font-medium text-gray-700\",\n children: \"Enable Local AI\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 316,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 308,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 303,\n columnNumber: 9\n }, this),\n config.localAIEnabled && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Local AI Provider\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 325,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-2 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border-2 rounded-lg p-4 cursor-pointer transition-all \".concat(config.localAIType === \"ollama\" ? \"border-bzzz-primary bg-bzzz-primary bg-opacity-10\" : \"border-gray-200 hover:border-gray-300\"),\n onClick: ()=>setConfig((prev)=>({\n ...prev,\n localAIType: \"ollama\"\n })),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"font-medium text-gray-900\",\n children: \"Ollama\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 335,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600\",\n children: \"Open-source, self-hosted AI models\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 336,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-500 mt-1\",\n children: \"Best for: AMD GPUs, CPU-only setups\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 337,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 327,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border-2 rounded-lg p-4 cursor-pointer transition-all \".concat(config.localAIType === \"parallama\" ? \"border-bzzz-primary bg-bzzz-primary bg-opacity-10\" : \"border-gray-200 hover:border-gray-300\"),\n onClick: ()=>setConfig((prev)=>({\n ...prev,\n localAIType: \"parallama\"\n })),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"font-medium text-gray-900\",\n children: \"Parallama\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 348,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600\",\n children: \"Optimized for parallel processing\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 349,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-500 mt-1\",\n children: \"Best for: NVIDIA GPUs, high performance\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 350,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 340,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 326,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 324,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"API Endpoint\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 356,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex space-x-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"url\",\n value: config.localAIEndpoint,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n localAIEndpoint: e.target.value\n })),\n placeholder: \"http://localhost:11434\",\n className: \"input-field flex-1\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 358,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: validateLocalAI,\n disabled: validatingLocal,\n className: \"btn-outline whitespace-nowrap\",\n children: validatingLocal ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-4 w-4 animate-spin\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 372,\n columnNumber: 21\n }, this) : \"Test\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 365,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 357,\n columnNumber: 15\n }, this),\n localAIValid === true && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mt-1 text-green-600 text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-4 w-4 mr-1\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 380,\n columnNumber: 19\n }, this),\n \"Connection successful\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 379,\n columnNumber: 17\n }, this),\n localAIValid === false && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mt-1 text-red-600 text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-4 w-4 mr-1\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 386,\n columnNumber: 19\n }, this),\n \"Connection failed\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 385,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 355,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Recommended Models for your system\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 393,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-blue-50 border border-blue-200 rounded-lg p-3\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-blue-800\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"font-medium mb-2\",\n children: [\n \"Based on your system memory (\",\n Math.round((systemInfo === null || systemInfo === void 0 ? void 0 : systemInfo.memory_mb) / 1024 || 8),\n \" GB):\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 396,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-wrap gap-2\",\n children: recommendedModels.map((model, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs\",\n children: model\n }, index, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 399,\n columnNumber: 23\n }, this))\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 397,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 395,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 394,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 392,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 323,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 302,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white border border-gray-200 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900 flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 415,\n columnNumber: 13\n }, this),\n \"OpenAI API\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 414,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n id: \"openaiEnabled\",\n checked: config.openaiEnabled,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n openaiEnabled: e.target.checked\n })),\n className: \"h-4 w-4 text-bzzz-primary focus:ring-bzzz-primary border-gray-300 rounded\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 419,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: \"openaiEnabled\",\n className: \"ml-2 text-sm font-medium text-gray-700\",\n children: \"Enable OpenAI API\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 426,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 418,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 413,\n columnNumber: 9\n }, this),\n config.openaiEnabled && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"API Key\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 435,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex space-x-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative flex-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: showApiKey ? \"text\" : \"password\",\n value: config.openaiApiKey,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n openaiApiKey: e.target.value\n })),\n placeholder: \"sk-...\",\n className: \"input-field pr-10\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 438,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>setShowApiKey(!showApiKey),\n className: \"absolute inset-y-0 right-0 pr-3 flex items-center\",\n children: showApiKey ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"h-5 w-5 text-gray-400\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 451,\n columnNumber: 23\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"h-5 w-5 text-gray-400\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 453,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 445,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 437,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: validateOpenAI,\n disabled: validatingOpenAI || !config.openaiApiKey,\n className: \"btn-outline whitespace-nowrap\",\n children: validatingOpenAI ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-4 w-4 animate-spin\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 464,\n columnNumber: 21\n }, this) : \"Validate\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 457,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 436,\n columnNumber: 15\n }, this),\n openaiValid === true && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mt-1 text-green-600 text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-4 w-4 mr-1\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 472,\n columnNumber: 19\n }, this),\n \"API key valid\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 471,\n columnNumber: 17\n }, this),\n openaiValid === false && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mt-1 text-red-600 text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-4 w-4 mr-1\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 478,\n columnNumber: 19\n }, this),\n \"Invalid API key\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 477,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 434,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Organization (Optional)\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 485,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: config.openaiOrganization,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n openaiOrganization: e.target.value\n })),\n placeholder: \"org-...\",\n className: \"input-field\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 486,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 484,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Default Model\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 496,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n value: config.openaiDefaultModel,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n openaiDefaultModel: e.target.value\n })),\n className: \"input-field\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"gpt-4\",\n children: \"GPT-4\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 502,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"gpt-4-turbo\",\n children: \"GPT-4 Turbo\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 503,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"gpt-3.5-turbo\",\n children: \"GPT-3.5 Turbo\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 504,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 497,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 495,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 433,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 412,\n columnNumber: 7\n }, this),\n config.openaiEnabled && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white border border-gray-200 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900 mb-4 flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CpuChipIcon_CurrencyDollarIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_InformationCircleIcon_ServerIcon_SparklesIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 515,\n columnNumber: 13\n }, this),\n \"Cost Management\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 514,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-2 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Daily Cost Limit ($)\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 521,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"number\",\n value: config.dailyCostLimit,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n dailyCostLimit: parseFloat(e.target.value) || 0\n })),\n min: \"0\",\n step: \"0.01\",\n className: \"input-field\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 522,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 520,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Monthly Cost Limit ($)\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 533,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"number\",\n value: config.monthlyCostLimit,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n monthlyCostLimit: parseFloat(e.target.value) || 0\n })),\n min: \"0\",\n step: \"0.01\",\n className: \"input-field\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 534,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 532,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 519,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n id: \"costAlerts\",\n checked: config.costAlerts,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n costAlerts: e.target.checked\n })),\n className: \"h-4 w-4 text-bzzz-primary focus:ring-bzzz-primary border-gray-300 rounded\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 547,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: \"costAlerts\",\n className: \"ml-2 text-sm font-medium text-gray-700\",\n children: \"Send alerts when approaching cost limits\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 554,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 546,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 545,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 513,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white border border-gray-200 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900 mb-4\",\n children: \"Provider Preference\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 564,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Preferred AI Provider\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 568,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n value: config.preferredProvider,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n preferredProvider: e.target.value\n })),\n className: \"input-field\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"local\",\n children: \"Local AI Only\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 574,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"openai\",\n children: \"OpenAI Only\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 575,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"hybrid\",\n children: \"Hybrid (Local first, OpenAI fallback)\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 576,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 569,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 567,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n id: \"fallbackEnabled\",\n checked: config.fallbackEnabled,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n fallbackEnabled: e.target.checked\n })),\n className: \"h-4 w-4 text-bzzz-primary focus:ring-bzzz-primary border-gray-300 rounded\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 581,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: \"fallbackEnabled\",\n className: \"ml-2 text-sm font-medium text-gray-700\",\n children: \"Enable automatic fallback between providers\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 588,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 580,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 566,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 563,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between pt-6 border-t border-gray-200\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: onBack && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: onBack,\n className: \"btn-outline\",\n children: \"Back\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 599,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 597,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"submit\",\n className: \"btn-primary\",\n disabled: !config.openaiEnabled && !config.localAIEnabled,\n children: isCompleted ? \"Continue\" : \"Next: Resource Allocation\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 605,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 596,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/AIConfiguration.tsx\",\n lineNumber: 225,\n columnNumber: 5\n }, this);\n}\n_s(AIConfiguration, \"glyVAUlKlCKBmuRdPttEEoDSIeo=\");\n_c = AIConfiguration;\nvar _c;\n$RefreshReg$(_c, \"AIConfiguration\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9zZXR1cC9jb21wb25lbnRzL0FJQ29uZmlndXJhdGlvbi50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUyQztBQVlQO0FBNkNyQixTQUFTWSxnQkFBZ0IsS0FNakI7UUFOaUIsRUFDdENDLFVBQVUsRUFDVkMsVUFBVSxFQUNWQyxVQUFVLEVBQ1ZDLE1BQU0sRUFDTkMsV0FBVyxFQUNVLEdBTmlCOztJQU90QyxNQUFNLENBQUNDLFFBQVFDLFVBQVUsR0FBR25CLCtDQUFRQSxDQUFXO1FBQzdDb0IsZUFBZTtRQUNmQyxjQUFjO1FBQ2RDLG9CQUFvQjtRQUNwQkMsb0JBQW9CO1FBRXBCQyxnQkFBZ0I7UUFDaEJDLGtCQUFrQjtRQUNsQkMsWUFBWTtRQUVaQyxnQkFBZ0I7UUFDaEJDLGFBQWE7UUFDYkMsaUJBQWlCO1FBQ2pCQyxlQUFlO1lBQUM7WUFBVTtTQUFZO1FBRXRDQyxpQkFBaUI7UUFDakJDLGNBQWM7UUFDZEMsY0FBYztRQUVkQyxtQkFBbUI7UUFDbkJDLGlCQUFpQjtJQUNuQjtJQUVBLE1BQU0sQ0FBQ0MsWUFBWUMsY0FBYyxHQUFHckMsK0NBQVFBLENBQUM7SUFDN0MsTUFBTSxDQUFDc0Msa0JBQWtCQyxvQkFBb0IsR0FBR3ZDLCtDQUFRQSxDQUFDO0lBQ3pELE1BQU0sQ0FBQ3dDLGlCQUFpQkMsbUJBQW1CLEdBQUd6QywrQ0FBUUEsQ0FBQztJQUN2RCxNQUFNLENBQUMwQyxhQUFhQyxlQUFlLEdBQUczQywrQ0FBUUEsQ0FBaUI7SUFDL0QsTUFBTSxDQUFDNEMsY0FBY0MsZ0JBQWdCLEdBQUc3QywrQ0FBUUEsQ0FBaUI7SUFFakUsOENBQThDO0lBQzlDQyxnREFBU0EsQ0FBQztZQU1KWTtRQUxKLElBQUlDLFdBQVdnQyxFQUFFLEVBQUU7WUFDakIzQixVQUFVNEIsQ0FBQUEsT0FBUztvQkFBRSxHQUFHQSxJQUFJO29CQUFFLEdBQUdqQyxXQUFXZ0MsRUFBRTtnQkFBQztRQUNqRDtRQUVB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dEM7R0EzaUJ3Qkw7S0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL3NldHVwL2NvbXBvbmVudHMvQUlDb25maWd1cmF0aW9uLnRzeD83MzQwIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBcbiAgQ3B1Q2hpcEljb24sXG4gIFNwYXJrbGVzSWNvbixcbiAgQ3VycmVuY3lEb2xsYXJJY29uLFxuICBTZXJ2ZXJJY29uLFxuICBDaGVja0NpcmNsZUljb24sXG4gIEV4Y2xhbWF0aW9uVHJpYW5nbGVJY29uLFxuICBJbmZvcm1hdGlvbkNpcmNsZUljb24sXG4gIEV5ZUljb24sXG4gIEV5ZVNsYXNoSWNvbixcbiAgQXJyb3dQYXRoSWNvblxufSBmcm9tICdAaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUnXG5cbmludGVyZmFjZSBHUFVJbmZvIHtcbiAgbmFtZTogc3RyaW5nXG4gIG1lbW9yeTogc3RyaW5nXG4gIHR5cGU6IHN0cmluZ1xuICBkcml2ZXI6IHN0cmluZ1xufVxuXG5pbnRlcmZhY2UgQUlDb25maWcge1xuICAvLyBPcGVuQUkgQ29uZmlndXJhdGlvblxuICBvcGVuYWlFbmFibGVkOiBib29sZWFuXG4gIG9wZW5haUFwaUtleTogc3RyaW5nXG4gIG9wZW5haU9yZ2FuaXphdGlvbjogc3RyaW5nXG4gIG9wZW5haURlZmF1bHRNb2RlbDogc3RyaW5nXG4gIFxuICAvLyBDb3N0IE1hbmFnZW1lbnRcbiAgZGFpbHlDb3N0TGltaXQ6IG51bWJlclxuICBtb250aGx5Q29zdExpbWl0OiBudW1iZXJcbiAgY29zdEFsZXJ0czogYm9vbGVhblxuICBcbiAgLy8gTG9jYWwgQUkgKE9sbGFtYS9QYXJhbGxhbWEpXG4gIGxvY2FsQUlFbmFibGVkOiBib29sZWFuXG4gIGxvY2FsQUlUeXBlOiAnb2xsYW1hJyB8ICdwYXJhbGxhbWEnXG4gIGxvY2FsQUlFbmRwb2ludDogc3RyaW5nXG4gIGxvY2FsQUlNb2RlbHM6IHN0cmluZ1tdXG4gIFxuICAvLyBHUFUgQ29uZmlndXJhdGlvblxuICBncHVBY2NlbGVyYXRpb246IGJvb2xlYW5cbiAgcHJlZmVycmVkR1BVOiBzdHJpbmdcbiAgbWF4R1BVTWVtb3J5OiBudW1iZXJcbiAgXG4gIC8vIE1vZGVsIFNlbGVjdGlvblxuICBwcmVmZXJyZWRQcm92aWRlcjogJ29wZW5haScgfCAnbG9jYWwnIHwgJ2h5YnJpZCdcbiAgZmFsbGJhY2tFbmFibGVkOiBib29sZWFuXG59XG5cbmludGVyZmFjZSBBSUNvbmZpZ3VyYXRpb25Qcm9wcyB7XG4gIHN5c3RlbUluZm86IGFueVxuICBjb25maWdEYXRhOiBhbnlcbiAgb25Db21wbGV0ZTogKGRhdGE6IGFueSkgPT4gdm9pZFxuICBvbkJhY2s/OiAoKSA9PiB2b2lkXG4gIGlzQ29tcGxldGVkOiBib29sZWFuXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEFJQ29uZmlndXJhdGlvbih7IFxuICBzeXN0ZW1JbmZvLCBcbiAgY29uZmlnRGF0YSwgXG4gIG9uQ29tcGxldGUsIFxuICBvbkJhY2ssIFxuICBpc0NvbXBsZXRlZCBcbn06IEFJQ29uZmlndXJhdGlvblByb3BzKSB7XG4gIGNvbnN0IFtjb25maWcsIHNldENvbmZpZ10gPSB1c2VTdGF0ZTxBSUNvbmZpZz4oe1xuICAgIG9wZW5haUVuYWJsZWQ6IGZhbHNlLFxuICAgIG9wZW5haUFwaUtleTogJycsXG4gICAgb3BlbmFpT3JnYW5pemF0aW9uOiAnJyxcbiAgICBvcGVuYWlEZWZhdWx0TW9kZWw6ICdncHQtNCcsXG4gICAgXG4gICAgZGFpbHlDb3N0TGltaXQ6IDUwLFxuICAgIG1vbnRobHlDb3N0TGltaXQ6IDUwMCxcbiAgICBjb3N0QWxlcnRzOiB0cnVlLFxuICAgIFxuICAgIGxvY2FsQUlFbmFibGVkOiB0cnVlLFxuICAgIGxvY2FsQUlUeXBlOiAnb2xsYW1hJyxcbiAgICBsb2NhbEFJRW5kcG9pbnQ6ICdodHRwOi8vbG9jYWxob3N0OjExNDM0JyxcbiAgICBsb2NhbEFJTW9kZWxzOiBbJ2xsYW1hMicsICdjb2RlbGxhbWEnXSxcbiAgICBcbiAgICBncHVBY2NlbGVyYXRpb246IGZhbHNlLFxuICAgIHByZWZlcnJlZEdQVTogJycsXG4gICAgbWF4R1BVTWVtb3J5OiA4LFxuICAgIFxuICAgIHByZWZlcnJlZFByb3ZpZGVyOiAnbG9jYWwnLFxuICAgIGZhbGxiYWNrRW5hYmxlZDogdHJ1ZVxuICB9KVxuXG4gIGNvbnN0IFtzaG93QXBpS2V5LCBzZXRTaG93QXBpS2V5XSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbdmFsaWRhdGluZ09wZW5BSSwgc2V0VmFsaWRhdGluZ09wZW5BSV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3ZhbGlkYXRpbmdMb2NhbCwgc2V0VmFsaWRhdGluZ0xvY2FsXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbb3BlbmFpVmFsaWQsIHNldE9wZW5haVZhbGlkXSA9IHVzZVN0YXRlPGJvb2xlYW4gfCBudWxsPihudWxsKVxuICBjb25zdCBbbG9jYWxBSVZhbGlkLCBzZXRMb2NhbEFJVmFsaWRdID0gdXNlU3RhdGU8Ym9vbGVhbiB8IG51bGw+KG51bGwpXG5cbiAgLy8gSW5pdGlhbGl6ZSBjb25maWd1cmF0aW9uIGZyb20gZXhpc3RpbmcgZGF0YVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChjb25maWdEYXRhLmFpKSB7XG4gICAgICBzZXRDb25maWcocHJldiA9PiAoeyAuLi5wcmV2LCAuLi5jb25maWdEYXRhLmFpIH0pKVxuICAgIH1cbiAgICBcbiAgICAvLyBBdXRvLWRldGVjdCBHUFUgY2FwYWJpbGl0aWVzXG4gICAgaWYgKHN5c3RlbUluZm8/LmdwdXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGhhc05WSURJQSA9IHN5c3RlbUluZm8uZ3B1cy5zb21lKChncHU6IEdQVUluZm8pID0+IGdwdS50eXBlID09PSAnbnZpZGlhJylcbiAgICAgIGNvbnN0IGhhc0FNRCA9IHN5c3RlbUluZm8uZ3B1cy5zb21lKChncHU6IEdQVUluZm8pID0+IGdwdS50eXBlID09PSAnYW1kJylcbiAgICAgIFxuICAgICAgaWYgKGhhc05WSURJQSkge1xuICAgICAgICBzZXRDb25maWcocHJldiA9PiAoe1xuICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgZ3B1QWNjZWxlcmF0aW9uOiB0cnVlLFxuICAgICAgICAgIGxvY2FsQUlUeXBlOiAncGFyYWxsYW1hJywgLy8gUGFyYWxsYW1hIHR5cGljYWxseSBiZXR0ZXIgZm9yIE5WSURJQVxuICAgICAgICAgIHByZWZlcnJlZEdQVTogc3lzdGVtSW5mby5ncHVzLmZpbmQoKGdwdTogR1BVSW5mbykgPT4gZ3B1LnR5cGUgPT09ICdudmlkaWEnKT8ubmFtZSB8fCAnJ1xuICAgICAgICB9KSlcbiAgICAgIH0gZWxzZSBpZiAoaGFzQU1EKSB7XG4gICAgICAgIHNldENvbmZpZyhwcmV2ID0+ICh7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBncHVBY2NlbGVyYXRpb246IHRydWUsXG4gICAgICAgICAgbG9jYWxBSVR5cGU6ICdvbGxhbWEnLCAvLyBPbGxhbWEgd29ya3Mgd2VsbCB3aXRoIEFNRFxuICAgICAgICAgIHByZWZlcnJlZEdQVTogc3lzdGVtSW5mby5ncHVzLmZpbmQoKGdwdTogR1BVSW5mbykgPT4gZ3B1LnR5cGUgPT09ICdhbWQnKT8ubmFtZSB8fCAnJ1xuICAgICAgICB9KSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtzeXN0ZW1JbmZvLCBjb25maWdEYXRhXSlcblxuICBjb25zdCB2YWxpZGF0ZU9wZW5BSSA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoIWNvbmZpZy5vcGVuYWlBcGlLZXkpIHtcbiAgICAgIHNldE9wZW5haVZhbGlkKGZhbHNlKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgc2V0VmFsaWRhdGluZ09wZW5BSSh0cnVlKVxuICAgIHRyeSB7XG4gICAgICAvLyBUaGlzIHdvdWxkIGJlIGEgcmVhbCBBUEkgdmFsaWRhdGlvbiBpbiBwcm9kdWN0aW9uXG4gICAgICAvLyBGb3Igbm93LCBqdXN0IHNpbXVsYXRlIHZhbGlkYXRpb25cbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSlcbiAgICAgIHNldE9wZW5haVZhbGlkKHRydWUpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHNldE9wZW5haVZhbGlkKGZhbHNlKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRWYWxpZGF0aW5nT3BlbkFJKGZhbHNlKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHZhbGlkYXRlTG9jYWxBSSA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoIWNvbmZpZy5sb2NhbEFJRW5kcG9pbnQpIHtcbiAgICAgIHNldExvY2FsQUlWYWxpZChmYWxzZSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNldFZhbGlkYXRpbmdMb2NhbCh0cnVlKVxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke2NvbmZpZy5sb2NhbEFJRW5kcG9pbnR9L2FwaS90YWdzYClcbiAgICAgIHNldExvY2FsQUlWYWxpZChyZXNwb25zZS5vaylcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgc2V0TG9jYWxBSVZhbGlkKGZhbHNlKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRWYWxpZGF0aW5nTG9jYWwoZmFsc2UpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgZ2V0R1BVUmVjb21tZW5kYXRpb25zID0gKCkgPT4ge1xuICAgIGlmICghc3lzdGVtSW5mbz8uZ3B1cz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZWNvbW1lbmRhdGlvbjogJ05vIEdQVSBkZXRlY3RlZC4gQ1BVLW9ubHkgcHJvY2Vzc2luZyB3aWxsIGJlIHVzZWQuJyxcbiAgICAgICAgdHlwZTogJ2luZm8nLFxuICAgICAgICBkZXRhaWxzOiAnQ29uc2lkZXIgYWRkaW5nIGEgR1BVIGZvciBiZXR0ZXIgQUkgcGVyZm9ybWFuY2UuJ1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdwdXMgPSBzeXN0ZW1JbmZvLmdwdXNcbiAgICBjb25zdCBudmlkaWFHUFVzID0gZ3B1cy5maWx0ZXIoKGdwdTogR1BVSW5mbykgPT4gZ3B1LnR5cGUgPT09ICdudmlkaWEnKVxuICAgIGNvbnN0IGFtZEdQVXMgPSBncHVzLmZpbHRlcigoZ3B1OiBHUFVJbmZvKSA9PiBncHUudHlwZSA9PT0gJ2FtZCcpXG5cbiAgICBpZiAobnZpZGlhR1BVcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZWNvbW1lbmRhdGlvbjogJ05WSURJQSBHUFUgZGV0ZWN0ZWQgLSBQYXJhbGxhbWEgcmVjb21tZW5kZWQgZm9yIG9wdGltYWwgcGVyZm9ybWFuY2UnLFxuICAgICAgICB0eXBlOiAnc3VjY2VzcycsXG4gICAgICAgIGRldGFpbHM6IGAke252aWRpYUdQVXNbMF0ubmFtZX0gd2l0aCAke252aWRpYUdQVXNbMF0ubWVtb3J5fSBWUkFNIGRldGVjdGVkLiBQYXJhbGxhbWEgcHJvdmlkZXMgZXhjZWxsZW50IE5WSURJQSBHUFUgYWNjZWxlcmF0aW9uLmBcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoYW1kR1BVcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZWNvbW1lbmRhdGlvbjogJ0FNRCBHUFUgZGV0ZWN0ZWQgLSBPbGxhbWEgd2l0aCBST0NtIHN1cHBvcnQgcmVjb21tZW5kZWQnLFxuICAgICAgICB0eXBlOiAnd2FybmluZycsXG4gICAgICAgIGRldGFpbHM6IGAke2FtZEdQVXNbMF0ubmFtZX0gZGV0ZWN0ZWQuIE9sbGFtYSBwcm92aWRlcyBnb29kIEFNRCBHUFUgc3VwcG9ydCB0aHJvdWdoIFJPQ20uYFxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICByZWNvbW1lbmRhdGlvbjogJ0ludGVncmF0ZWQgR1BVIGRldGVjdGVkIC0gTGltaXRlZCBBSSBhY2NlbGVyYXRpb24gYXZhaWxhYmxlJyxcbiAgICAgIHR5cGU6ICd3YXJuaW5nJyxcbiAgICAgIGRldGFpbHM6ICdJbnRlZ3JhdGVkIEdQVXMgcHJvdmlkZSBsaW1pdGVkIEFJIGFjY2VsZXJhdGlvbi4gQ29uc2lkZXIgYSBkZWRpY2F0ZWQgR1BVIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuJ1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGdldFJlY29tbWVuZGVkTW9kZWxzID0gKCkgPT4ge1xuICAgIGNvbnN0IG1lbW9yeUdCID0gc3lzdGVtSW5mbz8ubWVtb3J5X21iID8gTWF0aC5yb3VuZChzeXN0ZW1JbmZvLm1lbW9yeV9tYiAvIDEwMjQpIDogOFxuXG4gICAgaWYgKG1lbW9yeUdCID49IDMyKSB7XG4gICAgICByZXR1cm4gWydsbGFtYTI6NzBiJywgJ2NvZGVsbGFtYTozNGInLCAnbWl4dHJhbDo4eDdiJ11cbiAgICB9IGVsc2UgaWYgKG1lbW9yeUdCID49IDE2KSB7XG4gICAgICByZXR1cm4gWydsbGFtYTI6MTNiJywgJ2NvZGVsbGFtYToxM2InLCAnbGxhbWEyOjdiJ11cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFsnbGxhbWEyOjdiJywgJ2NvZGVsbGFtYTo3YicsICdwaGkyJ11cbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSAoZTogUmVhY3QuRm9ybUV2ZW50KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgXG4gICAgLy8gVmFsaWRhdGUgdGhhdCBhdCBsZWFzdCBvbmUgQUkgcHJvdmlkZXIgaXMgY29uZmlndXJlZFxuICAgIGlmICghY29uZmlnLm9wZW5haUVuYWJsZWQgJiYgIWNvbmZpZy5sb2NhbEFJRW5hYmxlZCkge1xuICAgICAgYWxlcnQoJ1BsZWFzZSBlbmFibGUgYXQgbGVhc3Qgb25lIEFJIHByb3ZpZGVyIChPcGVuQUkgb3IgTG9jYWwgQUkpJylcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIG9uQ29tcGxldGUoeyBhaTogY29uZmlnIH0pXG4gIH1cblxuICBjb25zdCBncHVSZWNvbW1lbmRhdGlvbiA9IGdldEdQVVJlY29tbWVuZGF0aW9ucygpXG4gIGNvbnN0IHJlY29tbWVuZGVkTW9kZWxzID0gZ2V0UmVjb21tZW5kZWRNb2RlbHMoKVxuXG4gIHJldHVybiAoXG4gICAgPGZvcm0gb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH0gY2xhc3NOYW1lPVwic3BhY2UteS02XCI+XG4gICAgICB7LyogR1BVIERldGVjdGlvbiAmIFJlY29tbWVuZGF0aW9ucyAqL31cbiAgICAgIHtzeXN0ZW1JbmZvPy5ncHVzICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy1ncmF5LTUwIHJvdW5kZWQtbGcgcC02XCI+XG4gICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBtYi00IGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8Q3B1Q2hpcEljb24gY2xhc3NOYW1lPVwiaC02IHctNiB0ZXh0LWJ6enotcHJpbWFyeSBtci0yXCIgLz5cbiAgICAgICAgICAgIEdQVSBDb25maWd1cmF0aW9uXG4gICAgICAgICAgPC9oMz5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YHAtNCByb3VuZGVkLWxnIGJvcmRlciBtYi00ICR7XG4gICAgICAgICAgICBncHVSZWNvbW1lbmRhdGlvbi50eXBlID09PSAnc3VjY2VzcycgPyAnYmctZ3JlZW4tNTAgYm9yZGVyLWdyZWVuLTIwMCcgOlxuICAgICAgICAgICAgZ3B1UmVjb21tZW5kYXRpb24udHlwZSA9PT0gJ3dhcm5pbmcnID8gJ2JnLXllbGxvdy01MCBib3JkZXIteWVsbG93LTIwMCcgOlxuICAgICAgICAgICAgJ2JnLWJsdWUtNTAgYm9yZGVyLWJsdWUtMjAwJ1xuICAgICAgICAgIH1gfT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1zdGFydFwiPlxuICAgICAgICAgICAgICA8SW5mb3JtYXRpb25DaXJjbGVJY29uIGNsYXNzTmFtZT17YGgtNSB3LTUgbXQtMC41IG1yLTIgJHtcbiAgICAgICAgICAgICAgICBncHVSZWNvbW1lbmRhdGlvbi50eXBlID09PSAnc3VjY2VzcycgPyAndGV4dC1ncmVlbi02MDAnIDpcbiAgICAgICAgICAgICAgICBncHVSZWNvbW1lbmRhdGlvbi50eXBlID09PSAnd2FybmluZycgPyAndGV4dC15ZWxsb3ctNjAwJyA6XG4gICAgICAgICAgICAgICAgJ3RleHQtYmx1ZS02MDAnXG4gICAgICAgICAgICAgIH1gfSAvPlxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgZm9udC1tZWRpdW0gJHtcbiAgICAgICAgICAgICAgICAgIGdwdVJlY29tbWVuZGF0aW9uLnR5cGUgPT09ICdzdWNjZXNzJyA/ICd0ZXh0LWdyZWVuLTgwMCcgOlxuICAgICAgICAgICAgICAgICAgZ3B1UmVjb21tZW5kYXRpb24udHlwZSA9PT0gJ3dhcm5pbmcnID8gJ3RleHQteWVsbG93LTgwMCcgOlxuICAgICAgICAgICAgICAgICAgJ3RleHQtYmx1ZS04MDAnXG4gICAgICAgICAgICAgICAgfWB9PlxuICAgICAgICAgICAgICAgICAge2dwdVJlY29tbWVuZGF0aW9uLnJlY29tbWVuZGF0aW9ufVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgdGV4dC1zbSBtdC0xICR7XG4gICAgICAgICAgICAgICAgICBncHVSZWNvbW1lbmRhdGlvbi50eXBlID09PSAnc3VjY2VzcycgPyAndGV4dC1ncmVlbi03MDAnIDpcbiAgICAgICAgICAgICAgICAgIGdwdVJlY29tbWVuZGF0aW9uLnR5cGUgPT09ICd3YXJuaW5nJyA/ICd0ZXh0LXllbGxvdy03MDAnIDpcbiAgICAgICAgICAgICAgICAgICd0ZXh0LWJsdWUtNzAwJ1xuICAgICAgICAgICAgICAgIH1gfT5cbiAgICAgICAgICAgICAgICAgIHtncHVSZWNvbW1lbmRhdGlvbi5kZXRhaWxzfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAge3N5c3RlbUluZm8uZ3B1cy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0zXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICBpZD1cImdwdUFjY2VsZXJhdGlvblwiXG4gICAgICAgICAgICAgICAgICBjaGVja2VkPXtjb25maWcuZ3B1QWNjZWxlcmF0aW9ufVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRDb25maWcocHJldiA9PiAoeyAuLi5wcmV2LCBncHVBY2NlbGVyYXRpb246IGUudGFyZ2V0LmNoZWNrZWQgfSkpfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC00IHctNCB0ZXh0LWJ6enotcHJpbWFyeSBmb2N1czpyaW5nLWJ6enotcHJpbWFyeSBib3JkZXItZ3JheS0zMDAgcm91bmRlZFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cImdwdUFjY2VsZXJhdGlvblwiIGNsYXNzTmFtZT1cIm1sLTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktNzAwXCI+XG4gICAgICAgICAgICAgICAgICBFbmFibGUgR1BVIGFjY2VsZXJhdGlvbiBmb3IgQUkgcHJvY2Vzc2luZ1xuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIHtjb25maWcuZ3B1QWNjZWxlcmF0aW9uICYmIChcbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImxhYmVsXCI+UHJlZmVycmVkIEdQVTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtjb25maWcucHJlZmVycmVkR1BVfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldENvbmZpZyhwcmV2ID0+ICh7IC4uLnByZXYsIHByZWZlcnJlZEdQVTogZS50YXJnZXQudmFsdWUgfSkpfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbnB1dC1maWVsZFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIj5BdXRvLXNlbGVjdDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICB7c3lzdGVtSW5mby5ncHVzLm1hcCgoZ3B1OiBHUFVJbmZvLCBpbmRleDogbnVtYmVyKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBrZXk9e2luZGV4fSB2YWx1ZT17Z3B1Lm5hbWV9PlxuICAgICAgICAgICAgICAgICAgICAgICAge2dwdS5uYW1lfSAoe2dwdS50eXBlLnRvVXBwZXJDYXNlKCl9KSAtIHtncHUubWVtb3J5fVxuICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuXG4gICAgICB7LyogTG9jYWwgQUkgQ29uZmlndXJhdGlvbiAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHAtNlwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi00XCI+XG4gICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPFNlcnZlckljb24gY2xhc3NOYW1lPVwiaC02IHctNiB0ZXh0LWJ6enotcHJpbWFyeSBtci0yXCIgLz5cbiAgICAgICAgICAgIExvY2FsIEFJIChPbGxhbWEvUGFyYWxsYW1hKVxuICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIGlkPVwibG9jYWxBSUVuYWJsZWRcIlxuICAgICAgICAgICAgICBjaGVja2VkPXtjb25maWcubG9jYWxBSUVuYWJsZWR9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Q29uZmlnKHByZXYgPT4gKHsgLi4ucHJldiwgbG9jYWxBSUVuYWJsZWQ6IGUudGFyZ2V0LmNoZWNrZWQgfSkpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtYnp6ei1wcmltYXJ5IGZvY3VzOnJpbmctYnp6ei1wcmltYXJ5IGJvcmRlci1ncmF5LTMwMCByb3VuZGVkXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cImxvY2FsQUlFbmFibGVkXCIgY2xhc3NOYW1lPVwibWwtMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDBcIj5cbiAgICAgICAgICAgICAgRW5hYmxlIExvY2FsIEFJXG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICB7Y29uZmlnLmxvY2FsQUlFbmFibGVkICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktNFwiPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImxhYmVsXCI+TG9jYWwgQUkgUHJvdmlkZXI8L2xhYmVsPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTIgZ2FwLTRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Bib3JkZXItMiByb3VuZGVkLWxnIHAtNCBjdXJzb3ItcG9pbnRlciB0cmFuc2l0aW9uLWFsbCAke1xuICAgICAgICAgICAgICAgICAgICBjb25maWcubG9jYWxBSVR5cGUgPT09ICdvbGxhbWEnXG4gICAgICAgICAgICAgICAgICAgICAgPyAnYm9yZGVyLWJ6enotcHJpbWFyeSBiZy1ienp6LXByaW1hcnkgYmctb3BhY2l0eS0xMCdcbiAgICAgICAgICAgICAgICAgICAgICA6ICdib3JkZXItZ3JheS0yMDAgaG92ZXI6Ym9yZGVyLWdyYXktMzAwJ1xuICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRDb25maWcocHJldiA9PiAoeyAuLi5wcmV2LCBsb2NhbEFJVHlwZTogJ29sbGFtYScgfSkpfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMFwiPk9sbGFtYTwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj5PcGVuLXNvdXJjZSwgc2VsZi1ob3N0ZWQgQUkgbW9kZWxzPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1ncmF5LTUwMCBtdC0xXCI+QmVzdCBmb3I6IEFNRCBHUFVzLCBDUFUtb25seSBzZXR1cHM8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Bib3JkZXItMiByb3VuZGVkLWxnIHAtNCBjdXJzb3ItcG9pbnRlciB0cmFuc2l0aW9uLWFsbCAke1xuICAgICAgICAgICAgICAgICAgICBjb25maWcubG9jYWxBSVR5cGUgPT09ICdwYXJhbGxhbWEnXG4gICAgICAgICAgICAgICAgICAgICAgPyAnYm9yZGVyLWJ6enotcHJpbWFyeSBiZy1ienp6LXByaW1hcnkgYmctb3BhY2l0eS0xMCdcbiAgICAgICAgICAgICAgICAgICAgICA6ICdib3JkZXItZ3JheS0yMDAgaG92ZXI6Ym9yZGVyLWdyYXktMzAwJ1xuICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRDb25maWcocHJldiA9PiAoeyAuLi5wcmV2LCBsb2NhbEFJVHlwZTogJ3BhcmFsbGFtYScgfSkpfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMFwiPlBhcmFsbGFtYTwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj5PcHRpbWl6ZWQgZm9yIHBhcmFsbGVsIHByb2Nlc3Npbmc8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LWdyYXktNTAwIG10LTFcIj5CZXN0IGZvcjogTlZJRElBIEdQVXMsIGhpZ2ggcGVyZm9ybWFuY2U8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImxhYmVsXCI+QVBJIEVuZHBvaW50PC9sYWJlbD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IHNwYWNlLXgtMlwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cInVybFwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17Y29uZmlnLmxvY2FsQUlFbmRwb2ludH1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Q29uZmlnKHByZXYgPT4gKHsgLi4ucHJldiwgbG9jYWxBSUVuZHBvaW50OiBlLnRhcmdldC52YWx1ZSB9KSl9XG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cImh0dHA6Ly9sb2NhbGhvc3Q6MTE0MzRcIlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW5wdXQtZmllbGQgZmxleC0xXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgb25DbGljaz17dmFsaWRhdGVMb2NhbEFJfVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3ZhbGlkYXRpbmdMb2NhbH1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ0bi1vdXRsaW5lIHdoaXRlc3BhY2Utbm93cmFwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7dmFsaWRhdGluZ0xvY2FsID8gKFxuICAgICAgICAgICAgICAgICAgICA8QXJyb3dQYXRoSWNvbiBjbGFzc05hbWU9XCJoLTQgdy00IGFuaW1hdGUtc3BpblwiIC8+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAnVGVzdCdcbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB7bG9jYWxBSVZhbGlkID09PSB0cnVlICYmIChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIG10LTEgdGV4dC1ncmVlbi02MDAgdGV4dC1zbVwiPlxuICAgICAgICAgICAgICAgICAgPENoZWNrQ2lyY2xlSWNvbiBjbGFzc05hbWU9XCJoLTQgdy00IG1yLTFcIiAvPlxuICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiBzdWNjZXNzZnVsXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHtsb2NhbEFJVmFsaWQgPT09IGZhbHNlICYmIChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIG10LTEgdGV4dC1yZWQtNjAwIHRleHQtc21cIj5cbiAgICAgICAgICAgICAgICAgIDxFeGNsYW1hdGlvblRyaWFuZ2xlSWNvbiBjbGFzc05hbWU9XCJoLTQgdy00IG1yLTFcIiAvPlxuICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiBmYWlsZWRcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwibGFiZWxcIj5SZWNvbW1lbmRlZCBNb2RlbHMgZm9yIHlvdXIgc3lzdGVtPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy1ibHVlLTUwIGJvcmRlciBib3JkZXItYmx1ZS0yMDAgcm91bmRlZC1sZyBwLTNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ibHVlLTgwMFwiPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZm9udC1tZWRpdW0gbWItMlwiPkJhc2VkIG9uIHlvdXIgc3lzdGVtIG1lbW9yeSAoe01hdGgucm91bmQoc3lzdGVtSW5mbz8ubWVtb3J5X21iIC8gMTAyNCB8fCA4KX0gR0IpOjwvcD5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LXdyYXAgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAge3JlY29tbWVuZGVkTW9kZWxzLm1hcCgobW9kZWwsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4ga2V5PXtpbmRleH0gY2xhc3NOYW1lPVwiYmctYmx1ZS0xMDAgdGV4dC1ibHVlLTgwMCBweC0yIHB5LTEgcm91bmRlZCB0ZXh0LXhzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7bW9kZWx9XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBPcGVuQUkgQ29uZmlndXJhdGlvbiAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHAtNlwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi00XCI+XG4gICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPFNwYXJrbGVzSWNvbiBjbGFzc05hbWU9XCJoLTYgdy02IHRleHQtYnp6ei1wcmltYXJ5IG1yLTJcIiAvPlxuICAgICAgICAgICAgT3BlbkFJIEFQSVxuICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIGlkPVwib3BlbmFpRW5hYmxlZFwiXG4gICAgICAgICAgICAgIGNoZWNrZWQ9e2NvbmZpZy5vcGVuYWlFbmFibGVkfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldENvbmZpZyhwcmV2ID0+ICh7IC4uLnByZXYsIG9wZW5haUVuYWJsZWQ6IGUudGFyZ2V0LmNoZWNrZWQgfSkpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtYnp6ei1wcmltYXJ5IGZvY3VzOnJpbmctYnp6ei1wcmltYXJ5IGJvcmRlci1ncmF5LTMwMCByb3VuZGVkXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cIm9wZW5haUVuYWJsZWRcIiBjbGFzc05hbWU9XCJtbC0yIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMFwiPlxuICAgICAgICAgICAgICBFbmFibGUgT3BlbkFJIEFQSVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAge2NvbmZpZy5vcGVuYWlFbmFibGVkICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktNFwiPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImxhYmVsXCI+QVBJIEtleTwvbGFiZWw+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBzcGFjZS14LTJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIGZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9e3Nob3dBcGlLZXkgPyAndGV4dCcgOiAncGFzc3dvcmQnfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Y29uZmlnLm9wZW5haUFwaUtleX1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRDb25maWcocHJldiA9PiAoeyAuLi5wcmV2LCBvcGVuYWlBcGlLZXk6IGUudGFyZ2V0LnZhbHVlIH0pKX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJzay0uLi5cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbnB1dC1maWVsZCBwci0xMFwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd0FwaUtleSghc2hvd0FwaUtleSl9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LXktMCByaWdodC0wIHByLTMgZmxleCBpdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c2hvd0FwaUtleSA/IChcbiAgICAgICAgICAgICAgICAgICAgICA8RXllU2xhc2hJY29uIGNsYXNzTmFtZT1cImgtNSB3LTUgdGV4dC1ncmF5LTQwMFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgPEV5ZUljb24gY2xhc3NOYW1lPVwiaC01IHctNSB0ZXh0LWdyYXktNDAwXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgb25DbGljaz17dmFsaWRhdGVPcGVuQUl9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17dmFsaWRhdGluZ09wZW5BSSB8fCAhY29uZmlnLm9wZW5haUFwaUtleX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ0bi1vdXRsaW5lIHdoaXRlc3BhY2Utbm93cmFwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7dmFsaWRhdGluZ09wZW5BSSA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93UGF0aEljb24gY2xhc3NOYW1lPVwiaC00IHctNCBhbmltYXRlLXNwaW5cIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgJ1ZhbGlkYXRlJ1xuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIHtvcGVuYWlWYWxpZCA9PT0gdHJ1ZSAmJiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBtdC0xIHRleHQtZ3JlZW4tNjAwIHRleHQtc21cIj5cbiAgICAgICAgICAgICAgICAgIDxDaGVja0NpcmNsZUljb24gY2xhc3NOYW1lPVwiaC00IHctNCBtci0xXCIgLz5cbiAgICAgICAgICAgICAgICAgIEFQSSBrZXkgdmFsaWRcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAge29wZW5haVZhbGlkID09PSBmYWxzZSAmJiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBtdC0xIHRleHQtcmVkLTYwMCB0ZXh0LXNtXCI+XG4gICAgICAgICAgICAgICAgICA8RXhjbGFtYXRpb25UcmlhbmdsZUljb24gY2xhc3NOYW1lPVwiaC00IHctNCBtci0xXCIgLz5cbiAgICAgICAgICAgICAgICAgIEludmFsaWQgQVBJIGtleVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJsYWJlbFwiPk9yZ2FuaXphdGlvbiAoT3B0aW9uYWwpPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIHZhbHVlPXtjb25maWcub3BlbmFpT3JnYW5pemF0aW9ufVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Q29uZmlnKHByZXYgPT4gKHsgLi4ucHJldiwgb3BlbmFpT3JnYW5pemF0aW9uOiBlLnRhcmdldC52YWx1ZSB9KSl9XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJvcmctLi4uXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbnB1dC1maWVsZFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImxhYmVsXCI+RGVmYXVsdCBNb2RlbDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICB2YWx1ZT17Y29uZmlnLm9wZW5haURlZmF1bHRNb2RlbH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldENvbmZpZyhwcmV2ID0+ICh7IC4uLnByZXYsIG9wZW5haURlZmF1bHRNb2RlbDogZS50YXJnZXQudmFsdWUgfSkpfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImlucHV0LWZpZWxkXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJncHQtNFwiPkdQVC00PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImdwdC00LXR1cmJvXCI+R1BULTQgVHVyYm88L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiZ3B0LTMuNS10dXJib1wiPkdQVC0zLjUgVHVyYm88L29wdGlvbj5cbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogQ29zdCBNYW5hZ2VtZW50ICovfVxuICAgICAge2NvbmZpZy5vcGVuYWlFbmFibGVkICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQtbGcgcC02XCI+XG4gICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBtYi00IGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8Q3VycmVuY3lEb2xsYXJJY29uIGNsYXNzTmFtZT1cImgtNiB3LTYgdGV4dC1ienp6LXByaW1hcnkgbXItMlwiIC8+XG4gICAgICAgICAgICBDb3N0IE1hbmFnZW1lbnRcbiAgICAgICAgICA8L2gzPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtMiBnYXAtNFwiPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImxhYmVsXCI+RGFpbHkgQ29zdCBMaW1pdCAoJCk8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICB2YWx1ZT17Y29uZmlnLmRhaWx5Q29zdExpbWl0fVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Q29uZmlnKHByZXYgPT4gKHsgLi4ucHJldiwgZGFpbHlDb3N0TGltaXQ6IHBhcnNlRmxvYXQoZS50YXJnZXQudmFsdWUpIHx8IDAgfSkpfVxuICAgICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICAgIHN0ZXA9XCIwLjAxXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbnB1dC1maWVsZFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImxhYmVsXCI+TW9udGhseSBDb3N0IExpbWl0ICgkKTwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgIHZhbHVlPXtjb25maWcubW9udGhseUNvc3RMaW1pdH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldENvbmZpZyhwcmV2ID0+ICh7IC4uLnByZXYsIG1vbnRobHlDb3N0TGltaXQ6IHBhcnNlRmxvYXQoZS50YXJnZXQudmFsdWUpIHx8IDAgfSkpfVxuICAgICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICAgIHN0ZXA9XCIwLjAxXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbnB1dC1maWVsZFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtNFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIGlkPVwiY29zdEFsZXJ0c1wiXG4gICAgICAgICAgICAgICAgY2hlY2tlZD17Y29uZmlnLmNvc3RBbGVydHN9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRDb25maWcocHJldiA9PiAoeyAuLi5wcmV2LCBjb3N0QWxlcnRzOiBlLnRhcmdldC5jaGVja2VkIH0pKX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtYnp6ei1wcmltYXJ5IGZvY3VzOnJpbmctYnp6ei1wcmltYXJ5IGJvcmRlci1ncmF5LTMwMCByb3VuZGVkXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJjb3N0QWxlcnRzXCIgY2xhc3NOYW1lPVwibWwtMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDBcIj5cbiAgICAgICAgICAgICAgICBTZW5kIGFsZXJ0cyB3aGVuIGFwcHJvYWNoaW5nIGNvc3QgbGltaXRzXG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuXG4gICAgICB7LyogUHJvdmlkZXIgUHJlZmVyZW5jZSAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHAtNlwiPlxuICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwIG1iLTRcIj5Qcm92aWRlciBQcmVmZXJlbmNlPC9oMz5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0zXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJsYWJlbFwiPlByZWZlcnJlZCBBSSBQcm92aWRlcjwvbGFiZWw+XG4gICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgIHZhbHVlPXtjb25maWcucHJlZmVycmVkUHJvdmlkZXJ9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Q29uZmlnKHByZXYgPT4gKHsgLi4ucHJldiwgcHJlZmVycmVkUHJvdmlkZXI6IGUudGFyZ2V0LnZhbHVlIGFzICdvcGVuYWknIHwgJ2xvY2FsJyB8ICdoeWJyaWQnIH0pKX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW5wdXQtZmllbGRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibG9jYWxcIj5Mb2NhbCBBSSBPbmx5PC9vcHRpb24+XG4gICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJvcGVuYWlcIj5PcGVuQUkgT25seTwvb3B0aW9uPlxuICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiaHlicmlkXCI+SHlicmlkIChMb2NhbCBmaXJzdCwgT3BlbkFJIGZhbGxiYWNrKTwvb3B0aW9uPlxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgaWQ9XCJmYWxsYmFja0VuYWJsZWRcIlxuICAgICAgICAgICAgICBjaGVja2VkPXtjb25maWcuZmFsbGJhY2tFbmFibGVkfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldENvbmZpZyhwcmV2ID0+ICh7IC4uLnByZXYsIGZhbGxiYWNrRW5hYmxlZDogZS50YXJnZXQuY2hlY2tlZCB9KSl9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtNCB3LTQgdGV4dC1ienp6LXByaW1hcnkgZm9jdXM6cmluZy1ienp6LXByaW1hcnkgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwiZmFsbGJhY2tFbmFibGVkXCIgY2xhc3NOYW1lPVwibWwtMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDBcIj5cbiAgICAgICAgICAgICAgRW5hYmxlIGF1dG9tYXRpYyBmYWxsYmFjayBiZXR3ZWVuIHByb3ZpZGVyc1xuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgey8qIEFjdGlvbiBCdXR0b25zICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBwdC02IGJvcmRlci10IGJvcmRlci1ncmF5LTIwMFwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHtvbkJhY2sgJiYgKFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17b25CYWNrfSBjbGFzc05hbWU9XCJidG4tb3V0bGluZVwiPlxuICAgICAgICAgICAgICBCYWNrXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICBjbGFzc05hbWU9XCJidG4tcHJpbWFyeVwiXG4gICAgICAgICAgZGlzYWJsZWQ9eyFjb25maWcub3BlbmFpRW5hYmxlZCAmJiAhY29uZmlnLmxvY2FsQUlFbmFibGVkfVxuICAgICAgICA+XG4gICAgICAgICAge2lzQ29tcGxldGVkID8gJ0NvbnRpbnVlJyA6ICdOZXh0OiBSZXNvdXJjZSBBbGxvY2F0aW9uJ31cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gIClcbn0iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJDcHVDaGlwSWNvbiIsIlNwYXJrbGVzSWNvbiIsIkN1cnJlbmN5RG9sbGFySWNvbiIsIlNlcnZlckljb24iLCJDaGVja0NpcmNsZUljb24iLCJFeGNsYW1hdGlvblRyaWFuZ2xlSWNvbiIsIkluZm9ybWF0aW9uQ2lyY2xlSWNvbiIsIkV5ZUljb24iLCJFeWVTbGFzaEljb24iLCJBcnJvd1BhdGhJY29uIiwiQUlDb25maWd1cmF0aW9uIiwic3lzdGVtSW5mbyIsImNvbmZpZ0RhdGEiLCJvbkNvbXBsZXRlIiwib25CYWNrIiwiaXNDb21wbGV0ZWQiLCJjb25maWciLCJzZXRDb25maWciLCJvcGVuYWlFbmFibGVkIiwib3BlbmFpQXBpS2V5Iiwib3BlbmFpT3JnYW5pemF0aW9uIiwib3BlbmFpRGVmYXVsdE1vZGVsIiwiZGFpbHlDb3N0TGltaXQiLCJtb250aGx5Q29zdExpbWl0IiwiY29zdEFsZXJ0cyIsImxvY2FsQUlFbmFibGVkIiwibG9jYWxBSVR5cGUiLCJsb2NhbEFJRW5kcG9pbnQiLCJsb2NhbEFJTW9kZWxzIiwiZ3B1QWNjZWxlcmF0aW9uIiwicHJlZmVycmVkR1BVIiwibWF4R1BVTWVtb3J5IiwicHJlZmVycmVkUHJvdmlkZXIiLCJmYWxsYmFja0VuYWJsZWQiLCJzaG93QXBpS2V5Iiwic2V0U2hvd0FwaUtleSIsInZhbGlkYXRpbmdPcGVuQUkiLCJzZXRWYWxpZGF0aW5nT3BlbkFJIiwidmFsaWRhdGluZ0xvY2FsIiwic2V0VmFsaWRhdGluZ0xvY2FsIiwib3BlbmFpVmFsaWQiLCJzZXRPcGVuYWlWYWxpZCIsImxvY2FsQUlWYWxpZCIsInNldExvY2FsQUlWYWxpZCIsImFpIiwicHJldiIsImdwdXMiLCJsZW5ndGgiLCJoYXNOVklESUEiLCJzb21lIiwiZ3B1IiwidHlwZSIsImhhc0FNRCIsImZpbmQiLCJuYW1lIiwidmFsaWRhdGVPcGVuQUkiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNldFRpbWVvdXQiLCJlcnJvciIsInZhbGlkYXRlTG9jYWxBSSIsInJlc3BvbnNlIiwiZmV0Y2giLCJvayIsImdldEdQVVJlY29tbWVuZGF0aW9ucyIsInJlY29tbWVuZGF0aW9uIiwiZGV0YWlscyIsIm52aWRpYUdQVXMiLCJmaWx0ZXIiLCJhbWRHUFVzIiwibWVtb3J5IiwiZ2V0UmVjb21tZW5kZWRNb2RlbHMiLCJtZW1vcnlHQiIsIm1lbW9yeV9tYiIsIk1hdGgiLCJyb3VuZCIsImhhbmRsZVN1Ym1pdCIsImUiLCJwcmV2ZW50RGVmYXVsdCIsImFsZXJ0IiwiZ3B1UmVjb21tZW5kYXRpb24iLCJyZWNvbW1lbmRlZE1vZGVscyIsImZvcm0iLCJvblN1Ym1pdCIsImNsYXNzTmFtZSIsImRpdiIsImgzIiwiaW5wdXQiLCJpZCIsImNoZWNrZWQiLCJvbkNoYW5nZSIsInRhcmdldCIsImxhYmVsIiwiaHRtbEZvciIsInNlbGVjdCIsInZhbHVlIiwib3B0aW9uIiwibWFwIiwiaW5kZXgiLCJ0b1VwcGVyQ2FzZSIsIm9uQ2xpY2siLCJwbGFjZWhvbGRlciIsImJ1dHRvbiIsImRpc2FibGVkIiwicCIsIm1vZGVsIiwic3BhbiIsInBhcnNlRmxvYXQiLCJtaW4iLCJzdGVwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/setup/components/AIConfiguration.tsx\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./app/setup/components/ClusterFormation.tsx":
|
|
/*!***************************************************!*\
|
|
!*** ./app/setup/components/ClusterFormation.tsx ***!
|
|
\***************************************************/
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ ClusterFormation; }\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 _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,ComputerDesktopIcon,InformationCircleIcon,KeyIcon,MagnifyingGlassIcon,PlusIcon,ServerStackIcon,UserGroupIcon,WifiIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ServerStackIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,ComputerDesktopIcon,InformationCircleIcon,KeyIcon,MagnifyingGlassIcon,PlusIcon,ServerStackIcon,UserGroupIcon,WifiIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/PlusIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,ComputerDesktopIcon,InformationCircleIcon,KeyIcon,MagnifyingGlassIcon,PlusIcon,ServerStackIcon,UserGroupIcon,WifiIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/UserGroupIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,ComputerDesktopIcon,InformationCircleIcon,KeyIcon,MagnifyingGlassIcon,PlusIcon,ServerStackIcon,UserGroupIcon,WifiIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ArrowPathIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,ComputerDesktopIcon,InformationCircleIcon,KeyIcon,MagnifyingGlassIcon,PlusIcon,ServerStackIcon,UserGroupIcon,WifiIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/KeyIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,ComputerDesktopIcon,InformationCircleIcon,KeyIcon,MagnifyingGlassIcon,PlusIcon,ServerStackIcon,UserGroupIcon,WifiIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/MagnifyingGlassIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,ComputerDesktopIcon,InformationCircleIcon,KeyIcon,MagnifyingGlassIcon,PlusIcon,ServerStackIcon,UserGroupIcon,WifiIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ComputerDesktopIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,ComputerDesktopIcon,InformationCircleIcon,KeyIcon,MagnifyingGlassIcon,PlusIcon,ServerStackIcon,UserGroupIcon,WifiIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/WifiIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,ComputerDesktopIcon,InformationCircleIcon,KeyIcon,MagnifyingGlassIcon,PlusIcon,ServerStackIcon,UserGroupIcon,WifiIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/InformationCircleIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,ComputerDesktopIcon,InformationCircleIcon,KeyIcon,MagnifyingGlassIcon,PlusIcon,ServerStackIcon,UserGroupIcon,WifiIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CheckCircleIcon.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\nfunction ClusterFormation(param) {\n let { systemInfo, configData, onComplete, onBack, isCompleted } = param;\n var _systemInfo_network, _systemInfo_network_private_ips, _systemInfo_network1;\n _s();\n const [config, setConfig] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n mode: \"create\",\n networkId: \"\",\n clusterName: \"\",\n nodeRole: \"hybrid\",\n autoDiscovery: true,\n encryption: true,\n redundancy: 2\n });\n const [discoveredNodes, setDiscoveredNodes] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [scanning, setScanning] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [generatingKey, setGeneratingKey] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [clusterKey, setClusterKey] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n // Initialize configuration\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n var _systemInfo_network;\n if (configData.cluster) {\n setConfig((prev)=>({\n ...prev,\n ...configData.cluster\n }));\n }\n // Generate default network ID based on hostname\n if (!config.networkId && (systemInfo === null || systemInfo === void 0 ? void 0 : (_systemInfo_network = systemInfo.network) === null || _systemInfo_network === void 0 ? void 0 : _systemInfo_network.hostname)) {\n const hostname = systemInfo.network.hostname;\n const timestamp = Date.now().toString(36).slice(-4);\n setConfig((prev)=>({\n ...prev,\n networkId: \"bzzz-\".concat(hostname, \"-\").concat(timestamp),\n clusterName: \"\".concat(hostname, \" BZZZ Cluster\")\n }));\n }\n }, [\n systemInfo,\n configData\n ]);\n // Auto-discover nodes when joining\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (config.mode === \"join\" && config.autoDiscovery) {\n scanForNodes();\n }\n }, [\n config.mode,\n config.autoDiscovery\n ]);\n const scanForNodes = async ()=>{\n setScanning(true);\n try {\n // This would be a real mDNS/network scan in production\n // Simulating discovery for demo\n await new Promise((resolve)=>setTimeout(resolve, 2000));\n const mockNodes = [\n {\n id: \"node-001\",\n hostname: \"ironwood\",\n ip: \"192.168.1.72\",\n port: 8080,\n version: \"2.0.0\",\n capabilities: [\n \"coordinator\",\n \"storage\",\n \"compute\"\n ],\n status: \"online\",\n lastSeen: new Date()\n },\n {\n id: \"node-002\",\n hostname: \"walnut\",\n ip: \"192.168.1.27\",\n port: 8080,\n version: \"2.0.0\",\n capabilities: [\n \"worker\",\n \"compute\"\n ],\n status: \"online\",\n lastSeen: new Date()\n }\n ];\n setDiscoveredNodes(mockNodes);\n } catch (error) {\n console.error(\"Node discovery failed:\", error);\n } finally{\n setScanning(false);\n }\n };\n const generateClusterKey = async ()=>{\n setGeneratingKey(true);\n try {\n // Generate a secure cluster key\n const key = Array.from(crypto.getRandomValues(new Uint8Array(32))).map((b)=>b.toString(16).padStart(2, \"0\")).join(\"\");\n setClusterKey(key);\n } catch (error) {\n // Fallback key generation\n const key = Math.random().toString(36).substr(2, 32);\n setClusterKey(key);\n } finally{\n setGeneratingKey(false);\n }\n };\n const getNodeRoleDescription = (role)=>{\n switch(role){\n case \"coordinator\":\n return \"Manages cluster state and coordinates tasks. Requires stable network connection.\";\n case \"worker\":\n return \"Executes tasks assigned by coordinators. Can be dynamically added/removed.\";\n case \"hybrid\":\n return \"Can act as both coordinator and worker. Recommended for most deployments.\";\n default:\n return \"\";\n }\n };\n const getSystemRecommendation = ()=>{\n var _systemInfo_gpus;\n const memoryGB = (systemInfo === null || systemInfo === void 0 ? void 0 : systemInfo.memory_mb) ? Math.round(systemInfo.memory_mb / 1024) : 8;\n const cpuCores = (systemInfo === null || systemInfo === void 0 ? void 0 : systemInfo.cpu_cores) || 4;\n const hasGPU = (systemInfo === null || systemInfo === void 0 ? void 0 : (_systemInfo_gpus = systemInfo.gpus) === null || _systemInfo_gpus === void 0 ? void 0 : _systemInfo_gpus.length) > 0;\n if (memoryGB >= 16 && cpuCores >= 8) {\n return {\n role: \"coordinator\",\n reason: \"High-performance system suitable for cluster coordination\"\n };\n } else if (hasGPU) {\n return {\n role: \"hybrid\",\n reason: \"GPU acceleration available - good for both coordination and compute tasks\"\n };\n } else {\n return {\n role: \"worker\",\n reason: \"Resource-optimized configuration for task execution\"\n };\n }\n };\n const handleSubmit = (e)=>{\n var _systemInfo_network, _systemInfo_network_private_ips, _systemInfo_network1, _systemInfo_gpus;\n e.preventDefault();\n const clusterData = {\n ...config,\n clusterKey: config.mode === \"create\" ? clusterKey : undefined,\n systemInfo: {\n hostname: systemInfo === null || systemInfo === void 0 ? void 0 : (_systemInfo_network = systemInfo.network) === null || _systemInfo_network === void 0 ? void 0 : _systemInfo_network.hostname,\n ip: systemInfo === null || systemInfo === void 0 ? void 0 : (_systemInfo_network1 = systemInfo.network) === null || _systemInfo_network1 === void 0 ? void 0 : (_systemInfo_network_private_ips = _systemInfo_network1.private_ips) === null || _systemInfo_network_private_ips === void 0 ? void 0 : _systemInfo_network_private_ips[0],\n capabilities: (systemInfo === null || systemInfo === void 0 ? void 0 : (_systemInfo_gpus = systemInfo.gpus) === null || _systemInfo_gpus === void 0 ? void 0 : _systemInfo_gpus.length) > 0 ? [\n \"compute\",\n \"gpu\"\n ] : [\n \"compute\"\n ]\n }\n };\n onComplete({\n cluster: clusterData\n });\n };\n const recommendation = getSystemRecommendation();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: handleSubmit,\n className: \"space-y-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-gray-50 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900 mb-4 flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 210,\n columnNumber: 11\n }, this),\n \"Cluster Mode\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 209,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-2 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border-2 rounded-lg p-4 cursor-pointer transition-all \".concat(config.mode === \"create\" ? \"border-bzzz-primary bg-bzzz-primary bg-opacity-10\" : \"border-gray-200 hover:border-gray-300\"),\n onClick: ()=>setConfig((prev)=>({\n ...prev,\n mode: \"create\"\n })),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"h-5 w-5 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 224,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"font-medium text-gray-900\",\n children: \"Create New Cluster\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 225,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 223,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600\",\n children: \"Start a new BZZZ cluster and become the initial coordinator node.\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 227,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 215,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border-2 rounded-lg p-4 cursor-pointer transition-all \".concat(config.mode === \"join\" ? \"border-bzzz-primary bg-bzzz-primary bg-opacity-10\" : \"border-gray-200 hover:border-gray-300\"),\n onClick: ()=>setConfig((prev)=>({\n ...prev,\n mode: \"join\"\n })),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-5 w-5 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 241,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"font-medium text-gray-900\",\n children: \"Join Existing Cluster\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 242,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 240,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600\",\n children: \"Connect to an existing BZZZ cluster as a worker or coordinator node.\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 244,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 232,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 214,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 208,\n columnNumber: 7\n }, this),\n config.mode === \"create\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white border border-gray-200 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900 mb-4\",\n children: \"New Cluster Configuration\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 255,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Cluster Name\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 259,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: config.clusterName,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n clusterName: e.target.value\n })),\n placeholder: \"My BZZZ Cluster\",\n className: \"input-field\",\n required: true\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 260,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 258,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Network ID\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 271,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: config.networkId,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n networkId: e.target.value\n })),\n placeholder: \"bzzz-cluster-001\",\n className: \"input-field\",\n required: true\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 272,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600 mt-1\",\n children: \"Unique identifier for your cluster network\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 280,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 270,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Cluster Security Key\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 286,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex space-x-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: clusterKey,\n onChange: (e)=>setClusterKey(e.target.value),\n placeholder: \"Click generate or enter custom key\",\n className: \"input-field flex-1\",\n readOnly: !clusterKey\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 288,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: generateClusterKey,\n disabled: generatingKey,\n className: \"btn-outline whitespace-nowrap\",\n children: generatingKey ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-4 w-4 animate-spin\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 303,\n columnNumber: 23\n }, this) : /*#__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)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-4 w-4 mr-1\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 306,\n columnNumber: 25\n }, this),\n \"Generate\"\n ]\n }, void 0, true)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 296,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 287,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600 mt-1\",\n children: \"This key will be required for other nodes to join your cluster\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 312,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 285,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 257,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 254,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 253,\n columnNumber: 9\n }, this),\n config.mode === \"join\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white border border-gray-200 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900\",\n children: \"Available Clusters\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 326,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: scanForNodes,\n disabled: scanning,\n className: \"btn-outline text-sm\",\n children: scanning ? /*#__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)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-4 w-4 animate-spin mr-1\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 335,\n columnNumber: 21\n }, this),\n \"Scanning...\"\n ]\n }, void 0, true) : /*#__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)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-4 w-4 mr-1\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 340,\n columnNumber: 21\n }, this),\n \"Scan Network\"\n ]\n }, void 0, true)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 327,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 325,\n columnNumber: 13\n }, this),\n discoveredNodes.length > 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\n children: discoveredNodes.map((node)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border rounded-lg p-4 cursor-pointer transition-all \".concat(config.targetNode === node.id ? \"border-bzzz-primary bg-bzzz-primary bg-opacity-10\" : \"border-gray-200 hover:border-gray-300\"),\n onClick: ()=>setConfig((prev)=>({\n ...prev,\n targetNode: node.id\n })),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-5 w-5 text-gray-500 mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 362,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-medium text-gray-900\",\n children: node.hostname\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 363,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"ml-2 status-indicator \".concat(node.status === \"online\" ? \"status-online\" : \"status-offline\"),\n children: node.status\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 364,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 361,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600 mt-1\",\n children: [\n node.ip,\n \":\",\n node.port,\n \" • Version \",\n node.version\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 370,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-wrap gap-1 mt-1\",\n children: node.capabilities.map((cap, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"bg-gray-100 text-gray-700 px-2 py-1 rounded text-xs\",\n children: cap\n }, index, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 375,\n columnNumber: 29\n }, this))\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 373,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 360,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"h-5 w-5 text-bzzz-primary\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 381,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 359,\n columnNumber: 21\n }, this)\n }, node.id, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 350,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 348,\n columnNumber: 15\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center py-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-12 w-12 text-gray-400 mx-auto mb-4\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 388,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600\",\n children: scanning ? \"Scanning for BZZZ clusters...\" : \"No clusters found. Click scan to search for available clusters.\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 389,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 387,\n columnNumber: 15\n }, this),\n config.targetNode && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 pt-4 border-t border-gray-200\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Cluster Join Key\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 397,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"password\",\n value: config.joinKey || \"\",\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n joinKey: e.target.value\n })),\n placeholder: \"Enter cluster security key\",\n className: \"input-field\",\n required: true\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 398,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600 mt-1\",\n children: \"Enter the security key provided by the cluster administrator\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 406,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 396,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 324,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 323,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white border border-gray-200 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900 mb-4\",\n children: \"Node Role\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 417,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4 p-4 bg-blue-50 border border-blue-200 rounded-lg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"h-5 w-5 text-blue-600 mr-2 mt-0.5\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 422,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"font-medium text-blue-800\",\n children: [\n \"Recommended: \",\n recommendation.role.charAt(0).toUpperCase() + recommendation.role.slice(1)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 424,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-blue-700 mt-1\",\n children: recommendation.reason\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 427,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 423,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 421,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 420,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\n children: [\n \"coordinator\",\n \"worker\",\n \"hybrid\"\n ].map((role)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border-2 rounded-lg p-4 cursor-pointer transition-all \".concat(config.nodeRole === role ? \"border-bzzz-primary bg-bzzz-primary bg-opacity-10\" : \"border-gray-200 hover:border-gray-300\"),\n onClick: ()=>setConfig((prev)=>({\n ...prev,\n nodeRole: role\n })),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"radio\",\n name: \"nodeRole\",\n value: role,\n checked: config.nodeRole === role,\n onChange: ()=>setConfig((prev)=>({\n ...prev,\n nodeRole: role\n })),\n className: \"h-4 w-4 text-bzzz-primary focus:ring-bzzz-primary border-gray-300\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 446,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"ml-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"font-medium text-gray-900 capitalize\",\n children: role\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 455,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600\",\n children: getNodeRoleDescription(role)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 456,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 454,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 445,\n columnNumber: 15\n }, this)\n }, role, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 436,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 434,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 416,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white border border-gray-200 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900 mb-4\",\n children: \"Advanced Options\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 466,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n id: \"autoDiscovery\",\n checked: config.autoDiscovery,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n autoDiscovery: e.target.checked\n })),\n className: \"h-4 w-4 text-bzzz-primary focus:ring-bzzz-primary border-gray-300 rounded\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 470,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: \"autoDiscovery\",\n className: \"ml-2 text-sm font-medium text-gray-700\",\n children: \"Enable automatic node discovery (mDNS)\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 477,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 469,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n id: \"encryption\",\n checked: config.encryption,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n encryption: e.target.checked\n })),\n className: \"h-4 w-4 text-bzzz-primary focus:ring-bzzz-primary border-gray-300 rounded\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 483,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: \"encryption\",\n className: \"ml-2 text-sm font-medium text-gray-700\",\n children: \"Enable end-to-end encryption for cluster communication\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 490,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 482,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Redundancy Level\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 496,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n value: config.redundancy,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n redundancy: parseInt(e.target.value)\n })),\n className: \"input-field\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: 1,\n children: \"Low (1 replica)\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 502,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: 2,\n children: \"Medium (2 replicas)\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 503,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: 3,\n children: \"High (3 replicas)\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 504,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 497,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600 mt-1\",\n children: \"Number of replicas for critical cluster data\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 506,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 495,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 468,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 465,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-blue-50 border border-blue-200 rounded-lg p-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_ComputerDesktopIcon_InformationCircleIcon_KeyIcon_MagnifyingGlassIcon_PlusIcon_ServerStackIcon_UserGroupIcon_WifiIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"h-5 w-5 text-blue-600 mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 516,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-blue-800 font-medium\",\n children: \"Configuration Summary\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 517,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 515,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-blue-700 text-sm space-y-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"• Mode: \",\n config.mode === \"create\" ? \"Create new cluster\" : \"Join existing cluster\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 520,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"• Role: \",\n config.nodeRole\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 521,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"• Hostname: \",\n (systemInfo === null || systemInfo === void 0 ? void 0 : (_systemInfo_network = systemInfo.network) === null || _systemInfo_network === void 0 ? void 0 : _systemInfo_network.hostname) || \"Unknown\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 522,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"• IP Address: \",\n (systemInfo === null || systemInfo === void 0 ? void 0 : (_systemInfo_network1 = systemInfo.network) === null || _systemInfo_network1 === void 0 ? void 0 : (_systemInfo_network_private_ips = _systemInfo_network1.private_ips) === null || _systemInfo_network_private_ips === void 0 ? void 0 : _systemInfo_network_private_ips[0]) || \"Unknown\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 523,\n columnNumber: 11\n }, this),\n config.mode === \"create\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"• Cluster: \",\n config.clusterName\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 524,\n columnNumber: 40\n }, this),\n config.encryption && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: \"• Security: Encrypted communication enabled\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 525,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 519,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 514,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between pt-6 border-t border-gray-200\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: onBack && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: onBack,\n className: \"btn-outline\",\n children: \"Back\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 533,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 531,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"submit\",\n disabled: config.mode === \"create\" && (!config.clusterName || !config.networkId || !clusterKey) || config.mode === \"join\" && (!config.targetNode || !config.joinKey),\n className: \"btn-primary\",\n children: isCompleted ? \"Continue\" : \"Next: Testing & Validation\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 539,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 530,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ClusterFormation.tsx\",\n lineNumber: 206,\n columnNumber: 5\n }, this);\n}\n_s(ClusterFormation, \"Y6R1WrNrHydFHOVovIL9myUirA4=\");\n_c = ClusterFormation;\nvar _c;\n$RefreshReg$(_c, \"ClusterFormation\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9zZXR1cC9jb21wb25lbnRzL0NsdXN0ZXJGb3JtYXRpb24udHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMkM7QUFhUDtBQWlDckIsU0FBU1ksaUJBQWlCLEtBTWpCO1FBTmlCLEVBQ3ZDQyxVQUFVLEVBQ1ZDLFVBQVUsRUFDVkMsVUFBVSxFQUNWQyxNQUFNLEVBQ05DLFdBQVcsRUFDVyxHQU5pQjtRQXlkZkoscUJBQ0VBLGlDQUFBQTs7SUFuZDFCLE1BQU0sQ0FBQ0ssUUFBUUMsVUFBVSxHQUFHbkIsK0NBQVFBLENBQWdCO1FBQ2xEb0IsTUFBTTtRQUNOQyxXQUFXO1FBQ1hDLGFBQWE7UUFDYkMsVUFBVTtRQUNWQyxlQUFlO1FBQ2ZDLFlBQVk7UUFDWkMsWUFBWTtJQUNkO0lBRUEsTUFBTSxDQUFDQyxpQkFBaUJDLG1CQUFtQixHQUFHNUIsK0NBQVFBLENBQW1CLEVBQUU7SUFDM0UsTUFBTSxDQUFDNkIsVUFBVUMsWUFBWSxHQUFHOUIsK0NBQVFBLENBQUM7SUFDekMsTUFBTSxDQUFDK0IsZUFBZUMsaUJBQWlCLEdBQUdoQywrQ0FBUUEsQ0FBQztJQUNuRCxNQUFNLENBQUNpQyxZQUFZQyxjQUFjLEdBQUdsQywrQ0FBUUEsQ0FBQztJQUU3QywyQkFBMkI7SUFDM0JDLGdEQUFTQSxDQUFDO1lBTWlCWTtRQUx6QixJQUFJQyxXQUFXcUIsT0FBTyxFQUFFO1lBQ3RCaEIsVUFBVWlCLENBQUFBLE9BQVM7b0JBQUUsR0FBR0EsSUFBSTtvQkFBRSxHQUFHdEIsV0FBV3FCLE9BQU87Z0JBQUM7UUFDdEQ7UUFFQSxnREFBZ0Q7UUFDaEQsSUFBSSxDQUFDakIsT0FBT0csU0FBUyxLQUFJUix1QkFBQUEsa0NBQUFBLHNCQUFBQSxXQUFZd0IsT0FBTyxjQUFuQnhCLDBDQUFBQSxvQkFBcUJ5QixRQUFRLEdBQUU7WUFDdEQsTUFBTUEsV0FBV3pCLFdBQVd3QixPQUFPLENBQUNDLFFBQVE7WUFDNUMsTUFBTUMs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cHAvc2V0dXAvY29tcG9uZW50cy9DbHVzdGVyRm9ybWF0aW9uLnRzeD9jMzM3Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBcbiAgU2VydmVyU3RhY2tJY29uLFxuICBQbHVzSWNvbixcbiAgTWFnbmlmeWluZ0dsYXNzSWNvbixcbiAgV2lmaUljb24sXG4gIENvbXB1dGVyRGVza3RvcEljb24sXG4gIEFycm93UGF0aEljb24sXG4gIENoZWNrQ2lyY2xlSWNvbixcbiAgRXhjbGFtYXRpb25UcmlhbmdsZUljb24sXG4gIEluZm9ybWF0aW9uQ2lyY2xlSWNvbixcbiAgVXNlckdyb3VwSWNvbixcbiAgS2V5SWNvblxufSBmcm9tICdAaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUnXG5cbmludGVyZmFjZSBEaXNjb3ZlcmVkTm9kZSB7XG4gIGlkOiBzdHJpbmdcbiAgaG9zdG5hbWU6IHN0cmluZ1xuICBpcDogc3RyaW5nXG4gIHBvcnQ6IG51bWJlclxuICB2ZXJzaW9uOiBzdHJpbmdcbiAgY2FwYWJpbGl0aWVzOiBzdHJpbmdbXVxuICBzdGF0dXM6ICdvbmxpbmUnIHwgJ29mZmxpbmUnIHwgJ3BlbmRpbmcnXG4gIGxhc3RTZWVuOiBEYXRlXG59XG5cbmludGVyZmFjZSBDbHVzdGVyQ29uZmlnIHtcbiAgbW9kZTogJ2NyZWF0ZScgfCAnam9pbidcbiAgbmV0d29ya0lkOiBzdHJpbmdcbiAgY2x1c3Rlck5hbWU6IHN0cmluZ1xuICBub2RlUm9sZTogJ2Nvb3JkaW5hdG9yJyB8ICd3b3JrZXInIHwgJ2h5YnJpZCdcbiAgam9pbktleT86IHN0cmluZ1xuICB0YXJnZXROb2RlPzogc3RyaW5nXG4gIGF1dG9EaXNjb3Zlcnk6IGJvb2xlYW5cbiAgZW5jcnlwdGlvbjogYm9vbGVhblxuICByZWR1bmRhbmN5OiBudW1iZXJcbn1cblxuaW50ZXJmYWNlIENsdXN0ZXJGb3JtYXRpb25Qcm9wcyB7XG4gIHN5c3RlbUluZm86IGFueVxuICBjb25maWdEYXRhOiBhbnlcbiAgb25Db21wbGV0ZTogKGRhdGE6IGFueSkgPT4gdm9pZFxuICBvbkJhY2s/OiAoKSA9PiB2b2lkXG4gIGlzQ29tcGxldGVkOiBib29sZWFuXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIENsdXN0ZXJGb3JtYXRpb24oeyBcbiAgc3lzdGVtSW5mbywgXG4gIGNvbmZpZ0RhdGEsIFxuICBvbkNvbXBsZXRlLCBcbiAgb25CYWNrLCBcbiAgaXNDb21wbGV0ZWQgXG59OiBDbHVzdGVyRm9ybWF0aW9uUHJvcHMpIHtcbiAgY29uc3QgW2NvbmZpZywgc2V0Q29uZmlnXSA9IHVzZVN0YXRlPENsdXN0ZXJDb25maWc+KHtcbiAgICBtb2RlOiAnY3JlYXRlJyxcbiAgICBuZXR3b3JrSWQ6ICcnLFxuICAgIGNsdXN0ZXJOYW1lOiAnJyxcbiAgICBub2RlUm9sZTogJ2h5YnJpZCcsXG4gICAgYXV0b0Rpc2NvdmVyeTogdHJ1ZSxcbiAgICBlbmNyeXB0aW9uOiB0cnVlLFxuICAgIHJlZHVuZGFuY3k6IDJcbiAgfSlcblxuICBjb25zdCBbZGlzY292ZXJlZE5vZGVzLCBzZXREaXNjb3ZlcmVkTm9kZXNdID0gdXNlU3RhdGU8RGlzY292ZXJlZE5vZGVbXT4oW10pXG4gIGNvbnN0IFtzY2FubmluZywgc2V0U2Nhbm5pbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtnZW5lcmF0aW5nS2V5LCBzZXRHZW5lcmF0aW5nS2V5XSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbY2x1c3RlcktleSwgc2V0Q2x1c3RlcktleV0gPSB1c2VTdGF0ZSgnJylcblxuICAvLyBJbml0aWFsaXplIGNvbmZpZ3VyYXRpb25cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY29uZmlnRGF0YS5jbHVzdGVyKSB7XG4gICAgICBzZXRDb25maWcocHJldiA9PiAoeyAuLi5wcmV2LCAuLi5jb25maWdEYXRhLmNsdXN0ZXIgfSkpXG4gICAgfVxuICAgIFxuICAgIC8vIEdlbmVyYXRlIGRlZmF1bHQgbmV0d29yayBJRCBiYXNlZCBvbiBob3N0bmFtZVxuICAgIGlmICghY29uZmlnLm5ldHdvcmtJZCAmJiBzeXN0ZW1JbmZvPy5uZXR3b3JrPy5ob3N0bmFtZSkge1xuICAgICAgY29uc3QgaG9zdG5hbWUgPSBzeXN0ZW1JbmZvLm5ldHdvcmsuaG9zdG5hbWVcbiAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCkudG9TdHJpbmcoMzYpLnNsaWNlKC00KVxuICAgICAgc2V0Q29uZmlnKHByZXYgPT4gKHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgbmV0d29ya0lkOiBgYnp6ei0ke2hvc3RuYW1lfS0ke3RpbWVzdGFtcH1gLFxuICAgICAgICBjbHVzdGVyTmFtZTogYCR7aG9zdG5hbWV9IEJaWlogQ2x1c3RlcmBcbiAgICAgIH0pKVxuICAgIH1cbiAgfSwgW3N5c3RlbUluZm8sIGNvbmZpZ0RhdGFdKVxuXG4gIC8vIEF1dG8tZGlzY292ZXIgbm9kZXMgd2hlbiBqb2luaW5nXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGNvbmZpZy5tb2RlID09PSAnam9pbicgJiYgY29uZmlnLmF1dG9EaXNjb3ZlcnkpIHtcbiAgICAgIHNjYW5Gb3JOb2RlcygpXG4gICAgfVxuICB9LCBbY29uZmlnLm1vZGUsIGNvbmZpZy5hdXRvRGlzY292ZXJ5XSlcblxuICBjb25zdCBzY2FuRm9yTm9kZXMgPSBhc3luYyAoKSA9PiB7XG4gICAgc2V0U2Nhbm5pbmcodHJ1ZSlcbiAgICB0cnkge1xuICAgICAgLy8gVGhpcyB3b3VsZCBiZSBhIHJlYWwgbUROUy9uZXR3b3JrIHNjYW4gaW4gcHJvZHVjdGlvblxuICAgICAgLy8gU2ltdWxhdGluZyBkaXNjb3ZlcnkgZm9yIGRlbW9cbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAyMDAwKSlcbiAgICAgIFxuICAgICAgY29uc3QgbW9ja05vZGVzOiBEaXNjb3ZlcmVkTm9kZVtdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdub2RlLTAwMScsXG4gICAgICAgICAgaG9zdG5hbWU6ICdpcm9ud29vZCcsXG4gICAgICAgICAgaXA6ICcxOTIuMTY4LjEuNzInLFxuICAgICAgICAgIHBvcnQ6IDgwODAsXG4gICAgICAgICAgdmVyc2lvbjogJzIuMC4wJyxcbiAgICAgICAgICBjYXBhYmlsaXRpZXM6IFsnY29vcmRpbmF0b3InLCAnc3RvcmFnZScsICdjb21wdXRlJ10sXG4gICAgICAgICAgc3RhdHVzOiAnb25saW5lJyxcbiAgICAgICAgICBsYXN0U2VlbjogbmV3IERhdGUoKVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdub2RlLTAwMicsXG4gICAgICAgICAgaG9zdG5hbWU6ICd3YWxudXQnLFxuICAgICAgICAgIGlwOiAnMTkyLjE2OC4xLjI3JyxcbiAgICAgICAgICBwb3J0OiA4MDgwLFxuICAgICAgICAgIHZlcnNpb246ICcyLjAuMCcsXG4gICAgICAgICAgY2FwYWJpbGl0aWVzOiBbJ3dvcmtlcicsICdjb21wdXRlJ10sXG4gICAgICAgICAgc3RhdHVzOiAnb25saW5lJyxcbiAgICAgICAgICBsYXN0U2VlbjogbmV3IERhdGUoKVxuICAgICAgICB9XG4gICAgICBdXG4gICAgICBcbiAgICAgIHNldERpc2NvdmVyZWROb2Rlcyhtb2NrTm9kZXMpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ05vZGUgZGlzY292ZXJ5IGZhaWxlZDonLCBlcnJvcilcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0U2Nhbm5pbmcoZmFsc2UpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgZ2VuZXJhdGVDbHVzdGVyS2V5ID0gYXN5bmMgKCkgPT4ge1xuICAgIHNldEdlbmVyYXRpbmdLZXkodHJ1ZSlcbiAgICB0cnkge1xuICAgICAgLy8gR2VuZXJhdGUgYSBzZWN1cmUgY2x1c3RlciBrZXlcbiAgICAgIGNvbnN0IGtleSA9IEFycmF5LmZyb20oY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDhBcnJheSgzMikpKVxuICAgICAgICAubWFwKGIgPT4gYi50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKSlcbiAgICAgICAgLmpvaW4oJycpXG4gICAgICBzZXRDbHVzdGVyS2V5KGtleSlcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gRmFsbGJhY2sga2V5IGdlbmVyYXRpb25cbiAgICAgIGNvbnN0IGtleSA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCAzMilcbiAgICAgIHNldENsdXN0ZXJLZXkoa2V5KVxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRHZW5lcmF0aW5nS2V5KGZhbHNlKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGdldE5vZGVSb2xlRGVzY3JpcHRpb24gPSAocm9sZTogc3RyaW5nKSA9PiB7XG4gICAgc3dpdGNoIChyb2xlKSB7XG4gICAgICBjYXNlICdjb29yZGluYXRvcic6XG4gICAgICAgIHJldHVybiAnTWFuYWdlcyBjbHVzdGVyIHN0YXRlIGFuZCBjb29yZGluYXRlcyB0YXNrcy4gUmVxdWlyZXMgc3RhYmxlIG5ldHdvcmsgY29ubmVjdGlvbi4nXG4gICAgICBjYXNlICd3b3JrZXInOlxuICAgICAgICByZXR1cm4gJ0V4ZWN1dGVzIHRhc2tzIGFzc2lnbmVkIGJ5IGNvb3JkaW5hdG9ycy4gQ2FuIGJlIGR5bmFtaWNhbGx5IGFkZGVkL3JlbW92ZWQuJ1xuICAgICAgY2FzZSAnaHlicmlkJzpcbiAgICAgICAgcmV0dXJuICdDYW4gYWN0IGFzIGJvdGggY29vcmRpbmF0b3IgYW5kIHdvcmtlci4gUmVjb21tZW5kZWQgZm9yIG1vc3QgZGVwbG95bWVudHMuJ1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnXG4gICAgfVxuICB9XG5cbiAgY29uc3QgZ2V0U3lzdGVtUmVjb21tZW5kYXRpb24gPSAoKSA9PiB7XG4gICAgY29uc3QgbWVtb3J5R0IgPSBzeXN0ZW1JbmZvPy5tZW1vcnlfbWIgPyBNYXRoLnJvdW5kKHN5c3RlbUluZm8ubWVtb3J5X21iIC8gMTAyNCkgOiA4XG4gICAgY29uc3QgY3B1Q29yZXMgPSBzeXN0ZW1JbmZvPy5jcHVfY29yZXMgfHwgNFxuICAgIGNvbnN0IGhhc0dQVSA9IHN5c3RlbUluZm8/LmdwdXM/Lmxlbmd0aCA+IDBcblxuICAgIGlmIChtZW1vcnlHQiA+PSAxNiAmJiBjcHVDb3JlcyA+PSA4KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByb2xlOiAnY29vcmRpbmF0b3InLFxuICAgICAgICByZWFzb246ICdIaWdoLXBlcmZvcm1hbmNlIHN5c3RlbSBzdWl0YWJsZSBmb3IgY2x1c3RlciBjb29yZGluYXRpb24nXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChoYXNHUFUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJvbGU6ICdoeWJyaWQnLFxuICAgICAgICByZWFzb246ICdHUFUgYWNjZWxlcmF0aW9uIGF2YWlsYWJsZSAtIGdvb2QgZm9yIGJvdGggY29vcmRpbmF0aW9uIGFuZCBjb21wdXRlIHRhc2tzJ1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByb2xlOiAnd29ya2VyJyxcbiAgICAgICAgcmVhc29uOiAnUmVzb3VyY2Utb3B0aW1pemVkIGNvbmZpZ3VyYXRpb24gZm9yIHRhc2sgZXhlY3V0aW9uJ1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdCA9IChlOiBSZWFjdC5Gb3JtRXZlbnQpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBcbiAgICBjb25zdCBjbHVzdGVyRGF0YSA9IHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGNsdXN0ZXJLZXk6IGNvbmZpZy5tb2RlID09PSAnY3JlYXRlJyA/IGNsdXN0ZXJLZXkgOiB1bmRlZmluZWQsXG4gICAgICBzeXN0ZW1JbmZvOiB7XG4gICAgICAgIGhvc3RuYW1lOiBzeXN0ZW1JbmZvPy5uZXR3b3JrPy5ob3N0bmFtZSxcbiAgICAgICAgaXA6IHN5c3RlbUluZm8/Lm5ldHdvcms/LnByaXZhdGVfaXBzPy5bMF0sXG4gICAgICAgIGNhcGFiaWxpdGllczogc3lzdGVtSW5mbz8uZ3B1cz8ubGVuZ3RoID4gMCA/IFsnY29tcHV0ZScsICdncHUnXSA6IFsnY29tcHV0ZSddXG4gICAgICB9XG4gICAgfVxuXG4gICAgb25Db21wbGV0ZSh7IGNsdXN0ZXI6IGNsdXN0ZXJEYXRhIH0pXG4gIH1cblxuICBjb25zdCByZWNvbW1lbmRhdGlvbiA9IGdldFN5c3RlbVJlY29tbWVuZGF0aW9uKClcblxuICByZXR1cm4gKFxuICAgIDxmb3JtIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9IGNsYXNzTmFtZT1cInNwYWNlLXktNlwiPlxuICAgICAgey8qIENsdXN0ZXIgTW9kZSBTZWxlY3Rpb24gKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImJnLWdyYXktNTAgcm91bmRlZC1sZyBwLTZcIj5cbiAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBtYi00IGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPFNlcnZlclN0YWNrSWNvbiBjbGFzc05hbWU9XCJoLTYgdy02IHRleHQtYnp6ei1wcmltYXJ5IG1yLTJcIiAvPlxuICAgICAgICAgIENsdXN0ZXIgTW9kZVxuICAgICAgICA8L2gzPlxuICAgICAgICBcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIGdhcC00XCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgYm9yZGVyLTIgcm91bmRlZC1sZyBwLTQgY3Vyc29yLXBvaW50ZXIgdHJhbnNpdGlvbi1hbGwgJHtcbiAgICAgICAgICAgICAgY29uZmlnLm1vZGUgPT09ICdjcmVhdGUnXG4gICAgICAgICAgICAgICAgPyAnYm9yZGVyLWJ6enotcHJpbWFyeSBiZy1ienp6LXByaW1hcnkgYmctb3BhY2l0eS0xMCdcbiAgICAgICAgICAgICAgICA6ICdib3JkZXItZ3JheS0yMDAgaG92ZXI6Ym9yZGVyLWdyYXktMzAwJ1xuICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRDb25maWcocHJldiA9PiAoeyAuLi5wcmV2LCBtb2RlOiAnY3JlYXRlJyB9KSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBtYi0yXCI+XG4gICAgICAgICAgICAgIDxQbHVzSWNvbiBjbGFzc05hbWU9XCJoLTUgdy01IHRleHQtYnp6ei1wcmltYXJ5IG1yLTJcIiAvPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDBcIj5DcmVhdGUgTmV3IENsdXN0ZXI8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj5cbiAgICAgICAgICAgICAgU3RhcnQgYSBuZXcgQlpaWiBjbHVzdGVyIGFuZCBiZWNvbWUgdGhlIGluaXRpYWwgY29vcmRpbmF0b3Igbm9kZS5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YGJvcmRlci0yIHJvdW5kZWQtbGcgcC00IGN1cnNvci1wb2ludGVyIHRyYW5zaXRpb24tYWxsICR7XG4gICAgICAgICAgICAgIGNvbmZpZy5tb2RlID09PSAnam9pbidcbiAgICAgICAgICAgICAgICA/ICdib3JkZXItYnp6ei1wcmltYXJ5IGJnLWJ6enotcHJpbWFyeSBiZy1vcGFjaXR5LTEwJ1xuICAgICAgICAgICAgICAgIDogJ2JvcmRlci1ncmF5LTIwMCBob3Zlcjpib3JkZXItZ3JheS0zMDAnXG4gICAgICAgICAgICB9YH1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldENvbmZpZyhwcmV2ID0+ICh7IC4uLnByZXYsIG1vZGU6ICdqb2luJyB9KSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBtYi0yXCI+XG4gICAgICAgICAgICAgIDxVc2VyR3JvdXBJY29uIGNsYXNzTmFtZT1cImgtNSB3LTUgdGV4dC1ienp6LXByaW1hcnkgbXItMlwiIC8+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMFwiPkpvaW4gRXhpc3RpbmcgQ2x1c3RlcjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTYwMFwiPlxuICAgICAgICAgICAgICBDb25uZWN0IHRvIGFuIGV4aXN0aW5nIEJaWlogY2x1c3RlciBhcyBhIHdvcmtlciBvciBjb29yZGluYXRvciBub2RlLlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBDcmVhdGUgQ2x1c3RlciBDb25maWd1cmF0aW9uICovfVxuICAgICAge2NvbmZpZy5tb2RlID09PSAnY3JlYXRlJyAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS02XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQtbGcgcC02XCI+XG4gICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwIG1iLTRcIj5OZXcgQ2x1c3RlciBDb25maWd1cmF0aW9uPC9oMz5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTRcIj5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwibGFiZWxcIj5DbHVzdGVyIE5hbWU8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2NvbmZpZy5jbHVzdGVyTmFtZX1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Q29uZmlnKHByZXYgPT4gKHsgLi4ucHJldiwgY2x1c3Rlck5hbWU6IGUudGFyZ2V0LnZhbHVlIH0pKX1cbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTXkgQlpaWiBDbHVzdGVyXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImlucHV0LWZpZWxkXCJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwibGFiZWxcIj5OZXR3b3JrIElEPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtjb25maWcubmV0d29ya0lkfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRDb25maWcocHJldiA9PiAoeyAuLi5wcmV2LCBuZXR3b3JrSWQ6IGUudGFyZ2V0LnZhbHVlIH0pKX1cbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiYnp6ei1jbHVzdGVyLTAwMVwiXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbnB1dC1maWVsZFwiXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIG10LTFcIj5cbiAgICAgICAgICAgICAgICAgIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB5b3VyIGNsdXN0ZXIgbmV0d29ya1xuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwibGFiZWxcIj5DbHVzdGVyIFNlY3VyaXR5IEtleTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IHNwYWNlLXgtMlwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2NsdXN0ZXJLZXl9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Q2x1c3RlcktleShlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQ2xpY2sgZ2VuZXJhdGUgb3IgZW50ZXIgY3VzdG9tIGtleVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImlucHV0LWZpZWxkIGZsZXgtMVwiXG4gICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXshY2x1c3RlcktleX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtnZW5lcmF0ZUNsdXN0ZXJLZXl9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtnZW5lcmF0aW5nS2V5fVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJidG4tb3V0bGluZSB3aGl0ZXNwYWNlLW5vd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtnZW5lcmF0aW5nS2V5ID8gKFxuICAgICAgICAgICAgICAgICAgICAgIDxBcnJvd1BhdGhJY29uIGNsYXNzTmFtZT1cImgtNCB3LTQgYW5pbWF0ZS1zcGluXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgPEtleUljb24gY2xhc3NOYW1lPVwiaC00IHctNCBtci0xXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlXG4gICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDAgbXQtMVwiPlxuICAgICAgICAgICAgICAgICAgVGhpcyBrZXkgd2lsbCBiZSByZXF1aXJlZCBmb3Igb3RoZXIgbm9kZXMgdG8gam9pbiB5b3VyIGNsdXN0ZXJcbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cblxuICAgICAgey8qIEpvaW4gQ2x1c3RlciBDb25maWd1cmF0aW9uICovfVxuICAgICAge2NvbmZpZy5tb2RlID09PSAnam9pbicgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktNlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHAtNlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItNFwiPlxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwXCI+QXZhaWxhYmxlIENsdXN0ZXJzPC9oMz5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3NjYW5Gb3JOb2Rlc31cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17c2Nhbm5pbmd9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnRuLW91dGxpbmUgdGV4dC1zbVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7c2Nhbm5pbmcgPyAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8QXJyb3dQYXRoSWNvbiBjbGFzc05hbWU9XCJoLTQgdy00IGFuaW1hdGUtc3BpbiBtci0xXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgU2Nhbm5pbmcuLi5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8TWFnbmlmeWluZ0dsYXNzSWNvbiBjbGFzc05hbWU9XCJoLTQgdy00IG1yLTFcIiAvPlxuICAgICAgICAgICAgICAgICAgICBTY2FuIE5ldHdvcmtcbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIHtkaXNjb3ZlcmVkTm9kZXMubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTNcIj5cbiAgICAgICAgICAgICAgICB7ZGlzY292ZXJlZE5vZGVzLm1hcCgobm9kZSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBrZXk9e25vZGUuaWR9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YGJvcmRlciByb3VuZGVkLWxnIHAtNCBjdXJzb3ItcG9pbnRlciB0cmFuc2l0aW9uLWFsbCAke1xuICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy50YXJnZXROb2RlID09PSBub2RlLmlkXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdib3JkZXItYnp6ei1wcmltYXJ5IGJnLWJ6enotcHJpbWFyeSBiZy1vcGFjaXR5LTEwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnYm9yZGVyLWdyYXktMjAwIGhvdmVyOmJvcmRlci1ncmF5LTMwMCdcbiAgICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldENvbmZpZyhwcmV2ID0+ICh7IC4uLnByZXYsIHRhcmdldE5vZGU6IG5vZGUuaWQgfSkpfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxDb21wdXRlckRlc2t0b3BJY29uIGNsYXNzTmFtZT1cImgtNSB3LTUgdGV4dC1ncmF5LTUwMCBtci0yXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMFwiPntub2RlLmhvc3RuYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgbWwtMiBzdGF0dXMtaW5kaWNhdG9yICR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5zdGF0dXMgPT09ICdvbmxpbmUnID8gJ3N0YXR1cy1vbmxpbmUnIDogJ3N0YXR1cy1vZmZsaW5lJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9YH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge25vZGUuc3RhdHVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIG10LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge25vZGUuaXB9Ontub2RlLnBvcnR9IOKAoiBWZXJzaW9uIHtub2RlLnZlcnNpb259XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LXdyYXAgZ2FwLTEgbXQtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7bm9kZS5jYXBhYmlsaXRpZXMubWFwKChjYXAsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4ga2V5PXtpbmRleH0gY2xhc3NOYW1lPVwiYmctZ3JheS0xMDAgdGV4dC1ncmF5LTcwMCBweC0yIHB5LTEgcm91bmRlZCB0ZXh0LXhzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2FwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8V2lmaUljb24gY2xhc3NOYW1lPVwiaC01IHctNSB0ZXh0LWJ6enotcHJpbWFyeVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBweS04XCI+XG4gICAgICAgICAgICAgICAgPE1hZ25pZnlpbmdHbGFzc0ljb24gY2xhc3NOYW1lPVwiaC0xMiB3LTEyIHRleHQtZ3JheS00MDAgbXgtYXV0byBtYi00XCIgLz5cbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNjAwXCI+XG4gICAgICAgICAgICAgICAgICB7c2Nhbm5pbmcgPyAnU2Nhbm5pbmcgZm9yIEJaWlogY2x1c3RlcnMuLi4nIDogJ05vIGNsdXN0ZXJzIGZvdW5kLiBDbGljayBzY2FuIHRvIHNlYXJjaCBmb3IgYXZhaWxhYmxlIGNsdXN0ZXJzLid9XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHtjb25maWcudGFyZ2V0Tm9kZSAmJiAoXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtNCBwdC00IGJvcmRlci10IGJvcmRlci1ncmF5LTIwMFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJsYWJlbFwiPkNsdXN0ZXIgSm9pbiBLZXk8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtjb25maWcuam9pbktleSB8fCAnJ31cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Q29uZmlnKHByZXYgPT4gKHsgLi4ucHJldiwgam9pbktleTogZS50YXJnZXQudmFsdWUgfSkpfVxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBjbHVzdGVyIHNlY3VyaXR5IGtleVwiXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbnB1dC1maWVsZFwiXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIG10LTFcIj5cbiAgICAgICAgICAgICAgICAgIEVudGVyIHRoZSBzZWN1cml0eSBrZXkgcHJvdmlkZWQgYnkgdGhlIGNsdXN0ZXIgYWRtaW5pc3RyYXRvclxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG5cbiAgICAgIHsvKiBOb2RlIFJvbGUgQ29uZmlndXJhdGlvbiAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHAtNlwiPlxuICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwIG1iLTRcIj5Ob2RlIFJvbGU8L2gzPlxuICAgICAgICBcbiAgICAgICAgey8qIFN5c3RlbSBSZWNvbW1lbmRhdGlvbiAqL31cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi00IHAtNCBiZy1ibHVlLTUwIGJvcmRlciBib3JkZXItYmx1ZS0yMDAgcm91bmRlZC1sZ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1zdGFydFwiPlxuICAgICAgICAgICAgPEluZm9ybWF0aW9uQ2lyY2xlSWNvbiBjbGFzc05hbWU9XCJoLTUgdy01IHRleHQtYmx1ZS02MDAgbXItMiBtdC0wLjVcIiAvPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb250LW1lZGl1bSB0ZXh0LWJsdWUtODAwXCI+XG4gICAgICAgICAgICAgICAgUmVjb21tZW5kZWQ6IHtyZWNvbW1lbmRhdGlvbi5yb2xlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcmVjb21tZW5kYXRpb24ucm9sZS5zbGljZSgxKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWJsdWUtNzAwIG10LTFcIj5cbiAgICAgICAgICAgICAgICB7cmVjb21tZW5kYXRpb24ucmVhc29ufVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktM1wiPlxuICAgICAgICAgIHtbJ2Nvb3JkaW5hdG9yJywgJ3dvcmtlcicsICdoeWJyaWQnXS5tYXAoKHJvbGUpID0+IChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAga2V5PXtyb2xlfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2Bib3JkZXItMiByb3VuZGVkLWxnIHAtNCBjdXJzb3ItcG9pbnRlciB0cmFuc2l0aW9uLWFsbCAke1xuICAgICAgICAgICAgICAgIGNvbmZpZy5ub2RlUm9sZSA9PT0gcm9sZVxuICAgICAgICAgICAgICAgICAgPyAnYm9yZGVyLWJ6enotcHJpbWFyeSBiZy1ienp6LXByaW1hcnkgYmctb3BhY2l0eS0xMCdcbiAgICAgICAgICAgICAgICAgIDogJ2JvcmRlci1ncmF5LTIwMCBob3Zlcjpib3JkZXItZ3JheS0zMDAnXG4gICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRDb25maWcocHJldiA9PiAoeyAuLi5wcmV2LCBub2RlUm9sZTogcm9sZSBhcyBhbnkgfSkpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm5vZGVSb2xlXCJcbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtyb2xlfVxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17Y29uZmlnLm5vZGVSb2xlID09PSByb2xlfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eygpID0+IHNldENvbmZpZyhwcmV2ID0+ICh7IC4uLnByZXYsIG5vZGVSb2xlOiByb2xlIGFzIGFueSB9KSl9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtYnp6ei1wcmltYXJ5IGZvY3VzOnJpbmctYnp6ei1wcmltYXJ5IGJvcmRlci1ncmF5LTMwMFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1sLTNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBjYXBpdGFsaXplXCI+e3JvbGV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTYwMFwiPntnZXROb2RlUm9sZURlc2NyaXB0aW9uKHJvbGUpfTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogQWR2YW5jZWQgT3B0aW9ucyAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHAtNlwiPlxuICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwIG1iLTRcIj5BZHZhbmNlZCBPcHRpb25zPC9oMz5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIGlkPVwiYXV0b0Rpc2NvdmVyeVwiXG4gICAgICAgICAgICAgIGNoZWNrZWQ9e2NvbmZpZy5hdXRvRGlzY292ZXJ5fVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldENvbmZpZyhwcmV2ID0+ICh7IC4uLnByZXYsIGF1dG9EaXNjb3Zlcnk6IGUudGFyZ2V0LmNoZWNrZWQgfSkpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtYnp6ei1wcmltYXJ5IGZvY3VzOnJpbmctYnp6ei1wcmltYXJ5IGJvcmRlci1ncmF5LTMwMCByb3VuZGVkXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cImF1dG9EaXNjb3ZlcnlcIiBjbGFzc05hbWU9XCJtbC0yIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMFwiPlxuICAgICAgICAgICAgICBFbmFibGUgYXV0b21hdGljIG5vZGUgZGlzY292ZXJ5IChtRE5TKVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICBpZD1cImVuY3J5cHRpb25cIlxuICAgICAgICAgICAgICBjaGVja2VkPXtjb25maWcuZW5jcnlwdGlvbn1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRDb25maWcocHJldiA9PiAoeyAuLi5wcmV2LCBlbmNyeXB0aW9uOiBlLnRhcmdldC5jaGVja2VkIH0pKX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC00IHctNCB0ZXh0LWJ6enotcHJpbWFyeSBmb2N1czpyaW5nLWJ6enotcHJpbWFyeSBib3JkZXItZ3JheS0zMDAgcm91bmRlZFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJlbmNyeXB0aW9uXCIgY2xhc3NOYW1lPVwibWwtMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDBcIj5cbiAgICAgICAgICAgICAgRW5hYmxlIGVuZC10by1lbmQgZW5jcnlwdGlvbiBmb3IgY2x1c3RlciBjb21tdW5pY2F0aW9uXG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJsYWJlbFwiPlJlZHVuZGFuY3kgTGV2ZWw8L2xhYmVsPlxuICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICB2YWx1ZT17Y29uZmlnLnJlZHVuZGFuY3l9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Q29uZmlnKHByZXYgPT4gKHsgLi4ucHJldiwgcmVkdW5kYW5jeTogcGFyc2VJbnQoZS50YXJnZXQudmFsdWUpIH0pKX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW5wdXQtZmllbGRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPXsxfT5Mb3cgKDEgcmVwbGljYSk8L29wdGlvbj5cbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT17Mn0+TWVkaXVtICgyIHJlcGxpY2FzKTwvb3B0aW9uPlxuICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPXszfT5IaWdoICgzIHJlcGxpY2FzKTwvb3B0aW9uPlxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDAgbXQtMVwiPlxuICAgICAgICAgICAgICBOdW1iZXIgb2YgcmVwbGljYXMgZm9yIGNyaXRpY2FsIGNsdXN0ZXIgZGF0YVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogQ29uZmlndXJhdGlvbiBTdW1tYXJ5ICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy1ibHVlLTUwIGJvcmRlciBib3JkZXItYmx1ZS0yMDAgcm91bmRlZC1sZyBwLTRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBtYi0yXCI+XG4gICAgICAgICAgPENoZWNrQ2lyY2xlSWNvbiBjbGFzc05hbWU9XCJoLTUgdy01IHRleHQtYmx1ZS02MDAgbXItMlwiIC8+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1ibHVlLTgwMCBmb250LW1lZGl1bVwiPkNvbmZpZ3VyYXRpb24gU3VtbWFyeTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1ibHVlLTcwMCB0ZXh0LXNtIHNwYWNlLXktMVwiPlxuICAgICAgICAgIDxwPuKAoiBNb2RlOiB7Y29uZmlnLm1vZGUgPT09ICdjcmVhdGUnID8gJ0NyZWF0ZSBuZXcgY2x1c3RlcicgOiAnSm9pbiBleGlzdGluZyBjbHVzdGVyJ308L3A+XG4gICAgICAgICAgPHA+4oCiIFJvbGU6IHtjb25maWcubm9kZVJvbGV9PC9wPlxuICAgICAgICAgIDxwPuKAoiBIb3N0bmFtZToge3N5c3RlbUluZm8/Lm5ldHdvcms/Lmhvc3RuYW1lIHx8ICdVbmtub3duJ308L3A+XG4gICAgICAgICAgPHA+4oCiIElQIEFkZHJlc3M6IHtzeXN0ZW1JbmZvPy5uZXR3b3JrPy5wcml2YXRlX2lwcz8uWzBdIHx8ICdVbmtub3duJ308L3A+XG4gICAgICAgICAge2NvbmZpZy5tb2RlID09PSAnY3JlYXRlJyAmJiA8cD7igKIgQ2x1c3Rlcjoge2NvbmZpZy5jbHVzdGVyTmFtZX08L3A+fVxuICAgICAgICAgIHtjb25maWcuZW5jcnlwdGlvbiAmJiA8cD7igKIgU2VjdXJpdHk6IEVuY3J5cHRlZCBjb21tdW5pY2F0aW9uIGVuYWJsZWQ8L3A+fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogQWN0aW9uIEJ1dHRvbnMgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1iZXR3ZWVuIHB0LTYgYm9yZGVyLXQgYm9yZGVyLWdyYXktMjAwXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge29uQmFjayAmJiAoXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtvbkJhY2t9IGNsYXNzTmFtZT1cImJ0bi1vdXRsaW5lXCI+XG4gICAgICAgICAgICAgIEJhY2tcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgIGRpc2FibGVkPXtcbiAgICAgICAgICAgIChjb25maWcubW9kZSA9PT0gJ2NyZWF0ZScgJiYgKCFjb25maWcuY2x1c3Rlck5hbWUgfHwgIWNvbmZpZy5uZXR3b3JrSWQgfHwgIWNsdXN0ZXJLZXkpKSB8fFxuICAgICAgICAgICAgKGNvbmZpZy5tb2RlID09PSAnam9pbicgJiYgKCFjb25maWcudGFyZ2V0Tm9kZSB8fCAhY29uZmlnLmpvaW5LZXkpKVxuICAgICAgICAgIH1cbiAgICAgICAgICBjbGFzc05hbWU9XCJidG4tcHJpbWFyeVwiXG4gICAgICAgID5cbiAgICAgICAgICB7aXNDb21wbGV0ZWQgPyAnQ29udGludWUnIDogJ05leHQ6IFRlc3RpbmcgJiBWYWxpZGF0aW9uJ31cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gIClcbn0iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJTZXJ2ZXJTdGFja0ljb24iLCJQbHVzSWNvbiIsIk1hZ25pZnlpbmdHbGFzc0ljb24iLCJXaWZpSWNvbiIsIkNvbXB1dGVyRGVza3RvcEljb24iLCJBcnJvd1BhdGhJY29uIiwiQ2hlY2tDaXJjbGVJY29uIiwiSW5mb3JtYXRpb25DaXJjbGVJY29uIiwiVXNlckdyb3VwSWNvbiIsIktleUljb24iLCJDbHVzdGVyRm9ybWF0aW9uIiwic3lzdGVtSW5mbyIsImNvbmZpZ0RhdGEiLCJvbkNvbXBsZXRlIiwib25CYWNrIiwiaXNDb21wbGV0ZWQiLCJjb25maWciLCJzZXRDb25maWciLCJtb2RlIiwibmV0d29ya0lkIiwiY2x1c3Rlck5hbWUiLCJub2RlUm9sZSIsImF1dG9EaXNjb3ZlcnkiLCJlbmNyeXB0aW9uIiwicmVkdW5kYW5jeSIsImRpc2NvdmVyZWROb2RlcyIsInNldERpc2NvdmVyZWROb2RlcyIsInNjYW5uaW5nIiwic2V0U2Nhbm5pbmciLCJnZW5lcmF0aW5nS2V5Iiwic2V0R2VuZXJhdGluZ0tleSIsImNsdXN0ZXJLZXkiLCJzZXRDbHVzdGVyS2V5IiwiY2x1c3RlciIsInByZXYiLCJuZXR3b3JrIiwiaG9zdG5hbWUiLCJ0aW1lc3RhbXAiLCJEYXRlIiwibm93IiwidG9TdHJpbmciLCJzbGljZSIsInNjYW5Gb3JOb2RlcyIsIlByb21pc2UiLCJyZXNvbHZlIiwic2V0VGltZW91dCIsIm1vY2tOb2RlcyIsImlkIiwiaXAiLCJwb3J0IiwidmVyc2lvbiIsImNhcGFiaWxpdGllcyIsInN0YXR1cyIsImxhc3RTZWVuIiwiZXJyb3IiLCJjb25zb2xlIiwiZ2VuZXJhdGVDbHVzdGVyS2V5Iiwia2V5IiwiQXJyYXkiLCJmcm9tIiwiY3J5cHRvIiwiZ2V0UmFuZG9tVmFsdWVzIiwiVWludDhBcnJheSIsIm1hcCIsImIiLCJwYWRTdGFydCIsImpvaW4iLCJNYXRoIiwicmFuZG9tIiwic3Vic3RyIiwiZ2V0Tm9kZVJvbGVEZXNjcmlwdGlvbiIsInJvbGUiLCJnZXRTeXN0ZW1SZWNvbW1lbmRhdGlvbiIsIm1lbW9yeUdCIiwibWVtb3J5X21iIiwicm91bmQiLCJjcHVDb3JlcyIsImNwdV9jb3JlcyIsImhhc0dQVSIsImdwdXMiLCJsZW5ndGgiLCJyZWFzb24iLCJoYW5kbGVTdWJtaXQiLCJlIiwicHJldmVudERlZmF1bHQiLCJjbHVzdGVyRGF0YSIsInVuZGVmaW5lZCIsInByaXZhdGVfaXBzIiwicmVjb21tZW5kYXRpb24iLCJmb3JtIiwib25TdWJtaXQiLCJjbGFzc05hbWUiLCJkaXYiLCJoMyIsIm9uQ2xpY2siLCJsYWJlbCIsImlucHV0IiwidHlwZSIsInZhbHVlIiwib25DaGFuZ2UiLCJ0YXJnZXQiLCJwbGFjZWhvbGRlciIsInJlcXVpcmVkIiwicCIsInJlYWRPbmx5IiwiYnV0dG9uIiwiZGlzYWJsZWQiLCJub2RlIiwidGFyZ2V0Tm9kZSIsInNwYW4iLCJjYXAiLCJpbmRleCIsImpvaW5LZXkiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsIm5hbWUiLCJjaGVja2VkIiwiaHRtbEZvciIsInNlbGVjdCIsInBhcnNlSW50Iiwib3B0aW9uIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/setup/components/ClusterFormation.tsx\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./app/setup/components/LicenseValidation.tsx":
|
|
/*!****************************************************!*\
|
|
!*** ./app/setup/components/LicenseValidation.tsx ***!
|
|
\****************************************************/
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ LicenseValidation; }\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 _barrel_optimize_names_CheckCircleIcon_DocumentTextIcon_ExclamationTriangleIcon_KeyIcon_UserIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircleIcon,DocumentTextIcon,ExclamationTriangleIcon,KeyIcon,UserIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/KeyIcon.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircleIcon_DocumentTextIcon_ExclamationTriangleIcon_KeyIcon_UserIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircleIcon,DocumentTextIcon,ExclamationTriangleIcon,KeyIcon,UserIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CheckCircleIcon.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircleIcon_DocumentTextIcon_ExclamationTriangleIcon_KeyIcon_UserIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircleIcon,DocumentTextIcon,ExclamationTriangleIcon,KeyIcon,UserIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/UserIcon.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircleIcon_DocumentTextIcon_ExclamationTriangleIcon_KeyIcon_UserIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircleIcon,DocumentTextIcon,ExclamationTriangleIcon,KeyIcon,UserIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ExclamationTriangleIcon.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircleIcon_DocumentTextIcon_ExclamationTriangleIcon_KeyIcon_UserIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircleIcon,DocumentTextIcon,ExclamationTriangleIcon,KeyIcon,UserIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/DocumentTextIcon.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\nfunction LicenseValidation(param) {\n let { systemInfo, configData, onComplete, onBack, isCompleted } = param;\n var _configData_license, _configData_license1, _configData_license2;\n _s();\n const [licenseData, setLicenseData] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n email: (configData === null || configData === void 0 ? void 0 : (_configData_license = configData.license) === null || _configData_license === void 0 ? void 0 : _configData_license.email) || \"\",\n licenseKey: (configData === null || configData === void 0 ? void 0 : (_configData_license1 = configData.license) === null || _configData_license1 === void 0 ? void 0 : _configData_license1.licenseKey) || \"\",\n organizationName: (configData === null || configData === void 0 ? void 0 : (_configData_license2 = configData.license) === null || _configData_license2 === void 0 ? void 0 : _configData_license2.organizationName) || \"\"\n });\n const [validating, setValidating] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [validationResult, setValidationResult] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n // Email validation function\n const isValidEmail = (email)=>{\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emailRegex.test(email);\n };\n // Check if form is ready for validation\n const canValidate = licenseData.email && isValidEmail(licenseData.email) && licenseData.licenseKey;\n const validateLicense = async ()=>{\n if (!licenseData.email || !licenseData.licenseKey) {\n setError(\"Both email and license key are required\");\n return;\n }\n if (!isValidEmail(licenseData.email)) {\n setError(\"Please enter a valid email address\");\n return;\n }\n setValidating(true);\n setError(\"\");\n setValidationResult(null);\n try {\n const response = await fetch(\"/api/setup/license/validate\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n email: licenseData.email,\n licenseKey: licenseData.licenseKey,\n organizationName: licenseData.organizationName\n })\n });\n const result = await response.json();\n if (response.ok && result.valid) {\n setValidationResult({\n valid: true,\n message: result.message || \"License validated successfully\",\n details: result.details\n });\n } else {\n setValidationResult({\n valid: false,\n message: result.message || \"License validation failed\",\n details: result.details\n });\n }\n } catch (error) {\n console.error(\"License validation error:\", error);\n setValidationResult({\n valid: false,\n message: \"Failed to validate license. Please check your connection and try again.\"\n });\n } finally{\n setValidating(false);\n }\n };\n const handleSubmit = (e)=>{\n e.preventDefault();\n if (!licenseData.email || !licenseData.licenseKey) {\n setError(\"Both email and license key are required\");\n return;\n }\n if (!(validationResult === null || validationResult === void 0 ? void 0 : validationResult.valid)) {\n setError(\"Please validate your license before continuing\");\n return;\n }\n setError(\"\");\n onComplete({\n license: {\n ...licenseData,\n validatedAt: new Date().toISOString(),\n validationDetails: validationResult.details\n }\n });\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: handleSubmit,\n className: \"space-y-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentTextIcon_ExclamationTriangleIcon_KeyIcon_UserIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 142,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900\",\n children: \"License Information\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 143,\n columnNumber: 11\n }, this),\n (validationResult === null || validationResult === void 0 ? void 0 : validationResult.valid) && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentTextIcon_ExclamationTriangleIcon_KeyIcon_UserIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"h-5 w-5 text-green-500 ml-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 144,\n columnNumber: 39\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 141,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: \"Email Address\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 149,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentTextIcon_ExclamationTriangleIcon_KeyIcon_UserIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-5 w-5 text-gray-400 absolute left-3 top-1/2 transform -translate-y-1/2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 153,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"email\",\n value: licenseData.email,\n onChange: (e)=>setLicenseData((prev)=>({\n ...prev,\n email: e.target.value\n })),\n placeholder: \"your-email@company.com\",\n className: \"w-full pl-10 pr-4 py-3 border rounded-lg focus:ring-bzzz-primary focus:border-bzzz-primary \".concat(licenseData.email && !isValidEmail(licenseData.email) ? \"border-red-300 bg-red-50\" : \"border-gray-300\"),\n required: true\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 154,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 152,\n columnNumber: 13\n }, this),\n licenseData.email && !isValidEmail(licenseData.email) ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-red-600 mt-1\",\n children: \"Please enter a valid email address\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 168,\n columnNumber: 15\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-500 mt-1\",\n children: \"The email address associated with your CHORUS:agents license\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 170,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 148,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: \"License Key\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 177,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentTextIcon_ExclamationTriangleIcon_KeyIcon_UserIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"h-5 w-5 text-gray-400 absolute left-3 top-1/2 transform -translate-y-1/2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 181,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: licenseData.licenseKey,\n onChange: (e)=>setLicenseData((prev)=>({\n ...prev,\n licenseKey: e.target.value\n })),\n placeholder: \"BZZZ-XXXX-XXXX-XXXX-XXXX\",\n className: \"w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg focus:ring-bzzz-primary focus:border-bzzz-primary font-mono\",\n required: true\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 182,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 180,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-500 mt-1\",\n children: \"Your unique CHORUS:agents license key (found in your purchase confirmation email)\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 191,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 176,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: \"Organization Name (Optional)\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 197,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: licenseData.organizationName,\n onChange: (e)=>setLicenseData((prev)=>({\n ...prev,\n organizationName: e.target.value\n })),\n placeholder: \"Your Company Name\",\n className: \"w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-bzzz-primary focus:border-bzzz-primary\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 200,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-500 mt-1\",\n children: \"Optional: Organization name for license tracking\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 207,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 196,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: validateLicense,\n disabled: validating || !canValidate,\n className: \"w-full py-3 px-4 rounded-lg font-medium transition-colors \".concat(validating || !canValidate ? \"bg-gray-100 text-gray-400 cursor-not-allowed\" : \"bg-bzzz-primary text-white hover:bg-bzzz-primary-dark\"),\n children: validating ? \"Validating License...\" : \"Validate License\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 212,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 147,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 140,\n columnNumber: 7\n }, this),\n validationResult && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card \".concat(validationResult.valid ? \"border-green-200 bg-green-50\" : \"border-red-200 bg-red-50\"),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-shrink-0\",\n children: validationResult.valid ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentTextIcon_ExclamationTriangleIcon_KeyIcon_UserIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"h-6 w-6 text-green-500\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 233,\n columnNumber: 17\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentTextIcon_ExclamationTriangleIcon_KeyIcon_UserIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-6 w-6 text-red-500\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 235,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 231,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"ml-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-sm font-medium \".concat(validationResult.valid ? \"text-green-800\" : \"text-red-800\"),\n children: validationResult.valid ? \"License Valid\" : \"License Invalid\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 239,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm mt-1 \".concat(validationResult.valid ? \"text-green-700\" : \"text-red-700\"),\n children: validationResult.message\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 242,\n columnNumber: 15\n }, this),\n validationResult.valid && validationResult.details && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-3 text-sm text-green-700\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"strong\", {\n children: \"License Type:\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 248,\n columnNumber: 22\n }, this),\n \" \",\n validationResult.details.licenseType || \"Standard\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 248,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"strong\", {\n children: \"Max Nodes:\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 249,\n columnNumber: 22\n }, this),\n \" \",\n validationResult.details.maxNodes || \"Unlimited\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 249,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"strong\", {\n children: \"Expires:\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 250,\n columnNumber: 22\n }, this),\n \" \",\n validationResult.details.expiresAt || \"Never\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 250,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 247,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 238,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 230,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 229,\n columnNumber: 9\n }, this),\n error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center text-red-600 text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentTextIcon_ExclamationTriangleIcon_KeyIcon_UserIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-4 w-4 mr-1\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 260,\n columnNumber: 11\n }, this),\n error\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 259,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-blue-50 border border-blue-200 rounded-lg p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentTextIcon_ExclamationTriangleIcon_KeyIcon_UserIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-5 w-5 text-blue-500 mt-0.5 mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 268,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"font-medium text-blue-800 mb-1\",\n children: \"Need a License?\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 270,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-blue-700\",\n children: \"If you don't have a CHORUS:agents license yet, you can:\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 271,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"text-blue-700 mt-1 space-y-1 ml-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: [\n \"• Visit \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://chorus.services/bzzz\",\n target: \"_blank\",\n className: \"underline hover:no-underline\",\n children: \"chorus.services/bzzz\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 275,\n columnNumber: 27\n }, this),\n \" to purchase a license\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 275,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: [\n \"• Contact our sales team at \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"mailto:sales@chorus.services\",\n className: \"underline hover:no-underline\",\n children: \"sales@chorus.services\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 276,\n columnNumber: 47\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 276,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: \"• Request a trial license for evaluation purposes\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 277,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 274,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 269,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 267,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 266,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between pt-6 border-t border-gray-200\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: onBack && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: onBack,\n className: \"btn-outline\",\n children: \"Back\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 286,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 284,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"submit\",\n disabled: !(validationResult === null || validationResult === void 0 ? void 0 : validationResult.valid),\n className: \"\".concat((validationResult === null || validationResult === void 0 ? void 0 : validationResult.valid) ? \"btn-primary\" : \"btn-disabled\"),\n children: isCompleted ? \"Continue\" : \"Next: System Detection\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 291,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 283,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/LicenseValidation.tsx\",\n lineNumber: 137,\n columnNumber: 5\n }, this);\n}\n_s(LicenseValidation, \"0jaAbEcIycUlxpKar8XjGPYlTeQ=\");\n_c = LicenseValidation;\nvar _c;\n$RefreshReg$(_c, \"LicenseValidation\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9zZXR1cC9jb21wb25lbnRzL0xpY2Vuc2VWYWxpZGF0aW9uLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUVnQztBQU9JO0FBaUJyQixTQUFTTSxrQkFBa0IsS0FNakI7UUFOaUIsRUFDeENDLFVBQVUsRUFDVkMsVUFBVSxFQUNWQyxVQUFVLEVBQ1ZDLE1BQU0sRUFDTkMsV0FBVyxFQUNZLEdBTmlCO1FBUS9CSCxxQkFDS0Esc0JBQ01BOztJQUhwQixNQUFNLENBQUNJLGFBQWFDLGVBQWUsR0FBR2IsK0NBQVFBLENBQWM7UUFDMURjLE9BQU9OLENBQUFBLHVCQUFBQSxrQ0FBQUEsc0JBQUFBLFdBQVlPLE9BQU8sY0FBbkJQLDBDQUFBQSxvQkFBcUJNLEtBQUssS0FBSTtRQUNyQ0UsWUFBWVIsQ0FBQUEsdUJBQUFBLGtDQUFBQSx1QkFBQUEsV0FBWU8sT0FBTyxjQUFuQlAsMkNBQUFBLHFCQUFxQlEsVUFBVSxLQUFJO1FBQy9DQyxrQkFBa0JULENBQUFBLHVCQUFBQSxrQ0FBQUEsdUJBQUFBLFdBQVlPLE9BQU8sY0FBbkJQLDJDQUFBQSxxQkFBcUJTLGdCQUFnQixLQUFJO0lBQzdEO0lBRUEsTUFBTSxDQUFDQyxZQUFZQyxjQUFjLEdBQUduQiwrQ0FBUUEsQ0FBQztJQUM3QyxNQUFNLENBQUNvQixrQkFBa0JDLG9CQUFvQixHQUFHckIsK0NBQVFBLENBSTlDO0lBQ1YsTUFBTSxDQUFDc0IsT0FBT0MsU0FBUyxHQUFHdkIsK0NBQVFBLENBQUM7SUFFbkMsNEJBQTRCO0lBQzVCLE1BQU13QixlQUFlLENBQUNWO1FBQ3BCLE1BQU1XLGFBQWE7UUFDbkIsT0FBT0EsV0FBV0MsSUFBSSxDQUFDWjtJQUN6QjtJQUVBLHdDQUF3QztJQUN4QyxNQUFNYSxjQUFjZixZQUFZRSxLQUFLLElBQ2xCVSxhQUFhWixZQUFZRSxLQUFLLEtBQzlCRixZQUFZSSxVQUFVO0lBRXpDLE1BQU1ZLGtCQUFrQjtRQUN0QixJQUFJLENB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Ozs7Ozs7b0JBQ2xDOUI7Ozs7Ozs7MEJBS0wsOERBQUMrQjtnQkFBSUQsV0FBVTswQkFDYiw0RUFBQ0M7b0JBQUlELFdBQVU7O3NDQUNiLDhEQUFDL0MsbUtBQWdCQTs0QkFBQytDLFdBQVU7Ozs7OztzQ0FDNUIsOERBQUNDOzRCQUFJRCxXQUFVOzs4Q0FDYiw4REFBQ2dCO29DQUFHaEIsV0FBVTs4Q0FBaUM7Ozs7Ozs4Q0FDL0MsOERBQUNZO29DQUFFWixXQUFVOzhDQUFnQjs7Ozs7OzhDQUc3Qiw4REFBQ3FCO29DQUFHckIsV0FBVTs7c0RBQ1osOERBQUNzQjs7Z0RBQUc7OERBQVEsOERBQUNDO29EQUFFQyxNQUFLO29EQUErQmYsUUFBTztvREFBU1QsV0FBVTs4REFBK0I7Ozs7OztnREFBd0I7Ozs7Ozs7c0RBQ3BJLDhEQUFDc0I7O2dEQUFHOzhEQUE0Qiw4REFBQ0M7b0RBQUVDLE1BQUs7b0RBQStCeEIsV0FBVTs4REFBK0I7Ozs7Ozs7Ozs7OztzREFDaEgsOERBQUNzQjtzREFBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBTVosOERBQUNyQjtnQkFBSUQsV0FBVTs7a0NBQ2IsOERBQUNDO2tDQUNFM0Msd0JBQ0MsOERBQUN1RDs0QkFBT1IsTUFBSzs0QkFBU1MsU0FBU3hEOzRCQUFRMEMsV0FBVTtzQ0FBYzs7Ozs7Ozs7Ozs7a0NBS25FLDhEQUFDYTt3QkFDQ1IsTUFBSzt3QkFDTFUsVUFBVSxFQUFDL0MsNkJBQUFBLHVDQUFBQSxpQkFBa0JtQixLQUFLO3dCQUNsQ2EsV0FBVyxHQUE0RCxPQUF6RGhDLENBQUFBLDZCQUFBQSx1Q0FBQUEsaUJBQWtCbUIsS0FBSyxJQUFHLGdCQUFnQjtrQ0FFdkQ1QixjQUFjLGFBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUt0QztHQWxSd0JMO0tBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2FwcC9zZXR1cC9jb21wb25lbnRzL0xpY2Vuc2VWYWxpZGF0aW9uLnRzeD9mNTdkIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgXG4gIEtleUljb24sXG4gIENoZWNrQ2lyY2xlSWNvbixcbiAgRXhjbGFtYXRpb25UcmlhbmdsZUljb24sXG4gIFVzZXJJY29uLFxuICBEb2N1bWVudFRleHRJY29uXG59IGZyb20gJ0BoZXJvaWNvbnMvcmVhY3QvMjQvb3V0bGluZSdcblxuaW50ZXJmYWNlIExpY2Vuc2VWYWxpZGF0aW9uUHJvcHMge1xuICBzeXN0ZW1JbmZvOiBhbnlcbiAgY29uZmlnRGF0YTogYW55XG4gIG9uQ29tcGxldGU6IChkYXRhOiBhbnkpID0+IHZvaWRcbiAgb25CYWNrPzogKCkgPT4gdm9pZFxuICBpc0NvbXBsZXRlZDogYm9vbGVhblxufVxuXG5pbnRlcmZhY2UgTGljZW5zZURhdGEge1xuICBlbWFpbDogc3RyaW5nXG4gIGxpY2Vuc2VLZXk6IHN0cmluZ1xuICBvcmdhbml6YXRpb25OYW1lPzogc3RyaW5nXG4gIGFjY2VwdGVkQXQ/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTGljZW5zZVZhbGlkYXRpb24oeyBcbiAgc3lzdGVtSW5mbywgXG4gIGNvbmZpZ0RhdGEsIFxuICBvbkNvbXBsZXRlLCBcbiAgb25CYWNrLCBcbiAgaXNDb21wbGV0ZWQgXG59OiBMaWNlbnNlVmFsaWRhdGlvblByb3BzKSB7XG4gIGNvbnN0IFtsaWNlbnNlRGF0YSwgc2V0TGljZW5zZURhdGFdID0gdXNlU3RhdGU8TGljZW5zZURhdGE+KHtcbiAgICBlbWFpbDogY29uZmlnRGF0YT8ubGljZW5zZT8uZW1haWwgfHwgJycsXG4gICAgbGljZW5zZUtleTogY29uZmlnRGF0YT8ubGljZW5zZT8ubGljZW5zZUtleSB8fCAnJyxcbiAgICBvcmdhbml6YXRpb25OYW1lOiBjb25maWdEYXRhPy5saWNlbnNlPy5vcmdhbml6YXRpb25OYW1lIHx8ICcnXG4gIH0pXG4gIFxuICBjb25zdCBbdmFsaWRhdGluZywgc2V0VmFsaWRhdGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3ZhbGlkYXRpb25SZXN1bHQsIHNldFZhbGlkYXRpb25SZXN1bHRdID0gdXNlU3RhdGU8e1xuICAgIHZhbGlkOiBib29sZWFuXG4gICAgbWVzc2FnZTogc3RyaW5nXG4gICAgZGV0YWlscz86IGFueVxuICB9IHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZSgnJylcbiAgXG4gIC8vIEVtYWlsIHZhbGlkYXRpb24gZnVuY3Rpb25cbiAgY29uc3QgaXNWYWxpZEVtYWlsID0gKGVtYWlsOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBlbWFpbFJlZ2V4ID0gL15bXlxcc0BdK0BbXlxcc0BdK1xcLlteXFxzQF0rJC9cbiAgICByZXR1cm4gZW1haWxSZWdleC50ZXN0KGVtYWlsKVxuICB9XG4gIFxuICAvLyBDaGVjayBpZiBmb3JtIGlzIHJlYWR5IGZvciB2YWxpZGF0aW9uXG4gIGNvbnN0IGNhblZhbGlkYXRlID0gbGljZW5zZURhdGEuZW1haWwgJiYgXG4gICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkRW1haWwobGljZW5zZURhdGEuZW1haWwpICYmIFxuICAgICAgICAgICAgICAgICAgICAgbGljZW5zZURhdGEubGljZW5zZUtleVxuXG4gIGNvbnN0IHZhbGlkYXRlTGljZW5zZSA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoIWxpY2Vuc2VEYXRhLmVtYWlsIHx8ICFsaWNlbnNlRGF0YS5saWNlbnNlS2V5KSB7XG4gICAgICBzZXRFcnJvcignQm90aCBlbWFpbCBhbmQgbGljZW5zZSBrZXkgYXJlIHJlcXVpcmVkJylcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBcbiAgICBpZiAoIWlzVmFsaWRFbWFpbChsaWNlbnNlRGF0YS5lbWFpbCkpIHtcbiAgICAgIHNldEVycm9yKCdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzJylcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNldFZhbGlkYXRpbmcodHJ1ZSlcbiAgICBzZXRFcnJvcignJylcbiAgICBzZXRWYWxpZGF0aW9uUmVzdWx0KG51bGwpXG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL2FwaS9zZXR1cC9saWNlbnNlL3ZhbGlkYXRlJywge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIH0sXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBlbWFpbDogbGljZW5zZURhdGEuZW1haWwsXG4gICAgICAgICAgbGljZW5zZUtleTogbGljZW5zZURhdGEubGljZW5zZUtleSxcbiAgICAgICAgICBvcmdhbml6YXRpb25OYW1lOiBsaWNlbnNlRGF0YS5vcmdhbml6YXRpb25OYW1lXG4gICAgICAgIH0pLFxuICAgICAgfSlcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG5cbiAgICAgIGlmIChyZXNwb25zZS5vayAmJiByZXN1bHQudmFsaWQpIHtcbiAgICAgICAgc2V0VmFsaWRhdGlvblJlc3VsdCh7XG4gICAgICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICAgICAgbWVzc2FnZTogcmVzdWx0Lm1lc3NhZ2UgfHwgJ0xpY2Vuc2UgdmFsaWRhdGVkIHN1Y2Nlc3NmdWxseScsXG4gICAgICAgICAgZGV0YWlsczogcmVzdWx0LmRldGFpbHNcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFZhbGlkYXRpb25SZXN1bHQoe1xuICAgICAgICAgIHZhbGlkOiBmYWxzZSxcbiAgICAgICAgICBtZXNzYWdlOiByZXN1bHQubWVzc2FnZSB8fCAnTGljZW5zZSB2YWxpZGF0aW9uIGZhaWxlZCcsXG4gICAgICAgICAgZGV0YWlsczogcmVzdWx0LmRldGFpbHNcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignTGljZW5zZSB2YWxpZGF0aW9uIGVycm9yOicsIGVycm9yKVxuICAgICAgc2V0VmFsaWRhdGlvblJlc3VsdCh7XG4gICAgICAgIHZhbGlkOiBmYWxzZSxcbiAgICAgICAgbWVzc2FnZTogJ0ZhaWxlZCB0byB2YWxpZGF0ZSBsaWNlbnNlLiBQbGVhc2UgY2hlY2sgeW91ciBjb25uZWN0aW9uIGFuZCB0cnkgYWdhaW4uJ1xuICAgICAgfSlcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0VmFsaWRhdGluZyhmYWxzZSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSAoZTogUmVhY3QuRm9ybUV2ZW50KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgXG4gICAgaWYgKCFsaWNlbnNlRGF0YS5lbWFpbCB8fCAhbGljZW5zZURhdGEubGljZW5zZUtleSkge1xuICAgICAgc2V0RXJyb3IoJ0JvdGggZW1haWwgYW5kIGxpY2Vuc2Uga2V5IGFyZSByZXF1aXJlZCcpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIXZhbGlkYXRpb25SZXN1bHQ/LnZhbGlkKSB7XG4gICAgICBzZXRFcnJvcignUGxlYXNlIHZhbGlkYXRlIHlvdXIgbGljZW5zZSBiZWZvcmUgY29udGludWluZycpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzZXRFcnJvcignJylcbiAgICBvbkNvbXBsZXRlKHsgXG4gICAgICBsaWNlbnNlOiB7IFxuICAgICAgICAuLi5saWNlbnNlRGF0YSxcbiAgICAgICAgdmFsaWRhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgdmFsaWRhdGlvbkRldGFpbHM6IHZhbGlkYXRpb25SZXN1bHQuZGV0YWlsc1xuICAgICAgfSBcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Zm9ybSBvblN1Ym1pdD17aGFuZGxlU3VibWl0fSBjbGFzc05hbWU9XCJzcGFjZS15LThcIj5cblxuICAgICAgey8qIExpY2Vuc2UgSW5mb3JtYXRpb24gKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBtYi00XCI+XG4gICAgICAgICAgPEtleUljb24gY2xhc3NOYW1lPVwiaC02IHctNiB0ZXh0LWJ6enotcHJpbWFyeSBtci0yXCIgLz5cbiAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwXCI+TGljZW5zZSBJbmZvcm1hdGlvbjwvaDM+XG4gICAgICAgICAge3ZhbGlkYXRpb25SZXN1bHQ/LnZhbGlkICYmIDxDaGVja0NpcmNsZUljb24gY2xhc3NOYW1lPVwiaC01IHctNSB0ZXh0LWdyZWVuLTUwMCBtbC0yXCIgLz59XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS00XCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDAgbWItMlwiPlxuICAgICAgICAgICAgICBFbWFpbCBBZGRyZXNzXG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICA8VXNlckljb24gY2xhc3NOYW1lPVwiaC01IHctNSB0ZXh0LWdyYXktNDAwIGFic29sdXRlIGxlZnQtMyB0b3AtMS8yIHRyYW5zZm9ybSAtdHJhbnNsYXRlLXktMS8yXCIgLz5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cImVtYWlsXCJcbiAgICAgICAgICAgICAgICB2YWx1ZT17bGljZW5zZURhdGEuZW1haWx9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRMaWNlbnNlRGF0YShwcmV2ID0+ICh7IC4uLnByZXYsIGVtYWlsOiBlLnRhcmdldC52YWx1ZSB9KSl9XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ5b3VyLWVtYWlsQGNvbXBhbnkuY29tXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2B3LWZ1bGwgcGwtMTAgcHItNCBweS0zIGJvcmRlciByb3VuZGVkLWxnIGZvY3VzOnJpbmctYnp6ei1wcmltYXJ5IGZvY3VzOmJvcmRlci1ienp6LXByaW1hcnkgJHtcbiAgICAgICAgICAgICAgICAgIGxpY2Vuc2VEYXRhLmVtYWlsICYmICFpc1ZhbGlkRW1haWwobGljZW5zZURhdGEuZW1haWwpIFxuICAgICAgICAgICAgICAgICAgICA/ICdib3JkZXItcmVkLTMwMCBiZy1yZWQtNTAnIFxuICAgICAgICAgICAgICAgICAgICA6ICdib3JkZXItZ3JheS0zMDAnXG4gICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge2xpY2Vuc2VEYXRhLmVtYWlsICYmICFpc1ZhbGlkRW1haWwobGljZW5zZURhdGEuZW1haWwpID8gKFxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtcmVkLTYwMCBtdC0xXCI+UGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzczwvcD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTUwMCBtdC0xXCI+XG4gICAgICAgICAgICAgICAgVGhlIGVtYWlsIGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIHlvdXIgQ0hPUlVTOmFnZW50cyBsaWNlbnNlXG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMCBtYi0yXCI+XG4gICAgICAgICAgICAgIExpY2Vuc2UgS2V5XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICA8S2V5SWNvbiBjbGFzc05hbWU9XCJoLTUgdy01IHRleHQtZ3JheS00MDAgYWJzb2x1dGUgbGVmdC0zIHRvcC0xLzIgdHJhbnNmb3JtIC10cmFuc2xhdGUteS0xLzJcIiAvPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgdmFsdWU9e2xpY2Vuc2VEYXRhLmxpY2Vuc2VLZXl9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRMaWNlbnNlRGF0YShwcmV2ID0+ICh7IC4uLnByZXYsIGxpY2Vuc2VLZXk6IGUudGFyZ2V0LnZhbHVlIH0pKX1cbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkJaWlotWFhYWC1YWFhYLVhYWFgtWFhYWFwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIHBsLTEwIHByLTQgcHktMyBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbGcgZm9jdXM6cmluZy1ienp6LXByaW1hcnkgZm9jdXM6Ym9yZGVyLWJ6enotcHJpbWFyeSBmb250LW1vbm9cIlxuICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTUwMCBtdC0xXCI+XG4gICAgICAgICAgICAgIFlvdXIgdW5pcXVlIENIT1JVUzphZ2VudHMgbGljZW5zZSBrZXkgKGZvdW5kIGluIHlvdXIgcHVyY2hhc2UgY29uZmlybWF0aW9uIGVtYWlsKVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDAgbWItMlwiPlxuICAgICAgICAgICAgICBPcmdhbml6YXRpb24gTmFtZSAoT3B0aW9uYWwpXG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgdmFsdWU9e2xpY2Vuc2VEYXRhLm9yZ2FuaXphdGlvbk5hbWV9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0TGljZW5zZURhdGEocHJldiA9PiAoeyAuLi5wcmV2LCBvcmdhbml6YXRpb25OYW1lOiBlLnRhcmdldC52YWx1ZSB9KSl9XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiWW91ciBDb21wYW55IE5hbWVcIlxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgcHgtNCBweS0zIGJvcmRlciBib3JkZXItZ3JheS0zMDAgcm91bmRlZC1sZyBmb2N1czpyaW5nLWJ6enotcHJpbWFyeSBmb2N1czpib3JkZXItYnp6ei1wcmltYXJ5XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS01MDAgbXQtMVwiPlxuICAgICAgICAgICAgICBPcHRpb25hbDogT3JnYW5pemF0aW9uIG5hbWUgZm9yIGxpY2Vuc2UgdHJhY2tpbmdcbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgb25DbGljaz17dmFsaWRhdGVMaWNlbnNlfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e3ZhbGlkYXRpbmcgfHwgIWNhblZhbGlkYXRlfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgdy1mdWxsIHB5LTMgcHgtNCByb3VuZGVkLWxnIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tY29sb3JzICR7XG4gICAgICAgICAgICAgIHZhbGlkYXRpbmcgfHwgIWNhblZhbGlkYXRlXG4gICAgICAgICAgICAgICAgPyAnYmctZ3JheS0xMDAgdGV4dC1ncmF5LTQwMCBjdXJzb3Itbm90LWFsbG93ZWQnXG4gICAgICAgICAgICAgICAgOiAnYmctYnp6ei1wcmltYXJ5IHRleHQtd2hpdGUgaG92ZXI6YmctYnp6ei1wcmltYXJ5LWRhcmsnXG4gICAgICAgICAgICB9YH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dmFsaWRhdGluZyA/ICdWYWxpZGF0aW5nIExpY2Vuc2UuLi4nIDogJ1ZhbGlkYXRlIExpY2Vuc2UnfVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogVmFsaWRhdGlvbiBSZXN1bHQgKi99XG4gICAgICB7dmFsaWRhdGlvblJlc3VsdCAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgY2FyZCAke3ZhbGlkYXRpb25SZXN1bHQudmFsaWQgPyAnYm9yZGVyLWdyZWVuLTIwMCBiZy1ncmVlbi01MCcgOiAnYm9yZGVyLXJlZC0yMDAgYmctcmVkLTUwJ31gfT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtc3RhcnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC1zaHJpbmstMFwiPlxuICAgICAgICAgICAgICB7dmFsaWRhdGlvblJlc3VsdC52YWxpZCA/IChcbiAgICAgICAgICAgICAgICA8Q2hlY2tDaXJjbGVJY29uIGNsYXNzTmFtZT1cImgtNiB3LTYgdGV4dC1ncmVlbi01MDBcIiAvPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxFeGNsYW1hdGlvblRyaWFuZ2xlSWNvbiBjbGFzc05hbWU9XCJoLTYgdy02IHRleHQtcmVkLTUwMFwiIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWwtM1wiPlxuICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPXtgdGV4dC1zbSBmb250LW1lZGl1bSAke3ZhbGlkYXRpb25SZXN1bHQudmFsaWQgPyAndGV4dC1ncmVlbi04MDAnIDogJ3RleHQtcmVkLTgwMCd9YH0+XG4gICAgICAgICAgICAgICAge3ZhbGlkYXRpb25SZXN1bHQudmFsaWQgPyAnTGljZW5zZSBWYWxpZCcgOiAnTGljZW5zZSBJbnZhbGlkJ31cbiAgICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPXtgdGV4dC1zbSBtdC0xICR7dmFsaWRhdGlvblJlc3VsdC52YWxpZCA/ICd0ZXh0LWdyZWVuLTcwMCcgOiAndGV4dC1yZWQtNzAwJ31gfT5cbiAgICAgICAgICAgICAgICB7dmFsaWRhdGlvblJlc3VsdC5tZXNzYWdlfVxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICB7dmFsaWRhdGlvblJlc3VsdC52YWxpZCAmJiB2YWxpZGF0aW9uUmVzdWx0LmRldGFpbHMgJiYgKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMyB0ZXh0LXNtIHRleHQtZ3JlZW4tNzAwXCI+XG4gICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkxpY2Vuc2UgVHlwZTo8L3N0cm9uZz4ge3ZhbGlkYXRpb25SZXN1bHQuZGV0YWlscy5saWNlbnNlVHlwZSB8fCAnU3RhbmRhcmQnfTwvcD5cbiAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+TWF4IE5vZGVzOjwvc3Ryb25nPiB7dmFsaWRhdGlvblJlc3VsdC5kZXRhaWxzLm1heE5vZGVzIHx8ICdVbmxpbWl0ZWQnfTwvcD5cbiAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+RXhwaXJlczo8L3N0cm9uZz4ge3ZhbGlkYXRpb25SZXN1bHQuZGV0YWlscy5leHBpcmVzQXQgfHwgJ05ldmVyJ308L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuXG4gICAgICB7ZXJyb3IgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHRleHQtcmVkLTYwMCB0ZXh0LXNtXCI+XG4gICAgICAgICAgPEV4Y2xhbWF0aW9uVHJpYW5nbGVJY29uIGNsYXNzTmFtZT1cImgtNCB3LTQgbXItMVwiIC8+XG4gICAgICAgICAge2Vycm9yfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG5cbiAgICAgIHsvKiBMaWNlbnNlIEluZm9ybWF0aW9uICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy1ibHVlLTUwIGJvcmRlciBib3JkZXItYmx1ZS0yMDAgcm91bmRlZC1sZyBwLTRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLXN0YXJ0XCI+XG4gICAgICAgICAgPERvY3VtZW50VGV4dEljb24gY2xhc3NOYW1lPVwiaC01IHctNSB0ZXh0LWJsdWUtNTAwIG10LTAuNSBtci0yXCIgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc21cIj5cbiAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJmb250LW1lZGl1bSB0ZXh0LWJsdWUtODAwIG1iLTFcIj5OZWVkIGEgTGljZW5zZT88L2g0PlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1ibHVlLTcwMFwiPlxuICAgICAgICAgICAgICBJZiB5b3UgZG9uJ3QgaGF2ZSBhIENIT1JVUzphZ2VudHMgbGljZW5zZSB5ZXQsIHlvdSBjYW46XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwidGV4dC1ibHVlLTcwMCBtdC0xIHNwYWNlLXktMSBtbC00XCI+XG4gICAgICAgICAgICAgIDxsaT7igKIgVmlzaXQgPGEgaHJlZj1cImh0dHBzOi8vY2hvcnVzLnNlcnZpY2VzL2J6enpcIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzc05hbWU9XCJ1bmRlcmxpbmUgaG92ZXI6bm8tdW5kZXJsaW5lXCI+Y2hvcnVzLnNlcnZpY2VzL2J6eno8L2E+IHRvIHB1cmNoYXNlIGEgbGljZW5zZTwvbGk+XG4gICAgICAgICAgICAgIDxsaT7igKIgQ29udGFjdCBvdXIgc2FsZXMgdGVhbSBhdCA8YSBocmVmPVwibWFpbHRvOnNhbGVzQGNob3J1cy5zZXJ2aWNlc1wiIGNsYXNzTmFtZT1cInVuZGVybGluZSBob3Zlcjpuby11bmRlcmxpbmVcIj5zYWxlc0BjaG9ydXMuc2VydmljZXM8L2E+PC9saT5cbiAgICAgICAgICAgICAgPGxpPuKAoiBSZXF1ZXN0IGEgdHJpYWwgbGljZW5zZSBmb3IgZXZhbHVhdGlvbiBwdXJwb3NlczwvbGk+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1iZXR3ZWVuIHB0LTYgYm9yZGVyLXQgYm9yZGVyLWdyYXktMjAwXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge29uQmFjayAmJiAoXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtvbkJhY2t9IGNsYXNzTmFtZT1cImJ0bi1vdXRsaW5lXCI+XG4gICAgICAgICAgICAgIEJhY2tcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIiBcbiAgICAgICAgICBkaXNhYmxlZD17IXZhbGlkYXRpb25SZXN1bHQ/LnZhbGlkfVxuICAgICAgICAgIGNsYXNzTmFtZT17YCR7dmFsaWRhdGlvblJlc3VsdD8udmFsaWQgPyAnYnRuLXByaW1hcnknIDogJ2J0bi1kaXNhYmxlZCd9YH1cbiAgICAgICAgPlxuICAgICAgICAgIHtpc0NvbXBsZXRlZCA/ICdDb250aW51ZScgOiAnTmV4dDogU3lzdGVtIERldGVjdGlvbid9XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICApXG59Il0sIm5hbWVzIjpbInVzZVN0YXRlIiwiS2V5SWNvbiIsIkNoZWNrQ2lyY2xlSWNvbiIsIkV4Y2xhbWF0aW9uVHJpYW5nbGVJY29uIiwiVXNlckljb24iLCJEb2N1bWVudFRleHRJY29uIiwiTGljZW5zZVZhbGlkYXRpb24iLCJzeXN0ZW1JbmZvIiwiY29uZmlnRGF0YSIsIm9uQ29tcGxldGUiLCJvbkJhY2siLCJpc0NvbXBsZXRlZCIsImxpY2Vuc2VEYXRhIiwic2V0TGljZW5zZURhdGEiLCJlbWFpbCIsImxpY2Vuc2UiLCJsaWNlbnNlS2V5Iiwib3JnYW5pemF0aW9uTmFtZSIsInZhbGlkYXRpbmciLCJzZXRWYWxpZGF0aW5nIiwidmFsaWRhdGlvblJlc3VsdCIsInNldFZhbGlkYXRpb25SZXN1bHQiLCJlcnJvciIsInNldEVycm9yIiwiaXNWYWxpZEVtYWlsIiwiZW1haWxSZWdleCIsInRlc3QiLCJjYW5WYWxpZGF0ZSIsInZhbGlkYXRlTGljZW5zZSIsInJlc3BvbnNlIiwiZmV0Y2giLCJtZXRob2QiLCJoZWFkZXJzIiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZXN1bHQiLCJqc29uIiwib2siLCJ2YWxpZCIsIm1lc3NhZ2UiLCJkZXRhaWxzIiwiY29uc29sZSIsImhhbmRsZVN1Ym1pdCIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInZhbGlkYXRlZEF0IiwiRGF0ZSIsInRvSVNPU3RyaW5nIiwidmFsaWRhdGlvbkRldGFpbHMiLCJmb3JtIiwib25TdWJtaXQiLCJjbGFzc05hbWUiLCJkaXYiLCJoMyIsImxhYmVsIiwiaW5wdXQiLCJ0eXBlIiwidmFsdWUiLCJvbkNoYW5nZSIsInByZXYiLCJ0YXJnZXQiLCJwbGFjZWhvbGRlciIsInJlcXVpcmVkIiwicCIsImJ1dHRvbiIsIm9uQ2xpY2siLCJkaXNhYmxlZCIsImg0Iiwic3Ryb25nIiwibGljZW5zZVR5cGUiLCJtYXhOb2RlcyIsImV4cGlyZXNBdCIsInVsIiwibGkiLCJhIiwiaHJlZiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/setup/components/LicenseValidation.tsx\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./app/setup/components/NetworkConfiguration.tsx":
|
|
/*!*******************************************************!*\
|
|
!*** ./app/setup/components/NetworkConfiguration.tsx ***!
|
|
\*******************************************************/
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ NetworkConfiguration; }\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 _barrel_optimize_names_ExclamationTriangleIcon_GlobeAltIcon_InformationCircleIcon_ServerIcon_ShieldCheckIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! __barrel_optimize__?names=ExclamationTriangleIcon,GlobeAltIcon,InformationCircleIcon,ServerIcon,ShieldCheckIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/GlobeAltIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ExclamationTriangleIcon_GlobeAltIcon_InformationCircleIcon_ServerIcon_ShieldCheckIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=ExclamationTriangleIcon,GlobeAltIcon,InformationCircleIcon,ServerIcon,ShieldCheckIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ServerIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ExclamationTriangleIcon_GlobeAltIcon_InformationCircleIcon_ServerIcon_ShieldCheckIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=ExclamationTriangleIcon,GlobeAltIcon,InformationCircleIcon,ServerIcon,ShieldCheckIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ExclamationTriangleIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ExclamationTriangleIcon_GlobeAltIcon_InformationCircleIcon_ServerIcon_ShieldCheckIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=ExclamationTriangleIcon,GlobeAltIcon,InformationCircleIcon,ServerIcon,ShieldCheckIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ShieldCheckIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ExclamationTriangleIcon_GlobeAltIcon_InformationCircleIcon_ServerIcon_ShieldCheckIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=ExclamationTriangleIcon,GlobeAltIcon,InformationCircleIcon,ServerIcon,ShieldCheckIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/InformationCircleIcon.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\nfunction NetworkConfiguration(param) {\n let { systemInfo, configData, onComplete, onBack, isCompleted } = param;\n var _systemInfo_network, _systemInfo_network_private_ips;\n _s();\n const [config, setConfig] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n primaryInterface: \"\",\n primaryIP: \"\",\n bzzzPort: 8080,\n mcpPort: 3000,\n webUIPort: 8080,\n p2pPort: 7000,\n autoFirewall: true,\n allowedIPs: [\n \"192.168.0.0/16\",\n \"10.0.0.0/8\",\n \"172.16.0.0/12\"\n ],\n dnsServers: [\n \"8.8.8.8\",\n \"8.8.4.4\"\n ]\n });\n const [errors, setErrors] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [portConflicts, setPortConflicts] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n // Initialize with system info and existing config\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (systemInfo === null || systemInfo === void 0 ? void 0 : systemInfo.network) {\n setConfig((prev)=>{\n var _systemInfo_network_interfaces, _systemInfo_network_private_ips;\n return {\n ...prev,\n primaryInterface: ((_systemInfo_network_interfaces = systemInfo.network.interfaces) === null || _systemInfo_network_interfaces === void 0 ? void 0 : _systemInfo_network_interfaces[0]) || prev.primaryInterface,\n primaryIP: ((_systemInfo_network_private_ips = systemInfo.network.private_ips) === null || _systemInfo_network_private_ips === void 0 ? void 0 : _systemInfo_network_private_ips[0]) || prev.primaryIP\n };\n });\n }\n if (configData.network) {\n setConfig((prev)=>({\n ...prev,\n ...configData.network\n }));\n }\n }, [\n systemInfo,\n configData\n ]);\n // Validate configuration\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n validateConfiguration();\n }, [\n config\n ]);\n const validateConfiguration = ()=>{\n const newErrors = [];\n const conflicts = [];\n // Check for port conflicts\n const ports = [\n config.bzzzPort,\n config.mcpPort,\n config.webUIPort,\n config.p2pPort\n ];\n const uniquePorts = new Set(ports);\n if (uniquePorts.size !== ports.length) {\n conflicts.push(\"Port numbers must be unique\");\n }\n // Check port ranges\n ports.forEach((port, index)=>{\n const portNames = [\n \"BZZZ API\",\n \"MCP Server\",\n \"Web UI\",\n \"P2P Network\"\n ];\n if (port < 1024) {\n newErrors.push(\"\".concat(portNames[index], \" port should be above 1024 to avoid requiring root privileges\"));\n }\n if (port > 65535) {\n newErrors.push(\"\".concat(portNames[index], \" port must be below 65536\"));\n }\n });\n // Validate IP addresses in allowed IPs\n config.allowedIPs.forEach((ip)=>{\n if (ip && !isValidCIDR(ip)) {\n newErrors.push(\"Invalid CIDR notation: \".concat(ip));\n }\n });\n // Validate DNS servers\n config.dnsServers.forEach((dns)=>{\n if (dns && !isValidIPAddress(dns)) {\n newErrors.push(\"Invalid DNS server IP: \".concat(dns));\n }\n });\n setErrors(newErrors);\n setPortConflicts(conflicts);\n };\n const isValidCIDR = (cidr)=>{\n const regex = /^(\\d{1,3}\\.){3}\\d{1,3}\\/\\d{1,2}$/;\n return regex.test(cidr);\n };\n const isValidIPAddress = (ip)=>{\n const regex = /^(\\d{1,3}\\.){3}\\d{1,3}$/;\n if (!regex.test(ip)) return false;\n return ip.split(\".\").every((part)=>parseInt(part) >= 0 && parseInt(part) <= 255);\n };\n const handlePortChange = (field, value)=>{\n const numValue = parseInt(value) || 0;\n setConfig((prev)=>({\n ...prev,\n [field]: numValue\n }));\n };\n const handleArrayChange = (field, index, value)=>{\n setConfig((prev)=>({\n ...prev,\n [field]: prev[field].map((item, i)=>i === index ? value : item)\n }));\n };\n const addArrayItem = (field)=>{\n setConfig((prev)=>({\n ...prev,\n [field]: [\n ...prev[field],\n \"\"\n ]\n }));\n };\n const removeArrayItem = (field, index)=>{\n setConfig((prev)=>({\n ...prev,\n [field]: prev[field].filter((_, i)=>i !== index)\n }));\n };\n const handleSubmit = (e)=>{\n e.preventDefault();\n if (errors.length === 0 && portConflicts.length === 0) {\n onComplete({\n network: config\n });\n }\n };\n const isFormValid = errors.length === 0 && portConflicts.length === 0;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: handleSubmit,\n className: \"space-y-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-gray-50 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900 mb-4 flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ExclamationTriangleIcon_GlobeAltIcon_InformationCircleIcon_ServerIcon_ShieldCheckIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 174,\n columnNumber: 11\n }, this),\n \"Network Interface\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 173,\n columnNumber: 9\n }, this),\n (systemInfo === null || systemInfo === void 0 ? void 0 : (_systemInfo_network = systemInfo.network) === null || _systemInfo_network === void 0 ? void 0 : _systemInfo_network.interfaces) && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Primary Network Interface\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 180,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n value: config.primaryInterface,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n primaryInterface: e.target.value\n })),\n className: \"input-field\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"\",\n children: \"Select network interface\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 186,\n columnNumber: 15\n }, this),\n systemInfo.network.interfaces.map((interfaceName, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: interfaceName,\n children: [\n interfaceName,\n \" - \",\n systemInfo.network.private_ips[index] || \"Unknown IP\"\n ]\n }, index, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 188,\n columnNumber: 17\n }, this))\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 181,\n columnNumber: 13\n }, this),\n config.primaryInterface && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600\",\n children: [\n \"Primary IP: \",\n ((_systemInfo_network_private_ips = systemInfo.network.private_ips) === null || _systemInfo_network_private_ips === void 0 ? void 0 : _systemInfo_network_private_ips[systemInfo.network.interfaces.indexOf(config.primaryInterface)]) || \"Unknown\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 195,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 179,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 172,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white border border-gray-200 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900 mb-4 flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ExclamationTriangleIcon_GlobeAltIcon_InformationCircleIcon_ServerIcon_ShieldCheckIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 206,\n columnNumber: 11\n }, this),\n \"Port Configuration\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 205,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-2 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"BZZZ API Port\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 212,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"number\",\n value: config.bzzzPort,\n onChange: (e)=>handlePortChange(\"bzzzPort\", e.target.value),\n min: \"1024\",\n max: \"65535\",\n className: \"input-field\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 213,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600 mt-1\",\n children: \"Main BZZZ HTTP API endpoint\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 221,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 211,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"MCP Server Port\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 225,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"number\",\n value: config.mcpPort,\n onChange: (e)=>handlePortChange(\"mcpPort\", e.target.value),\n min: \"1024\",\n max: \"65535\",\n className: \"input-field\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 226,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600 mt-1\",\n children: \"Model Context Protocol server\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 234,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 224,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Web UI Port\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 238,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"number\",\n value: config.webUIPort,\n onChange: (e)=>handlePortChange(\"webUIPort\", e.target.value),\n min: \"1024\",\n max: \"65535\",\n className: \"input-field\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 239,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600 mt-1\",\n children: \"Web interface port\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 247,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 237,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"P2P Network Port\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 251,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"number\",\n value: config.p2pPort,\n onChange: (e)=>handlePortChange(\"p2pPort\", e.target.value),\n min: \"1024\",\n max: \"65535\",\n className: \"input-field\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 252,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600 mt-1\",\n children: \"Peer-to-peer communication\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 260,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 250,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 210,\n columnNumber: 9\n }, this),\n portConflicts.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 p-3 bg-red-50 border border-red-200 rounded-lg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ExclamationTriangleIcon_GlobeAltIcon_InformationCircleIcon_ServerIcon_ShieldCheckIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-5 w-5 text-red-600 mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 267,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-red-800 font-medium\",\n children: \"Port Conflicts\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 268,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 266,\n columnNumber: 13\n }, this),\n portConflicts.map((conflict, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-red-700 text-sm mt-1\",\n children: conflict\n }, index, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 271,\n columnNumber: 15\n }, this))\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 265,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 204,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white border border-gray-200 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900 mb-4 flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ExclamationTriangleIcon_GlobeAltIcon_InformationCircleIcon_ServerIcon_ShieldCheckIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 280,\n columnNumber: 11\n }, this),\n \"Security & Access Control\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 279,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n id: \"autoFirewall\",\n checked: config.autoFirewall,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n autoFirewall: e.target.checked\n })),\n className: \"h-4 w-4 text-bzzz-primary focus:ring-bzzz-primary border-gray-300 rounded\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 286,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: \"autoFirewall\",\n className: \"ml-2 text-sm font-medium text-gray-700\",\n children: \"Automatically configure firewall rules\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 293,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 285,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Allowed IP Ranges (CIDR)\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 299,\n columnNumber: 13\n }, this),\n config.allowedIPs.map((ip, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-2 mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: ip,\n onChange: (e)=>handleArrayChange(\"allowedIPs\", index, e.target.value),\n placeholder: \"192.168.1.0/24\",\n className: \"input-field flex-1\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 302,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>removeArrayItem(\"allowedIPs\", index),\n className: \"text-red-600 hover:text-red-800\",\n children: \"Remove\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 309,\n columnNumber: 17\n }, this)\n ]\n }, index, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 301,\n columnNumber: 15\n }, this)),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>addArrayItem(\"allowedIPs\"),\n className: \"text-bzzz-primary hover:text-bzzz-primary/80 text-sm\",\n children: \"+ Add IP Range\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 318,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 298,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 284,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 278,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white border border-gray-200 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900 mb-4\",\n children: \"DNS Configuration\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 331,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"DNS Servers\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 334,\n columnNumber: 11\n }, this),\n config.dnsServers.map((dns, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-2 mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: dns,\n onChange: (e)=>handleArrayChange(\"dnsServers\", index, e.target.value),\n placeholder: \"8.8.8.8\",\n className: \"input-field flex-1\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 337,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>removeArrayItem(\"dnsServers\", index),\n className: \"text-red-600 hover:text-red-800\",\n children: \"Remove\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 344,\n columnNumber: 15\n }, this)\n ]\n }, index, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 336,\n columnNumber: 13\n }, this)),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>addArrayItem(\"dnsServers\"),\n className: \"text-bzzz-primary hover:text-bzzz-primary/80 text-sm\",\n children: \"+ Add DNS Server\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 353,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 333,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 330,\n columnNumber: 7\n }, this),\n errors.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-red-50 border border-red-200 rounded-lg p-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ExclamationTriangleIcon_GlobeAltIcon_InformationCircleIcon_ServerIcon_ShieldCheckIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-5 w-5 text-red-600 mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 367,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-red-800 font-medium\",\n children: \"Configuration Issues\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 368,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 366,\n columnNumber: 11\n }, this),\n errors.map((error, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-red-700 text-sm\",\n children: error\n }, index, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 371,\n columnNumber: 13\n }, this))\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 365,\n columnNumber: 9\n }, this),\n isFormValid && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-blue-50 border border-blue-200 rounded-lg p-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ExclamationTriangleIcon_GlobeAltIcon_InformationCircleIcon_ServerIcon_ShieldCheckIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-5 w-5 text-blue-600 mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 380,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-blue-800 font-medium\",\n children: \"Configuration Summary\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 381,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 379,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-blue-700 text-sm space-y-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"• Primary interface: \",\n config.primaryInterface\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 384,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"• BZZZ API will be available on port \",\n config.bzzzPort\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 385,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"• MCP server will run on port \",\n config.mcpPort\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 386,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"• Web UI will be accessible on port \",\n config.webUIPort\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 387,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"• P2P network will use port \",\n config.p2pPort\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 388,\n columnNumber: 13\n }, this),\n config.autoFirewall && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: \"• Firewall rules will be configured automatically\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 389,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 383,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 378,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between pt-6 border-t border-gray-200\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: onBack && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: onBack,\n className: \"btn-outline\",\n children: \"Back\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 398,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 396,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"submit\",\n disabled: !isFormValid,\n className: \"btn-primary\",\n children: isCompleted ? \"Continue\" : \"Next: Security Setup\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 404,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 395,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/NetworkConfiguration.tsx\",\n lineNumber: 170,\n columnNumber: 5\n }, this);\n}\n_s(NetworkConfiguration, \"/mesiMnNU/AqaAM96svkRsqFSTA=\");\n_c = NetworkConfiguration;\nvar _c;\n$RefreshReg$(_c, \"NetworkConfiguration\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9zZXR1cC9jb21wb25lbnRzL05ldHdvcmtDb25maWd1cmF0aW9uLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUUyQztBQVFQO0FBNkJyQixTQUFTTyxxQkFBcUIsS0FNakI7UUFOaUIsRUFDM0NDLFVBQVUsRUFDVkMsVUFBVSxFQUNWQyxVQUFVLEVBQ1ZDLE1BQU0sRUFDTkMsV0FBVyxFQUNlLEdBTmlCO1FBMElwQ0oscUJBa0JvQkE7O0lBckozQixNQUFNLENBQUNLLFFBQVFDLFVBQVUsR0FBR2QsK0NBQVFBLENBQWdCO1FBQ2xEZSxrQkFBa0I7UUFDbEJDLFdBQVc7UUFDWEMsVUFBVTtRQUNWQyxTQUFTO1FBQ1RDLFdBQVc7UUFDWEMsU0FBUztRQUNUQyxjQUFjO1FBQ2RDLFlBQVk7WUFBQztZQUFrQjtZQUFjO1NBQWdCO1FBQzdEQyxZQUFZO1lBQUM7WUFBVztTQUFVO0lBQ3BDO0lBRUEsTUFBTSxDQUFDQyxRQUFRQyxVQUFVLEdBQUd6QiwrQ0FBUUEsQ0FBVyxFQUFFO0lBQ2pELE1BQU0sQ0FBQzBCLGVBQWVDLGlCQUFpQixHQUFHM0IsK0NBQVFBLENBQVcsRUFBRTtJQUUvRCxrREFBa0Q7SUFDbERDLGdEQUFTQSxDQUFDO1FBQ1IsSUFBSU8sdUJBQUFBLGlDQUFBQSxXQUFZb0IsT0FBTyxFQUFFO1lBQ3ZCZCxVQUFVZSxDQUFBQTtvQkFFVXJCLGdDQUNQQTt1QkFITTtvQkFDakIsR0FBR3FCLElBQUk7b0JBQ1BkLGtCQUFrQlAsRUFBQUEsaUNBQUFBLFdBQVdvQixPQUFPLENBQUNFLFVBQVUsY0FBN0J0QixxREFBQUEsOEJBQStCLENBQUMsRUFBRSxLQUFJcUIsS0FBS2QsZ0JBQWdCO29CQUM3RUMsV0FBV1IsRUFBQUEsa0NBQUFBLFdBQVdvQixPQUFPLENBQUNHLFdBQVcsY0FBOUJ2QixzREFBQUEsK0JBQWdDLENBQUMsRUFBRSxLQUFJcUIsS0FBS2IsU0FBUztnQkFDbEU7O1FBQ0Y7UUFFQSxJ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RCw4REFBQ3VFOztvQ0FBRTtvQ0FBK0IzRSxPQUFPSyxPQUFPOzs7Ozs7OzBDQUNoRCw4REFBQ3NFOztvQ0FBRTtvQ0FBcUMzRSxPQUFPTSxTQUFTOzs7Ozs7OzBDQUN4RCw4REFBQ3FFOztvQ0FBRTtvQ0FBNkIzRSxPQUFPTyxPQUFPOzs7Ozs7OzRCQUM3Q1AsT0FBT1EsWUFBWSxrQkFBSSw4REFBQ21FOzBDQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBTWpDLDhEQUFDYjtnQkFBSUQsV0FBVTs7a0NBQ2IsOERBQUNDO2tDQUNFaEUsd0JBQ0MsOERBQUNvRjs0QkFBT1YsTUFBSzs0QkFBU1csU0FBU3JGOzRCQUFRK0QsV0FBVTtzQ0FBYzs7Ozs7Ozs7Ozs7a0NBTW5FLDhEQUFDcUI7d0JBQ0NWLE1BQUs7d0JBQ0xhLFVBQVUsQ0FBQzNCO3dCQUNYRyxXQUFVO2tDQUVUOUQsY0FBYyxhQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLdEM7R0F0WHdCTDtLQUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9hcHAvc2V0dXAvY29tcG9uZW50cy9OZXR3b3JrQ29uZmlndXJhdGlvbi50c3g/NDQ5NyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgXG4gIEdsb2JlQWx0SWNvbixcbiAgU2VydmVySWNvbixcbiAgU2hpZWxkQ2hlY2tJY29uLFxuICBFeGNsYW1hdGlvblRyaWFuZ2xlSWNvbixcbiAgQ2hlY2tDaXJjbGVJY29uLFxuICBJbmZvcm1hdGlvbkNpcmNsZUljb25cbn0gZnJvbSAnQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lJ1xuXG5pbnRlcmZhY2UgTmV0d29ya0ludGVyZmFjZSB7XG4gIG5hbWU6IHN0cmluZ1xuICBpcDogc3RyaW5nXG4gIHN0YXR1czogc3RyaW5nXG4gIHNwZWVkPzogc3RyaW5nXG59XG5cbmludGVyZmFjZSBOZXR3b3JrQ29uZmlnIHtcbiAgcHJpbWFyeUludGVyZmFjZTogc3RyaW5nXG4gIHByaW1hcnlJUDogc3RyaW5nXG4gIGJ6enpQb3J0OiBudW1iZXJcbiAgbWNwUG9ydDogbnVtYmVyXG4gIHdlYlVJUG9ydDogbnVtYmVyXG4gIHAycFBvcnQ6IG51bWJlclxuICBhdXRvRmlyZXdhbGw6IGJvb2xlYW5cbiAgYWxsb3dlZElQczogc3RyaW5nW11cbiAgZG5zU2VydmVyczogc3RyaW5nW11cbn1cblxuaW50ZXJmYWNlIE5ldHdvcmtDb25maWd1cmF0aW9uUHJvcHMge1xuICBzeXN0ZW1JbmZvOiBhbnlcbiAgY29uZmlnRGF0YTogYW55XG4gIG9uQ29tcGxldGU6IChkYXRhOiBhbnkpID0+IHZvaWRcbiAgb25CYWNrPzogKCkgPT4gdm9pZFxuICBpc0NvbXBsZXRlZDogYm9vbGVhblxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBOZXR3b3JrQ29uZmlndXJhdGlvbih7IFxuICBzeXN0ZW1JbmZvLCBcbiAgY29uZmlnRGF0YSwgXG4gIG9uQ29tcGxldGUsIFxuICBvbkJhY2ssIFxuICBpc0NvbXBsZXRlZCBcbn06IE5ldHdvcmtDb25maWd1cmF0aW9uUHJvcHMpIHtcbiAgY29uc3QgW2NvbmZpZywgc2V0Q29uZmlnXSA9IHVzZVN0YXRlPE5ldHdvcmtDb25maWc+KHtcbiAgICBwcmltYXJ5SW50ZXJmYWNlOiAnJyxcbiAgICBwcmltYXJ5SVA6ICcnLFxuICAgIGJ6enpQb3J0OiA4MDgwLFxuICAgIG1jcFBvcnQ6IDMwMDAsXG4gICAgd2ViVUlQb3J0OiA4MDgwLFxuICAgIHAycFBvcnQ6IDcwMDAsXG4gICAgYXV0b0ZpcmV3YWxsOiB0cnVlLFxuICAgIGFsbG93ZWRJUHM6IFsnMTkyLjE2OC4wLjAvMTYnLCAnMTAuMC4wLjAvOCcsICcxNzIuMTYuMC4wLzEyJ10sXG4gICAgZG5zU2VydmVyczogWyc4LjguOC44JywgJzguOC40LjQnXVxuICB9KVxuXG4gIGNvbnN0IFtlcnJvcnMsIHNldEVycm9yc10gPSB1c2VTdGF0ZTxzdHJpbmdbXT4oW10pXG4gIGNvbnN0IFtwb3J0Q29uZmxpY3RzLCBzZXRQb3J0Q29uZmxpY3RzXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihbXSlcblxuICAvLyBJbml0aWFsaXplIHdpdGggc3lzdGVtIGluZm8gYW5kIGV4aXN0aW5nIGNvbmZpZ1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzeXN0ZW1JbmZvPy5uZXR3b3JrKSB7XG4gICAgICBzZXRDb25maWcocHJldiA9PiAoe1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBwcmltYXJ5SW50ZXJmYWNlOiBzeXN0ZW1JbmZvLm5ldHdvcmsuaW50ZXJmYWNlcz8uWzBdIHx8IHByZXYucHJpbWFyeUludGVyZmFjZSxcbiAgICAgICAgcHJpbWFyeUlQOiBzeXN0ZW1JbmZvLm5ldHdvcmsucHJpdmF0ZV9pcHM/LlswXSB8fCBwcmV2LnByaW1hcnlJUFxuICAgICAgfSkpXG4gICAgfVxuICAgIFxuICAgIGlmIChjb25maWdEYXRhLm5ldHdvcmspIHtcbiAgICAgIHNldENvbmZpZyhwcmV2ID0+ICh7IC4uLnByZXYsIC4uLmNvbmZpZ0RhdGEubmV0d29yayB9KSlcbiAgICB9XG4gIH0sIFtzeXN0ZW1JbmZvLCBjb25maWdEYXRhXSlcblxuICAvLyBWYWxpZGF0ZSBjb25maWd1cmF0aW9uXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdmFsaWRhdGVDb25maWd1cmF0aW9uKClcbiAgfSwgW2NvbmZpZ10pXG5cbiAgY29uc3QgdmFsaWRhdGVDb25maWd1cmF0aW9uID0gKCkgPT4ge1xuICAgIGNvbnN0IG5ld0Vycm9yczogc3RyaW5nW10gPSBbXVxuICAgIGNvbnN0IGNvbmZsaWN0czogc3RyaW5nW10gPSBbXVxuXG4gICAgLy8gQ2hlY2sgZm9yIHBvcnQgY29uZmxpY3RzXG4gICAgY29uc3QgcG9ydHMgPSBbY29uZmlnLmJ6enpQb3J0LCBjb25maWcubWNwUG9ydCwgY29uZmlnLndlYlVJUG9ydCwgY29uZmlnLnAycFBvcnRdXG4gICAgY29uc3QgdW5pcXVlUG9ydHMgPSBuZXcgU2V0KHBvcnRzKVxuICAgIGlmICh1bmlxdWVQb3J0cy5zaXplICE9PSBwb3J0cy5sZW5ndGgpIHtcbiAgICAgIGNvbmZsaWN0cy5wdXNoKCdQb3J0IG51bWJlcnMgbXVzdCBiZSB1bmlxdWUnKVxuICAgIH1cblxuICAgIC8vIENoZWNrIHBvcnQgcmFuZ2VzXG4gICAgcG9ydHMuZm9yRWFjaCgocG9ydCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHBvcnROYW1lcyA9IFsnQlpaWiBBUEknLCAnTUNQIFNlcnZlcicsICdXZWIgVUknLCAnUDJQIE5ldHdvcmsnXVxuICAgICAgaWYgKHBvcnQgPCAxMDI0KSB7XG4gICAgICAgIG5ld0Vycm9ycy5wdXNoKGAke3BvcnROYW1lc1tpbmRleF19IHBvcnQgc2hvdWxkIGJlIGFib3ZlIDEwMjQgdG8gYXZvaWQgcmVxdWlyaW5nIHJvb3QgcHJpdmlsZWdlc2ApXG4gICAgICB9XG4gICAgICBpZiAocG9ydCA+IDY1NTM1KSB7XG4gICAgICAgIG5ld0Vycm9ycy5wdXNoKGAke3BvcnROYW1lc1tpbmRleF19IHBvcnQgbXVzdCBiZSBiZWxvdyA2NTUzNmApXG4gICAgICB9XG4gICAgfSlcblxuICAgIC8vIFZhbGlkYXRlIElQIGFkZHJlc3NlcyBpbiBhbGxvd2VkIElQc1xuICAgIGNvbmZpZy5hbGxvd2VkSVBzLmZvckVhY2goaXAgPT4ge1xuICAgICAgaWYgKGlwICYmICFpc1ZhbGlkQ0lEUihpcCkpIHtcbiAgICAgICAgbmV3RXJyb3JzLnB1c2goYEludmFsaWQgQ0lEUiBub3RhdGlvbjogJHtpcH1gKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICAvLyBWYWxpZGF0ZSBETlMgc2VydmVyc1xuICAgIGNvbmZpZy5kbnNTZXJ2ZXJzLmZvckVhY2goZG5zID0+IHtcbiAgICAgIGlmIChkbnMgJiYgIWlzVmFsaWRJUEFkZHJlc3MoZG5zKSkge1xuICAgICAgICBuZXdFcnJvcnMucHVzaChgSW52YWxpZCBETlMgc2VydmVyIElQOiAke2Ruc31gKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBzZXRFcnJvcnMobmV3RXJyb3JzKVxuICAgIHNldFBvcnRDb25mbGljdHMoY29uZmxpY3RzKVxuICB9XG5cbiAgY29uc3QgaXNWYWxpZENJRFIgPSAoY2lkcjogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgcmVnZXggPSAvXihcXGR7MSwzfVxcLil7M31cXGR7MSwzfVxcL1xcZHsxLDJ9JC9cbiAgICByZXR1cm4gcmVnZXgudGVzdChjaWRyKVxuICB9XG5cbiAgY29uc3QgaXNWYWxpZElQQWRkcmVzcyA9IChpcDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgcmVnZXggPSAvXihcXGR7MSwzfVxcLil7M31cXGR7MSwzfSQvXG4gICAgaWYgKCFyZWdleC50ZXN0KGlwKSkgcmV0dXJuIGZhbHNlXG4gICAgcmV0dXJuIGlwLnNwbGl0KCcuJykuZXZlcnkocGFydCA9PiBwYXJzZUludChwYXJ0KSA+PSAwICYmIHBhcnNlSW50KHBhcnQpIDw9IDI1NSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVBvcnRDaGFuZ2UgPSAoZmllbGQ6IGtleW9mIE5ldHdvcmtDb25maWcsIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBudW1WYWx1ZSA9IHBhcnNlSW50KHZhbHVlKSB8fCAwXG4gICAgc2V0Q29uZmlnKHByZXYgPT4gKHsgLi4ucHJldiwgW2ZpZWxkXTogbnVtVmFsdWUgfSkpXG4gIH1cblxuICBjb25zdCBoYW5kbGVBcnJheUNoYW5nZSA9IChmaWVsZDogJ2FsbG93ZWRJUHMnIHwgJ2Ruc1NlcnZlcnMnLCBpbmRleDogbnVtYmVyLCB2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgc2V0Q29uZmlnKHByZXYgPT4gKHtcbiAgICAgIC4uLnByZXYsXG4gICAgICBbZmllbGRdOiBwcmV2W2ZpZWxkXS5tYXAoKGl0ZW0sIGkpID0+IGkgPT09IGluZGV4ID8gdmFsdWUgOiBpdGVtKVxuICAgIH0pKVxuICB9XG5cbiAgY29uc3QgYWRkQXJyYXlJdGVtID0gKGZpZWxkOiAnYWxsb3dlZElQcycgfCAnZG5zU2VydmVycycpID0+IHtcbiAgICBzZXRDb25maWcocHJldiA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIFtmaWVsZF06IFsuLi5wcmV2W2ZpZWxkXSwgJyddXG4gICAgfSkpXG4gIH1cblxuICBjb25zdCByZW1vdmVBcnJheUl0ZW0gPSAoZmllbGQ6ICdhbGxvd2VkSVBzJyB8ICdkbnNTZXJ2ZXJzJywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIHNldENvbmZpZyhwcmV2ID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgW2ZpZWxkXTogcHJldltmaWVsZF0uZmlsdGVyKChfLCBpKSA9PiBpICE9PSBpbmRleClcbiAgICB9KSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdCA9IChlOiBSZWFjdC5Gb3JtRXZlbnQpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBcbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA9PT0gMCAmJiBwb3J0Q29uZmxpY3RzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgb25Db21wbGV0ZSh7IG5ldHdvcms6IGNvbmZpZyB9KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGlzRm9ybVZhbGlkID0gZXJyb3JzLmxlbmd0aCA9PT0gMCAmJiBwb3J0Q29uZmxpY3RzLmxlbmd0aCA9PT0gMFxuXG4gIHJldHVybiAoXG4gICAgPGZvcm0gb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH0gY2xhc3NOYW1lPVwic3BhY2UteS02XCI+XG4gICAgICB7LyogTmV0d29yayBJbnRlcmZhY2UgU2VsZWN0aW9uICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy1ncmF5LTUwIHJvdW5kZWQtbGcgcC02XCI+XG4gICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDAgbWItNCBmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxHbG9iZUFsdEljb24gY2xhc3NOYW1lPVwiaC02IHctNiB0ZXh0LWJ6enotcHJpbWFyeSBtci0yXCIgLz5cbiAgICAgICAgICBOZXR3b3JrIEludGVyZmFjZVxuICAgICAgICA8L2gzPlxuICAgICAgICBcbiAgICAgICAge3N5c3RlbUluZm8/Lm5ldHdvcms/LmludGVyZmFjZXMgJiYgKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0zXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwibGFiZWxcIj5QcmltYXJ5IE5ldHdvcmsgSW50ZXJmYWNlPC9sYWJlbD5cbiAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgdmFsdWU9e2NvbmZpZy5wcmltYXJ5SW50ZXJmYWNlfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldENvbmZpZyhwcmV2ID0+ICh7IC4uLnByZXYsIHByaW1hcnlJbnRlcmZhY2U6IGUudGFyZ2V0LnZhbHVlIH0pKX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW5wdXQtZmllbGRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+U2VsZWN0IG5ldHdvcmsgaW50ZXJmYWNlPC9vcHRpb24+XG4gICAgICAgICAgICAgIHtzeXN0ZW1JbmZvLm5ldHdvcmsuaW50ZXJmYWNlcy5tYXAoKGludGVyZmFjZU5hbWU6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gKFxuICAgICAgICAgICAgICAgIDxvcHRpb24ga2V5PXtpbmRleH0gdmFsdWU9e2ludGVyZmFjZU5hbWV9PlxuICAgICAgICAgICAgICAgICAge2ludGVyZmFjZU5hbWV9IC0ge3N5c3RlbUluZm8ubmV0d29yay5wcml2YXRlX2lwc1tpbmRleF0gfHwgJ1Vua25vd24gSVAnfVxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgXG4gICAgICAgICAgICB7Y29uZmlnLnByaW1hcnlJbnRlcmZhY2UgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTYwMFwiPlxuICAgICAgICAgICAgICAgIFByaW1hcnkgSVA6IHtzeXN0ZW1JbmZvLm5ldHdvcmsucHJpdmF0ZV9pcHM/LltzeXN0ZW1JbmZvLm5ldHdvcmsuaW50ZXJmYWNlcy5pbmRleE9mKGNvbmZpZy5wcmltYXJ5SW50ZXJmYWNlKV0gfHwgJ1Vua25vd24nfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cblxuICAgICAgey8qIFBvcnQgQ29uZmlndXJhdGlvbiAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHAtNlwiPlxuICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwIG1iLTQgZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8U2VydmVySWNvbiBjbGFzc05hbWU9XCJoLTYgdy02IHRleHQtYnp6ei1wcmltYXJ5IG1yLTJcIiAvPlxuICAgICAgICAgIFBvcnQgQ29uZmlndXJhdGlvblxuICAgICAgICA8L2gzPlxuICAgICAgICBcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIGdhcC00XCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJsYWJlbFwiPkJaWlogQVBJIFBvcnQ8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICB2YWx1ZT17Y29uZmlnLmJ6enpQb3J0fVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZVBvcnRDaGFuZ2UoJ2J6enpQb3J0JywgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICBtaW49XCIxMDI0XCJcbiAgICAgICAgICAgICAgbWF4PVwiNjU1MzVcIlxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbnB1dC1maWVsZFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIG10LTFcIj5NYWluIEJaWlogSFRUUCBBUEkgZW5kcG9pbnQ8L3A+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImxhYmVsXCI+TUNQIFNlcnZlciBQb3J0PC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgdmFsdWU9e2NvbmZpZy5tY3BQb3J0fVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZVBvcnRDaGFuZ2UoJ21jcFBvcnQnLCBlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgIG1pbj1cIjEwMjRcIlxuICAgICAgICAgICAgICBtYXg9XCI2NTUzNVwiXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImlucHV0LWZpZWxkXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDAgbXQtMVwiPk1vZGVsIENvbnRleHQgUHJvdG9jb2wgc2VydmVyPC9wPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJsYWJlbFwiPldlYiBVSSBQb3J0PC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgdmFsdWU9e2NvbmZpZy53ZWJVSVBvcnR9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlUG9ydENoYW5nZSgnd2ViVUlQb3J0JywgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICBtaW49XCIxMDI0XCJcbiAgICAgICAgICAgICAgbWF4PVwiNjU1MzVcIlxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbnB1dC1maWVsZFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIG10LTFcIj5XZWIgaW50ZXJmYWNlIHBvcnQ8L3A+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImxhYmVsXCI+UDJQIE5ldHdvcmsgUG9ydDwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgIHZhbHVlPXtjb25maWcucDJwUG9ydH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVQb3J0Q2hhbmdlKCdwMnBQb3J0JywgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICBtaW49XCIxMDI0XCJcbiAgICAgICAgICAgICAgbWF4PVwiNjU1MzVcIlxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbnB1dC1maWVsZFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIG10LTFcIj5QZWVyLXRvLXBlZXIgY29tbXVuaWNhdGlvbjwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAge3BvcnRDb25mbGljdHMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC00IHAtMyBiZy1yZWQtNTAgYm9yZGVyIGJvcmRlci1yZWQtMjAwIHJvdW5kZWQtbGdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPEV4Y2xhbWF0aW9uVHJpYW5nbGVJY29uIGNsYXNzTmFtZT1cImgtNSB3LTUgdGV4dC1yZWQtNjAwIG1yLTJcIiAvPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXJlZC04MDAgZm9udC1tZWRpdW1cIj5Qb3J0IENvbmZsaWN0czwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge3BvcnRDb25mbGljdHMubWFwKChjb25mbGljdCwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgPHAga2V5PXtpbmRleH0gY2xhc3NOYW1lPVwidGV4dC1yZWQtNzAwIHRleHQtc20gbXQtMVwiPntjb25mbGljdH08L3A+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogU2VjdXJpdHkgJiBBY2Nlc3MgQ29udHJvbCAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHAtNlwiPlxuICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwIG1iLTQgZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8U2hpZWxkQ2hlY2tJY29uIGNsYXNzTmFtZT1cImgtNiB3LTYgdGV4dC1ienp6LXByaW1hcnkgbXItMlwiIC8+XG4gICAgICAgICAgU2VjdXJpdHkgJiBBY2Nlc3MgQ29udHJvbFxuICAgICAgICA8L2gzPlxuICAgICAgICBcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgaWQ9XCJhdXRvRmlyZXdhbGxcIlxuICAgICAgICAgICAgICBjaGVja2VkPXtjb25maWcuYXV0b0ZpcmV3YWxsfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldENvbmZpZyhwcmV2ID0+ICh7IC4uLnByZXYsIGF1dG9GaXJld2FsbDogZS50YXJnZXQuY2hlY2tlZCB9KSl9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtNCB3LTQgdGV4dC1ienp6LXByaW1hcnkgZm9jdXM6cmluZy1ienp6LXByaW1hcnkgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwiYXV0b0ZpcmV3YWxsXCIgY2xhc3NOYW1lPVwibWwtMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDBcIj5cbiAgICAgICAgICAgICAgQXV0b21hdGljYWxseSBjb25maWd1cmUgZmlyZXdhbGwgcnVsZXNcbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImxhYmVsXCI+QWxsb3dlZCBJUCBSYW5nZXMgKENJRFIpPC9sYWJlbD5cbiAgICAgICAgICAgIHtjb25maWcuYWxsb3dlZElQcy5tYXAoKGlwLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2IGtleT17aW5kZXh9IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMiBtYi0yXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17aXB9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZUFycmF5Q2hhbmdlKCdhbGxvd2VkSVBzJywgaW5kZXgsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiMTkyLjE2OC4xLjAvMjRcIlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW5wdXQtZmllbGQgZmxleC0xXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gcmVtb3ZlQXJyYXlJdGVtKCdhbGxvd2VkSVBzJywgaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1yZWQtNjAwIGhvdmVyOnRleHQtcmVkLTgwMFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgUmVtb3ZlXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBhZGRBcnJheUl0ZW0oJ2FsbG93ZWRJUHMnKX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1ienp6LXByaW1hcnkgaG92ZXI6dGV4dC1ienp6LXByaW1hcnkvODAgdGV4dC1zbVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICsgQWRkIElQIFJhbmdlXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgey8qIEROUyBDb25maWd1cmF0aW9uICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQtbGcgcC02XCI+XG4gICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDAgbWItNFwiPkROUyBDb25maWd1cmF0aW9uPC9oMz5cbiAgICAgICAgXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImxhYmVsXCI+RE5TIFNlcnZlcnM8L2xhYmVsPlxuICAgICAgICAgIHtjb25maWcuZG5zU2VydmVycy5tYXAoKGRucywgaW5kZXgpID0+IChcbiAgICAgICAgICAgIDxkaXYga2V5PXtpbmRleH0gY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0yIG1iLTJcIj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIHZhbHVlPXtkbnN9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVBcnJheUNoYW5nZSgnZG5zU2VydmVycycsIGluZGV4LCBlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCI4LjguOC44XCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbnB1dC1maWVsZCBmbGV4LTFcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gcmVtb3ZlQXJyYXlJdGVtKCdkbnNTZXJ2ZXJzJywgaW5kZXgpfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtcmVkLTYwMCBob3Zlcjp0ZXh0LXJlZC04MDBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgUmVtb3ZlXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKSl9XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBhZGRBcnJheUl0ZW0oJ2Ruc1NlcnZlcnMnKX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtYnp6ei1wcmltYXJ5IGhvdmVyOnRleHQtYnp6ei1wcmltYXJ5LzgwIHRleHQtc21cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgICsgQWRkIEROUyBTZXJ2ZXJcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgey8qIFZhbGlkYXRpb24gRXJyb3JzICovfVxuICAgICAge2Vycm9ycy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy1yZWQtNTAgYm9yZGVyIGJvcmRlci1yZWQtMjAwIHJvdW5kZWQtbGcgcC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBtYi0yXCI+XG4gICAgICAgICAgICA8RXhjbGFtYXRpb25UcmlhbmdsZUljb24gY2xhc3NOYW1lPVwiaC01IHctNSB0ZXh0LXJlZC02MDAgbXItMlwiIC8+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXJlZC04MDAgZm9udC1tZWRpdW1cIj5Db25maWd1cmF0aW9uIElzc3Vlczwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB7ZXJyb3JzLm1hcCgoZXJyb3IsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8cCBrZXk9e2luZGV4fSBjbGFzc05hbWU9XCJ0ZXh0LXJlZC03MDAgdGV4dC1zbVwiPntlcnJvcn08L3A+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cblxuICAgICAgey8qIENvbmZpZ3VyYXRpb24gU3VtbWFyeSAqL31cbiAgICAgIHtpc0Zvcm1WYWxpZCAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctYmx1ZS01MCBib3JkZXIgYm9yZGVyLWJsdWUtMjAwIHJvdW5kZWQtbGcgcC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBtYi0yXCI+XG4gICAgICAgICAgICA8SW5mb3JtYXRpb25DaXJjbGVJY29uIGNsYXNzTmFtZT1cImgtNSB3LTUgdGV4dC1ibHVlLTYwMCBtci0yXCIgLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtYmx1ZS04MDAgZm9udC1tZWRpdW1cIj5Db25maWd1cmF0aW9uIFN1bW1hcnk8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWJsdWUtNzAwIHRleHQtc20gc3BhY2UteS0xXCI+XG4gICAgICAgICAgICA8cD7igKIgUHJpbWFyeSBpbnRlcmZhY2U6IHtjb25maWcucHJpbWFyeUludGVyZmFjZX08L3A+XG4gICAgICAgICAgICA8cD7igKIgQlpaWiBBUEkgd2lsbCBiZSBhdmFpbGFibGUgb24gcG9ydCB7Y29uZmlnLmJ6enpQb3J0fTwvcD5cbiAgICAgICAgICAgIDxwPuKAoiBNQ1Agc2VydmVyIHdpbGwgcnVuIG9uIHBvcnQge2NvbmZpZy5tY3BQb3J0fTwvcD5cbiAgICAgICAgICAgIDxwPuKAoiBXZWIgVUkgd2lsbCBiZSBhY2Nlc3NpYmxlIG9uIHBvcnQge2NvbmZpZy53ZWJVSVBvcnR9PC9wPlxuICAgICAgICAgICAgPHA+4oCiIFAyUCBuZXR3b3JrIHdpbGwgdXNlIHBvcnQge2NvbmZpZy5wMnBQb3J0fTwvcD5cbiAgICAgICAgICAgIHtjb25maWcuYXV0b0ZpcmV3YWxsICYmIDxwPuKAoiBGaXJld2FsbCBydWxlcyB3aWxsIGJlIGNvbmZpZ3VyZWQgYXV0b21hdGljYWxseTwvcD59XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cblxuICAgICAgey8qIEFjdGlvbiBCdXR0b25zICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBwdC02IGJvcmRlci10IGJvcmRlci1ncmF5LTIwMFwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHtvbkJhY2sgJiYgKFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17b25CYWNrfSBjbGFzc05hbWU9XCJidG4tb3V0bGluZVwiPlxuICAgICAgICAgICAgICBCYWNrXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICBkaXNhYmxlZD17IWlzRm9ybVZhbGlkfVxuICAgICAgICAgIGNsYXNzTmFtZT1cImJ0bi1wcmltYXJ5XCJcbiAgICAgICAgPlxuICAgICAgICAgIHtpc0NvbXBsZXRlZCA/ICdDb250aW51ZScgOiAnTmV4dDogU2VjdXJpdHkgU2V0dXAnfVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgKVxufSJdLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIkdsb2JlQWx0SWNvbiIsIlNlcnZlckljb24iLCJTaGllbGRDaGVja0ljb24iLCJFeGNsYW1hdGlvblRyaWFuZ2xlSWNvbiIsIkluZm9ybWF0aW9uQ2lyY2xlSWNvbiIsIk5ldHdvcmtDb25maWd1cmF0aW9uIiwic3lzdGVtSW5mbyIsImNvbmZpZ0RhdGEiLCJvbkNvbXBsZXRlIiwib25CYWNrIiwiaXNDb21wbGV0ZWQiLCJjb25maWciLCJzZXRDb25maWciLCJwcmltYXJ5SW50ZXJmYWNlIiwicHJpbWFyeUlQIiwiYnp6elBvcnQiLCJtY3BQb3J0Iiwid2ViVUlQb3J0IiwicDJwUG9ydCIsImF1dG9GaXJld2FsbCIsImFsbG93ZWRJUHMiLCJkbnNTZXJ2ZXJzIiwiZXJyb3JzIiwic2V0RXJyb3JzIiwicG9ydENvbmZsaWN0cyIsInNldFBvcnRDb25mbGljdHMiLCJuZXR3b3JrIiwicHJldiIsImludGVyZmFjZXMiLCJwcml2YXRlX2lwcyIsInZhbGlkYXRlQ29uZmlndXJhdGlvbiIsIm5ld0Vycm9ycyIsImNvbmZsaWN0cyIsInBvcnRzIiwidW5pcXVlUG9ydHMiLCJTZXQiLCJzaXplIiwibGVuZ3RoIiwicHVzaCIsImZvckVhY2giLCJwb3J0IiwiaW5kZXgiLCJwb3J0TmFtZXMiLCJpcCIsImlzVmFsaWRDSURSIiwiZG5zIiwiaXNWYWxpZElQQWRkcmVzcyIsImNpZHIiLCJyZWdleCIsInRlc3QiLCJzcGxpdCIsImV2ZXJ5IiwicGFydCIsInBhcnNlSW50IiwiaGFuZGxlUG9ydENoYW5nZSIsImZpZWxkIiwidmFsdWUiLCJudW1WYWx1ZSIsImhhbmRsZUFycmF5Q2hhbmdlIiwibWFwIiwiaXRlbSIsImkiLCJhZGRBcnJheUl0ZW0iLCJyZW1vdmVBcnJheUl0ZW0iLCJmaWx0ZXIiLCJfIiwiaGFuZGxlU3VibWl0IiwiZSIsInByZXZlbnREZWZhdWx0IiwiaXNGb3JtVmFsaWQiLCJmb3JtIiwib25TdWJtaXQiLCJjbGFzc05hbWUiLCJkaXYiLCJoMyIsImxhYmVsIiwic2VsZWN0Iiwib25DaGFuZ2UiLCJ0YXJnZXQiLCJvcHRpb24iLCJpbnRlcmZhY2VOYW1lIiwiaW5kZXhPZiIsImlucHV0IiwidHlwZSIsIm1pbiIsIm1heCIsInAiLCJzcGFuIiwiY29uZmxpY3QiLCJpZCIsImNoZWNrZWQiLCJodG1sRm9yIiwicGxhY2Vob2xkZXIiLCJidXR0b24iLCJvbkNsaWNrIiwiZXJyb3IiLCJkaXNhYmxlZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/setup/components/NetworkConfiguration.tsx\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./app/setup/components/RepositoryConfiguration.tsx":
|
|
/*!**********************************************************!*\
|
|
!*** ./app/setup/components/RepositoryConfiguration.tsx ***!
|
|
\**********************************************************/
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ RepositoryConfiguration; }\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 _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CodeBracketIcon_EyeIcon_EyeSlashIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CodeBracketIcon,EyeIcon,EyeSlashIcon,XCircleIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ArrowPathIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CodeBracketIcon_EyeIcon_EyeSlashIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CodeBracketIcon,EyeIcon,EyeSlashIcon,XCircleIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CodeBracketIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CodeBracketIcon_EyeIcon_EyeSlashIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CodeBracketIcon,EyeIcon,EyeSlashIcon,XCircleIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/EyeSlashIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CodeBracketIcon_EyeIcon_EyeSlashIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CodeBracketIcon,EyeIcon,EyeSlashIcon,XCircleIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/EyeIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CodeBracketIcon_EyeIcon_EyeSlashIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CodeBracketIcon,EyeIcon,EyeSlashIcon,XCircleIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CheckCircleIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CodeBracketIcon_EyeIcon_EyeSlashIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CodeBracketIcon,EyeIcon,EyeSlashIcon,XCircleIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/XCircleIcon.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\nfunction RepositoryConfiguration(param) {\n let { systemInfo, configData, onComplete, onBack, isCompleted } = param;\n _s();\n const [providers, setProviders] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [config, setConfig] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n provider: \"\",\n baseURL: \"\",\n accessToken: \"\",\n owner: \"\",\n repository: \"\"\n });\n const [validation, setValidation] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [validating, setValidating] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [showToken, setShowToken] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [loadingProviders, setLoadingProviders] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n // Load existing config from configData if available\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (configData.repository) {\n setConfig({\n ...configData.repository\n });\n }\n }, [\n configData\n ]);\n // Load supported providers\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n loadProviders();\n }, []);\n const loadProviders = async ()=>{\n try {\n const response = await fetch(\"/api/setup/repository/providers\");\n if (response.ok) {\n const result = await response.json();\n const providerList = result.providers || [];\n // Map provider names to full provider objects\n const providersData = providerList.map((name)=>{\n switch(name.toLowerCase()){\n case \"gitea\":\n return {\n name: \"gitea\",\n displayName: \"Gitea\",\n description: \"Self-hosted Git service with issue tracking\",\n requiresBaseURL: true,\n defaultBaseURL: \"http://gitea.local\"\n };\n case \"github\":\n return {\n name: \"github\",\n displayName: \"GitHub\",\n description: \"Cloud-based Git repository hosting service\",\n requiresBaseURL: false,\n defaultBaseURL: \"https://api.github.com\"\n };\n default:\n return {\n name: name.toLowerCase(),\n displayName: name,\n description: \"Git repository service\",\n requiresBaseURL: true\n };\n }\n });\n setProviders(providersData);\n // Set default provider if none selected\n if (!config.provider && providersData.length > 0) {\n const defaultProvider = providersData.find((p)=>p.name === \"gitea\") || providersData[0];\n handleProviderChange(defaultProvider.name);\n }\n }\n } catch (error) {\n console.error(\"Failed to load providers:\", error);\n } finally{\n setLoadingProviders(false);\n }\n };\n const handleProviderChange = (provider)=>{\n const providerData = providers.find((p)=>p.name === provider);\n setConfig((prev)=>({\n ...prev,\n provider,\n baseURL: (providerData === null || providerData === void 0 ? void 0 : providerData.defaultBaseURL) || prev.baseURL\n }));\n setValidation(null);\n };\n const handleInputChange = (field, value)=>{\n setConfig((prev)=>({\n ...prev,\n [field]: value\n }));\n setValidation(null);\n };\n const validateRepository = async ()=>{\n if (!config.provider || !config.accessToken || !config.owner || !config.repository) {\n setValidation({\n valid: false,\n error: \"Please fill in all required fields\"\n });\n return;\n }\n setValidating(true);\n setValidation(null);\n try {\n const response = await fetch(\"/api/setup/repository/validate\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(config)\n });\n const result = await response.json();\n if (response.ok && result.valid) {\n setValidation({\n valid: true,\n message: result.message || \"Repository connection successful\"\n });\n } else {\n setValidation({\n valid: false,\n error: result.error || \"Validation failed\"\n });\n }\n } catch (error) {\n setValidation({\n valid: false,\n error: \"Network error: Unable to validate repository\"\n });\n } finally{\n setValidating(false);\n }\n };\n const handleSubmit = (e)=>{\n e.preventDefault();\n if (validation === null || validation === void 0 ? void 0 : validation.valid) {\n onComplete({\n repository: config\n });\n } else {\n validateRepository();\n }\n };\n const selectedProvider = providers.find((p)=>p.name === config.provider);\n const isFormValid = config.provider && config.accessToken && config.owner && config.repository && (!(selectedProvider === null || selectedProvider === void 0 ? void 0 : selectedProvider.requiresBaseURL) || config.baseURL);\n if (loadingProviders) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-center py-12\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CodeBracketIcon_EyeIcon_EyeSlashIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"h-8 w-8 text-bzzz-primary animate-spin mx-auto mb-4\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 204,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600\",\n children: \"Loading repository providers...\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 205,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 203,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 202,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: handleSubmit,\n className: \"space-y-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-gray-50 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900 mb-4 flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CodeBracketIcon_EyeIcon_EyeSlashIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 216,\n columnNumber: 11\n }, this),\n \"Repository Provider\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 215,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-2 gap-4\",\n children: providers.map((provider)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border-2 rounded-lg p-4 cursor-pointer transition-all \".concat(config.provider === provider.name ? \"border-bzzz-primary bg-bzzz-primary bg-opacity-10\" : \"border-gray-200 hover:border-gray-300\"),\n onClick: ()=>handleProviderChange(provider.name),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"radio\",\n name: \"provider\",\n value: provider.name,\n checked: config.provider === provider.name,\n onChange: ()=>handleProviderChange(provider.name),\n className: \"h-4 w-4 text-bzzz-primary focus:ring-bzzz-primary border-gray-300\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 232,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"ml-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"font-medium text-gray-900\",\n children: provider.displayName\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 241,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600\",\n children: provider.description\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 242,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 240,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 231,\n columnNumber: 15\n }, this)\n }, provider.name, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 222,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 220,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 214,\n columnNumber: 7\n }, this),\n config.provider && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-6\",\n children: [\n (selectedProvider === null || selectedProvider === void 0 ? void 0 : selectedProvider.requiresBaseURL) && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Base URL *\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 256,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"url\",\n value: config.baseURL,\n onChange: (e)=>handleInputChange(\"baseURL\", e.target.value),\n placeholder: \"e.g., \".concat(selectedProvider.defaultBaseURL || \"https://git.example.com\"),\n className: \"input-field\",\n required: true\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 259,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600 mt-1\",\n children: [\n \"The base URL for your \",\n selectedProvider.displayName,\n \" instance\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 267,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 255,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Access Token *\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 275,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: showToken ? \"text\" : \"password\",\n value: config.accessToken,\n onChange: (e)=>handleInputChange(\"accessToken\", e.target.value),\n placeholder: \"Your \".concat(selectedProvider === null || selectedProvider === void 0 ? void 0 : selectedProvider.displayName, \" access token\"),\n className: \"input-field pr-10\",\n required: true\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 279,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>setShowToken(!showToken),\n className: \"absolute inset-y-0 right-0 pr-3 flex items-center\",\n children: showToken ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CodeBracketIcon_EyeIcon_EyeSlashIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-5 w-5 text-gray-400\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 293,\n columnNumber: 19\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CodeBracketIcon_EyeIcon_EyeSlashIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-5 w-5 text-gray-400\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 295,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 287,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 278,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600 mt-1\",\n children: (selectedProvider === null || selectedProvider === void 0 ? void 0 : selectedProvider.name) === \"github\" ? \"Generate a personal access token with repo and admin:repo_hook permissions\" : \"Generate an access token with repository read/write permissions\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 299,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 274,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Owner/Organization *\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 309,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: config.owner,\n onChange: (e)=>handleInputChange(\"owner\", e.target.value),\n placeholder: \"username or organization\",\n className: \"input-field\",\n required: true\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 312,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600 mt-1\",\n children: \"The username or organization that owns the repository\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 320,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 308,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"label\",\n children: \"Repository Name *\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 327,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: config.repository,\n onChange: (e)=>handleInputChange(\"repository\", e.target.value),\n placeholder: \"repository-name\",\n className: \"input-field\",\n required: true\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 330,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600 mt-1\",\n children: \"The name of the repository for task management\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 338,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 326,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white border border-gray-200 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-md font-medium text-gray-900 mb-3\",\n children: \"Connection Test\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 345,\n columnNumber: 13\n }, this),\n validation && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center p-3 rounded-lg mb-4 \".concat(validation.valid ? \"bg-green-50 border border-green-200\" : \"bg-red-50 border border-red-200\"),\n children: [\n validation.valid ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CodeBracketIcon_EyeIcon_EyeSlashIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-5 w-5 text-green-600 mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 354,\n columnNumber: 19\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CodeBracketIcon_EyeIcon_EyeSlashIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-5 w-5 text-red-600 mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 356,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm \".concat(validation.valid ? \"text-green-800\" : \"text-red-800\"),\n children: validation.valid ? validation.message : validation.error\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 358,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 348,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: validateRepository,\n disabled: !isFormValid || validating,\n className: \"btn-outline w-full sm:w-auto\",\n children: validating ? /*#__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)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CodeBracketIcon_EyeIcon_EyeSlashIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"h-4 w-4 animate-spin mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 374,\n columnNumber: 19\n }, this),\n \"Testing Connection...\"\n ]\n }, void 0, true) : \"Test Repository Connection\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 366,\n columnNumber: 13\n }, this),\n !isFormValid && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600 mt-2\",\n children: \"Please fill in all required fields to test the connection\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 383,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 344,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 252,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between pt-6 border-t border-gray-200\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: onBack && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: onBack,\n className: \"btn-outline\",\n children: \"Back\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 395,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 393,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"submit\",\n disabled: !(validation === null || validation === void 0 ? void 0 : validation.valid),\n className: \"btn-primary\",\n children: (validation === null || validation === void 0 ? void 0 : validation.valid) ? isCompleted ? \"Continue\" : \"Next: Network Configuration\" : \"Validate & Continue\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 401,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 392,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/RepositoryConfiguration.tsx\",\n lineNumber: 212,\n columnNumber: 5\n }, this);\n}\n_s(RepositoryConfiguration, \"m3awoEaHoTwERIiHay08EspGzEo=\");\n_c = RepositoryConfiguration;\nvar _c;\n$RefreshReg$(_c, \"RepositoryConfiguration\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9zZXR1cC9jb21wb25lbnRzL1JlcG9zaXRvcnlDb25maWd1cmF0aW9uLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFFMkM7QUFTUDtBQWdDckIsU0FBU1Esd0JBQXdCLEtBTWpCO1FBTmlCLEVBQzlDQyxVQUFVLEVBQ1ZDLFVBQVUsRUFDVkMsVUFBVSxFQUNWQyxNQUFNLEVBQ05DLFdBQVcsRUFDa0IsR0FOaUI7O0lBTzlDLE1BQU0sQ0FBQ0MsV0FBV0MsYUFBYSxHQUFHZiwrQ0FBUUEsQ0FBdUIsRUFBRTtJQUNuRSxNQUFNLENBQUNnQixRQUFRQyxVQUFVLEdBQUdqQiwrQ0FBUUEsQ0FBbUI7UUFDckRrQixVQUFVO1FBQ1ZDLFNBQVM7UUFDVEMsYUFBYTtRQUNiQyxPQUFPO1FBQ1BDLFlBQVk7SUFDZDtJQUNBLE1BQU0sQ0FBQ0MsWUFBWUMsY0FBYyxHQUFHeEIsK0NBQVFBLENBQTBCO0lBQ3RFLE1BQU0sQ0FBQ3lCLFlBQVlDLGNBQWMsR0FBRzFCLCtDQUFRQSxDQUFDO0lBQzdDLE1BQU0sQ0FBQzJCLFdBQVdDLGFBQWEsR0FBRzVCLCtDQUFRQSxDQUFDO0lBQzNDLE1BQU0sQ0FBQzZCLGtCQUFrQkMsb0JBQW9CLEdBQUc5QiwrQ0FBUUEsQ0FBQztJQUV6RCxvREFBb0Q7SUFDcERDLGdEQUFTQSxDQUFDO1FBQ1IsSUFBSVMsV0FBV1ksVUFBVSxFQUFFO1lBQ3pCTCxVQUFVO2dCQUFFLEdBQUdQLFdBQVdZLFVBQVU7WUFBQztRQUN2QztJQUNGLEdBQUc7UUFBQ1o7S0FBVztJQUVmLDJCQUEyQjtJQUMzQlQsZ0RBQVNBLENBQUM7UUFDUjhCO0lBQ0YsR0FBRyxFQUFFO0lBRUwsTUFBTUEsZ0JBQWdCO1FBQ3BCLElBQUk7WUFDRixNQUFNQyxXQUFXLE1BQU1DLE1BQU07WUFDN0IsSUFBSUQsU0FBU0UsRUFBRSxFQUFFO2dCQUNmLE1BQU1DLFNBQVMsTUFBTUgsU0FBU0ksSUFBSTtnQkFDbEMsTUFBTUMs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QUFXLHlDQUlmLE9BSENqRCxXQUFXb0MsS0FBSyxHQUNaLHdDQUNBOztvQ0FFSHBDLFdBQVdvQyxLQUFLLGlCQUNmLDhEQUFDeEQsd0tBQWVBO3dDQUFDcUUsV0FBVTs7Ozs7NkRBRTNCLDhEQUFDcEUsd0tBQVdBO3dDQUFDb0UsV0FBVTs7Ozs7O2tEQUV6Qiw4REFBQ2U7d0NBQUtmLFdBQVcsV0FFaEIsT0FEQ2pELFdBQVdvQyxLQUFLLEdBQUcsbUJBQW1CO2tEQUVyQ3BDLFdBQVdvQyxLQUFLLEdBQUdwQyxXQUFXMEMsT0FBTyxHQUFHMUMsV0FBVzRCLEtBQUs7Ozs7Ozs7Ozs7OzswQ0FLL0QsOERBQUNrQztnQ0FDQ1AsTUFBSztnQ0FDTEYsU0FBU2xCO2dDQUNUOEIsVUFBVSxDQUFDbEIsZUFBZTdDO2dDQUMxQitDLFdBQVU7MENBRVQvQywyQkFDQzs7c0RBQ0UsOERBQUNwQix3S0FBYUE7NENBQUNtRSxXQUFVOzs7Ozs7d0NBQThCOzttREFJekQ7Ozs7Ozs0QkFJSCxDQUFDRiw2QkFDQSw4REFBQ3JCO2dDQUFFdUIsV0FBVTswQ0FBNkI7Ozs7Ozs7Ozs7Ozs7Ozs7OzswQkFTbEQsOERBQUNEO2dCQUFJQyxXQUFVOztrQ0FDYiw4REFBQ0Q7a0NBQ0UzRCx3QkFDQyw4REFBQ3lFOzRCQUFPUCxNQUFLOzRCQUFTRixTQUFTaEU7NEJBQVE0RCxXQUFVO3NDQUFjOzs7Ozs7Ozs7OztrQ0FNbkUsOERBQUNhO3dCQUNDUCxNQUFLO3dCQUNMVSxVQUFVLEVBQUNqRSx1QkFBQUEsaUNBQUFBLFdBQVlvQyxLQUFLO3dCQUM1QmEsV0FBVTtrQ0FFVGpELENBQUFBLHVCQUFBQSxpQ0FBQUEsV0FBWW9DLEtBQUssSUFDYjlDLGNBQWMsYUFBYSxnQ0FDNUI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1kO0dBbFh3Qkw7S0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL3NldHVwL2NvbXBvbmVudHMvUmVwb3NpdG9yeUNvbmZpZ3VyYXRpb24udHN4PzhmYjgiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFxuICBDb2RlQnJhY2tldEljb24sXG4gIENoZWNrQ2lyY2xlSWNvbixcbiAgWENpcmNsZUljb24sXG4gIEFycm93UGF0aEljb24sXG4gIEV4Y2xhbWF0aW9uVHJpYW5nbGVJY29uLFxuICBFeWVJY29uLFxuICBFeWVTbGFzaEljb25cbn0gZnJvbSAnQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lJ1xuXG5pbnRlcmZhY2UgUmVwb3NpdG9yeVByb3ZpZGVyIHtcbiAgbmFtZTogc3RyaW5nXG4gIGRpc3BsYXlOYW1lOiBzdHJpbmdcbiAgZGVzY3JpcHRpb246IHN0cmluZ1xuICByZXF1aXJlc0Jhc2VVUkw6IGJvb2xlYW5cbiAgZGVmYXVsdEJhc2VVUkw/OiBzdHJpbmdcbn1cblxuaW50ZXJmYWNlIFJlcG9zaXRvcnlDb25maWcge1xuICBwcm92aWRlcjogc3RyaW5nXG4gIGJhc2VVUkw6IHN0cmluZ1xuICBhY2Nlc3NUb2tlbjogc3RyaW5nXG4gIG93bmVyOiBzdHJpbmdcbiAgcmVwb3NpdG9yeTogc3RyaW5nXG59XG5cbmludGVyZmFjZSBWYWxpZGF0aW9uUmVzdWx0IHtcbiAgdmFsaWQ6IGJvb2xlYW5cbiAgbWVzc2FnZT86IHN0cmluZ1xuICBlcnJvcj86IHN0cmluZ1xufVxuXG5pbnRlcmZhY2UgUmVwb3NpdG9yeUNvbmZpZ3VyYXRpb25Qcm9wcyB7XG4gIHN5c3RlbUluZm86IGFueVxuICBjb25maWdEYXRhOiBhbnlcbiAgb25Db21wbGV0ZTogKGRhdGE6IGFueSkgPT4gdm9pZFxuICBvbkJhY2s/OiAoKSA9PiB2b2lkXG4gIGlzQ29tcGxldGVkOiBib29sZWFuXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFJlcG9zaXRvcnlDb25maWd1cmF0aW9uKHsgXG4gIHN5c3RlbUluZm8sIFxuICBjb25maWdEYXRhLCBcbiAgb25Db21wbGV0ZSwgXG4gIG9uQmFjaywgXG4gIGlzQ29tcGxldGVkIFxufTogUmVwb3NpdG9yeUNvbmZpZ3VyYXRpb25Qcm9wcykge1xuICBjb25zdCBbcHJvdmlkZXJzLCBzZXRQcm92aWRlcnNdID0gdXNlU3RhdGU8UmVwb3NpdG9yeVByb3ZpZGVyW10+KFtdKVxuICBjb25zdCBbY29uZmlnLCBzZXRDb25maWddID0gdXNlU3RhdGU8UmVwb3NpdG9yeUNvbmZpZz4oe1xuICAgIHByb3ZpZGVyOiAnJyxcbiAgICBiYXNlVVJMOiAnJyxcbiAgICBhY2Nlc3NUb2tlbjogJycsXG4gICAgb3duZXI6ICcnLFxuICAgIHJlcG9zaXRvcnk6ICcnXG4gIH0pXG4gIGNvbnN0IFt2YWxpZGF0aW9uLCBzZXRWYWxpZGF0aW9uXSA9IHVzZVN0YXRlPFZhbGlkYXRpb25SZXN1bHQgfCBudWxsPihudWxsKVxuICBjb25zdCBbdmFsaWRhdGluZywgc2V0VmFsaWRhdGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3Nob3dUb2tlbiwgc2V0U2hvd1Rva2VuXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbG9hZGluZ1Byb3ZpZGVycywgc2V0TG9hZGluZ1Byb3ZpZGVyc10gPSB1c2VTdGF0ZSh0cnVlKVxuXG4gIC8vIExvYWQgZXhpc3RpbmcgY29uZmlnIGZyb20gY29uZmlnRGF0YSBpZiBhdmFpbGFibGVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY29uZmlnRGF0YS5yZXBvc2l0b3J5KSB7XG4gICAgICBzZXRDb25maWcoeyAuLi5jb25maWdEYXRhLnJlcG9zaXRvcnkgfSlcbiAgICB9XG4gIH0sIFtjb25maWdEYXRhXSlcblxuICAvLyBMb2FkIHN1cHBvcnRlZCBwcm92aWRlcnNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsb2FkUHJvdmlkZXJzKClcbiAgfSwgW10pXG5cbiAgY29uc3QgbG9hZFByb3ZpZGVycyA9IGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL2FwaS9zZXR1cC9yZXBvc2l0b3J5L3Byb3ZpZGVycycpXG4gICAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgICAgIGNvbnN0IHByb3ZpZGVyTGlzdCA9IHJlc3VsdC5wcm92aWRlcnMgfHwgW11cbiAgICAgICAgXG4gICAgICAgIC8vIE1hcCBwcm92aWRlciBuYW1lcyB0byBmdWxsIHByb3ZpZGVyIG9iamVjdHNcbiAgICAgICAgY29uc3QgcHJvdmlkZXJzRGF0YTogUmVwb3NpdG9yeVByb3ZpZGVyW10gPSBwcm92aWRlckxpc3QubWFwKChuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKG5hbWUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgICAgY2FzZSAnZ2l0ZWEnOlxuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdnaXRlYScsXG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdHaXRlYScsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdTZWxmLWhvc3RlZCBHaXQgc2VydmljZSB3aXRoIGlzc3VlIHRyYWNraW5nJyxcbiAgICAgICAgICAgICAgICByZXF1aXJlc0Jhc2VVUkw6IHRydWUsXG4gICAgICAgICAgICAgICAgZGVmYXVsdEJhc2VVUkw6ICdodHRwOi8vZ2l0ZWEubG9jYWwnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2dpdGh1Yic6XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2dpdGh1YicsXG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdHaXRIdWInLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQ2xvdWQtYmFzZWQgR2l0IHJlcG9zaXRvcnkgaG9zdGluZyBzZXJ2aWNlJyxcbiAgICAgICAgICAgICAgICByZXF1aXJlc0Jhc2VVUkw6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRlZmF1bHRCYXNlVVJMOiAnaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbSdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBuYW1lLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IG5hbWUsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdHaXQgcmVwb3NpdG9yeSBzZXJ2aWNlJyxcbiAgICAgICAgICAgICAgICByZXF1aXJlc0Jhc2VVUkw6IHRydWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgXG4gICAgICAgIHNldFByb3ZpZGVycyhwcm92aWRlcnNEYXRhKVxuICAgICAgICBcbiAgICAgICAgLy8gU2V0IGRlZmF1bHQgcHJvdmlkZXIgaWYgbm9uZSBzZWxlY3RlZFxuICAgICAgICBpZiAoIWNvbmZpZy5wcm92aWRlciAmJiBwcm92aWRlcnNEYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCBkZWZhdWx0UHJvdmlkZXIgPSBwcm92aWRlcnNEYXRhLmZpbmQocCA9PiBwLm5hbWUgPT09ICdnaXRlYScpIHx8IHByb3ZpZGVyc0RhdGFbMF1cbiAgICAgICAgICBoYW5kbGVQcm92aWRlckNoYW5nZShkZWZhdWx0UHJvdmlkZXIubmFtZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBwcm92aWRlcnM6JywgZXJyb3IpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldExvYWRpbmdQcm92aWRlcnMoZmFsc2UpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUHJvdmlkZXJDaGFuZ2UgPSAocHJvdmlkZXI6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHByb3ZpZGVyRGF0YSA9IHByb3ZpZGVycy5maW5kKHAgPT4gcC5uYW1lID09PSBwcm92aWRlcilcbiAgICBzZXRDb25maWcocHJldiA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIHByb3ZpZGVyLFxuICAgICAgYmFzZVVSTDogcHJvdmlkZXJEYXRhPy5kZWZhdWx0QmFzZVVSTCB8fCBwcmV2LmJhc2VVUkxcbiAgICB9KSlcbiAgICBzZXRWYWxpZGF0aW9uKG51bGwpXG4gIH1cblxuICBjb25zdCBoYW5kbGVJbnB1dENoYW5nZSA9IChmaWVsZDoga2V5b2YgUmVwb3NpdG9yeUNvbmZpZywgdmFsdWU6IHN0cmluZykgPT4ge1xuICAgIHNldENvbmZpZyhwcmV2ID0+ICh7IC4uLnByZXYsIFtmaWVsZF06IHZhbHVlIH0pKVxuICAgIHNldFZhbGlkYXRpb24obnVsbClcbiAgfVxuXG4gIGNvbnN0IHZhbGlkYXRlUmVwb3NpdG9yeSA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoIWNvbmZpZy5wcm92aWRlciB8fCAhY29uZmlnLmFjY2Vzc1Rva2VuIHx8ICFjb25maWcub3duZXIgfHwgIWNvbmZpZy5yZXBvc2l0b3J5KSB7XG4gICAgICBzZXRWYWxpZGF0aW9uKHtcbiAgICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgICBlcnJvcjogJ1BsZWFzZSBmaWxsIGluIGFsbCByZXF1aXJlZCBmaWVsZHMnXG4gICAgICB9KVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgc2V0VmFsaWRhdGluZyh0cnVlKVxuICAgIHNldFZhbGlkYXRpb24obnVsbClcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCcvYXBpL3NldHVwL3JlcG9zaXRvcnkvdmFsaWRhdGUnLCB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICB9LFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShjb25maWcpXG4gICAgICB9KVxuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICAgIFxuICAgICAgaWYgKHJlc3BvbnNlLm9rICYmIHJlc3VsdC52YWxpZCkge1xuICAgICAgICBzZXRWYWxpZGF0aW9uKHtcbiAgICAgICAgICB2YWxpZDogdHJ1ZSxcbiAgICAgICAgICBtZXNzYWdlOiByZXN1bHQubWVzc2FnZSB8fCAnUmVwb3NpdG9yeSBjb25uZWN0aW9uIHN1Y2Nlc3NmdWwnXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRWYWxpZGF0aW9uKHtcbiAgICAgICAgICB2YWxpZDogZmFsc2UsXG4gICAgICAgICAgZXJyb3I6IHJlc3VsdC5lcnJvciB8fCAnVmFsaWRhdGlvbiBmYWlsZWQnXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHNldFZhbGlkYXRpb24oe1xuICAgICAgICB2YWxpZDogZmFsc2UsXG4gICAgICAgIGVycm9yOiAnTmV0d29yayBlcnJvcjogVW5hYmxlIHRvIHZhbGlkYXRlIHJlcG9zaXRvcnknXG4gICAgICB9KVxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRWYWxpZGF0aW5nKGZhbHNlKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdCA9IChlOiBSZWFjdC5Gb3JtRXZlbnQpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBcbiAgICBpZiAodmFsaWRhdGlvbj8udmFsaWQpIHtcbiAgICAgIG9uQ29tcGxldGUoeyByZXBvc2l0b3J5OiBjb25maWcgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsaWRhdGVSZXBvc2l0b3J5KClcbiAgICB9XG4gIH1cblxuICBjb25zdCBzZWxlY3RlZFByb3ZpZGVyID0gcHJvdmlkZXJzLmZpbmQocCA9PiBwLm5hbWUgPT09IGNvbmZpZy5wcm92aWRlcilcbiAgY29uc3QgaXNGb3JtVmFsaWQgPSBjb25maWcucHJvdmlkZXIgJiYgY29uZmlnLmFjY2Vzc1Rva2VuICYmIGNvbmZpZy5vd25lciAmJiBjb25maWcucmVwb3NpdG9yeSAmJlxuICAgICghc2VsZWN0ZWRQcm92aWRlcj8ucmVxdWlyZXNCYXNlVVJMIHx8IGNvbmZpZy5iYXNlVVJMKVxuXG4gIGlmIChsb2FkaW5nUHJvdmlkZXJzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHktMTJcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgIDxBcnJvd1BhdGhJY29uIGNsYXNzTmFtZT1cImgtOCB3LTggdGV4dC1ienp6LXByaW1hcnkgYW5pbWF0ZS1zcGluIG14LWF1dG8gbWItNFwiIC8+XG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMFwiPkxvYWRpbmcgcmVwb3NpdG9yeSBwcm92aWRlcnMuLi48L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Zm9ybSBvblN1Ym1pdD17aGFuZGxlU3VibWl0fSBjbGFzc05hbWU9XCJzcGFjZS15LTZcIj5cbiAgICAgIHsvKiBSZXBvc2l0b3J5IFByb3ZpZGVyIFNlbGVjdGlvbiAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctZ3JheS01MCByb3VuZGVkLWxnIHAtNlwiPlxuICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwIG1iLTQgZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8Q29kZUJyYWNrZXRJY29uIGNsYXNzTmFtZT1cImgtNiB3LTYgdGV4dC1ienp6LXByaW1hcnkgbXItMlwiIC8+XG4gICAgICAgICAgUmVwb3NpdG9yeSBQcm92aWRlclxuICAgICAgICA8L2gzPlxuICAgICAgICBcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIGdhcC00XCI+XG4gICAgICAgICAge3Byb3ZpZGVycy5tYXAoKHByb3ZpZGVyKSA9PiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGtleT17cHJvdmlkZXIubmFtZX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgYm9yZGVyLTIgcm91bmRlZC1sZyBwLTQgY3Vyc29yLXBvaW50ZXIgdHJhbnNpdGlvbi1hbGwgJHtcbiAgICAgICAgICAgICAgICBjb25maWcucHJvdmlkZXIgPT09IHByb3ZpZGVyLm5hbWVcbiAgICAgICAgICAgICAgICAgID8gJ2JvcmRlci1ienp6LXByaW1hcnkgYmctYnp6ei1wcmltYXJ5IGJnLW9wYWNpdHktMTAnXG4gICAgICAgICAgICAgICAgICA6ICdib3JkZXItZ3JheS0yMDAgaG92ZXI6Ym9yZGVyLWdyYXktMzAwJ1xuICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlUHJvdmlkZXJDaGFuZ2UocHJvdmlkZXIubmFtZSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwicHJvdmlkZXJcIlxuICAgICAgICAgICAgICAgICAgdmFsdWU9e3Byb3ZpZGVyLm5hbWV9XG4gICAgICAgICAgICAgICAgICBjaGVja2VkPXtjb25maWcucHJvdmlkZXIgPT09IHByb3ZpZGVyLm5hbWV9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4gaGFuZGxlUHJvdmlkZXJDaGFuZ2UocHJvdmlkZXIubmFtZSl9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtYnp6ei1wcmltYXJ5IGZvY3VzOnJpbmctYnp6ei1wcmltYXJ5IGJvcmRlci1ncmF5LTMwMFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1sLTNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMFwiPntwcm92aWRlci5kaXNwbGF5TmFtZX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwXCI+e3Byb3ZpZGVyLmRlc2NyaXB0aW9ufTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogQ29uZmlndXJhdGlvbiBGb3JtICovfVxuICAgICAge2NvbmZpZy5wcm92aWRlciAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS02XCI+XG4gICAgICAgICAgey8qIEJhc2UgVVJMIChmb3IgcHJvdmlkZXJzIHRoYXQgcmVxdWlyZSBpdCkgKi99XG4gICAgICAgICAge3NlbGVjdGVkUHJvdmlkZXI/LnJlcXVpcmVzQmFzZVVSTCAmJiAoXG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICBCYXNlIFVSTCAqXG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ1cmxcIlxuICAgICAgICAgICAgICAgIHZhbHVlPXtjb25maWcuYmFzZVVSTH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZUlucHV0Q2hhbmdlKCdiYXNlVVJMJywgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtgZS5nLiwgJHtzZWxlY3RlZFByb3ZpZGVyLmRlZmF1bHRCYXNlVVJMIHx8ICdodHRwczovL2dpdC5leGFtcGxlLmNvbSd9YH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbnB1dC1maWVsZFwiXG4gICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIG10LTFcIj5cbiAgICAgICAgICAgICAgICBUaGUgYmFzZSBVUkwgZm9yIHlvdXIge3NlbGVjdGVkUHJvdmlkZXIuZGlzcGxheU5hbWV9IGluc3RhbmNlXG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7LyogQWNjZXNzIFRva2VuICovfVxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgQWNjZXNzIFRva2VuICpcbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9e3Nob3dUb2tlbiA/ICd0ZXh0JyA6ICdwYXNzd29yZCd9XG4gICAgICAgICAgICAgICAgdmFsdWU9e2NvbmZpZy5hY2Nlc3NUb2tlbn1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZUlucHV0Q2hhbmdlKCdhY2Nlc3NUb2tlbicsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17YFlvdXIgJHtzZWxlY3RlZFByb3ZpZGVyPy5kaXNwbGF5TmFtZX0gYWNjZXNzIHRva2VuYH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbnB1dC1maWVsZCBwci0xMFwiXG4gICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNob3dUb2tlbighc2hvd1Rva2VuKX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC15LTAgcmlnaHQtMCBwci0zIGZsZXggaXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtzaG93VG9rZW4gPyAoXG4gICAgICAgICAgICAgICAgICA8RXllU2xhc2hJY29uIGNsYXNzTmFtZT1cImgtNSB3LTUgdGV4dC1ncmF5LTQwMFwiIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxFeWVJY29uIGNsYXNzTmFtZT1cImgtNSB3LTUgdGV4dC1ncmF5LTQwMFwiIC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTYwMCBtdC0xXCI+XG4gICAgICAgICAgICAgIHtzZWxlY3RlZFByb3ZpZGVyPy5uYW1lID09PSAnZ2l0aHViJyBcbiAgICAgICAgICAgICAgICA/ICdHZW5lcmF0ZSBhIHBlcnNvbmFsIGFjY2VzcyB0b2tlbiB3aXRoIHJlcG8gYW5kIGFkbWluOnJlcG9faG9vayBwZXJtaXNzaW9ucydcbiAgICAgICAgICAgICAgICA6ICdHZW5lcmF0ZSBhbiBhY2Nlc3MgdG9rZW4gd2l0aCByZXBvc2l0b3J5IHJlYWQvd3JpdGUgcGVybWlzc2lvbnMnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIHsvKiBPd25lci9Pcmdhbml6YXRpb24gKi99XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICBPd25lci9Pcmdhbml6YXRpb24gKlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIHZhbHVlPXtjb25maWcub3duZXJ9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlSW5wdXRDaGFuZ2UoJ293bmVyJywgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInVzZXJuYW1lIG9yIG9yZ2FuaXphdGlvblwiXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImlucHV0LWZpZWxkXCJcbiAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDAgbXQtMVwiPlxuICAgICAgICAgICAgICBUaGUgdXNlcm5hbWUgb3Igb3JnYW5pemF0aW9uIHRoYXQgb3ducyB0aGUgcmVwb3NpdG9yeVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgey8qIFJlcG9zaXRvcnkgTmFtZSAqL31cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgIFJlcG9zaXRvcnkgTmFtZSAqXG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgdmFsdWU9e2NvbmZpZy5yZXBvc2l0b3J5fVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZUlucHV0Q2hhbmdlKCdyZXBvc2l0b3J5JywgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInJlcG9zaXRvcnktbmFtZVwiXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImlucHV0LWZpZWxkXCJcbiAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDAgbXQtMVwiPlxuICAgICAgICAgICAgICBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeSBmb3IgdGFzayBtYW5hZ2VtZW50XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICB7LyogVmFsaWRhdGlvbiBTZWN0aW9uICovfVxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHAtNlwiPlxuICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cInRleHQtbWQgZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBtYi0zXCI+Q29ubmVjdGlvbiBUZXN0PC9oND5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAge3ZhbGlkYXRpb24gJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YGZsZXggaXRlbXMtY2VudGVyIHAtMyByb3VuZGVkLWxnIG1iLTQgJHtcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uLnZhbGlkIFxuICAgICAgICAgICAgICAgICAgPyAnYmctZ3JlZW4tNTAgYm9yZGVyIGJvcmRlci1ncmVlbi0yMDAnIFxuICAgICAgICAgICAgICAgICAgOiAnYmctcmVkLTUwIGJvcmRlciBib3JkZXItcmVkLTIwMCdcbiAgICAgICAgICAgICAgfWB9PlxuICAgICAgICAgICAgICAgIHt2YWxpZGF0aW9uLnZhbGlkID8gKFxuICAgICAgICAgICAgICAgICAgPENoZWNrQ2lyY2xlSWNvbiBjbGFzc05hbWU9XCJoLTUgdy01IHRleHQtZ3JlZW4tNjAwIG1yLTJcIiAvPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICA8WENpcmNsZUljb24gY2xhc3NOYW1lPVwiaC01IHctNSB0ZXh0LXJlZC02MDAgbXItMlwiIC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2B0ZXh0LXNtICR7XG4gICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uLnZhbGlkID8gJ3RleHQtZ3JlZW4tODAwJyA6ICd0ZXh0LXJlZC04MDAnXG4gICAgICAgICAgICAgICAgfWB9PlxuICAgICAgICAgICAgICAgICAge3ZhbGlkYXRpb24udmFsaWQgPyB2YWxpZGF0aW9uLm1lc3NhZ2UgOiB2YWxpZGF0aW9uLmVycm9yfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBvbkNsaWNrPXt2YWxpZGF0ZVJlcG9zaXRvcnl9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXshaXNGb3JtVmFsaWQgfHwgdmFsaWRhdGluZ31cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnRuLW91dGxpbmUgdy1mdWxsIHNtOnctYXV0b1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt2YWxpZGF0aW5nID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICA8QXJyb3dQYXRoSWNvbiBjbGFzc05hbWU9XCJoLTQgdy00IGFuaW1hdGUtc3BpbiBtci0yXCIgLz5cbiAgICAgICAgICAgICAgICAgIFRlc3RpbmcgQ29ubmVjdGlvbi4uLlxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICdUZXN0IFJlcG9zaXRvcnkgQ29ubmVjdGlvbidcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICB7IWlzRm9ybVZhbGlkICYmIChcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIG10LTJcIj5cbiAgICAgICAgICAgICAgICBQbGVhc2UgZmlsbCBpbiBhbGwgcmVxdWlyZWQgZmllbGRzIHRvIHRlc3QgdGhlIGNvbm5lY3Rpb25cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuXG4gICAgICB7LyogQWN0aW9uIEJ1dHRvbnMgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1iZXR3ZWVuIHB0LTYgYm9yZGVyLXQgYm9yZGVyLWdyYXktMjAwXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge29uQmFjayAmJiAoXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtvbkJhY2t9IGNsYXNzTmFtZT1cImJ0bi1vdXRsaW5lXCI+XG4gICAgICAgICAgICAgIEJhY2tcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgIGRpc2FibGVkPXshdmFsaWRhdGlvbj8udmFsaWR9XG4gICAgICAgICAgY2xhc3NOYW1lPVwiYnRuLXByaW1hcnlcIlxuICAgICAgICA+XG4gICAgICAgICAge3ZhbGlkYXRpb24/LnZhbGlkIFxuICAgICAgICAgICAgPyAoaXNDb21wbGV0ZWQgPyAnQ29udGludWUnIDogJ05leHQ6IE5ldHdvcmsgQ29uZmlndXJhdGlvbicpXG4gICAgICAgICAgICA6ICdWYWxpZGF0ZSAmIENvbnRpbnVlJ1xuICAgICAgICAgIH1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gIClcbn0iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJDb2RlQnJhY2tldEljb24iLCJDaGVja0NpcmNsZUljb24iLCJYQ2lyY2xlSWNvbiIsIkFycm93UGF0aEljb24iLCJFeWVJY29uIiwiRXllU2xhc2hJY29uIiwiUmVwb3NpdG9yeUNvbmZpZ3VyYXRpb24iLCJzeXN0ZW1JbmZvIiwiY29uZmlnRGF0YSIsIm9uQ29tcGxldGUiLCJvbkJhY2siLCJpc0NvbXBsZXRlZCIsInByb3ZpZGVycyIsInNldFByb3ZpZGVycyIsImNvbmZpZyIsInNldENvbmZpZyIsInByb3ZpZGVyIiwiYmFzZVVSTCIsImFjY2Vzc1Rva2VuIiwib3duZXIiLCJyZXBvc2l0b3J5IiwidmFsaWRhdGlvbiIsInNldFZhbGlkYXRpb24iLCJ2YWxpZGF0aW5nIiwic2V0VmFsaWRhdGluZyIsInNob3dUb2tlbiIsInNldFNob3dUb2tlbiIsImxvYWRpbmdQcm92aWRlcnMiLCJzZXRMb2FkaW5nUHJvdmlkZXJzIiwibG9hZFByb3ZpZGVycyIsInJlc3BvbnNlIiwiZmV0Y2giLCJvayIsInJlc3VsdCIsImpzb24iLCJwcm92aWRlckxpc3QiLCJwcm92aWRlcnNEYXRhIiwibWFwIiwibmFtZSIsInRvTG93ZXJDYXNlIiwiZGlzcGxheU5hbWUiLCJkZXNjcmlwdGlvbiIsInJlcXVpcmVzQmFzZVVSTCIsImRlZmF1bHRCYXNlVVJMIiwibGVuZ3RoIiwiZGVmYXVsdFByb3ZpZGVyIiwiZmluZCIsInAiLCJoYW5kbGVQcm92aWRlckNoYW5nZSIsImVycm9yIiwiY29uc29sZSIsInByb3ZpZGVyRGF0YSIsInByZXYiLCJoYW5kbGVJbnB1dENoYW5nZSIsImZpZWxkIiwidmFsdWUiLCJ2YWxpZGF0ZVJlcG9zaXRvcnkiLCJ2YWxpZCIsIm1ldGhvZCIsImhlYWRlcnMiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsIm1lc3NhZ2UiLCJoYW5kbGVTdWJtaXQiLCJlIiwicHJldmVudERlZmF1bHQiLCJzZWxlY3RlZFByb3ZpZGVyIiwiaXNGb3JtVmFsaWQiLCJkaXYiLCJjbGFzc05hbWUiLCJmb3JtIiwib25TdWJtaXQiLCJoMyIsIm9uQ2xpY2siLCJpbnB1dCIsInR5cGUiLCJjaGVja2VkIiwib25DaGFuZ2UiLCJsYWJlbCIsInRhcmdldCIsInBsYWNlaG9sZGVyIiwicmVxdWlyZWQiLCJidXR0b24iLCJoNCIsInNwYW4iLCJkaXNhYmxlZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/setup/components/RepositoryConfiguration.tsx\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./app/setup/components/SecuritySetup.tsx":
|
|
/*!************************************************!*\
|
|
!*** ./app/setup/components/SecuritySetup.tsx ***!
|
|
\************************************************/
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ SecuritySetup; }\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 _barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircleIcon,DocumentDuplicateIcon,ExclamationTriangleIcon,EyeIcon,EyeSlashIcon,KeyIcon,LockClosedIcon,ServerIcon,ShieldCheckIcon,XCircleIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/KeyIcon.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircleIcon,DocumentDuplicateIcon,ExclamationTriangleIcon,EyeIcon,EyeSlashIcon,KeyIcon,LockClosedIcon,ServerIcon,ShieldCheckIcon,XCircleIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CheckCircleIcon.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircleIcon,DocumentDuplicateIcon,ExclamationTriangleIcon,EyeIcon,EyeSlashIcon,KeyIcon,LockClosedIcon,ServerIcon,ShieldCheckIcon,XCircleIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/XCircleIcon.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircleIcon,DocumentDuplicateIcon,ExclamationTriangleIcon,EyeIcon,EyeSlashIcon,KeyIcon,LockClosedIcon,ServerIcon,ShieldCheckIcon,XCircleIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/DocumentDuplicateIcon.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircleIcon,DocumentDuplicateIcon,ExclamationTriangleIcon,EyeIcon,EyeSlashIcon,KeyIcon,LockClosedIcon,ServerIcon,ShieldCheckIcon,XCircleIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/EyeSlashIcon.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircleIcon,DocumentDuplicateIcon,ExclamationTriangleIcon,EyeIcon,EyeSlashIcon,KeyIcon,LockClosedIcon,ServerIcon,ShieldCheckIcon,XCircleIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/EyeIcon.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircleIcon,DocumentDuplicateIcon,ExclamationTriangleIcon,EyeIcon,EyeSlashIcon,KeyIcon,LockClosedIcon,ServerIcon,ShieldCheckIcon,XCircleIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ExclamationTriangleIcon.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircleIcon,DocumentDuplicateIcon,ExclamationTriangleIcon,EyeIcon,EyeSlashIcon,KeyIcon,LockClosedIcon,ServerIcon,ShieldCheckIcon,XCircleIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/LockClosedIcon.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircleIcon,DocumentDuplicateIcon,ExclamationTriangleIcon,EyeIcon,EyeSlashIcon,KeyIcon,LockClosedIcon,ServerIcon,ShieldCheckIcon,XCircleIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ShieldCheckIcon.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircleIcon,DocumentDuplicateIcon,ExclamationTriangleIcon,EyeIcon,EyeSlashIcon,KeyIcon,LockClosedIcon,ServerIcon,ShieldCheckIcon,XCircleIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ServerIcon.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\nfunction SecuritySetup(param) {\n let { systemInfo, configData, onComplete, onBack, isCompleted } = param;\n _s();\n console.log(\"SecuritySetup: Component rendered with configData:\", configData);\n const [config, setConfig] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n sshKeyType: \"generate\",\n sshPublicKey: \"\",\n sshPrivateKey: \"\",\n sshUsername: \"ubuntu\",\n sshPassword: \"\",\n sshPort: 22,\n enableTLS: true,\n tlsCertType: \"self-signed\",\n tlsCertPath: \"\",\n tlsKeyPath: \"\",\n authMethod: \"token\",\n clusterSecret: \"\",\n accessPolicy: \"restricted\",\n enableFirewall: true,\n allowedPorts: [\n \"22\",\n \"8080\",\n \"8090\",\n \"9100\",\n \"3000\"\n ],\n trustedIPs: [],\n ...configData === null || configData === void 0 ? void 0 : configData.security // Load saved security config if exists\n });\n const [showPrivateKey, setShowPrivateKey] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [showClusterSecret, setShowClusterSecret] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [showSSHPassword, setShowSSHPassword] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [generating, setGenerating] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [validation, setValidation] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({});\n const [portsInitialized, setPortsInitialized] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n // Generate cluster secret on mount if not exists\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (!config.clusterSecret) {\n generateClusterSecret();\n }\n }, []);\n // Update firewall ports based on network configuration from previous step\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n var _configData_security, _configData_security1;\n console.log(\"SecuritySetup: configData changed\", {\n hasNetwork: !!(configData === null || configData === void 0 ? void 0 : configData.network),\n portsInitialized,\n hasSavedSecurity: !!(configData === null || configData === void 0 ? void 0 : (_configData_security = configData.security) === null || _configData_security === void 0 ? void 0 : _configData_security.allowedPorts),\n networkConfig: configData === null || configData === void 0 ? void 0 : configData.network\n });\n // If we have network config and haven't initialized ports yet, AND we don't have saved security config\n if ((configData === null || configData === void 0 ? void 0 : configData.network) && !portsInitialized && !(configData === null || configData === void 0 ? void 0 : (_configData_security1 = configData.security) === null || _configData_security1 === void 0 ? void 0 : _configData_security1.allowedPorts)) {\n var _networkConfig_bzzzPort, _networkConfig_mcpPort, _networkConfig_webUIPort, _networkConfig_p2pPort;\n const networkConfig = configData.network;\n const networkPorts = [\n (_networkConfig_bzzzPort = networkConfig.bzzzPort) === null || _networkConfig_bzzzPort === void 0 ? void 0 : _networkConfig_bzzzPort.toString(),\n (_networkConfig_mcpPort = networkConfig.mcpPort) === null || _networkConfig_mcpPort === void 0 ? void 0 : _networkConfig_mcpPort.toString(),\n (_networkConfig_webUIPort = networkConfig.webUIPort) === null || _networkConfig_webUIPort === void 0 ? void 0 : _networkConfig_webUIPort.toString(),\n (_networkConfig_p2pPort = networkConfig.p2pPort) === null || _networkConfig_p2pPort === void 0 ? void 0 : _networkConfig_p2pPort.toString()\n ].filter((port)=>port && port !== \"undefined\");\n console.log(\"SecuritySetup: Auto-populating ports\", {\n networkPorts,\n networkConfig\n });\n // Include standard ports plus network configuration ports\n const standardPorts = [\n \"22\",\n \"8090\"\n ] // SSH and setup interface\n ;\n const allPorts = [\n ...new Set([\n ...standardPorts,\n ...networkPorts\n ])\n ];\n console.log(\"SecuritySetup: Setting allowed ports to\", allPorts);\n setConfig((prev)=>({\n ...prev,\n allowedPorts: allPorts\n }));\n setPortsInitialized(true);\n }\n }, [\n configData,\n portsInitialized\n ]);\n const generateClusterSecret = ()=>{\n const secret = Array.from(crypto.getRandomValues(new Uint8Array(32))).map((b)=>b.toString(16).padStart(2, \"0\")).join(\"\");\n setConfig((prev)=>({\n ...prev,\n clusterSecret: secret\n }));\n };\n const generateSSHKeys = async ()=>{\n setGenerating(true);\n try {\n var _systemInfo_network;\n // In a real implementation, this would call the backend to generate SSH keys\n // For now, simulate the process\n await new Promise((resolve)=>setTimeout(resolve, 2000));\n // Mock generated keys (in real implementation, these would come from backend)\n const mockPublicKey = \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC... chorus@\".concat((systemInfo === null || systemInfo === void 0 ? void 0 : (_systemInfo_network = systemInfo.network) === null || _systemInfo_network === void 0 ? void 0 : _systemInfo_network.hostname) || \"localhost\");\n const mockPrivateKey = \"-----BEGIN OPENSSH PRIVATE KEY-----\\nb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAFwwAAAAd...\\n-----END OPENSSH PRIVATE KEY-----\";\n setConfig((prev)=>({\n ...prev,\n sshPublicKey: mockPublicKey,\n sshPrivateKey: mockPrivateKey\n }));\n setValidation((prev)=>({\n ...prev,\n sshKeys: true\n }));\n } catch (error) {\n console.error(\"Failed to generate SSH keys:\", error);\n setValidation((prev)=>({\n ...prev,\n sshKeys: false\n }));\n } finally{\n setGenerating(false);\n }\n };\n const copyToClipboard = async (text)=>{\n try {\n await navigator.clipboard.writeText(text);\n } catch (error) {\n console.error(\"Failed to copy to clipboard:\", error);\n }\n };\n const handleSubmit = (e)=>{\n e.preventDefault();\n // Validate required fields\n const newValidation = {};\n if (config.sshKeyType === \"generate\" && !config.sshPublicKey) {\n newValidation.sshKeys = false;\n } else if (config.sshKeyType === \"existing\" && !config.sshPublicKey) {\n newValidation.sshKeys = false;\n } else {\n newValidation.sshKeys = true;\n }\n if (config.enableTLS && config.tlsCertType === \"existing\" && (!config.tlsCertPath || !config.tlsKeyPath)) {\n newValidation.tlsCert = false;\n } else {\n newValidation.tlsCert = true;\n }\n if (!config.clusterSecret) {\n newValidation.clusterSecret = false;\n } else {\n newValidation.clusterSecret = true;\n }\n if (config.sshKeyType === \"manual\" && (!config.sshUsername || !config.sshPassword)) {\n newValidation.sshCredentials = false;\n } else {\n newValidation.sshCredentials = true;\n }\n setValidation(newValidation);\n // Check if all validations pass\n const isValid = Object.values(newValidation).every((v)=>v);\n if (isValid) {\n onComplete({\n security: config\n });\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: handleSubmit,\n className: \"space-y-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 209,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900\",\n children: \"SSH Key Management\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 210,\n columnNumber: 11\n }, this),\n validation.sshKeys === true && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"h-5 w-5 text-green-500 ml-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 211,\n columnNumber: 43\n }, this),\n validation.sshKeys === false && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-5 w-5 text-red-500 ml-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 212,\n columnNumber: 44\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 208,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: \"SSH Key Type\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 217,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"radio\",\n value: \"generate\",\n checked: config.sshKeyType === \"generate\",\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n sshKeyType: e.target.value\n })),\n className: \"mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 220,\n columnNumber: 17\n }, this),\n \"Generate new SSH key pair\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 219,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"radio\",\n value: \"existing\",\n checked: config.sshKeyType === \"existing\",\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n sshKeyType: e.target.value\n })),\n className: \"mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 230,\n columnNumber: 17\n }, this),\n \"Use existing SSH key\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 229,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"radio\",\n value: \"manual\",\n checked: config.sshKeyType === \"manual\",\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n sshKeyType: e.target.value\n })),\n className: \"mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 240,\n columnNumber: 17\n }, this),\n \"Configure manually with SSH username/password\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 239,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 218,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 216,\n columnNumber: 11\n }, this),\n config.sshKeyType === \"generate\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: !config.sshPublicKey ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: generateSSHKeys,\n disabled: generating,\n className: \"btn-primary\",\n children: generating ? \"Generating Keys...\" : \"Generate SSH Key Pair\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 255,\n columnNumber: 17\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: \"Public Key\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 266,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"textarea\", {\n value: config.sshPublicKey,\n readOnly: true,\n className: \"w-full p-3 border border-gray-300 rounded-lg bg-gray-50 font-mono text-sm\",\n rows: 3\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 268,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>copyToClipboard(config.sshPublicKey),\n className: \"absolute top-2 right-2 p-1 text-gray-500 hover:text-gray-700\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 279,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 274,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 267,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 265,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: \"Private Key\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 285,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"textarea\", {\n value: showPrivateKey ? config.sshPrivateKey : \"••••••••••••••••••••••••••••••••\",\n readOnly: true,\n className: \"w-full p-3 border border-gray-300 rounded-lg bg-gray-50 font-mono text-sm\",\n rows: 6\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 287,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute top-2 right-2 flex space-x-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>setShowPrivateKey(!showPrivateKey),\n className: \"p-1 text-gray-500 hover:text-gray-700\",\n children: showPrivateKey ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 299,\n columnNumber: 45\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 299,\n columnNumber: 84\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 294,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>copyToClipboard(config.sshPrivateKey),\n className: \"p-1 text-gray-500 hover:text-gray-700\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 306,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 301,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 293,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 286,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-yellow-600 mt-1\",\n children: \"⚠️ Store this private key securely. It cannot be recovered.\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 310,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 284,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 264,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 253,\n columnNumber: 13\n }, this),\n config.sshKeyType === \"existing\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: \"SSH Public Key\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 319,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"textarea\", {\n value: config.sshPublicKey,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n sshPublicKey: e.target.value\n })),\n placeholder: \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC...\",\n className: \"w-full p-3 border border-gray-300 rounded-lg font-mono text-sm\",\n rows: 3\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 320,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 318,\n columnNumber: 13\n }, this),\n config.sshKeyType === \"manual\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-yellow-50 border border-yellow-200 rounded-lg p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-shrink-0\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-5 w-5 text-yellow-600 mt-0.5\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 335,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 334,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"ml-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-sm font-medium text-yellow-800\",\n children: \"Manual SSH Configuration\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 338,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-yellow-700 mt-1\",\n children: [\n \"Provide SSH credentials for cluster machines. SSH keys will be automatically generated and deployed using these credentials.\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"strong\", {\n children: \" Passwords are only used during setup and are not stored.\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 341,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 339,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 337,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 333,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 332,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-2 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: [\n \"SSH Username \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-red-500\",\n children: \"*\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 350,\n columnNumber: 34\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 349,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: config.sshUsername,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n sshUsername: e.target.value\n })),\n placeholder: \"ubuntu\",\n className: \"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-bzzz-primary focus:border-bzzz-primary\",\n required: true\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 352,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-500 mt-1\",\n children: \"Exact SSH username for cluster machines\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 360,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 348,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: \"SSH Port\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 366,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"number\",\n value: config.sshPort,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n sshPort: parseInt(e.target.value) || 22\n })),\n min: \"1\",\n max: \"65535\",\n className: \"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-bzzz-primary focus:border-bzzz-primary\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 369,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-500 mt-1\",\n children: \"SSH port number (default: 22)\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 377,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 365,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 347,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: [\n \"SSH Password \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-red-500\",\n children: \"*\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 385,\n columnNumber: 32\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 384,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: showSSHPassword ? \"text\" : \"password\",\n value: config.sshPassword,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n sshPassword: e.target.value\n })),\n placeholder: \"Enter SSH password for cluster machines\",\n className: \"w-full px-3 py-2 pr-10 border border-gray-300 rounded-lg focus:ring-bzzz-primary focus:border-bzzz-primary\",\n required: true\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 388,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>setShowSSHPassword(!showSSHPassword),\n className: \"absolute inset-y-0 right-0 pr-3 flex items-center\",\n children: showSSHPassword ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-4 w-4 text-gray-400\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 402,\n columnNumber: 23\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-4 w-4 text-gray-400\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 404,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 396,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 387,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-500 mt-1\",\n children: \"SSH password for the specified username (used only during setup)\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 408,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 383,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 331,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 215,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 207,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 421,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900\",\n children: \"TLS/SSL Configuration\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 422,\n columnNumber: 11\n }, this),\n validation.tlsCert === true && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"h-5 w-5 text-green-500 ml-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 423,\n columnNumber: 43\n }, this),\n validation.tlsCert === false && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-5 w-5 text-red-500 ml-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 424,\n columnNumber: 44\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 420,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n checked: config.enableTLS,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n enableTLS: e.target.checked\n })),\n className: \"mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 429,\n columnNumber: 13\n }, this),\n \"Enable TLS encryption for cluster communication\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 428,\n columnNumber: 11\n }, this),\n config.enableTLS && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4 ml-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: \"Certificate Type\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 441,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"radio\",\n value: \"self-signed\",\n checked: config.tlsCertType === \"self-signed\",\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n tlsCertType: e.target.value\n })),\n className: \"mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 444,\n columnNumber: 21\n }, this),\n \"Generate self-signed certificate\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 443,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"radio\",\n value: \"letsencrypt\",\n checked: config.tlsCertType === \"letsencrypt\",\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n tlsCertType: e.target.value\n })),\n className: \"mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 454,\n columnNumber: 21\n }, this),\n \"Use Let's Encrypt (requires domain)\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 453,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"radio\",\n value: \"existing\",\n checked: config.tlsCertType === \"existing\",\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n tlsCertType: e.target.value\n })),\n className: \"mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 464,\n columnNumber: 21\n }, this),\n \"Use existing certificate\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 463,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 442,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 440,\n columnNumber: 15\n }, this),\n config.tlsCertType === \"existing\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: \"Certificate Path\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 479,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: config.tlsCertPath,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n tlsCertPath: e.target.value\n })),\n placeholder: \"/path/to/certificate.crt\",\n className: \"w-full p-3 border border-gray-300 rounded-lg\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 480,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 478,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: \"Private Key Path\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 489,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: config.tlsKeyPath,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n tlsKeyPath: e.target.value\n })),\n placeholder: \"/path/to/private.key\",\n className: \"w-full p-3 border border-gray-300 rounded-lg\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 490,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 488,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 477,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 439,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 427,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 419,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 508,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900\",\n children: \"Authentication Method\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 509,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 507,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: \"Authentication Type\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 514,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"radio\",\n value: \"token\",\n checked: config.authMethod === \"token\",\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n authMethod: e.target.value\n })),\n className: \"mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 517,\n columnNumber: 17\n }, this),\n \"API Token-based authentication\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 516,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"radio\",\n value: \"certificate\",\n checked: config.authMethod === \"certificate\",\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n authMethod: e.target.value\n })),\n className: \"mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 527,\n columnNumber: 17\n }, this),\n \"Certificate-based authentication\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 526,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"radio\",\n value: \"hybrid\",\n checked: config.authMethod === \"hybrid\",\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n authMethod: e.target.value\n })),\n className: \"mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 537,\n columnNumber: 17\n }, this),\n \"Hybrid (Token + Certificate)\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 536,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 515,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 513,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: \"Cluster Secret\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 550,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: showClusterSecret ? \"text\" : \"password\",\n value: config.clusterSecret,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n clusterSecret: e.target.value\n })),\n className: \"w-full p-3 border border-gray-300 rounded-lg font-mono\",\n placeholder: \"Cluster authentication secret\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 552,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute right-2 top-1/2 transform -translate-y-1/2 flex space-x-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>setShowClusterSecret(!showClusterSecret),\n className: \"p-1 text-gray-500 hover:text-gray-700\",\n children: showClusterSecret ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 565,\n columnNumber: 40\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 565,\n columnNumber: 79\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 560,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: generateClusterSecret,\n className: \"p-1 text-gray-500 hover:text-gray-700\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 572,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 567,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 559,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 551,\n columnNumber: 13\n }, this),\n validation.clusterSecret === false && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-red-600 mt-1\",\n children: \"Cluster secret is required\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 577,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 549,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 512,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 506,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 586,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900\",\n children: \"Access Control\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 587,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 585,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: \"Access Policy\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 592,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n value: config.accessPolicy,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n accessPolicy: e.target.value\n })),\n className: \"w-full p-3 border border-gray-300 rounded-lg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"open\",\n children: \"Open (Anyone can join cluster)\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 598,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"restricted\",\n children: \"Restricted (Require authentication)\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 599,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"invite-only\",\n children: \"Invite Only (Manual approval required)\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 600,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 593,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 591,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n checked: config.enableFirewall,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n enableFirewall: e.target.checked\n })),\n className: \"mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 605,\n columnNumber: 13\n }, this),\n \"Enable firewall configuration\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 604,\n columnNumber: 11\n }, this),\n config.enableFirewall && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"ml-6 space-y-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: \"Allowed Ports\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 617,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: config.allowedPorts.join(\", \"),\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n allowedPorts: e.target.value.split(\",\").map((p)=>p.trim()).filter((p)=>p)\n })),\n placeholder: \"22, 8080, 8090, 9100, 3000\",\n className: \"w-full p-3 border border-gray-300 rounded-lg\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 618,\n columnNumber: 17\n }, this),\n (configData === null || configData === void 0 ? void 0 : configData.network) && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-green-600 mt-1 flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"h-4 w-4 mr-1\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 630,\n columnNumber: 21\n }, this),\n \"Ports automatically configured from Network Settings: \",\n [\n configData.network.bzzzPort,\n configData.network.mcpPort,\n configData.network.webUIPort,\n configData.network.p2pPort\n ].filter((p)=>p).join(\", \")\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 629,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-500 mt-1\",\n children: \"Comma-separated list of ports to allow through the firewall\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 639,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 616,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 615,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 590,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 584,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-blue-50 border border-blue-200 rounded-lg p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentDuplicateIcon_ExclamationTriangleIcon_EyeIcon_EyeSlashIcon_KeyIcon_LockClosedIcon_ServerIcon_ShieldCheckIcon_XCircleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-5 w-5 text-blue-500 mt-0.5 mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 651,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-sm font-medium text-blue-800\",\n children: \"Security Summary\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 653,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"text-sm text-blue-700 mt-1 space-y-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: [\n \"• SSH access: \",\n config.sshKeyType === \"generate\" ? \"New key pair will be generated\" : config.sshKeyType === \"existing\" ? \"Using provided key\" : \"Manual configuration\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 655,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: [\n \"• TLS encryption: \",\n config.enableTLS ? \"Enabled\" : \"Disabled\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 656,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: [\n \"• Authentication: \",\n config.authMethod\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 657,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: [\n \"• Access policy: \",\n config.accessPolicy\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 658,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: [\n \"• Firewall: \",\n config.enableFirewall ? \"Enabled\" : \"Disabled\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 659,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 654,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 652,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 650,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 649,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between pt-6 border-t border-gray-200\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: onBack && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: onBack,\n className: \"btn-outline\",\n children: \"Back\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 668,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 666,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"submit\",\n disabled: config.sshKeyType === \"generate\" && !config.sshPublicKey,\n className: \"btn-primary\",\n children: isCompleted ? \"Continue\" : \"Next: AI Integration\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 673,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 665,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SecuritySetup.tsx\",\n lineNumber: 204,\n columnNumber: 5\n }, this);\n}\n_s(SecuritySetup, \"VYjSsmzYD3D4dWNtA4xj8z0RXFg=\");\n_c = SecuritySetup;\nvar _c;\n$RefreshReg$(_c, \"SecuritySetup\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9zZXR1cC9jb21wb25lbnRzL1NlY3VyaXR5U2V0dXAudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMkM7QUFZUDtBQTZCckIsU0FBU1ksY0FBYyxLQU1qQjtRQU5pQixFQUNwQ0MsVUFBVSxFQUNWQyxVQUFVLEVBQ1ZDLFVBQVUsRUFDVkMsTUFBTSxFQUNOQyxXQUFXLEVBQ1EsR0FOaUI7O0lBT3BDQyxRQUFRQyxHQUFHLENBQUMsc0RBQXNETDtJQUVsRSxNQUFNLENBQUNNLFFBQVFDLFVBQVUsR0FBR3JCLCtDQUFRQSxDQUFpQjtRQUNuRHNCLFlBQVk7UUFDWkMsY0FBYztRQUNkQyxlQUFlO1FBQ2ZDLGFBQWE7UUFDYkMsYUFBYTtRQUNiQyxTQUFTO1FBQ1RDLFdBQVc7UUFDWEMsYUFBYTtRQUNiQyxhQUFhO1FBQ2JDLFlBQVk7UUFDWkMsWUFBWTtRQUNaQyxlQUFlO1FBQ2ZDLGNBQWM7UUFDZEMsZ0JBQWdCO1FBQ2hCQyxjQUFjO1lBQUM7WUFBTTtZQUFRO1lBQVE7WUFBUTtTQUFPO1FBQ3BEQyxZQUFZLEVBQUU7V0FDWHZCLHVCQUFBQSxpQ0FBQUEsV0FBWXdCLFFBQVEsQ0FBQyx1Q0FBdUM7SUFDakU7SUFFQSxNQUFNLENBQUNDLGdCQUFnQkMsa0JBQWtCLEdBQUd4QywrQ0FBUUEsQ0FBQztJQUNyRCxNQUFNLENBQUN5QyxtQkFBbUJDLHFCQUFxQixHQUFHMUMsK0NBQVFBLENBQUM7SUFDM0QsTUFBTSxDQUFDMkMsaUJBQWlCQyxtQkFBbUIsR0FBRzVDLCtDQUFRQSxDQUFDO0lBQ3ZELE1BQU0sQ0FBQzZDLFlBQVlDLGNBQWMsR0FBRzlDLCtDQUFRQSxDQUFDO0lBQzdDLE1BQU0sQ0FBQytDLFlBQVlDLGNBQWMsR0FBR2hELCtDQUFRQSxDQUEyQixDQUFDO0lBQ3hFLE1BQU0sQ0FBQ2lELGtCQUFrQkMsb0JBQW9CLEdBQUdsRCwrQ0FBUUEsQ0FBQztJQUV6RCxpREFBaUQ7SUFDakRDLGdE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LFlBQVk7d0JBQ2xFa0YsV0FBVTtrQ0FFVHhGLGNBQWMsYUFBYTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBS3RDO0dBL25Cd0JMO0tBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2FwcC9zZXR1cC9jb21wb25lbnRzL1NlY3VyaXR5U2V0dXAudHN4P2Y2MWEiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFxuICBTaGllbGRDaGVja0ljb24sXG4gIEtleUljb24sXG4gIExvY2tDbG9zZWRJY29uLFxuICBTZXJ2ZXJJY29uLFxuICBFeWVJY29uLFxuICBFeWVTbGFzaEljb24sXG4gIERvY3VtZW50RHVwbGljYXRlSWNvbixcbiAgQ2hlY2tDaXJjbGVJY29uLFxuICBYQ2lyY2xlSWNvbixcbiAgRXhjbGFtYXRpb25UcmlhbmdsZUljb25cbn0gZnJvbSAnQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lJ1xuXG5pbnRlcmZhY2UgU2VjdXJpdHlTZXR1cFByb3BzIHtcbiAgc3lzdGVtSW5mbzogYW55XG4gIGNvbmZpZ0RhdGE6IGFueVxuICBvbkNvbXBsZXRlOiAoZGF0YTogYW55KSA9PiB2b2lkXG4gIG9uQmFjaz86ICgpID0+IHZvaWRcbiAgaXNDb21wbGV0ZWQ6IGJvb2xlYW5cbn1cblxuaW50ZXJmYWNlIFNlY3VyaXR5Q29uZmlnIHtcbiAgc3NoS2V5VHlwZTogJ2dlbmVyYXRlJyB8ICdleGlzdGluZycgfCAnbWFudWFsJ1xuICBzc2hQdWJsaWNLZXk6IHN0cmluZ1xuICBzc2hQcml2YXRlS2V5OiBzdHJpbmdcbiAgc3NoVXNlcm5hbWU6IHN0cmluZ1xuICBzc2hQYXNzd29yZDogc3RyaW5nXG4gIHNzaFBvcnQ6IG51bWJlclxuICBlbmFibGVUTFM6IGJvb2xlYW5cbiAgdGxzQ2VydFR5cGU6ICdzZWxmLXNpZ25lZCcgfCAnbGV0c2VuY3J5cHQnIHwgJ2V4aXN0aW5nJ1xuICB0bHNDZXJ0UGF0aDogc3RyaW5nXG4gIHRsc0tleVBhdGg6IHN0cmluZ1xuICBhdXRoTWV0aG9kOiAndG9rZW4nIHwgJ2NlcnRpZmljYXRlJyB8ICdoeWJyaWQnXG4gIGNsdXN0ZXJTZWNyZXQ6IHN0cmluZ1xuICBhY2Nlc3NQb2xpY3k6ICdvcGVuJyB8ICdyZXN0cmljdGVkJyB8ICdpbnZpdGUtb25seSdcbiAgZW5hYmxlRmlyZXdhbGw6IGJvb2xlYW5cbiAgYWxsb3dlZFBvcnRzOiBzdHJpbmdbXVxuICB0cnVzdGVkSVBzOiBzdHJpbmdbXVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTZWN1cml0eVNldHVwKHsgXG4gIHN5c3RlbUluZm8sIFxuICBjb25maWdEYXRhLCBcbiAgb25Db21wbGV0ZSwgXG4gIG9uQmFjaywgXG4gIGlzQ29tcGxldGVkIFxufTogU2VjdXJpdHlTZXR1cFByb3BzKSB7XG4gIGNvbnNvbGUubG9nKCdTZWN1cml0eVNldHVwOiBDb21wb25lbnQgcmVuZGVyZWQgd2l0aCBjb25maWdEYXRhOicsIGNvbmZpZ0RhdGEpXG4gIFxuICBjb25zdCBbY29uZmlnLCBzZXRDb25maWddID0gdXNlU3RhdGU8U2VjdXJpdHlDb25maWc+KHtcbiAgICBzc2hLZXlUeXBlOiAnZ2VuZXJhdGUnLFxuICAgIHNzaFB1YmxpY0tleTogJycsXG4gICAgc3NoUHJpdmF0ZUtleTogJycsXG4gICAgc3NoVXNlcm5hbWU6ICd1YnVudHUnLFxuICAgIHNzaFBhc3N3b3JkOiAnJyxcbiAgICBzc2hQb3J0OiAyMixcbiAgICBlbmFibGVUTFM6IHRydWUsXG4gICAgdGxzQ2VydFR5cGU6ICdzZWxmLXNpZ25lZCcsXG4gICAgdGxzQ2VydFBhdGg6ICcnLFxuICAgIHRsc0tleVBhdGg6ICcnLFxuICAgIGF1dGhNZXRob2Q6ICd0b2tlbicsXG4gICAgY2x1c3RlclNlY3JldDogJycsXG4gICAgYWNjZXNzUG9saWN5OiAncmVzdHJpY3RlZCcsXG4gICAgZW5hYmxlRmlyZXdhbGw6IHRydWUsXG4gICAgYWxsb3dlZFBvcnRzOiBbJzIyJywgJzgwODAnLCAnODA5MCcsICc5MTAwJywgJzMwMDAnXSxcbiAgICB0cnVzdGVkSVBzOiBbXSxcbiAgICAuLi5jb25maWdEYXRhPy5zZWN1cml0eSAvLyBMb2FkIHNhdmVkIHNlY3VyaXR5IGNvbmZpZyBpZiBleGlzdHNcbiAgfSlcblxuICBjb25zdCBbc2hvd1ByaXZhdGVLZXksIHNldFNob3dQcml2YXRlS2V5XSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2hvd0NsdXN0ZXJTZWNyZXQsIHNldFNob3dDbHVzdGVyU2VjcmV0XSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2hvd1NTSFBhc3N3b3JkLCBzZXRTaG93U1NIUGFzc3dvcmRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtnZW5lcmF0aW5nLCBzZXRHZW5lcmF0aW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbdmFsaWRhdGlvbiwgc2V0VmFsaWRhdGlvbl0gPSB1c2VTdGF0ZTx7W2tleTogc3RyaW5nXTogYm9vbGVhbn0+KHt9KVxuICBjb25zdCBbcG9ydHNJbml0aWFsaXplZCwgc2V0UG9ydHNJbml0aWFsaXplZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICAvLyBHZW5lcmF0ZSBjbHVzdGVyIHNlY3JldCBvbiBtb3VudCBpZiBub3QgZXhpc3RzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFjb25maWcuY2x1c3RlclNlY3JldCkge1xuICAgICAgZ2VuZXJhdGVDbHVzdGVyU2VjcmV0KClcbiAgICB9XG4gIH0sIFtdKVxuXG4gIC8vIFVwZGF0ZSBmaXJld2FsbCBwb3J0cyBiYXNlZCBvbiBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gZnJvbSBwcmV2aW91cyBzdGVwXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc29sZS5sb2coJ1NlY3VyaXR5U2V0dXA6IGNvbmZpZ0RhdGEgY2hhbmdlZCcsIHtcbiAgICAgIGhhc05ldHdvcms6ICEhY29uZmlnRGF0YT8ubmV0d29yayxcbiAgICAgIHBvcnRzSW5pdGlhbGl6ZWQsXG4gICAgICBoYXNTYXZlZFNlY3VyaXR5OiAhIWNvbmZpZ0RhdGE/LnNlY3VyaXR5Py5hbGxvd2VkUG9ydHMsXG4gICAgICBuZXR3b3JrQ29uZmlnOiBjb25maWdEYXRhPy5uZXR3b3JrXG4gICAgfSlcbiAgICBcbiAgICAvLyBJZiB3ZSBoYXZlIG5ldHdvcmsgY29uZmlnIGFuZCBoYXZlbid0IGluaXRpYWxpemVkIHBvcnRzIHlldCwgQU5EIHdlIGRvbid0IGhhdmUgc2F2ZWQgc2VjdXJpdHkgY29uZmlnXG4gICAgaWYgKGNvbmZpZ0RhdGE/Lm5ldHdvcmsgJiYgIXBvcnRzSW5pdGlhbGl6ZWQgJiYgIWNvbmZpZ0RhdGE/LnNlY3VyaXR5Py5hbGxvd2VkUG9ydHMpIHtcbiAgICAgIGNvbnN0IG5ldHdvcmtDb25maWcgPSBjb25maWdEYXRhLm5ldHdvcmtcbiAgICAgIGNvbnN0IG5ldHdvcmtQb3J0cyA9IFtcbiAgICAgICAgbmV0d29ya0NvbmZpZy5ienp6UG9ydD8udG9TdHJpbmcoKSxcbiAgICAgICAgbmV0d29ya0NvbmZpZy5tY3BQb3J0Py50b1N0cmluZygpLCBcbiAgICAgICAgbmV0d29ya0NvbmZpZy53ZWJVSVBvcnQ/LnRvU3RyaW5nKCksXG4gICAgICAgIG5ldHdvcmtDb25maWcucDJwUG9ydD8udG9TdHJpbmcoKVxuICAgICAgXS5maWx0ZXIocG9ydCA9PiBwb3J0ICYmIHBvcnQgIT09ICd1bmRlZmluZWQnKVxuICAgICAgXG4gICAgICBjb25zb2xlLmxvZygnU2VjdXJpdHlTZXR1cDogQXV0by1wb3B1bGF0aW5nIHBvcnRzJywgeyBuZXR3b3JrUG9ydHMsIG5ldHdvcmtDb25maWcgfSlcbiAgICAgIFxuICAgICAgLy8gSW5jbHVkZSBzdGFuZGFyZCBwb3J0cyBwbHVzIG5ldHdvcmsgY29uZmlndXJhdGlvbiBwb3J0c1xuICAgICAgY29uc3Qgc3RhbmRhcmRQb3J0cyA9IFsnMjInLCAnODA5MCddIC8vIFNTSCBhbmQgc2V0dXAgaW50ZXJmYWNlXG4gICAgICBjb25zdCBhbGxQb3J0cyA9IFsuLi5uZXcgU2V0KFsuLi5zdGFuZGFyZFBvcnRzLCAuLi5uZXR3b3JrUG9ydHNdKV1cbiAgICAgIFxuICAgICAgY29uc29sZS5sb2coJ1NlY3VyaXR5U2V0dXA6IFNldHRpbmcgYWxsb3dlZCBwb3J0cyB0bycsIGFsbFBvcnRzKVxuICAgICAgc2V0Q29uZmlnKHByZXYgPT4gKHsgLi4ucHJldiwgYWxsb3dlZFBvcnRzOiBhbGxQb3J0cyB9KSlcbiAgICAgIHNldFBvcnRzSW5pdGlhbGl6ZWQodHJ1ZSlcbiAgICB9XG4gIH0sIFtjb25maWdEYXRhLCBwb3J0c0luaXRpYWxpemVkXSlcblxuICBjb25zdCBnZW5lcmF0ZUNsdXN0ZXJTZWNyZXQgPSAoKSA9PiB7XG4gICAgY29uc3Qgc2VjcmV0ID0gQXJyYXkuZnJvbShjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KDMyKSkpXG4gICAgICAubWFwKGIgPT4gYi50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKSlcbiAgICAgIC5qb2luKCcnKVxuICAgIHNldENvbmZpZyhwcmV2ID0+ICh7IC4uLnByZXYsIGNsdXN0ZXJTZWNyZXQ6IHNlY3JldCB9KSlcbiAgfVxuXG4gIGNvbnN0IGdlbmVyYXRlU1NIS2V5cyA9IGFzeW5jICgpID0+IHtcbiAgICBzZXRHZW5lcmF0aW5nKHRydWUpXG4gICAgdHJ5IHtcbiAgICAgIC8vIEluIGEgcmVhbCBpbXBsZW1lbnRhdGlvbiwgdGhpcyB3b3VsZCBjYWxsIHRoZSBiYWNrZW5kIHRvIGdlbmVyYXRlIFNTSCBrZXlzXG4gICAgICAvLyBGb3Igbm93LCBzaW11bGF0ZSB0aGUgcHJvY2Vzc1xuICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDIwMDApKVxuICAgICAgXG4gICAgICAvLyBNb2NrIGdlbmVyYXRlZCBrZXlzIChpbiByZWFsIGltcGxlbWVudGF0aW9uLCB0aGVzZSB3b3VsZCBjb21lIGZyb20gYmFja2VuZClcbiAgICAgIGNvbnN0IG1vY2tQdWJsaWNLZXkgPSBgc3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFDQVFDLi4uIGNob3J1c0Ake3N5c3RlbUluZm8/Lm5ldHdvcms/Lmhvc3RuYW1lIHx8ICdsb2NhbGhvc3QnfWBcbiAgICAgIGNvbnN0IG1vY2tQcml2YXRlS2V5ID0gYC0tLS0tQkVHSU4gT1BFTlNTSCBQUklWQVRFIEtFWS0tLS0tXG5iM0JsYm5OemFDMXJaWGt0ZGpFQUFBQUFCRzV2Ym1VQUFBQUVibTl1WlFBQUFBQUFBQUFCQUFBRnd3QUFBQWQuLi5cbi0tLS0tRU5EIE9QRU5TU0ggUFJJVkFURSBLRVktLS0tLWBcblxuICAgICAgc2V0Q29uZmlnKHByZXYgPT4gKHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgc3NoUHVibGljS2V5OiBtb2NrUHVibGljS2V5LFxuICAgICAgICBzc2hQcml2YXRlS2V5OiBtb2NrUHJpdmF0ZUtleVxuICAgICAgfSkpXG5cbiAgICAgIHNldFZhbGlkYXRpb24ocHJldiA9PiAoeyAuLi5wcmV2LCBzc2hLZXlzOiB0cnVlIH0pKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gZ2VuZXJhdGUgU1NIIGtleXM6JywgZXJyb3IpXG4gICAgICBzZXRWYWxpZGF0aW9uKHByZXYgPT4gKHsgLi4ucHJldiwgc3NoS2V5czogZmFsc2UgfSkpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldEdlbmVyYXRpbmcoZmFsc2UpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgY29weVRvQ2xpcGJvYXJkID0gYXN5bmMgKHRleHQ6IHN0cmluZykgPT4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gY29weSB0byBjbGlwYm9hcmQ6JywgZXJyb3IpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0ID0gKGU6IFJlYWN0LkZvcm1FdmVudCkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIFxuICAgIC8vIFZhbGlkYXRlIHJlcXVpcmVkIGZpZWxkc1xuICAgIGNvbnN0IG5ld1ZhbGlkYXRpb246IHtba2V5OiBzdHJpbmddOiBib29sZWFufSA9IHt9XG4gICAgXG4gICAgaWYgKGNvbmZpZy5zc2hLZXlUeXBlID09PSAnZ2VuZXJhdGUnICYmICFjb25maWcuc3NoUHVibGljS2V5KSB7XG4gICAgICBuZXdWYWxpZGF0aW9uLnNzaEtleXMgPSBmYWxzZVxuICAgIH0gZWxzZSBpZiAoY29uZmlnLnNzaEtleVR5cGUgPT09ICdleGlzdGluZycgJiYgIWNvbmZpZy5zc2hQdWJsaWNLZXkpIHtcbiAgICAgIG5ld1ZhbGlkYXRpb24uc3NoS2V5cyA9IGZhbHNlXG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld1ZhbGlkYXRpb24uc3NoS2V5cyA9IHRydWVcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLmVuYWJsZVRMUyAmJiBjb25maWcudGxzQ2VydFR5cGUgPT09ICdleGlzdGluZycgJiYgKCFjb25maWcudGxzQ2VydFBhdGggfHwgIWNvbmZpZy50bHNLZXlQYXRoKSkge1xuICAgICAgbmV3VmFsaWRhdGlvbi50bHNDZXJ0ID0gZmFsc2VcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3VmFsaWRhdGlvbi50bHNDZXJ0ID0gdHJ1ZVxuICAgIH1cblxuICAgIGlmICghY29uZmlnLmNsdXN0ZXJTZWNyZXQpIHtcbiAgICAgIG5ld1ZhbGlkYXRpb24uY2x1c3RlclNlY3JldCA9IGZhbHNlXG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld1ZhbGlkYXRpb24uY2x1c3RlclNlY3JldCA9IHRydWVcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLnNzaEtleVR5cGUgPT09ICdtYW51YWwnICYmICghY29uZmlnLnNzaFVzZXJuYW1lIHx8ICFjb25maWcuc3NoUGFzc3dvcmQpKSB7XG4gICAgICBuZXdWYWxpZGF0aW9uLnNzaENyZWRlbnRpYWxzID0gZmFsc2VcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3VmFsaWRhdGlvbi5zc2hDcmVkZW50aWFscyA9IHRydWVcbiAgICB9XG5cbiAgICBzZXRWYWxpZGF0aW9uKG5ld1ZhbGlkYXRpb24pXG5cbiAgICAvLyBDaGVjayBpZiBhbGwgdmFsaWRhdGlvbnMgcGFzc1xuICAgIGNvbnN0IGlzVmFsaWQgPSBPYmplY3QudmFsdWVzKG5ld1ZhbGlkYXRpb24pLmV2ZXJ5KHYgPT4gdilcbiAgICBcbiAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgb25Db21wbGV0ZSh7IHNlY3VyaXR5OiBjb25maWcgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxmb3JtIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9IGNsYXNzTmFtZT1cInNwYWNlLXktOFwiPlxuXG4gICAgICB7LyogU1NIIEtleSBDb25maWd1cmF0aW9uICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgbWItNFwiPlxuICAgICAgICAgIDxLZXlJY29uIGNsYXNzTmFtZT1cImgtNiB3LTYgdGV4dC1ienp6LXByaW1hcnkgbXItMlwiIC8+XG4gICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMFwiPlNTSCBLZXkgTWFuYWdlbWVudDwvaDM+XG4gICAgICAgICAge3ZhbGlkYXRpb24uc3NoS2V5cyA9PT0gdHJ1ZSAmJiA8Q2hlY2tDaXJjbGVJY29uIGNsYXNzTmFtZT1cImgtNSB3LTUgdGV4dC1ncmVlbi01MDAgbWwtMlwiIC8+fVxuICAgICAgICAgIHt2YWxpZGF0aW9uLnNzaEtleXMgPT09IGZhbHNlICYmIDxYQ2lyY2xlSWNvbiBjbGFzc05hbWU9XCJoLTUgdy01IHRleHQtcmVkLTUwMCBtbC0yXCIgLz59XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS00XCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDAgbWItMlwiPlNTSCBLZXkgVHlwZTwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktMlwiPlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT1cImdlbmVyYXRlXCJcbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2NvbmZpZy5zc2hLZXlUeXBlID09PSAnZ2VuZXJhdGUnfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRDb25maWcocHJldiA9PiAoeyAuLi5wcmV2LCBzc2hLZXlUeXBlOiBlLnRhcmdldC52YWx1ZSBhcyBhbnkgfSkpfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXItMlwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICBHZW5lcmF0ZSBuZXcgU1NIIGtleSBwYWlyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICAgIHZhbHVlPVwiZXhpc3RpbmdcIlxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17Y29uZmlnLnNzaEtleVR5cGUgPT09ICdleGlzdGluZyd9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldENvbmZpZyhwcmV2ID0+ICh7IC4uLnByZXYsIHNzaEtleVR5cGU6IGUudGFyZ2V0LnZhbHVlIGFzIGFueSB9KSl9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtci0yXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIFVzZSBleGlzdGluZyBTU0gga2V5XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICAgIHZhbHVlPVwibWFudWFsXCJcbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2NvbmZpZy5zc2hLZXlUeXBlID09PSAnbWFudWFsJ31cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Q29uZmlnKHByZXYgPT4gKHsgLi4ucHJldiwgc3NoS2V5VHlwZTogZS50YXJnZXQudmFsdWUgYXMgYW55IH0pKX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm1yLTJcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgQ29uZmlndXJlIG1hbnVhbGx5IHdpdGggU1NIIHVzZXJuYW1lL3Bhc3N3b3JkXG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIHtjb25maWcuc3NoS2V5VHlwZSA9PT0gJ2dlbmVyYXRlJyAmJiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktNFwiPlxuICAgICAgICAgICAgICB7IWNvbmZpZy5zc2hQdWJsaWNLZXkgPyAoXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtnZW5lcmF0ZVNTSEtleXN9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17Z2VuZXJhdGluZ31cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Z2VuZXJhdGluZyA/ICdHZW5lcmF0aW5nIEtleXMuLi4nIDogJ0dlbmVyYXRlIFNTSCBLZXkgUGFpcid9XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTRcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDAgbWItMlwiPlB1YmxpYyBLZXk8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Y29uZmlnLnNzaFB1YmxpY0tleX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgcC0zIGJvcmRlciBib3JkZXItZ3JheS0zMDAgcm91bmRlZC1sZyBiZy1ncmF5LTUwIGZvbnQtbW9ubyB0ZXh0LXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9ezN9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGNvcHlUb0NsaXBib2FyZChjb25maWcuc3NoUHVibGljS2V5KX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHRvcC0yIHJpZ2h0LTIgcC0xIHRleHQtZ3JheS01MDAgaG92ZXI6dGV4dC1ncmF5LTcwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPERvY3VtZW50RHVwbGljYXRlSWNvbiBjbGFzc05hbWU9XCJoLTQgdy00XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMCBtYi0yXCI+UHJpdmF0ZSBLZXk8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c2hvd1ByaXZhdGVLZXkgPyBjb25maWcuc3NoUHJpdmF0ZUtleSA6ICfigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKInfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBwLTMgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkLWxnIGJnLWdyYXktNTAgZm9udC1tb25vIHRleHQtc21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgcm93cz17Nn1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgdG9wLTIgcmlnaHQtMiBmbGV4IHNwYWNlLXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd1ByaXZhdGVLZXkoIXNob3dQcml2YXRlS2V5KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicC0xIHRleHQtZ3JheS01MDAgaG92ZXI6dGV4dC1ncmF5LTcwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtzaG93UHJpdmF0ZUtleSA/IDxFeWVTbGFzaEljb24gY2xhc3NOYW1lPVwiaC00IHctNFwiIC8+IDogPEV5ZUljb24gY2xhc3NOYW1lPVwiaC00IHctNFwiIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBjb3B5VG9DbGlwYm9hcmQoY29uZmlnLnNzaFByaXZhdGVLZXkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwLTEgdGV4dC1ncmF5LTUwMCBob3Zlcjp0ZXh0LWdyYXktNzAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPERvY3VtZW50RHVwbGljYXRlSWNvbiBjbGFzc05hbWU9XCJoLTQgdy00XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXllbGxvdy02MDAgbXQtMVwiPuKaoO+4jyBTdG9yZSB0aGlzIHByaXZhdGUga2V5IHNlY3VyZWx5LiBJdCBjYW5ub3QgYmUgcmVjb3ZlcmVkLjwvcD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHtjb25maWcuc3NoS2V5VHlwZSA9PT0gJ2V4aXN0aW5nJyAmJiAoXG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktNzAwIG1iLTJcIj5TU0ggUHVibGljIEtleTwvbGFiZWw+XG4gICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgIHZhbHVlPXtjb25maWcuc3NoUHVibGljS2V5fVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Q29uZmlnKHByZXYgPT4gKHsgLi4ucHJldiwgc3NoUHVibGljS2V5OiBlLnRhcmdldC52YWx1ZSB9KSl9XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJzc2gtcnNhIEFBQUFCM056YUMxeWMyRUFBQUFEQVFBQkFBQUNBUUMuLi5cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBwLTMgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkLWxnIGZvbnQtbW9ubyB0ZXh0LXNtXCJcbiAgICAgICAgICAgICAgICByb3dzPXszfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHtjb25maWcuc3NoS2V5VHlwZSA9PT0gJ21hbnVhbCcgJiYgKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy15ZWxsb3ctNTAgYm9yZGVyIGJvcmRlci15ZWxsb3ctMjAwIHJvdW5kZWQtbGcgcC00XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLXN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtc2hyaW5rLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgPEV4Y2xhbWF0aW9uVHJpYW5nbGVJY29uIGNsYXNzTmFtZT1cImgtNSB3LTUgdGV4dC15ZWxsb3ctNjAwIG10LTAuNVwiIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWwtM1wiPlxuICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXllbGxvdy04MDBcIj5NYW51YWwgU1NIIENvbmZpZ3VyYXRpb248L2g0PlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQteWVsbG93LTcwMCBtdC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgUHJvdmlkZSBTU0ggY3JlZGVudGlhbHMgZm9yIGNsdXN0ZXIgbWFjaGluZXMuIFNTSCBrZXlzIHdpbGwgYmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYW5kIGRlcGxveWVkIHVzaW5nIHRoZXNlIGNyZWRlbnRpYWxzLiBcbiAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPiBQYXNzd29yZHMgYXJlIG9ubHkgdXNlZCBkdXJpbmcgc2V0dXAgYW5kIGFyZSBub3Qgc3RvcmVkLjwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIGdhcC00XCI+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDAgbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICBTU0ggVXNlcm5hbWUgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1yZWQtNTAwXCI+Kjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Y29uZmlnLnNzaFVzZXJuYW1lfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldENvbmZpZyhwcmV2ID0+ICh7IC4uLnByZXYsIHNzaFVzZXJuYW1lOiBlLnRhcmdldC52YWx1ZSB9KSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwidWJ1bnR1XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIHB4LTMgcHktMiBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbGcgZm9jdXM6cmluZy1ienp6LXByaW1hcnkgZm9jdXM6Ym9yZGVyLWJ6enotcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNTAwIG10LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgRXhhY3QgU1NIIHVzZXJuYW1lIGZvciBjbHVzdGVyIG1hY2hpbmVzXG4gICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMCBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIFNTSCBQb3J0XG4gICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Y29uZmlnLnNzaFBvcnR9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Q29uZmlnKHByZXYgPT4gKHsgLi4ucHJldiwgc3NoUG9ydDogcGFyc2VJbnQoZS50YXJnZXQudmFsdWUpIHx8IDIyIH0pKX1cbiAgICAgICAgICAgICAgICAgICAgbWluPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgIG1heD1cIjY1NTM1XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIHB4LTMgcHktMiBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbGcgZm9jdXM6cmluZy1ienp6LXByaW1hcnkgZm9jdXM6Ym9yZGVyLWJ6enotcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNTAwIG10LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgU1NIIHBvcnQgbnVtYmVyIChkZWZhdWx0OiAyMilcbiAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktNzAwIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgIFNTSCBQYXNzd29yZCA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXJlZC01MDBcIj4qPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9e3Nob3dTU0hQYXNzd29yZCA/ICd0ZXh0JyA6ICdwYXNzd29yZCd9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtjb25maWcuc3NoUGFzc3dvcmR9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Q29uZmlnKHByZXYgPT4gKHsgLi4ucHJldiwgc3NoUGFzc3dvcmQ6IGUudGFyZ2V0LnZhbHVlIH0pKX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBTU0ggcGFzc3dvcmQgZm9yIGNsdXN0ZXIgbWFjaGluZXNcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgcHgtMyBweS0yIHByLTEwIGJvcmRlciBib3JkZXItZ3JheS0zMDAgcm91bmRlZC1sZyBmb2N1czpyaW5nLWJ6enotcHJpbWFyeSBmb2N1czpib3JkZXItYnp6ei1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaG93U1NIUGFzc3dvcmQoIXNob3dTU0hQYXNzd29yZCl9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LXktMCByaWdodC0wIHByLTMgZmxleCBpdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c2hvd1NTSFBhc3N3b3JkID8gKFxuICAgICAgICAgICAgICAgICAgICAgIDxFeWVTbGFzaEljb24gY2xhc3NOYW1lPVwiaC00IHctNCB0ZXh0LWdyYXktNDAwXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICA8RXllSWNvbiBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtZ3JheS00MDBcIiAvPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNTAwIG10LTFcIj5cbiAgICAgICAgICAgICAgICAgIFNTSCBwYXNzd29yZCBmb3IgdGhlIHNwZWNpZmllZCB1c2VybmFtZSAodXNlZCBvbmx5IGR1cmluZyBzZXR1cClcbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuXG4gICAgICB7LyogVExTL1NTTCBDb25maWd1cmF0aW9uICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgbWItNFwiPlxuICAgICAgICAgIDxMb2NrQ2xvc2VkSWNvbiBjbGFzc05hbWU9XCJoLTYgdy02IHRleHQtYnp6ei1wcmltYXJ5IG1yLTJcIiAvPlxuICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDBcIj5UTFMvU1NMIENvbmZpZ3VyYXRpb248L2gzPlxuICAgICAgICAgIHt2YWxpZGF0aW9uLnRsc0NlcnQgPT09IHRydWUgJiYgPENoZWNrQ2lyY2xlSWNvbiBjbGFzc05hbWU9XCJoLTUgdy01IHRleHQtZ3JlZW4tNTAwIG1sLTJcIiAvPn1cbiAgICAgICAgICB7dmFsaWRhdGlvbi50bHNDZXJ0ID09PSBmYWxzZSAmJiA8WENpcmNsZUljb24gY2xhc3NOYW1lPVwiaC01IHctNSB0ZXh0LXJlZC01MDAgbWwtMlwiIC8+fVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktNFwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIGNoZWNrZWQ9e2NvbmZpZy5lbmFibGVUTFN9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Q29uZmlnKHByZXYgPT4gKHsgLi4ucHJldiwgZW5hYmxlVExTOiBlLnRhcmdldC5jaGVja2VkIH0pKX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXItMlwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgRW5hYmxlIFRMUyBlbmNyeXB0aW9uIGZvciBjbHVzdGVyIGNvbW11bmljYXRpb25cbiAgICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgICAge2NvbmZpZy5lbmFibGVUTFMgJiYgKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTQgbWwtNlwiPlxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDAgbWItMlwiPkNlcnRpZmljYXRlIFR5cGU8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0yXCI+XG4gICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInNlbGYtc2lnbmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtjb25maWcudGxzQ2VydFR5cGUgPT09ICdzZWxmLXNpZ25lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRDb25maWcocHJldiA9PiAoeyAuLi5wcmV2LCB0bHNDZXJ0VHlwZTogZS50YXJnZXQudmFsdWUgYXMgYW55IH0pKX1cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtci0yXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgR2VuZXJhdGUgc2VsZi1zaWduZWQgY2VydGlmaWNhdGVcbiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImxldHNlbmNyeXB0XCJcbiAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtjb25maWcudGxzQ2VydFR5cGUgPT09ICdsZXRzZW5jcnlwdCd9XG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRDb25maWcocHJldiA9PiAoeyAuLi5wcmV2LCB0bHNDZXJ0VHlwZTogZS50YXJnZXQudmFsdWUgYXMgYW55IH0pKX1cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtci0yXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgVXNlIExldCdzIEVuY3J5cHQgKHJlcXVpcmVzIGRvbWFpbilcbiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImV4aXN0aW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtjb25maWcudGxzQ2VydFR5cGUgPT09ICdleGlzdGluZyd9XG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRDb25maWcocHJldiA9PiAoeyAuLi5wcmV2LCB0bHNDZXJ0VHlwZTogZS50YXJnZXQudmFsdWUgYXMgYW55IH0pKX1cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtci0yXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgVXNlIGV4aXN0aW5nIGNlcnRpZmljYXRlXG4gICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICB7Y29uZmlnLnRsc0NlcnRUeXBlID09PSAnZXhpc3RpbmcnICYmIChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktNFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMCBtYi0yXCI+Q2VydGlmaWNhdGUgUGF0aDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Y29uZmlnLnRsc0NlcnRQYXRofVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Q29uZmlnKHByZXYgPT4gKHsgLi4ucHJldiwgdGxzQ2VydFBhdGg6IGUudGFyZ2V0LnZhbHVlIH0pKX1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIi9wYXRoL3RvL2NlcnRpZmljYXRlLmNydFwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIHAtMyBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbGdcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktNzAwIG1iLTJcIj5Qcml2YXRlIEtleSBQYXRoPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtjb25maWcudGxzS2V5UGF0aH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldENvbmZpZyhwcmV2ID0+ICh7IC4uLnByZXYsIHRsc0tleVBhdGg6IGUudGFyZ2V0LnZhbHVlIH0pKX1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIi9wYXRoL3RvL3ByaXZhdGUua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgcC0zIGJvcmRlciBib3JkZXItZ3JheS0zMDAgcm91bmRlZC1sZ1wiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBBdXRoZW50aWNhdGlvbiBNZXRob2QgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBtYi00XCI+XG4gICAgICAgICAgPFNoaWVsZENoZWNrSWNvbiBjbGFzc05hbWU9XCJoLTYgdy02IHRleHQtYnp6ei1wcmltYXJ5IG1yLTJcIiAvPlxuICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDBcIj5BdXRoZW50aWNhdGlvbiBNZXRob2Q8L2gzPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktNFwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktNzAwIG1iLTJcIj5BdXRoZW50aWNhdGlvbiBUeXBlPC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0yXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICAgIHZhbHVlPVwidG9rZW5cIlxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17Y29uZmlnLmF1dGhNZXRob2QgPT09ICd0b2tlbid9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldENvbmZpZyhwcmV2ID0+ICh7IC4uLnByZXYsIGF1dGhNZXRob2Q6IGUudGFyZ2V0LnZhbHVlIGFzIGFueSB9KSl9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtci0yXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIEFQSSBUb2tlbi1iYXNlZCBhdXRoZW50aWNhdGlvblxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT1cImNlcnRpZmljYXRlXCJcbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2NvbmZpZy5hdXRoTWV0aG9kID09PSAnY2VydGlmaWNhdGUnfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRDb25maWcocHJldiA9PiAoeyAuLi5wcmV2LCBhdXRoTWV0aG9kOiBlLnRhcmdldC52YWx1ZSBhcyBhbnkgfSkpfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXItMlwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICBDZXJ0aWZpY2F0ZS1iYXNlZCBhdXRoZW50aWNhdGlvblxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT1cImh5YnJpZFwiXG4gICAgICAgICAgICAgICAgICBjaGVja2VkPXtjb25maWcuYXV0aE1ldGhvZCA9PT0gJ2h5YnJpZCd9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldENvbmZpZyhwcmV2ID0+ICh7IC4uLnByZXYsIGF1dGhNZXRob2Q6IGUudGFyZ2V0LnZhbHVlIGFzIGFueSB9KSl9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtci0yXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIEh5YnJpZCAoVG9rZW4gKyBDZXJ0aWZpY2F0ZSlcbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDAgbWItMlwiPkNsdXN0ZXIgU2VjcmV0PC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmVcIj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT17c2hvd0NsdXN0ZXJTZWNyZXQgPyBcInRleHRcIiA6IFwicGFzc3dvcmRcIn1cbiAgICAgICAgICAgICAgICB2YWx1ZT17Y29uZmlnLmNsdXN0ZXJTZWNyZXR9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRDb25maWcocHJldiA9PiAoeyAuLi5wcmV2LCBjbHVzdGVyU2VjcmV0OiBlLnRhcmdldC52YWx1ZSB9KSl9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIHAtMyBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbGcgZm9udC1tb25vXCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkNsdXN0ZXIgYXV0aGVudGljYXRpb24gc2VjcmV0XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSByaWdodC0yIHRvcC0xLzIgdHJhbnNmb3JtIC10cmFuc2xhdGUteS0xLzIgZmxleCBzcGFjZS14LTFcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNob3dDbHVzdGVyU2VjcmV0KCFzaG93Q2x1c3RlclNlY3JldCl9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwLTEgdGV4dC1ncmF5LTUwMCBob3Zlcjp0ZXh0LWdyYXktNzAwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c2hvd0NsdXN0ZXJTZWNyZXQgPyA8RXllU2xhc2hJY29uIGNsYXNzTmFtZT1cImgtNCB3LTRcIiAvPiA6IDxFeWVJY29uIGNsYXNzTmFtZT1cImgtNCB3LTRcIiAvPn1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2dlbmVyYXRlQ2x1c3RlclNlY3JldH1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInAtMSB0ZXh0LWdyYXktNTAwIGhvdmVyOnRleHQtZ3JheS03MDBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxLZXlJY29uIGNsYXNzTmFtZT1cImgtNCB3LTRcIiAvPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge3ZhbGlkYXRpb24uY2x1c3RlclNlY3JldCA9PT0gZmFsc2UgJiYgKFxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtcmVkLTYwMCBtdC0xXCI+Q2x1c3RlciBzZWNyZXQgaXMgcmVxdWlyZWQ8L3A+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogQWNjZXNzIENvbnRyb2wgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBtYi00XCI+XG4gICAgICAgICAgPFNlcnZlckljb24gY2xhc3NOYW1lPVwiaC02IHctNiB0ZXh0LWJ6enotcHJpbWFyeSBtci0yXCIgLz5cbiAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwXCI+QWNjZXNzIENvbnRyb2w8L2gzPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktNFwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktNzAwIG1iLTJcIj5BY2Nlc3MgUG9saWN5PC9sYWJlbD5cbiAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgdmFsdWU9e2NvbmZpZy5hY2Nlc3NQb2xpY3l9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Q29uZmlnKHByZXYgPT4gKHsgLi4ucHJldiwgYWNjZXNzUG9saWN5OiBlLnRhcmdldC52YWx1ZSBhcyBhbnkgfSkpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgcC0zIGJvcmRlciBib3JkZXItZ3JheS0zMDAgcm91bmRlZC1sZ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJvcGVuXCI+T3BlbiAoQW55b25lIGNhbiBqb2luIGNsdXN0ZXIpPC9vcHRpb24+XG4gICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJyZXN0cmljdGVkXCI+UmVzdHJpY3RlZCAoUmVxdWlyZSBhdXRoZW50aWNhdGlvbik8L29wdGlvbj5cbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImludml0ZS1vbmx5XCI+SW52aXRlIE9ubHkgKE1hbnVhbCBhcHByb3ZhbCByZXF1aXJlZCk8L29wdGlvbj5cbiAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgY2hlY2tlZD17Y29uZmlnLmVuYWJsZUZpcmV3YWxsfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldENvbmZpZyhwcmV2ID0+ICh7IC4uLnByZXYsIGVuYWJsZUZpcmV3YWxsOiBlLnRhcmdldC5jaGVja2VkIH0pKX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXItMlwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgRW5hYmxlIGZpcmV3YWxsIGNvbmZpZ3VyYXRpb25cbiAgICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgICAge2NvbmZpZy5lbmFibGVGaXJld2FsbCAmJiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1sLTYgc3BhY2UteS00XCI+XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMCBtYi0yXCI+QWxsb3dlZCBQb3J0czwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17Y29uZmlnLmFsbG93ZWRQb3J0cy5qb2luKCcsICcpfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRDb25maWcocHJldiA9PiAoeyBcbiAgICAgICAgICAgICAgICAgICAgLi4ucHJldiwgXG4gICAgICAgICAgICAgICAgICAgIGFsbG93ZWRQb3J0czogZS50YXJnZXQudmFsdWUuc3BsaXQoJywnKS5tYXAocCA9PiBwLnRyaW0oKSkuZmlsdGVyKHAgPT4gcClcbiAgICAgICAgICAgICAgICAgIH0pKX1cbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiMjIsIDgwODAsIDgwOTAsIDkxMDAsIDMwMDBcIlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIHAtMyBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbGdcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAge2NvbmZpZ0RhdGE/Lm5ldHdvcmsgJiYgKFxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyZWVuLTYwMCBtdC0xIGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxDaGVja0NpcmNsZUljb24gY2xhc3NOYW1lPVwiaC00IHctNCBtci0xXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgUG9ydHMgYXV0b21hdGljYWxseSBjb25maWd1cmVkIGZyb20gTmV0d29yayBTZXR0aW5nczoge1tcbiAgICAgICAgICAgICAgICAgICAgICBjb25maWdEYXRhLm5ldHdvcmsuYnp6elBvcnQsXG4gICAgICAgICAgICAgICAgICAgICAgY29uZmlnRGF0YS5uZXR3b3JrLm1jcFBvcnQsIFxuICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0RhdGEubmV0d29yay53ZWJVSVBvcnQsXG4gICAgICAgICAgICAgICAgICAgICAgY29uZmlnRGF0YS5uZXR3b3JrLnAycFBvcnRcbiAgICAgICAgICAgICAgICAgICAgXS5maWx0ZXIocCA9PiBwKS5qb2luKCcsICcpfVxuICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNTAwIG10LTFcIj5cbiAgICAgICAgICAgICAgICAgIENvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHBvcnRzIHRvIGFsbG93IHRocm91Z2ggdGhlIGZpcmV3YWxsXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBTZWN1cml0eSBTdW1tYXJ5ICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy1ibHVlLTUwIGJvcmRlciBib3JkZXItYmx1ZS0yMDAgcm91bmRlZC1sZyBwLTRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLXN0YXJ0XCI+XG4gICAgICAgICAgPEV4Y2xhbWF0aW9uVHJpYW5nbGVJY29uIGNsYXNzTmFtZT1cImgtNSB3LTUgdGV4dC1ibHVlLTUwMCBtdC0wLjUgbXItMlwiIC8+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtYmx1ZS04MDBcIj5TZWN1cml0eSBTdW1tYXJ5PC9oND5cbiAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtYmx1ZS03MDAgbXQtMSBzcGFjZS15LTFcIj5cbiAgICAgICAgICAgICAgPGxpPuKAoiBTU0ggYWNjZXNzOiB7Y29uZmlnLnNzaEtleVR5cGUgPT09ICdnZW5lcmF0ZScgPyAnTmV3IGtleSBwYWlyIHdpbGwgYmUgZ2VuZXJhdGVkJyA6IGNvbmZpZy5zc2hLZXlUeXBlID09PSAnZXhpc3RpbmcnID8gJ1VzaW5nIHByb3ZpZGVkIGtleScgOiAnTWFudWFsIGNvbmZpZ3VyYXRpb24nfTwvbGk+XG4gICAgICAgICAgICAgIDxsaT7igKIgVExTIGVuY3J5cHRpb246IHtjb25maWcuZW5hYmxlVExTID8gJ0VuYWJsZWQnIDogJ0Rpc2FibGVkJ308L2xpPlxuICAgICAgICAgICAgICA8bGk+4oCiIEF1dGhlbnRpY2F0aW9uOiB7Y29uZmlnLmF1dGhNZXRob2R9PC9saT5cbiAgICAgICAgICAgICAgPGxpPuKAoiBBY2Nlc3MgcG9saWN5OiB7Y29uZmlnLmFjY2Vzc1BvbGljeX08L2xpPlxuICAgICAgICAgICAgICA8bGk+4oCiIEZpcmV3YWxsOiB7Y29uZmlnLmVuYWJsZUZpcmV3YWxsID8gJ0VuYWJsZWQnIDogJ0Rpc2FibGVkJ308L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBwdC02IGJvcmRlci10IGJvcmRlci1ncmF5LTIwMFwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHtvbkJhY2sgJiYgKFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17b25CYWNrfSBjbGFzc05hbWU9XCJidG4tb3V0bGluZVwiPlxuICAgICAgICAgICAgICBCYWNrXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICB0eXBlPVwic3VibWl0XCIgXG4gICAgICAgICAgZGlzYWJsZWQ9e2NvbmZpZy5zc2hLZXlUeXBlID09PSAnZ2VuZXJhdGUnICYmICFjb25maWcuc3NoUHVibGljS2V5fVxuICAgICAgICAgIGNsYXNzTmFtZT1cImJ0bi1wcmltYXJ5XCJcbiAgICAgICAgPlxuICAgICAgICAgIHtpc0NvbXBsZXRlZCA/ICdDb250aW51ZScgOiAnTmV4dDogQUkgSW50ZWdyYXRpb24nfVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgKVxufSJdLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIlNoaWVsZENoZWNrSWNvbiIsIktleUljb24iLCJMb2NrQ2xvc2VkSWNvbiIsIlNlcnZlckljb24iLCJFeWVJY29uIiwiRXllU2xhc2hJY29uIiwiRG9jdW1lbnREdXBsaWNhdGVJY29uIiwiQ2hlY2tDaXJjbGVJY29uIiwiWENpcmNsZUljb24iLCJFeGNsYW1hdGlvblRyaWFuZ2xlSWNvbiIsIlNlY3VyaXR5U2V0dXAiLCJzeXN0ZW1JbmZvIiwiY29uZmlnRGF0YSIsIm9uQ29tcGxldGUiLCJvbkJhY2siLCJpc0NvbXBsZXRlZCIsImNvbnNvbGUiLCJsb2ciLCJjb25maWciLCJzZXRDb25maWciLCJzc2hLZXlUeXBlIiwic3NoUHVibGljS2V5Iiwic3NoUHJpdmF0ZUtleSIsInNzaFVzZXJuYW1lIiwic3NoUGFzc3dvcmQiLCJzc2hQb3J0IiwiZW5hYmxlVExTIiwidGxzQ2VydFR5cGUiLCJ0bHNDZXJ0UGF0aCIsInRsc0tleVBhdGgiLCJhdXRoTWV0aG9kIiwiY2x1c3RlclNlY3JldCIsImFjY2Vzc1BvbGljeSIsImVuYWJsZUZpcmV3YWxsIiwiYWxsb3dlZFBvcnRzIiwidHJ1c3RlZElQcyIsInNlY3VyaXR5Iiwic2hvd1ByaXZhdGVLZXkiLCJzZXRTaG93UHJpdmF0ZUtleSIsInNob3dDbHVzdGVyU2VjcmV0Iiwic2V0U2hvd0NsdXN0ZXJTZWNyZXQiLCJzaG93U1NIUGFzc3dvcmQiLCJzZXRTaG93U1NIUGFzc3dvcmQiLCJnZW5lcmF0aW5nIiwic2V0R2VuZXJhdGluZyIsInZhbGlkYXRpb24iLCJzZXRWYWxpZGF0aW9uIiwicG9ydHNJbml0aWFsaXplZCIsInNldFBvcnRzSW5pdGlhbGl6ZWQiLCJnZW5lcmF0ZUNsdXN0ZXJTZWNyZXQiLCJoYXNOZXR3b3JrIiwibmV0d29yayIsImhhc1NhdmVkU2VjdXJpdHkiLCJuZXR3b3JrQ29uZmlnIiwibmV0d29ya1BvcnRzIiwiYnp6elBvcnQiLCJ0b1N0cmluZyIsIm1jcFBvcnQiLCJ3ZWJVSVBvcnQiLCJwMnBQb3J0IiwiZmlsdGVyIiwicG9ydCIsInN0YW5kYXJkUG9ydHMiLCJhbGxQb3J0cyIsIlNldCIsInByZXYiLCJzZWNyZXQiLCJBcnJheSIsImZyb20iLCJjcnlwdG8iLCJnZXRSYW5kb21WYWx1ZXMiLCJVaW50OEFycmF5IiwibWFwIiwiYiIsInBhZFN0YXJ0Iiwiam9pbiIsImdlbmVyYXRlU1NIS2V5cyIsIlByb21pc2UiLCJyZXNvbHZlIiwic2V0VGltZW91dCIsIm1vY2tQdWJsaWNLZXkiLCJob3N0bmFtZSIsIm1vY2tQcml2YXRlS2V5Iiwic3NoS2V5cyIsImVycm9yIiwiY29weVRvQ2xpcGJvYXJkIiwidGV4dCIsIm5hdmlnYXRvciIsImNsaXBib2FyZCIsIndyaXRlVGV4dCIsImhhbmRsZVN1Ym1pdCIsImUiLCJwcmV2ZW50RGVmYXVsdCIsIm5ld1ZhbGlkYXRpb24iLCJ0bHNDZXJ0Iiwic3NoQ3JlZGVudGlhbHMiLCJpc1ZhbGlkIiwiT2JqZWN0IiwidmFsdWVzIiwiZXZlcnkiLCJ2IiwiZm9ybSIsIm9uU3VibWl0IiwiY2xhc3NOYW1lIiwiZGl2IiwiaDMiLCJsYWJlbCIsImlucHV0IiwidHlwZSIsInZhbHVlIiwiY2hlY2tlZCIsIm9uQ2hhbmdlIiwidGFyZ2V0IiwiYnV0dG9uIiwib25DbGljayIsImRpc2FibGVkIiwidGV4dGFyZWEiLCJyZWFkT25seSIsInJvd3MiLCJwIiwicGxhY2Vob2xkZXIiLCJoNCIsInN0cm9uZyIsInNwYW4iLCJyZXF1aXJlZCIsInBhcnNlSW50IiwibWluIiwibWF4Iiwic2VsZWN0Iiwib3B0aW9uIiwic3BsaXQiLCJ0cmltIiwidWwiLCJsaSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/setup/components/SecuritySetup.tsx\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./app/setup/components/ServiceDeployment.tsx":
|
|
/*!****************************************************!*\
|
|
!*** ./app/setup/components/ServiceDeployment.tsx ***!
|
|
\****************************************************/
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ ServiceDeployment; }\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 _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CloudArrowDownIcon,Cog6ToothIcon,ComputerDesktopIcon,DocumentTextIcon,ExclamationTriangleIcon,ServerIcon,StopIcon,XCircleIcon,XMarkIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CheckCircleIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CloudArrowDownIcon,Cog6ToothIcon,ComputerDesktopIcon,DocumentTextIcon,ExclamationTriangleIcon,ServerIcon,StopIcon,XCircleIcon,XMarkIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/XCircleIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CloudArrowDownIcon,Cog6ToothIcon,ComputerDesktopIcon,DocumentTextIcon,ExclamationTriangleIcon,ServerIcon,StopIcon,XCircleIcon,XMarkIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ArrowPathIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CloudArrowDownIcon,Cog6ToothIcon,ComputerDesktopIcon,DocumentTextIcon,ExclamationTriangleIcon,ServerIcon,StopIcon,XCircleIcon,XMarkIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/StopIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CloudArrowDownIcon,Cog6ToothIcon,ComputerDesktopIcon,DocumentTextIcon,ExclamationTriangleIcon,ServerIcon,StopIcon,XCircleIcon,XMarkIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ServerIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CloudArrowDownIcon,Cog6ToothIcon,ComputerDesktopIcon,DocumentTextIcon,ExclamationTriangleIcon,ServerIcon,StopIcon,XCircleIcon,XMarkIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ExclamationTriangleIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CloudArrowDownIcon,Cog6ToothIcon,ComputerDesktopIcon,DocumentTextIcon,ExclamationTriangleIcon,ServerIcon,StopIcon,XCircleIcon,XMarkIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CloudArrowDownIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CloudArrowDownIcon,Cog6ToothIcon,ComputerDesktopIcon,DocumentTextIcon,ExclamationTriangleIcon,ServerIcon,StopIcon,XCircleIcon,XMarkIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/DocumentTextIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CloudArrowDownIcon,Cog6ToothIcon,ComputerDesktopIcon,DocumentTextIcon,ExclamationTriangleIcon,ServerIcon,StopIcon,XCircleIcon,XMarkIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ComputerDesktopIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CloudArrowDownIcon,Cog6ToothIcon,ComputerDesktopIcon,DocumentTextIcon,ExclamationTriangleIcon,ServerIcon,StopIcon,XCircleIcon,XMarkIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/XMarkIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CloudArrowDownIcon,Cog6ToothIcon,ComputerDesktopIcon,DocumentTextIcon,ExclamationTriangleIcon,ServerIcon,StopIcon,XCircleIcon,XMarkIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/Cog6ToothIcon.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\nfunction ServiceDeployment(param) {\n let { systemInfo, configData, onComplete, onBack, isCompleted } = param;\n var _configData_network_allowedIPs, _configData_network, _machines_find, _deploymentLogs_showLogs, _machines_find1, _machines_find2, _consoleLogs_showConsole;\n _s();\n const [machines, setMachines] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [isDiscovering, setIsDiscovering] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [discoveryProgress, setDiscoveryProgress] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);\n const [discoveryStatus, setDiscoveryStatus] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [showLogs, setShowLogs] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [deploymentLogs, setDeploymentLogs] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({});\n const [showConsole, setShowConsole] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [consoleLogs, setConsoleLogs] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({});\n const [config, setConfig] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n deploymentMethod: \"systemd\",\n autoStart: true,\n healthCheckInterval: 30,\n selectedMachines: []\n });\n // Initialize with current machine\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n var _systemInfo_network, _configData_network, _systemInfo_storage;\n const currentMachine = {\n id: \"localhost\",\n hostname: (systemInfo === null || systemInfo === void 0 ? void 0 : (_systemInfo_network = systemInfo.network) === null || _systemInfo_network === void 0 ? void 0 : _systemInfo_network.hostname) || \"localhost\",\n ip: (configData === null || configData === void 0 ? void 0 : (_configData_network = configData.network) === null || _configData_network === void 0 ? void 0 : _configData_network.primaryIP) || \"127.0.0.1\",\n os: (systemInfo === null || systemInfo === void 0 ? void 0 : systemInfo.os) || \"linux\",\n osVersion: \"Current Host\",\n sshStatus: \"connected\",\n deployStatus: \"running\",\n selected: true,\n systemInfo: {\n cpu: (systemInfo === null || systemInfo === void 0 ? void 0 : systemInfo.cpu_cores) || 0,\n memory: Math.round(((systemInfo === null || systemInfo === void 0 ? void 0 : systemInfo.memory_mb) || 0) / 1024),\n disk: (systemInfo === null || systemInfo === void 0 ? void 0 : (_systemInfo_storage = systemInfo.storage) === null || _systemInfo_storage === void 0 ? void 0 : _systemInfo_storage.free_space_gb) || 0\n }\n };\n setMachines([\n currentMachine\n ]);\n setConfig((prev)=>({\n ...prev,\n selectedMachines: [\n \"localhost\"\n ]\n }));\n }, [\n systemInfo,\n configData\n ]);\n const discoverMachines = async ()=>{\n setIsDiscovering(true);\n setDiscoveryProgress(0);\n setDiscoveryStatus(\"Initializing network scan...\");\n try {\n var _configData_network_allowedIPs, _configData_network, _configData_security;\n // Simulate progress updates during discovery\n const progressInterval = setInterval(()=>{\n setDiscoveryProgress((prev)=>{\n const newProgress = prev + 10;\n if (newProgress <= 30) {\n setDiscoveryStatus(\"Scanning network subnet...\");\n } else if (newProgress <= 60) {\n setDiscoveryStatus(\"Checking SSH accessibility...\");\n } else if (newProgress <= 90) {\n setDiscoveryStatus(\"Gathering system information...\");\n } else {\n setDiscoveryStatus(\"Finalizing discovery...\");\n }\n return Math.min(newProgress, 95);\n });\n }, 200);\n const response = await fetch(\"/api/setup/discover-machines\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n subnet: (configData === null || configData === void 0 ? void 0 : (_configData_network = configData.network) === null || _configData_network === void 0 ? void 0 : (_configData_network_allowedIPs = _configData_network.allowedIPs) === null || _configData_network_allowedIPs === void 0 ? void 0 : _configData_network_allowedIPs[0]) || \"192.168.1.0/24\",\n sshKey: configData === null || configData === void 0 ? void 0 : (_configData_security = configData.security) === null || _configData_security === void 0 ? void 0 : _configData_security.sshPublicKey\n })\n });\n clearInterval(progressInterval);\n setDiscoveryProgress(100);\n if (response.ok) {\n var _result_machines;\n const result = await response.json();\n setDiscoveryStatus(\"Found \".concat(((_result_machines = result.machines) === null || _result_machines === void 0 ? void 0 : _result_machines.length) || 0, \" machines\"));\n const discoveredMachines = result.machines.map((m)=>({\n id: m.ip,\n hostname: m.hostname || \"Unknown\",\n ip: m.ip,\n os: m.os || \"unknown\",\n osVersion: m.os_version || \"Unknown\",\n sshStatus: \"unknown\",\n deployStatus: \"not_deployed\",\n selected: false,\n lastSeen: new Date().toISOString(),\n systemInfo: m.system_info\n }));\n // Merge with existing machines (keep localhost)\n setMachines((prev)=>{\n const localhost = prev.find((m)=>m.id === \"localhost\");\n return localhost ? [\n localhost,\n ...discoveredMachines\n ] : discoveredMachines;\n });\n } else {\n setDiscoveryStatus(\"Discovery failed - check network configuration\");\n }\n } catch (error) {\n console.error(\"Discovery failed:\", error);\n setDiscoveryStatus(\"Discovery error - network unreachable\");\n } finally{\n setTimeout(()=>{\n setIsDiscovering(false);\n setDiscoveryProgress(0);\n setDiscoveryStatus(\"\");\n }, 2000);\n }\n };\n const testSSHConnection = async (machineId)=>{\n setMachines((prev)=>prev.map((m)=>m.id === machineId ? {\n ...m,\n sshStatus: \"testing\"\n } : m));\n try {\n var _configData_security, _configData_security1, _configData_security2, _configData_security3;\n const machine = machines.find((m)=>m.id === machineId);\n const response = await fetch(\"/api/setup/test-ssh\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n ip: machine === null || machine === void 0 ? void 0 : machine.ip,\n sshKey: configData === null || configData === void 0 ? void 0 : (_configData_security = configData.security) === null || _configData_security === void 0 ? void 0 : _configData_security.sshPrivateKey,\n sshUsername: (configData === null || configData === void 0 ? void 0 : (_configData_security1 = configData.security) === null || _configData_security1 === void 0 ? void 0 : _configData_security1.sshUsername) || \"ubuntu\",\n sshPassword: configData === null || configData === void 0 ? void 0 : (_configData_security2 = configData.security) === null || _configData_security2 === void 0 ? void 0 : _configData_security2.sshPassword,\n sshPort: (configData === null || configData === void 0 ? void 0 : (_configData_security3 = configData.security) === null || _configData_security3 === void 0 ? void 0 : _configData_security3.sshPort) || 22\n })\n });\n const result = await response.json();\n setMachines((prev)=>prev.map((m)=>m.id === machineId ? {\n ...m,\n sshStatus: result.success ? \"connected\" : \"failed\",\n os: result.os || m.os,\n osVersion: result.os_version || m.osVersion,\n systemInfo: result.system_info || m.systemInfo\n } : m));\n } catch (error) {\n setMachines((prev)=>prev.map((m)=>m.id === machineId ? {\n ...m,\n sshStatus: \"failed\"\n } : m));\n }\n };\n const deployToMachine = async (machineId)=>{\n var _machines_find, _machines_find1;\n setMachines((prev)=>prev.map((m)=>m.id === machineId ? {\n ...m,\n deployStatus: \"installing\",\n deployProgress: 0,\n deployStep: \"Initializing deployment...\"\n } : m));\n const logs = [];\n const consoleLogs = [\n \"\\uD83D\\uDE80 Starting deployment to \".concat((_machines_find = machines.find((m)=>m.id === machineId)) === null || _machines_find === void 0 ? void 0 : _machines_find.hostname, \" (\").concat((_machines_find1 = machines.find((m)=>m.id === machineId)) === null || _machines_find1 === void 0 ? void 0 : _machines_find1.ip, \")\")\n ];\n setDeploymentLogs((prev)=>({\n ...prev,\n [machineId]: logs\n }));\n setConsoleLogs((prev)=>({\n ...prev,\n [machineId]: consoleLogs\n }));\n // Open console if not already showing\n if (!showConsole) {\n setShowConsole(machineId);\n }\n // Real-time console logging helper\n const addConsoleLog = (message)=>{\n const timestamp = new Date().toLocaleTimeString();\n const logMessage = \"[\".concat(timestamp, \"] \").concat(message);\n setConsoleLogs((prev)=>({\n ...prev,\n [machineId]: [\n ...prev[machineId] || [],\n logMessage\n ]\n }));\n };\n // Simulate progress updates\n const progressSteps = [\n {\n progress: 10,\n step: \"Establishing SSH connection...\"\n },\n {\n progress: 30,\n step: \"Copying BZZZ binary...\"\n },\n {\n progress: 60,\n step: \"Creating systemd service...\"\n },\n {\n progress: 80,\n step: \"Starting service...\"\n },\n {\n progress: 100,\n step: \"Deployment complete!\"\n }\n ];\n const updateProgress = (stepIndex)=>{\n if (stepIndex < progressSteps.length) {\n const { progress, step } = progressSteps[stepIndex];\n setMachines((prev)=>prev.map((m)=>m.id === machineId ? {\n ...m,\n deployProgress: progress,\n deployStep: step\n } : m));\n logs.push(\"\\uD83D\\uDCE6 \".concat(step));\n addConsoleLog(\"\\uD83D\\uDCE6 \".concat(step));\n setDeploymentLogs((prev)=>({\n ...prev,\n [machineId]: [\n ...prev[machineId] || [],\n \"\\uD83D\\uDCE6 \".concat(step)\n ]\n }));\n }\n };\n try {\n var _configData_security, _configData_security1, _configData_security2, _configData_security3, _configData_network, _configData_network1, _configData_network2, _configData_network3;\n const machine = machines.find((m)=>m.id === machineId);\n addConsoleLog(\"\\uD83D\\uDE80 Starting deployment to \".concat(machine === null || machine === void 0 ? void 0 : machine.hostname, \"...\"));\n addConsoleLog(\"\\uD83D\\uDCE1 Sending deployment request to backend API...\");\n // Set initial progress\n setMachines((prev)=>prev.map((m)=>m.id === machineId ? {\n ...m,\n deployProgress: 10,\n deployStep: \"Contacting backend API...\"\n } : m));\n const response = await fetch(\"/api/setup/deploy-service\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n ip: machine === null || machine === void 0 ? void 0 : machine.ip,\n sshKey: configData === null || configData === void 0 ? void 0 : (_configData_security = configData.security) === null || _configData_security === void 0 ? void 0 : _configData_security.sshPrivateKey,\n sshUsername: (configData === null || configData === void 0 ? void 0 : (_configData_security1 = configData.security) === null || _configData_security1 === void 0 ? void 0 : _configData_security1.sshUsername) || \"ubuntu\",\n sshPassword: configData === null || configData === void 0 ? void 0 : (_configData_security2 = configData.security) === null || _configData_security2 === void 0 ? void 0 : _configData_security2.sshPassword,\n sshPort: (configData === null || configData === void 0 ? void 0 : (_configData_security3 = configData.security) === null || _configData_security3 === void 0 ? void 0 : _configData_security3.sshPort) || 22,\n config: {\n ports: {\n api: (configData === null || configData === void 0 ? void 0 : (_configData_network = configData.network) === null || _configData_network === void 0 ? void 0 : _configData_network.bzzzPort) || 8080,\n mcp: (configData === null || configData === void 0 ? void 0 : (_configData_network1 = configData.network) === null || _configData_network1 === void 0 ? void 0 : _configData_network1.mcpPort) || 3000,\n webui: (configData === null || configData === void 0 ? void 0 : (_configData_network2 = configData.network) === null || _configData_network2 === void 0 ? void 0 : _configData_network2.webUIPort) || 8080,\n p2p: (configData === null || configData === void 0 ? void 0 : (_configData_network3 = configData.network) === null || _configData_network3 === void 0 ? void 0 : _configData_network3.p2pPort) || 7000\n },\n security: configData === null || configData === void 0 ? void 0 : configData.security,\n autoStart: config.autoStart\n }\n })\n });\n const result = await response.json();\n addConsoleLog(\"\\uD83D\\uDCE8 Received response from backend API\");\n if (result.success) {\n setMachines((prev)=>prev.map((m)=>m.id === machineId ? {\n ...m,\n deployStatus: \"running\",\n deployProgress: 100,\n deployStep: \"Running\"\n } : m));\n logs.push(\"✅ Deployment completed successfully\");\n addConsoleLog(\"✅ Deployment completed successfully!\");\n // Show actual backend steps if provided\n if (result.steps) {\n result.steps.forEach((step)=>{\n logs.push(step);\n addConsoleLog(\"\\uD83D\\uDCCB \".concat(step));\n });\n }\n addConsoleLog(\"\\uD83C\\uDF89 CHORUS:agents service is now running on \".concat(machine === null || machine === void 0 ? void 0 : machine.hostname));\n } else {\n setMachines((prev)=>prev.map((m)=>m.id === machineId ? {\n ...m,\n deployStatus: \"error\",\n deployProgress: 0,\n deployStep: \"Failed\"\n } : m));\n logs.push(\"❌ Deployment failed: \".concat(result.error));\n addConsoleLog(\"❌ Deployment failed: \".concat(result.error));\n addConsoleLog(\"\\uD83D\\uDCA1 Note: This was a real backend error, not simulated progress\");\n }\n } catch (error) {\n setMachines((prev)=>prev.map((m)=>m.id === machineId ? {\n ...m,\n deployStatus: \"error\",\n deployProgress: 0,\n deployStep: \"Error\"\n } : m));\n logs.push(\"❌ Deployment error: \".concat(error));\n addConsoleLog(\"❌ Deployment error: \".concat(error));\n }\n setDeploymentLogs((prev)=>({\n ...prev,\n [machineId]: logs\n }));\n };\n const toggleMachineSelection = (machineId)=>{\n setMachines((prev)=>prev.map((m)=>m.id === machineId ? {\n ...m,\n selected: !m.selected\n } : m));\n setConfig((prev)=>({\n ...prev,\n selectedMachines: machines.map((m)=>m.id === machineId ? {\n ...m,\n selected: !m.selected\n } : m).filter((m)=>m.selected).map((m)=>m.id)\n }));\n };\n const deployToSelected = async ()=>{\n const selectedMachines = machines.filter((m)=>m.selected && m.sshStatus === \"connected\");\n for (const machine of selectedMachines){\n if (machine.deployStatus === \"not_deployed\") {\n await deployToMachine(machine.id);\n }\n }\n };\n const removeMachine = (machineId)=>{\n // Don't allow removing localhost\n if (machineId === \"localhost\") return;\n setMachines((prev)=>prev.filter((m)=>m.id !== machineId));\n setConfig((prev)=>({\n ...prev,\n selectedMachines: prev.selectedMachines.filter((id)=>id !== machineId)\n }));\n // Clean up logs for removed machine\n setDeploymentLogs((prev)=>{\n const { [machineId]: removed, ...rest } = prev;\n return rest;\n });\n };\n const getStatusIcon = (status)=>{\n switch(status){\n case \"connected\":\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"h-5 w-5 text-green-500\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 383,\n columnNumber: 32\n }, this);\n case \"failed\":\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"h-5 w-5 text-red-500\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 384,\n columnNumber: 29\n }, this);\n case \"testing\":\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-5 w-5 text-blue-500 animate-spin\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 385,\n columnNumber: 30\n }, this);\n case \"running\":\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"h-5 w-5 text-green-500\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 386,\n columnNumber: 30\n }, this);\n case \"installing\":\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-5 w-5 text-blue-500 animate-spin\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 387,\n columnNumber: 33\n }, this);\n case \"error\":\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"h-5 w-5 text-red-500\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 388,\n columnNumber: 28\n }, this);\n case \"stopped\":\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-5 w-5 text-yellow-500\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 389,\n columnNumber: 30\n }, this);\n default:\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-5 w-5 text-gray-400\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 390,\n columnNumber: 23\n }, this);\n }\n };\n const handleSubmit = (e)=>{\n e.preventDefault();\n onComplete({\n deployment: {\n ...config,\n machines: machines.filter((m)=>m.selected).map((m)=>({\n id: m.id,\n ip: m.ip,\n hostname: m.hostname,\n deployStatus: m.deployStatus\n }))\n }\n });\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: handleSubmit,\n className: \"space-y-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-yellow-50 border border-yellow-200 rounded-lg p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-5 w-5 text-yellow-600 mt-0.5 mr-3 flex-shrink-0\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 415,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-sm font-medium text-yellow-800\",\n children: \"Operating System Support\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 417,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-yellow-700 mt-1\",\n children: [\n \"CHORUS:agents automated deployment supports \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"strong\", {\n children: \"Linux distributions that use systemd by default\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 419,\n columnNumber: 59\n }, this),\n \" (Ubuntu 16+, CentOS 7+, Debian 8+, RHEL 7+, etc.). For other operating systems or init systems, you'll need to manually deploy the CHORUS:agents binary and configure services on your cluster.\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 418,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 416,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 414,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 413,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900 flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 430,\n columnNumber: 13\n }, this),\n \"Machine Discovery\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 429,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: discoverMachines,\n disabled: isDiscovering,\n className: \"btn-outline flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-4 w-4 mr-2 \".concat(isDiscovering ? \"animate-spin\" : \"\")\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 439,\n columnNumber: 13\n }, this),\n isDiscovering ? \"Discovering...\" : \"Discover Machines\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 433,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 428,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-600 mb-4\",\n children: [\n \"Scan network subnet: \",\n (configData === null || configData === void 0 ? void 0 : (_configData_network = configData.network) === null || _configData_network === void 0 ? void 0 : (_configData_network_allowedIPs = _configData_network.allowedIPs) === null || _configData_network_allowedIPs === void 0 ? void 0 : _configData_network_allowedIPs[0]) || \"192.168.1.0/24\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 444,\n columnNumber: 9\n }, this),\n isDiscovering && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm font-medium text-gray-700\",\n children: discoveryStatus\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 452,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm text-gray-500\",\n children: [\n discoveryProgress,\n \"%\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 453,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 451,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full bg-gray-200 rounded-full h-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-bzzz-primary h-2 rounded-full transition-all duration-300 ease-out\",\n style: {\n width: \"\".concat(discoveryProgress, \"%\")\n }\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 456,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 455,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 450,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 427,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900\",\n children: \"Cluster Machines\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 468,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: deployToSelected,\n disabled: machines.filter((m)=>m.selected && m.sshStatus === \"connected\").length === 0,\n className: \"btn-primary flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-4 w-4 mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 475,\n columnNumber: 13\n }, this),\n \"Deploy to Selected\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 469,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 467,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"overflow-x-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"table\", {\n className: \"min-w-full divide-y divide-gray-200\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"thead\", {\n className: \"bg-gray-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tr\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n className: \"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider\",\n children: \"Select\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 484,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n className: \"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider\",\n children: \"Machine\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 487,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n className: \"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider\",\n children: \"Operating System\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 490,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n className: \"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider\",\n children: \"IP Address\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 493,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n className: \"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider\",\n children: \"SSH Status\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 496,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n className: \"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider\",\n children: \"Deploy Status\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 499,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n className: \"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider\",\n children: \"Actions\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 502,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n className: \"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider\",\n children: \"Remove\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 505,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 483,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 482,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tbody\", {\n className: \"bg-white divide-y divide-gray-200\",\n children: machines.map((machine)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tr\", {\n className: machine.selected ? \"bg-blue-50\" : \"\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n className: \"px-6 py-4 whitespace-nowrap\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n checked: machine.selected,\n onChange: ()=>toggleMachineSelection(machine.id),\n className: \"h-4 w-4 text-bzzz-primary focus:ring-bzzz-primary border-gray-300 rounded\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 514,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 513,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n className: \"px-6 py-4 whitespace-nowrap\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-medium text-gray-900\",\n children: machine.hostname\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 523,\n columnNumber: 23\n }, this),\n machine.systemInfo && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-500\",\n children: [\n machine.systemInfo.cpu,\n \" cores • \",\n machine.systemInfo.memory,\n \"GB RAM • \",\n machine.systemInfo.disk,\n \"GB disk\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 525,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 522,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 521,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n className: \"px-6 py-4 whitespace-nowrap\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-900\",\n children: machine.os\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 532,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-500\",\n children: machine.osVersion\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 533,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 531,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n className: \"px-6 py-4 whitespace-nowrap text-sm text-gray-900\",\n children: machine.ip\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 535,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n className: \"px-6 py-4 whitespace-nowrap\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n getStatusIcon(machine.sshStatus),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"ml-2 text-sm text-gray-900 capitalize\",\n children: machine.sshStatus.replace(\"_\", \" \")\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 541,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 539,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 538,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n className: \"px-6 py-4 whitespace-nowrap\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n getStatusIcon(machine.deployStatus),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"ml-2 flex-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-900 capitalize\",\n children: machine.deployStatus.replace(\"_\", \" \")\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 550,\n columnNumber: 25\n }, this),\n machine.deployStatus === \"installing\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-500 mb-1\",\n children: machine.deployStep || \"Deploying...\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 555,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full bg-gray-200 rounded-full h-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-blue-500 h-2 rounded-full transition-all duration-300\",\n style: {\n width: \"\".concat(machine.deployProgress || 0, \"%\")\n }\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 559,\n columnNumber: 31\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 558,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-500 mt-1\",\n children: [\n machine.deployProgress || 0,\n \"%\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 564,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 554,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 549,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 547,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 546,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n className: \"px-6 py-4 whitespace-nowrap text-sm font-medium space-x-2\",\n children: [\n machine.id !== \"localhost\" && machine.sshStatus !== \"connected\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>testSSHConnection(machine.id),\n className: \"text-blue-600 hover:text-blue-900\",\n disabled: machine.sshStatus === \"testing\",\n children: \"Test SSH\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 574,\n columnNumber: 23\n }, this),\n machine.sshStatus === \"connected\" && machine.deployStatus === \"not_deployed\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>deployToMachine(machine.id),\n className: \"text-green-600 hover:text-green-900\",\n children: \"Install\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 585,\n columnNumber: 23\n }, this),\n machine.deployStatus !== \"not_deployed\" && /*#__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)(\"button\", {\n type: \"button\",\n onClick: ()=>setShowLogs(machine.id),\n className: \"text-gray-600 hover:text-gray-900 mr-2\",\n title: \"View deployment logs\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"h-4 w-4 inline\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 602,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 596,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>setShowConsole(machine.id),\n className: \"text-blue-600 hover:text-blue-900\",\n title: \"Open deployment console\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"h-4 w-4 inline\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 610,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 604,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 572,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n className: \"px-6 py-4 whitespace-nowrap text-sm font-medium\",\n children: machine.id !== \"localhost\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>removeMachine(machine.id),\n className: \"text-red-600 hover:text-red-900 p-1 rounded hover:bg-red-50\",\n title: \"Remove machine\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 623,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 617,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 615,\n columnNumber: 19\n }, this)\n ]\n }, machine.id, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 512,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 510,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 481,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 480,\n columnNumber: 9\n }, this),\n machines.length === 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center py-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-12 w-12 text-gray-400 mx-auto mb-4\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 635,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-500\",\n children: 'No machines discovered yet. Click \"Discover Machines\" to scan your network.'\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 636,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 634,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 466,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900 mb-4 flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 644,\n columnNumber: 11\n }, this),\n \"Deployment Configuration\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 643,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-2 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n checked: config.autoStart,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n autoStart: e.target.checked\n })),\n className: \"mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 651,\n columnNumber: 15\n }, this),\n \"Auto-start services after deployment\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 650,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 649,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: \"Health Check Interval (seconds)\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 662,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"number\",\n value: config.healthCheckInterval,\n onChange: (e)=>setConfig((prev)=>({\n ...prev,\n healthCheckInterval: parseInt(e.target.value)\n })),\n min: \"10\",\n max: \"300\",\n className: \"input-field\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 665,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 661,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 648,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 642,\n columnNumber: 7\n }, this),\n showLogs && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white rounded-lg p-6 max-w-2xl w-full max-h-96 overflow-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between items-center mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium\",\n children: [\n \"Deployment Logs - \",\n (_machines_find = machines.find((m)=>m.id === showLogs)) === null || _machines_find === void 0 ? void 0 : _machines_find.hostname\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 682,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowLogs(null),\n className: \"text-gray-400 hover:text-gray-600\",\n children: \"✕\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 683,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 681,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-gray-900 text-green-400 p-4 rounded font-mono text-sm max-h-64 overflow-y-auto\",\n children: ((_deploymentLogs_showLogs = deploymentLogs[showLogs]) === null || _deploymentLogs_showLogs === void 0 ? void 0 : _deploymentLogs_showLogs.map((log, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: log\n }, index, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 689,\n columnNumber: 17\n }, this))) || /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: \"No logs available\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 690,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 687,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 680,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 679,\n columnNumber: 9\n }, this),\n showConsole && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-gray-900 rounded-lg overflow-hidden max-w-4xl w-full max-h-[80vh] flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-gray-800 px-4 py-3 flex justify-between items-center border-b border-gray-700\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CloudArrowDownIcon_Cog6ToothIcon_ComputerDesktopIcon_DocumentTextIcon_ExclamationTriangleIcon_ServerIcon_StopIcon_XCircleIcon_XMarkIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"h-5 w-5 text-green-400 mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 702,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-white\",\n children: [\n \"SSH Console - \",\n (_machines_find1 = machines.find((m)=>m.id === showConsole)) === null || _machines_find1 === void 0 ? void 0 : _machines_find1.hostname\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 703,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"ml-2 text-sm text-gray-400\",\n children: [\n \"(\",\n (_machines_find2 = machines.find((m)=>m.id === showConsole)) === null || _machines_find2 === void 0 ? void 0 : _machines_find2.ip,\n \")\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 706,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 701,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-2 h-2 bg-red-500 rounded-full\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 712,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-2 h-2 bg-yellow-500 rounded-full\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 713,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-2 h-2 bg-green-500 rounded-full\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 714,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 711,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowConsole(null),\n className: \"text-gray-400 hover:text-white ml-4\",\n children: \"✕\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 716,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 710,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 700,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 p-4 font-mono text-sm overflow-y-auto bg-gray-900\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-green-400 space-y-1\",\n children: [\n ((_consoleLogs_showConsole = consoleLogs[showConsole]) === null || _consoleLogs_showConsole === void 0 ? void 0 : _consoleLogs_showConsole.length) > 0 ? consoleLogs[showConsole].map((log, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"whitespace-pre-wrap\",\n children: log\n }, index, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 728,\n columnNumber: 21\n }, this)) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-500\",\n children: \"Waiting for deployment to start...\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 731,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"inline-block w-2 h-4 bg-green-400 animate-pulse\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 734,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 725,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 724,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-gray-800 px-4 py-2 border-t border-gray-700\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-400\",\n children: \"\\uD83D\\uDCA1 This console shows real-time deployment progress and SSH operations\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 738,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 737,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 699,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 698,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between pt-6 border-t border-gray-200\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: onBack && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: onBack,\n className: \"btn-outline\",\n children: \"Back\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 749,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 747,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"submit\",\n className: \"btn-primary\",\n children: isCompleted ? \"Continue\" : \"Next: Cluster Formation\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 754,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 746,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/ServiceDeployment.tsx\",\n lineNumber: 410,\n columnNumber: 5\n }, this);\n}\n_s(ServiceDeployment, \"8nguBveEJzttugixhY9EdurQYho=\");\n_c = ServiceDeployment;\nvar _c;\n$RefreshReg$(_c, \"ServiceDeployment\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9zZXR1cC9jb21wb25lbnRzL1NlcnZpY2VEZXBsb3ltZW50LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUyQztBQWVQO0FBNkJyQixTQUFTYSxrQkFBa0IsS0FNakI7UUFOaUIsRUFDeENDLFVBQVUsRUFDVkMsVUFBVSxFQUNWQyxVQUFVLEVBQ1ZDLE1BQU0sRUFDTkMsV0FBVyxFQUNZLEdBTmlCO1FBOFlWSCxnQ0FBQUEscUJBNk9xQ0ksZ0JBTXREQywwQkFnQmtCRCxpQkFHYkEsaUJBbUJIRTs7SUFocUJmLE1BQU0sQ0FBQ0YsVUFBVUcsWUFBWSxHQUFHdEIsK0NBQVFBLENBQVksRUFBRTtJQUN0RCxNQUFNLENBQUN1QixlQUFlQyxpQkFBaUIsR0FBR3hCLCtDQUFRQSxDQUFDO0lBQ25ELE1BQU0sQ0FBQ3lCLG1CQUFtQkMscUJBQXFCLEdBQUcxQiwrQ0FBUUEsQ0FBQztJQUMzRCxNQUFNLENBQUMyQixpQkFBaUJDLG1CQUFtQixHQUFHNUIsK0NBQVFBLENBQUM7SUFDdkQsTUFBTSxDQUFDNkIsVUFBVUMsWUFBWSxHQUFHOUIsK0NBQVFBLENBQWdCO0lBQ3hELE1BQU0sQ0FBQ29CLGdCQUFnQlcsa0JBQWtCLEdBQUcvQiwrQ0FBUUEsQ0FBNEIsQ0FBQztJQUNqRixNQUFNLENBQUNnQyxhQUFhQyxlQUFlLEdBQUdqQywrQ0FBUUEsQ0FBZ0I7SUFDOUQsTUFBTSxDQUFDcUIsYUFBYWEsZUFBZSxHQUFHbEMsK0NBQVFBLENBQTRCLENBQUM7SUFFM0UsTUFBTSxDQUFDbUMsUUFBUUMsVUFBVSxHQUFHcEMsK0NBQVFBLENBQUM7UUFDbkNxQyxrQkFBa0I7UUFDbEJDLFdBQVc7UUFDWEMscUJBQXFCO1FBQ3JCQyxrQkFBa0IsRUFBRTtJQUN0QjtJQUVBLGtDQUFrQztJQUNsQ3ZDLGdEQUFTQSxDQUFDO1lBR0lhLHFCQUNOQyxxQkFTSUQ7UUFaVixNQUFNMkIsaUJBQTBCO1lBQzlCQyxJQUFJO1lB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Q1csWUFBWSxjQUF4QlgsK0NBQUFBLHlCQUEwQjhELE1BQU0sSUFBRyxJQUNsQzlELFdBQVcsQ0FBQ1csWUFBWSxDQUFDcUQsR0FBRyxDQUFDLENBQUN3RixLQUFLQyxzQkFDakMsOERBQUM1Qjs0Q0FBZ0JQLFdBQVU7c0RBQXVCa0M7MkNBQXhDQzs7OztrRUFHWiw4REFBQzVCO3dDQUFJUCxXQUFVO2tEQUFnQjs7Ozs7O2tEQUdqQyw4REFBQ087d0NBQUlQLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7O3NDQUduQiw4REFBQ087NEJBQUlQLFdBQVU7c0NBQ2IsNEVBQUNPO2dDQUFJUCxXQUFVOzBDQUF3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzswQkFRL0MsOERBQUNPO2dCQUFJUCxXQUFVOztrQ0FDYiw4REFBQ087a0NBQ0VqSSx3QkFDQyw4REFBQ3FJOzRCQUFPQyxNQUFLOzRCQUFTQyxTQUFTdkk7NEJBQVEwSCxXQUFVO3NDQUFjOzs7Ozs7Ozs7OztrQ0FLbkUsOERBQUNXO3dCQUFPQyxNQUFLO3dCQUFTWixXQUFVO2tDQUM3QnpILGNBQWMsYUFBYTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBS3RDO0dBenNCd0JMO0tBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2FwcC9zZXR1cC9jb21wb25lbnRzL1NlcnZpY2VEZXBsb3ltZW50LnRzeD9kNjdmIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBcbiAgU2VydmVySWNvbixcbiAgRXhjbGFtYXRpb25UcmlhbmdsZUljb24sXG4gIENoZWNrQ2lyY2xlSWNvbixcbiAgWENpcmNsZUljb24sXG4gIFBsYXlJY29uLFxuICBTdG9wSWNvbixcbiAgVHJhc2hJY29uLFxuICBEb2N1bWVudFRleHRJY29uLFxuICBBcnJvd1BhdGhJY29uLFxuICBDbG91ZEFycm93RG93bkljb24sXG4gIENvZzZUb290aEljb24sXG4gIFhNYXJrSWNvbixcbiAgQ29tcHV0ZXJEZXNrdG9wSWNvblxufSBmcm9tICdAaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUnXG5cbmludGVyZmFjZSBNYWNoaW5lIHtcbiAgaWQ6IHN0cmluZ1xuICBob3N0bmFtZTogc3RyaW5nXG4gIGlwOiBzdHJpbmdcbiAgb3M6IHN0cmluZ1xuICBvc1ZlcnNpb246IHN0cmluZ1xuICBzc2hTdGF0dXM6ICd1bmtub3duJyB8ICdjb25uZWN0ZWQnIHwgJ2ZhaWxlZCcgfCAndGVzdGluZydcbiAgZGVwbG95U3RhdHVzOiAnbm90X2RlcGxveWVkJyB8ICdpbnN0YWxsaW5nJyB8ICdydW5uaW5nJyB8ICdzdG9wcGVkJyB8ICdlcnJvcidcbiAgc2VsZWN0ZWQ6IGJvb2xlYW5cbiAgbGFzdFNlZW4/OiBzdHJpbmdcbiAgZGVwbG95UHJvZ3Jlc3M/OiBudW1iZXJcbiAgZGVwbG95U3RlcD86IHN0cmluZ1xuICBzeXN0ZW1JbmZvPzoge1xuICAgIGNwdTogbnVtYmVyXG4gICAgbWVtb3J5OiBudW1iZXJcbiAgICBkaXNrOiBudW1iZXJcbiAgfVxufVxuXG5pbnRlcmZhY2UgU2VydmljZURlcGxveW1lbnRQcm9wcyB7XG4gIHN5c3RlbUluZm86IGFueVxuICBjb25maWdEYXRhOiBhbnlcbiAgb25Db21wbGV0ZTogKGRhdGE6IGFueSkgPT4gdm9pZFxuICBvbkJhY2s/OiAoKSA9PiB2b2lkXG4gIGlzQ29tcGxldGVkOiBib29sZWFuXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNlcnZpY2VEZXBsb3ltZW50KHsgXG4gIHN5c3RlbUluZm8sIFxuICBjb25maWdEYXRhLCBcbiAgb25Db21wbGV0ZSwgXG4gIG9uQmFjaywgXG4gIGlzQ29tcGxldGVkIFxufTogU2VydmljZURlcGxveW1lbnRQcm9wcykge1xuICBjb25zdCBbbWFjaGluZXMsIHNldE1hY2hpbmVzXSA9IHVzZVN0YXRlPE1hY2hpbmVbXT4oW10pXG4gIGNvbnN0IFtpc0Rpc2NvdmVyaW5nLCBzZXRJc0Rpc2NvdmVyaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZGlzY292ZXJ5UHJvZ3Jlc3MsIHNldERpc2NvdmVyeVByb2dyZXNzXSA9IHVzZVN0YXRlKDApXG4gIGNvbnN0IFtkaXNjb3ZlcnlTdGF0dXMsIHNldERpc2NvdmVyeVN0YXR1c10gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW3Nob3dMb2dzLCBzZXRTaG93TG9nc10gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBbZGVwbG95bWVudExvZ3MsIHNldERlcGxveW1lbnRMb2dzXSA9IHVzZVN0YXRlPHtba2V5OiBzdHJpbmddOiBzdHJpbmdbXX0+KHt9KVxuICBjb25zdCBbc2hvd0NvbnNvbGUsIHNldFNob3dDb25zb2xlXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtjb25zb2xlTG9ncywgc2V0Q29uc29sZUxvZ3NdID0gdXNlU3RhdGU8e1trZXk6IHN0cmluZ106IHN0cmluZ1tdfT4oe30pXG4gIFxuICBjb25zdCBbY29uZmlnLCBzZXRDb25maWddID0gdXNlU3RhdGUoe1xuICAgIGRlcGxveW1lbnRNZXRob2Q6ICdzeXN0ZW1kJyxcbiAgICBhdXRvU3RhcnQ6IHRydWUsXG4gICAgaGVhbHRoQ2hlY2tJbnRlcnZhbDogMzAsXG4gICAgc2VsZWN0ZWRNYWNoaW5lczogW10gYXMgc3RyaW5nW11cbiAgfSlcblxuICAvLyBJbml0aWFsaXplIHdpdGggY3VycmVudCBtYWNoaW5lXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY3VycmVudE1hY2hpbmU6IE1hY2hpbmUgPSB7XG4gICAgICBpZDogJ2xvY2FsaG9zdCcsXG4gICAgICBob3N0bmFtZTogc3lzdGVtSW5mbz8ubmV0d29yaz8uaG9zdG5hbWUgfHwgJ2xvY2FsaG9zdCcsXG4gICAgICBpcDogY29uZmlnRGF0YT8ubmV0d29yaz8ucHJpbWFyeUlQIHx8ICcxMjcuMC4wLjEnLFxuICAgICAgb3M6IHN5c3RlbUluZm8/Lm9zIHx8ICdsaW51eCcsXG4gICAgICBvc1ZlcnNpb246ICdDdXJyZW50IEhvc3QnLFxuICAgICAgc3NoU3RhdHVzOiAnY29ubmVjdGVkJyxcbiAgICAgIGRlcGxveVN0YXR1czogJ3J1bm5pbmcnLCAvLyBBbHJlYWR5IHJ1bm5pbmcgc2luY2Ugd2UncmUgaW4gc2V0dXBcbiAgICAgIHNlbGVjdGVkOiB0cnVlLFxuICAgICAgc3lzdGVtSW5mbzoge1xuICAgICAgICBjcHU6IHN5c3RlbUluZm8/LmNwdV9jb3JlcyB8fCAwLFxuICAgICAgICBtZW1vcnk6IE1hdGgucm91bmQoKHN5c3RlbUluZm8/Lm1lbW9yeV9tYiB8fCAwKSAvIDEwMjQpLFxuICAgICAgICBkaXNrOiBzeXN0ZW1JbmZvPy5zdG9yYWdlPy5mcmVlX3NwYWNlX2diIHx8IDBcbiAgICAgIH1cbiAgICB9XG4gICAgc2V0TWFjaGluZXMoW2N1cnJlbnRNYWNoaW5lXSlcbiAgICBzZXRDb25maWcocHJldiA9PiAoeyAuLi5wcmV2LCBzZWxlY3RlZE1hY2hpbmVzOiBbJ2xvY2FsaG9zdCddIH0pKVxuICB9LCBbc3lzdGVtSW5mbywgY29uZmlnRGF0YV0pXG5cbiAgY29uc3QgZGlzY292ZXJNYWNoaW5lcyA9IGFzeW5jICgpID0+IHtcbiAgICBzZXRJc0Rpc2NvdmVyaW5nKHRydWUpXG4gICAgc2V0RGlzY292ZXJ5UHJvZ3Jlc3MoMClcbiAgICBzZXREaXNjb3ZlcnlTdGF0dXMoJ0luaXRpYWxpemluZyBuZXR3b3JrIHNjYW4uLi4nKVxuICAgIFxuICAgIHRyeSB7XG4gICAgICAvLyBTaW11bGF0ZSBwcm9ncmVzcyB1cGRhdGVzIGR1cmluZyBkaXNjb3ZlcnlcbiAgICAgIGNvbnN0IHByb2dyZXNzSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgIHNldERpc2NvdmVyeVByb2dyZXNzKHByZXYgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld1Byb2dyZXNzID0gcHJldiArIDEwXG4gICAgICAgICAgaWYgKG5ld1Byb2dyZXNzIDw9IDMwKSB7XG4gICAgICAgICAgICBzZXREaXNjb3ZlcnlTdGF0dXMoJ1NjYW5uaW5nIG5ldHdvcmsgc3VibmV0Li4uJylcbiAgICAgICAgICB9IGVsc2UgaWYgKG5ld1Byb2dyZXNzIDw9IDYwKSB7XG4gICAgICAgICAgICBzZXREaXNjb3ZlcnlTdGF0dXMoJ0NoZWNraW5nIFNTSCBhY2Nlc3NpYmlsaXR5Li4uJylcbiAgICAgICAgICB9IGVsc2UgaWYgKG5ld1Byb2dyZXNzIDw9IDkwKSB7XG4gICAgICAgICAgICBzZXREaXNjb3ZlcnlTdGF0dXMoJ0dhdGhlcmluZyBzeXN0ZW0gaW5mb3JtYXRpb24uLi4nKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXREaXNjb3ZlcnlTdGF0dXMoJ0ZpbmFsaXppbmcgZGlzY292ZXJ5Li4uJylcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIE1hdGgubWluKG5ld1Byb2dyZXNzLCA5NSlcbiAgICAgICAgfSlcbiAgICAgIH0sIDIwMClcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL2FwaS9zZXR1cC9kaXNjb3Zlci1tYWNoaW5lcycsIHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgc3VibmV0OiBjb25maWdEYXRhPy5uZXR3b3JrPy5hbGxvd2VkSVBzPy5bMF0gfHwgJzE5Mi4xNjguMS4wLzI0JyxcbiAgICAgICAgICBzc2hLZXk6IGNvbmZpZ0RhdGE/LnNlY3VyaXR5Py5zc2hQdWJsaWNLZXlcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgICBcbiAgICAgIGNsZWFySW50ZXJ2YWwocHJvZ3Jlc3NJbnRlcnZhbClcbiAgICAgIHNldERpc2NvdmVyeVByb2dyZXNzKDEwMClcbiAgICAgIFxuICAgICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgICAgICBzZXREaXNjb3ZlcnlTdGF0dXMoYEZvdW5kICR7cmVzdWx0Lm1hY2hpbmVzPy5sZW5ndGggfHwgMH0gbWFjaGluZXNgKVxuICAgICAgICBcbiAgICAgICAgY29uc3QgZGlzY292ZXJlZE1hY2hpbmVzOiBNYWNoaW5lW10gPSByZXN1bHQubWFjaGluZXMubWFwKChtOiBhbnkpID0+ICh7XG4gICAgICAgICAgaWQ6IG0uaXAsXG4gICAgICAgICAgaG9zdG5hbWU6IG0uaG9zdG5hbWUgfHwgJ1Vua25vd24nLFxuICAgICAgICAgIGlwOiBtLmlwLFxuICAgICAgICAgIG9zOiBtLm9zIHx8ICd1bmtub3duJyxcbiAgICAgICAgICBvc1ZlcnNpb246IG0ub3NfdmVyc2lvbiB8fCAnVW5rbm93bicsXG4gICAgICAgICAgc3NoU3RhdHVzOiAndW5rbm93bicsXG4gICAgICAgICAgZGVwbG95U3RhdHVzOiAnbm90X2RlcGxveWVkJyxcbiAgICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgICAgbGFzdFNlZW46IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgICBzeXN0ZW1JbmZvOiBtLnN5c3RlbV9pbmZvXG4gICAgICAgIH0pKVxuICAgICAgICBcbiAgICAgICAgLy8gTWVyZ2Ugd2l0aCBleGlzdGluZyBtYWNoaW5lcyAoa2VlcCBsb2NhbGhvc3QpXG4gICAgICAgIHNldE1hY2hpbmVzKHByZXYgPT4ge1xuICAgICAgICAgIGNvbnN0IGxvY2FsaG9zdCA9IHByZXYuZmluZChtID0+IG0uaWQgPT09ICdsb2NhbGhvc3QnKVxuICAgICAgICAgIHJldHVybiBsb2NhbGhvc3QgPyBbbG9jYWxob3N0LCAuLi5kaXNjb3ZlcmVkTWFjaGluZXNdIDogZGlzY292ZXJlZE1hY2hpbmVzXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXREaXNjb3ZlcnlTdGF0dXMoJ0Rpc2NvdmVyeSBmYWlsZWQgLSBjaGVjayBuZXR3b3JrIGNvbmZpZ3VyYXRpb24nKVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdEaXNjb3ZlcnkgZmFpbGVkOicsIGVycm9yKVxuICAgICAgc2V0RGlzY292ZXJ5U3RhdHVzKCdEaXNjb3ZlcnkgZXJyb3IgLSBuZXR3b3JrIHVucmVhY2hhYmxlJylcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldElzRGlzY292ZXJpbmcoZmFsc2UpXG4gICAgICAgIHNldERpc2NvdmVyeVByb2dyZXNzKDApXG4gICAgICAgIHNldERpc2NvdmVyeVN0YXR1cygnJylcbiAgICAgIH0sIDIwMDApXG4gICAgfVxuICB9XG5cbiAgY29uc3QgdGVzdFNTSENvbm5lY3Rpb24gPSBhc3luYyAobWFjaGluZUlkOiBzdHJpbmcpID0+IHtcbiAgICBzZXRNYWNoaW5lcyhwcmV2ID0+IHByZXYubWFwKG0gPT4gXG4gICAgICBtLmlkID09PSBtYWNoaW5lSWQgPyB7IC4uLm0sIHNzaFN0YXR1czogJ3Rlc3RpbmcnIH0gOiBtXG4gICAgKSlcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBtYWNoaW5lID0gbWFjaGluZXMuZmluZChtID0+IG0uaWQgPT09IG1hY2hpbmVJZClcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy9hcGkvc2V0dXAvdGVzdC1zc2gnLCB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGlwOiBtYWNoaW5lPy5pcCxcbiAgICAgICAgICBzc2hLZXk6IGNvbmZpZ0RhdGE/LnNlY3VyaXR5Py5zc2hQcml2YXRlS2V5LFxuICAgICAgICAgIHNzaFVzZXJuYW1lOiBjb25maWdEYXRhPy5zZWN1cml0eT8uc3NoVXNlcm5hbWUgfHwgJ3VidW50dScsXG4gICAgICAgICAgc3NoUGFzc3dvcmQ6IGNvbmZpZ0RhdGE/LnNlY3VyaXR5Py5zc2hQYXNzd29yZCxcbiAgICAgICAgICBzc2hQb3J0OiBjb25maWdEYXRhPy5zZWN1cml0eT8uc3NoUG9ydCB8fCAyMlxuICAgICAgICB9KVxuICAgICAgfSlcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgICBzZXRNYWNoaW5lcyhwcmV2ID0+IHByZXYubWFwKG0gPT4gXG4gICAgICAgIG0uaWQgPT09IG1hY2hpbmVJZCA/IHsgXG4gICAgICAgICAgLi4ubSwgXG4gICAgICAgICAgc3NoU3RhdHVzOiByZXN1bHQuc3VjY2VzcyA/ICdjb25uZWN0ZWQnIDogJ2ZhaWxlZCcsXG4gICAgICAgICAgb3M6IHJlc3VsdC5vcyB8fCBtLm9zLFxuICAgICAgICAgIG9zVmVyc2lvbjogcmVzdWx0Lm9zX3ZlcnNpb24gfHwgbS5vc1ZlcnNpb24sXG4gICAgICAgICAgc3lzdGVtSW5mbzogcmVzdWx0LnN5c3RlbV9pbmZvIHx8IG0uc3lzdGVtSW5mb1xuICAgICAgICB9IDogbVxuICAgICAgKSlcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgc2V0TWFjaGluZXMocHJldiA9PiBwcmV2Lm1hcChtID0+IFxuICAgICAgICBtLmlkID09PSBtYWNoaW5lSWQgPyB7IC4uLm0sIHNzaFN0YXR1czogJ2ZhaWxlZCcgfSA6IG1cbiAgICAgICkpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgZGVwbG95VG9NYWNoaW5lID0gYXN5bmMgKG1hY2hpbmVJZDogc3RyaW5nKSA9PiB7XG4gICAgc2V0TWFjaGluZXMocHJldiA9PiBwcmV2Lm1hcChtID0+IFxuICAgICAgbS5pZCA9PT0gbWFjaGluZUlkID8geyBcbiAgICAgICAgLi4ubSwgXG4gICAgICAgIGRlcGxveVN0YXR1czogJ2luc3RhbGxpbmcnLFxuICAgICAgICBkZXBsb3lQcm9ncmVzczogMCxcbiAgICAgICAgZGVwbG95U3RlcDogJ0luaXRpYWxpemluZyBkZXBsb3ltZW50Li4uJ1xuICAgICAgfSA6IG1cbiAgICApKVxuXG4gICAgY29uc3QgbG9nczogc3RyaW5nW10gPSBbXVxuICAgIGNvbnN0IGNvbnNvbGVMb2dzOiBzdHJpbmdbXSA9IFtg8J+agCBTdGFydGluZyBkZXBsb3ltZW50IHRvICR7bWFjaGluZXMuZmluZChtID0+IG0uaWQgPT09IG1hY2hpbmVJZCk/Lmhvc3RuYW1lfSAoJHttYWNoaW5lcy5maW5kKG0gPT4gbS5pZCA9PT0gbWFjaGluZUlkKT8uaXB9KWBdXG4gICAgc2V0RGVwbG95bWVudExvZ3MocHJldiA9PiAoeyAuLi5wcmV2LCBbbWFjaGluZUlkXTogbG9ncyB9KSlcbiAgICBzZXRDb25zb2xlTG9ncyhwcmV2ID0+ICh7IC4uLnByZXYsIFttYWNoaW5lSWRdOiBjb25zb2xlTG9ncyB9KSlcblxuICAgIC8vIE9wZW4gY29uc29sZSBpZiBub3QgYWxyZWFkeSBzaG93aW5nXG4gICAgaWYgKCFzaG93Q29uc29sZSkge1xuICAgICAgc2V0U2hvd0NvbnNvbGUobWFjaGluZUlkKVxuICAgIH1cblxuICAgIC8vIFJlYWwtdGltZSBjb25zb2xlIGxvZ2dpbmcgaGVscGVyXG4gICAgY29uc3QgYWRkQ29uc29sZUxvZyA9IChtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IG5ldyBEYXRlKCkudG9Mb2NhbGVUaW1lU3RyaW5nKClcbiAgICAgIGNvbnN0IGxvZ01lc3NhZ2UgPSBgWyR7dGltZXN0YW1wfV0gJHttZXNzYWdlfWBcbiAgICAgIHNldENvbnNvbGVMb2dzKHByZXYgPT4gKHsgXG4gICAgICAgIC4uLnByZXYsIFxuICAgICAgICBbbWFjaGluZUlkXTogWy4uLihwcmV2W21hY2hpbmVJZF0gfHwgW10pLCBsb2dNZXNzYWdlXSBcbiAgICAgIH0pKVxuICAgIH1cblxuICAgIC8vIFNpbXVsYXRlIHByb2dyZXNzIHVwZGF0ZXNcbiAgICBjb25zdCBwcm9ncmVzc1N0ZXBzID0gW1xuICAgICAgeyBwcm9ncmVzczogMTAsIHN0ZXA6ICdFc3RhYmxpc2hpbmcgU1NIIGNvbm5lY3Rpb24uLi4nIH0sXG4gICAgICB7IHByb2dyZXNzOiAzMCwgc3RlcDogJ0NvcHlpbmcgQlpaWiBiaW5hcnkuLi4nIH0sXG4gICAgICB7IHByb2dyZXNzOiA2MCwgc3RlcDogJ0NyZWF0aW5nIHN5c3RlbWQgc2VydmljZS4uLicgfSxcbiAgICAgIHsgcHJvZ3Jlc3M6IDgwLCBzdGVwOiAnU3RhcnRpbmcgc2VydmljZS4uLicgfSxcbiAgICAgIHsgcHJvZ3Jlc3M6IDEwMCwgc3RlcDogJ0RlcGxveW1lbnQgY29tcGxldGUhJyB9XG4gICAgXVxuXG4gICAgY29uc3QgdXBkYXRlUHJvZ3Jlc3MgPSAoc3RlcEluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGlmIChzdGVwSW5kZXggPCBwcm9ncmVzc1N0ZXBzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCB7IHByb2dyZXNzLCBzdGVwIH0gPSBwcm9ncmVzc1N0ZXBzW3N0ZXBJbmRleF1cbiAgICAgICAgc2V0TWFjaGluZXMocHJldiA9PiBwcmV2Lm1hcChtID0+IFxuICAgICAgICAgIG0uaWQgPT09IG1hY2hpbmVJZCA/IHsgXG4gICAgICAgICAgICAuLi5tLCBcbiAgICAgICAgICAgIGRlcGxveVByb2dyZXNzOiBwcm9ncmVzcyxcbiAgICAgICAgICAgIGRlcGxveVN0ZXA6IHN0ZXBcbiAgICAgICAgICB9IDogbVxuICAgICAgICApKVxuICAgICAgICBsb2dzLnB1c2goYPCfk6YgJHtzdGVwfWApXG4gICAgICAgIGFkZENvbnNvbGVMb2coYPCfk6YgJHtzdGVwfWApXG4gICAgICAgIHNldERlcGxveW1lbnRMb2dzKHByZXYgPT4gKHsgLi4ucHJldiwgW21hY2hpbmVJZF06IFsuLi4ocHJldlttYWNoaW5lSWRdIHx8IFtdKSwgYPCfk6YgJHtzdGVwfWBdIH0pKVxuICAgICAgfVxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBtYWNoaW5lID0gbWFjaGluZXMuZmluZChtID0+IG0uaWQgPT09IG1hY2hpbmVJZClcbiAgICAgIGFkZENvbnNvbGVMb2coYPCfmoAgU3RhcnRpbmcgZGVwbG95bWVudCB0byAke21hY2hpbmU/Lmhvc3RuYW1lfS4uLmApXG4gICAgICBhZGRDb25zb2xlTG9nKGDwn5OhIFNlbmRpbmcgZGVwbG95bWVudCByZXF1ZXN0IHRvIGJhY2tlbmQgQVBJLi4uYClcbiAgICAgIFxuICAgICAgLy8gU2V0IGluaXRpYWwgcHJvZ3Jlc3NcbiAgICAgIHNldE1hY2hpbmVzKHByZXYgPT4gcHJldi5tYXAobSA9PiBcbiAgICAgICAgbS5pZCA9PT0gbWFjaGluZUlkID8geyBcbiAgICAgICAgICAuLi5tLCBcbiAgICAgICAgICBkZXBsb3lQcm9ncmVzczogMTAsXG4gICAgICAgICAgZGVwbG95U3RlcDogJ0NvbnRhY3RpbmcgYmFja2VuZCBBUEkuLi4nXG4gICAgICAgIH0gOiBtXG4gICAgICApKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL2FwaS9zZXR1cC9kZXBsb3ktc2VydmljZScsIHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgaXA6IG1hY2hpbmU/LmlwLFxuICAgICAgICAgIHNzaEtleTogY29uZmlnRGF0YT8uc2VjdXJpdHk/LnNzaFByaXZhdGVLZXksXG4gICAgICAgICAgc3NoVXNlcm5hbWU6IGNvbmZpZ0RhdGE/LnNlY3VyaXR5Py5zc2hVc2VybmFtZSB8fCAndWJ1bnR1JyxcbiAgICAgICAgICBzc2hQYXNzd29yZDogY29uZmlnRGF0YT8uc2VjdXJpdHk/LnNzaFBhc3N3b3JkLFxuICAgICAgICAgIHNzaFBvcnQ6IGNvbmZpZ0RhdGE/LnNlY3VyaXR5Py5zc2hQb3J0IHx8IDIyLFxuICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgcG9ydHM6IHtcbiAgICAgICAgICAgICAgYXBpOiBjb25maWdEYXRhPy5uZXR3b3JrPy5ienp6UG9ydCB8fCA4MDgwLFxuICAgICAgICAgICAgICBtY3A6IGNvbmZpZ0RhdGE/Lm5ldHdvcms/Lm1jcFBvcnQgfHwgMzAwMCxcbiAgICAgICAgICAgICAgd2VidWk6IGNvbmZpZ0RhdGE/Lm5ldHdvcms/LndlYlVJUG9ydCB8fCA4MDgwLFxuICAgICAgICAgICAgICBwMnA6IGNvbmZpZ0RhdGE/Lm5ldHdvcms/LnAycFBvcnQgfHwgNzAwMFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNlY3VyaXR5OiBjb25maWdEYXRhPy5zZWN1cml0eSxcbiAgICAgICAgICAgIGF1dG9TdGFydDogY29uZmlnLmF1dG9TdGFydFxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgICAgYWRkQ29uc29sZUxvZyhg8J+TqCBSZWNlaXZlZCByZXNwb25zZSBmcm9tIGJhY2tlbmQgQVBJYClcbiAgICAgIFxuICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgIHNldE1hY2hpbmVzKHByZXYgPT4gcHJldi5tYXAobSA9PiBcbiAgICAgICAgICBtLmlkID09PSBtYWNoaW5lSWQgPyB7IFxuICAgICAgICAgICAgLi4ubSwgXG4gICAgICAgICAgICBkZXBsb3lTdGF0dXM6ICdydW5uaW5nJyxcbiAgICAgICAgICAgIGRlcGxveVByb2dyZXNzOiAxMDAsXG4gICAgICAgICAgICBkZXBsb3lTdGVwOiAnUnVubmluZydcbiAgICAgICAgICB9IDogbVxuICAgICAgICApKVxuICAgICAgICBsb2dzLnB1c2goJ+KchSBEZXBsb3ltZW50IGNvbXBsZXRlZCBzdWNjZXNzZnVsbHknKVxuICAgICAgICBhZGRDb25zb2xlTG9nKCfinIUgRGVwbG95bWVudCBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5IScpXG4gICAgICAgIFxuICAgICAgICAvLyBTaG93IGFjdHVhbCBiYWNrZW5kIHN0ZXBzIGlmIHByb3ZpZGVkXG4gICAgICAgIGlmIChyZXN1bHQuc3RlcHMpIHtcbiAgICAgICAgICByZXN1bHQuc3RlcHMuZm9yRWFjaCgoc3RlcDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBsb2dzLnB1c2goc3RlcClcbiAgICAgICAgICAgIGFkZENvbnNvbGVMb2coYPCfk4sgJHtzdGVwfWApXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICBhZGRDb25zb2xlTG9nKGDwn46JIENIT1JVUzphZ2VudHMgc2VydmljZSBpcyBub3cgcnVubmluZyBvbiAke21hY2hpbmU/Lmhvc3RuYW1lfWApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRNYWNoaW5lcyhwcmV2ID0+IHByZXYubWFwKG0gPT4gXG4gICAgICAgICAgbS5pZCA9PT0gbWFjaGluZUlkID8geyBcbiAgICAgICAgICAgIC4uLm0sIFxuICAgICAgICAgICAgZGVwbG95U3RhdHVzOiAnZXJyb3InLFxuICAgICAgICAgICAgZGVwbG95UHJvZ3Jlc3M6IDAsXG4gICAgICAgICAgICBkZXBsb3lTdGVwOiAnRmFpbGVkJ1xuICAgICAgICAgIH0gOiBtXG4gICAgICAgICkpXG4gICAgICAgIGxvZ3MucHVzaChg4p2MIERlcGxveW1lbnQgZmFpbGVkOiAke3Jlc3VsdC5lcnJvcn1gKVxuICAgICAgICBhZGRDb25zb2xlTG9nKGDinYwgRGVwbG95bWVudCBmYWlsZWQ6ICR7cmVzdWx0LmVycm9yfWApXG4gICAgICAgIGFkZENvbnNvbGVMb2coYPCfkqEgTm90ZTogVGhpcyB3YXMgYSByZWFsIGJhY2tlbmQgZXJyb3IsIG5vdCBzaW11bGF0ZWQgcHJvZ3Jlc3NgKVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBzZXRNYWNoaW5lcyhwcmV2ID0+IHByZXYubWFwKG0gPT4gXG4gICAgICAgIG0uaWQgPT09IG1hY2hpbmVJZCA/IHsgXG4gICAgICAgICAgLi4ubSwgXG4gICAgICAgICAgZGVwbG95U3RhdHVzOiAnZXJyb3InLFxuICAgICAgICAgIGRlcGxveVByb2dyZXNzOiAwLFxuICAgICAgICAgIGRlcGxveVN0ZXA6ICdFcnJvcidcbiAgICAgICAgfSA6IG1cbiAgICAgICkpXG4gICAgICBsb2dzLnB1c2goYOKdjCBEZXBsb3ltZW50IGVycm9yOiAke2Vycm9yfWApXG4gICAgICBhZGRDb25zb2xlTG9nKGDinYwgRGVwbG95bWVudCBlcnJvcjogJHtlcnJvcn1gKVxuICAgIH1cblxuICAgIHNldERlcGxveW1lbnRMb2dzKHByZXYgPT4gKHsgLi4ucHJldiwgW21hY2hpbmVJZF06IGxvZ3MgfSkpXG4gIH1cblxuICBjb25zdCB0b2dnbGVNYWNoaW5lU2VsZWN0aW9uID0gKG1hY2hpbmVJZDogc3RyaW5nKSA9PiB7XG4gICAgc2V0TWFjaGluZXMocHJldiA9PiBwcmV2Lm1hcChtID0+IFxuICAgICAgbS5pZCA9PT0gbWFjaGluZUlkID8geyAuLi5tLCBzZWxlY3RlZDogIW0uc2VsZWN0ZWQgfSA6IG1cbiAgICApKVxuICAgIFxuICAgIHNldENvbmZpZyhwcmV2ID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgc2VsZWN0ZWRNYWNoaW5lczogbWFjaGluZXNcbiAgICAgICAgLm1hcChtID0+IG0uaWQgPT09IG1hY2hpbmVJZCA/IHsgLi4ubSwgc2VsZWN0ZWQ6ICFtLnNlbGVjdGVkIH0gOiBtKVxuICAgICAgICAuZmlsdGVyKG0gPT4gbS5zZWxlY3RlZClcbiAgICAgICAgLm1hcChtID0+IG0uaWQpXG4gICAgfSkpXG4gIH1cblxuICBjb25zdCBkZXBsb3lUb1NlbGVjdGVkID0gYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkTWFjaGluZXMgPSBtYWNoaW5lcy5maWx0ZXIobSA9PiBtLnNlbGVjdGVkICYmIG0uc3NoU3RhdHVzID09PSAnY29ubmVjdGVkJylcbiAgICBmb3IgKGNvbnN0IG1hY2hpbmUgb2Ygc2VsZWN0ZWRNYWNoaW5lcykge1xuICAgICAgaWYgKG1hY2hpbmUuZGVwbG95U3RhdHVzID09PSAnbm90X2RlcGxveWVkJykge1xuICAgICAgICBhd2FpdCBkZXBsb3lUb01hY2hpbmUobWFjaGluZS5pZClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCByZW1vdmVNYWNoaW5lID0gKG1hY2hpbmVJZDogc3RyaW5nKSA9PiB7XG4gICAgLy8gRG9uJ3QgYWxsb3cgcmVtb3ZpbmcgbG9jYWxob3N0XG4gICAgaWYgKG1hY2hpbmVJZCA9PT0gJ2xvY2FsaG9zdCcpIHJldHVyblxuICAgIFxuICAgIHNldE1hY2hpbmVzKHByZXYgPT4gcHJldi5maWx0ZXIobSA9PiBtLmlkICE9PSBtYWNoaW5lSWQpKVxuICAgIHNldENvbmZpZyhwcmV2ID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgc2VsZWN0ZWRNYWNoaW5lczogcHJldi5zZWxlY3RlZE1hY2hpbmVzLmZpbHRlcihpZCA9PiBpZCAhPT0gbWFjaGluZUlkKVxuICAgIH0pKVxuICAgIFxuICAgIC8vIENsZWFuIHVwIGxvZ3MgZm9yIHJlbW92ZWQgbWFjaGluZVxuICAgIHNldERlcGxveW1lbnRMb2dzKHByZXYgPT4ge1xuICAgICAgY29uc3QgeyBbbWFjaGluZUlkXTogcmVtb3ZlZCwgLi4ucmVzdCB9ID0gcHJldlxuICAgICAgcmV0dXJuIHJlc3RcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgZ2V0U3RhdHVzSWNvbiA9IChzdGF0dXM6IHN0cmluZykgPT4ge1xuICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICBjYXNlICdjb25uZWN0ZWQnOiByZXR1cm4gPENoZWNrQ2lyY2xlSWNvbiBjbGFzc05hbWU9XCJoLTUgdy01IHRleHQtZ3JlZW4tNTAwXCIgLz5cbiAgICAgIGNhc2UgJ2ZhaWxlZCc6IHJldHVybiA8WENpcmNsZUljb24gY2xhc3NOYW1lPVwiaC01IHctNSB0ZXh0LXJlZC01MDBcIiAvPlxuICAgICAgY2FzZSAndGVzdGluZyc6IHJldHVybiA8QXJyb3dQYXRoSWNvbiBjbGFzc05hbWU9XCJoLTUgdy01IHRleHQtYmx1ZS01MDAgYW5pbWF0ZS1zcGluXCIgLz5cbiAgICAgIGNhc2UgJ3J1bm5pbmcnOiByZXR1cm4gPENoZWNrQ2lyY2xlSWNvbiBjbGFzc05hbWU9XCJoLTUgdy01IHRleHQtZ3JlZW4tNTAwXCIgLz5cbiAgICAgIGNhc2UgJ2luc3RhbGxpbmcnOiByZXR1cm4gPEFycm93UGF0aEljb24gY2xhc3NOYW1lPVwiaC01IHctNSB0ZXh0LWJsdWUtNTAwIGFuaW1hdGUtc3BpblwiIC8+XG4gICAgICBjYXNlICdlcnJvcic6IHJldHVybiA8WENpcmNsZUljb24gY2xhc3NOYW1lPVwiaC01IHctNSB0ZXh0LXJlZC01MDBcIiAvPlxuICAgICAgY2FzZSAnc3RvcHBlZCc6IHJldHVybiA8U3RvcEljb24gY2xhc3NOYW1lPVwiaC01IHctNSB0ZXh0LXllbGxvdy01MDBcIiAvPlxuICAgICAgZGVmYXVsdDogcmV0dXJuIDxTZXJ2ZXJJY29uIGNsYXNzTmFtZT1cImgtNSB3LTUgdGV4dC1ncmF5LTQwMFwiIC8+XG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0ID0gKGU6IFJlYWN0LkZvcm1FdmVudCkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIG9uQ29tcGxldGUoeyBcbiAgICAgIGRlcGxveW1lbnQ6IHtcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICBtYWNoaW5lczogbWFjaGluZXMuZmlsdGVyKG0gPT4gbS5zZWxlY3RlZCkubWFwKG0gPT4gKHtcbiAgICAgICAgICBpZDogbS5pZCxcbiAgICAgICAgICBpcDogbS5pcCxcbiAgICAgICAgICBob3N0bmFtZTogbS5ob3N0bmFtZSxcbiAgICAgICAgICBkZXBsb3lTdGF0dXM6IG0uZGVwbG95U3RhdHVzXG4gICAgICAgIH0pKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxmb3JtIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9IGNsYXNzTmFtZT1cInNwYWNlLXktNlwiPlxuXG4gICAgICB7LyogT1MgU3VwcG9ydCBDYXV0aW9uICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy15ZWxsb3ctNTAgYm9yZGVyIGJvcmRlci15ZWxsb3ctMjAwIHJvdW5kZWQtbGcgcC00XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1zdGFydFwiPlxuICAgICAgICAgIDxFeGNsYW1hdGlvblRyaWFuZ2xlSWNvbiBjbGFzc05hbWU9XCJoLTUgdy01IHRleHQteWVsbG93LTYwMCBtdC0wLjUgbXItMyBmbGV4LXNocmluay0wXCIgLz5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC15ZWxsb3ctODAwXCI+T3BlcmF0aW5nIFN5c3RlbSBTdXBwb3J0PC9oMz5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC15ZWxsb3ctNzAwIG10LTFcIj5cbiAgICAgICAgICAgICAgQ0hPUlVTOmFnZW50cyBhdXRvbWF0ZWQgZGVwbG95bWVudCBzdXBwb3J0cyA8c3Ryb25nPkxpbnV4IGRpc3RyaWJ1dGlvbnMgdGhhdCB1c2Ugc3lzdGVtZCBieSBkZWZhdWx0PC9zdHJvbmc+IChVYnVudHUgMTYrLCBDZW50T1MgNyssIERlYmlhbiA4KywgUkhFTCA3KywgZXRjLikuIFxuICAgICAgICAgICAgICBGb3Igb3RoZXIgb3BlcmF0aW5nIHN5c3RlbXMgb3IgaW5pdCBzeXN0ZW1zLCB5b3UnbGwgbmVlZCB0byBtYW51YWxseSBkZXBsb3kgdGhlIENIT1JVUzphZ2VudHMgYmluYXJ5IGFuZCBjb25maWd1cmUgc2VydmljZXMgb24geW91ciBjbHVzdGVyLlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogTmV0d29yayBEaXNjb3ZlcnkgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItNFwiPlxuICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDAgZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxTZXJ2ZXJJY29uIGNsYXNzTmFtZT1cImgtNiB3LTYgdGV4dC1ienp6LXByaW1hcnkgbXItMlwiIC8+XG4gICAgICAgICAgICBNYWNoaW5lIERpc2NvdmVyeVxuICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBvbkNsaWNrPXtkaXNjb3Zlck1hY2hpbmVzfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2lzRGlzY292ZXJpbmd9XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJidG4tb3V0bGluZSBmbGV4IGl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEFycm93UGF0aEljb24gY2xhc3NOYW1lPXtgaC00IHctNCBtci0yICR7aXNEaXNjb3ZlcmluZyA/ICdhbmltYXRlLXNwaW4nIDogJyd9YH0gLz5cbiAgICAgICAgICAgIHtpc0Rpc2NvdmVyaW5nID8gJ0Rpc2NvdmVyaW5nLi4uJyA6ICdEaXNjb3ZlciBNYWNoaW5lcyd9XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIG1iLTRcIj5cbiAgICAgICAgICBTY2FuIG5ldHdvcmsgc3VibmV0OiB7Y29uZmlnRGF0YT8ubmV0d29yaz8uYWxsb3dlZElQcz8uWzBdIHx8ICcxOTIuMTY4LjEuMC8yNCd9XG4gICAgICAgIDwvcD5cblxuICAgICAgICB7LyogRGlzY292ZXJ5IFByb2dyZXNzICovfVxuICAgICAgICB7aXNEaXNjb3ZlcmluZyAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi00XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi0yXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMFwiPntkaXNjb3ZlcnlTdGF0dXN9PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS01MDBcIj57ZGlzY292ZXJ5UHJvZ3Jlc3N9JTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LWZ1bGwgYmctZ3JheS0yMDAgcm91bmRlZC1mdWxsIGgtMlwiPlxuICAgICAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJnLWJ6enotcHJpbWFyeSBoLTIgcm91bmRlZC1mdWxsIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCBlYXNlLW91dFwiXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IGAke2Rpc2NvdmVyeVByb2dyZXNzfSVgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogTWFjaGluZSBUYWJsZSAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi00XCI+XG4gICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMFwiPkNsdXN0ZXIgTWFjaGluZXM8L2gzPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgb25DbGljaz17ZGVwbG95VG9TZWxlY3RlZH1cbiAgICAgICAgICAgIGRpc2FibGVkPXttYWNoaW5lcy5maWx0ZXIobSA9PiBtLnNlbGVjdGVkICYmIG0uc3NoU3RhdHVzID09PSAnY29ubmVjdGVkJykubGVuZ3RoID09PSAwfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnRuLXByaW1hcnkgZmxleCBpdGVtcy1jZW50ZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxDbG91ZEFycm93RG93bkljb24gY2xhc3NOYW1lPVwiaC00IHctNCBtci0yXCIgLz5cbiAgICAgICAgICAgIERlcGxveSB0byBTZWxlY3RlZFxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm92ZXJmbG93LXgtYXV0b1wiPlxuICAgICAgICAgIDx0YWJsZSBjbGFzc05hbWU9XCJtaW4tdy1mdWxsIGRpdmlkZS15IGRpdmlkZS1ncmF5LTIwMFwiPlxuICAgICAgICAgICAgPHRoZWFkIGNsYXNzTmFtZT1cImJnLWdyYXktNTBcIj5cbiAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgIDx0aCBjbGFzc05hbWU9XCJweC02IHB5LTMgdGV4dC1sZWZ0IHRleHQteHMgZm9udC1tZWRpdW0gdGV4dC1ncmF5LTUwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXJcIj5cbiAgICAgICAgICAgICAgICAgIFNlbGVjdFxuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzTmFtZT1cInB4LTYgcHktMyB0ZXh0LWxlZnQgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LWdyYXktNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlclwiPlxuICAgICAgICAgICAgICAgICAgTWFjaGluZVxuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzTmFtZT1cInB4LTYgcHktMyB0ZXh0LWxlZnQgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LWdyYXktNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlclwiPlxuICAgICAgICAgICAgICAgICAgT3BlcmF0aW5nIFN5c3RlbVxuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzTmFtZT1cInB4LTYgcHktMyB0ZXh0LWxlZnQgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LWdyYXktNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlclwiPlxuICAgICAgICAgICAgICAgICAgSVAgQWRkcmVzc1xuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzTmFtZT1cInB4LTYgcHktMyB0ZXh0LWxlZnQgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LWdyYXktNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlclwiPlxuICAgICAgICAgICAgICAgICAgU1NIIFN0YXR1c1xuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzTmFtZT1cInB4LTYgcHktMyB0ZXh0LWxlZnQgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LWdyYXktNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlclwiPlxuICAgICAgICAgICAgICAgICAgRGVwbG95IFN0YXR1c1xuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzTmFtZT1cInB4LTYgcHktMyB0ZXh0LWxlZnQgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LWdyYXktNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlclwiPlxuICAgICAgICAgICAgICAgICAgQWN0aW9uc1xuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzTmFtZT1cInB4LTYgcHktMyB0ZXh0LWxlZnQgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LWdyYXktNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlclwiPlxuICAgICAgICAgICAgICAgICAgUmVtb3ZlXG4gICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICA8dGJvZHkgY2xhc3NOYW1lPVwiYmctd2hpdGUgZGl2aWRlLXkgZGl2aWRlLWdyYXktMjAwXCI+XG4gICAgICAgICAgICAgIHttYWNoaW5lcy5tYXAoKG1hY2hpbmUpID0+IChcbiAgICAgICAgICAgICAgICA8dHIga2V5PXttYWNoaW5lLmlkfSBjbGFzc05hbWU9e21hY2hpbmUuc2VsZWN0ZWQgPyAnYmctYmx1ZS01MCcgOiAnJ30+XG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwicHgtNiBweS00IHdoaXRlc3BhY2Utbm93cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17bWFjaGluZS5zZWxlY3RlZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4gdG9nZ2xlTWFjaGluZVNlbGVjdGlvbihtYWNoaW5lLmlkKX1cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtYnp6ei1wcmltYXJ5IGZvY3VzOnJpbmctYnp6ei1wcmltYXJ5IGJvcmRlci1ncmF5LTMwMCByb3VuZGVkXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwicHgtNiBweS00IHdoaXRlc3BhY2Utbm93cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDBcIj57bWFjaGluZS5ob3N0bmFtZX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICB7bWFjaGluZS5zeXN0ZW1JbmZvICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LWdyYXktNTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHttYWNoaW5lLnN5c3RlbUluZm8uY3B1fSBjb3JlcyDigKIge21hY2hpbmUuc3lzdGVtSW5mby5tZW1vcnl9R0IgUkFNIOKAoiB7bWFjaGluZS5zeXN0ZW1JbmZvLmRpc2t9R0IgZGlza1xuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT1cInB4LTYgcHktNCB3aGl0ZXNwYWNlLW5vd3JhcFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTkwMFwiPnttYWNoaW5lLm9zfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1ncmF5LTUwMFwiPnttYWNoaW5lLm9zVmVyc2lvbn08L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwicHgtNiBweS00IHdoaXRlc3BhY2Utbm93cmFwIHRleHQtc20gdGV4dC1ncmF5LTkwMFwiPlxuICAgICAgICAgICAgICAgICAgICB7bWFjaGluZS5pcH1cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwicHgtNiBweS00IHdoaXRlc3BhY2Utbm93cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7Z2V0U3RhdHVzSWNvbihtYWNoaW5lLnNzaFN0YXR1cyl9XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibWwtMiB0ZXh0LXNtIHRleHQtZ3JheS05MDAgY2FwaXRhbGl6ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge21hY2hpbmUuc3NoU3RhdHVzLnJlcGxhY2UoJ18nLCAnICcpfVxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT1cInB4LTYgcHktNCB3aGl0ZXNwYWNlLW5vd3JhcFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAge2dldFN0YXR1c0ljb24obWFjaGluZS5kZXBsb3lTdGF0dXMpfVxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWwtMiBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktOTAwIGNhcGl0YWxpemVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge21hY2hpbmUuZGVwbG95U3RhdHVzLnJlcGxhY2UoJ18nLCAnICcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB7bWFjaGluZS5kZXBsb3lTdGF0dXMgPT09ICdpbnN0YWxsaW5nJyAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LWdyYXktNTAwIG1iLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttYWNoaW5lLmRlcGxveVN0ZXAgfHwgJ0RlcGxveWluZy4uLid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LWZ1bGwgYmctZ3JheS0yMDAgcm91bmRlZC1mdWxsIGgtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctYmx1ZS01MDAgaC0yIHJvdW5kZWQtZnVsbCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogYCR7bWFjaGluZS5kZXBsb3lQcm9ncmVzcyB8fCAwfSVgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LWdyYXktNTAwIG10LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttYWNoaW5lLmRlcGxveVByb2dyZXNzIHx8IDB9JVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJweC02IHB5LTQgd2hpdGVzcGFjZS1ub3dyYXAgdGV4dC1zbSBmb250LW1lZGl1bSBzcGFjZS14LTJcIj5cbiAgICAgICAgICAgICAgICAgICAge21hY2hpbmUuaWQgIT09ICdsb2NhbGhvc3QnICYmIG1hY2hpbmUuc3NoU3RhdHVzICE9PSAnY29ubmVjdGVkJyAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0ZXN0U1NIQ29ubmVjdGlvbihtYWNoaW5lLmlkKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtYmx1ZS02MDAgaG92ZXI6dGV4dC1ibHVlLTkwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17bWFjaGluZS5zc2hTdGF0dXMgPT09ICd0ZXN0aW5nJ31cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBUZXN0IFNTSFxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAge21hY2hpbmUuc3NoU3RhdHVzID09PSAnY29ubmVjdGVkJyAmJiBtYWNoaW5lLmRlcGxveVN0YXR1cyA9PT0gJ25vdF9kZXBsb3llZCcgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gZGVwbG95VG9NYWNoaW5lKG1hY2hpbmUuaWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1ncmVlbi02MDAgaG92ZXI6dGV4dC1ncmVlbi05MDBcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEluc3RhbGxcbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIHttYWNoaW5lLmRlcGxveVN0YXR1cyAhPT0gJ25vdF9kZXBsb3llZCcgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaG93TG9ncyhtYWNoaW5lLmlkKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMCBob3Zlcjp0ZXh0LWdyYXktOTAwIG1yLTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIlZpZXcgZGVwbG95bWVudCBsb2dzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPERvY3VtZW50VGV4dEljb24gY2xhc3NOYW1lPVwiaC00IHctNCBpbmxpbmVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaG93Q29uc29sZShtYWNoaW5lLmlkKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1ibHVlLTYwMCBob3Zlcjp0ZXh0LWJsdWUtOTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJPcGVuIGRlcGxveW1lbnQgY29uc29sZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxDb21wdXRlckRlc2t0b3BJY29uIGNsYXNzTmFtZT1cImgtNCB3LTQgaW5saW5lXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJweC02IHB5LTQgd2hpdGVzcGFjZS1ub3dyYXAgdGV4dC1zbSBmb250LW1lZGl1bVwiPlxuICAgICAgICAgICAgICAgICAgICB7bWFjaGluZS5pZCAhPT0gJ2xvY2FsaG9zdCcgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gcmVtb3ZlTWFjaGluZShtYWNoaW5lLmlkKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtcmVkLTYwMCBob3Zlcjp0ZXh0LXJlZC05MDAgcC0xIHJvdW5kZWQgaG92ZXI6YmctcmVkLTUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiUmVtb3ZlIG1hY2hpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxYTWFya0ljb24gY2xhc3NOYW1lPVwiaC00IHctNFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICB7bWFjaGluZXMubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyIHB5LThcIj5cbiAgICAgICAgICAgIDxTZXJ2ZXJJY29uIGNsYXNzTmFtZT1cImgtMTIgdy0xMiB0ZXh0LWdyYXktNDAwIG14LWF1dG8gbWItNFwiIC8+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNTAwXCI+Tm8gbWFjaGluZXMgZGlzY292ZXJlZCB5ZXQuIENsaWNrIFwiRGlzY292ZXIgTWFjaGluZXNcIiB0byBzY2FuIHlvdXIgbmV0d29yay48L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cblxuICAgICAgey8qIERlcGxveW1lbnQgQ29uZmlndXJhdGlvbiAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZFwiPlxuICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwIG1iLTQgZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8Q29nNlRvb3RoSWNvbiBjbGFzc05hbWU9XCJoLTYgdy02IHRleHQtYnp6ei1wcmltYXJ5IG1yLTJcIiAvPlxuICAgICAgICAgIERlcGxveW1lbnQgQ29uZmlndXJhdGlvblxuICAgICAgICA8L2gzPlxuICAgICAgICBcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIGdhcC00XCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2NvbmZpZy5hdXRvU3RhcnR9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRDb25maWcocHJldiA9PiAoeyAuLi5wcmV2LCBhdXRvU3RhcnQ6IGUudGFyZ2V0LmNoZWNrZWQgfSkpfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm1yLTJcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICBBdXRvLXN0YXJ0IHNlcnZpY2VzIGFmdGVyIGRlcGxveW1lbnRcbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDAgbWItMlwiPlxuICAgICAgICAgICAgICBIZWFsdGggQ2hlY2sgSW50ZXJ2YWwgKHNlY29uZHMpXG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICB2YWx1ZT17Y29uZmlnLmhlYWx0aENoZWNrSW50ZXJ2YWx9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Q29uZmlnKHByZXYgPT4gKHsgLi4ucHJldiwgaGVhbHRoQ2hlY2tJbnRlcnZhbDogcGFyc2VJbnQoZS50YXJnZXQudmFsdWUpIH0pKX1cbiAgICAgICAgICAgICAgbWluPVwiMTBcIlxuICAgICAgICAgICAgICBtYXg9XCIzMDBcIlxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbnB1dC1maWVsZFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogTG9ncyBNb2RhbCAqL31cbiAgICAgIHtzaG93TG9ncyAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZml4ZWQgaW5zZXQtMCBiZy1ibGFjayBiZy1vcGFjaXR5LTUwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHotNTBcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJnLXdoaXRlIHJvdW5kZWQtbGcgcC02IG1heC13LTJ4bCB3LWZ1bGwgbWF4LWgtOTYgb3ZlcmZsb3ctYXV0b1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgbWItNFwiPlxuICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LW1lZGl1bVwiPkRlcGxveW1lbnQgTG9ncyAtIHttYWNoaW5lcy5maW5kKG0gPT4gbS5pZCA9PT0gc2hvd0xvZ3MpPy5ob3N0bmFtZX08L2gzPlxuICAgICAgICAgICAgICA8YnV0dG9uIG9uQ2xpY2s9eygpID0+IHNldFNob3dMb2dzKG51bGwpfSBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtZ3JheS02MDBcIj5cbiAgICAgICAgICAgICAgICDinJVcbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctZ3JheS05MDAgdGV4dC1ncmVlbi00MDAgcC00IHJvdW5kZWQgZm9udC1tb25vIHRleHQtc20gbWF4LWgtNjQgb3ZlcmZsb3cteS1hdXRvXCI+XG4gICAgICAgICAgICAgIHtkZXBsb3ltZW50TG9nc1tzaG93TG9nc10/Lm1hcCgobG9nLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgIDxkaXYga2V5PXtpbmRleH0+e2xvZ308L2Rpdj5cbiAgICAgICAgICAgICAgKSkgfHwgPGRpdj5ObyBsb2dzIGF2YWlsYWJsZTwvZGl2Pn1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG5cbiAgICAgIHsvKiBWaXJ0dWFsIENvbnNvbGUgTW9kYWwgKi99XG4gICAgICB7c2hvd0NvbnNvbGUgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpeGVkIGluc2V0LTAgYmctYmxhY2sgYmctb3BhY2l0eS01MCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB6LTUwXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy1ncmF5LTkwMCByb3VuZGVkLWxnIG92ZXJmbG93LWhpZGRlbiBtYXgtdy00eGwgdy1mdWxsIG1heC1oLVs4MHZoXSBmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJnLWdyYXktODAwIHB4LTQgcHktMyBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgYm9yZGVyLWIgYm9yZGVyLWdyYXktNzAwXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8Q29tcHV0ZXJEZXNrdG9wSWNvbiBjbGFzc05hbWU9XCJoLTUgdy01IHRleHQtZ3JlZW4tNDAwIG1yLTJcIiAvPlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtbWVkaXVtIHRleHQtd2hpdGVcIj5cbiAgICAgICAgICAgICAgICAgIFNTSCBDb25zb2xlIC0ge21hY2hpbmVzLmZpbmQobSA9PiBtLmlkID09PSBzaG93Q29uc29sZSk/Lmhvc3RuYW1lfVxuICAgICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibWwtMiB0ZXh0LXNtIHRleHQtZ3JheS00MDBcIj5cbiAgICAgICAgICAgICAgICAgICh7bWFjaGluZXMuZmluZChtID0+IG0uaWQgPT09IHNob3dDb25zb2xlKT8uaXB9KVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0yXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTFcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy0yIGgtMiBiZy1yZWQtNTAwIHJvdW5kZWQtZnVsbFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTIgaC0yIGJnLXllbGxvdy01MDAgcm91bmRlZC1mdWxsXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctMiBoLTIgYmctZ3JlZW4tNTAwIHJvdW5kZWQtZnVsbFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxidXR0b24gXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaG93Q29uc29sZShudWxsKX0gXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUgbWwtNFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAg4pyVXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMSBwLTQgZm9udC1tb25vIHRleHQtc20gb3ZlcmZsb3cteS1hdXRvIGJnLWdyYXktOTAwXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1ncmVlbi00MDAgc3BhY2UteS0xXCI+XG4gICAgICAgICAgICAgICAge2NvbnNvbGVMb2dzW3Nob3dDb25zb2xlXT8ubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGVMb2dzW3Nob3dDb25zb2xlXS5tYXAoKGxvZywgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBjbGFzc05hbWU9XCJ3aGl0ZXNwYWNlLXByZS13cmFwXCI+e2xvZ308L2Rpdj5cbiAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTUwMFwiPldhaXRpbmcgZm9yIGRlcGxveW1lbnQgdG8gc3RhcnQuLi48L2Rpdj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHsvKiBCbGlua2luZyBjdXJzb3IgKi99XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmxpbmUtYmxvY2sgdy0yIGgtNCBiZy1ncmVlbi00MDAgYW5pbWF0ZS1wdWxzZVwiPjwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy1ncmF5LTgwMCBweC00IHB5LTIgYm9yZGVyLXQgYm9yZGVyLWdyYXktNzAwXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LWdyYXktNDAwXCI+XG4gICAgICAgICAgICAgICAg8J+SoSBUaGlzIGNvbnNvbGUgc2hvd3MgcmVhbC10aW1lIGRlcGxveW1lbnQgcHJvZ3Jlc3MgYW5kIFNTSCBvcGVyYXRpb25zXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cblxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBwdC02IGJvcmRlci10IGJvcmRlci1ncmF5LTIwMFwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHtvbkJhY2sgJiYgKFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17b25CYWNrfSBjbGFzc05hbWU9XCJidG4tb3V0bGluZVwiPlxuICAgICAgICAgICAgICBCYWNrXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3NOYW1lPVwiYnRuLXByaW1hcnlcIj5cbiAgICAgICAgICB7aXNDb21wbGV0ZWQgPyAnQ29udGludWUnIDogJ05leHQ6IENsdXN0ZXIgRm9ybWF0aW9uJ31cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gIClcbn0iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJTZXJ2ZXJJY29uIiwiRXhjbGFtYXRpb25UcmlhbmdsZUljb24iLCJDaGVja0NpcmNsZUljb24iLCJYQ2lyY2xlSWNvbiIsIlN0b3BJY29uIiwiRG9jdW1lbnRUZXh0SWNvbiIsIkFycm93UGF0aEljb24iLCJDbG91ZEFycm93RG93bkljb24iLCJDb2c2VG9vdGhJY29uIiwiWE1hcmtJY29uIiwiQ29tcHV0ZXJEZXNrdG9wSWNvbiIsIlNlcnZpY2VEZXBsb3ltZW50Iiwic3lzdGVtSW5mbyIsImNvbmZpZ0RhdGEiLCJvbkNvbXBsZXRlIiwib25CYWNrIiwiaXNDb21wbGV0ZWQiLCJtYWNoaW5lcyIsImRlcGxveW1lbnRMb2dzIiwiY29uc29sZUxvZ3MiLCJzZXRNYWNoaW5lcyIsImlzRGlzY292ZXJpbmciLCJzZXRJc0Rpc2NvdmVyaW5nIiwiZGlzY292ZXJ5UHJvZ3Jlc3MiLCJzZXREaXNjb3ZlcnlQcm9ncmVzcyIsImRpc2NvdmVyeVN0YXR1cyIsInNldERpc2NvdmVyeVN0YXR1cyIsInNob3dMb2dzIiwic2V0U2hvd0xvZ3MiLCJzZXREZXBsb3ltZW50TG9ncyIsInNob3dDb25zb2xlIiwic2V0U2hvd0NvbnNvbGUiLCJzZXRDb25zb2xlTG9ncyIsImNvbmZpZyIsInNldENvbmZpZyIsImRlcGxveW1lbnRNZXRob2QiLCJhdXRvU3RhcnQiLCJoZWFsdGhDaGVja0ludGVydmFsIiwic2VsZWN0ZWRNYWNoaW5lcyIsImN1cnJlbnRNYWNoaW5lIiwiaWQiLCJob3N0bmFtZSIsIm5ldHdvcmsiLCJpcCIsInByaW1hcnlJUCIsIm9zIiwib3NWZXJzaW9uIiwic3NoU3RhdHVzIiwiZGVwbG95U3RhdHVzIiwic2VsZWN0ZWQiLCJjcHUiLCJjcHVfY29yZXMiLCJtZW1vcnkiLCJNYXRoIiwicm91bmQiLCJtZW1vcnlfbWIiLCJkaXNrIiwic3RvcmFnZSIsImZyZWVfc3BhY2VfZ2IiLCJwcmV2IiwiZGlzY292ZXJNYWNoaW5lcyIsInByb2dyZXNzSW50ZXJ2YWwiLCJzZXRJbnRlcnZhbCIsIm5ld1Byb2dyZXNzIiwibWluIiwicmVzcG9uc2UiLCJmZXRjaCIsIm1ldGhvZCIsImhlYWRlcnMiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsInN1Ym5ldCIsImFsbG93ZWRJUHMiLCJzc2hLZXkiLCJzZWN1cml0eSIsInNzaFB1YmxpY0tleSIsImNsZWFySW50ZXJ2YWwiLCJvayIsInJlc3VsdCIsImpzb24iLCJsZW5ndGgiLCJkaXNjb3ZlcmVkTWFjaGluZXMiLCJtYXAiLCJtIiwib3NfdmVyc2lvbiIsImxhc3RTZWVuIiwiRGF0ZSIsInRvSVNPU3RyaW5nIiwic3lzdGVtX2luZm8iLCJsb2NhbGhvc3QiLCJmaW5kIiwiZXJyb3IiLCJjb25zb2xlIiwic2V0VGltZW91dCIsInRlc3RTU0hDb25uZWN0aW9uIiwibWFjaGluZUlkIiwibWFjaGluZSIsInNzaFByaXZhdGVLZXkiLCJzc2hVc2VybmFtZSIsInNzaFBhc3N3b3JkIiwic3NoUG9ydCIsInN1Y2Nlc3MiLCJkZXBsb3lUb01hY2hpbmUiLCJkZXBsb3lQcm9ncmVzcyIsImRlcGxveVN0ZXAiLCJsb2dzIiwiYWRkQ29uc29sZUxvZyIsIm1lc3NhZ2UiLCJ0aW1lc3RhbXAiLCJ0b0xvY2FsZVRpbWVTdHJpbmciLCJsb2dNZXNzYWdlIiwicHJvZ3Jlc3NTdGVwcyIsInByb2dyZXNzIiwic3RlcCIsInVwZGF0ZVByb2dyZXNzIiwic3RlcEluZGV4IiwicHVzaCIsInBvcnRzIiwiYXBpIiwiYnp6elBvcnQiLCJtY3AiLCJtY3BQb3J0Iiwid2VidWkiLCJ3ZWJVSVBvcnQiLCJwMnAiLCJwMnBQb3J0Iiwic3RlcHMiLCJmb3JFYWNoIiwidG9nZ2xlTWFjaGluZVNlbGVjdGlvbiIsImZpbHRlciIsImRlcGxveVRvU2VsZWN0ZWQiLCJyZW1vdmVNYWNoaW5lIiwicmVtb3ZlZCIsInJlc3QiLCJnZXRTdGF0dXNJY29uIiwic3RhdHVzIiwiY2xhc3NOYW1lIiwiaGFuZGxlU3VibWl0IiwiZSIsInByZXZlbnREZWZhdWx0IiwiZGVwbG95bWVudCIsImZvcm0iLCJvblN1Ym1pdCIsImRpdiIsImgzIiwicCIsInN0cm9uZyIsImJ1dHRvbiIsInR5cGUiLCJvbkNsaWNrIiwiZGlzYWJsZWQiLCJzcGFuIiwic3R5bGUiLCJ3aWR0aCIsInRhYmxlIiwidGhlYWQiLCJ0ciIsInRoIiwidGJvZHkiLCJ0ZCIsImlucHV0IiwiY2hlY2tlZCIsIm9uQ2hhbmdlIiwicmVwbGFjZSIsInRpdGxlIiwibGFiZWwiLCJ0YXJnZXQiLCJ2YWx1ZSIsInBhcnNlSW50IiwibWF4IiwibG9nIiwiaW5kZXgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/setup/components/ServiceDeployment.tsx\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./app/setup/components/SystemDetection.tsx":
|
|
/*!**************************************************!*\
|
|
!*** ./app/setup/components/SystemDetection.tsx ***!
|
|
\**************************************************/
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ SystemDetection; }\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 _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CircleStackIcon_CpuChipIcon_ExclamationTriangleIcon_GlobeAltIcon_ServerIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CircleStackIcon,CpuChipIcon,ExclamationTriangleIcon,GlobeAltIcon,ServerIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CheckCircleIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CircleStackIcon_CpuChipIcon_ExclamationTriangleIcon_GlobeAltIcon_ServerIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CircleStackIcon,CpuChipIcon,ExclamationTriangleIcon,GlobeAltIcon,ServerIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ExclamationTriangleIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CircleStackIcon_CpuChipIcon_ExclamationTriangleIcon_GlobeAltIcon_ServerIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CircleStackIcon,CpuChipIcon,ExclamationTriangleIcon,GlobeAltIcon,ServerIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ArrowPathIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CircleStackIcon_CpuChipIcon_ExclamationTriangleIcon_GlobeAltIcon_ServerIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CircleStackIcon,CpuChipIcon,ExclamationTriangleIcon,GlobeAltIcon,ServerIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CpuChipIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CircleStackIcon_CpuChipIcon_ExclamationTriangleIcon_GlobeAltIcon_ServerIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CircleStackIcon,CpuChipIcon,ExclamationTriangleIcon,GlobeAltIcon,ServerIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CircleStackIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CircleStackIcon_CpuChipIcon_ExclamationTriangleIcon_GlobeAltIcon_ServerIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CircleStackIcon,CpuChipIcon,ExclamationTriangleIcon,GlobeAltIcon,ServerIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ServerIcon.js\");\n/* harmony import */ var _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CircleStackIcon_CpuChipIcon_ExclamationTriangleIcon_GlobeAltIcon_ServerIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=ArrowPathIcon,CheckCircleIcon,CircleStackIcon,CpuChipIcon,ExclamationTriangleIcon,GlobeAltIcon,ServerIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/GlobeAltIcon.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\nfunction SystemDetection(param) {\n let { systemInfo, configData, onComplete, onBack, isCompleted } = param;\n _s();\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(!systemInfo);\n const [refreshing, setRefreshing] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [detectedInfo, setDetectedInfo] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(systemInfo);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (!detectedInfo) {\n refreshSystemInfo();\n }\n }, []);\n const refreshSystemInfo = async ()=>{\n setRefreshing(true);\n try {\n const response = await fetch(\"/api/setup/system\");\n if (response.ok) {\n const result = await response.json();\n setDetectedInfo(result.system_info);\n }\n } catch (error) {\n console.error(\"Failed to detect system info:\", error);\n } finally{\n setLoading(false);\n setRefreshing(false);\n }\n };\n const handleContinue = ()=>{\n if (detectedInfo) {\n onComplete({\n system: detectedInfo,\n validated: true\n });\n }\n };\n const getStatusColor = (condition)=>{\n return condition ? \"text-green-600\" : \"text-red-600\";\n };\n const getStatusIcon = (condition)=>{\n return condition ? _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CircleStackIcon_CpuChipIcon_ExclamationTriangleIcon_GlobeAltIcon_ServerIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__[\"default\"] : _barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CircleStackIcon_CpuChipIcon_ExclamationTriangleIcon_GlobeAltIcon_ServerIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n };\n if (loading) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-center py-12\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CircleStackIcon_CpuChipIcon_ExclamationTriangleIcon_GlobeAltIcon_ServerIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-8 w-8 text-bzzz-primary animate-spin mx-auto mb-4\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 108,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600\",\n children: \"Detecting system configuration...\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 109,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 107,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 106,\n columnNumber: 7\n }, this);\n }\n if (!detectedInfo) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center py-12\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CircleStackIcon_CpuChipIcon_ExclamationTriangleIcon_GlobeAltIcon_ServerIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"h-12 w-12 text-red-500 mx-auto mb-4\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 118,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900 mb-2\",\n children: \"System Detection Failed\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 119,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600 mb-4\",\n children: \"Unable to detect system configuration. Please try again.\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 122,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: refreshSystemInfo,\n disabled: refreshing,\n className: \"btn-primary\",\n children: refreshing ? \"Retrying...\" : \"Retry Detection\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 125,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 117,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-gray-50 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900\",\n children: \"System Overview\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 141,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: refreshSystemInfo,\n disabled: refreshing,\n className: \"text-bzzz-primary hover:text-bzzz-primary/80 transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CircleStackIcon_CpuChipIcon_ExclamationTriangleIcon_GlobeAltIcon_ServerIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-5 w-5 \".concat(refreshing ? \"animate-spin\" : \"\")\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 147,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 142,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 140,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-2 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-medium text-gray-700\",\n children: \"Hostname\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 153,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg text-gray-900\",\n children: detectedInfo.network.hostname\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 154,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 152,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-medium text-gray-700\",\n children: \"Operating System\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 157,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg text-gray-900\",\n children: [\n detectedInfo.os,\n \" (\",\n detectedInfo.architecture,\n \")\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 158,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 156,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 151,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 139,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-2 gap-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white border border-gray-200 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CircleStackIcon_CpuChipIcon_ExclamationTriangleIcon_GlobeAltIcon_ServerIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 170,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900\",\n children: \"CPU & Memory\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 171,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 169,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-medium text-gray-700\",\n children: \"CPU\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 176,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-900\",\n children: [\n detectedInfo.cpu_cores,\n \" cores\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 177,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 175,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-medium text-gray-700\",\n children: \"Memory\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 182,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-900\",\n children: [\n Math.round(detectedInfo.memory_mb / 1024),\n \" GB total\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 183,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 181,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 174,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 168,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white border border-gray-200 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CircleStackIcon_CpuChipIcon_ExclamationTriangleIcon_GlobeAltIcon_ServerIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 193,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900\",\n children: \"Storage\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 194,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 192,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-medium text-gray-700\",\n children: \"Disk Space\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 199,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-900\",\n children: [\n detectedInfo.storage.total_space_gb,\n \" GB total, \",\n \" \",\n detectedInfo.storage.free_space_gb,\n \" GB available\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 200,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 198,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full bg-gray-200 rounded-full h-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-bzzz-primary h-2 rounded-full\",\n style: {\n width: \"\".concat((detectedInfo.storage.total_space_gb - detectedInfo.storage.free_space_gb) / detectedInfo.storage.total_space_gb * 100, \"%\")\n }\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 206,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 205,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 197,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 191,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 166,\n columnNumber: 7\n }, this),\n detectedInfo.gpus && detectedInfo.gpus.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white border border-gray-200 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CircleStackIcon_CpuChipIcon_ExclamationTriangleIcon_GlobeAltIcon_ServerIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 221,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900\",\n children: [\n \"GPU Configuration (\",\n detectedInfo.gpus.length,\n \" GPU\",\n detectedInfo.gpus.length !== 1 ? \"s\" : \"\",\n \")\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 222,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 220,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-2 gap-4\",\n children: detectedInfo.gpus.map((gpu, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-gray-50 rounded-lg p-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"font-medium text-gray-900\",\n children: gpu.name\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 230,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600\",\n children: [\n gpu.type.toUpperCase(),\n \" • \",\n gpu.memory,\n \" • \",\n gpu.driver\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 231,\n columnNumber: 17\n }, this)\n ]\n }, index, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 229,\n columnNumber: 15\n }, this))\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 227,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 219,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white border border-gray-200 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ArrowPathIcon_CheckCircleIcon_CircleStackIcon_CpuChipIcon_ExclamationTriangleIcon_GlobeAltIcon_ServerIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 243,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900\",\n children: \"Network Configuration\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 244,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 242,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-medium text-gray-700\",\n children: \"Hostname\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 249,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-900\",\n children: detectedInfo.network.hostname\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 250,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 248,\n columnNumber: 11\n }, this),\n detectedInfo.network.private_ips && detectedInfo.network.private_ips.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-medium text-gray-700 mb-2\",\n children: \"Private IP Addresses\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 255,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: detectedInfo.network.private_ips.map((ip, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between items-center text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: ip\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 259,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"status-indicator status-online\",\n children: \"active\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 260,\n columnNumber: 21\n }, this)\n ]\n }, index, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 258,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 256,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 254,\n columnNumber: 13\n }, this),\n detectedInfo.network.public_ip && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-medium text-gray-700\",\n children: \"Public IP\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 269,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-900\",\n children: detectedInfo.network.public_ip\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 270,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 268,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 247,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 241,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white border border-gray-200 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900 mb-4\",\n children: \"Software Requirements\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 278,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n {\n name: \"Docker\",\n installed: detectedInfo.docker.available,\n version: detectedInfo.docker.version,\n required: true\n },\n {\n name: \"Docker Compose\",\n installed: detectedInfo.docker.compose_available,\n version: undefined,\n required: false\n },\n {\n name: \"Docker Swarm\",\n installed: detectedInfo.docker.swarm_mode,\n version: undefined,\n required: false\n }\n ].map((software, index)=>{\n const StatusIcon = getStatusIcon(software.installed);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(StatusIcon, {\n className: \"h-5 w-5 mr-3 \".concat(getStatusColor(software.installed))\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 305,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"font-medium text-gray-900\",\n children: software.name\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 307,\n columnNumber: 21\n }, this),\n software.version && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600\",\n children: [\n \"Version: \",\n software.version\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 309,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 306,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 304,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n software.required && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs bg-bzzz-primary text-white px-2 py-1 rounded mr-2\",\n children: \"Required\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 315,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm font-medium \".concat(getStatusColor(software.installed)),\n children: software.installed ? \"Installed\" : \"Missing\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 319,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 313,\n columnNumber: 17\n }, this)\n ]\n }, index, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 303,\n columnNumber: 15\n }, this);\n })\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 280,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 277,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-blue-50 border border-blue-200 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-blue-900 mb-4\",\n children: \"System Validation\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 331,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: [\n {\n check: \"Minimum memory (2GB required)\",\n passed: detectedInfo.memory_mb >= 2048,\n warning: detectedInfo.memory_mb < 4096\n },\n {\n check: \"Available disk space (10GB required)\",\n passed: detectedInfo.storage.free_space_gb >= 10\n },\n {\n check: \"Docker installed and running\",\n passed: detectedInfo.docker.available\n }\n ].map((validation, index)=>{\n const StatusIcon = getStatusIcon(validation.passed);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(StatusIcon, {\n className: \"h-4 w-4 mr-3 \".concat(validation.passed ? \"text-green-600\" : \"text-red-600\")\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 352,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm \".concat(validation.passed ? \"text-green-800\" : \"text-red-800\"),\n children: [\n validation.check,\n validation.warning && validation.passed && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-yellow-600 ml-2\",\n children: \"(Warning: Recommend 4GB+)\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 364,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 357,\n columnNumber: 17\n }, this)\n ]\n }, index, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 351,\n columnNumber: 15\n }, this);\n })\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 333,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 330,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between pt-6 border-t border-gray-200\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: onBack && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: onBack,\n className: \"btn-outline\",\n children: \"Back\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 377,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 375,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex space-x-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: refreshSystemInfo,\n disabled: refreshing,\n className: \"btn-outline\",\n children: refreshing ? \"Refreshing...\" : \"Refresh\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 384,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: handleContinue,\n className: \"btn-primary\",\n disabled: !detectedInfo.docker.available,\n children: isCompleted ? \"Continue\" : \"Next: Repository Setup\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 392,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 383,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 374,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/SystemDetection.tsx\",\n lineNumber: 137,\n columnNumber: 5\n }, this);\n}\n_s(SystemDetection, \"yfmP3VB+vbee8v83bAp42CcivMk=\");\n_c = SystemDetection;\nvar _c;\n$RefreshReg$(_c, \"SystemDetection\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9zZXR1cC9jb21wb25lbnRzL1N5c3RlbURldGVjdGlvbi50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUUyQztBQVNQO0FBeUNyQixTQUFTUyxnQkFBZ0IsS0FNakI7UUFOaUIsRUFDdENDLFVBQVUsRUFDVkMsVUFBVSxFQUNWQyxVQUFVLEVBQ1ZDLE1BQU0sRUFDTkMsV0FBVyxFQUNVLEdBTmlCOztJQU90QyxNQUFNLENBQUNDLFNBQVNDLFdBQVcsR0FBR2hCLCtDQUFRQSxDQUFDLENBQUNVO0lBQ3hDLE1BQU0sQ0FBQ08sWUFBWUMsY0FBYyxHQUFHbEIsK0NBQVFBLENBQUM7SUFDN0MsTUFBTSxDQUFDbUIsY0FBY0MsZ0JBQWdCLEdBQUdwQiwrQ0FBUUEsQ0FBb0JVO0lBRXBFVCxnREFBU0EsQ0FBQztRQUNSLElBQUksQ0FBQ2tCLGNBQWM7WUFDakJFO1FBQ0Y7SUFDRixHQUFHLEVBQUU7SUFFTCxNQUFNQSxvQkFBb0I7UUFDeEJILGNBQWM7UUFDZCxJQUFJO1lBQ0YsTUFBTUksV0FBVyxNQUFNQyxNQUFNO1lBQzdCLElBQUlELFNBQVNFLEVBQUUsRUFBRTtnQkFDZixNQUFNQyxTQUFTLE1BQU1ILFNBQVNJLElBQUk7Z0JBQ2xDTixnQkFBZ0JLLE9BQU9FLFdBQVc7WUFDcEM7UUFDRixFQUFFLE9BQU9DLE9BQU87WUFDZEMsUUFBUUQsS0FBSyxDQUFDLGlDQUFpQ0E7UUFDakQsU0FBVTtZQUNSWixXQUFXO1lBQ1hFLGNBQWM7UUFDaEI7SUFDRjtJQUVBLE1BQU1ZLGlCQUFpQjtRQUNyQixJQUFJWCxjQUFjO1lBQ2hCUCxXQUFXO2dCQUNUbUIsUUFBUVo7Z0JBQ1JhLFdBQVc7WUFDYjtRQUNGO0lBQ0Y7SUFHQSxNQUFNQyxpQkFBaUIsQ0FBQ0M7UUFDdEIsT0FBT0EsWUFBWSxtQkFBbUI7SUFDeEM7SUFFQSxNQUFNQyxnQkFBZ0IsQ0FBQ0Q7UUFDckIsT0FBT0EsWUFBWTVCLG1NQUFlQSxHQUFHQyxt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YWNrOi8vX05fRS8uL2FwcC9zZXR1cC9jb21wb25lbnRzL1N5c3RlbURldGVjdGlvbi50c3g/MzI1ZCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgXG4gIENwdUNoaXBJY29uLCBcbiAgU2VydmVySWNvbiwgXG4gIENpcmNsZVN0YWNrSWNvbixcbiAgR2xvYmVBbHRJY29uLFxuICBDaGVja0NpcmNsZUljb24sXG4gIEV4Y2xhbWF0aW9uVHJpYW5nbGVJY29uLFxuICBBcnJvd1BhdGhJY29uXG59IGZyb20gJ0BoZXJvaWNvbnMvcmVhY3QvMjQvb3V0bGluZSdcblxuaW50ZXJmYWNlIFN5c3RlbUluZm8ge1xuICBvczogc3RyaW5nXG4gIGFyY2hpdGVjdHVyZTogc3RyaW5nXG4gIGNwdV9jb3JlczogbnVtYmVyXG4gIG1lbW9yeV9tYjogbnVtYmVyXG4gIGdwdXM6IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmdcbiAgICBtZW1vcnk6IHN0cmluZ1xuICAgIGRyaXZlcjogc3RyaW5nXG4gICAgdHlwZTogc3RyaW5nXG4gIH0+XG4gIG5ldHdvcms6IHtcbiAgICBob3N0bmFtZTogc3RyaW5nXG4gICAgaW50ZXJmYWNlczogc3RyaW5nW11cbiAgICBwdWJsaWNfaXA/OiBzdHJpbmdcbiAgICBwcml2YXRlX2lwczogc3RyaW5nW11cbiAgICBkb2NrZXJfYnJpZGdlPzogc3RyaW5nXG4gIH1cbiAgc3RvcmFnZToge1xuICAgIHRvdGFsX3NwYWNlX2diOiBudW1iZXJcbiAgICBmcmVlX3NwYWNlX2diOiBudW1iZXJcbiAgICBtb3VudF9wYXRoOiBzdHJpbmdcbiAgfVxuICBkb2NrZXI6IHtcbiAgICBhdmFpbGFibGU6IGJvb2xlYW5cbiAgICB2ZXJzaW9uPzogc3RyaW5nXG4gICAgY29tcG9zZV9hdmFpbGFibGU6IGJvb2xlYW5cbiAgICBzd2FybV9tb2RlOiBib29sZWFuXG4gIH1cbn1cblxuaW50ZXJmYWNlIFN5c3RlbURldGVjdGlvblByb3BzIHtcbiAgc3lzdGVtSW5mbzogU3lzdGVtSW5mbyB8IG51bGxcbiAgY29uZmlnRGF0YTogYW55XG4gIG9uQ29tcGxldGU6IChkYXRhOiBhbnkpID0+IHZvaWRcbiAgb25CYWNrPzogKCkgPT4gdm9pZFxuICBpc0NvbXBsZXRlZDogYm9vbGVhblxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTeXN0ZW1EZXRlY3Rpb24oeyBcbiAgc3lzdGVtSW5mbywgXG4gIGNvbmZpZ0RhdGEsIFxuICBvbkNvbXBsZXRlLCBcbiAgb25CYWNrLCBcbiAgaXNDb21wbGV0ZWQgXG59OiBTeXN0ZW1EZXRlY3Rpb25Qcm9wcykge1xuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZSghc3lzdGVtSW5mbylcbiAgY29uc3QgW3JlZnJlc2hpbmcsIHNldFJlZnJlc2hpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtkZXRlY3RlZEluZm8sIHNldERldGVjdGVkSW5mb10gPSB1c2VTdGF0ZTxTeXN0ZW1JbmZvIHwgbnVsbD4oc3lzdGVtSW5mbylcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZGV0ZWN0ZWRJbmZvKSB7XG4gICAgICByZWZyZXNoU3lzdGVtSW5mbygpXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCByZWZyZXNoU3lzdGVtSW5mbyA9IGFzeW5jICgpID0+IHtcbiAgICBzZXRSZWZyZXNoaW5nKHRydWUpXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy9hcGkvc2V0dXAvc3lzdGVtJylcbiAgICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICAgICAgc2V0RGV0ZWN0ZWRJbmZvKHJlc3VsdC5zeXN0ZW1faW5mbylcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGRldGVjdCBzeXN0ZW0gaW5mbzonLCBlcnJvcilcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIHNldFJlZnJlc2hpbmcoZmFsc2UpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ29udGludWUgPSAoKSA9PiB7XG4gICAgaWYgKGRldGVjdGVkSW5mbykge1xuICAgICAgb25Db21wbGV0ZSh7XG4gICAgICAgIHN5c3RlbTogZGV0ZWN0ZWRJbmZvLFxuICAgICAgICB2YWxpZGF0ZWQ6IHRydWVcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cblxuICBjb25zdCBnZXRTdGF0dXNDb2xvciA9IChjb25kaXRpb246IGJvb2xlYW4pID0+IHtcbiAgICByZXR1cm4gY29uZGl0aW9uID8gJ3RleHQtZ3JlZW4tNjAwJyA6ICd0ZXh0LXJlZC02MDAnXG4gIH1cblxuICBjb25zdCBnZXRTdGF0dXNJY29uID0gKGNvbmRpdGlvbjogYm9vbGVhbikgPT4ge1xuICAgIHJldHVybiBjb25kaXRpb24gPyBDaGVja0NpcmNsZUljb24gOiBFeGNsYW1hdGlvblRyaWFuZ2xlSWNvblxuICB9XG5cbiAgaWYgKGxvYWRpbmcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweS0xMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyXCI+XG4gICAgICAgICAgPEFycm93UGF0aEljb24gY2xhc3NOYW1lPVwiaC04IHctOCB0ZXh0LWJ6enotcHJpbWFyeSBhbmltYXRlLXNwaW4gbXgtYXV0byBtYi00XCIgLz5cbiAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNjAwXCI+RGV0ZWN0aW5nIHN5c3RlbSBjb25maWd1cmF0aW9uLi4uPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIGlmICghZGV0ZWN0ZWRJbmZvKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXIgcHktMTJcIj5cbiAgICAgICAgPEV4Y2xhbWF0aW9uVHJpYW5nbGVJY29uIGNsYXNzTmFtZT1cImgtMTIgdy0xMiB0ZXh0LXJlZC01MDAgbXgtYXV0byBtYi00XCIgLz5cbiAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBtYi0yXCI+XG4gICAgICAgICAgU3lzdGVtIERldGVjdGlvbiBGYWlsZWRcbiAgICAgICAgPC9oMz5cbiAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMCBtYi00XCI+XG4gICAgICAgICAgVW5hYmxlIHRvIGRldGVjdCBzeXN0ZW0gY29uZmlndXJhdGlvbi4gUGxlYXNlIHRyeSBhZ2Fpbi5cbiAgICAgICAgPC9wPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgb25DbGljaz17cmVmcmVzaFN5c3RlbUluZm99XG4gICAgICAgICAgZGlzYWJsZWQ9e3JlZnJlc2hpbmd9XG4gICAgICAgICAgY2xhc3NOYW1lPVwiYnRuLXByaW1hcnlcIlxuICAgICAgICA+XG4gICAgICAgICAge3JlZnJlc2hpbmcgPyAnUmV0cnlpbmcuLi4nIDogJ1JldHJ5IERldGVjdGlvbid9XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktNlwiPlxuICAgICAgey8qIFN5c3RlbSBPdmVydmlldyAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctZ3JheS01MCByb3VuZGVkLWxnIHAtNlwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi00XCI+XG4gICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMFwiPlN5c3RlbSBPdmVydmlldzwvaDM+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgb25DbGljaz17cmVmcmVzaFN5c3RlbUluZm99XG4gICAgICAgICAgICBkaXNhYmxlZD17cmVmcmVzaGluZ31cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtYnp6ei1wcmltYXJ5IGhvdmVyOnRleHQtYnp6ei1wcmltYXJ5LzgwIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QXJyb3dQYXRoSWNvbiBjbGFzc05hbWU9e2BoLTUgdy01ICR7cmVmcmVzaGluZyA/ICdhbmltYXRlLXNwaW4nIDogJyd9YH0gLz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTIgZ2FwLTRcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDBcIj5Ib3N0bmFtZTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWxnIHRleHQtZ3JheS05MDBcIj57ZGV0ZWN0ZWRJbmZvLm5ldHdvcmsuaG9zdG5hbWV9PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktNzAwXCI+T3BlcmF0aW5nIFN5c3RlbTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWxnIHRleHQtZ3JheS05MDBcIj5cbiAgICAgICAgICAgICAge2RldGVjdGVkSW5mby5vc30gKHtkZXRlY3RlZEluZm8uYXJjaGl0ZWN0dXJlfSlcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogSGFyZHdhcmUgSW5mb3JtYXRpb24gKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTIgZ2FwLTZcIj5cbiAgICAgICAgey8qIENQVSAmIE1lbW9yeSAqL31cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQtbGcgcC02XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBtYi00XCI+XG4gICAgICAgICAgICA8Q3B1Q2hpcEljb24gY2xhc3NOYW1lPVwiaC02IHctNiB0ZXh0LWJ6enotcHJpbWFyeSBtci0yXCIgLz5cbiAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDBcIj5DUFUgJiBNZW1vcnk8L2gzPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0zXCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMFwiPkNQVTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtZ3JheS05MDBcIj5cbiAgICAgICAgICAgICAgICB7ZGV0ZWN0ZWRJbmZvLmNwdV9jb3Jlc30gY29yZXNcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktNzAwXCI+TWVtb3J5PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTkwMFwiPlxuICAgICAgICAgICAgICAgIHtNYXRoLnJvdW5kKGRldGVjdGVkSW5mby5tZW1vcnlfbWIgLyAxMDI0KX0gR0IgdG90YWxcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgey8qIFN0b3JhZ2UgKi99XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHAtNlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgbWItNFwiPlxuICAgICAgICAgICAgPENpcmNsZVN0YWNrSWNvbiBjbGFzc05hbWU9XCJoLTYgdy02IHRleHQtYnp6ei1wcmltYXJ5IG1yLTJcIiAvPlxuICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMFwiPlN0b3JhZ2U8L2gzPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0zXCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMFwiPkRpc2sgU3BhY2U8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktOTAwXCI+XG4gICAgICAgICAgICAgICAge2RldGVjdGVkSW5mby5zdG9yYWdlLnRvdGFsX3NwYWNlX2difSBHQiB0b3RhbCwgeycgJ31cbiAgICAgICAgICAgICAgICB7ZGV0ZWN0ZWRJbmZvLnN0b3JhZ2UuZnJlZV9zcGFjZV9nYn0gR0IgYXZhaWxhYmxlXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctZnVsbCBiZy1ncmF5LTIwMCByb3VuZGVkLWZ1bGwgaC0yXCI+XG4gICAgICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctYnp6ei1wcmltYXJ5IGgtMiByb3VuZGVkLWZ1bGxcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IFxuICAgICAgICAgICAgICAgICAgd2lkdGg6IGAkeygoZGV0ZWN0ZWRJbmZvLnN0b3JhZ2UudG90YWxfc3BhY2VfZ2IgLSBkZXRlY3RlZEluZm8uc3RvcmFnZS5mcmVlX3NwYWNlX2diKSAvIGRldGVjdGVkSW5mby5zdG9yYWdlLnRvdGFsX3NwYWNlX2diKSAqIDEwMH0lYCBcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBHUFUgSW5mb3JtYXRpb24gKi99XG4gICAgICB7ZGV0ZWN0ZWRJbmZvLmdwdXMgJiYgZGV0ZWN0ZWRJbmZvLmdwdXMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHAtNlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgbWItNFwiPlxuICAgICAgICAgICAgPFNlcnZlckljb24gY2xhc3NOYW1lPVwiaC02IHctNiB0ZXh0LWJ6enotcHJpbWFyeSBtci0yXCIgLz5cbiAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDBcIj5cbiAgICAgICAgICAgICAgR1BVIENvbmZpZ3VyYXRpb24gKHtkZXRlY3RlZEluZm8uZ3B1cy5sZW5ndGh9IEdQVXtkZXRlY3RlZEluZm8uZ3B1cy5sZW5ndGggIT09IDEgPyAncycgOiAnJ30pXG4gICAgICAgICAgICA8L2gzPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtMiBnYXAtNFwiPlxuICAgICAgICAgICAge2RldGVjdGVkSW5mby5ncHVzLm1hcCgoZ3B1LCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2IGtleT17aW5kZXh9IGNsYXNzTmFtZT1cImJnLWdyYXktNTAgcm91bmRlZC1sZyBwLTRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDBcIj57Z3B1Lm5hbWV9PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj5cbiAgICAgICAgICAgICAgICAgIHtncHUudHlwZS50b1VwcGVyQ2FzZSgpfSDigKIge2dwdS5tZW1vcnl9IOKAoiB7Z3B1LmRyaXZlcn1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuXG4gICAgICB7LyogTmV0d29yayBJbmZvcm1hdGlvbiAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHAtNlwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIG1iLTRcIj5cbiAgICAgICAgICA8R2xvYmVBbHRJY29uIGNsYXNzTmFtZT1cImgtNiB3LTYgdGV4dC1ienp6LXByaW1hcnkgbXItMlwiIC8+XG4gICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMFwiPk5ldHdvcmsgQ29uZmlndXJhdGlvbjwvaDM+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTNcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDBcIj5Ib3N0bmFtZTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktOTAwXCI+e2RldGVjdGVkSW5mby5uZXR3b3JrLmhvc3RuYW1lfTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIHtkZXRlY3RlZEluZm8ubmV0d29yay5wcml2YXRlX2lwcyAmJiBkZXRlY3RlZEluZm8ubmV0d29yay5wcml2YXRlX2lwcy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktNzAwIG1iLTJcIj5Qcml2YXRlIElQIEFkZHJlc3NlczwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktMlwiPlxuICAgICAgICAgICAgICAgIHtkZXRlY3RlZEluZm8ubmV0d29yay5wcml2YXRlX2lwcy5tYXAoKGlwLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgdGV4dC1zbVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57aXB9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzdGF0dXMtaW5kaWNhdG9yIHN0YXR1cy1vbmxpbmVcIj5hY3RpdmU8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICAgIFxuICAgICAgICAgIHtkZXRlY3RlZEluZm8ubmV0d29yay5wdWJsaWNfaXAgJiYgKFxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDBcIj5QdWJsaWMgSVA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktOTAwXCI+e2RldGVjdGVkSW5mby5uZXR3b3JrLnB1YmxpY19pcH08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBTb2Z0d2FyZSBSZXF1aXJlbWVudHMgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImJnLXdoaXRlIGJvcmRlciBib3JkZXItZ3JheS0yMDAgcm91bmRlZC1sZyBwLTZcIj5cbiAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBtYi00XCI+U29mdHdhcmUgUmVxdWlyZW1lbnRzPC9oMz5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS00XCI+XG4gICAgICAgICAge1tcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ0RvY2tlcicsXG4gICAgICAgICAgICAgIGluc3RhbGxlZDogZGV0ZWN0ZWRJbmZvLmRvY2tlci5hdmFpbGFibGUsXG4gICAgICAgICAgICAgIHZlcnNpb246IGRldGVjdGVkSW5mby5kb2NrZXIudmVyc2lvbixcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdEb2NrZXIgQ29tcG9zZScsXG4gICAgICAgICAgICAgIGluc3RhbGxlZDogZGV0ZWN0ZWRJbmZvLmRvY2tlci5jb21wb3NlX2F2YWlsYWJsZSxcbiAgICAgICAgICAgICAgdmVyc2lvbjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdEb2NrZXIgU3dhcm0nLFxuICAgICAgICAgICAgICBpbnN0YWxsZWQ6IGRldGVjdGVkSW5mby5kb2NrZXIuc3dhcm1fbW9kZSxcbiAgICAgICAgICAgICAgdmVyc2lvbjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdLm1hcCgoc29mdHdhcmUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBTdGF0dXNJY29uID0gZ2V0U3RhdHVzSWNvbihzb2Z0d2FyZS5pbnN0YWxsZWQpXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8ZGl2IGtleT17aW5kZXh9IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxTdGF0dXNJY29uIGNsYXNzTmFtZT17YGgtNSB3LTUgbXItMyAke2dldFN0YXR1c0NvbG9yKHNvZnR3YXJlLmluc3RhbGxlZCl9YH0gLz5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMFwiPntzb2Z0d2FyZS5uYW1lfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB7c29mdHdhcmUudmVyc2lvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj5WZXJzaW9uOiB7c29mdHdhcmUudmVyc2lvbn08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHtzb2Z0d2FyZS5yZXF1aXJlZCAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgYmctYnp6ei1wcmltYXJ5IHRleHQtd2hpdGUgcHgtMiBweS0xIHJvdW5kZWQgbXItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgIFJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2B0ZXh0LXNtIGZvbnQtbWVkaXVtICR7Z2V0U3RhdHVzQ29sb3Ioc29mdHdhcmUuaW5zdGFsbGVkKX1gfT5cbiAgICAgICAgICAgICAgICAgICAge3NvZnR3YXJlLmluc3RhbGxlZCA/ICdJbnN0YWxsZWQnIDogJ01pc3NpbmcnfVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgey8qIFN5c3RlbSBWYWxpZGF0aW9uICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy1ibHVlLTUwIGJvcmRlciBib3JkZXItYmx1ZS0yMDAgcm91bmRlZC1sZyBwLTZcIj5cbiAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1tZWRpdW0gdGV4dC1ibHVlLTkwMCBtYi00XCI+U3lzdGVtIFZhbGlkYXRpb248L2gzPlxuICAgICAgICBcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTJcIj5cbiAgICAgICAgICB7W1xuICAgICAgICAgICAgeyBcbiAgICAgICAgICAgICAgY2hlY2s6ICdNaW5pbXVtIG1lbW9yeSAoMkdCIHJlcXVpcmVkKScsIFxuICAgICAgICAgICAgICBwYXNzZWQ6IGRldGVjdGVkSW5mby5tZW1vcnlfbWIgPj0gMjA0OCxcbiAgICAgICAgICAgICAgd2FybmluZzogZGV0ZWN0ZWRJbmZvLm1lbW9yeV9tYiA8IDQwOTZcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IFxuICAgICAgICAgICAgICBjaGVjazogJ0F2YWlsYWJsZSBkaXNrIHNwYWNlICgxMEdCIHJlcXVpcmVkKScsIFxuICAgICAgICAgICAgICBwYXNzZWQ6IGRldGVjdGVkSW5mby5zdG9yYWdlLmZyZWVfc3BhY2VfZ2IgPj0gMTAgXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBcbiAgICAgICAgICAgICAgY2hlY2s6ICdEb2NrZXIgaW5zdGFsbGVkIGFuZCBydW5uaW5nJywgXG4gICAgICAgICAgICAgIHBhc3NlZDogZGV0ZWN0ZWRJbmZvLmRvY2tlci5hdmFpbGFibGUgXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXS5tYXAoKHZhbGlkYXRpb24sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBTdGF0dXNJY29uID0gZ2V0U3RhdHVzSWNvbih2YWxpZGF0aW9uLnBhc3NlZClcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxkaXYga2V5PXtpbmRleH0gY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8U3RhdHVzSWNvbiBjbGFzc05hbWU9e2BoLTQgdy00IG1yLTMgJHtcbiAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb24ucGFzc2VkIFxuICAgICAgICAgICAgICAgICAgICA/ICd0ZXh0LWdyZWVuLTYwMCcgXG4gICAgICAgICAgICAgICAgICAgIDogJ3RleHQtcmVkLTYwMCdcbiAgICAgICAgICAgICAgICB9YH0gLz5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2B0ZXh0LXNtICR7XG4gICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uLnBhc3NlZCBcbiAgICAgICAgICAgICAgICAgICAgPyAndGV4dC1ncmVlbi04MDAnIFxuICAgICAgICAgICAgICAgICAgICA6ICd0ZXh0LXJlZC04MDAnXG4gICAgICAgICAgICAgICAgfWB9PlxuICAgICAgICAgICAgICAgICAge3ZhbGlkYXRpb24uY2hlY2t9XG4gICAgICAgICAgICAgICAgICB7dmFsaWRhdGlvbi53YXJuaW5nICYmIHZhbGlkYXRpb24ucGFzc2VkICYmIChcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC15ZWxsb3ctNjAwIG1sLTJcIj4oV2FybmluZzogUmVjb21tZW5kIDRHQispPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0pfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogQWN0aW9uIEJ1dHRvbnMgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1iZXR3ZWVuIHB0LTYgYm9yZGVyLXQgYm9yZGVyLWdyYXktMjAwXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge29uQmFjayAmJiAoXG4gICAgICAgICAgICA8YnV0dG9uIG9uQ2xpY2s9e29uQmFja30gY2xhc3NOYW1lPVwiYnRuLW91dGxpbmVcIj5cbiAgICAgICAgICAgICAgQmFja1xuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggc3BhY2UteC0zXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgb25DbGljaz17cmVmcmVzaFN5c3RlbUluZm99XG4gICAgICAgICAgICBkaXNhYmxlZD17cmVmcmVzaGluZ31cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ0bi1vdXRsaW5lXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cmVmcmVzaGluZyA/ICdSZWZyZXNoaW5nLi4uJyA6ICdSZWZyZXNoJ31cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVDb250aW51ZX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgIGRpc2FibGVkPXshZGV0ZWN0ZWRJbmZvLmRvY2tlci5hdmFpbGFibGV9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lzQ29tcGxldGVkID8gJ0NvbnRpbnVlJyA6ICdOZXh0OiBSZXBvc2l0b3J5IFNldHVwJ31cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKVxufSJdLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIkNwdUNoaXBJY29uIiwiU2VydmVySWNvbiIsIkNpcmNsZVN0YWNrSWNvbiIsIkdsb2JlQWx0SWNvbiIsIkNoZWNrQ2lyY2xlSWNvbiIsIkV4Y2xhbWF0aW9uVHJpYW5nbGVJY29uIiwiQXJyb3dQYXRoSWNvbiIsIlN5c3RlbURldGVjdGlvbiIsInN5c3RlbUluZm8iLCJjb25maWdEYXRhIiwib25Db21wbGV0ZSIsIm9uQmFjayIsImlzQ29tcGxldGVkIiwibG9hZGluZyIsInNldExvYWRpbmciLCJyZWZyZXNoaW5nIiwic2V0UmVmcmVzaGluZyIsImRldGVjdGVkSW5mbyIsInNldERldGVjdGVkSW5mbyIsInJlZnJlc2hTeXN0ZW1JbmZvIiwicmVzcG9uc2UiLCJmZXRjaCIsIm9rIiwicmVzdWx0IiwianNvbiIsInN5c3RlbV9pbmZvIiwiZXJyb3IiLCJjb25zb2xlIiwiaGFuZGxlQ29udGludWUiLCJzeXN0ZW0iLCJ2YWxpZGF0ZWQiLCJnZXRTdGF0dXNDb2xvciIsImNvbmRpdGlvbiIsImdldFN0YXR1c0ljb24iLCJkaXYiLCJjbGFzc05hbWUiLCJwIiwiaDMiLCJidXR0b24iLCJvbkNsaWNrIiwiZGlzYWJsZWQiLCJuZXR3b3JrIiwiaG9zdG5hbWUiLCJvcyIsImFyY2hpdGVjdHVyZSIsImNwdV9jb3JlcyIsIk1hdGgiLCJyb3VuZCIsIm1lbW9yeV9tYiIsInN0b3JhZ2UiLCJ0b3RhbF9zcGFjZV9nYiIsImZyZWVfc3BhY2VfZ2IiLCJzdHlsZSIsIndpZHRoIiwiZ3B1cyIsImxlbmd0aCIsIm1hcCIsImdwdSIsImluZGV4IiwibmFtZSIsInR5cGUiLCJ0b1VwcGVyQ2FzZSIsIm1lbW9yeSIsImRyaXZlciIsInByaXZhdGVfaXBzIiwiaXAiLCJzcGFuIiwicHVibGljX2lwIiwiaW5zdGFsbGVkIiwiZG9ja2VyIiwiYXZhaWxhYmxlIiwidmVyc2lvbiIsInJlcXVpcmVkIiwiY29tcG9zZV9hdmFpbGFibGUiLCJ1bmRlZmluZWQiLCJzd2FybV9tb2RlIiwic29mdHdhcmUiLCJTdGF0dXNJY29uIiwiY2hlY2siLCJwYXNzZWQiLCJ3YXJuaW5nIiwidmFsaWRhdGlvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/setup/components/SystemDetection.tsx\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./app/setup/components/TermsAndConditions.tsx":
|
|
/*!*****************************************************!*\
|
|
!*** ./app/setup/components/TermsAndConditions.tsx ***!
|
|
\*****************************************************/
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ TermsAndConditions; }\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 _barrel_optimize_names_CheckCircleIcon_DocumentTextIcon_ExclamationTriangleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircleIcon,DocumentTextIcon,ExclamationTriangleIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/DocumentTextIcon.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircleIcon_DocumentTextIcon_ExclamationTriangleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircleIcon,DocumentTextIcon,ExclamationTriangleIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ExclamationTriangleIcon.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircleIcon_DocumentTextIcon_ExclamationTriangleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircleIcon,DocumentTextIcon,ExclamationTriangleIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CheckCircleIcon.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\nfunction TermsAndConditions(param) {\n let { systemInfo, configData, onComplete, onBack, isCompleted } = param;\n var _configData_terms;\n _s();\n const [agreed, setAgreed] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)((configData === null || configData === void 0 ? void 0 : (_configData_terms = configData.terms) === null || _configData_terms === void 0 ? void 0 : _configData_terms.agreed) || false);\n const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const handleSubmit = (e)=>{\n e.preventDefault();\n if (!agreed) {\n setError(\"You must agree to the Terms and Conditions to continue\");\n return;\n }\n setError(\"\");\n onComplete({\n terms: {\n agreed: true,\n timestamp: new Date().toISOString()\n }\n });\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: handleSubmit,\n className: \"space-y-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentTextIcon_ExclamationTriangleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"h-6 w-6 text-bzzz-primary mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 51,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900\",\n children: \"CHORUS:agents Software License Agreement\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 52,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 50,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-gray-50 border border-gray-200 rounded-lg p-6 max-h-96 overflow-y-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"prose prose-sm max-w-none text-gray-700\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-base font-semibold text-gray-900 mb-3\",\n children: \"1. License Grant\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 57,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mb-4\",\n children: 'Subject to the terms and conditions of this Agreement, Chorus Services grants you a non-exclusive, non-transferable license to use CHORUS:agents (the \"Software\") for distributed AI coordination and task management.'\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 58,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-base font-semibold text-gray-900 mb-3\",\n children: \"2. Permitted Uses\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 63,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"list-disc list-inside mb-4 space-y-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: \"Install and operate CHORUS:agents on your infrastructure\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 65,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: \"Configure cluster nodes for distributed processing\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 66,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: \"Integrate with supported AI models and services\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 67,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: \"Use for commercial and non-commercial purposes\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 68,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 64,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-base font-semibold text-gray-900 mb-3\",\n children: \"3. Restrictions\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 71,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"list-disc list-inside mb-4 space-y-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: \"You may not redistribute, sublicense, or sell the Software\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 73,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: \"You may not reverse engineer or decompile the Software\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 74,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: \"You may not use the Software for illegal or harmful purposes\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 75,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: \"You may not remove or modify proprietary notices\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 76,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 72,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-base font-semibold text-gray-900 mb-3\",\n children: \"4. Data Privacy\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 79,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mb-4\",\n children: \"CHORUS:agents processes data locally on your infrastructure. Chorus Services does not collect or store your operational data. Telemetry data may be collected for software improvement purposes.\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 80,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-base font-semibold text-gray-900 mb-3\",\n children: \"5. Support and Updates\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 85,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mb-4\",\n children: \"Licensed users receive access to software updates, security patches, and community support. Premium support tiers are available separately.\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 86,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-base font-semibold text-gray-900 mb-3\",\n children: \"6. Disclaimer of Warranty\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 91,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mb-4\",\n children: 'THE SOFTWARE IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF ANY KIND. CHORUS SERVICES DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.'\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 92,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-base font-semibold text-gray-900 mb-3\",\n children: \"7. Limitation of Liability\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 98,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mb-4\",\n children: \"IN NO EVENT SHALL CHORUS SERVICES BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THE SOFTWARE.\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 99,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-base font-semibold text-gray-900 mb-3\",\n children: \"8. Termination\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 104,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mb-4\",\n children: \"This license is effective until terminated. You may terminate it at any time by uninstalling the Software. Chorus Services may terminate this license if you violate any terms of this Agreement.\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 105,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-blue-50 border-l-4 border-blue-400 p-4 mt-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentTextIcon_ExclamationTriangleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"h-5 w-5 text-blue-500 mt-0.5 mr-2\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 113,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-blue-700\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"strong\", {\n children: \"Contact Information:\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 115,\n columnNumber: 22\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 115,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"Chorus Services\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 116,\n columnNumber: 37\n }, this),\n \"Email: legal@chorus.services\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 117,\n columnNumber: 47\n }, this),\n \"Website: https://chorus.services\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 116,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 114,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 112,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 111,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 56,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 55,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 49,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"flex items-start\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n checked: agreed,\n onChange: (e)=>setAgreed(e.target.checked),\n className: \"mt-1 mr-3 h-4 w-4 text-bzzz-primary border-gray-300 rounded focus:ring-bzzz-primary\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 130,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-medium text-gray-900\",\n children: \"I have read and agree to the Terms and Conditions\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 137,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600 mt-1\",\n children: \"By checking this box, you acknowledge that you have read, understood, and agree to be bound by the terms and conditions outlined above.\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 140,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 136,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 129,\n columnNumber: 11\n }, this),\n error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center text-red-600 text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentTextIcon_ExclamationTriangleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"h-4 w-4 mr-1\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 149,\n columnNumber: 15\n }, this),\n error\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 148,\n columnNumber: 13\n }, this),\n agreed && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center text-green-600 text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_DocumentTextIcon_ExclamationTriangleIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-4 w-4 mr-1\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 156,\n columnNumber: 15\n }, this),\n \"Thank you for accepting the terms and conditions\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 155,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 128,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 127,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between pt-6 border-t border-gray-200\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: onBack && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: onBack,\n className: \"btn-outline\",\n children: \"Back\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 166,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 164,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"submit\",\n disabled: !agreed,\n className: \"\".concat(agreed ? \"btn-primary\" : \"btn-disabled\"),\n children: isCompleted ? \"Continue\" : \"Next: License Validation\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 171,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 163,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TermsAndConditions.tsx\",\n lineNumber: 46,\n columnNumber: 5\n }, this);\n}\n_s(TermsAndConditions, \"AHR/skXOeH824HEJTyXDjtPSs6o=\");\n_c = TermsAndConditions;\nvar _c;\n$RefreshReg$(_c, \"TermsAndConditions\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9zZXR1cC9jb21wb25lbnRzL1Rlcm1zQW5kQ29uZGl0aW9ucy50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBRWdDO0FBS0k7QUFVckIsU0FBU0ksbUJBQW1CLEtBTWpCO1FBTmlCLEVBQ3pDQyxVQUFVLEVBQ1ZDLFVBQVUsRUFDVkMsVUFBVSxFQUNWQyxNQUFNLEVBQ05DLFdBQVcsRUFDYSxHQU5pQjtRQU9KSDs7SUFBckMsTUFBTSxDQUFDSSxRQUFRQyxVQUFVLEdBQUdYLCtDQUFRQSxDQUFDTSxDQUFBQSx1QkFBQUEsa0NBQUFBLG9CQUFBQSxXQUFZTSxLQUFLLGNBQWpCTix3Q0FBQUEsa0JBQW1CSSxNQUFNLEtBQUk7SUFDbEUsTUFBTSxDQUFDRyxPQUFPQyxTQUFTLEdBQUdkLCtDQUFRQSxDQUFDO0lBRW5DLE1BQU1lLGVBQWUsQ0FBQ0M7UUFDcEJBLEVBQUVDLGNBQWM7UUFFaEIsSUFBSSxDQUFDUCxRQUFRO1lBQ1hJLFNBQVM7WUFDVDtRQUNGO1FBRUFBLFNBQVM7UUFDVFAsV0FBVztZQUNUSyxPQUFPO2dCQUNMRixRQUFRO2dCQUNSUSxXQUFXLElBQUlDLE9BQU9DLFdBQVc7WUFDbkM7UUFDRjtJQUNGO0lBRUEscUJBQ0UsOERBQUNDO1FBQUtDLFVBQVVQO1FBQWNRLFdBQVU7OzBCQUd0Qyw4REFBQ0M7Z0JBQUlELFdBQVU7O2tDQUNiLDhEQUFDQzt3QkFBSUQsV0FBVTs7MENBQ2IsOERBQUN0QixrSkFBZ0JBO2dDQUFDc0IsV0FBVTs7Ozs7OzBDQUM1Qiw4REFBQ0U7Z0NBQUdGLFdBQVU7MENBQW9DOzs7Ozs7Ozs7Ozs7a0NBR3BELDhEQUFDQzt3QkFBSUQsV0FBVTtrQ0FDYiw0RUFBQ0M7NEJBQUlELFdBQVU7OzhDQUNiLDhEQUFDRztvQ0FBR0gsV0FBVTs4Q0FBNkM7Ozs7Ozs4Q0FDM0QsOERBQUNJO29DQUFFSixXQUFVOzhDQUFPOzs7Ozs7OENBS3BCLDhEQUFDRztvQ0FBR0gsV0FBVTs4Q0FBNkM7Ozs7Ozs4Q0FDM0QsOERBQUNLO29DQUFHTCxXQUFVOztzREFDWiw4REFBQ007c0RBQUc7Ozs7OztzREFDSiw4REFBQ0E7c0RBQUc7Ozs7OztzREFDSiw4REFBQ0E7c0RBQUc7Ozs7OztzREFDSiw4REFBQ0E7c0RBQUc7Ozs7Ozs7Ozs7Ozs4Q0FHTiw4REFBQ0g7b0NBQUdILFdBQVU7OENBQTZDOzs7Ozs7OENBQzNELDhEQUFDSztvQ0FBR0wsV0FBVTs7c0RBQ1osOERBQUNNO3NEQUFHOzs7Ozs7c0RBQ0osOERBQUNBO3NEQUFHOzs7Ozs7c0RBQ0osOERBQUNBO3NEQUFHOzs7Ozs7c0RBQ0osOERBQUNBO3NEQUFHOzs7Ozs7Ozs7Ozs7OENBR04sOERBQUNIO29DQUFHSCxXQUFVOzhDQUE2Qzs7Ozs7OzhDQUMzRCw4REFBQ0k7b0NBQUVKLFdBQVU7OENBQU87Ozs7Ozs4Q0FLcEIsOERBQUNHO29DQUFHSCxXQUFVOzhDQUE2Qzs7Ozs7OzhDQUMzRCw4REFBQ0k7b0NBQUVKLFdBQVU7OENBQU87Ozs7Ozs4Q0FLcEIsOERBQUNHO29DQUFHSCxXQUFVOzhDQUE2Qzs7Ozs7OzhDQUMzRCw4REFBQ0k7b0NBQUVKLFdBQVU7OENBQU87Ozs7Ozs4Q0FNcEIsOERBQUNHO29DQUFHSCxXQUFVOzhDQUE2Qzs7Ozs7OzhDQUMzRCw4REFBQ0k7b0NBQUVKLFdBQVU7OENBQU87Ozs7Ozs4Q0FLcEIsOERBQUNHO29DQUFHSCxXQUFVOzhDQUE2Qzs7Ozs7OzhDQUMzRCw4REFBQ0k7b0NBQUVKLFdBQVU7OENBQU87Ozs7Ozs4Q0FNcEIsOERBQUNDO29DQUFJRCxXQUFVOzhDQUNiLDRFQUFDQzt3Q0FBSUQsV0FBVTs7MERBQ2IsOERBQUNwQixrSkFBdUJBO2dEQUFDb0IsV0FBVTs7Ozs7OzBEQUNuQyw4REFBQ0M7Z0RBQUlELFdBQVU7O2tFQUNiLDhEQUFDSTtrRUFBRSw0RUFBQ0c7c0VBQU87Ozs7Ozs7Ozs7O2tFQUNYLDhEQUFDSDs7NERBQUU7MEVBQWUsOERBQUNJOzs7Ozs0REFBSzswRUFDSSw4REFBQ0E7Ozs7OzREQUFLOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzswQkFVOUMsOERBQUNQO2dCQUFJRCxXQUFVOzBCQUNiLDRFQUFDQztvQkFBSUQsV0FBVTs7c0NBQ2IsOERBQUNTOzRCQUFNVCxXQUFVOzs4Q0FDZiw4REFBQ1U7b0NBQ0NDLE1BQUs7b0NBQ0xDLFNBQVN6QjtvQ0FDVDBCLFVBQVUsQ0FBQ3BCLElBQU1MLFVBQVVLLEVBQUVxQixNQUFNLENBQUNGLE9BQU87b0NBQzNDWixXQUFVOzs7Ozs7OENBRVosOERBQUNDO29DQUFJRCxXQUFVOztzREFDYiw4REFBQ2U7NENBQUtmLFdBQVU7c0RBQTRCOzs7Ozs7c0RBRzVDLDhEQUFDSTs0Q0FBRUosV0FBVTtzREFBcUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt3QkFPckNWLHVCQUNDLDhEQUFDVzs0QkFBSUQsV0FBVTs7OENBQ2IsOERBQUNwQixrSkFBdUJBO29DQUFDb0IsV0FBVTs7Ozs7O2dDQUNsQ1Y7Ozs7Ozs7d0JBSUpILHdCQUNDLDhEQUFDYzs0QkFBSUQsV0FBVTs7OENBQ2IsOERBQUNyQixrSkFBZUE7b0NBQUNxQixXQUFVOzs7Ozs7Z0NBQWlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBT3BELDhEQUFDQztnQkFBSUQsV0FBVTs7a0NBQ2IsOERBQUNDO2tDQUNFaEIsd0JBQ0MsOERBQUMrQjs0QkFBT0wsTUFBSzs0QkFBU00sU0FBU2hDOzRCQUFRZSxXQUFVO3NDQUFjOzs7Ozs7Ozs7OztrQ0FLbkUsOERBQUNnQjt3QkFDQ0wsTUFBSzt3QkFDTE8sVUFBVSxDQUFDL0I7d0JBQ1hhLFdBQVcsR0FBMkMsT0FBeENiLFNBQVMsZ0JBQWdCO2tDQUVoREQsY0FBYyxhQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLNUI7R0FuS3dCTDtLQUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9hcHAvc2V0dXAvY29tcG9uZW50cy9UZXJtc0FuZENvbmRpdGlvbnMudHN4PzFmOTEiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBcbiAgRG9jdW1lbnRUZXh0SWNvbixcbiAgQ2hlY2tDaXJjbGVJY29uLFxuICBFeGNsYW1hdGlvblRyaWFuZ2xlSWNvblxufSBmcm9tICdAaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUnXG5cbmludGVyZmFjZSBUZXJtc0FuZENvbmRpdGlvbnNQcm9wcyB7XG4gIHN5c3RlbUluZm86IGFueVxuICBjb25maWdEYXRhOiBhbnlcbiAgb25Db21wbGV0ZTogKGRhdGE6IGFueSkgPT4gdm9pZFxuICBvbkJhY2s/OiAoKSA9PiB2b2lkXG4gIGlzQ29tcGxldGVkOiBib29sZWFuXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFRlcm1zQW5kQ29uZGl0aW9ucyh7IFxuICBzeXN0ZW1JbmZvLCBcbiAgY29uZmlnRGF0YSwgXG4gIG9uQ29tcGxldGUsIFxuICBvbkJhY2ssIFxuICBpc0NvbXBsZXRlZCBcbn06IFRlcm1zQW5kQ29uZGl0aW9uc1Byb3BzKSB7XG4gIGNvbnN0IFthZ3JlZWQsIHNldEFncmVlZF0gPSB1c2VTdGF0ZShjb25maWdEYXRhPy50ZXJtcz8uYWdyZWVkIHx8IGZhbHNlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlKCcnKVxuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdCA9IChlOiBSZWFjdC5Gb3JtRXZlbnQpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBcbiAgICBpZiAoIWFncmVlZCkge1xuICAgICAgc2V0RXJyb3IoJ1lvdSBtdXN0IGFncmVlIHRvIHRoZSBUZXJtcyBhbmQgQ29uZGl0aW9ucyB0byBjb250aW51ZScpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzZXRFcnJvcignJylcbiAgICBvbkNvbXBsZXRlKHsgXG4gICAgICB0ZXJtczogeyBcbiAgICAgICAgYWdyZWVkOiB0cnVlLCBcbiAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkgXG4gICAgICB9IFxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxmb3JtIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9IGNsYXNzTmFtZT1cInNwYWNlLXktOFwiPlxuXG4gICAgICB7LyogVGVybXMgYW5kIENvbmRpdGlvbnMgQ29udGVudCAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIG1iLTRcIj5cbiAgICAgICAgICA8RG9jdW1lbnRUZXh0SWNvbiBjbGFzc05hbWU9XCJoLTYgdy02IHRleHQtYnp6ei1wcmltYXJ5IG1yLTJcIiAvPlxuICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDBcIj5DSE9SVVM6YWdlbnRzIFNvZnR3YXJlIExpY2Vuc2UgQWdyZWVtZW50PC9oMz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy1ncmF5LTUwIGJvcmRlciBib3JkZXItZ3JheS0yMDAgcm91bmRlZC1sZyBwLTYgbWF4LWgtOTYgb3ZlcmZsb3cteS1hdXRvXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwcm9zZSBwcm9zZS1zbSBtYXgtdy1ub25lIHRleHQtZ3JheS03MDBcIj5cbiAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJ0ZXh0LWJhc2UgZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktOTAwIG1iLTNcIj4xLiBMaWNlbnNlIEdyYW50PC9oND5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIm1iLTRcIj5cbiAgICAgICAgICAgICAgU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQsIENob3J1cyBTZXJ2aWNlcyBncmFudHMgeW91IGEgbm9uLWV4Y2x1c2l2ZSwgXG4gICAgICAgICAgICAgIG5vbi10cmFuc2ZlcmFibGUgbGljZW5zZSB0byB1c2UgQ0hPUlVTOmFnZW50cyAodGhlIFwiU29mdHdhcmVcIikgZm9yIGRpc3RyaWJ1dGVkIEFJIGNvb3JkaW5hdGlvbiBhbmQgdGFzayBtYW5hZ2VtZW50LlxuICAgICAgICAgICAgPC9wPlxuXG4gICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwidGV4dC1iYXNlIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMCBtYi0zXCI+Mi4gUGVybWl0dGVkIFVzZXM8L2g0PlxuICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cImxpc3QtZGlzYyBsaXN0LWluc2lkZSBtYi00IHNwYWNlLXktMVwiPlxuICAgICAgICAgICAgICA8bGk+SW5zdGFsbCBhbmQgb3BlcmF0ZSBDSE9SVVM6YWdlbnRzIG9uIHlvdXIgaW5mcmFzdHJ1Y3R1cmU8L2xpPlxuICAgICAgICAgICAgICA8bGk+Q29uZmlndXJlIGNsdXN0ZXIgbm9kZXMgZm9yIGRpc3RyaWJ1dGVkIHByb2Nlc3Npbmc8L2xpPlxuICAgICAgICAgICAgICA8bGk+SW50ZWdyYXRlIHdpdGggc3VwcG9ydGVkIEFJIG1vZGVscyBhbmQgc2VydmljZXM8L2xpPlxuICAgICAgICAgICAgICA8bGk+VXNlIGZvciBjb21tZXJjaWFsIGFuZCBub24tY29tbWVyY2lhbCBwdXJwb3NlczwvbGk+XG4gICAgICAgICAgICA8L3VsPlxuXG4gICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwidGV4dC1iYXNlIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMCBtYi0zXCI+My4gUmVzdHJpY3Rpb25zPC9oND5cbiAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJsaXN0LWRpc2MgbGlzdC1pbnNpZGUgbWItNCBzcGFjZS15LTFcIj5cbiAgICAgICAgICAgICAgPGxpPllvdSBtYXkgbm90IHJlZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgb3Igc2VsbCB0aGUgU29mdHdhcmU8L2xpPlxuICAgICAgICAgICAgICA8bGk+WW91IG1heSBub3QgcmV2ZXJzZSBlbmdpbmVlciBvciBkZWNvbXBpbGUgdGhlIFNvZnR3YXJlPC9saT5cbiAgICAgICAgICAgICAgPGxpPllvdSBtYXkgbm90IHVzZSB0aGUgU29mdHdhcmUgZm9yIGlsbGVnYWwgb3IgaGFybWZ1bCBwdXJwb3NlczwvbGk+XG4gICAgICAgICAgICAgIDxsaT5Zb3UgbWF5IG5vdCByZW1vdmUgb3IgbW9kaWZ5IHByb3ByaWV0YXJ5IG5vdGljZXM8L2xpPlxuICAgICAgICAgICAgPC91bD5cblxuICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cInRleHQtYmFzZSBmb250LXNlbWlib2xkIHRleHQtZ3JheS05MDAgbWItM1wiPjQuIERhdGEgUHJpdmFjeTwvaDQ+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtYi00XCI+XG4gICAgICAgICAgICAgIENIT1JVUzphZ2VudHMgcHJvY2Vzc2VzIGRhdGEgbG9jYWxseSBvbiB5b3VyIGluZnJhc3RydWN0dXJlLiBDaG9ydXMgU2VydmljZXMgZG9lcyBub3QgY29sbGVjdCBvciBzdG9yZSBcbiAgICAgICAgICAgICAgeW91ciBvcGVyYXRpb25hbCBkYXRhLiBUZWxlbWV0cnkgZGF0YSBtYXkgYmUgY29sbGVjdGVkIGZvciBzb2Z0d2FyZSBpbXByb3ZlbWVudCBwdXJwb3Nlcy5cbiAgICAgICAgICAgIDwvcD5cblxuICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cInRleHQtYmFzZSBmb250LXNlbWlib2xkIHRleHQtZ3JheS05MDAgbWItM1wiPjUuIFN1cHBvcnQgYW5kIFVwZGF0ZXM8L2g0PlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwibWItNFwiPlxuICAgICAgICAgICAgICBMaWNlbnNlZCB1c2VycyByZWNlaXZlIGFjY2VzcyB0byBzb2Z0d2FyZSB1cGRhdGVzLCBzZWN1cml0eSBwYXRjaGVzLCBhbmQgY29tbXVuaXR5IHN1cHBvcnQuIFxuICAgICAgICAgICAgICBQcmVtaXVtIHN1cHBvcnQgdGllcnMgYXJlIGF2YWlsYWJsZSBzZXBhcmF0ZWx5LlxuICAgICAgICAgICAgPC9wPlxuXG4gICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwidGV4dC1iYXNlIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMCBtYi0zXCI+Ni4gRGlzY2xhaW1lciBvZiBXYXJyYW50eTwvaDQ+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtYi00XCI+XG4gICAgICAgICAgICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORC4gQ0hPUlVTIFNFUlZJQ0VTIERJU0NMQUlNUyBcbiAgICAgICAgICAgICAgQUxMIFdBUlJBTlRJRVMsIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIFxuICAgICAgICAgICAgICBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuXG4gICAgICAgICAgICA8L3A+XG5cbiAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJ0ZXh0LWJhc2UgZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktOTAwIG1iLTNcIj43LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eTwvaDQ+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtYi00XCI+XG4gICAgICAgICAgICAgIElOIE5PIEVWRU5UIFNIQUxMIENIT1JVUyBTRVJWSUNFUyBCRSBMSUFCTEUgRk9SIEFOWSBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgXG4gICAgICAgICAgICAgIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUgVVNFIE9GIFRIRSBTT0ZUV0FSRS5cbiAgICAgICAgICAgIDwvcD5cblxuICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cInRleHQtYmFzZSBmb250LXNlbWlib2xkIHRleHQtZ3JheS05MDAgbWItM1wiPjguIFRlcm1pbmF0aW9uPC9oND5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIm1iLTRcIj5cbiAgICAgICAgICAgICAgVGhpcyBsaWNlbnNlIGlzIGVmZmVjdGl2ZSB1bnRpbCB0ZXJtaW5hdGVkLiBZb3UgbWF5IHRlcm1pbmF0ZSBpdCBhdCBhbnkgdGltZSBieSBcbiAgICAgICAgICAgICAgdW5pbnN0YWxsaW5nIHRoZSBTb2Z0d2FyZS4gQ2hvcnVzIFNlcnZpY2VzIG1heSB0ZXJtaW5hdGUgdGhpcyBsaWNlbnNlIGlmIHlvdSBcbiAgICAgICAgICAgICAgdmlvbGF0ZSBhbnkgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQuXG4gICAgICAgICAgICA8L3A+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctYmx1ZS01MCBib3JkZXItbC00IGJvcmRlci1ibHVlLTQwMCBwLTQgbXQtNlwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXhcIj5cbiAgICAgICAgICAgICAgICA8RXhjbGFtYXRpb25UcmlhbmdsZUljb24gY2xhc3NOYW1lPVwiaC01IHctNSB0ZXh0LWJsdWUtNTAwIG10LTAuNSBtci0yXCIgLz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ibHVlLTcwMFwiPlxuICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Db250YWN0IEluZm9ybWF0aW9uOjwvc3Ryb25nPjwvcD5cbiAgICAgICAgICAgICAgICAgIDxwPkNob3J1cyBTZXJ2aWNlczxiciAvPlxuICAgICAgICAgICAgICAgICAgRW1haWw6IGxlZ2FsQGNob3J1cy5zZXJ2aWNlczxiciAvPlxuICAgICAgICAgICAgICAgICAgV2Vic2l0ZTogaHR0cHM6Ly9jaG9ydXMuc2VydmljZXM8L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBBZ3JlZW1lbnQgQ2hlY2tib3ggKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTRcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1zdGFydFwiPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIGNoZWNrZWQ9e2FncmVlZH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRBZ3JlZWQoZS50YXJnZXQuY2hlY2tlZCl9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm10LTEgbXItMyBoLTQgdy00IHRleHQtYnp6ei1wcmltYXJ5IGJvcmRlci1ncmF5LTMwMCByb3VuZGVkIGZvY3VzOnJpbmctYnp6ei1wcmltYXJ5XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc21cIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMFwiPlxuICAgICAgICAgICAgICAgIEkgaGF2ZSByZWFkIGFuZCBhZ3JlZSB0byB0aGUgVGVybXMgYW5kIENvbmRpdGlvbnNcbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNjAwIG10LTFcIj5cbiAgICAgICAgICAgICAgICBCeSBjaGVja2luZyB0aGlzIGJveCwgeW91IGFja25vd2xlZGdlIHRoYXQgeW91IGhhdmUgcmVhZCwgdW5kZXJzdG9vZCwgYW5kIGFncmVlIHRvIGJlIFxuICAgICAgICAgICAgICAgIGJvdW5kIGJ5IHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvdXRsaW5lZCBhYm92ZS5cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9sYWJlbD5cblxuICAgICAgICAgIHtlcnJvciAmJiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHRleHQtcmVkLTYwMCB0ZXh0LXNtXCI+XG4gICAgICAgICAgICAgIDxFeGNsYW1hdGlvblRyaWFuZ2xlSWNvbiBjbGFzc05hbWU9XCJoLTQgdy00IG1yLTFcIiAvPlxuICAgICAgICAgICAgICB7ZXJyb3J9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge2FncmVlZCAmJiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHRleHQtZ3JlZW4tNjAwIHRleHQtc21cIj5cbiAgICAgICAgICAgICAgPENoZWNrQ2lyY2xlSWNvbiBjbGFzc05hbWU9XCJoLTQgdy00IG1yLTFcIiAvPlxuICAgICAgICAgICAgICBUaGFuayB5b3UgZm9yIGFjY2VwdGluZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnNcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gcHQtNiBib3JkZXItdCBib3JkZXItZ3JheS0yMDBcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7b25CYWNrICYmIChcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e29uQmFja30gY2xhc3NOYW1lPVwiYnRuLW91dGxpbmVcIj5cbiAgICAgICAgICAgICAgQmFja1xuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gXG4gICAgICAgICAgdHlwZT1cInN1Ym1pdFwiIFxuICAgICAgICAgIGRpc2FibGVkPXshYWdyZWVkfVxuICAgICAgICAgIGNsYXNzTmFtZT17YCR7YWdyZWVkID8gJ2J0bi1wcmltYXJ5JyA6ICdidG4tZGlzYWJsZWQnfWB9XG4gICAgICAgID5cbntpc0NvbXBsZXRlZCA/ICdDb250aW51ZScgOiAnTmV4dDogTGljZW5zZSBWYWxpZGF0aW9uJ31cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gIClcbn0iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJEb2N1bWVudFRleHRJY29uIiwiQ2hlY2tDaXJjbGVJY29uIiwiRXhjbGFtYXRpb25UcmlhbmdsZUljb24iLCJUZXJtc0FuZENvbmRpdGlvbnMiLCJzeXN0ZW1JbmZvIiwiY29uZmlnRGF0YSIsIm9uQ29tcGxldGUiLCJvbkJhY2siLCJpc0NvbXBsZXRlZCIsImFncmVlZCIsInNldEFncmVlZCIsInRlcm1zIiwiZXJyb3IiLCJzZXRFcnJvciIsImhhbmRsZVN1Ym1pdCIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInRpbWVzdGFtcCIsIkRhdGUiLCJ0b0lTT1N0cmluZyIsImZvcm0iLCJvblN1Ym1pdCIsImNsYXNzTmFtZSIsImRpdiIsImgzIiwiaDQiLCJwIiwidWwiLCJsaSIsInN0cm9uZyIsImJyIiwibGFiZWwiLCJpbnB1dCIsInR5cGUiLCJjaGVja2VkIiwib25DaGFuZ2UiLCJ0YXJnZXQiLCJzcGFuIiwiYnV0dG9uIiwib25DbGljayIsImRpc2FibGVkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/setup/components/TermsAndConditions.tsx\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./app/setup/components/TestingValidation.tsx":
|
|
/*!****************************************************!*\
|
|
!*** ./app/setup/components/TestingValidation.tsx ***!
|
|
\****************************************************/
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ TestingValidation; }\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/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\nfunction TestingValidation(param) {\n let { systemInfo, configData, onComplete, onBack, isCompleted } = param;\n _s();\n const [testing, setTesting] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const handleRunTests = async ()=>{\n setTesting(true);\n // Simulate testing process\n await new Promise((resolve)=>setTimeout(resolve, 3000));\n setTesting(false);\n onComplete({\n testing: {\n passed: true,\n completedAt: new Date().toISOString()\n }\n });\n };\n const getClusterDashboardUrl = ()=>{\n var _configData_network_ports, _configData_network;\n // Get the WebUI port from config, default to 9090\n const webuiPort = (configData === null || configData === void 0 ? void 0 : (_configData_network = configData.network) === null || _configData_network === void 0 ? void 0 : (_configData_network_ports = _configData_network.ports) === null || _configData_network_ports === void 0 ? void 0 : _configData_network_ports.webui) || 9090;\n return \"http://localhost:\".concat(webuiPort, \"/dashboard\");\n };\n const handleGoToDashboard = ()=>{\n const dashboardUrl = getClusterDashboardUrl();\n // Clear setup state since we're done\n localStorage.removeItem(\"bzzz-setup-state\");\n // Open cluster dashboard in new tab\n window.open(dashboardUrl, \"_blank\");\n // Show completion message and suggest closing this tab\n const shouldClose = window.confirm(\"Setup complete! The cluster dashboard has opened in a new tab.\\n\\n\" + \"You can now close this setup tab. Click OK to close automatically, or Cancel to keep it open.\");\n if (shouldClose) {\n window.close();\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center py-12\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-900 mb-2\",\n children: \"Testing & Validation\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 64,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-600\",\n children: \"Validate your BZZZ cluster configuration and test all connections.\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 67,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-yellow-50 border border-yellow-200 rounded-lg p-4 text-yellow-800\",\n children: \"This component is under development. Testing and validation will be implemented here.\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 71,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 70,\n columnNumber: 9\n }, this),\n !isCompleted && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: handleRunTests,\n disabled: testing,\n className: \"btn-primary\",\n children: testing ? \"Running Tests...\" : \"Run Validation Tests\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 78,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 77,\n columnNumber: 11\n }, this),\n isCompleted && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-8 bg-green-50 border border-green-200 rounded-lg p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-lg font-medium text-green-900 mb-2\",\n children: \"\\uD83C\\uDF89 Setup Complete!\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 90,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-green-700 mb-4\",\n children: \"Your CHORUS:agents cluster has been successfully configured and deployed.\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 93,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2 text-sm text-green-600 mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: \"✓ System configuration validated\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 97,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: \"✓ Network connectivity tested\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 98,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: \"✓ Services deployed to all nodes\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 99,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: \"✓ Cluster formation completed\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 100,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 96,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-blue-50 border border-blue-200 rounded-lg p-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-blue-800\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"strong\", {\n children: \"Cluster Dashboard:\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 104,\n columnNumber: 17\n }, this),\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"code\", {\n children: getClusterDashboardUrl()\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 104,\n columnNumber: 53\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 103,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-blue-600 mt-1\",\n children: \"The setup process will be terminated and you'll be redirected to your operational cluster.\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 106,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 102,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 89,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 63,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between pt-6 border-t border-gray-200\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: onBack && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: onBack,\n className: \"btn-outline\",\n children: \"Back\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 117,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 115,\n columnNumber: 9\n }, this),\n isCompleted && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: handleGoToDashboard,\n className: \"btn-primary\",\n children: \"Go to Cluster Dashboard\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 124,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 114,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/components/TestingValidation.tsx\",\n lineNumber: 62,\n columnNumber: 5\n }, this);\n}\n_s(TestingValidation, \"rXna+plC6yEiQ/zfRYTTAtosSSw=\");\n_c = TestingValidation;\nvar _c;\n$RefreshReg$(_c, \"TestingValidation\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9zZXR1cC9jb21wb25lbnRzL1Rlc3RpbmdWYWxpZGF0aW9uLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFZ0M7QUFVakIsU0FBU0Msa0JBQWtCLEtBTWpCO1FBTmlCLEVBQ3hDQyxVQUFVLEVBQ1ZDLFVBQVUsRUFDVkMsVUFBVSxFQUNWQyxNQUFNLEVBQ05DLFdBQVcsRUFDWSxHQU5pQjs7SUFPeEMsTUFBTSxDQUFDQyxTQUFTQyxXQUFXLEdBQUdSLCtDQUFRQSxDQUFDO0lBRXZDLE1BQU1TLGlCQUFpQjtRQUNyQkQsV0FBVztRQUNYLDJCQUEyQjtRQUMzQixNQUFNLElBQUlFLFFBQVFDLENBQUFBLFVBQVdDLFdBQVdELFNBQVM7UUFDakRILFdBQVc7UUFDWEosV0FBVztZQUNURyxTQUFTO2dCQUNQTSxRQUFRO2dCQUNSQyxhQUFhLElBQUlDLE9BQU9DLFdBQVc7WUFDckM7UUFDRjtJQUNGO0lBRUEsTUFBTUMseUJBQXlCO1lBRVhkLDJCQUFBQTtRQURsQixrREFBa0Q7UUFDbEQsTUFBTWUsWUFBWWYsQ0FBQUEsdUJBQUFBLGtDQUFBQSxzQkFBQUEsV0FBWWdCLE9BQU8sY0FBbkJoQiwyQ0FBQUEsNEJBQUFBLG9CQUFxQmlCLEtBQUssY0FBMUJqQixnREFBQUEsMEJBQTRCa0IsS0FBSyxLQUFJO1FBQ3ZELE9BQU8sb0JBQThCLE9BQVZILFdBQVU7SUFDdkM7SUFFQSxNQUFNSSxzQkFBc0I7UUFDMUIsTUFBTUMsZUFBZU47UUFFckIscUNBQXFDO1FBQ3JDTyxhQUFhQyxVQUFVLENBQUM7UUFFeEIsb0NBQW9DO1FBQ3BDQyxPQUFPQyxJQUFJLENBQUNKLGNBQWM7UUFFMUIsdURBQXVEO1FBQ3ZELE1BQU1LLGNBQWNGLE9BQU9HLE9BQU8sQ0FDaEMsdUVBQ0E7UUFHRixJQUFJRCxhQUFhO1lBQ2ZGLE9BQU9JLEtBQUs7UUFDZDtJQUNGO0lBRUEscUJBQ0UsOERBQUNDO1FBQUlDLFdBQVU7OzBCQUNiLDhEQUFDRDtnQkFBSUMsV0FBVTs7a0NBQ2IsOERBQUNDO3dCQUFHRCxXQUFVO2tDQUF5Qzs7Ozs7O2tDQUd2RCw4REFBQ0U7d0JBQUVGLFdBQVU7a0NBQWdCOzs7Ozs7a0NBRzdCLDhEQUFDRDt3QkFBSUMsV0FBVTtrQ0FDYiw0RUFBQ0Q7NEJBQUlDLFdBQVU7c0NBQXVFOzs7Ozs7Ozs7OztvQkFLdkYsQ0FBQzFCLDZCQUNBLDhEQUFDeUI7d0JBQUlDLFdBQVU7a0NBQ2IsNEVBQUNHOzRCQUNDQyxTQUFTM0I7NEJBQ1Q0QixVQUFVOUI7NEJBQ1Z5QixXQUFVO3NDQUVUekIsVUFBVSxxQkFBcUI7Ozs7Ozs7Ozs7O29CQUtyQ0QsNkJBQ0MsOERBQUN5Qjt3QkFBSUMsV0FBVTs7MENBQ2IsOERBQUNNO2dDQUFHTixXQUFVOzBDQUEwQzs7Ozs7OzBDQUd4RCw4REFBQ0U7Z0NBQUVGLFdBQVU7MENBQXNCOzs7Ozs7MENBR25DLDhEQUFDRDtnQ0FBSUMsV0FBVTs7a0RBQ2IsOERBQUNEO2tEQUFJOzs7Ozs7a0RBQ0wsOERBQUNBO2tEQUFJOzs7Ozs7a0RBQ0wsOERBQUNBO2tEQUFJOzs7Ozs7a0RBQ0wsOERBQUNBO2tEQUFJOzs7Ozs7Ozs7Ozs7MENBRVAsOERBQUNBO2dDQUFJQyxXQUFVOztrREFDYiw4REFBQ0U7d0NBQUVGLFdBQVU7OzBEQUNYLDhEQUFDTzswREFBTzs7Ozs7OzRDQUEyQjswREFBQyw4REFBQ0M7MERBQU12Qjs7Ozs7Ozs7Ozs7O2tEQUU3Qyw4REFBQ2lCO3dDQUFFRixXQUFVO2tEQUE2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQVFsRCw4REFBQ0Q7Z0JBQUlDLFdBQVU7O2tDQUNiLDhEQUFDRDtrQ0FDRTFCLHdCQUNDLDhEQUFDOEI7NEJBQU9DLFNBQVMvQjs0QkFBUTJCLFdBQVU7c0NBQWM7Ozs7Ozs7Ozs7O29CQU1wRDFCLDZCQUNDLDhEQUFDNkI7d0JBQU9DLFNBQVNkO3dCQUFxQlUsV0FBVTtrQ0FBYzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT3hFO0dBdEh3Qi9CO0tBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2FwcC9zZXR1cC9jb21wb25lbnRzL1Rlc3RpbmdWYWxpZGF0aW9uLnRzeD85NzBjIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuXG5pbnRlcmZhY2UgVGVzdGluZ1ZhbGlkYXRpb25Qcm9wcyB7XG4gIHN5c3RlbUluZm86IGFueVxuICBjb25maWdEYXRhOiBhbnlcbiAgb25Db21wbGV0ZTogKGRhdGE6IGFueSkgPT4gdm9pZFxuICBvbkJhY2s/OiAoKSA9PiB2b2lkXG4gIGlzQ29tcGxldGVkOiBib29sZWFuXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFRlc3RpbmdWYWxpZGF0aW9uKHsgXG4gIHN5c3RlbUluZm8sIFxuICBjb25maWdEYXRhLCBcbiAgb25Db21wbGV0ZSwgXG4gIG9uQmFjaywgXG4gIGlzQ29tcGxldGVkIFxufTogVGVzdGluZ1ZhbGlkYXRpb25Qcm9wcykge1xuICBjb25zdCBbdGVzdGluZywgc2V0VGVzdGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBoYW5kbGVSdW5UZXN0cyA9IGFzeW5jICgpID0+IHtcbiAgICBzZXRUZXN0aW5nKHRydWUpXG4gICAgLy8gU2ltdWxhdGUgdGVzdGluZyBwcm9jZXNzXG4gICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDMwMDApKVxuICAgIHNldFRlc3RpbmcoZmFsc2UpXG4gICAgb25Db21wbGV0ZSh7IFxuICAgICAgdGVzdGluZzogeyBcbiAgICAgICAgcGFzc2VkOiB0cnVlLCBcbiAgICAgICAgY29tcGxldGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSBcbiAgICAgIH0gXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGdldENsdXN0ZXJEYXNoYm9hcmRVcmwgPSAoKSA9PiB7XG4gICAgLy8gR2V0IHRoZSBXZWJVSSBwb3J0IGZyb20gY29uZmlnLCBkZWZhdWx0IHRvIDkwOTBcbiAgICBjb25zdCB3ZWJ1aVBvcnQgPSBjb25maWdEYXRhPy5uZXR3b3JrPy5wb3J0cz8ud2VidWkgfHwgOTA5MFxuICAgIHJldHVybiBgaHR0cDovL2xvY2FsaG9zdDoke3dlYnVpUG9ydH0vZGFzaGJvYXJkYFxuICB9XG5cbiAgY29uc3QgaGFuZGxlR29Ub0Rhc2hib2FyZCA9ICgpID0+IHtcbiAgICBjb25zdCBkYXNoYm9hcmRVcmwgPSBnZXRDbHVzdGVyRGFzaGJvYXJkVXJsKClcbiAgICBcbiAgICAvLyBDbGVhciBzZXR1cCBzdGF0ZSBzaW5jZSB3ZSdyZSBkb25lXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2J6enotc2V0dXAtc3RhdGUnKVxuICAgIFxuICAgIC8vIE9wZW4gY2x1c3RlciBkYXNoYm9hcmQgaW4gbmV3IHRhYlxuICAgIHdpbmRvdy5vcGVuKGRhc2hib2FyZFVybCwgJ19ibGFuaycpXG4gICAgXG4gICAgLy8gU2hvdyBjb21wbGV0aW9uIG1lc3NhZ2UgYW5kIHN1Z2dlc3QgY2xvc2luZyB0aGlzIHRhYlxuICAgIGNvbnN0IHNob3VsZENsb3NlID0gd2luZG93LmNvbmZpcm0oXG4gICAgICAnU2V0dXAgY29tcGxldGUhIFRoZSBjbHVzdGVyIGRhc2hib2FyZCBoYXMgb3BlbmVkIGluIGEgbmV3IHRhYi5cXG5cXG4nICtcbiAgICAgICdZb3UgY2FuIG5vdyBjbG9zZSB0aGlzIHNldHVwIHRhYi4gQ2xpY2sgT0sgdG8gY2xvc2UgYXV0b21hdGljYWxseSwgb3IgQ2FuY2VsIHRvIGtlZXAgaXQgb3Blbi4nXG4gICAgKVxuICAgIFxuICAgIGlmIChzaG91bGRDbG9zZSkge1xuICAgICAgd2luZG93LmNsb3NlKClcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS02XCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyIHB5LTEyXCI+XG4gICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDAgbWItMlwiPlxuICAgICAgICAgIFRlc3RpbmcgJiBWYWxpZGF0aW9uXG4gICAgICAgIDwvaDM+XG4gICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtZ3JheS02MDBcIj5cbiAgICAgICAgICBWYWxpZGF0ZSB5b3VyIEJaWlogY2x1c3RlciBjb25maWd1cmF0aW9uIGFuZCB0ZXN0IGFsbCBjb25uZWN0aW9ucy5cbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LThcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJnLXllbGxvdy01MCBib3JkZXIgYm9yZGVyLXllbGxvdy0yMDAgcm91bmRlZC1sZyBwLTQgdGV4dC15ZWxsb3ctODAwXCI+XG4gICAgICAgICAgICBUaGlzIGNvbXBvbmVudCBpcyB1bmRlciBkZXZlbG9wbWVudC4gVGVzdGluZyBhbmQgdmFsaWRhdGlvbiB3aWxsIGJlIGltcGxlbWVudGVkIGhlcmUuXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICAgICAgeyFpc0NvbXBsZXRlZCAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC04XCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVJ1blRlc3RzfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17dGVzdGluZ31cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnRuLXByaW1hcnlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7dGVzdGluZyA/ICdSdW5uaW5nIFRlc3RzLi4uJyA6ICdSdW4gVmFsaWRhdGlvbiBUZXN0cyd9XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgICAgXG4gICAgICAgIHtpc0NvbXBsZXRlZCAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC04IGJnLWdyZWVuLTUwIGJvcmRlciBib3JkZXItZ3JlZW4tMjAwIHJvdW5kZWQtbGcgcC02XCI+XG4gICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LW1lZGl1bSB0ZXh0LWdyZWVuLTkwMCBtYi0yXCI+XG4gICAgICAgICAgICAgIPCfjokgU2V0dXAgQ29tcGxldGUhXG4gICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1ncmVlbi03MDAgbWItNFwiPlxuICAgICAgICAgICAgICBZb3VyIENIT1JVUzphZ2VudHMgY2x1c3RlciBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgY29uZmlndXJlZCBhbmQgZGVwbG95ZWQuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktMiB0ZXh0LXNtIHRleHQtZ3JlZW4tNjAwIG1iLTRcIj5cbiAgICAgICAgICAgICAgPGRpdj7inJMgU3lzdGVtIGNvbmZpZ3VyYXRpb24gdmFsaWRhdGVkPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXY+4pyTIE5ldHdvcmsgY29ubmVjdGl2aXR5IHRlc3RlZDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2PuKckyBTZXJ2aWNlcyBkZXBsb3llZCB0byBhbGwgbm9kZXM8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdj7inJMgQ2x1c3RlciBmb3JtYXRpb24gY29tcGxldGVkPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctYmx1ZS01MCBib3JkZXIgYm9yZGVyLWJsdWUtMjAwIHJvdW5kZWQtbGcgcC00XCI+XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ibHVlLTgwMFwiPlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+Q2x1c3RlciBEYXNoYm9hcmQ6PC9zdHJvbmc+IDxjb2RlPntnZXRDbHVzdGVyRGFzaGJvYXJkVXJsKCl9PC9jb2RlPlxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1ibHVlLTYwMCBtdC0xXCI+XG4gICAgICAgICAgICAgICAgVGhlIHNldHVwIHByb2Nlc3Mgd2lsbCBiZSB0ZXJtaW5hdGVkIGFuZCB5b3UnbGwgYmUgcmVkaXJlY3RlZCB0byB5b3VyIG9wZXJhdGlvbmFsIGNsdXN0ZXIuXG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gcHQtNiBib3JkZXItdCBib3JkZXItZ3JheS0yMDBcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7b25CYWNrICYmIChcbiAgICAgICAgICAgIDxidXR0b24gb25DbGljaz17b25CYWNrfSBjbGFzc05hbWU9XCJidG4tb3V0bGluZVwiPlxuICAgICAgICAgICAgICBCYWNrXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgXG4gICAgICAgIHtpc0NvbXBsZXRlZCAmJiAoXG4gICAgICAgICAgPGJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVHb1RvRGFzaGJvYXJkfSBjbGFzc05hbWU9XCJidG4tcHJpbWFyeVwiPlxuICAgICAgICAgICAgR28gdG8gQ2x1c3RlciBEYXNoYm9hcmRcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59Il0sIm5hbWVzIjpbInVzZVN0YXRlIiwiVGVzdGluZ1ZhbGlkYXRpb24iLCJzeXN0ZW1JbmZvIiwiY29uZmlnRGF0YSIsIm9uQ29tcGxldGUiLCJvbkJhY2siLCJpc0NvbXBsZXRlZCIsInRlc3RpbmciLCJzZXRUZXN0aW5nIiwiaGFuZGxlUnVuVGVzdHMiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNldFRpbWVvdXQiLCJwYXNzZWQiLCJjb21wbGV0ZWRBdCIsIkRhdGUiLCJ0b0lTT1N0cmluZyIsImdldENsdXN0ZXJEYXNoYm9hcmRVcmwiLCJ3ZWJ1aVBvcnQiLCJuZXR3b3JrIiwicG9ydHMiLCJ3ZWJ1aSIsImhhbmRsZUdvVG9EYXNoYm9hcmQiLCJkYXNoYm9hcmRVcmwiLCJsb2NhbFN0b3JhZ2UiLCJyZW1vdmVJdGVtIiwid2luZG93Iiwib3BlbiIsInNob3VsZENsb3NlIiwiY29uZmlybSIsImNsb3NlIiwiZGl2IiwiY2xhc3NOYW1lIiwiaDMiLCJwIiwiYnV0dG9uIiwib25DbGljayIsImRpc2FibGVkIiwiaDQiLCJzdHJvbmciLCJjb2RlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/setup/components/TestingValidation.tsx\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./app/setup/page.tsx":
|
|
/*!****************************!*\
|
|
!*** ./app/setup/page.tsx ***!
|
|
\****************************/
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ SetupPage; }\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 _barrel_optimize_names_CheckCircleIcon_ChevronRightIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircleIcon,ChevronRightIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CheckCircleIcon.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircleIcon_ChevronRightIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircleIcon,ChevronRightIcon!=!@heroicons/react/24/outline */ \"(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ChevronRightIcon.js\");\n/* harmony import */ var _components_TermsAndConditions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/TermsAndConditions */ \"(app-pages-browser)/./app/setup/components/TermsAndConditions.tsx\");\n/* harmony import */ var _components_LicenseValidation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/LicenseValidation */ \"(app-pages-browser)/./app/setup/components/LicenseValidation.tsx\");\n/* harmony import */ var _components_SystemDetection__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/SystemDetection */ \"(app-pages-browser)/./app/setup/components/SystemDetection.tsx\");\n/* harmony import */ var _components_RepositoryConfiguration__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/RepositoryConfiguration */ \"(app-pages-browser)/./app/setup/components/RepositoryConfiguration.tsx\");\n/* harmony import */ var _components_NetworkConfiguration__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/NetworkConfiguration */ \"(app-pages-browser)/./app/setup/components/NetworkConfiguration.tsx\");\n/* harmony import */ var _components_SecuritySetup__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/SecuritySetup */ \"(app-pages-browser)/./app/setup/components/SecuritySetup.tsx\");\n/* harmony import */ var _components_AIConfiguration__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components/AIConfiguration */ \"(app-pages-browser)/./app/setup/components/AIConfiguration.tsx\");\n/* harmony import */ var _components_ServiceDeployment__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./components/ServiceDeployment */ \"(app-pages-browser)/./app/setup/components/ServiceDeployment.tsx\");\n/* harmony import */ var _components_ClusterFormation__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./components/ClusterFormation */ \"(app-pages-browser)/./app/setup/components/ClusterFormation.tsx\");\n/* harmony import */ var _components_TestingValidation__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./components/TestingValidation */ \"(app-pages-browser)/./app/setup/components/TestingValidation.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n\nconst SETUP_STEPS = [\n {\n id: \"terms\",\n title: \"Terms & Conditions\",\n description: \"Review and accept the software license agreement\",\n component: _components_TermsAndConditions__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n },\n {\n id: \"license\",\n title: \"License Validation\",\n description: \"Validate your CHORUS license key and email\",\n component: _components_LicenseValidation__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n {\n id: \"detection\",\n title: \"System Detection\",\n description: \"Detect hardware and validate installation\",\n component: _components_SystemDetection__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n },\n {\n id: \"repository\",\n title: \"Repository Setup\",\n description: \"Configure Git repository for task management\",\n component: _components_RepositoryConfiguration__WEBPACK_IMPORTED_MODULE_5__[\"default\"]\n },\n {\n id: \"network\",\n title: \"Network Configuration\",\n description: \"Configure network and firewall settings\",\n component: _components_NetworkConfiguration__WEBPACK_IMPORTED_MODULE_6__[\"default\"]\n },\n {\n id: \"security\",\n title: \"Security Setup\",\n description: \"Configure authentication and SSH access\",\n component: _components_SecuritySetup__WEBPACK_IMPORTED_MODULE_7__[\"default\"]\n },\n {\n id: \"ai\",\n title: \"AI Integration\",\n description: \"Configure OpenAI and Ollama/Parallama\",\n component: _components_AIConfiguration__WEBPACK_IMPORTED_MODULE_8__[\"default\"]\n },\n {\n id: \"deployment\",\n title: \"Service Deployment\",\n description: \"Deploy and configure CHORUS agent services\",\n component: _components_ServiceDeployment__WEBPACK_IMPORTED_MODULE_9__[\"default\"]\n },\n {\n id: \"cluster\",\n title: \"Cluster Formation\",\n description: \"Join or create CHORUS agent cluster\",\n component: _components_ClusterFormation__WEBPACK_IMPORTED_MODULE_10__[\"default\"]\n },\n {\n id: \"testing\",\n title: \"Testing & Validation\",\n description: \"Validate configuration and test connectivity\",\n component: _components_TestingValidation__WEBPACK_IMPORTED_MODULE_11__[\"default\"]\n }\n];\nfunction SetupPage() {\n _s();\n const [currentStep, setCurrentStep] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);\n const [completedSteps, setCompletedSteps] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(new Set());\n const [configData, setConfigData] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({});\n const [systemInfo, setSystemInfo] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n // Load persisted data and system information on mount\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n loadPersistedData();\n fetchSystemInfo();\n }, []);\n // Save setup state to localStorage whenever it changes\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n saveSetupState();\n }, [\n currentStep,\n completedSteps,\n configData\n ]);\n const loadPersistedData = ()=>{\n try {\n const savedState = localStorage.getItem(\"chorus-setup-state\");\n if (savedState) {\n const state = JSON.parse(savedState);\n setCurrentStep(state.currentStep || 0);\n setCompletedSteps(new Set(state.completedSteps || []));\n setConfigData(state.configData || {});\n }\n } catch (error) {\n console.error(\"Failed to load persisted setup data:\", error);\n }\n };\n const saveSetupState = ()=>{\n try {\n const state = {\n currentStep,\n completedSteps: Array.from(completedSteps),\n configData,\n timestamp: new Date().toISOString()\n };\n localStorage.setItem(\"chorus-setup-state\", JSON.stringify(state));\n } catch (error) {\n console.error(\"Failed to save setup state:\", error);\n }\n };\n const clearPersistedData = ()=>{\n try {\n localStorage.removeItem(\"chorus-setup-state\");\n // Reset state to initial values\n setCurrentStep(0);\n setCompletedSteps(new Set());\n setConfigData({});\n } catch (error) {\n console.error(\"Failed to clear persisted data:\", error);\n }\n };\n const fetchSystemInfo = async ()=>{\n try {\n const response = await fetch(\"/api/setup/system\");\n if (response.ok) {\n const result = await response.json();\n setSystemInfo(result.system_info);\n }\n } catch (error) {\n console.error(\"Failed to fetch system info:\", error);\n }\n };\n const handleStepComplete = (stepIndex, data)=>{\n console.log(\"Setup Page: Step complete\", {\n stepIndex,\n data,\n currentConfigData: configData\n });\n setCompletedSteps((prev)=>new Set([\n ...prev,\n stepIndex\n ]));\n setConfigData((prev)=>{\n const newConfigData = {\n ...prev,\n ...data\n };\n console.log(\"Setup Page: Updated configData\", {\n prev,\n data,\n newConfigData\n });\n return newConfigData;\n });\n // Auto-advance to next step\n if (stepIndex < SETUP_STEPS.length - 1) {\n setCurrentStep(stepIndex + 1);\n } else {\n // Setup is complete, clear persisted data after a delay\n setTimeout(()=>{\n clearPersistedData();\n }, 2000);\n }\n };\n const handleStepBack = ()=>{\n if (currentStep > 0) {\n setCurrentStep(currentStep - 1);\n }\n };\n const CurrentStepComponent = SETUP_STEPS[currentStep].component;\n // Check if we're resuming from saved data\n const isResuming = currentStep > 0 || completedSteps.size > 0 || Object.keys(configData).length > 0;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"heading-hero mb-3\",\n children: \"CHORUS Agent Setup\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 186,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-body\",\n children: [\n \"Configure your distributed agent orchestration platform in \",\n SETUP_STEPS.length,\n \" simple steps.\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 189,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 185,\n columnNumber: 7\n }, this),\n isResuming && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-8 bg-chorus-secondary bg-opacity-20 border border-chorus-secondary rounded-lg p-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-shrink-0\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"h-5 w-5 text-chorus-secondary mt-0.5\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 201,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 200,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 199,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"ml-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-sm font-medium text-chorus-secondary\",\n children: \"Setup Progress Restored\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 205,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-small text-gray-300 mt-1\",\n children: [\n \"Your previous setup progress has been restored. You're currently on step \",\n currentStep + 1,\n \" of \",\n SETUP_STEPS.length,\n \".\",\n completedSteps.size > 0 && \" You've completed \".concat(completedSteps.size, \" step\").concat(completedSteps.size !== 1 ? \"s\" : \"\", \".\")\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 208,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 204,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 198,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: clearPersistedData,\n className: \"btn-text\",\n children: \"Start Over\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 214,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 197,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 196,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 lg:grid-cols-4 gap-12\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"lg:col-span-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card sticky top-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"heading-subsection mb-6\",\n children: \"Setup Progress\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 228,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"space-y-2\",\n children: SETUP_STEPS.map((step, index)=>{\n const isCompleted = completedSteps.has(index);\n const isCurrent = index === currentStep;\n const isAccessible = index <= currentStep || completedSteps.has(index);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>isAccessible && setCurrentStep(index),\n disabled: !isAccessible,\n className: \"w-full text-left progress-step \".concat(isCurrent ? \"progress-step-current\" : isCompleted ? \"progress-step-completed\" : isAccessible ? \"progress-step-accessible\" : \"progress-step-disabled\"),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-shrink-0 mr-3\",\n children: isCompleted ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_ChevronRightIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n className: \"h-5 w-5 text-green-400\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 255,\n columnNumber: 27\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-5 h-5 rounded-full border-2 flex items-center justify-center text-xs font-medium \".concat(isCurrent ? \"border-chorus-secondary bg-chorus-secondary text-white\" : \"border-gray-600 text-gray-500\"),\n children: index + 1\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 257,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 253,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 min-w-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-medium truncate\",\n children: step.title\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 267,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs opacity-75 truncate\",\n children: step.description\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 270,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 266,\n columnNumber: 23\n }, this),\n isAccessible && !isCompleted && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircleIcon_ChevronRightIcon_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n className: \"h-4 w-4 opacity-50\"\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 275,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 252,\n columnNumber: 21\n }, this)\n }, step.id, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 238,\n columnNumber: 19\n }, this);\n })\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 231,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-8 pt-6 border-t border-gray-800\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-small mb-3\",\n children: [\n \"Progress: \",\n completedSteps.size,\n \" of \",\n SETUP_STEPS.length,\n \" steps\"\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 284,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full bg-gray-800 rounded-sm h-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-chorus-secondary h-2 rounded-sm transition-all duration-500\",\n style: {\n width: \"\".concat(completedSteps.size / SETUP_STEPS.length * 100, \"%\")\n }\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 288,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 287,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 283,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 227,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 226,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"lg:col-span-3\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between mb-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"heading-section\",\n children: SETUP_STEPS[currentStep].title\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 302,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-ghost\",\n children: [\n \"Step \",\n currentStep + 1,\n \" of \",\n SETUP_STEPS.length\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 305,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 301,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-body\",\n children: SETUP_STEPS[currentStep].description\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 309,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 300,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(CurrentStepComponent, {\n systemInfo: systemInfo,\n configData: configData,\n onComplete: (data)=>handleStepComplete(currentStep, data),\n onBack: currentStep > 0 ? handleStepBack : undefined,\n isCompleted: completedSteps.has(currentStep)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 314,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 299,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 298,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 224,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/tony/chorus/project-queues/active/BZZZ/install/config-ui/app/setup/page.tsx\",\n lineNumber: 184,\n columnNumber: 5\n }, this);\n}\n_s(SetupPage, \"rE6TXnYXZkBUI9XTljHR4JeIETI=\");\n_c = SetupPage;\nvar _c;\n$RefreshReg$(_c, \"SetupPage\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9zZXR1cC9wYWdlLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMkM7QUFDb0M7QUFDZjtBQUNGO0FBQ0o7QUFDZ0I7QUFDTjtBQUNkO0FBQ0k7QUFDSTtBQUNGO0FBQ0U7QUFFOUQsTUFBTWMsY0FBYztJQUNsQjtRQUNFQyxJQUFJO1FBQ0pDLE9BQU87UUFDUEMsYUFBYTtRQUNiQyxXQUFXZCxzRUFBa0JBO0lBQy9CO0lBQ0E7UUFDRVcsSUFBSTtRQUNKQyxPQUFPO1FBQ1BDLGFBQWE7UUFDYkMsV0FBV2IscUVBQWlCQTtJQUM5QjtJQUNBO1FBQ0VVLElBQUk7UUFDSkMsT0FBTztRQUNQQyxhQUFhO1FBQ2JDLFdBQVdaLG1FQUFlQTtJQUM1QjtJQUNBO1FBQ0VTLElBQUk7UUFDSkMsT0FBTztRQUNQQyxhQUFhO1FBQ2JDLFdBQVdYLDJFQUF1QkE7SUFDcEM7SUFDQTtRQUNFUSxJQUFJO1FBQ0pDLE9BQU87UUFDUEMsYUFBYTtRQUNiQyxXQUFXVix3RUFBb0JBO0lBQ2pDO0lBQ0E7UUFDRU8sSUFBSTtRQUNKQyxPQUFPO1FBQ1BDLGFBQWE7UUFDYkMsV0FBV1QsaUVBQWFBO0lBQzFCO0lBQ0E7UUFDRU0sSUFBSTtRQUNKQyxPQUFPO1FBQ1BDLGFBQWE7UUFDYkMsV0FBV1IsbUVBQWVBO0lBQzVCO0lBQ0E7UUFDRUssSUFBSTtRQUNKQyxPQUFPO1FBQ1BDLGFBQWE7UUFDYkMsV0FBV1AscUVBQWlCQTtJQUM5QjtJQUNBO1FBQ0VJLElBQUk7UUFDSkMsT0FBTztRQUNQQyxhQUFhO1FBQ2JDLFdBQVdOLHFFQUFnQkE7SUFDN0I7SUFDQTtRQUNFRyxJQUFJO1FBQ0pDLE9BQU87UUFDUEMsYUFBYTtRQUNiQyxXQUFXTCxzRUFBaUJBO0lBQzlCO0NBQ0Q7QUFNYyxTQUFTTTs7SUFDdEIsTUFBTSxDQUFDQyxhQUFhQyxlQUFlLEdBQUdyQiwrQ0FBUUEsQ0FBQztJQUMvQyxNQUFNLENBQUNzQixnQkFBZ0JDLGtCQUFrQixHQUFHdkIsK0NBQVFBLENBQUMsSUFBSXdCO0lBQ3pELE1BQU0sQ0FBQ0MsWUFBWUMsY0FBYyxHQUFHMUIsK0NBQVFBLENBQWEsQ0FBQztJQUMxRCxNQUFNLENBQUMyQixZQUFZQyxjQUFjLEdBQUc1QiwrQ0FBUUEsQ0FBTTtJQUVsRCxzREFBc0Q7SUFDdERDLGdEQUFTQSxDQUFDO1FBQ1I0QjtRQUNBQztJQUNGLEdBQUcsRUFBRTtJQUVMLHVEQUF1RDtJQUN2RDdCLGdEQUFTQSxDQUFDO1FBQ1I4QjtJQUNGLEdBQUc7UUFBQ1g7UUFBYUU7UUFBZ0JHO0tBQVc7SUFFNUMsTUFBTUksb0JBQW9CO1FBQ3hCLElBQUk7WUFDRixNQUFNRyxhQUFhQyxhQUFhQyxPQUFPLENBQUM7WUFDeEMsSUFBSUYsWUFBWTtnQkFDZCxNQUFNRyxRQUFRQyxLQUFLQyxLQUFLLENBQUNMO2dCQUN6QlgsZUFBZWMsTUFBTWYsV0FBVyxJQUFJO2dCQUNwQ0csa0JBQWtCLElBQUlDLElBQUlXLE1BQU1iLGNBQWMsSUFBSSxFQUFFO2dCQUNwREksY0FBY1MsTUFBTVYsVUFBVSxJQUFJLENBQUM7WUFDckM7UUFDRixFQUFFLE9BQU9hLE9BQU87WUFDZEMsUUFBUUQsS0FBSyxDQUFDLHdDQUF3Q0E7UUFDeEQ7SUFDRjtJQUVBLE1BQU1QLGlCQUFpQjtRQUNyQixJQUFJO1lBQ0YsTUFBTUksUUFBUTtnQkFDWmY7Z0JBQ0FFLGdCQUFnQmtCLE1BQU1DLElBQUksQ0FBQ25CO2dCQUMzQkc7Z0JBQ0FpQixXQUFXLElBQUlDLE9BQU9DLFdBQVc7WUFDbkM7WUFDQVgsYUFBYVksT0FBTyxDQUFDLHNCQUFzQlQsS0FBS1UsU0FBUyxDQUFDWDtRQUM1RCxFQUFFLE9BQU9HLE9BQU87WUFDZEMsUUFBUUQsS0FBSyxDQUFDLCtCQUErQkE7UUFDL0M7SUFDRjtJQUVBLE1BQU1TLHFCQUFxQjtRQUN6QixJQUFJO1lBQ0ZkLGFBQWFlLFVBQVUsQ0FBQztZQUN4QixnQ0FBZ0M7WUFDaEMzQixlQUFlO1lBQ2ZFLGtCQUFrQixJQUFJQztZQUN0QkUsY0FBYyxDQUFDO1FBQ2pCLEVBQUUsT0FBT1ksT0FBTztZQUNkQyxRQUFRRCxLQUFLLENBQUMsbUNBQW1DQTtRQUNuRDtJQUNGO0lBRUEsTUFBTVIsa0JBQWtCO1FBQ3RCLElBQUk7WUFDRixNQUFNbUIsV0FBVyxNQUFNQyxNQUFNO1lBQzdCLElBQUlELFNBQVNFLEVBQUUsRUFBRTtnQkFDZixNQUFNQyxTQUFTLE1BQU1ILFNBQVNJLElBQUk7Z0JBQ2xDekIsY0FBY3dCLE9BQU9FLFdBQVc7WUFDbEM7UUFDRixFQUFFLE9BQU9oQixPQUFPO1lBQ2RDLFFBQVFELEtBQUssQ0FBQyxnQ0FBZ0NBO1FBQ2hEO0lBQ0Y7SUFFQSxNQUFNaUIscUJBQXFCLENBQUNDLFdBQW1CQztRQUM3Q2xCLFFBQVFtQixHQUFHLENBQUMsNkJBQTZCO1lBQUVGO1lBQVdDO1lBQU1FLG1CQUFtQmxDO1FBQVc7UUFDMUZGLGtCQUFrQnFDLENBQUFBLE9BQVEsSUFBSXBDLElBQUk7bUJBQUlvQztnQkFBTUo7YUFBVTtRQUN0RDlCLGNBQWNrQyxDQUFBQTtZQUNaLE1BQU1DLGdCQUFnQjtnQkFBRSxHQUFHRCxJQUFJO2dCQUFFLEdBQUdILElBQUk7WUFBQztZQUN6Q2xCLFFBQVFtQixHQUFHLENBQUMsa0NBQWtDO2dCQUFFRTtnQkFBTUg7Z0JBQU1JO1lBQWM7WUFDMUUsT0FBT0E7UUFDVDtRQUVBLDRCQUE0QjtRQUM1QixJQUFJTCxZQUFZMUMsWUFBWWdELE1BQU0sR0FBRyxHQUFHO1lBQ3RDekMsZUFBZW1DLFlBQVk7UUFDN0IsT0FBTztZQUNMLHdEQUF3RDtZQUN4RE8sV0FBVztnQkFDVGhCO1lBQ0YsR0FBRztRQUNMO0lBQ0Y7SUFFQSxNQUFNaUIsaUJBQWlCO1FBQ3JCLElBQUk1QyxjQUFjLEdBQUc7WUFDbkJDLGVBQWVELGNBQWM7UUFDL0I7SUFDRjtJQUVBLE1BQU02Qyx1QkFBdUJuRCxXQUFXLENBQUNNLFlBQVksQ0FBQ0YsU0FBUztJQUUvRCwwQ0FBMEM7SUFDMUMsTUFBTWdELGFBQWE5QyxjQUFjLEtBQUtFLGVBQWU2QyxJQUFJLEdBQUcsS0FBS0MsT0FBT0MsSUFBSSxDQUFDNUMsWUFBWXFDLE1BQU0sR0FBRztJQUVsRyxxQkFDRSw4REFBQ1E7UUFBSUMsV0FBVTs7MEJBQ2IsOERBQUNEO2dCQUFJQyxXQUFVOztrQ0FDYiw4REFBQ0M7d0JBQUdELFdBQVU7a0NBQW9COzs7Ozs7a0NBR2xDLDhEQUFDRTt3QkFBRUYsV0FBVTs7NEJBQVk7NEJBQ3FDekQsWUFBWWdELE1BQU07NEJBQUM7Ozs7Ozs7Ozs7Ozs7WUFLbEZJLDRCQUNDLDhEQUFDSTtnQkFBSUMsV0FBVTswQkFDYiw0RUFBQ0Q7b0JBQUlDLFdBQVU7O3NDQUNiLDhEQUFDRDs0QkFBSUMsV0FBVTs7OENBQ2IsOERBQUNEO29DQUFJQyxXQUFVOzhDQUNiLDRFQUFDRzt3Q0FBSUgsV0FBVTt3Q0FBdUNJLE1BQUs7d0NBQU9DLFNBQVE7d0NBQVlDLFFBQU87a0RBQzNGLDRFQUFDQzs0Q0FBS0MsZUFBYzs0Q0FBUUMsZ0JBQWU7NENBQVFDLGFBQWE7NENBQUdDLEdBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7OENBR3pFLDhEQUFDWjtvQ0FBSUMsV0FBVTs7c0RBQ2IsOERBQUNZOzRDQUFHWixXQUFVO3NEQUE0Qzs7Ozs7O3NEQUcxRCw4REFBQ0U7NENBQUVGLFdBQVU7O2dEQUFnQztnREFDK0JuRCxjQUFjO2dEQUFFO2dEQUFLTixZQUFZZ0QsTUFBTTtnREFBQztnREFDakh4QyxlQUFlNkMsSUFBSSxHQUFHLEtBQUsscUJBQWdEN0MsT0FBM0JBLGVBQWU2QyxJQUFJLEVBQUMsU0FBNEMsT0FBckM3QyxlQUFlNkMsSUFBSSxLQUFLLElBQUksTUFBTSxJQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NDQUl2SCw4REFBQ2lCOzRCQUNDQyxTQUFTdEM7NEJBQ1R3QixXQUFVO3NDQUNYOzs7Ozs7Ozs7Ozs7Ozs7OzswQkFPUCw4REFBQ0Q7Z0JBQUlDLFdBQVU7O2tDQUViLDhEQUFDRDt3QkFBSUMsV0FBVTtrQ0FDYiw0RUFBQ0Q7NEJBQUlDLFdBQVU7OzhDQUNiLDhEQUFDZTtvQ0FBR2YsV0FBVTs4Q0FBMEI7Ozs7Ozs4Q0FHeEMsOERBQUNnQjtvQ0FBSWhCLFdBQVU7OENBQ1p6RCxZQUFZMEUsR0FBRyxDQUFDLENBQUNDLE1BQU1DO3dDQUN0QixNQUFNQyxjQUFjckUsZUFBZXNFLEdBQUcsQ0FBQ0Y7d0NBQ3ZDLE1BQU1HLFlBQVlILFVBQVV0RTt3Q0FDNUIsTUFBTTBFLGVBQWVKLFNBQVN0RSxlQUFlRSxlQUFlc0UsR0FBRyxDQUFDRjt3Q0FFaEUscUJBQ0UsOERBQUNOOzRDQUVDQyxTQUFTLElBQU1TLGdCQUFnQnpFLGVBQWVxRTs0Q0FDOUNLLFVBQVUsQ0FBQ0Q7NENBQ1h2QixXQUFXLGtDQVFWLE9BUENzQixZQUNJLDBCQUNBRixjQUNBLDRCQUNBRyxlQUNBLDZCQUNBO3NEQUdOLDRFQUFDeEI7Z0RBQUlDLFdBQVU7O2tFQUNiLDhEQUFDRDt3REFBSUMsV0FBVTtrRUFDWm9CLDRCQUNDLDhEQUFDeEYsMkhBQWVBOzREQUFDb0UsV0FBVTs7Ozs7aUZBRTNCLDhEQUFDRDs0REFBSUMsV0FBVyxzRkFJZixPQUhDc0IsWUFDSSwyREFDQTtzRUFFSEgsUUFBUTs7Ozs7Ozs7Ozs7a0VBSWYsOERBQUNwQjt3REFBSUMsV0FBVTs7MEVBQ2IsOERBQUNEO2dFQUFJQyxXQUFVOzBFQUNaa0IsS0FBS3pFLEtBQUs7Ozs7OzswRUFFYiw4REFBQ3NEO2dFQUFJQyxXQUFVOzBFQUNaa0IsS0FBS3hFLFdBQVc7Ozs7Ozs7Ozs7OztvREFHcEI2RSxnQkFBZ0IsQ0FBQ0gsNkJBQ2hCLDhEQUFDekYsMkhBQWdCQTt3REFBQ3FFLFdBQVU7Ozs7Ozs7Ozs7OzsyQ0FwQzNCa0IsS0FBSzFFLEVBQUU7Ozs7O29DQXlDbEI7Ozs7Ozs4Q0FHRiw4REFBQ3VEO29DQUFJQyxXQUFVOztzREFDYiw4REFBQ0Q7NENBQUlDLFdBQVU7O2dEQUFrQjtnREFDcEJqRCxlQUFlNkMsSUFBSTtnREFBQztnREFBS3JELFlBQVlnRCxNQUFNO2dEQUFDOzs7Ozs7O3NEQUV6RCw4REFBQ1E7NENBQUlDLFdBQVU7c0RBQ2IsNEVBQUNEO2dEQUNDQyxXQUFVO2dEQUNWeUIsT0FBTztvREFBRUMsT0FBTyxHQUFvRCxPQUFqRCxlQUFnQjlCLElBQUksR0FBR3JELFlBQVlnRCxNQUFNLEdBQUksS0FBSTtnREFBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQ0FRakYsOERBQUNRO3dCQUFJQyxXQUFVO2tDQUNiLDRFQUFDRDs0QkFBSUMsV0FBVTs7OENBQ2IsOERBQUNEO29DQUFJQyxXQUFVOztzREFDYiw4REFBQ0Q7NENBQUlDLFdBQVU7OzhEQUNiLDhEQUFDZTtvREFBR2YsV0FBVTs4REFDWHpELFdBQVcsQ0FBQ00sWUFBWSxDQUFDSixLQUFLOzs7Ozs7OERBRWpDLDhEQUFDc0Q7b0RBQUlDLFdBQVU7O3dEQUFhO3dEQUNwQm5ELGNBQWM7d0RBQUU7d0RBQUtOLFlBQVlnRCxNQUFNOzs7Ozs7Ozs7Ozs7O3NEQUdqRCw4REFBQ1c7NENBQUVGLFdBQVU7c0RBQ1Z6RCxXQUFXLENBQUNNLFlBQVksQ0FBQ0gsV0FBVzs7Ozs7Ozs7Ozs7OzhDQUl6Qyw4REFBQ2dEO29DQUNDdEMsWUFBWUE7b0NBQ1pGLFlBQVlBO29DQUNaeUUsWUFBWSxDQUFDekMsT0FBY0YsbUJBQW1CbkMsYUFBYXFDO29DQUMzRDBDLFFBQVEvRSxjQUFjLElBQUk0QyxpQkFBaUJvQztvQ0FDM0NULGFBQWFyRSxlQUFlc0UsR0FBRyxDQUFDeEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTzlDO0dBblB3QkQ7S0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL3NldHVwL3BhZ2UudHN4P2ZhN2YiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENoZXZyb25SaWdodEljb24sIENoZWNrQ2lyY2xlSWNvbiB9IGZyb20gJ0BoZXJvaWNvbnMvcmVhY3QvMjQvb3V0bGluZSdcbmltcG9ydCBUZXJtc0FuZENvbmRpdGlvbnMgZnJvbSAnLi9jb21wb25lbnRzL1Rlcm1zQW5kQ29uZGl0aW9ucydcbmltcG9ydCBMaWNlbnNlVmFsaWRhdGlvbiBmcm9tICcuL2NvbXBvbmVudHMvTGljZW5zZVZhbGlkYXRpb24nXG5pbXBvcnQgU3lzdGVtRGV0ZWN0aW9uIGZyb20gJy4vY29tcG9uZW50cy9TeXN0ZW1EZXRlY3Rpb24nXG5pbXBvcnQgUmVwb3NpdG9yeUNvbmZpZ3VyYXRpb24gZnJvbSAnLi9jb21wb25lbnRzL1JlcG9zaXRvcnlDb25maWd1cmF0aW9uJ1xuaW1wb3J0IE5ldHdvcmtDb25maWd1cmF0aW9uIGZyb20gJy4vY29tcG9uZW50cy9OZXR3b3JrQ29uZmlndXJhdGlvbidcbmltcG9ydCBTZWN1cml0eVNldHVwIGZyb20gJy4vY29tcG9uZW50cy9TZWN1cml0eVNldHVwJ1xuaW1wb3J0IEFJQ29uZmlndXJhdGlvbiBmcm9tICcuL2NvbXBvbmVudHMvQUlDb25maWd1cmF0aW9uJ1xuaW1wb3J0IFNlcnZpY2VEZXBsb3ltZW50IGZyb20gJy4vY29tcG9uZW50cy9TZXJ2aWNlRGVwbG95bWVudCdcbmltcG9ydCBDbHVzdGVyRm9ybWF0aW9uIGZyb20gJy4vY29tcG9uZW50cy9DbHVzdGVyRm9ybWF0aW9uJ1xuaW1wb3J0IFRlc3RpbmdWYWxpZGF0aW9uIGZyb20gJy4vY29tcG9uZW50cy9UZXN0aW5nVmFsaWRhdGlvbidcblxuY29uc3QgU0VUVVBfU1RFUFMgPSBbXG4gIHtcbiAgICBpZDogJ3Rlcm1zJyxcbiAgICB0aXRsZTogJ1Rlcm1zICYgQ29uZGl0aW9ucycsXG4gICAgZGVzY3JpcHRpb246ICdSZXZpZXcgYW5kIGFjY2VwdCB0aGUgc29mdHdhcmUgbGljZW5zZSBhZ3JlZW1lbnQnLFxuICAgIGNvbXBvbmVudDogVGVybXNBbmRDb25kaXRpb25zLFxuICB9LFxuICB7XG4gICAgaWQ6ICdsaWNlbnNlJyxcbiAgICB0aXRsZTogJ0xpY2Vuc2UgVmFsaWRhdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdWYWxpZGF0ZSB5b3VyIENIT1JVUyBsaWNlbnNlIGtleSBhbmQgZW1haWwnLFxuICAgIGNvbXBvbmVudDogTGljZW5zZVZhbGlkYXRpb24sXG4gIH0sXG4gIHtcbiAgICBpZDogJ2RldGVjdGlvbicsXG4gICAgdGl0bGU6ICdTeXN0ZW0gRGV0ZWN0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ0RldGVjdCBoYXJkd2FyZSBhbmQgdmFsaWRhdGUgaW5zdGFsbGF0aW9uJyxcbiAgICBjb21wb25lbnQ6IFN5c3RlbURldGVjdGlvbixcbiAgfSxcbiAge1xuICAgIGlkOiAncmVwb3NpdG9yeScsXG4gICAgdGl0bGU6ICdSZXBvc2l0b3J5IFNldHVwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpZ3VyZSBHaXQgcmVwb3NpdG9yeSBmb3IgdGFzayBtYW5hZ2VtZW50JyxcbiAgICBjb21wb25lbnQ6IFJlcG9zaXRvcnlDb25maWd1cmF0aW9uLFxuICB9LFxuICB7XG4gICAgaWQ6ICduZXR3b3JrJyxcbiAgICB0aXRsZTogJ05ldHdvcmsgQ29uZmlndXJhdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdDb25maWd1cmUgbmV0d29yayBhbmQgZmlyZXdhbGwgc2V0dGluZ3MnLFxuICAgIGNvbXBvbmVudDogTmV0d29ya0NvbmZpZ3VyYXRpb24sXG4gIH0sXG4gIHtcbiAgICBpZDogJ3NlY3VyaXR5JyxcbiAgICB0aXRsZTogJ1NlY3VyaXR5IFNldHVwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpZ3VyZSBhdXRoZW50aWNhdGlvbiBhbmQgU1NIIGFjY2VzcycsXG4gICAgY29tcG9uZW50OiBTZWN1cml0eVNldHVwLFxuICB9LFxuICB7XG4gICAgaWQ6ICdhaScsXG4gICAgdGl0bGU6ICdBSSBJbnRlZ3JhdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdDb25maWd1cmUgT3BlbkFJIGFuZCBPbGxhbWEvUGFyYWxsYW1hJyxcbiAgICBjb21wb25lbnQ6IEFJQ29uZmlndXJhdGlvbixcbiAgfSxcbiAge1xuICAgIGlkOiAnZGVwbG95bWVudCcsXG4gICAgdGl0bGU6ICdTZXJ2aWNlIERlcGxveW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGVwbG95IGFuZCBjb25maWd1cmUgQ0hPUlVTIGFnZW50IHNlcnZpY2VzJyxcbiAgICBjb21wb25lbnQ6IFNlcnZpY2VEZXBsb3ltZW50LFxuICB9LFxuICB7XG4gICAgaWQ6ICdjbHVzdGVyJyxcbiAgICB0aXRsZTogJ0NsdXN0ZXIgRm9ybWF0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ0pvaW4gb3IgY3JlYXRlIENIT1JVUyBhZ2VudCBjbHVzdGVyJyxcbiAgICBjb21wb25lbnQ6IENsdXN0ZXJGb3JtYXRpb24sXG4gIH0sXG4gIHtcbiAgICBpZDogJ3Rlc3RpbmcnLFxuICAgIHRpdGxlOiAnVGVzdGluZyAmIFZhbGlkYXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnVmFsaWRhdGUgY29uZmlndXJhdGlvbiBhbmQgdGVzdCBjb25uZWN0aXZpdHknLFxuICAgIGNvbXBvbmVudDogVGVzdGluZ1ZhbGlkYXRpb24sXG4gIH0sXG5dXG5cbmludGVyZmFjZSBDb25maWdEYXRhIHtcbiAgW2tleTogc3RyaW5nXTogYW55XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNldHVwUGFnZSgpIHtcbiAgY29uc3QgW2N1cnJlbnRTdGVwLCBzZXRDdXJyZW50U3RlcF0gPSB1c2VTdGF0ZSgwKVxuICBjb25zdCBbY29tcGxldGVkU3RlcHMsIHNldENvbXBsZXRlZFN0ZXBzXSA9IHVzZVN0YXRlKG5ldyBTZXQ8bnVtYmVyPigpKVxuICBjb25zdCBbY29uZmlnRGF0YSwgc2V0Q29uZmlnRGF0YV0gPSB1c2VTdGF0ZTxDb25maWdEYXRhPih7fSlcbiAgY29uc3QgW3N5c3RlbUluZm8sIHNldFN5c3RlbUluZm9dID0gdXNlU3RhdGU8YW55PihudWxsKVxuXG4gIC8vIExvYWQgcGVyc2lzdGVkIGRhdGEgYW5kIHN5c3RlbSBpbmZvcm1hdGlvbiBvbiBtb3VudFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxvYWRQZXJzaXN0ZWREYXRhKClcbiAgICBmZXRjaFN5c3RlbUluZm8oKVxuICB9LCBbXSlcblxuICAvLyBTYXZlIHNldHVwIHN0YXRlIHRvIGxvY2FsU3RvcmFnZSB3aGVuZXZlciBpdCBjaGFuZ2VzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2F2ZVNldHVwU3RhdGUoKVxuICB9LCBbY3VycmVudFN0ZXAsIGNvbXBsZXRlZFN0ZXBzLCBjb25maWdEYXRhXSlcblxuICBjb25zdCBsb2FkUGVyc2lzdGVkRGF0YSA9ICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2F2ZWRTdGF0ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjaG9ydXMtc2V0dXAtc3RhdGUnKVxuICAgICAgaWYgKHNhdmVkU3RhdGUpIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBKU09OLnBhcnNlKHNhdmVkU3RhdGUpXG4gICAgICAgIHNldEN1cnJlbnRTdGVwKHN0YXRlLmN1cnJlbnRTdGVwIHx8IDApXG4gICAgICAgIHNldENvbXBsZXRlZFN0ZXBzKG5ldyBTZXQoc3RhdGUuY29tcGxldGVkU3RlcHMgfHwgW10pKVxuICAgICAgICBzZXRDb25maWdEYXRhKHN0YXRlLmNvbmZpZ0RhdGEgfHwge30pXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIHBlcnNpc3RlZCBzZXR1cCBkYXRhOicsIGVycm9yKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHNhdmVTZXR1cFN0YXRlID0gKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgICAgY3VycmVudFN0ZXAsXG4gICAgICAgIGNvbXBsZXRlZFN0ZXBzOiBBcnJheS5mcm9tKGNvbXBsZXRlZFN0ZXBzKSxcbiAgICAgICAgY29uZmlnRGF0YSxcbiAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAgICAgIH1cbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjaG9ydXMtc2V0dXAtc3RhdGUnLCBKU09OLnN0cmluZ2lmeShzdGF0ZSkpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBzYXZlIHNldHVwIHN0YXRlOicsIGVycm9yKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNsZWFyUGVyc2lzdGVkRGF0YSA9ICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2Nob3J1cy1zZXR1cC1zdGF0ZScpXG4gICAgICAvLyBSZXNldCBzdGF0ZSB0byBpbml0aWFsIHZhbHVlc1xuICAgICAgc2V0Q3VycmVudFN0ZXAoMClcbiAgICAgIHNldENvbXBsZXRlZFN0ZXBzKG5ldyBTZXQ8bnVtYmVyPigpKVxuICAgICAgc2V0Q29uZmlnRGF0YSh7fSlcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGNsZWFyIHBlcnNpc3RlZCBkYXRhOicsIGVycm9yKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGZldGNoU3lzdGVtSW5mbyA9IGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL2FwaS9zZXR1cC9zeXN0ZW0nKVxuICAgICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgICAgICBzZXRTeXN0ZW1JbmZvKHJlc3VsdC5zeXN0ZW1faW5mbylcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGZldGNoIHN5c3RlbSBpbmZvOicsIGVycm9yKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVN0ZXBDb21wbGV0ZSA9IChzdGVwSW5kZXg6IG51bWJlciwgZGF0YTogYW55KSA9PiB7XG4gICAgY29uc29sZS5sb2coJ1NldHVwIFBhZ2U6IFN0ZXAgY29tcGxldGUnLCB7IHN0ZXBJbmRleCwgZGF0YSwgY3VycmVudENvbmZpZ0RhdGE6IGNvbmZpZ0RhdGEgfSlcbiAgICBzZXRDb21wbGV0ZWRTdGVwcyhwcmV2ID0+IG5ldyBTZXQoWy4uLnByZXYsIHN0ZXBJbmRleF0pKVxuICAgIHNldENvbmZpZ0RhdGEocHJldiA9PiB7XG4gICAgICBjb25zdCBuZXdDb25maWdEYXRhID0geyAuLi5wcmV2LCAuLi5kYXRhIH1cbiAgICAgIGNvbnNvbGUubG9nKCdTZXR1cCBQYWdlOiBVcGRhdGVkIGNvbmZpZ0RhdGEnLCB7IHByZXYsIGRhdGEsIG5ld0NvbmZpZ0RhdGEgfSlcbiAgICAgIHJldHVybiBuZXdDb25maWdEYXRhXG4gICAgfSlcbiAgICBcbiAgICAvLyBBdXRvLWFkdmFuY2UgdG8gbmV4dCBzdGVwXG4gICAgaWYgKHN0ZXBJbmRleCA8IFNFVFVQX1NURVBTLmxlbmd0aCAtIDEpIHtcbiAgICAgIHNldEN1cnJlbnRTdGVwKHN0ZXBJbmRleCArIDEpXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFNldHVwIGlzIGNvbXBsZXRlLCBjbGVhciBwZXJzaXN0ZWQgZGF0YSBhZnRlciBhIGRlbGF5XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY2xlYXJQZXJzaXN0ZWREYXRhKClcbiAgICAgIH0sIDIwMDApXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU3RlcEJhY2sgPSAoKSA9PiB7XG4gICAgaWYgKGN1cnJlbnRTdGVwID4gMCkge1xuICAgICAgc2V0Q3VycmVudFN0ZXAoY3VycmVudFN0ZXAgLSAxKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IEN1cnJlbnRTdGVwQ29tcG9uZW50ID0gU0VUVVBfU1RFUFNbY3VycmVudFN0ZXBdLmNvbXBvbmVudFxuXG4gIC8vIENoZWNrIGlmIHdlJ3JlIHJlc3VtaW5nIGZyb20gc2F2ZWQgZGF0YVxuICBjb25zdCBpc1Jlc3VtaW5nID0gY3VycmVudFN0ZXAgPiAwIHx8IGNvbXBsZXRlZFN0ZXBzLnNpemUgPiAwIHx8IE9iamVjdC5rZXlzKGNvbmZpZ0RhdGEpLmxlbmd0aCA+IDBcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwibWF4LXctN3hsIG14LWF1dG8gcHgtNCBzbTpweC02IGxnOnB4LTggcHktOFwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi04XCI+XG4gICAgICAgIDxoMSBjbGFzc05hbWU9XCJoZWFkaW5nLWhlcm8gbWItM1wiPlxuICAgICAgICAgIENIT1JVUyBBZ2VudCBTZXR1cFxuICAgICAgICA8L2gxPlxuICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWJvZHlcIj5cbiAgICAgICAgICBDb25maWd1cmUgeW91ciBkaXN0cmlidXRlZCBhZ2VudCBvcmNoZXN0cmF0aW9uIHBsYXRmb3JtIGluIHtTRVRVUF9TVEVQUy5sZW5ndGh9IHNpbXBsZSBzdGVwcy5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBSZXN1bWUgU2V0dXAgTm90aWZpY2F0aW9uICovfVxuICAgICAge2lzUmVzdW1pbmcgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTggYmctY2hvcnVzLXNlY29uZGFyeSBiZy1vcGFjaXR5LTIwIGJvcmRlciBib3JkZXItY2hvcnVzLXNlY29uZGFyeSByb3VuZGVkLWxnIHAtNlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1zdGFydCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1zdGFydFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtc2hyaW5rLTBcIj5cbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzTmFtZT1cImgtNSB3LTUgdGV4dC1jaG9ydXMtc2Vjb25kYXJ5IG10LTAuNVwiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiPlxuICAgICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZVdpZHRoPXsyfSBkPVwiTTEzIDE2aC0xdi00aC0xbTEtNGguMDFNMjEgMTJhOSA5IDAgMTEtMTggMCA5IDkgMCAwMTE4IDB6XCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWwtM1wiPlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtY2hvcnVzLXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICAgICAgU2V0dXAgUHJvZ3Jlc3MgUmVzdG9yZWRcbiAgICAgICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc21hbGwgdGV4dC1ncmF5LTMwMCBtdC0xXCI+XG4gICAgICAgICAgICAgICAgICBZb3VyIHByZXZpb3VzIHNldHVwIHByb2dyZXNzIGhhcyBiZWVuIHJlc3RvcmVkLiBZb3UncmUgY3VycmVudGx5IG9uIHN0ZXAge2N1cnJlbnRTdGVwICsgMX0gb2Yge1NFVFVQX1NURVBTLmxlbmd0aH0uXG4gICAgICAgICAgICAgICAgICB7Y29tcGxldGVkU3RlcHMuc2l6ZSA+IDAgJiYgYCBZb3UndmUgY29tcGxldGVkICR7Y29tcGxldGVkU3RlcHMuc2l6ZX0gc3RlcCR7Y29tcGxldGVkU3RlcHMuc2l6ZSAhPT0gMSA/ICdzJyA6ICcnfS5gfVxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJQZXJzaXN0ZWREYXRhfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJidG4tdGV4dFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIFN0YXJ0IE92ZXJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMSBsZzpncmlkLWNvbHMtNCBnYXAtMTJcIj5cbiAgICAgICAgey8qIFByb2dyZXNzIFNpZGViYXIgKi99XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGc6Y29sLXNwYW4tMVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZCBzdGlja3kgdG9wLThcIj5cbiAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJoZWFkaW5nLXN1YnNlY3Rpb24gbWItNlwiPlxuICAgICAgICAgICAgICBTZXR1cCBQcm9ncmVzc1xuICAgICAgICAgICAgPC9oMj5cbiAgICAgICAgICAgIDxuYXYgY2xhc3NOYW1lPVwic3BhY2UteS0yXCI+XG4gICAgICAgICAgICAgIHtTRVRVUF9TVEVQUy5tYXAoKHN0ZXAsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNDb21wbGV0ZWQgPSBjb21wbGV0ZWRTdGVwcy5oYXMoaW5kZXgpXG4gICAgICAgICAgICAgICAgY29uc3QgaXNDdXJyZW50ID0gaW5kZXggPT09IGN1cnJlbnRTdGVwXG4gICAgICAgICAgICAgICAgY29uc3QgaXNBY2Nlc3NpYmxlID0gaW5kZXggPD0gY3VycmVudFN0ZXAgfHwgY29tcGxldGVkU3RlcHMuaGFzKGluZGV4KVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAga2V5PXtzdGVwLmlkfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBpc0FjY2Vzc2libGUgJiYgc2V0Q3VycmVudFN0ZXAoaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWlzQWNjZXNzaWJsZX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgdy1mdWxsIHRleHQtbGVmdCBwcm9ncmVzcy1zdGVwICR7XG4gICAgICAgICAgICAgICAgICAgICAgaXNDdXJyZW50XG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdwcm9ncmVzcy1zdGVwLWN1cnJlbnQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlzQ29tcGxldGVkXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdwcm9ncmVzcy1zdGVwLWNvbXBsZXRlZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaXNBY2Nlc3NpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdwcm9ncmVzcy1zdGVwLWFjY2Vzc2libGUnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICdwcm9ncmVzcy1zdGVwLWRpc2FibGVkJ1xuICAgICAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC1zaHJpbmstMCBtci0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7aXNDb21wbGV0ZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGVja0NpcmNsZUljb24gY2xhc3NOYW1lPVwiaC01IHctNSB0ZXh0LWdyZWVuLTQwMFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YHctNSBoLTUgcm91bmRlZC1mdWxsIGJvcmRlci0yIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQteHMgZm9udC1tZWRpdW0gJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0N1cnJlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2JvcmRlci1jaG9ydXMtc2Vjb25kYXJ5IGJnLWNob3J1cy1zZWNvbmRhcnkgdGV4dC13aGl0ZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ2JvcmRlci1ncmF5LTYwMCB0ZXh0LWdyYXktNTAwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9YH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2luZGV4ICsgMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIG1pbi13LTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LW1lZGl1bSB0cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7c3RlcC50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXhzIG9wYWNpdHktNzUgdHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3N0ZXAuZGVzY3JpcHRpb259XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICB7aXNBY2Nlc3NpYmxlICYmICFpc0NvbXBsZXRlZCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0SWNvbiBjbGFzc05hbWU9XCJoLTQgdy00IG9wYWNpdHktNTBcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvbmF2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTggcHQtNiBib3JkZXItdCBib3JkZXItZ3JheS04MDBcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtYWxsIG1iLTNcIj5cbiAgICAgICAgICAgICAgICBQcm9ncmVzczoge2NvbXBsZXRlZFN0ZXBzLnNpemV9IG9mIHtTRVRVUF9TVEVQUy5sZW5ndGh9IHN0ZXBzXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctZnVsbCBiZy1ncmF5LTgwMCByb3VuZGVkLXNtIGgtMlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1jaG9ydXMtc2Vjb25kYXJ5IGgtMiByb3VuZGVkLXNtIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTUwMFwiXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogYCR7KGNvbXBsZXRlZFN0ZXBzLnNpemUgLyBTRVRVUF9TVEVQUy5sZW5ndGgpICogMTAwfSVgIH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgey8qIE1haW4gQ29udGVudCAqL31cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZzpjb2wtc3Bhbi0zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLThcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItM1wiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJoZWFkaW5nLXNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgIHtTRVRVUF9TVEVQU1tjdXJyZW50U3RlcF0udGl0bGV9XG4gICAgICAgICAgICAgICAgPC9oMj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtZ2hvc3RcIj5cbiAgICAgICAgICAgICAgICAgIFN0ZXAge2N1cnJlbnRTdGVwICsgMX0gb2Yge1NFVFVQX1NURVBTLmxlbmd0aH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtYm9keVwiPlxuICAgICAgICAgICAgICAgIHtTRVRVUF9TVEVQU1tjdXJyZW50U3RlcF0uZGVzY3JpcHRpb259XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8Q3VycmVudFN0ZXBDb21wb25lbnRcbiAgICAgICAgICAgICAgc3lzdGVtSW5mbz17c3lzdGVtSW5mb31cbiAgICAgICAgICAgICAgY29uZmlnRGF0YT17Y29uZmlnRGF0YX1cbiAgICAgICAgICAgICAgb25Db21wbGV0ZT17KGRhdGE6IGFueSkgPT4gaGFuZGxlU3RlcENvbXBsZXRlKGN1cnJlbnRTdGVwLCBkYXRhKX1cbiAgICAgICAgICAgICAgb25CYWNrPXtjdXJyZW50U3RlcCA+IDAgPyBoYW5kbGVTdGVwQmFjayA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgaXNDb21wbGV0ZWQ9e2NvbXBsZXRlZFN0ZXBzLmhhcyhjdXJyZW50U3RlcCl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59Il0sIm5hbWVzIjpbInVzZVN0YXRlIiwidXNlRWZmZWN0IiwiQ2hldnJvblJpZ2h0SWNvbiIsIkNoZWNrQ2lyY2xlSWNvbiIsIlRlcm1zQW5kQ29uZGl0aW9ucyIsIkxpY2Vuc2VWYWxpZGF0aW9uIiwiU3lzdGVtRGV0ZWN0aW9uIiwiUmVwb3NpdG9yeUNvbmZpZ3VyYXRpb24iLCJOZXR3b3JrQ29uZmlndXJhdGlvbiIsIlNlY3VyaXR5U2V0dXAiLCJBSUNvbmZpZ3VyYXRpb24iLCJTZXJ2aWNlRGVwbG95bWVudCIsIkNsdXN0ZXJGb3JtYXRpb24iLCJUZXN0aW5nVmFsaWRhdGlvbiIsIlNFVFVQX1NURVBTIiwiaWQiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiY29tcG9uZW50IiwiU2V0dXBQYWdlIiwiY3VycmVudFN0ZXAiLCJzZXRDdXJyZW50U3RlcCIsImNvbXBsZXRlZFN0ZXBzIiwic2V0Q29tcGxldGVkU3RlcHMiLCJTZXQiLCJjb25maWdEYXRhIiwic2V0Q29uZmlnRGF0YSIsInN5c3RlbUluZm8iLCJzZXRTeXN0ZW1JbmZvIiwibG9hZFBlcnNpc3RlZERhdGEiLCJmZXRjaFN5c3RlbUluZm8iLCJzYXZlU2V0dXBTdGF0ZSIsInNhdmVkU3RhdGUiLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwic3RhdGUiLCJKU09OIiwicGFyc2UiLCJlcnJvciIsImNvbnNvbGUiLCJBcnJheSIsImZyb20iLCJ0aW1lc3RhbXAiLCJEYXRlIiwidG9JU09TdHJpbmciLCJzZXRJdGVtIiwic3RyaW5naWZ5IiwiY2xlYXJQZXJzaXN0ZWREYXRhIiwicmVtb3ZlSXRlbSIsInJlc3BvbnNlIiwiZmV0Y2giLCJvayIsInJlc3VsdCIsImpzb24iLCJzeXN0ZW1faW5mbyIsImhhbmRsZVN0ZXBDb21wbGV0ZSIsInN0ZXBJbmRleCIsImRhdGEiLCJsb2ciLCJjdXJyZW50Q29uZmlnRGF0YSIsInByZXYiLCJuZXdDb25maWdEYXRhIiwibGVuZ3RoIiwic2V0VGltZW91dCIsImhhbmRsZVN0ZXBCYWNrIiwiQ3VycmVudFN0ZXBDb21wb25lbnQiLCJpc1Jlc3VtaW5nIiwic2l6ZSIsIk9iamVjdCIsImtleXMiLCJkaXYiLCJjbGFzc05hbWUiLCJoMSIsInAiLCJzdmciLCJmaWxsIiwidmlld0JveCIsInN0cm9rZSIsInBhdGgiLCJzdHJva2VMaW5lY2FwIiwic3Ryb2tlTGluZWpvaW4iLCJzdHJva2VXaWR0aCIsImQiLCJoMyIsImJ1dHRvbiIsIm9uQ2xpY2siLCJoMiIsIm5hdiIsIm1hcCIsInN0ZXAiLCJpbmRleCIsImlzQ29tcGxldGVkIiwiaGFzIiwiaXNDdXJyZW50IiwiaXNBY2Nlc3NpYmxlIiwiZGlzYWJsZWQiLCJzdHlsZSIsIndpZHRoIiwib25Db21wbGV0ZSIsIm9uQmFjayIsInVuZGVmaW5lZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/setup/page.tsx\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js":
|
|
/*!****************************************************************************************!*\
|
|
!*** ./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js ***!
|
|
\****************************************************************************************/
|
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("/**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nif (true) {\n (function() {\n'use strict';\n\nvar React = __webpack_require__(/*! next/dist/compiled/react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar REACT_CACHE_TYPE = Symbol.for('react.cache');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_CLIENT_REFERENCE$1 = Symbol.for('react.client.reference');\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_CLIENT_REFERENCE$1 || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n case REACT_CACHE_TYPE:\n {\n return 'Cache';\n }\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n }\n }\n\n return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n/**\n * Leverages native browser/VM stack frames to get proper details (e.g.\n * filename, line + col number) for a single component in a component stack. We\n * do this by:\n * (1) throwing and catching an error in the function - this will be our\n * control error.\n * (2) calling the component which will eventually throw an error that we'll\n * catch - this will be our sample error.\n * (3) diffing the control and sample error stacks to find the stack frame\n * which represents our component.\n */\n\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe[incompatible-type] It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n /**\n * Finding a common stack frame between sample and control errors can be\n * tricky given the different types and levels of stack trace truncation from\n * different JS VMs. So instead we'll attempt to control what that common\n * frame should be through this object method:\n * Having both the sample and control errors be in the function under the\n * `DescribeNativeComponentFrameRoot` property, + setting the `name` and\n * `displayName` properties of the function ensures that a stack\n * frame exists that has the method name `DescribeNativeComponentFrameRoot` in\n * it for both control and sample stacks.\n */\n\n\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n var control;\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe[prop-missing]\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n } // $FlowFixMe[prop-missing] found when upgrading Flow\n\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n } // TODO(luna): This will currently only throw if the function component\n // tries to access React/ReactDOM/props. We should probably make this throw\n // in simple components too\n\n\n var maybePromise = fn(); // If the function component returns a promise, it's likely an async\n // component, which we don't yet support. Attach a noop catch handler to\n // silence the error.\n // TODO: Implement component stacks for async client components?\n\n if (maybePromise && typeof maybePromise.catch === 'function') {\n maybePromise.catch(function () {});\n }\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n return [sample.stack, control.stack];\n }\n }\n\n return [null, null];\n }\n }; // $FlowFixMe[prop-missing]\n\n RunInRootFrame.DetermineComponentFrameRoot.displayName = 'DetermineComponentFrameRoot';\n var namePropDescriptor = Object.getOwnPropertyDescriptor(RunInRootFrame.DetermineComponentFrameRoot, 'name'); // Before ES6, the `name` property was not configurable.\n\n if (namePropDescriptor && namePropDescriptor.configurable) {\n // V8 utilizes a function's `name` property when generating a stack trace.\n Object.defineProperty(RunInRootFrame.DetermineComponentFrameRoot, // Configurable properties can be updated even if its writable descriptor\n // is set to `false`.\n // $FlowFixMe[cannot-write]\n 'name', {\n value: 'DetermineComponentFrameRoot'\n });\n }\n\n try {\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n\n if (sampleStack && controlStack) {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sampleStack.split('\\n');\n var controlLines = controlStack.split('\\n');\n var s = 0;\n var c = 0;\n\n while (s < sampleLines.length && !sampleLines[s].includes('DetermineComponentFrameRoot')) {\n s++;\n }\n\n while (c < controlLines.length && !controlLines[c].includes('DetermineComponentFrameRoot')) {\n c++;\n } // We couldn't find our intentionally injected common root frame, attempt\n // to find another common root frame by search from the bottom of the\n // control stack...\n\n\n if (s === sampleLines.length || c === controlLines.length) {\n s = sampleLines.length - 1;\n c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n if (true) {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\n// $FlowFixMe[method-unbinding]\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe[incompatible-use] This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement$1(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement$1(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement$1(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n }\n }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object'; // $FlowFixMe[incompatible-return]\n\n return type;\n }\n} // $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner$1.current && self && ReactCurrentOwner$1.current.stateNode !== self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner$1.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nfunction ReactElement(type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n}\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV$1(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n {\n checkKeyStringCoercion(maybeKey);\n }\n\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner$1.current, props);\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\nvar REACT_CLIENT_REFERENCE = Symbol.for('react.client.reference');\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner.current) {\n var name = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object' || !node) {\n return;\n }\n\n if (node.$$typeof === REACT_CLIENT_REFERENCE) ; else if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n if (type.$$typeof === REACT_CLIENT_REFERENCE) {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement(null);\n }\n }\n}\n\nvar didWarnAboutKeySpread = {};\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV$1(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n if (hasOwnProperty.call(props, 'key')) {\n var componentName = getComponentNameFromType(type);\n var keys = Object.keys(props).filter(function (k) {\n return k !== 'key';\n });\n var beforeExample = keys.length > 0 ? '{key: someKey, ' + keys.join(': ..., ') + ': ...}' : '{key: someKey}';\n\n if (!didWarnAboutKeySpread[componentName + beforeExample]) {\n var afterExample = keys.length > 0 ? '{' + keys.join(': ..., ') + ': ...}' : '{}';\n\n error('A props object containing a \"key\" prop is being spread into JSX:\\n' + ' let props = %s;\\n' + ' <%s {...props} />\\n' + 'React keys must be passed directly to JSX without using spread:\\n' + ' let props = %s;\\n' + ' <%s key={someKey} {...props} />', beforeExample, componentName, afterExample, componentName);\n\n didWarnAboutKeySpread[componentName + beforeExample] = true;\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n\nvar jsxDEV = jsxWithValidation ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsxDEV = jsxDEV;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWIsSUFBSSxJQUFxQztBQUN6QztBQUNBOztBQUVBLFlBQVksbUJBQU8sQ0FBQyxzR0FBMEI7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxpR0FBaUcsZUFBZTtBQUNoSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBO0FBQ0EsS0FBSyxHQUFHOztBQUVSLGtEQUFrRDtBQUNsRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSw0QkFBNEI7QUFDNUI7QUFDQSxxQ0FBcUM7O0FBRXJDLGdDQUFnQztBQUNoQztBQUNBOztBQUVBLGdDQUFnQzs7QUFFaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEVBQUU7OztBQUdGO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FB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O0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpQ0FBaUM7O0FBRWpDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0dBQWtHOztBQUVsRztBQUNBO0FBQ0EsRUFBRTs7O0FBR0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsV0FBVyxHQUFHO0FBQ2QsV0FB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bW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcz82NGRiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHJlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIChmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxudmFyIFJlYWN0ID0gcmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9yZWFjdFwiKTtcblxuLy8gQVRURU5USU9OXG4vLyBXaGVuIGFkZGluZyBuZXcgc3ltYm9scyB0byB0aGlzIGZpbGUsXG4vLyBQbGVhc2UgY29uc2lkZXIgYWxzbyBhZGRpbmcgdG8gJ3JlYWN0LWRldnRvb2xzLXNoYXJlZC9zcmMvYmFja2VuZC9SZWFjdFN5bWJvbHMnXG4vLyBUaGUgU3ltYm9sIHVzZWQgdG8gdGFnIHRoZSBSZWFjdEVsZW1lbnQtbGlrZSB0eXBlcy5cbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50Jyk7XG52YXIgUkVBQ1RfUE9SVEFMX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5wb3J0YWwnKTtcbnZhciBSRUFDVF9GUkFHTUVOVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZnJhZ21lbnQnKTtcbnZhciBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3RyaWN0X21vZGUnKTtcbnZhciBSRUFDVF9QUk9GSUxFUl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucHJvZmlsZXInKTtcbnZhciBSRUFDVF9QUk9WSURFUl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucHJvdmlkZXInKTtcbnZhciBSRUFDVF9DT05URVhUX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5jb250ZXh0Jyk7XG52YXIgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmZvcndhcmRfcmVmJyk7XG52YXIgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlJyk7XG52YXIgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpO1xudmFyIFJFQUNUX01FTU9fVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0Lm1lbW8nKTtcbnZhciBSRUFDVF9MQVpZX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5sYXp5Jyk7XG52YXIgUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5vZmZzY3JlZW4nKTtcbnZhciBSRUFDVF9DQUNIRV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuY2FjaGUnKTtcbnZhciBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgPSBTeW1ib2wuaXRlcmF0b3I7XG52YXIgRkFVWF9JVEVSQVRPUl9TWU1CT0wgPSAnQEBpdGVyYXRvcic7XG5mdW5jdGlvbiBnZXRJdGVyYXRvckZuKG1heWJlSXRlcmFibGUpIHtcbiAgaWYgKG1heWJlSXRlcmFibGUgPT09IG51bGwgfHwgdHlwZW9mIG1heWJlSXRlcmFibGUgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgbWF5YmVJdGVyYXRvciA9IE1BWUJFX0lURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW01BWUJFX0lURVJBVE9SX1NZTUJPTF0gfHwgbWF5YmVJdGVyYWJsZVtGQVVYX0lURVJBVE9SX1NZTUJPTF07XG5cbiAgaWYgKHR5cGVvZiBtYXliZUl0ZXJhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIG1heWJlSXRlcmF0b3I7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxudmFyIFJlYWN0U2hhcmVkSW50ZXJuYWxzID0gUmVhY3QuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ7XG5cbmZ1bmN0aW9uIGVycm9yKGZvcm1hdCkge1xuICB7XG4gICAge1xuICAgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yID4gMSA/IF9sZW4yIC0gMSA6IDApLCBfa2V5MiA9IDE7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgYXJnc1tfa2V5MiAtIDFdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICAgIH1cblxuICAgICAgcHJpbnRXYXJuaW5nKCdlcnJvcicsIGZvcm1hdCwgYXJncyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHByaW50V2FybmluZyhsZXZlbCwgZm9ybWF0LCBhcmdzKSB7XG4gIC8vIFdoZW4gY2hhbmdpbmcgdGhpcyBsb2dpYywgeW91IG1pZ2h0IHdhbnQgdG8gYWxzb1xuICAvLyB1cGRhdGUgY29uc29sZVdpdGhTdGFja0Rldi53d3cuanMgYXMgd2VsbC5cbiAge1xuICAgIHZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcbiAgICB2YXIgc3RhY2sgPSBSZWFjdERlYnVnQ3VycmVudEZyYW1lLmdldFN0YWNrQWRkZW5kdW0oKTtcblxuICAgIGlmIChzdGFjayAhPT0gJycpIHtcbiAgICAgIGZvcm1hdCArPSAnJXMnO1xuICAgICAgYXJncyA9IGFyZ3MuY29uY2F0KFtzdGFja10pO1xuICAgIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG5cblxuICAgIHZhciBhcmdzV2l0aEZvcm1hdCA9IGFyZ3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKGl0ZW0pO1xuICAgIH0pOyAvLyBDYXJlZnVsOiBSTiBjdXJyZW50bHkgZGVwZW5kcyBvbiB0aGlzIHByZWZpeFxuXG4gICAgYXJnc1dpdGhGb3JtYXQudW5zaGlmdCgnV2FybmluZzogJyArIGZvcm1hdCk7IC8vIFdlIGludGVudGlvbmFsbHkgZG9uJ3QgdXNlIHNwcmVhZCAob3IgLmFwcGx5KSBkaXJlY3RseSBiZWNhdXNlIGl0XG4gICAgLy8gYnJlYWtzIElFOTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMzYxMFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmdcblxuICAgIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKGNvbnNvbGVbbGV2ZWxdLCBjb25zb2xlLCBhcmdzV2l0aEZvcm1hdCk7XG4gIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxudmFyIGVuYWJsZVNjb3BlQVBJID0gZmFsc2U7IC8vIEV4cGVyaW1lbnRhbCBDcmVhdGUgRXZlbnQgSGFuZGxlIEFQSS5cbnZhciBlbmFibGVDYWNoZUVsZW1lbnQgPSBmYWxzZTtcbnZhciBlbmFibGVUcmFuc2l0aW9uVHJhY2luZyA9IGZhbHNlOyAvLyBObyBrbm93biBidWdzLCBidXQgbmVlZHMgcGVyZm9ybWFuY2UgdGVzdGluZ1xuXG52YXIgZW5hYmxlTGVnYWN5SGlkZGVuID0gZmFsc2U7IC8vIEVuYWJsZXMgdW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2sgZmVhdHVyZSBpbiBGaWJlclxuLy8gc3R1ZmYuIEludGVuZGVkIHRvIGVuYWJsZSBSZWFjdCBjb3JlIG1lbWJlcnMgdG8gbW9yZSBlYXNpbHkgZGVidWcgc2NoZWR1bGluZ1xuLy8gaXNzdWVzIGluIERFViBidWlsZHMuXG5cbnZhciBlbmFibGVEZWJ1Z1RyYWNpbmcgPSBmYWxzZTsgLy8gVHJhY2sgd2hpY2ggRmliZXIocykgc2NoZWR1bGUgcmVuZGVyIHdvcmsuXG5cbnZhciBSRUFDVF9DTElFTlRfUkVGRVJFTkNFJDEgPSBTeW1ib2wuZm9yKCdyZWFjdC5jbGllbnQucmVmZXJlbmNlJyk7XG5mdW5jdGlvbiBpc1ZhbGlkRWxlbWVudFR5cGUodHlwZSkge1xuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gLy8gTm90ZTogdHlwZW9mIG1pZ2h0IGJlIG90aGVyIHRoYW4gJ3N5bWJvbCcgb3IgJ251bWJlcicgKGUuZy4gaWYgaXQncyBhIHBvbHlmaWxsKS5cblxuXG4gIGlmICh0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEUgfHwgZW5hYmxlRGVidWdUcmFjaW5nICB8fCB0eXBlID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFIHx8IGVuYWJsZUxlZ2FjeUhpZGRlbiAgfHwgdHlwZSA9PT0gUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgfHwgZW5hYmxlU2NvcGVBUEkgIHx8IGVuYWJsZUNhY2hlRWxlbWVudCAgfHwgZW5hYmxlVHJhbnNpdGlvblRyYWNpbmcgKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwpIHtcbiAgICBpZiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9QUk9WSURFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIHx8IC8vIFRoaXMgbmVlZHMgdG8gaW5jbHVkZSBhbGwgcG9zc2libGUgbW9kdWxlIHJlZmVyZW5jZSBvYmplY3RcbiAgICAvLyB0eXBlcyBzdXBwb3J0ZWQgYnkgYW55IEZsaWdodCBjb25maWd1cmF0aW9uIGFueXdoZXJlIHNpbmNlXG4gICAgLy8gd2UgZG9uJ3Qga25vdyB3aGljaCBGbGlnaHQgYnVpbGQgdGhpcyB3aWxsIGVuZCB1cCBiZWluZyB1c2VkXG4gICAgLy8gd2l0aC5cbiAgICB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFJDEgfHwgdHlwZS5nZXRNb2R1bGVJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGdldFdyYXBwZWROYW1lKG91dGVyVHlwZSwgaW5uZXJUeXBlLCB3cmFwcGVyTmFtZSkge1xuICB2YXIgZGlzcGxheU5hbWUgPSBvdXRlclR5cGUuZGlzcGxheU5hbWU7XG5cbiAgaWYgKGRpc3BsYXlOYW1lKSB7XG4gICAgcmV0dXJuIGRpc3BsYXlOYW1lO1xuICB9XG5cbiAgdmFyIGZ1bmN0aW9uTmFtZSA9IGlubmVyVHlwZS5kaXNwbGF5TmFtZSB8fCBpbm5lclR5cGUubmFtZSB8fCAnJztcbiAgcmV0dXJuIGZ1bmN0aW9uTmFtZSAhPT0gJycgPyB3cmFwcGVyTmFtZSArIFwiKFwiICsgZnVuY3Rpb25OYW1lICsgXCIpXCIgOiB3cmFwcGVyTmFtZTtcbn0gLy8gS2VlcCBpbiBzeW5jIHdpdGggcmVhY3QtcmVjb25jaWxlci9nZXRDb21wb25lbnROYW1lRnJvbUZpYmVyXG5cblxuZnVuY3Rpb24gZ2V0Q29udGV4dE5hbWUodHlwZSkge1xuICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCAnQ29udGV4dCc7XG59IC8vIE5vdGUgdGhhdCB0aGUgcmVjb25jaWxlciBwYWNrYWdlIHNob3VsZCBnZW5lcmFsbHkgcHJlZmVyIHRvIHVzZSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKCkgaW5zdGVhZC5cblxuXG5mdW5jdGlvbiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSkge1xuICBpZiAodHlwZSA9PSBudWxsKSB7XG4gICAgLy8gSG9zdCByb290LCB0ZXh0IG5vZGUgb3IganVzdCBpbnZhbGlkIHR5cGUuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB7XG4gICAgaWYgKHR5cGVvZiB0eXBlLnRhZyA9PT0gJ251bWJlcicpIHtcbiAgICAgIGVycm9yKCdSZWNlaXZlZCBhbiB1bmV4cGVjdGVkIG9iamVjdCBpbiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoKS4gJyArICdUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8IG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XG4gICAgICByZXR1cm4gJ0ZyYWdtZW50JztcblxuICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICByZXR1cm4gJ1BvcnRhbCc7XG5cbiAgICBjYXNlIFJFQUNUX1BST0ZJTEVSX1RZUEU6XG4gICAgICByZXR1cm4gJ1Byb2ZpbGVyJztcblxuICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcbiAgICAgIHJldHVybiAnU3RyaWN0TW9kZSc7XG5cbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICByZXR1cm4gJ1N1c3BlbnNlJztcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgcmV0dXJuICdTdXNwZW5zZUxpc3QnO1xuXG4gICAgY2FzZSBSRUFDVF9DQUNIRV9UWVBFOlxuICAgICAge1xuICAgICAgICByZXR1cm4gJ0NhY2hlJztcbiAgICAgIH1cblxuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgIHZhciBjb250ZXh0ID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKGNvbnRleHQpICsgJy5Db25zdW1lcic7XG5cbiAgICAgIGNhc2UgUkVBQ1RfUFJPVklERVJfVFlQRTpcbiAgICAgICAgdmFyIHByb3ZpZGVyID0gdHlwZTtcbiAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKHByb3ZpZGVyLl9jb250ZXh0KSArICcuUHJvdmlkZXInO1xuXG4gICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgIHJldHVybiBnZXRXcmFwcGVkTmFtZSh0eXBlLCB0eXBlLnJlbmRlciwgJ0ZvcndhcmRSZWYnKTtcblxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgIHZhciBvdXRlck5hbWUgPSB0eXBlLmRpc3BsYXlOYW1lIHx8IG51bGw7XG5cbiAgICAgICAgaWYgKG91dGVyTmFtZSAhPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBvdXRlck5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUudHlwZSkgfHwgJ01lbW8nO1xuXG4gICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBsYXp5Q29tcG9uZW50ID0gdHlwZTtcbiAgICAgICAgICB2YXIgcGF5bG9hZCA9IGxhenlDb21wb25lbnQuX3BheWxvYWQ7XG4gICAgICAgICAgdmFyIGluaXQgPSBsYXp5Q29tcG9uZW50Ll9pbml0O1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoaW5pdChwYXlsb2FkKSk7XG4gICAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxudmFyIGFzc2lnbiA9IE9iamVjdC5hc3NpZ247XG5cbi8vIEhlbHBlcnMgdG8gcGF0Y2ggY29uc29sZS5sb2dzIHRvIGF2b2lkIGxvZ2dpbmcgZHVyaW5nIHNpZGUtZWZmZWN0IGZyZWVcbi8vIHJlcGxheWluZyBvbiByZW5kZXIgZnVuY3Rpb24uIFRoaXMgY3VycmVudGx5IG9ubHkgcGF0Y2hlcyB0aGUgb2JqZWN0XG4vLyBsYXppbHkgd2hpY2ggd29uJ3QgY292ZXIgaWYgdGhlIGxvZyBmdW5jdGlvbiB3YXMgZXh0cmFjdGVkIGVhZ2VybHkuXG4vLyBXZSBjb3VsZCBhbHNvIGVhZ2VybHkgcGF0Y2ggdGhlIG1ldGhvZC5cbnZhciBkaXNhYmxlZERlcHRoID0gMDtcbnZhciBwcmV2TG9nO1xudmFyIHByZXZJbmZvO1xudmFyIHByZXZXYXJuO1xudmFyIHByZXZFcnJvcjtcbnZhciBwcmV2R3JvdXA7XG52YXIgcHJldkdyb3VwQ29sbGFwc2VkO1xudmFyIHByZXZHcm91cEVuZDtcblxuZnVuY3Rpb24gZGlzYWJsZWRMb2coKSB7fVxuXG5kaXNhYmxlZExvZy5fX3JlYWN0RGlzYWJsZWRMb2cgPSB0cnVlO1xuZnVuY3Rpb24gZGlzYWJsZUxvZ3MoKSB7XG4gIHtcbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgICBwcmV2TG9nID0gY29uc29sZS5sb2c7XG4gICAgICBwcmV2SW5mbyA9IGNvbnNvbGUuaW5mbztcbiAgICAgIHByZXZXYXJuID0gY29uc29sZS53YXJuO1xuICAgICAgcHJldkVycm9yID0gY29uc29sZS5lcnJvcjtcbiAgICAgIHByZXZHcm91cCA9IGNvbnNvbGUuZ3JvdXA7XG4gICAgICBwcmV2R3JvdXBDb2xsYXBzZWQgPSBjb25zb2xlLmdyb3VwQ29sbGFwc2VkO1xuICAgICAgcHJldkdyb3VwRW5kID0gY29uc29sZS5ncm91cEVuZDsgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xOTA5OVxuXG4gICAgICB2YXIgcHJvcHMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IGRpc2FibGVkTG9nLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgfTsgLy8gJEZsb3dGaXhNZVtjYW5ub3Qtd3JpdGVdIEZsb3cgdGhpbmtzIGNvbnNvbGUgaXMgaW1tdXRhYmxlLlxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XG4gICAgICAgIGluZm86IHByb3BzLFxuICAgICAgICBsb2c6IHByb3BzLFxuICAgICAgICB3YXJuOiBwcm9wcyxcbiAgICAgICAgZXJyb3I6IHByb3BzLFxuICAgICAgICBncm91cDogcHJvcHMsXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBwcm9wcyxcbiAgICAgICAgZ3JvdXBFbmQ6IHByb3BzXG4gICAgICB9KTtcbiAgICAgIC8qIGVzbGludC1lbmFibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgfVxuXG4gICAgZGlzYWJsZWREZXB0aCsrO1xuICB9XG59XG5mdW5jdGlvbiByZWVuYWJsZUxvZ3MoKSB7XG4gIHtcbiAgICBkaXNhYmxlZERlcHRoLS07XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgICB2YXIgcHJvcHMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgIH07IC8vICRGbG93Rml4TWVbY2Fubm90LXdyaXRlXSBGbG93IHRoaW5rcyBjb25zb2xlIGlzIGltbXV0YWJsZS5cblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY29uc29sZSwge1xuICAgICAgICBsb2c6IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkxvZ1xuICAgICAgICB9KSxcbiAgICAgICAgaW5mbzogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2SW5mb1xuICAgICAgICB9KSxcbiAgICAgICAgd2FybjogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2V2FyblxuICAgICAgICB9KSxcbiAgICAgICAgZXJyb3I6IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkVycm9yXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cDogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZHcm91cENvbGxhcHNlZFxuICAgICAgICB9KSxcbiAgICAgICAgZ3JvdXBFbmQ6IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwRW5kXG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICAgIC8qIGVzbGludC1lbmFibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgfVxuXG4gICAgaWYgKGRpc2FibGVkRGVwdGggPCAwKSB7XG4gICAgICBlcnJvcignZGlzYWJsZWREZXB0aCBmZWxsIGJlbG93IHplcm8uICcgKyAnVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgfVxuICB9XG59XG5cbnZhciBSZWFjdEN1cnJlbnREaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcjtcbnZhciBwcmVmaXg7XG5mdW5jdGlvbiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShuYW1lLCBzb3VyY2UsIG93bmVyRm4pIHtcbiAge1xuICAgIGlmIChwcmVmaXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gRXh0cmFjdCB0aGUgVk0gc3BlY2lmaWMgcHJlZml4IHVzZWQgYnkgZWFjaCBsaW5lLlxuICAgICAgdHJ5IHtcbiAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgdmFyIG1hdGNoID0geC5zdGFjay50cmltKCkubWF0Y2goL1xcbiggKihhdCApPykvKTtcbiAgICAgICAgcHJlZml4ID0gbWF0Y2ggJiYgbWF0Y2hbMV0gfHwgJyc7XG4gICAgICB9XG4gICAgfSAvLyBXZSB1c2UgdGhlIHByZWZpeCB0byBlbnN1cmUgb3VyIHN0YWNrcyBsaW5lIHVwIHdpdGggbmF0aXZlIHN0YWNrIGZyYW1lcy5cblxuXG4gICAgcmV0dXJuICdcXG4nICsgcHJlZml4ICsgbmFtZTtcbiAgfVxufVxudmFyIHJlZW50cnkgPSBmYWxzZTtcbnZhciBjb21wb25lbnRGcmFtZUNhY2hlO1xuXG57XG4gIHZhciBQb3NzaWJseVdlYWtNYXAgPSB0eXBlb2YgV2Vha01hcCA9PT0gJ2Z1bmN0aW9uJyA/IFdlYWtNYXAgOiBNYXA7XG4gIGNvbXBvbmVudEZyYW1lQ2FjaGUgPSBuZXcgUG9zc2libHlXZWFrTWFwKCk7XG59XG4vKipcbiAqIExldmVyYWdlcyBuYXRpdmUgYnJvd3Nlci9WTSBzdGFjayBmcmFtZXMgdG8gZ2V0IHByb3BlciBkZXRhaWxzIChlLmcuXG4gKiBmaWxlbmFtZSwgbGluZSArIGNvbCBudW1iZXIpIGZvciBhIHNpbmdsZSBjb21wb25lbnQgaW4gYSBjb21wb25lbnQgc3RhY2suIFdlXG4gKiBkbyB0aGlzIGJ5OlxuICogICAoMSkgdGhyb3dpbmcgYW5kIGNhdGNoaW5nIGFuIGVycm9yIGluIHRoZSBmdW5jdGlvbiAtIHRoaXMgd2lsbCBiZSBvdXJcbiAqICAgICAgIGNvbnRyb2wgZXJyb3IuXG4gKiAgICgyKSBjYWxsaW5nIHRoZSBjb21wb25lbnQgd2hpY2ggd2lsbCBldmVudHVhbGx5IHRocm93IGFuIGVycm9yIHRoYXQgd2UnbGxcbiAqICAgICAgIGNhdGNoIC0gdGhpcyB3aWxsIGJlIG91ciBzYW1wbGUgZXJyb3IuXG4gKiAgICgzKSBkaWZmaW5nIHRoZSBjb250cm9sIGFuZCBzYW1wbGUgZXJyb3Igc3RhY2tzIHRvIGZpbmQgdGhlIHN0YWNrIGZyYW1lXG4gKiAgICAgICB3aGljaCByZXByZXNlbnRzIG91ciBjb21wb25lbnQuXG4gKi9cblxuXG5mdW5jdGlvbiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBjb25zdHJ1Y3QpIHtcbiAgLy8gSWYgc29tZXRoaW5nIGFza2VkIGZvciBhIHN0YWNrIGluc2lkZSBhIGZha2UgcmVuZGVyLCBpdCBzaG91bGQgZ2V0IGlnbm9yZWQuXG4gIGlmICghZm4gfHwgcmVlbnRyeSkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHtcbiAgICB2YXIgZnJhbWUgPSBjb21wb25lbnRGcmFtZUNhY2hlLmdldChmbik7XG5cbiAgICBpZiAoZnJhbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZyYW1lO1xuICAgIH1cbiAgfVxuXG4gIHJlZW50cnkgPSB0cnVlO1xuICB2YXIgcHJldmlvdXNQcmVwYXJlU3RhY2tUcmFjZSA9IEVycm9yLnByZXBhcmVTdGFja1RyYWNlOyAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS10eXBlXSBJdCBkb2VzIGFjY2VwdCB1bmRlZmluZWQuXG5cbiAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSB1bmRlZmluZWQ7XG4gIHZhciBwcmV2aW91c0Rpc3BhdGNoZXI7XG5cbiAge1xuICAgIHByZXZpb3VzRGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudDsgLy8gU2V0IHRoZSBkaXNwYXRjaGVyIGluIERFViBiZWNhdXNlIHRoaXMgbWlnaHQgYmUgY2FsbCBpbiB0aGUgcmVuZGVyIGZ1bmN0aW9uXG4gICAgLy8gZm9yIHdhcm5pbmdzLlxuXG4gICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50ID0gbnVsbDtcbiAgICBkaXNhYmxlTG9ncygpO1xuICB9XG4gIC8qKlxuICAgKiBGaW5kaW5nIGEgY29tbW9uIHN0YWNrIGZyYW1lIGJldHdlZW4gc2FtcGxlIGFuZCBjb250cm9sIGVycm9ycyBjYW4gYmVcbiAgICogdHJpY2t5IGdpdmVuIHRoZSBkaWZmZXJlbnQgdHlwZXMgYW5kIGxldmVscyBvZiBzdGFjayB0cmFjZSB0cnVuY2F0aW9uIGZyb21cbiAgICogZGlmZmVyZW50IEpTIFZNcy4gU28gaW5zdGVhZCB3ZSdsbCBhdHRlbXB0IHRvIGNvbnRyb2wgd2hhdCB0aGF0IGNvbW1vblxuICAgKiBmcmFtZSBzaG91bGQgYmUgdGhyb3VnaCB0aGlzIG9iamVjdCBtZXRob2Q6XG4gICAqIEhhdmluZyBib3RoIHRoZSBzYW1wbGUgYW5kIGNvbnRyb2wgZXJyb3JzIGJlIGluIHRoZSBmdW5jdGlvbiB1bmRlciB0aGVcbiAgICogYERlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWVSb290YCBwcm9wZXJ0eSwgKyBzZXR0aW5nIHRoZSBgbmFtZWAgYW5kXG4gICAqIGBkaXNwbGF5TmFtZWAgcHJvcGVydGllcyBvZiB0aGUgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IGEgc3RhY2tcbiAgICogZnJhbWUgZXhpc3RzIHRoYXQgaGFzIHRoZSBtZXRob2QgbmFtZSBgRGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZVJvb3RgIGluXG4gICAqIGl0IGZvciBib3RoIGNvbnRyb2wgYW5kIHNhbXBsZSBzdGFja3MuXG4gICAqL1xuXG5cbiAgdmFyIFJ1bkluUm9vdEZyYW1lID0ge1xuICAgIERldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdDogZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGNvbnRyb2w7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIFRoaXMgc2hvdWxkIHRocm93LlxuICAgICAgICBpZiAoY29uc3RydWN0KSB7XG4gICAgICAgICAgLy8gU29tZXRoaW5nIHNob3VsZCBiZSBzZXR0aW5nIHRoZSBwcm9wcyBpbiB0aGUgY29uc3RydWN0b3IuXG4gICAgICAgICAgdmFyIEZha2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICAgIH07IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXVxuXG5cbiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmFrZS5wcm90b3R5cGUsICdwcm9wcycsIHtcbiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAvLyBXZSB1c2UgYSB0aHJvd2luZyBzZXR0ZXIgaW5zdGVhZCBvZiBmcm96ZW4gb3Igbm9uLXdyaXRhYmxlIHByb3BzXG4gICAgICAgICAgICAgIC8vIGJlY2F1c2UgdGhhdCB3b24ndCB0aHJvdyBpbiBhIG5vbi1zdHJpY3QgbW9kZSBmdW5jdGlvbi5cbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgJiYgUmVmbGVjdC5jb25zdHJ1Y3QpIHtcbiAgICAgICAgICAgIC8vIFdlIGNvbnN0cnVjdCBhIGRpZmZlcmVudCBjb250cm9sIGZvciB0aGlzIGNhc2UgdG8gaW5jbHVkZSBhbnkgZXh0cmFcbiAgICAgICAgICAgIC8vIGZyYW1lcyBhZGRlZCBieSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBSZWZsZWN0LmNvbnN0cnVjdChGYWtlLCBbXSk7XG4gICAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBSZWZsZWN0LmNvbnN0cnVjdChmbiwgW10sIEZha2UpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBGYWtlLmNhbGwoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgICAgY29udHJvbCA9IHg7XG4gICAgICAgICAgICB9IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXSBmb3VuZCB3aGVuIHVwZ3JhZGluZyBGbG93XG5cblxuICAgICAgICAgICAgZm4uY2FsbChGYWtlLnByb3RvdHlwZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICAgIH0gLy8gVE9ETyhsdW5hKTogVGhpcyB3aWxsIGN1cnJlbnRseSBvbmx5IHRocm93IGlmIHRoZSBmdW5jdGlvbiBjb21wb25lbnRcbiAgICAgICAgICAvLyB0cmllcyB0byBhY2Nlc3MgUmVhY3QvUmVhY3RET00vcHJvcHMuIFdlIHNob3VsZCBwcm9iYWJseSBtYWtlIHRoaXMgdGhyb3dcbiAgICAgICAgICAvLyBpbiBzaW1wbGUgY29tcG9uZW50cyB0b29cblxuXG4gICAgICAgICAgdmFyIG1heWJlUHJvbWlzZSA9IGZuKCk7IC8vIElmIHRoZSBmdW5jdGlvbiBjb21wb25lbnQgcmV0dXJucyBhIHByb21pc2UsIGl0J3MgbGlrZWx5IGFuIGFzeW5jXG4gICAgICAgICAgLy8gY29tcG9uZW50LCB3aGljaCB3ZSBkb24ndCB5ZXQgc3VwcG9ydC4gQXR0YWNoIGEgbm9vcCBjYXRjaCBoYW5kbGVyIHRvXG4gICAgICAgICAgLy8gc2lsZW5jZSB0aGUgZXJyb3IuXG4gICAgICAgICAgLy8gVE9ETzogSW1wbGVtZW50IGNvbXBvbmVudCBzdGFja3MgZm9yIGFzeW5jIGNsaWVudCBjb21wb25lbnRzP1xuXG4gICAgICAgICAgaWYgKG1heWJlUHJvbWlzZSAmJiB0eXBlb2YgbWF5YmVQcm9taXNlLmNhdGNoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBtYXliZVByb21pc2UuY2F0Y2goZnVuY3Rpb24gKCkge30pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoc2FtcGxlKSB7XG4gICAgICAgIC8vIFRoaXMgaXMgaW5saW5lZCBtYW51YWxseSBiZWNhdXNlIGNsb3N1cmUgZG9lc24ndCBkbyBpdCBmb3IgdXMuXG4gICAgICAgIGlmIChzYW1wbGUgJiYgY29udHJvbCAmJiB0eXBlb2Ygc2FtcGxlLnN0YWNrID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJldHVybiBbc2FtcGxlLnN0YWNrLCBjb250cm9sLnN0YWNrXTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gW251bGwsIG51bGxdO1xuICAgIH1cbiAgfTsgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG5cbiAgUnVuSW5Sb290RnJhbWUuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LmRpc3BsYXlOYW1lID0gJ0RldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCc7XG4gIHZhciBuYW1lUHJvcERlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJ1bkluUm9vdEZyYW1lLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCwgJ25hbWUnKTsgLy8gQmVmb3JlIEVTNiwgdGhlIGBuYW1lYCBwcm9wZXJ0eSB3YXMgbm90IGNvbmZpZ3VyYWJsZS5cblxuICBpZiAobmFtZVByb3BEZXNjcmlwdG9yICYmIG5hbWVQcm9wRGVzY3JpcHRvci5jb25maWd1cmFibGUpIHtcbiAgICAvLyBWOCB1dGlsaXplcyBhIGZ1bmN0aW9uJ3MgYG5hbWVgIHByb3BlcnR5IHdoZW4gZ2VuZXJhdGluZyBhIHN0YWNrIHRyYWNlLlxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSdW5JblJvb3RGcmFtZS5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QsIC8vIENvbmZpZ3VyYWJsZSBwcm9wZXJ0aWVzIGNhbiBiZSB1cGRhdGVkIGV2ZW4gaWYgaXRzIHdyaXRhYmxlIGRlc2NyaXB0b3JcbiAgICAvLyBpcyBzZXQgdG8gYGZhbHNlYC5cbiAgICAvLyAkRmxvd0ZpeE1lW2Nhbm5vdC13cml0ZV1cbiAgICAnbmFtZScsIHtcbiAgICAgIHZhbHVlOiAnRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290J1xuICAgIH0pO1xuICB9XG5cbiAgdHJ5IHtcbiAgICB2YXIgX1J1bkluUm9vdEZyYW1lJERldGVyID0gUnVuSW5Sb290RnJhbWUuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290KCksXG4gICAgICAgIHNhbXBsZVN0YWNrID0gX1J1bkluUm9vdEZyYW1lJERldGVyWzBdLFxuICAgICAgICBjb250cm9sU3RhY2sgPSBfUnVuSW5Sb290RnJhbWUkRGV0ZXJbMV07XG5cbiAgICBpZiAoc2FtcGxlU3RhY2sgJiYgY29udHJvbFN0YWNrKSB7XG4gICAgICAvLyBUaGlzIGV4dHJhY3RzIHRoZSBmaXJzdCBmcmFtZSBmcm9tIHRoZSBzYW1wbGUgdGhhdCBpc24ndCBhbHNvIGluIHRoZSBjb250cm9sLlxuICAgICAgLy8gU2tpcHBpbmcgb25lIGZyYW1lIHRoYXQgd2UgYXNzdW1lIGlzIHRoZSBmcmFtZSB0aGF0IGNhbGxzIHRoZSB0d28uXG4gICAgICB2YXIgc2FtcGxlTGluZXMgPSBzYW1wbGVTdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgY29udHJvbExpbmVzID0gY29udHJvbFN0YWNrLnNwbGl0KCdcXG4nKTtcbiAgICAgIHZhciBzID0gMDtcbiAgICAgIHZhciBjID0gMDtcblxuICAgICAgd2hpbGUgKHMgPCBzYW1wbGVMaW5lcy5sZW5ndGggJiYgIXNhbXBsZUxpbmVzW3NdLmluY2x1ZGVzKCdEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QnKSkge1xuICAgICAgICBzKys7XG4gICAgICB9XG5cbiAgICAgIHdoaWxlIChjIDwgY29udHJvbExpbmVzLmxlbmd0aCAmJiAhY29udHJvbExpbmVzW2NdLmluY2x1ZGVzKCdEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QnKSkge1xuICAgICAgICBjKys7XG4gICAgICB9IC8vIFdlIGNvdWxkbid0IGZpbmQgb3VyIGludGVudGlvbmFsbHkgaW5qZWN0ZWQgY29tbW9uIHJvb3QgZnJhbWUsIGF0dGVtcHRcbiAgICAgIC8vIHRvIGZpbmQgYW5vdGhlciBjb21tb24gcm9vdCBmcmFtZSBieSBzZWFyY2ggZnJvbSB0aGUgYm90dG9tIG9mIHRoZVxuICAgICAgLy8gY29udHJvbCBzdGFjay4uLlxuXG5cbiAgICAgIGlmIChzID09PSBzYW1wbGVMaW5lcy5sZW5ndGggfHwgYyA9PT0gY29udHJvbExpbmVzLmxlbmd0aCkge1xuICAgICAgICBzID0gc2FtcGxlTGluZXMubGVuZ3RoIC0gMTtcbiAgICAgICAgYyA9IGNvbnRyb2xMaW5lcy5sZW5ndGggLSAxO1xuXG4gICAgICAgIHdoaWxlIChzID49IDEgJiYgYyA+PSAwICYmIHNhbXBsZUxpbmVzW3NdICE9PSBjb250cm9sTGluZXNbY10pIHtcbiAgICAgICAgICAvLyBXZSBleHBlY3QgYXQgbGVhc3Qgb25lIHN0YWNrIGZyYW1lIHRvIGJlIHNoYXJlZC5cbiAgICAgICAgICAvLyBUeXBpY2FsbHkgdGhpcyB3aWxsIGJlIHRoZSByb290IG1vc3Qgb25lLiBIb3dldmVyLCBzdGFjayBmcmFtZXMgbWF5IGJlXG4gICAgICAgICAgLy8gY3V0IG9mZiBkdWUgdG8gbWF4aW11bSBzdGFjayBsaW1pdHMuIEluIHRoaXMgY2FzZSwgb25lIG1heWJlIGN1dCBvZmZcbiAgICAgICAgICAvLyBlYXJsaWVyIHRoYW4gdGhlIG90aGVyLiBXZSBhc3N1bWUgdGhhdCB0aGUgc2FtcGxlIGlzIGxvbmdlciBvciB0aGUgc2FtZVxuICAgICAgICAgIC8vIGFuZCB0aGVyZSBmb3IgY3V0IG9mZiBlYXJsaWVyLiBTbyB3ZSBzaG91bGQgZmluZCB0aGUgcm9vdCBtb3N0IGZyYW1lIGluXG4gICAgICAgICAgLy8gdGhlIHNhbXBsZSBzb21ld2hlcmUgaW4gdGhlIGNvbnRyb2wuXG4gICAgICAgICAgYy0tO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZvciAoOyBzID49IDEgJiYgYyA+PSAwOyBzLS0sIGMtLSkge1xuICAgICAgICAvLyBOZXh0IHdlIGZpbmQgdGhlIGZpcnN0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHdoaWNoIHNob3VsZCBiZSB0aGVcbiAgICAgICAgLy8gZnJhbWUgdGhhdCBjYWxsZWQgb3VyIHNhbXBsZSBmdW5jdGlvbiBhbmQgdGhlIGNvbnRyb2wuXG4gICAgICAgIGlmIChzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgLy8gSW4gVjgsIHRoZSBmaXJzdCBsaW5lIGlzIGRlc2NyaWJpbmcgdGhlIG1lc3NhZ2UgYnV0IG90aGVyIFZNcyBkb24ndC5cbiAgICAgICAgICAvLyBJZiB3ZSdyZSBhYm91dCB0byByZXR1cm4gdGhlIGZpcnN0IGxpbmUsIGFuZCB0aGUgY29udHJvbCBpcyBhbHNvIG9uIHRoZSBzYW1lXG4gICAgICAgICAgLy8gbGluZSwgdGhhdCdzIGEgcHJldHR5IGdvb2QgaW5kaWNhdG9yIHRoYXQgb3VyIHNhbXBsZSB0aHJldyBhdCBzYW1lIGxpbmUgYXNcbiAgICAgICAgICAvLyB0aGUgY29udHJvbC4gSS5lLiBiZWZvcmUgd2UgZW50ZXJlZCB0aGUgc2FtcGxlIGZyYW1lLiBTbyB3ZSBpZ25vcmUgdGhpcyByZXN1bHQuXG4gICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHlvdSBwYXNzZWQgYSBjbGFzcyB0byBmdW5jdGlvbiBjb21wb25lbnQsIG9yIG5vbi1mdW5jdGlvbi5cbiAgICAgICAgICBpZiAocyAhPT0gMSB8fCBjICE9PSAxKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgIHMtLTtcbiAgICAgICAgICAgICAgYy0tOyAvLyBXZSBtYXkgc3RpbGwgaGF2ZSBzaW1pbGFyIGludGVybWVkaWF0ZSBmcmFtZXMgZnJvbSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgICAgICAgIC8vIFRoZSBuZXh0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHNob3VsZCBiZSBvdXIgbWF0Y2ggdGhvdWdoLlxuXG4gICAgICAgICAgICAgIGlmIChjIDwgMCB8fCBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgICAgICAgLy8gVjggYWRkcyBhIFwibmV3XCIgcHJlZml4IGZvciBuYXRpdmUgY2xhc3Nlcy4gTGV0J3MgcmVtb3ZlIGl0IHRvIG1ha2UgaXQgcHJldHRpZXIuXG4gICAgICAgICAgICAgICAgdmFyIF9mcmFtZSA9ICdcXG4nICsgc2FtcGxlTGluZXNbc10ucmVwbGFjZSgnIGF0IG5ldyAnLCAnIGF0ICcpOyAvLyBJZiBvdXIgY29tcG9uZW50IGZyYW1lIGlzIGxhYmVsZWQgXCI8YW5vbnltb3VzPlwiXG4gICAgICAgICAgICAgICAgLy8gYnV0IHdlIGhhdmUgYSB1c2VyLXByb3ZpZGVkIFwiZGlzcGxheU5hbWVcIlxuICAgICAgICAgICAgICAgIC8vIHNwbGljZSBpdCBpbiB0byBtYWtlIHRoZSBzdGFjayBtb3JlIHJlYWRhYmxlLlxuXG5cbiAgICAgICAgICAgICAgICBpZiAoZm4uZGlzcGxheU5hbWUgJiYgX2ZyYW1lLmluY2x1ZGVzKCc8YW5vbnltb3VzPicpKSB7XG4gICAgICAgICAgICAgICAgICBfZnJhbWUgPSBfZnJhbWUucmVwbGFjZSgnPGFub255bW91cz4nLCBmbi5kaXNwbGF5TmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRydWUpIHtcbiAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50RnJhbWVDYWNoZS5zZXQoZm4sIF9mcmFtZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSAvLyBSZXR1cm4gdGhlIGxpbmUgd2UgZm91bmQuXG5cblxuICAgICAgICAgICAgICAgIHJldHVybiBfZnJhbWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gd2hpbGUgKHMgPj0gMSAmJiBjID49IDApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIHJlZW50cnkgPSBmYWxzZTtcblxuICAgIHtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudCA9IHByZXZpb3VzRGlzcGF0Y2hlcjtcbiAgICAgIHJlZW5hYmxlTG9ncygpO1xuICAgIH1cblxuICAgIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gcHJldmlvdXNQcmVwYXJlU3RhY2tUcmFjZTtcbiAgfSAvLyBGYWxsYmFjayB0byBqdXN0IHVzaW5nIHRoZSBuYW1lIGlmIHdlIGNvdWxkbid0IG1ha2UgaXQgdGhyb3cuXG5cblxuICB2YXIgbmFtZSA9IGZuID8gZm4uZGlzcGxheU5hbWUgfHwgZm4ubmFtZSA6ICcnO1xuICB2YXIgc3ludGhldGljRnJhbWUgPSBuYW1lID8gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSkgOiAnJztcblxuICB7XG4gICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29tcG9uZW50RnJhbWVDYWNoZS5zZXQoZm4sIHN5bnRoZXRpY0ZyYW1lKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3ludGhldGljRnJhbWU7XG59XG5mdW5jdGlvbiBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWUoZm4sIHNvdXJjZSwgb3duZXJGbikge1xuICB7XG4gICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUoZm4sIGZhbHNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzaG91bGRDb25zdHJ1Y3QoQ29tcG9uZW50KSB7XG4gIHZhciBwcm90b3R5cGUgPSBDb21wb25lbnQucHJvdG90eXBlO1xuICByZXR1cm4gISEocHJvdG90eXBlICYmIHByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50KTtcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUsIHNvdXJjZSwgb3duZXJGbikge1xuXG4gIGlmICh0eXBlID09IG51bGwpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICB7XG4gICAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZSh0eXBlLCBzaG91bGRDb25zdHJ1Y3QodHlwZSkpO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUodHlwZSk7XG4gIH1cblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoJ1N1c3BlbnNlJyk7XG5cbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnU3VzcGVuc2VMaXN0Jyk7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgc3dpdGNoICh0eXBlLiQkdHlwZW9mKSB7XG4gICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgIHJldHVybiBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWUodHlwZS5yZW5kZXIpO1xuXG4gICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgLy8gTWVtbyBtYXkgY29udGFpbiBhbnkgY29tcG9uZW50IHR5cGUgc28gd2UgcmVjdXJzaXZlbHkgcmVzb2x2ZSBpdC5cbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVih0eXBlLnR5cGUsIHNvdXJjZSwgb3duZXJGbik7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIGxhenlDb21wb25lbnQgPSB0eXBlO1xuICAgICAgICAgIHZhciBwYXlsb2FkID0gbGF6eUNvbXBvbmVudC5fcGF5bG9hZDtcbiAgICAgICAgICB2YXIgaW5pdCA9IGxhenlDb21wb25lbnQuX2luaXQ7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gTGF6eSBtYXkgY29udGFpbiBhbnkgY29tcG9uZW50IHR5cGUgc28gd2UgcmVjdXJzaXZlbHkgcmVzb2x2ZSBpdC5cbiAgICAgICAgICAgIHJldHVybiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoaW5pdChwYXlsb2FkKSwgc291cmNlLCBvd25lckZuKTtcbiAgICAgICAgICB9IGNhdGNoICh4KSB7fVxuICAgICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG4vLyAkRmxvd0ZpeE1lW21ldGhvZC11bmJpbmRpbmddXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG52YXIgbG9nZ2VkVHlwZUZhaWx1cmVzID0ge307XG52YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcblxuZnVuY3Rpb24gc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShlbGVtZW50KSB7XG4gIHtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICB2YXIgc3RhY2sgPSBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoZWxlbWVudC50eXBlLCBlbGVtZW50Ll9zb3VyY2UsIG93bmVyID8gb3duZXIudHlwZSA6IG51bGwpO1xuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLnNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUkMS5zZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrUHJvcFR5cGVzKHR5cGVTcGVjcywgdmFsdWVzLCBsb2NhdGlvbiwgY29tcG9uZW50TmFtZSwgZWxlbWVudCkge1xuICB7XG4gICAgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtdXNlXSBUaGlzIGlzIG9rYXkgYnV0IEZsb3cgZG9lc24ndCBrbm93IGl0LlxuICAgIHZhciBoYXMgPSBGdW5jdGlvbi5jYWxsLmJpbmQoaGFzT3duUHJvcGVydHkpO1xuXG4gICAgZm9yICh2YXIgdHlwZVNwZWNOYW1lIGluIHR5cGVTcGVjcykge1xuICAgICAgaWYgKGhhcyh0eXBlU3BlY3MsIHR5cGVTcGVjTmFtZSkpIHtcbiAgICAgICAgdmFyIGVycm9yJDEgPSB2b2lkIDA7IC8vIFByb3AgdHlwZSB2YWxpZGF0aW9uIG1heSB0aHJvdy4gSW4gY2FzZSB0aGV5IGRvLCB3ZSBkb24ndCB3YW50IHRvXG4gICAgICAgIC8vIGZhaWwgdGhlIHJlbmRlciBwaGFzZSB3aGVyZSBpdCBkaWRuJ3QgZmFpbCBiZWZvcmUuIFNvIHdlIGxvZyBpdC5cbiAgICAgICAgLy8gQWZ0ZXIgdGhlc2UgaGF2ZSBiZWVuIGNsZWFuZWQgdXAsIHdlJ2xsIGxldCB0aGVtIHRocm93LlxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGFuIGludmFyaWFudCB0aGF0IGdldHMgY2F1Z2h0LiBJdCdzIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYmVoYXZpb3IgYXMgd2l0aG91dCB0aGlzIHN0YXRlbWVudCBleGNlcHQgd2l0aCBhIGJldHRlciBtZXNzYWdlLlxuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9wcm9kLWVycm9yLWNvZGVzXG4gICAgICAgICAgICB2YXIgZXJyID0gRXJyb3IoKGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJykgKyAnOiAnICsgbG9jYXRpb24gKyAnIHR5cGUgYCcgKyB0eXBlU3BlY05hbWUgKyAnYCBpcyBpbnZhbGlkOyAnICsgJ2l0IG11c3QgYmUgYSBmdW5jdGlvbiwgdXN1YWxseSBmcm9tIHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZSwgYnV0IHJlY2VpdmVkIGAnICsgdHlwZW9mIHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdICsgJ2AuJyArICdUaGlzIG9mdGVuIGhhcHBlbnMgYmVjYXVzZSBvZiB0eXBvcyBzdWNoIGFzIGBQcm9wVHlwZXMuZnVuY3Rpb25gIGluc3RlYWQgb2YgYFByb3BUeXBlcy5mdW5jYC4nKTtcbiAgICAgICAgICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGVycm9yJDEgPSB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSh2YWx1ZXMsIHR5cGVTcGVjTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIG51bGwsICdTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCcpO1xuICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgIGVycm9yJDEgPSBleDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlcnJvciQxICYmICEoZXJyb3IkMSBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEoZWxlbWVudCk7XG5cbiAgICAgICAgICBlcnJvcignJXM6IHR5cGUgc3BlY2lmaWNhdGlvbiBvZiAlcycgKyAnIGAlc2AgaXMgaW52YWxpZDsgdGhlIHR5cGUgY2hlY2tlciAnICsgJ2Z1bmN0aW9uIG11c3QgcmV0dXJuIGBudWxsYCBvciBhbiBgRXJyb3JgIGJ1dCByZXR1cm5lZCBhICVzLiAnICsgJ1lvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gcGFzcyBhbiBhcmd1bWVudCB0byB0aGUgdHlwZSBjaGVja2VyICcgKyAnY3JlYXRvciAoYXJyYXlPZiwgaW5zdGFuY2VPZiwgb2JqZWN0T2YsIG9uZU9mLCBvbmVPZlR5cGUsIGFuZCAnICsgJ3NoYXBlIGFsbCByZXF1aXJlIGFuIGFyZ3VtZW50KS4nLCBjb21wb25lbnROYW1lIHx8ICdSZWFjdCBjbGFzcycsIGxvY2F0aW9uLCB0eXBlU3BlY05hbWUsIHR5cGVvZiBlcnJvciQxKTtcblxuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50JDEobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyb3IkMSBpbnN0YW5jZW9mIEVycm9yICYmICEoZXJyb3IkMS5tZXNzYWdlIGluIGxvZ2dlZFR5cGVGYWlsdXJlcykpIHtcbiAgICAgICAgICAvLyBPbmx5IG1vbml0b3IgdGhpcyBmYWlsdXJlIG9uY2UgYmVjYXVzZSB0aGVyZSB0ZW5kcyB0byBiZSBhIGxvdCBvZiB0aGVcbiAgICAgICAgICAvLyBzYW1lIGVycm9yLlxuICAgICAgICAgIGxvZ2dlZFR5cGVGYWlsdXJlc1tlcnJvciQxLm1lc3NhZ2VdID0gdHJ1ZTtcbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGVsZW1lbnQpO1xuXG4gICAgICAgICAgZXJyb3IoJ0ZhaWxlZCAlcyB0eXBlOiAlcycsIGxvY2F0aW9uLCBlcnJvciQxLm1lc3NhZ2UpO1xuXG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgaXNBcnJheUltcGwgPSBBcnJheS5pc0FycmF5OyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVkZWNsYXJlXG5cbmZ1bmN0aW9uIGlzQXJyYXkoYSkge1xuICByZXR1cm4gaXNBcnJheUltcGwoYSk7XG59XG5cbi8qXG4gKiBUaGUgYCcnICsgdmFsdWVgIHBhdHRlcm4gKHVzZWQgaW4gcGVyZi1zZW5zaXRpdmUgY29kZSkgdGhyb3dzIGZvciBTeW1ib2xcbiAqIGFuZCBUZW1wb3JhbC4qIHR5cGVzLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMjIwNjQuXG4gKlxuICogVGhlIGZ1bmN0aW9ucyBpbiB0aGlzIG1vZHVsZSB3aWxsIHRocm93IGFuIGVhc2llci10by11bmRlcnN0YW5kLFxuICogZWFzaWVyLXRvLWRlYnVnIGV4Y2VwdGlvbiB3aXRoIGEgY2xlYXIgZXJyb3JzIG1lc3NhZ2UgbWVzc2FnZSBleHBsYWluaW5nIHRoZVxuICogcHJvYmxlbS4gKEluc3RlYWQgb2YgYSBjb25mdXNpbmcgZXhjZXB0aW9uIHRocm93biBpbnNpZGUgdGhlIGltcGxlbWVudGF0aW9uXG4gKiBvZiB0aGUgYHZhbHVlYCBvYmplY3QpLlxuICovXG4vLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dIG9ubHkgY2FsbGVkIGluIERFViwgc28gdm9pZCByZXR1cm4gaXMgbm90IHBvc3NpYmxlLlxuZnVuY3Rpb24gdHlwZU5hbWUodmFsdWUpIHtcbiAge1xuICAgIC8vIHRvU3RyaW5nVGFnIGlzIG5lZWRlZCBmb3IgbmFtZXNwYWNlZCB0eXBlcyBsaWtlIFRlbXBvcmFsLkluc3RhbnRcbiAgICB2YXIgaGFzVG9TdHJpbmdUYWcgPSB0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC50b1N0cmluZ1RhZztcbiAgICB2YXIgdHlwZSA9IGhhc1RvU3RyaW5nVGFnICYmIHZhbHVlW1N5bWJvbC50b1N0cmluZ1RhZ10gfHwgdmFsdWUuY29uc3RydWN0b3IubmFtZSB8fCAnT2JqZWN0JzsgLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXVxuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cbn0gLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXSBvbmx5IGNhbGxlZCBpbiBERVYsIHNvIHZvaWQgcmV0dXJuIGlzIG5vdCBwb3NzaWJsZS5cblxuXG5mdW5jdGlvbiB3aWxsQ29lcmNpb25UaHJvdyh2YWx1ZSkge1xuICB7XG4gICAgdHJ5IHtcbiAgICAgIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICAvLyBJZiB5b3UgZW5kZWQgdXAgaGVyZSBieSBmb2xsb3dpbmcgYW4gZXhjZXB0aW9uIGNhbGwgc3RhY2ssIGhlcmUncyB3aGF0J3NcbiAgLy8gaGFwcGVuZWQ6IHlvdSBzdXBwbGllZCBhbiBvYmplY3Qgb3Igc3ltYm9sIHZhbHVlIHRvIFJlYWN0IChhcyBhIHByb3AsIGtleSxcbiAgLy8gRE9NIGF0dHJpYnV0ZSwgQ1NTIHByb3BlcnR5LCBzdHJpbmcgcmVmLCBldGMuKSBhbmQgd2hlbiBSZWFjdCB0cmllZCB0b1xuICAvLyBjb2VyY2UgaXQgdG8gYSBzdHJpbmcgdXNpbmcgYCcnICsgdmFsdWVgLCBhbiBleGNlcHRpb24gd2FzIHRocm93bi5cbiAgLy9cbiAgLy8gVGhlIG1vc3QgY29tbW9uIHR5cGVzIHRoYXQgd2lsbCBjYXVzZSB0aGlzIGV4Y2VwdGlvbiBhcmUgYFN5bWJvbGAgaW5zdGFuY2VzXG4gIC8vIGFuZCBUZW1wb3JhbCBvYmplY3RzIGxpa2UgYFRlbXBvcmFsLkluc3RhbnRgLiBCdXQgYW55IG9iamVjdCB0aGF0IGhhcyBhXG4gIC8vIGB2YWx1ZU9mYCBvciBgW1N5bWJvbC50b1ByaW1pdGl2ZV1gIG1ldGhvZCB0aGF0IHRocm93cyB3aWxsIGFsc28gY2F1c2UgdGhpc1xuICAvLyBleGNlcHRpb24uIChMaWJyYXJ5IGF1dGhvcnMgZG8gdGhpcyB0byBwcmV2ZW50IHVzZXJzIGZyb20gdXNpbmcgYnVpbHQtaW5cbiAgLy8gbnVtZXJpYyBvcGVyYXRvcnMgbGlrZSBgK2Agb3IgY29tcGFyaXNvbiBvcGVyYXRvcnMgbGlrZSBgPj1gIGJlY2F1c2UgY3VzdG9tXG4gIC8vIG1ldGhvZHMgYXJlIG5lZWRlZCB0byBwZXJmb3JtIGFjY3VyYXRlIGFyaXRobWV0aWMgb3IgY29tcGFyaXNvbi4pXG4gIC8vXG4gIC8vIFRvIGZpeCB0aGUgcHJvYmxlbSwgY29lcmNlIHRoaXMgb2JqZWN0IG9yIHN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZyBiZWZvcmVcbiAgLy8gcGFzc2luZyBpdCB0byBSZWFjdC4gVGhlIG1vc3QgcmVsaWFibGUgd2F5IGlzIHVzdWFsbHkgYFN0cmluZyh2YWx1ZSlgLlxuICAvL1xuICAvLyBUbyBmaW5kIHdoaWNoIHZhbHVlIGlzIHRocm93aW5nLCBjaGVjayB0aGUgYnJvd3NlciBvciBkZWJ1Z2dlciBjb25zb2xlLlxuICAvLyBCZWZvcmUgdGhpcyBleGNlcHRpb24gd2FzIHRocm93biwgdGhlcmUgc2hvdWxkIGJlIGBjb25zb2xlLmVycm9yYCBvdXRwdXRcbiAgLy8gdGhhdCBzaG93cyB0aGUgdHlwZSAoU3ltYm9sLCBUZW1wb3JhbC5QbGFpbkRhdGUsIGV0Yy4pIHRoYXQgY2F1c2VkIHRoZVxuICAvLyBwcm9ibGVtIGFuZCBob3cgdGhhdCB0eXBlIHdhcyB1c2VkOiBrZXksIGF0cnJpYnV0ZSwgaW5wdXQgdmFsdWUgcHJvcCwgZXRjLlxuICAvLyBJbiBtb3N0IGNhc2VzLCB0aGlzIGNvbnNvbGUgb3V0cHV0IGFsc28gc2hvd3MgdGhlIGNvbXBvbmVudCBhbmQgaXRzXG4gIC8vIGFuY2VzdG9yIGNvbXBvbmVudHMgd2hlcmUgdGhlIGV4Y2VwdGlvbiBoYXBwZW5lZC5cbiAgLy9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG4gIHJldHVybiAnJyArIHZhbHVlO1xufVxuZnVuY3Rpb24gY2hlY2tLZXlTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICB7XG4gICAgaWYgKHdpbGxDb2VyY2lvblRocm93KHZhbHVlKSkge1xuICAgICAgZXJyb3IoJ1RoZSBwcm92aWRlZCBrZXkgaXMgYW4gdW5zdXBwb3J0ZWQgdHlwZSAlcy4nICsgJyBUaGlzIHZhbHVlIG11c3QgYmUgY29lcmNlZCB0byBhIHN0cmluZyBiZWZvcmUgdXNpbmcgaXQgaGVyZS4nLCB0eXBlTmFtZSh2YWx1ZSkpO1xuXG4gICAgICByZXR1cm4gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTsgLy8gdGhyb3cgKHRvIGhlbHAgY2FsbGVycyBmaW5kIHRyb3VibGVzaG9vdGluZyBjb21tZW50cylcbiAgICB9XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudE93bmVyJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRPd25lcjtcbnZhciBSRVNFUlZFRF9QUk9QUyA9IHtcbiAga2V5OiB0cnVlLFxuICByZWY6IHRydWUsXG4gIF9fc2VsZjogdHJ1ZSxcbiAgX19zb3VyY2U6IHRydWVcbn07XG52YXIgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd247XG52YXIgc3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd247XG52YXIgZGlkV2FybkFib3V0U3RyaW5nUmVmcztcblxue1xuICBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzID0ge307XG59XG5cbmZ1bmN0aW9uIGhhc1ZhbGlkUmVmKGNvbmZpZykge1xuICB7XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCAncmVmJykpIHtcbiAgICAgIHZhciBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNvbmZpZywgJ3JlZicpLmdldDtcblxuICAgICAgaWYgKGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmcpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb25maWcucmVmICE9PSB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGhhc1ZhbGlkS2V5KGNvbmZpZykge1xuICB7XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCAna2V5JykpIHtcbiAgICAgIHZhciBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNvbmZpZywgJ2tleScpLmdldDtcblxuICAgICAgaWYgKGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmcpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb25maWcua2V5ICE9PSB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIHdhcm5JZlN0cmluZ1JlZkNhbm5vdEJlQXV0b0NvbnZlcnRlZChjb25maWcsIHNlbGYpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgY29uZmlnLnJlZiA9PT0gJ3N0cmluZycgJiYgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50ICYmIHNlbGYgJiYgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50LnN0YXRlTm9kZSAhPT0gc2VsZikge1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50LnR5cGUpO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dFN0cmluZ1JlZnNbY29tcG9uZW50TmFtZV0pIHtcbiAgICAgICAgZXJyb3IoJ0NvbXBvbmVudCBcIiVzXCIgY29udGFpbnMgdGhlIHN0cmluZyByZWYgXCIlc1wiLiAnICsgJ1N1cHBvcnQgZm9yIHN0cmluZyByZWZzIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSBtYWpvciByZWxlYXNlLiAnICsgJ1RoaXMgY2FzZSBjYW5ub3QgYmUgYXV0b21hdGljYWxseSBjb252ZXJ0ZWQgdG8gYW4gYXJyb3cgZnVuY3Rpb24uICcgKyAnV2UgYXNrIHlvdSB0byBtYW51YWxseSBmaXggdGhpcyBjYXNlIGJ5IHVzaW5nIHVzZVJlZigpIG9yIGNyZWF0ZVJlZigpIGluc3RlYWQuICcgKyAnTGVhcm4gbW9yZSBhYm91dCB1c2luZyByZWZzIHNhZmVseSBoZXJlOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zdHJpY3QtbW9kZS1zdHJpbmctcmVmJywgZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKFJlYWN0Q3VycmVudE93bmVyJDEuY3VycmVudC50eXBlKSwgY29uZmlnLnJlZik7XG5cbiAgICAgICAgZGlkV2FybkFib3V0U3RyaW5nUmVmc1tjb21wb25lbnROYW1lXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGRlZmluZUtleVByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSkge1xuICB7XG4gICAgdmFyIHdhcm5BYm91dEFjY2Vzc2luZ0tleSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmICghc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24pIHtcbiAgICAgICAgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCclczogYGtleWAgaXMgbm90IGEgcHJvcC4gVHJ5aW5nIHRvIGFjY2VzcyBpdCB3aWxsIHJlc3VsdCAnICsgJ2luIGB1bmRlZmluZWRgIGJlaW5nIHJldHVybmVkLiBJZiB5b3UgbmVlZCB0byBhY2Nlc3MgdGhlIHNhbWUgJyArICd2YWx1ZSB3aXRoaW4gdGhlIGNoaWxkIGNvbXBvbmVudCwgeW91IHNob3VsZCBwYXNzIGl0IGFzIGEgZGlmZmVyZW50ICcgKyAncHJvcC4gKGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zcGVjaWFsLXByb3BzKScsIGRpc3BsYXlOYW1lKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgd2FybkFib3V0QWNjZXNzaW5nS2V5LmlzUmVhY3RXYXJuaW5nID0gdHJ1ZTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvcHMsICdrZXknLCB7XG4gICAgICBnZXQ6IHdhcm5BYm91dEFjY2Vzc2luZ0tleSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRlZmluZVJlZlByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSkge1xuICB7XG4gICAgdmFyIHdhcm5BYm91dEFjY2Vzc2luZ1JlZiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmICghc3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd24pIHtcbiAgICAgICAgc3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd24gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCclczogYHJlZmAgaXMgbm90IGEgcHJvcC4gVHJ5aW5nIHRvIGFjY2VzcyBpdCB3aWxsIHJlc3VsdCAnICsgJ2luIGB1bmRlZmluZWRgIGJlaW5nIHJldHVybmVkLiBJZiB5b3UgbmVlZCB0byBhY2Nlc3MgdGhlIHNhbWUgJyArICd2YWx1ZSB3aXRoaW4gdGhlIGNoaWxkIGNvbXBvbmVudCwgeW91IHNob3VsZCBwYXNzIGl0IGFzIGEgZGlmZmVyZW50ICcgKyAncHJvcC4gKGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zcGVjaWFsLXByb3BzKScsIGRpc3BsYXlOYW1lKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgd2FybkFib3V0QWNjZXNzaW5nUmVmLmlzUmVhY3RXYXJuaW5nID0gdHJ1ZTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvcHMsICdyZWYnLCB7XG4gICAgICBnZXQ6IHdhcm5BYm91dEFjY2Vzc2luZ1JlZixcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9XG59XG4vKipcbiAqIEZhY3RvcnkgbWV0aG9kIHRvIGNyZWF0ZSBhIG5ldyBSZWFjdCBlbGVtZW50LiBUaGlzIG5vIGxvbmdlciBhZGhlcmVzIHRvXG4gKiB0aGUgY2xhc3MgcGF0dGVybiwgc28gZG8gbm90IHVzZSBuZXcgdG8gY2FsbCBpdC4gQWxzbywgaW5zdGFuY2VvZiBjaGVja1xuICogd2lsbCBub3Qgd29yay4gSW5zdGVhZCB0ZXN0ICQkdHlwZW9mIGZpZWxkIGFnYWluc3QgU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpIHRvIGNoZWNrXG4gKiBpZiBzb21ldGhpbmcgaXMgYSBSZWFjdCBFbGVtZW50LlxuICpcbiAqIEBwYXJhbSB7Kn0gdHlwZVxuICogQHBhcmFtIHsqfSBwcm9wc1xuICogQHBhcmFtIHsqfSBrZXlcbiAqIEBwYXJhbSB7c3RyaW5nfG9iamVjdH0gcmVmXG4gKiBAcGFyYW0geyp9IG93bmVyXG4gKiBAcGFyYW0geyp9IHNlbGYgQSAqdGVtcG9yYXJ5KiBoZWxwZXIgdG8gZGV0ZWN0IHBsYWNlcyB3aGVyZSBgdGhpc2AgaXNcbiAqIGRpZmZlcmVudCBmcm9tIHRoZSBgb3duZXJgIHdoZW4gUmVhY3QuY3JlYXRlRWxlbWVudCBpcyBjYWxsZWQsIHNvIHRoYXQgd2VcbiAqIGNhbiB3YXJuLiBXZSB3YW50IHRvIGdldCByaWQgb2Ygb3duZXIgYW5kIHJlcGxhY2Ugc3RyaW5nIGByZWZgcyB3aXRoIGFycm93XG4gKiBmdW5jdGlvbnMsIGFuZCBhcyBsb25nIGFzIGB0aGlzYCBhbmQgb3duZXIgYXJlIHRoZSBzYW1lLCB0aGVyZSB3aWxsIGJlIG5vXG4gKiBjaGFuZ2UgaW4gYmVoYXZpb3IuXG4gKiBAcGFyYW0geyp9IHNvdXJjZSBBbiBhbm5vdGF0aW9uIG9iamVjdCAoYWRkZWQgYnkgYSB0cmFuc3BpbGVyIG9yIG90aGVyd2lzZSlcbiAqIGluZGljYXRpbmcgZmlsZW5hbWUsIGxpbmUgbnVtYmVyLCBhbmQvb3Igb3RoZXIgaW5mb3JtYXRpb24uXG4gKiBAaW50ZXJuYWxcbiAqL1xuXG5cbmZ1bmN0aW9uIFJlYWN0RWxlbWVudCh0eXBlLCBrZXksIHJlZiwgc2VsZiwgc291cmNlLCBvd25lciwgcHJvcHMpIHtcbiAgdmFyIGVsZW1lbnQgPSB7XG4gICAgLy8gVGhpcyB0YWcgYWxsb3dzIHVzIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoaXMgYXMgYSBSZWFjdCBFbGVtZW50XG4gICAgJCR0eXBlb2Y6IFJFQUNUX0VMRU1FTlRfVFlQRSxcbiAgICAvLyBCdWlsdC1pbiBwcm9wZXJ0aWVzIHRoYXQgYmVsb25nIG9uIHRoZSBlbGVtZW50XG4gICAgdHlwZTogdHlwZSxcbiAgICBrZXk6IGtleSxcbiAgICByZWY6IHJlZixcbiAgICBwcm9wczogcHJvcHMsXG4gICAgLy8gUmVjb3JkIHRoZSBjb21wb25lbnQgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIHRoaXMgZWxlbWVudC5cbiAgICBfb3duZXI6IG93bmVyXG4gIH07XG5cbiAge1xuICAgIC8vIFRoZSB2YWxpZGF0aW9uIGZsYWcgaXMgY3VycmVudGx5IG11dGF0aXZlLiBXZSBwdXQgaXQgb25cbiAgICAvLyBhbiBleHRlcm5hbCBiYWNraW5nIHN0b3JlIHNvIHRoYXQgd2UgY2FuIGZyZWV6ZSB0aGUgd2hvbGUgb2JqZWN0LlxuICAgIC8vIFRoaXMgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSBXZWFrTWFwIG9uY2UgdGhleSBhcmUgaW1wbGVtZW50ZWQgaW5cbiAgICAvLyBjb21tb25seSB1c2VkIGRldmVsb3BtZW50IGVudmlyb25tZW50cy5cbiAgICBlbGVtZW50Ll9zdG9yZSA9IHt9OyAvLyBUbyBtYWtlIGNvbXBhcmluZyBSZWFjdEVsZW1lbnRzIGVhc2llciBmb3IgdGVzdGluZyBwdXJwb3Nlcywgd2UgbWFrZVxuICAgIC8vIHRoZSB2YWxpZGF0aW9uIGZsYWcgbm9uLWVudW1lcmFibGUgKHdoZXJlIHBvc3NpYmxlLCB3aGljaCBzaG91bGRcbiAgICAvLyBpbmNsdWRlIGV2ZXJ5IGVudmlyb25tZW50IHdlIHJ1biB0ZXN0cyBpbiksIHNvIHRoZSB0ZXN0IGZyYW1ld29ya1xuICAgIC8vIGlnbm9yZXMgaXQuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudC5fc3RvcmUsICd2YWxpZGF0ZWQnLCB7XG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiBmYWxzZVxuICAgIH0pOyAvLyBzZWxmIGFuZCBzb3VyY2UgYXJlIERFViBvbmx5IHByb3BlcnRpZXMuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudCwgJ19zZWxmJywge1xuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgdmFsdWU6IHNlbGZcbiAgICB9KTsgLy8gVHdvIGVsZW1lbnRzIGNyZWF0ZWQgaW4gdHdvIGRpZmZlcmVudCBwbGFjZXMgc2hvdWxkIGJlIGNvbnNpZGVyZWRcbiAgICAvLyBlcXVhbCBmb3IgdGVzdGluZyBwdXJwb3NlcyBhbmQgdGhlcmVmb3JlIHdlIGhpZGUgaXQgZnJvbSBlbnVtZXJhdGlvbi5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX3NvdXJjZScsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgIHZhbHVlOiBzb3VyY2VcbiAgICB9KTtcblxuICAgIGlmIChPYmplY3QuZnJlZXplKSB7XG4gICAgICBPYmplY3QuZnJlZXplKGVsZW1lbnQucHJvcHMpO1xuICAgICAgT2JqZWN0LmZyZWV6ZShlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn1cbi8qKlxuICogaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0anMvcmZjcy9wdWxsLzEwN1xuICogQHBhcmFtIHsqfSB0eXBlXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAqL1xuXG5mdW5jdGlvbiBqc3hERVYkMSh0eXBlLCBjb25maWcsIG1heWJlS2V5LCBzb3VyY2UsIHNlbGYpIHtcbiAge1xuICAgIHZhciBwcm9wTmFtZTsgLy8gUmVzZXJ2ZWQgbmFtZXMgYXJlIGV4dHJhY3RlZFxuXG4gICAgdmFyIHByb3BzID0ge307XG4gICAgdmFyIGtleSA9IG51bGw7XG4gICAgdmFyIHJlZiA9IG51bGw7IC8vIEN1cnJlbnRseSwga2V5IGNhbiBiZSBzcHJlYWQgaW4gYXMgYSBwcm9wLiBUaGlzIGNhdXNlcyBhIHBvdGVudGlhbFxuICAgIC8vIGlzc3VlIGlmIGtleSBpcyBhbHNvIGV4cGxpY2l0bHkgZGVjbGFyZWQgKGllLiA8ZGl2IHsuLi5wcm9wc30ga2V5PVwiSGlcIiAvPlxuICAgIC8vIG9yIDxkaXYga2V5PVwiSGlcIiB7Li4ucHJvcHN9IC8+ICkuIFdlIHdhbnQgdG8gZGVwcmVjYXRlIGtleSBzcHJlYWQsXG4gICAgLy8gYnV0IGFzIGFuIGludGVybWVkaWFyeSBzdGVwLCB3ZSB3aWxsIHVzZSBqc3hERVYgZm9yIGV2ZXJ5dGhpbmcgZXhjZXB0XG4gICAgLy8gPGRpdiB7Li4ucHJvcHN9IGtleT1cIkhpXCIgLz4sIGJlY2F1c2Ugd2UgYXJlbid0IGN1cnJlbnRseSBhYmxlIHRvIHRlbGwgaWZcbiAgICAvLyBrZXkgaXMgZXhwbGljaXRseSBkZWNsYXJlZCB0byBiZSB1bmRlZmluZWQgb3Igbm90LlxuXG4gICAgaWYgKG1heWJlS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHtcbiAgICAgICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihtYXliZUtleSk7XG4gICAgICB9XG5cbiAgICAgIGtleSA9ICcnICsgbWF5YmVLZXk7XG4gICAgfVxuXG4gICAgaWYgKGhhc1ZhbGlkS2V5KGNvbmZpZykpIHtcbiAgICAgIHtcbiAgICAgICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihjb25maWcua2V5KTtcbiAgICAgIH1cblxuICAgICAga2V5ID0gJycgKyBjb25maWcua2V5O1xuICAgIH1cblxuICAgIGlmIChoYXNWYWxpZFJlZihjb25maWcpKSB7XG4gICAgICByZWYgPSBjb25maWcucmVmO1xuICAgICAgd2FybklmU3RyaW5nUmVmQ2Fubm90QmVBdXRvQ29udmVydGVkKGNvbmZpZywgc2VsZik7XG4gICAgfSAvLyBSZW1haW5pbmcgcHJvcGVydGllcyBhcmUgYWRkZWQgdG8gYSBuZXcgcHJvcHMgb2JqZWN0XG5cblxuICAgIGZvciAocHJvcE5hbWUgaW4gY29uZmlnKSB7XG4gICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsIHByb3BOYW1lKSAmJiAhUkVTRVJWRURfUFJPUFMuaGFzT3duUHJvcGVydHkocHJvcE5hbWUpKSB7XG4gICAgICAgIHByb3BzW3Byb3BOYW1lXSA9IGNvbmZpZ1twcm9wTmFtZV07XG4gICAgICB9XG4gICAgfSAvLyBSZXNvbHZlIGRlZmF1bHQgcHJvcHNcblxuXG4gICAgaWYgKHR5cGUgJiYgdHlwZS5kZWZhdWx0UHJvcHMpIHtcbiAgICAgIHZhciBkZWZhdWx0UHJvcHMgPSB0eXBlLmRlZmF1bHRQcm9wcztcblxuICAgICAgZm9yIChwcm9wTmFtZSBpbiBkZWZhdWx0UHJvcHMpIHtcbiAgICAgICAgaWYgKHByb3BzW3Byb3BOYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gZGVmYXVsdFByb3BzW3Byb3BOYW1lXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChrZXkgfHwgcmVmKSB7XG4gICAgICB2YXIgZGlzcGxheU5hbWUgPSB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyA/IHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8ICdVbmtub3duJyA6IHR5cGU7XG5cbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlZikge1xuICAgICAgICBkZWZpbmVSZWZQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBSZWFjdEVsZW1lbnQodHlwZSwga2V5LCByZWYsIHNlbGYsIHNvdXJjZSwgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50LCBwcm9wcyk7XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudE93bmVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50T3duZXI7XG52YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG52YXIgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmNsaWVudC5yZWZlcmVuY2UnKTtcblxuZnVuY3Rpb24gc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZWxlbWVudCkge1xuICB7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgdmFyIHN0YWNrID0gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGVsZW1lbnQudHlwZSwgZWxlbWVudC5fc291cmNlLCBvd25lciA/IG93bmVyLnR5cGUgOiBudWxsKTtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuc2V0RXh0cmFTdGFja0ZyYW1lKHN0YWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5zZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbnZhciBwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93bjtcblxue1xuICBwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93biA9IGZhbHNlO1xufVxuLyoqXG4gKiBWZXJpZmllcyB0aGUgb2JqZWN0IGlzIGEgUmVhY3RFbGVtZW50LlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNpc3ZhbGlkZWxlbWVudFxuICogQHBhcmFtIHs/b2JqZWN0fSBvYmplY3RcbiAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgYG9iamVjdGAgaXMgYSBSZWFjdEVsZW1lbnQuXG4gKiBAZmluYWxcbiAqL1xuXG5cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50KG9iamVjdCkge1xuICB7XG4gICAgcmV0dXJuIHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdCAhPT0gbnVsbCAmJiBvYmplY3QuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKSB7XG4gIHtcbiAgICBpZiAoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCkge1xuICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC50eXBlKTtcblxuICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuICdcXG5cXG5DaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgJyArIG5hbWUgKyAnYC4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bShzb3VyY2UpIHtcbiAge1xuICAgIGlmIChzb3VyY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIGZpbGVOYW1lID0gc291cmNlLmZpbGVOYW1lLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKTtcbiAgICAgIHZhciBsaW5lTnVtYmVyID0gc291cmNlLmxpbmVOdW1iZXI7XG4gICAgICByZXR1cm4gJ1xcblxcbkNoZWNrIHlvdXIgY29kZSBhdCAnICsgZmlsZU5hbWUgKyAnOicgKyBsaW5lTnVtYmVyICsgJy4nO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxufVxuLyoqXG4gKiBXYXJuIGlmIHRoZXJlJ3Mgbm8ga2V5IGV4cGxpY2l0bHkgc2V0IG9uIGR5bmFtaWMgYXJyYXlzIG9mIGNoaWxkcmVuIG9yXG4gKiBvYmplY3Qga2V5cyBhcmUgbm90IHZhbGlkLiBUaGlzIGFsbG93cyB1cyB0byBrZWVwIHRyYWNrIG9mIGNoaWxkcmVuIGJldHdlZW5cbiAqIHVwZGF0ZXMuXG4gKi9cblxuXG52YXIgb3duZXJIYXNLZXlVc2VXYXJuaW5nID0ge307XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8ocGFyZW50VHlwZSkge1xuICB7XG4gICAgdmFyIGluZm8gPSBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKTtcblxuICAgIGlmICghaW5mbykge1xuICAgICAgdmFyIHBhcmVudE5hbWUgPSB0eXBlb2YgcGFyZW50VHlwZSA9PT0gJ3N0cmluZycgPyBwYXJlbnRUeXBlIDogcGFyZW50VHlwZS5kaXNwbGF5TmFtZSB8fCBwYXJlbnRUeXBlLm5hbWU7XG5cbiAgICAgIGlmIChwYXJlbnROYW1lKSB7XG4gICAgICAgIGluZm8gPSBcIlxcblxcbkNoZWNrIHRoZSB0b3AtbGV2ZWwgcmVuZGVyIGNhbGwgdXNpbmcgPFwiICsgcGFyZW50TmFtZSArIFwiPi5cIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaW5mbztcbiAgfVxufVxuLyoqXG4gKiBXYXJuIGlmIHRoZSBlbGVtZW50IGRvZXNuJ3QgaGF2ZSBhbiBleHBsaWNpdCBrZXkgYXNzaWduZWQgdG8gaXQuXG4gKiBUaGlzIGVsZW1lbnQgaXMgaW4gYW4gYXJyYXkuIFRoZSBhcnJheSBjb3VsZCBncm93IGFuZCBzaHJpbmsgb3IgYmVcbiAqIHJlb3JkZXJlZC4gQWxsIGNoaWxkcmVuIHRoYXQgaGF2ZW4ndCBhbHJlYWR5IGJlZW4gdmFsaWRhdGVkIGFyZSByZXF1aXJlZCB0b1xuICogaGF2ZSBhIFwia2V5XCIgcHJvcGVydHkgYXNzaWduZWQgdG8gaXQuIEVycm9yIHN0YXR1c2VzIGFyZSBjYWNoZWQgc28gYSB3YXJuaW5nXG4gKiB3aWxsIG9ubHkgYmUgc2hvd24gb25jZS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBlbGVtZW50IEVsZW1lbnQgdGhhdCByZXF1aXJlcyBhIGtleS5cbiAqIEBwYXJhbSB7Kn0gcGFyZW50VHlwZSBlbGVtZW50J3MgcGFyZW50J3MgdHlwZS5cbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlRXhwbGljaXRLZXkoZWxlbWVudCwgcGFyZW50VHlwZSkge1xuICB7XG4gICAgaWYgKCFlbGVtZW50Ll9zdG9yZSB8fCBlbGVtZW50Ll9zdG9yZS52YWxpZGF0ZWQgfHwgZWxlbWVudC5rZXkgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCA9IHRydWU7XG4gICAgdmFyIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8gPSBnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvKHBhcmVudFR5cGUpO1xuXG4gICAgaWYgKG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSA9IHRydWU7IC8vIFVzdWFsbHkgdGhlIGN1cnJlbnQgb3duZXIgaXMgdGhlIG9mZmVuZGVyLCBidXQgaWYgaXQgYWNjZXB0cyBjaGlsZHJlbiBhcyBhXG4gICAgLy8gcHJvcGVydHksIGl0IG1heSBiZSB0aGUgY3JlYXRvciBvZiB0aGUgY2hpbGQgdGhhdCdzIHJlc3BvbnNpYmxlIGZvclxuICAgIC8vIGFzc2lnbmluZyBpdCBhIGtleS5cblxuICAgIHZhciBjaGlsZE93bmVyID0gJyc7XG5cbiAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50Ll9vd25lciAmJiBlbGVtZW50Ll9vd25lciAhPT0gUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCkge1xuICAgICAgLy8gR2l2ZSB0aGUgY29tcG9uZW50IHRoYXQgb3JpZ2luYWxseSBjcmVhdGVkIHRoaXMgY2hpbGQuXG4gICAgICBjaGlsZE93bmVyID0gXCIgSXQgd2FzIHBhc3NlZCBhIGNoaWxkIGZyb20gXCIgKyBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoZWxlbWVudC5fb3duZXIudHlwZSkgKyBcIi5cIjtcbiAgICB9XG5cbiAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KTtcblxuICAgIGVycm9yKCdFYWNoIGNoaWxkIGluIGEgbGlzdCBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcImtleVwiIHByb3AuJyArICclcyVzIFNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvd2FybmluZy1rZXlzIGZvciBtb3JlIGluZm9ybWF0aW9uLicsIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8sIGNoaWxkT3duZXIpO1xuXG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gIH1cbn1cbi8qKlxuICogRW5zdXJlIHRoYXQgZXZlcnkgZWxlbWVudCBlaXRoZXIgaXMgcGFzc2VkIGluIGEgc3RhdGljIGxvY2F0aW9uLCBpbiBhblxuICogYXJyYXkgd2l0aCBhbiBleHBsaWNpdCBrZXlzIHByb3BlcnR5IGRlZmluZWQsIG9yIGluIGFuIG9iamVjdCBsaXRlcmFsXG4gKiB3aXRoIHZhbGlkIGtleSBwcm9wZXJ0eS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSB7UmVhY3ROb2RlfSBub2RlIFN0YXRpY2FsbHkgcGFzc2VkIGNoaWxkIG9mIGFueSB0eXBlLlxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIG5vZGUncyBwYXJlbnQncyB0eXBlLlxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVDaGlsZEtleXMobm9kZSwgcGFyZW50VHlwZSkge1xuICB7XG4gICAgaWYgKHR5cGVvZiBub2RlICE9PSAnb2JqZWN0JyB8fCAhbm9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChub2RlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFKSA7IGVsc2UgaWYgKGlzQXJyYXkobm9kZSkpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hpbGQgPSBub2RlW2ldO1xuXG4gICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChjaGlsZCkpIHtcbiAgICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KGNoaWxkLCBwYXJlbnRUeXBlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNWYWxpZEVsZW1lbnQobm9kZSkpIHtcbiAgICAgIC8vIFRoaXMgZWxlbWVudCB3YXMgcGFzc2VkIGluIGEgdmFsaWQgbG9jYXRpb24uXG4gICAgICBpZiAobm9kZS5fc3RvcmUpIHtcbiAgICAgICAgbm9kZS5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGl0ZXJhdG9yRm4gPSBnZXRJdGVyYXRvckZuKG5vZGUpO1xuXG4gICAgICBpZiAodHlwZW9mIGl0ZXJhdG9yRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gRW50cnkgaXRlcmF0b3JzIHVzZWQgdG8gcHJvdmlkZSBpbXBsaWNpdCBrZXlzLFxuICAgICAgICAvLyBidXQgbm93IHdlIHByaW50IGEgc2VwYXJhdGUgd2FybmluZyBmb3IgdGhlbSBsYXRlci5cbiAgICAgICAgaWYgKGl0ZXJhdG9yRm4gIT09IG5vZGUuZW50cmllcykge1xuICAgICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChub2RlKTtcbiAgICAgICAgICB2YXIgc3RlcDtcblxuICAgICAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChzdGVwLnZhbHVlKSkge1xuICAgICAgICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KHN0ZXAudmFsdWUsIHBhcmVudFR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBHaXZlbiBhbiBlbGVtZW50LCB2YWxpZGF0ZSB0aGF0IGl0cyBwcm9wcyBmb2xsb3cgdGhlIHByb3BUeXBlcyBkZWZpbml0aW9uLFxuICogcHJvdmlkZWQgYnkgdGhlIHR5cGUuXG4gKlxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnRcbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpIHtcbiAge1xuICAgIHZhciB0eXBlID0gZWxlbWVudC50eXBlO1xuXG4gICAgaWYgKHR5cGUgPT09IG51bGwgfHwgdHlwZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHByb3BUeXBlcztcblxuICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcHJvcFR5cGVzID0gdHlwZS5wcm9wVHlwZXM7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHwgLy8gTm90ZTogTWVtbyBvbmx5IGNoZWNrcyBvdXRlciBwcm9wcyBoZXJlLlxuICAgIC8vIElubmVyIHByb3BzIGFyZSBjaGVja2VkIGluIHRoZSByZWNvbmNpbGVyLlxuICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSkpIHtcbiAgICAgIHByb3BUeXBlcyA9IHR5cGUucHJvcFR5cGVzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHByb3BUeXBlcykge1xuICAgICAgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcbiAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuICAgICAgY2hlY2tQcm9wVHlwZXMocHJvcFR5cGVzLCBlbGVtZW50LnByb3BzLCAncHJvcCcsIG5hbWUsIGVsZW1lbnQpO1xuICAgIH0gZWxzZSBpZiAodHlwZS5Qcm9wVHlwZXMgIT09IHVuZGVmaW5lZCAmJiAhcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24pIHtcbiAgICAgIHByb3BUeXBlc01pc3NwZWxsV2FybmluZ1Nob3duID0gdHJ1ZTsgLy8gSW50ZW50aW9uYWxseSBpbnNpZGUgdG8gYXZvaWQgdHJpZ2dlcmluZyBsYXp5IGluaXRpYWxpemVyczpcblxuICAgICAgdmFyIF9uYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuXG4gICAgICBlcnJvcignQ29tcG9uZW50ICVzIGRlY2xhcmVkIGBQcm9wVHlwZXNgIGluc3RlYWQgb2YgYHByb3BUeXBlc2AuIERpZCB5b3UgbWlzc3BlbGwgdGhlIHByb3BlcnR5IGFzc2lnbm1lbnQ/JywgX25hbWUgfHwgJ1Vua25vd24nKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHR5cGUuZ2V0RGVmYXVsdFByb3BzID09PSAnZnVuY3Rpb24nICYmICF0eXBlLmdldERlZmF1bHRQcm9wcy5pc1JlYWN0Q2xhc3NBcHByb3ZlZCkge1xuICAgICAgZXJyb3IoJ2dldERlZmF1bHRQcm9wcyBpcyBvbmx5IHVzZWQgb24gY2xhc3NpYyBSZWFjdC5jcmVhdGVDbGFzcyAnICsgJ2RlZmluaXRpb25zLiBVc2UgYSBzdGF0aWMgcHJvcGVydHkgbmFtZWQgYGRlZmF1bHRQcm9wc2AgaW5zdGVhZC4nKTtcbiAgICB9XG4gIH1cbn1cbi8qKlxuICogR2l2ZW4gYSBmcmFnbWVudCwgdmFsaWRhdGUgdGhhdCBpdCBjYW4gb25seSBiZSBwcm92aWRlZCB3aXRoIGZyYWdtZW50IHByb3BzXG4gKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gZnJhZ21lbnRcbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlRnJhZ21lbnRQcm9wcyhmcmFnbWVudCkge1xuICB7XG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhmcmFnbWVudC5wcm9wcyk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuXG4gICAgICBpZiAoa2V5ICE9PSAnY2hpbGRyZW4nICYmIGtleSAhPT0gJ2tleScpIHtcbiAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZnJhZ21lbnQpO1xuXG4gICAgICAgIGVycm9yKCdJbnZhbGlkIHByb3AgYCVzYCBzdXBwbGllZCB0byBgUmVhY3QuRnJhZ21lbnRgLiAnICsgJ1JlYWN0LkZyYWdtZW50IGNhbiBvbmx5IGhhdmUgYGtleWAgYW5kIGBjaGlsZHJlbmAgcHJvcHMuJywga2V5KTtcblxuICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZyYWdtZW50LnJlZiAhPT0gbnVsbCkge1xuICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZnJhZ21lbnQpO1xuXG4gICAgICBlcnJvcignSW52YWxpZCBhdHRyaWJ1dGUgYHJlZmAgc3VwcGxpZWQgdG8gYFJlYWN0LkZyYWdtZW50YC4nKTtcblxuICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbnZhciBkaWRXYXJuQWJvdXRLZXlTcHJlYWQgPSB7fTtcbmZ1bmN0aW9uIGpzeFdpdGhWYWxpZGF0aW9uKHR5cGUsIHByb3BzLCBrZXksIGlzU3RhdGljQ2hpbGRyZW4sIHNvdXJjZSwgc2VsZikge1xuICB7XG4gICAgdmFyIHZhbGlkVHlwZSA9IGlzVmFsaWRFbGVtZW50VHlwZSh0eXBlKTsgLy8gV2Ugd2FybiBpbiB0aGlzIGNhc2UgYnV0IGRvbid0IHRocm93LiBXZSBleHBlY3QgdGhlIGVsZW1lbnQgY3JlYXRpb24gdG9cbiAgICAvLyBzdWNjZWVkIGFuZCB0aGVyZSB3aWxsIGxpa2VseSBiZSBlcnJvcnMgaW4gcmVuZGVyLlxuXG4gICAgaWYgKCF2YWxpZFR5cGUpIHtcbiAgICAgIHZhciBpbmZvID0gJyc7XG5cbiAgICAgIGlmICh0eXBlID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwgJiYgT2JqZWN0LmtleXModHlwZSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGluZm8gKz0gJyBZb3UgbGlrZWx5IGZvcmdvdCB0byBleHBvcnQgeW91ciBjb21wb25lbnQgZnJvbSB0aGUgZmlsZSAnICsgXCJpdCdzIGRlZmluZWQgaW4sIG9yIHlvdSBtaWdodCBoYXZlIG1peGVkIHVwIGRlZmF1bHQgYW5kIG5hbWVkIGltcG9ydHMuXCI7XG4gICAgICB9XG5cbiAgICAgIHZhciBzb3VyY2VJbmZvID0gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0oc291cmNlKTtcblxuICAgICAgaWYgKHNvdXJjZUluZm8pIHtcbiAgICAgICAgaW5mbyArPSBzb3VyY2VJbmZvO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5mbyArPSBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKTtcbiAgICAgIH1cblxuICAgICAgdmFyIHR5cGVTdHJpbmc7XG5cbiAgICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICAgIHR5cGVTdHJpbmcgPSAnbnVsbCc7XG4gICAgICB9IGVsc2UgaWYgKGlzQXJyYXkodHlwZSkpIHtcbiAgICAgICAgdHlwZVN0cmluZyA9ICdhcnJheSc7XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgIT09IHVuZGVmaW5lZCAmJiB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUpIHtcbiAgICAgICAgdHlwZVN0cmluZyA9IFwiPFwiICsgKGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8ICdVbmtub3duJykgKyBcIiAvPlwiO1xuICAgICAgICBpbmZvID0gJyBEaWQgeW91IGFjY2lkZW50YWxseSBleHBvcnQgYSBKU1ggbGl0ZXJhbCBpbnN0ZWFkIG9mIGEgY29tcG9uZW50Pyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0eXBlU3RyaW5nID0gdHlwZW9mIHR5cGU7XG4gICAgICB9XG5cbiAgICAgIGVycm9yKCdSZWFjdC5qc3g6IHR5cGUgaXMgaW52YWxpZCAtLSBleHBlY3RlZCBhIHN0cmluZyAoZm9yICcgKyAnYnVpbHQtaW4gY29tcG9uZW50cykgb3IgYSBjbGFzcy9mdW5jdGlvbiAoZm9yIGNvbXBvc2l0ZSAnICsgJ2NvbXBvbmVudHMpIGJ1dCBnb3Q6ICVzLiVzJywgdHlwZVN0cmluZywgaW5mbyk7XG4gICAgfVxuXG4gICAgdmFyIGVsZW1lbnQgPSBqc3hERVYkMSh0eXBlLCBwcm9wcywga2V5LCBzb3VyY2UsIHNlbGYpOyAvLyBUaGUgcmVzdWx0IGNhbiBiZSBudWxsaXNoIGlmIGEgbW9jayBvciBhIGN1c3RvbSBmdW5jdGlvbiBpcyB1c2VkLlxuICAgIC8vIFRPRE86IERyb3AgdGhpcyB3aGVuIHRoZXNlIGFyZSBubyBsb25nZXIgYWxsb3dlZCBhcyB0aGUgdHlwZSBhcmd1bWVudC5cblxuICAgIGlmIChlbGVtZW50ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH0gLy8gU2tpcCBrZXkgd2FybmluZyBpZiB0aGUgdHlwZSBpc24ndCB2YWxpZCBzaW5jZSBvdXIga2V5IHZhbGlkYXRpb24gbG9naWNcbiAgICAvLyBkb2Vzbid0IGV4cGVjdCBhIG5vbi1zdHJpbmcvZnVuY3Rpb24gdHlwZSBhbmQgY2FuIHRocm93IGNvbmZ1c2luZyBlcnJvcnMuXG4gICAgLy8gV2UgZG9uJ3Qgd2FudCBleGNlcHRpb24gYmVoYXZpb3IgdG8gZGlmZmVyIGJldHdlZW4gZGV2IGFuZCBwcm9kLlxuICAgIC8vIChSZW5kZXJpbmcgd2lsbCB0aHJvdyB3aXRoIGEgaGVscGZ1bCBtZXNzYWdlIGFuZCBhcyBzb29uIGFzIHRoZSB0eXBlIGlzXG4gICAgLy8gZml4ZWQsIHRoZSBrZXkgd2FybmluZ3Mgd2lsbCBhcHBlYXIuKVxuXG5cbiAgICBpZiAodmFsaWRUeXBlKSB7XG4gICAgICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbjtcblxuICAgICAgaWYgKGNoaWxkcmVuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGlzU3RhdGljQ2hpbGRyZW4pIHtcbiAgICAgICAgICBpZiAoaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgdmFsaWRhdGVDaGlsZEtleXMoY2hpbGRyZW5baV0sIHR5cGUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoT2JqZWN0LmZyZWV6ZSkge1xuICAgICAgICAgICAgICBPYmplY3QuZnJlZXplKGNoaWxkcmVuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3IoJ1JlYWN0LmpzeDogU3RhdGljIGNoaWxkcmVuIHNob3VsZCBhbHdheXMgYmUgYW4gYXJyYXkuICcgKyAnWW91IGFyZSBsaWtlbHkgZXhwbGljaXRseSBjYWxsaW5nIFJlYWN0LmpzeHMgb3IgUmVhY3QuanN4REVWLiAnICsgJ1VzZSB0aGUgQmFiZWwgdHJhbnNmb3JtIGluc3RlYWQuJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGNoaWxkcmVuLCB0eXBlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BzLCAna2V5JykpIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhwcm9wcykuZmlsdGVyKGZ1bmN0aW9uIChrKSB7XG4gICAgICAgIHJldHVybiBrICE9PSAna2V5JztcbiAgICAgIH0pO1xuICAgICAgdmFyIGJlZm9yZUV4YW1wbGUgPSBrZXlzLmxlbmd0aCA+IDAgPyAne2tleTogc29tZUtleSwgJyArIGtleXMuam9pbignOiAuLi4sICcpICsgJzogLi4ufScgOiAne2tleTogc29tZUtleX0nO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dEtleVNwcmVhZFtjb21wb25lbnROYW1lICsgYmVmb3JlRXhhbXBsZV0pIHtcbiAgICAgICAgdmFyIGFmdGVyRXhhbXBsZSA9IGtleXMubGVuZ3RoID4gMCA/ICd7JyArIGtleXMuam9pbignOiAuLi4sICcpICsgJzogLi4ufScgOiAne30nO1xuXG4gICAgICAgIGVycm9yKCdBIHByb3BzIG9iamVjdCBjb250YWluaW5nIGEgXCJrZXlcIiBwcm9wIGlzIGJlaW5nIHNwcmVhZCBpbnRvIEpTWDpcXG4nICsgJyAgbGV0IHByb3BzID0gJXM7XFxuJyArICcgIDwlcyB7Li4ucHJvcHN9IC8+XFxuJyArICdSZWFjdCBrZXlzIG11c3QgYmUgcGFzc2VkIGRpcmVjdGx5IHRvIEpTWCB3aXRob3V0IHVzaW5nIHNwcmVhZDpcXG4nICsgJyAgbGV0IHByb3BzID0gJXM7XFxuJyArICcgIDwlcyBrZXk9e3NvbWVLZXl9IHsuLi5wcm9wc30gLz4nLCBiZWZvcmVFeGFtcGxlLCBjb21wb25lbnROYW1lLCBhZnRlckV4YW1wbGUsIGNvbXBvbmVudE5hbWUpO1xuXG4gICAgICAgIGRpZFdhcm5BYm91dEtleVNwcmVhZFtjb21wb25lbnROYW1lICsgYmVmb3JlRXhhbXBsZV0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFKSB7XG4gICAgICB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZWxlbWVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIHJldHVybiBlbGVtZW50O1xuICB9XG59IC8vIFRoZXNlIHR3byBmdW5jdGlvbnMgZXhpc3QgdG8gc3RpbGwgZ2V0IGNoaWxkIHdhcm5pbmdzIGluIGRldlxuXG52YXIganN4REVWID0ganN4V2l0aFZhbGlkYXRpb24gO1xuXG5leHBvcnRzLkZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbmV4cG9ydHMuanN4REVWID0ganN4REVWO1xuICB9KSgpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js":
|
|
/*!******************************************************************!*\
|
|
!*** ./node_modules/next/dist/compiled/react/jsx-dev-runtime.js ***!
|
|
\******************************************************************/
|
|
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-jsx-dev-runtime.development.js */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvanN4LWRldi1ydW50aW1lLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSw4TEFBc0U7QUFDeEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC9qc3gtZGV2LXJ1bnRpbWUuanM/ZmE3YyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtanN4LWRldi1ydW50aW1lLnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcycpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ArrowPathIcon.js":
|
|
/*!***********************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/ArrowPathIcon.js ***!
|
|
\***********************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction ArrowPathIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(ArrowPathIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0Fycm93UGF0aEljb24uanMiLCJtYXBwaW5ncyI6Ijs7QUFBK0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLCtCQUErQixnREFBbUI7QUFDckQ7QUFDQSxHQUFHLDhCQUE4QixnREFBbUI7QUFDcEQ7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsaUNBQWlDLDZDQUFnQjtBQUNqRCwrREFBZSxVQUFVIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0Fycm93UGF0aEljb24uanM/ZDE0OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmZ1bmN0aW9uIEFycm93UGF0aEljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk0xNi4wMjMgOS4zNDhoNC45OTJ2LS4wMDFNMi45ODUgMTkuNjQ0di00Ljk5Mm0wIDBoNC45OTJtLTQuOTkzIDAgMy4xODEgMy4xODNhOC4yNSA4LjI1IDAgMCAwIDEzLjgwMy0zLjdNNC4wMzEgOS44NjVhOC4yNSA4LjI1IDAgMCAxIDEzLjgwMy0zLjdsMy4xODEgMy4xODJtMC00Ljk5MXY0Ljk5XCJcbiAgfSkpO1xufVxuY29uc3QgRm9yd2FyZFJlZiA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZihBcnJvd1BhdGhJY29uKTtcbmV4cG9ydCBkZWZhdWx0IEZvcndhcmRSZWY7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ArrowPathIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CheckCircleIcon.js":
|
|
/*!*************************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/CheckCircleIcon.js ***!
|
|
\*************************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction CheckCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(CheckCircleIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0NoZWNrQ2lyY2xlSWNvbi5qcyIsIm1hcHBpbmdzIjoiOztBQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsK0JBQStCLGdEQUFtQjtBQUNyRDtBQUNBLEdBQUcsOEJBQThCLGdEQUFtQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpQ0FBaUMsNkNBQWdCO0FBQ2pELCtEQUFlLFVBQVUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BoZXJvaWNvbnMvcmVhY3QvMjQvb3V0bGluZS9lc20vQ2hlY2tDaXJjbGVJY29uLmpzP2Y1YTUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiBDaGVja0NpcmNsZUljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk05IDEyLjc1IDExLjI1IDE1IDE1IDkuNzVNMjEgMTJhOSA5IDAgMSAxLTE4IDAgOSA5IDAgMCAxIDE4IDBaXCJcbiAgfSkpO1xufVxuY29uc3QgRm9yd2FyZFJlZiA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZihDaGVja0NpcmNsZUljb24pO1xuZXhwb3J0IGRlZmF1bHQgRm9yd2FyZFJlZjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CheckCircleIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ChevronRightIcon.js":
|
|
/*!**************************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/ChevronRightIcon.js ***!
|
|
\**************************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction ChevronRightIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"m8.25 4.5 7.5 7.5-7.5 7.5\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(ChevronRightIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0NoZXZyb25SaWdodEljb24uanMiLCJtYXBwaW5ncyI6Ijs7QUFBK0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLCtCQUErQixnREFBbUI7QUFDckQ7QUFDQSxHQUFHLDhCQUE4QixnREFBbUI7QUFDcEQ7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsaUNBQWlDLDZDQUFnQjtBQUNqRCwrREFBZSxVQUFVIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0NoZXZyb25SaWdodEljb24uanM/MGM3MyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmZ1bmN0aW9uIENoZXZyb25SaWdodEljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIm04LjI1IDQuNSA3LjUgNy41LTcuNSA3LjVcIlxuICB9KSk7XG59XG5jb25zdCBGb3J3YXJkUmVmID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKENoZXZyb25SaWdodEljb24pO1xuZXhwb3J0IGRlZmF1bHQgRm9yd2FyZFJlZjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ChevronRightIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CircleStackIcon.js":
|
|
/*!*************************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/CircleStackIcon.js ***!
|
|
\*************************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction CircleStackIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(CircleStackIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0NpcmNsZVN0YWNrSWNvbi5qcyIsIm1hcHBpbmdzIjoiOztBQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsK0JBQStCLGdEQUFtQjtBQUNyRDtBQUNBLEdBQUcsOEJBQThCLGdEQUFtQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpQ0FBaUMsNkNBQWdCO0FBQ2pELCtEQUFlLFVBQVUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BoZXJvaWNvbnMvcmVhY3QvMjQvb3V0bGluZS9lc20vQ2lyY2xlU3RhY2tJY29uLmpzPzI3OTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiBDaXJjbGVTdGFja0ljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk0yMC4yNSA2LjM3NWMwIDIuMjc4LTMuNjk0IDQuMTI1LTguMjUgNC4xMjVTMy43NSA4LjY1MyAzLjc1IDYuMzc1bTE2LjUgMGMwLTIuMjc4LTMuNjk0LTQuMTI1LTguMjUtNC4xMjVTMy43NSA0LjA5NyAzLjc1IDYuMzc1bTE2LjUgMHYxMS4yNWMwIDIuMjc4LTMuNjk0IDQuMTI1LTguMjUgNC4xMjVzLTguMjUtMS44NDctOC4yNS00LjEyNVY2LjM3NW0xNi41IDB2My43NW0tMTYuNS0zLjc1djMuNzVtMTYuNSAwdjMuNzVDMjAuMjUgMTYuMTUzIDE2LjU1NiAxOCAxMiAxOHMtOC4yNS0xLjg0Ny04LjI1LTQuMTI1di0zLjc1bTE2LjUgMGMwIDIuMjc4LTMuNjk0IDQuMTI1LTguMjUgNC4xMjVzLTguMjUtMS44NDctOC4yNS00LjEyNVwiXG4gIH0pKTtcbn1cbmNvbnN0IEZvcndhcmRSZWYgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoQ2lyY2xlU3RhY2tJY29uKTtcbmV4cG9ydCBkZWZhdWx0IEZvcndhcmRSZWY7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CircleStackIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CloudArrowDownIcon.js":
|
|
/*!****************************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/CloudArrowDownIcon.js ***!
|
|
\****************************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction CloudArrowDownIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 9.75v6.75m0 0-3-3m3 3 3-3m-8.25 6a4.5 4.5 0 0 1-1.41-8.775 5.25 5.25 0 0 1 10.233-2.33 3 3 0 0 1 3.758 3.848A3.752 3.752 0 0 1 18 19.5H6.75Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(CloudArrowDownIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0Nsb3VkQXJyb3dEb3duSWNvbi5qcyIsIm1hcHBpbmdzIjoiOztBQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsK0JBQStCLGdEQUFtQjtBQUNyRDtBQUNBLEdBQUcsOEJBQThCLGdEQUFtQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpQ0FBaUMsNkNBQWdCO0FBQ2pELCtEQUFlLFVBQVUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BoZXJvaWNvbnMvcmVhY3QvMjQvb3V0bGluZS9lc20vQ2xvdWRBcnJvd0Rvd25JY29uLmpzPzNhZDgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiBDbG91ZEFycm93RG93bkljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk0xMiA5Ljc1djYuNzVtMCAwLTMtM20zIDMgMy0zbS04LjI1IDZhNC41IDQuNSAwIDAgMS0xLjQxLTguNzc1IDUuMjUgNS4yNSAwIDAgMSAxMC4yMzMtMi4zMyAzIDMgMCAwIDEgMy43NTggMy44NDhBMy43NTIgMy43NTIgMCAwIDEgMTggMTkuNUg2Ljc1WlwiXG4gIH0pKTtcbn1cbmNvbnN0IEZvcndhcmRSZWYgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoQ2xvdWRBcnJvd0Rvd25JY29uKTtcbmV4cG9ydCBkZWZhdWx0IEZvcndhcmRSZWY7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CloudArrowDownIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CodeBracketIcon.js":
|
|
/*!*************************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/CodeBracketIcon.js ***!
|
|
\*************************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction CodeBracketIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(CodeBracketIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0NvZGVCcmFja2V0SWNvbi5qcyIsIm1hcHBpbmdzIjoiOztBQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsK0JBQStCLGdEQUFtQjtBQUNyRDtBQUNBLEdBQUcsOEJBQThCLGdEQUFtQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpQ0FBaUMsNkNBQWdCO0FBQ2pELCtEQUFlLFVBQVUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BoZXJvaWNvbnMvcmVhY3QvMjQvb3V0bGluZS9lc20vQ29kZUJyYWNrZXRJY29uLmpzPzlkODAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiBDb2RlQnJhY2tldEljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk0xNy4yNSA2Ljc1IDIyLjUgMTJsLTUuMjUgNS4yNW0tMTAuNSAwTDEuNSAxMmw1LjI1LTUuMjVtNy41LTMtNC41IDE2LjVcIlxuICB9KSk7XG59XG5jb25zdCBGb3J3YXJkUmVmID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKENvZGVCcmFja2V0SWNvbik7XG5leHBvcnQgZGVmYXVsdCBGb3J3YXJkUmVmOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CodeBracketIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/Cog6ToothIcon.js":
|
|
/*!***********************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/Cog6ToothIcon.js ***!
|
|
\***********************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction Cog6ToothIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(Cog6ToothIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0NvZzZUb290aEljb24uanMiLCJtYXBwaW5ncyI6Ijs7QUFBK0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLCtCQUErQixnREFBbUI7QUFDckQ7QUFDQSxHQUFHLDhCQUE4QixnREFBbUI7QUFDcEQ7QUFDQTtBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlDQUFpQyw2Q0FBZ0I7QUFDakQsK0RBQWUsVUFBVSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lL2VzbS9Db2c2VG9vdGhJY29uLmpzP2Q5ZWEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiBDb2c2VG9vdGhJY29uKHtcbiAgdGl0bGUsXG4gIHRpdGxlSWQsXG4gIC4uLnByb3BzXG59LCBzdmdSZWYpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIE9iamVjdC5hc3NpZ24oe1xuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gICAgZmlsbDogXCJub25lXCIsXG4gICAgdmlld0JveDogXCIwIDAgMjQgMjRcIixcbiAgICBzdHJva2VXaWR0aDogMS41LFxuICAgIHN0cm9rZTogXCJjdXJyZW50Q29sb3JcIixcbiAgICBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiLFxuICAgIFwiZGF0YS1zbG90XCI6IFwiaWNvblwiLFxuICAgIHJlZjogc3ZnUmVmLFxuICAgIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IHRpdGxlSWRcbiAgfSwgcHJvcHMpLCB0aXRsZSA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwidGl0bGVcIiwge1xuICAgIGlkOiB0aXRsZUlkXG4gIH0sIHRpdGxlKSA6IG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3Ryb2tlTGluZWNhcDogXCJyb3VuZFwiLFxuICAgIHN0cm9rZUxpbmVqb2luOiBcInJvdW5kXCIsXG4gICAgZDogXCJNOS41OTQgMy45NGMuMDktLjU0Mi41Ni0uOTQgMS4xMS0uOTRoMi41OTNjLjU1IDAgMS4wMi4zOTggMS4xMS45NGwuMjEzIDEuMjgxYy4wNjMuMzc0LjMxMy42ODYuNjQ1Ljg3LjA3NC4wNC4xNDcuMDgzLjIyLjEyNy4zMjUuMTk2LjcyLjI1NyAxLjA3NS4xMjRsMS4yMTctLjQ1NmExLjEyNSAxLjEyNSAwIDAgMSAxLjM3LjQ5bDEuMjk2IDIuMjQ3YTEuMTI1IDEuMTI1IDAgMCAxLS4yNiAxLjQzMWwtMS4wMDMuODI3Yy0uMjkzLjI0MS0uNDM4LjYxMy0uNDMuOTkyYTcuNzIzIDcuNzIzIDAgMCAxIDAgLjI1NWMtLjAwOC4zNzguMTM3Ljc1LjQzLjk5MWwxLjAwNC44MjdjLjQyNC4zNS41MzQuOTU1LjI2IDEuNDNsLTEuMjk4IDIuMjQ3YTEuMTI1IDEuMTI1IDAgMCAxLTEuMzY5LjQ5MWwtMS4yMTctLjQ1NmMtLjM1NS0uMTMzLS43NS0uMDcyLTEuMDc2LjEyNGE2LjQ3IDYuNDcgMCAwIDEtLjIyLjEyOGMtLjMzMS4xODMtLjU4MS40OTUtLjY0NC44NjlsLS4yMTMgMS4yODFjLS4wOS41NDMtLjU2Ljk0LTEuMTEuOTRoLTIuNTk0Yy0uNTUgMC0xLjAxOS0uMzk4LTEuMTEtLjk0bC0uMjEzLTEuMjgxYy0uMDYyLS4zNzQtLjMxMi0uNjg2LS42NDQtLjg3YTYuNTIgNi41MiAwIDAgMS0uMjItLjEyN2MtLjMyNS0uMTk2LS43Mi0uMjU3LTEuMDc2LS4xMjRsLTEuMjE3LjQ1NmExLjEyNSAxLjEyNSAwIDAgMS0xLjM2OS0uNDlsLTEuMjk3LTIuMjQ3YTEuMTI1IDEuMTI1IDAgMCAxIC4yNi0xLjQzMWwxLjAwNC0uODI3Yy4yOTItLjI0LjQzNy0uNjEzLjQzLS45OTFhNi45MzIgNi45MzIgMCAwIDEgMC0uMjU1Yy4wMDctLjM4LS4xMzgtLjc1MS0uNDMtLjk5MmwtMS4wMDQtLjgyN2ExLjEyNSAxLjEyNSAwIDAgMS0uMjYtMS40M2wxLjI5Ny0yLjI0N2ExLjEyNSAxLjEyNSAwIDAgMSAxLjM3LS40OTFsMS4yMTYuNDU2Yy4zNTYuMTMzLjc1MS4wNzIgMS4wNzYtLjEyNC4wNzItLjA0NC4xNDYtLjA4Ni4yMi0uMTI4LjMzMi0uMTgzLjU4Mi0uNDk1LjY0NC0uODY5bC4yMTQtMS4yOFpcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk0xNSAxMmEzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDBaXCJcbiAgfSkpO1xufVxuY29uc3QgRm9yd2FyZFJlZiA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZihDb2c2VG9vdGhJY29uKTtcbmV4cG9ydCBkZWZhdWx0IEZvcndhcmRSZWY7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/Cog6ToothIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ComputerDesktopIcon.js":
|
|
/*!*****************************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/ComputerDesktopIcon.js ***!
|
|
\*****************************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction ComputerDesktopIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(ComputerDesktopIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0NvbXB1dGVyRGVza3RvcEljb24uanMiLCJtYXBwaW5ncyI6Ijs7QUFBK0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLCtCQUErQixnREFBbUI7QUFDckQ7QUFDQSxHQUFHLDhCQUE4QixnREFBbUI7QUFDcEQ7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsaUNBQWlDLDZDQUFnQjtBQUNqRCwrREFBZSxVQUFVIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0NvbXB1dGVyRGVza3RvcEljb24uanM/MjRjYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmZ1bmN0aW9uIENvbXB1dGVyRGVza3RvcEljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk05IDE3LjI1djEuMDA3YTMgMyAwIDAgMS0uODc5IDIuMTIyTDcuNSAyMWg5bC0uNjIxLS42MjFBMyAzIDAgMCAxIDE1IDE4LjI1N1YxNy4yNW02LTEyVjE1YTIuMjUgMi4yNSAwIDAgMS0yLjI1IDIuMjVINS4yNUEyLjI1IDIuMjUgMCAwIDEgMyAxNVY1LjI1bTE4IDBBMi4yNSAyLjI1IDAgMCAwIDE4Ljc1IDNINS4yNUEyLjI1IDIuMjUgMCAwIDAgMyA1LjI1bTE4IDBWMTJhMi4yNSAyLjI1IDAgMCAxLTIuMjUgMi4yNUg1LjI1QTIuMjUgMi4yNSAwIDAgMSAzIDEyVjUuMjVcIlxuICB9KSk7XG59XG5jb25zdCBGb3J3YXJkUmVmID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKENvbXB1dGVyRGVza3RvcEljb24pO1xuZXhwb3J0IGRlZmF1bHQgRm9yd2FyZFJlZjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ComputerDesktopIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CpuChipIcon.js":
|
|
/*!*********************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/CpuChipIcon.js ***!
|
|
\*********************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction CpuChipIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(CpuChipIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0NwdUNoaXBJY29uLmpzIiwibWFwcGluZ3MiOiI7O0FBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHNCQUFzQixnREFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRywrQkFBK0IsZ0RBQW1CO0FBQ3JEO0FBQ0EsR0FBRyw4QkFBOEIsZ0RBQW1CO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlDQUFpQyw2Q0FBZ0I7QUFDakQsK0RBQWUsVUFBVSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lL2VzbS9DcHVDaGlwSWNvbi5qcz9hYjQyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuZnVuY3Rpb24gQ3B1Q2hpcEljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk04LjI1IDN2MS41TTQuNSA4LjI1SDNtMTggMGgtMS41TTQuNSAxMkgzbTE4IDBoLTEuNW0tMTUgMy43NUgzbTE4IDBoLTEuNU04LjI1IDE5LjVWMjFNMTIgM3YxLjVtMCAxNVYyMW0zLjc1LTE4djEuNW0wIDE1VjIxbS05LTEuNWgxMC41YTIuMjUgMi4yNSAwIDAgMCAyLjI1LTIuMjVWNi43NWEyLjI1IDIuMjUgMCAwIDAtMi4yNS0yLjI1SDYuNzVBMi4yNSAyLjI1IDAgMCAwIDQuNSA2Ljc1djEwLjVhMi4yNSAyLjI1IDAgMCAwIDIuMjUgMi4yNVptLjc1LTEyaDl2OWgtOXYtOVpcIlxuICB9KSk7XG59XG5jb25zdCBGb3J3YXJkUmVmID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKENwdUNoaXBJY29uKTtcbmV4cG9ydCBkZWZhdWx0IEZvcndhcmRSZWY7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CpuChipIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CurrencyDollarIcon.js":
|
|
/*!****************************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/CurrencyDollarIcon.js ***!
|
|
\****************************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction CurrencyDollarIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(CurrencyDollarIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0N1cnJlbmN5RG9sbGFySWNvbi5qcyIsIm1hcHBpbmdzIjoiOztBQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsK0JBQStCLGdEQUFtQjtBQUNyRDtBQUNBLEdBQUcsOEJBQThCLGdEQUFtQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpQ0FBaUMsNkNBQWdCO0FBQ2pELCtEQUFlLFVBQVUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BoZXJvaWNvbnMvcmVhY3QvMjQvb3V0bGluZS9lc20vQ3VycmVuY3lEb2xsYXJJY29uLmpzPzRjNGEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiBDdXJyZW5jeURvbGxhckljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk0xMiA2djEybS0zLTIuODE4Ljg3OS42NTljMS4xNzEuODc5IDMuMDcuODc5IDQuMjQyIDAgMS4xNzItLjg3OSAxLjE3Mi0yLjMwMyAwLTMuMTgyQzEzLjUzNiAxMi4yMTkgMTIuNzY4IDEyIDEyIDEyYy0uNzI1IDAtMS40NS0uMjItMi4wMDMtLjY1OS0xLjEwNi0uODc5LTEuMTA2LTIuMzAzIDAtMy4xODJzMi45LS44NzkgNC4wMDYgMGwuNDE1LjMzTTIxIDEyYTkgOSAwIDEgMS0xOCAwIDkgOSAwIDAgMSAxOCAwWlwiXG4gIH0pKTtcbn1cbmNvbnN0IEZvcndhcmRSZWYgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoQ3VycmVuY3lEb2xsYXJJY29uKTtcbmV4cG9ydCBkZWZhdWx0IEZvcndhcmRSZWY7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/CurrencyDollarIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/DocumentDuplicateIcon.js":
|
|
/*!*******************************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/DocumentDuplicateIcon.js ***!
|
|
\*******************************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction DocumentDuplicateIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(DocumentDuplicateIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0RvY3VtZW50RHVwbGljYXRlSWNvbi5qcyIsIm1hcHBpbmdzIjoiOztBQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsK0JBQStCLGdEQUFtQjtBQUNyRDtBQUNBLEdBQUcsOEJBQThCLGdEQUFtQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpQ0FBaUMsNkNBQWdCO0FBQ2pELCtEQUFlLFVBQVUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BoZXJvaWNvbnMvcmVhY3QvMjQvb3V0bGluZS9lc20vRG9jdW1lbnREdXBsaWNhdGVJY29uLmpzPzE2MzUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiBEb2N1bWVudER1cGxpY2F0ZUljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk0xNS43NSAxNy4yNXYzLjM3NWMwIC42MjEtLjUwNCAxLjEyNS0xLjEyNSAxLjEyNWgtOS43NWExLjEyNSAxLjEyNSAwIDAgMS0xLjEyNS0xLjEyNVY3Ljg3NWMwLS42MjEuNTA0LTEuMTI1IDEuMTI1LTEuMTI1SDYuNzVhOS4wNiA5LjA2IDAgMCAxIDEuNS4xMjRtNy41IDEwLjM3NmgzLjM3NWMuNjIxIDAgMS4xMjUtLjUwNCAxLjEyNS0xLjEyNVYxMS4yNWMwLTQuNDYtMy4yNDMtOC4xNjEtNy41LTguODc2YTkuMDYgOS4wNiAwIDAgMC0xLjUtLjEyNEg5LjM3NWMtLjYyMSAwLTEuMTI1LjUwNC0xLjEyNSAxLjEyNXYzLjVtNy41IDEwLjM3NUg5LjM3NWExLjEyNSAxLjEyNSAwIDAgMS0xLjEyNS0xLjEyNXYtOS4yNW0xMiA2LjYyNXYtMS44NzVhMy4zNzUgMy4zNzUgMCAwIDAtMy4zNzUtMy4zNzVoLTEuNWExLjEyNSAxLjEyNSAwIDAgMS0xLjEyNS0xLjEyNXYtMS41YTMuMzc1IDMuMzc1IDAgMCAwLTMuMzc1LTMuMzc1SDkuNzVcIlxuICB9KSk7XG59XG5jb25zdCBGb3J3YXJkUmVmID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKERvY3VtZW50RHVwbGljYXRlSWNvbik7XG5leHBvcnQgZGVmYXVsdCBGb3J3YXJkUmVmOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/DocumentDuplicateIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/DocumentTextIcon.js":
|
|
/*!**************************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/DocumentTextIcon.js ***!
|
|
\**************************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction DocumentTextIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(DocumentTextIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0RvY3VtZW50VGV4dEljb24uanMiLCJtYXBwaW5ncyI6Ijs7QUFBK0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLCtCQUErQixnREFBbUI7QUFDckQ7QUFDQSxHQUFHLDhCQUE4QixnREFBbUI7QUFDcEQ7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsaUNBQWlDLDZDQUFnQjtBQUNqRCwrREFBZSxVQUFVIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0RvY3VtZW50VGV4dEljb24uanM/MWE5MCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmZ1bmN0aW9uIERvY3VtZW50VGV4dEljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk0xOS41IDE0LjI1di0yLjYyNWEzLjM3NSAzLjM3NSAwIDAgMC0zLjM3NS0zLjM3NWgtMS41QTEuMTI1IDEuMTI1IDAgMCAxIDEzLjUgNy4xMjV2LTEuNWEzLjM3NSAzLjM3NSAwIDAgMC0zLjM3NS0zLjM3NUg4LjI1bTAgMTIuNzVoNy41bS03LjUgM0gxMk0xMC41IDIuMjVINS42MjVjLS42MjEgMC0xLjEyNS41MDQtMS4xMjUgMS4xMjV2MTcuMjVjMCAuNjIxLjUwNCAxLjEyNSAxLjEyNSAxLjEyNWgxMi43NWMuNjIxIDAgMS4xMjUtLjUwNCAxLjEyNS0xLjEyNVYxMS4yNWE5IDkgMCAwIDAtOS05WlwiXG4gIH0pKTtcbn1cbmNvbnN0IEZvcndhcmRSZWYgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoRG9jdW1lbnRUZXh0SWNvbik7XG5leHBvcnQgZGVmYXVsdCBGb3J3YXJkUmVmOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/DocumentTextIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ExclamationTriangleIcon.js":
|
|
/*!*********************************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/ExclamationTriangleIcon.js ***!
|
|
\*********************************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction ExclamationTriangleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(ExclamationTriangleIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0V4Y2xhbWF0aW9uVHJpYW5nbGVJY29uLmpzIiwibWFwcGluZ3MiOiI7O0FBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHNCQUFzQixnREFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRywrQkFBK0IsZ0RBQW1CO0FBQ3JEO0FBQ0EsR0FBRyw4QkFBOEIsZ0RBQW1CO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlDQUFpQyw2Q0FBZ0I7QUFDakQsK0RBQWUsVUFBVSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lL2VzbS9FeGNsYW1hdGlvblRyaWFuZ2xlSWNvbi5qcz9lZTRkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuZnVuY3Rpb24gRXhjbGFtYXRpb25UcmlhbmdsZUljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk0xMiA5djMuNzVtLTkuMzAzIDMuMzc2Yy0uODY2IDEuNS4yMTcgMy4zNzQgMS45NDggMy4zNzRoMTQuNzFjMS43MyAwIDIuODEzLTEuODc0IDEuOTQ4LTMuMzc0TDEzLjk0OSAzLjM3OGMtLjg2Ni0xLjUtMy4wMzItMS41LTMuODk4IDBMMi42OTcgMTYuMTI2Wk0xMiAxNS43NWguMDA3di4wMDhIMTJ2LS4wMDhaXCJcbiAgfSkpO1xufVxuY29uc3QgRm9yd2FyZFJlZiA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZihFeGNsYW1hdGlvblRyaWFuZ2xlSWNvbik7XG5leHBvcnQgZGVmYXVsdCBGb3J3YXJkUmVmOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ExclamationTriangleIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/EyeIcon.js":
|
|
/*!*****************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/EyeIcon.js ***!
|
|
\*****************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction EyeIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(EyeIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0V5ZUljb24uanMiLCJtYXBwaW5ncyI6Ijs7QUFBK0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLCtCQUErQixnREFBbUI7QUFDckQ7QUFDQSxHQUFHLDhCQUE4QixnREFBbUI7QUFDcEQ7QUFDQTtBQUNBO0FBQ0EsR0FBRyxnQkFBZ0IsZ0RBQW1CO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlDQUFpQyw2Q0FBZ0I7QUFDakQsK0RBQWUsVUFBVSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lL2VzbS9FeWVJY29uLmpzPzEzOTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiBFeWVJY29uKHtcbiAgdGl0bGUsXG4gIHRpdGxlSWQsXG4gIC4uLnByb3BzXG59LCBzdmdSZWYpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIE9iamVjdC5hc3NpZ24oe1xuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gICAgZmlsbDogXCJub25lXCIsXG4gICAgdmlld0JveDogXCIwIDAgMjQgMjRcIixcbiAgICBzdHJva2VXaWR0aDogMS41LFxuICAgIHN0cm9rZTogXCJjdXJyZW50Q29sb3JcIixcbiAgICBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiLFxuICAgIFwiZGF0YS1zbG90XCI6IFwiaWNvblwiLFxuICAgIHJlZjogc3ZnUmVmLFxuICAgIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IHRpdGxlSWRcbiAgfSwgcHJvcHMpLCB0aXRsZSA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwidGl0bGVcIiwge1xuICAgIGlkOiB0aXRsZUlkXG4gIH0sIHRpdGxlKSA6IG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3Ryb2tlTGluZWNhcDogXCJyb3VuZFwiLFxuICAgIHN0cm9rZUxpbmVqb2luOiBcInJvdW5kXCIsXG4gICAgZDogXCJNMi4wMzYgMTIuMzIyYTEuMDEyIDEuMDEyIDAgMCAxIDAtLjYzOUMzLjQyMyA3LjUxIDcuMzYgNC41IDEyIDQuNWM0LjYzOCAwIDguNTczIDMuMDA3IDkuOTYzIDcuMTc4LjA3LjIwNy4wNy40MzEgMCAuNjM5QzIwLjU3NyAxNi40OSAxNi42NCAxOS41IDEyIDE5LjVjLTQuNjM4IDAtOC41NzMtMy4wMDctOS45NjMtNy4xNzhaXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3Ryb2tlTGluZWNhcDogXCJyb3VuZFwiLFxuICAgIHN0cm9rZUxpbmVqb2luOiBcInJvdW5kXCIsXG4gICAgZDogXCJNMTUgMTJhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwWlwiXG4gIH0pKTtcbn1cbmNvbnN0IEZvcndhcmRSZWYgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoRXllSWNvbik7XG5leHBvcnQgZGVmYXVsdCBGb3J3YXJkUmVmOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/EyeIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/EyeSlashIcon.js":
|
|
/*!**********************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/EyeSlashIcon.js ***!
|
|
\**********************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction EyeSlashIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M3.98 8.223A10.477 10.477 0 0 0 1.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.451 10.451 0 0 1 12 4.5c4.756 0 8.773 3.162 10.065 7.498a10.522 10.522 0 0 1-4.293 5.774M6.228 6.228 3 3m3.228 3.228 3.65 3.65m7.894 7.894L21 21m-3.228-3.228-3.65-3.65m0 0a3 3 0 1 0-4.243-4.243m4.242 4.242L9.88 9.88\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(EyeSlashIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0V5ZVNsYXNoSWNvbi5qcyIsIm1hcHBpbmdzIjoiOztBQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsK0JBQStCLGdEQUFtQjtBQUNyRDtBQUNBLEdBQUcsOEJBQThCLGdEQUFtQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpQ0FBaUMsNkNBQWdCO0FBQ2pELCtEQUFlLFVBQVUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BoZXJvaWNvbnMvcmVhY3QvMjQvb3V0bGluZS9lc20vRXllU2xhc2hJY29uLmpzPzEwY2YiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiBFeWVTbGFzaEljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk0zLjk4IDguMjIzQTEwLjQ3NyAxMC40NzcgMCAwIDAgMS45MzQgMTJDMy4yMjYgMTYuMzM4IDcuMjQ0IDE5LjUgMTIgMTkuNWMuOTkzIDAgMS45NTMtLjEzOCAyLjg2My0uMzk1TTYuMjI4IDYuMjI4QTEwLjQ1MSAxMC40NTEgMCAwIDEgMTIgNC41YzQuNzU2IDAgOC43NzMgMy4xNjIgMTAuMDY1IDcuNDk4YTEwLjUyMiAxMC41MjIgMCAwIDEtNC4yOTMgNS43NzRNNi4yMjggNi4yMjggMyAzbTMuMjI4IDMuMjI4IDMuNjUgMy42NW03Ljg5NCA3Ljg5NEwyMSAyMW0tMy4yMjgtMy4yMjgtMy42NS0zLjY1bTAgMGEzIDMgMCAxIDAtNC4yNDMtNC4yNDNtNC4yNDIgNC4yNDJMOS44OCA5Ljg4XCJcbiAgfSkpO1xufVxuY29uc3QgRm9yd2FyZFJlZiA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZihFeWVTbGFzaEljb24pO1xuZXhwb3J0IGRlZmF1bHQgRm9yd2FyZFJlZjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/EyeSlashIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/GlobeAltIcon.js":
|
|
/*!**********************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/GlobeAltIcon.js ***!
|
|
\**********************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction GlobeAltIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 21a9.004 9.004 0 0 0 8.716-6.747M12 21a9.004 9.004 0 0 1-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 0 1 7.843 4.582M12 3a8.997 8.997 0 0 0-7.843 4.582m15.686 0A11.953 11.953 0 0 1 12 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0 1 21 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0 1 12 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 0 1 3 12c0-1.605.42-3.113 1.157-4.418\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(GlobeAltIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0dsb2JlQWx0SWNvbi5qcyIsIm1hcHBpbmdzIjoiOztBQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsK0JBQStCLGdEQUFtQjtBQUNyRDtBQUNBLEdBQUcsOEJBQThCLGdEQUFtQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpQ0FBaUMsNkNBQWdCO0FBQ2pELCtEQUFlLFVBQVUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BoZXJvaWNvbnMvcmVhY3QvMjQvb3V0bGluZS9lc20vR2xvYmVBbHRJY29uLmpzPzIyYTciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiBHbG9iZUFsdEljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk0xMiAyMWE5LjAwNCA5LjAwNCAwIDAgMCA4LjcxNi02Ljc0N00xMiAyMWE5LjAwNCA5LjAwNCAwIDAgMS04LjcxNi02Ljc0N00xMiAyMWMyLjQ4NSAwIDQuNS00LjAzIDQuNS05UzE0LjQ4NSAzIDEyIDNtMCAxOGMtMi40ODUgMC00LjUtNC4wMy00LjUtOVM5LjUxNSAzIDEyIDNtMCAwYTguOTk3IDguOTk3IDAgMCAxIDcuODQzIDQuNTgyTTEyIDNhOC45OTcgOC45OTcgMCAwIDAtNy44NDMgNC41ODJtMTUuNjg2IDBBMTEuOTUzIDExLjk1MyAwIDAgMSAxMiAxMC41Yy0yLjk5OCAwLTUuNzQtMS4xLTcuODQzLTIuOTE4bTE1LjY4NiAwQTguOTU5IDguOTU5IDAgMCAxIDIxIDEyYzAgLjc3OC0uMDk5IDEuNTMzLS4yODQgMi4yNTNtMCAwQTE3LjkxOSAxNy45MTkgMCAwIDEgMTIgMTYuNWMtMy4xNjIgMC02LjEzMy0uODE1LTguNzE2LTIuMjQ3bTAgMEE5LjAxNSA5LjAxNSAwIDAgMSAzIDEyYzAtMS42MDUuNDItMy4xMTMgMS4xNTctNC40MThcIlxuICB9KSk7XG59XG5jb25zdCBGb3J3YXJkUmVmID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKEdsb2JlQWx0SWNvbik7XG5leHBvcnQgZGVmYXVsdCBGb3J3YXJkUmVmOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/GlobeAltIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/InformationCircleIcon.js":
|
|
/*!*******************************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/InformationCircleIcon.js ***!
|
|
\*******************************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction InformationCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(InformationCircleIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0luZm9ybWF0aW9uQ2lyY2xlSWNvbi5qcyIsIm1hcHBpbmdzIjoiOztBQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsK0JBQStCLGdEQUFtQjtBQUNyRDtBQUNBLEdBQUcsOEJBQThCLGdEQUFtQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpQ0FBaUMsNkNBQWdCO0FBQ2pELCtEQUFlLFVBQVUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BoZXJvaWNvbnMvcmVhY3QvMjQvb3V0bGluZS9lc20vSW5mb3JtYXRpb25DaXJjbGVJY29uLmpzPzNlNzciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiBJbmZvcm1hdGlvbkNpcmNsZUljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIm0xMS4yNSAxMS4yNS4wNDEtLjAyYS43NS43NSAwIDAgMSAxLjA2My44NTJsLS43MDggMi44MzZhLjc1Ljc1IDAgMCAwIDEuMDYzLjg1M2wuMDQxLS4wMjFNMjEgMTJhOSA5IDAgMSAxLTE4IDAgOSA5IDAgMCAxIDE4IDBabS05LTMuNzVoLjAwOHYuMDA4SDEyVjguMjVaXCJcbiAgfSkpO1xufVxuY29uc3QgRm9yd2FyZFJlZiA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZihJbmZvcm1hdGlvbkNpcmNsZUljb24pO1xuZXhwb3J0IGRlZmF1bHQgRm9yd2FyZFJlZjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/InformationCircleIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/KeyIcon.js":
|
|
/*!*****************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/KeyIcon.js ***!
|
|
\*****************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction KeyIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.75 5.25a3 3 0 0 1 3 3m3 0a6 6 0 0 1-7.029 5.912c-.563-.097-1.159.026-1.563.43L10.5 17.25H8.25v2.25H6v2.25H2.25v-2.818c0-.597.237-1.17.659-1.591l6.499-6.499c.404-.404.527-1 .43-1.563A6 6 0 1 1 21.75 8.25Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(KeyIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0tleUljb24uanMiLCJtYXBwaW5ncyI6Ijs7QUFBK0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLCtCQUErQixnREFBbUI7QUFDckQ7QUFDQSxHQUFHLDhCQUE4QixnREFBbUI7QUFDcEQ7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsaUNBQWlDLDZDQUFnQjtBQUNqRCwrREFBZSxVQUFVIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0tleUljb24uanM/ZjY0ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmZ1bmN0aW9uIEtleUljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk0xNS43NSA1LjI1YTMgMyAwIDAgMSAzIDNtMyAwYTYgNiAwIDAgMS03LjAyOSA1LjkxMmMtLjU2My0uMDk3LTEuMTU5LjAyNi0xLjU2My40M0wxMC41IDE3LjI1SDguMjV2Mi4yNUg2djIuMjVIMi4yNXYtMi44MThjMC0uNTk3LjIzNy0xLjE3LjY1OS0xLjU5MWw2LjQ5OS02LjQ5OWMuNDA0LS40MDQuNTI3LTEgLjQzLTEuNTYzQTYgNiAwIDEgMSAyMS43NSA4LjI1WlwiXG4gIH0pKTtcbn1cbmNvbnN0IEZvcndhcmRSZWYgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoS2V5SWNvbik7XG5leHBvcnQgZGVmYXVsdCBGb3J3YXJkUmVmOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/KeyIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/LockClosedIcon.js":
|
|
/*!************************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/LockClosedIcon.js ***!
|
|
\************************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction LockClosedIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(LockClosedIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL0xvY2tDbG9zZWRJY29uLmpzIiwibWFwcGluZ3MiOiI7O0FBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHNCQUFzQixnREFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRywrQkFBK0IsZ0RBQW1CO0FBQ3JEO0FBQ0EsR0FBRyw4QkFBOEIsZ0RBQW1CO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlDQUFpQyw2Q0FBZ0I7QUFDakQsK0RBQWUsVUFBVSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lL2VzbS9Mb2NrQ2xvc2VkSWNvbi5qcz8zNjJkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuZnVuY3Rpb24gTG9ja0Nsb3NlZEljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk0xNi41IDEwLjVWNi43NWE0LjUgNC41IDAgMSAwLTkgMHYzLjc1bS0uNzUgMTEuMjVoMTAuNWEyLjI1IDIuMjUgMCAwIDAgMi4yNS0yLjI1di02Ljc1YTIuMjUgMi4yNSAwIDAgMC0yLjI1LTIuMjVINi43NWEyLjI1IDIuMjUgMCAwIDAtMi4yNSAyLjI1djYuNzVhMi4yNSAyLjI1IDAgMCAwIDIuMjUgMi4yNVpcIlxuICB9KSk7XG59XG5jb25zdCBGb3J3YXJkUmVmID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKExvY2tDbG9zZWRJY29uKTtcbmV4cG9ydCBkZWZhdWx0IEZvcndhcmRSZWY7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/LockClosedIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/MagnifyingGlassIcon.js":
|
|
/*!*****************************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/MagnifyingGlassIcon.js ***!
|
|
\*****************************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction MagnifyingGlassIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(MagnifyingGlassIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL01hZ25pZnlpbmdHbGFzc0ljb24uanMiLCJtYXBwaW5ncyI6Ijs7QUFBK0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLCtCQUErQixnREFBbUI7QUFDckQ7QUFDQSxHQUFHLDhCQUE4QixnREFBbUI7QUFDcEQ7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsaUNBQWlDLDZDQUFnQjtBQUNqRCwrREFBZSxVQUFVIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL01hZ25pZnlpbmdHbGFzc0ljb24uanM/OGE3ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmZ1bmN0aW9uIE1hZ25pZnlpbmdHbGFzc0ljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIm0yMSAyMS01LjE5Ny01LjE5N20wIDBBNy41IDcuNSAwIDEgMCA1LjE5NiA1LjE5NmE3LjUgNy41IDAgMCAwIDEwLjYwNyAxMC42MDdaXCJcbiAgfSkpO1xufVxuY29uc3QgRm9yd2FyZFJlZiA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZihNYWduaWZ5aW5nR2xhc3NJY29uKTtcbmV4cG9ydCBkZWZhdWx0IEZvcndhcmRSZWY7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/MagnifyingGlassIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/PlusIcon.js":
|
|
/*!******************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/PlusIcon.js ***!
|
|
\******************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction PlusIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 4.5v15m7.5-7.5h-15\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(PlusIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL1BsdXNJY29uLmpzIiwibWFwcGluZ3MiOiI7O0FBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHNCQUFzQixnREFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRywrQkFBK0IsZ0RBQW1CO0FBQ3JEO0FBQ0EsR0FBRyw4QkFBOEIsZ0RBQW1CO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlDQUFpQyw2Q0FBZ0I7QUFDakQsK0RBQWUsVUFBVSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lL2VzbS9QbHVzSWNvbi5qcz9iZjQ0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuZnVuY3Rpb24gUGx1c0ljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk0xMiA0LjV2MTVtNy41LTcuNWgtMTVcIlxuICB9KSk7XG59XG5jb25zdCBGb3J3YXJkUmVmID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKFBsdXNJY29uKTtcbmV4cG9ydCBkZWZhdWx0IEZvcndhcmRSZWY7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/PlusIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ServerIcon.js":
|
|
/*!********************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/ServerIcon.js ***!
|
|
\********************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction ServerIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M21.75 17.25v-.228a4.5 4.5 0 0 0-.12-1.03l-2.268-9.64a3.375 3.375 0 0 0-3.285-2.602H7.923a3.375 3.375 0 0 0-3.285 2.602l-2.268 9.64a4.5 4.5 0 0 0-.12 1.03v.228m19.5 0a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3m19.5 0a3 3 0 0 0-3-3H5.25a3 3 0 0 0-3 3m16.5 0h.008v.008h-.008v-.008Zm-3 0h.008v.008h-.008v-.008Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(ServerIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL1NlcnZlckljb24uanMiLCJtYXBwaW5ncyI6Ijs7QUFBK0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLCtCQUErQixnREFBbUI7QUFDckQ7QUFDQSxHQUFHLDhCQUE4QixnREFBbUI7QUFDcEQ7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsaUNBQWlDLDZDQUFnQjtBQUNqRCwrREFBZSxVQUFVIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL1NlcnZlckljb24uanM/ODc4OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmZ1bmN0aW9uIFNlcnZlckljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk0yMS43NSAxNy4yNXYtLjIyOGE0LjUgNC41IDAgMCAwLS4xMi0xLjAzbC0yLjI2OC05LjY0YTMuMzc1IDMuMzc1IDAgMCAwLTMuMjg1LTIuNjAySDcuOTIzYTMuMzc1IDMuMzc1IDAgMCAwLTMuMjg1IDIuNjAybC0yLjI2OCA5LjY0YTQuNSA0LjUgMCAwIDAtLjEyIDEuMDN2LjIyOG0xOS41IDBhMyAzIDAgMCAxLTMgM0g1LjI1YTMgMyAwIDAgMS0zLTNtMTkuNSAwYTMgMyAwIDAgMC0zLTNINS4yNWEzIDMgMCAwIDAtMyAzbTE2LjUgMGguMDA4di4wMDhoLS4wMDh2LS4wMDhabS0zIDBoLjAwOHYuMDA4aC0uMDA4di0uMDA4WlwiXG4gIH0pKTtcbn1cbmNvbnN0IEZvcndhcmRSZWYgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoU2VydmVySWNvbik7XG5leHBvcnQgZGVmYXVsdCBGb3J3YXJkUmVmOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ServerIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ServerStackIcon.js":
|
|
/*!*************************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/ServerStackIcon.js ***!
|
|
\*************************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction ServerStackIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M5.25 14.25h13.5m-13.5 0a3 3 0 0 1-3-3m3 3a3 3 0 1 0 0 6h13.5a3 3 0 1 0 0-6m-16.5-3a3 3 0 0 1 3-3h13.5a3 3 0 0 1 3 3m-19.5 0a4.5 4.5 0 0 1 .9-2.7L5.737 5.1a3.375 3.375 0 0 1 2.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 0 1 .9 2.7m0 0a3 3 0 0 1-3 3m0 3h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Zm-3 6h.008v.008h-.008v-.008Zm0-6h.008v.008h-.008v-.008Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(ServerStackIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL1NlcnZlclN0YWNrSWNvbi5qcyIsIm1hcHBpbmdzIjoiOztBQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsK0JBQStCLGdEQUFtQjtBQUNyRDtBQUNBLEdBQUcsOEJBQThCLGdEQUFtQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpQ0FBaUMsNkNBQWdCO0FBQ2pELCtEQUFlLFVBQVUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BoZXJvaWNvbnMvcmVhY3QvMjQvb3V0bGluZS9lc20vU2VydmVyU3RhY2tJY29uLmpzPzYzZDQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiBTZXJ2ZXJTdGFja0ljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk01LjI1IDE0LjI1aDEzLjVtLTEzLjUgMGEzIDMgMCAwIDEtMy0zbTMgM2EzIDMgMCAxIDAgMCA2aDEzLjVhMyAzIDAgMSAwIDAtNm0tMTYuNS0zYTMgMyAwIDAgMSAzLTNoMTMuNWEzIDMgMCAwIDEgMyAzbS0xOS41IDBhNC41IDQuNSAwIDAgMSAuOS0yLjdMNS43MzcgNS4xYTMuMzc1IDMuMzc1IDAgMCAxIDIuNy0xLjM1aDcuMTI2YzEuMDYyIDAgMi4wNjIuNSAyLjcgMS4zNWwyLjU4NyAzLjQ1YTQuNSA0LjUgMCAwIDEgLjkgMi43bTAgMGEzIDMgMCAwIDEtMyAzbTAgM2guMDA4di4wMDhoLS4wMDh2LS4wMDhabTAtNmguMDA4di4wMDhoLS4wMDh2LS4wMDhabS0zIDZoLjAwOHYuMDA4aC0uMDA4di0uMDA4Wm0wLTZoLjAwOHYuMDA4aC0uMDA4di0uMDA4WlwiXG4gIH0pKTtcbn1cbmNvbnN0IEZvcndhcmRSZWYgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoU2VydmVyU3RhY2tJY29uKTtcbmV4cG9ydCBkZWZhdWx0IEZvcndhcmRSZWY7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ServerStackIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ShieldCheckIcon.js":
|
|
/*!*************************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/ShieldCheckIcon.js ***!
|
|
\*************************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction ShieldCheckIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 12.75 11.25 15 15 9.75m-3-7.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(ShieldCheckIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL1NoaWVsZENoZWNrSWNvbi5qcyIsIm1hcHBpbmdzIjoiOztBQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsK0JBQStCLGdEQUFtQjtBQUNyRDtBQUNBLEdBQUcsOEJBQThCLGdEQUFtQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpQ0FBaUMsNkNBQWdCO0FBQ2pELCtEQUFlLFVBQVUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BoZXJvaWNvbnMvcmVhY3QvMjQvb3V0bGluZS9lc20vU2hpZWxkQ2hlY2tJY29uLmpzP2Q0MzIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiBTaGllbGRDaGVja0ljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk05IDEyLjc1IDExLjI1IDE1IDE1IDkuNzVtLTMtNy4wMzZBMTEuOTU5IDExLjk1OSAwIDAgMSAzLjU5OCA2IDExLjk5IDExLjk5IDAgMCAwIDMgOS43NDljMCA1LjU5MiAzLjgyNCAxMC4yOSA5IDExLjYyMyA1LjE3Ni0xLjMzMiA5LTYuMDMgOS0xMS42MjIgMC0xLjMxLS4yMS0yLjU3MS0uNTk4LTMuNzUxaC0uMTUyYy0zLjE5NiAwLTYuMS0xLjI0OC04LjI1LTMuMjg1WlwiXG4gIH0pKTtcbn1cbmNvbnN0IEZvcndhcmRSZWYgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoU2hpZWxkQ2hlY2tJY29uKTtcbmV4cG9ydCBkZWZhdWx0IEZvcndhcmRSZWY7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/ShieldCheckIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/SparklesIcon.js":
|
|
/*!**********************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/SparklesIcon.js ***!
|
|
\**********************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction SparklesIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(SparklesIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL1NwYXJrbGVzSWNvbi5qcyIsIm1hcHBpbmdzIjoiOztBQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsK0JBQStCLGdEQUFtQjtBQUNyRDtBQUNBLEdBQUcsOEJBQThCLGdEQUFtQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpQ0FBaUMsNkNBQWdCO0FBQ2pELCtEQUFlLFVBQVUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BoZXJvaWNvbnMvcmVhY3QvMjQvb3V0bGluZS9lc20vU3BhcmtsZXNJY29uLmpzP2YwOTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiBTcGFya2xlc0ljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk05LjgxMyAxNS45MDQgOSAxOC43NWwtLjgxMy0yLjg0NmE0LjUgNC41IDAgMCAwLTMuMDktMy4wOUwyLjI1IDEybDIuODQ2LS44MTNhNC41IDQuNSAwIDAgMCAzLjA5LTMuMDlMOSA1LjI1bC44MTMgMi44NDZhNC41IDQuNSAwIDAgMCAzLjA5IDMuMDlMMTUuNzUgMTJsLTIuODQ2LjgxM2E0LjUgNC41IDAgMCAwLTMuMDkgMy4wOVpNMTguMjU5IDguNzE1IDE4IDkuNzVsLS4yNTktMS4wMzVhMy4zNzUgMy4zNzUgMCAwIDAtMi40NTUtMi40NTZMMTQuMjUgNmwxLjAzNi0uMjU5YTMuMzc1IDMuMzc1IDAgMCAwIDIuNDU1LTIuNDU2TDE4IDIuMjVsLjI1OSAxLjAzNWEzLjM3NSAzLjM3NSAwIDAgMCAyLjQ1NiAyLjQ1NkwyMS43NSA2bC0xLjAzNS4yNTlhMy4zNzUgMy4zNzUgMCAwIDAtMi40NTYgMi40NTZaTTE2Ljg5NCAyMC41NjcgMTYuNSAyMS43NWwtLjM5NC0xLjE4M2EyLjI1IDIuMjUgMCAwIDAtMS40MjMtMS40MjNMMTMuNSAxOC43NWwxLjE4My0uMzk0YTIuMjUgMi4yNSAwIDAgMCAxLjQyMy0xLjQyM2wuMzk0LTEuMTgzLjM5NCAxLjE4M2EyLjI1IDIuMjUgMCAwIDAgMS40MjMgMS40MjNsMS4xODMuMzk0LTEuMTgzLjM5NGEyLjI1IDIuMjUgMCAwIDAtMS40MjMgMS40MjNaXCJcbiAgfSkpO1xufVxuY29uc3QgRm9yd2FyZFJlZiA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZihTcGFya2xlc0ljb24pO1xuZXhwb3J0IGRlZmF1bHQgRm9yd2FyZFJlZjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/SparklesIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/StopIcon.js":
|
|
/*!******************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/StopIcon.js ***!
|
|
\******************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction StopIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(StopIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL1N0b3BJY29uLmpzIiwibWFwcGluZ3MiOiI7O0FBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHNCQUFzQixnREFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRywrQkFBK0IsZ0RBQW1CO0FBQ3JEO0FBQ0EsR0FBRyw4QkFBOEIsZ0RBQW1CO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlDQUFpQyw2Q0FBZ0I7QUFDakQsK0RBQWUsVUFBVSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lL2VzbS9TdG9wSWNvbi5qcz8xNzFhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuZnVuY3Rpb24gU3RvcEljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk01LjI1IDcuNUEyLjI1IDIuMjUgMCAwIDEgNy41IDUuMjVoOWEyLjI1IDIuMjUgMCAwIDEgMi4yNSAyLjI1djlhMi4yNSAyLjI1IDAgMCAxLTIuMjUgMi4yNWgtOWEyLjI1IDIuMjUgMCAwIDEtMi4yNS0yLjI1di05WlwiXG4gIH0pKTtcbn1cbmNvbnN0IEZvcndhcmRSZWYgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoU3RvcEljb24pO1xuZXhwb3J0IGRlZmF1bHQgRm9yd2FyZFJlZjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/StopIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/UserGroupIcon.js":
|
|
/*!***********************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/UserGroupIcon.js ***!
|
|
\***********************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction UserGroupIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M18 18.72a9.094 9.094 0 0 0 3.741-.479 3 3 0 0 0-4.682-2.72m.94 3.198.001.031c0 .225-.012.447-.037.666A11.944 11.944 0 0 1 12 21c-2.17 0-4.207-.576-5.963-1.584A6.062 6.062 0 0 1 6 18.719m12 0a5.971 5.971 0 0 0-.941-3.197m0 0A5.995 5.995 0 0 0 12 12.75a5.995 5.995 0 0 0-5.058 2.772m0 0a3 3 0 0 0-4.681 2.72 8.986 8.986 0 0 0 3.74.477m.94-3.197a5.971 5.971 0 0 0-.94 3.197M15 6.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm6 3a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0Zm-13.5 0a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(UserGroupIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL1VzZXJHcm91cEljb24uanMiLCJtYXBwaW5ncyI6Ijs7QUFBK0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLCtCQUErQixnREFBbUI7QUFDckQ7QUFDQSxHQUFHLDhCQUE4QixnREFBbUI7QUFDcEQ7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsaUNBQWlDLDZDQUFnQjtBQUNqRCwrREFBZSxVQUFVIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL1VzZXJHcm91cEljb24uanM/ZjBhNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmZ1bmN0aW9uIFVzZXJHcm91cEljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk0xOCAxOC43MmE5LjA5NCA5LjA5NCAwIDAgMCAzLjc0MS0uNDc5IDMgMyAwIDAgMC00LjY4Mi0yLjcybS45NCAzLjE5OC4wMDEuMDMxYzAgLjIyNS0uMDEyLjQ0Ny0uMDM3LjY2NkExMS45NDQgMTEuOTQ0IDAgMCAxIDEyIDIxYy0yLjE3IDAtNC4yMDctLjU3Ni01Ljk2My0xLjU4NEE2LjA2MiA2LjA2MiAwIDAgMSA2IDE4LjcxOW0xMiAwYTUuOTcxIDUuOTcxIDAgMCAwLS45NDEtMy4xOTdtMCAwQTUuOTk1IDUuOTk1IDAgMCAwIDEyIDEyLjc1YTUuOTk1IDUuOTk1IDAgMCAwLTUuMDU4IDIuNzcybTAgMGEzIDMgMCAwIDAtNC42ODEgMi43MiA4Ljk4NiA4Ljk4NiAwIDAgMCAzLjc0LjQ3N20uOTQtMy4xOTdhNS45NzEgNS45NzEgMCAwIDAtLjk0IDMuMTk3TTE1IDYuNzVhMyAzIDAgMSAxLTYgMCAzIDMgMCAwIDEgNiAwWm02IDNhMi4yNSAyLjI1IDAgMSAxLTQuNSAwIDIuMjUgMi4yNSAwIDAgMSA0LjUgMFptLTEzLjUgMGEyLjI1IDIuMjUgMCAxIDEtNC41IDAgMi4yNSAyLjI1IDAgMCAxIDQuNSAwWlwiXG4gIH0pKTtcbn1cbmNvbnN0IEZvcndhcmRSZWYgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoVXNlckdyb3VwSWNvbik7XG5leHBvcnQgZGVmYXVsdCBGb3J3YXJkUmVmOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/UserGroupIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/UserIcon.js":
|
|
/*!******************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/UserIcon.js ***!
|
|
\******************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction UserIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.75 6a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0ZM4.501 20.118a7.5 7.5 0 0 1 14.998 0A17.933 17.933 0 0 1 12 21.75c-2.676 0-5.216-.584-7.499-1.632Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(UserIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL1VzZXJJY29uLmpzIiwibWFwcGluZ3MiOiI7O0FBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHNCQUFzQixnREFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRywrQkFBK0IsZ0RBQW1CO0FBQ3JEO0FBQ0EsR0FBRyw4QkFBOEIsZ0RBQW1CO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlDQUFpQyw2Q0FBZ0I7QUFDakQsK0RBQWUsVUFBVSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lL2VzbS9Vc2VySWNvbi5qcz8wNzIxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuZnVuY3Rpb24gVXNlckljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk0xNS43NSA2YTMuNzUgMy43NSAwIDEgMS03LjUgMCAzLjc1IDMuNzUgMCAwIDEgNy41IDBaTTQuNTAxIDIwLjExOGE3LjUgNy41IDAgMCAxIDE0Ljk5OCAwQTE3LjkzMyAxNy45MzMgMCAwIDEgMTIgMjEuNzVjLTIuNjc2IDAtNS4yMTYtLjU4NC03LjQ5OS0xLjYzMlpcIlxuICB9KSk7XG59XG5jb25zdCBGb3J3YXJkUmVmID0gLyojX19QVVJFX18qLyBSZWFjdC5mb3J3YXJkUmVmKFVzZXJJY29uKTtcbmV4cG9ydCBkZWZhdWx0IEZvcndhcmRSZWY7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/UserIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/WifiIcon.js":
|
|
/*!******************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/WifiIcon.js ***!
|
|
\******************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction WifiIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M8.288 15.038a5.25 5.25 0 0 1 7.424 0M5.106 11.856c3.807-3.808 9.98-3.808 13.788 0M1.924 8.674c5.565-5.565 14.587-5.565 20.152 0M12.53 18.22l-.53.53-.53-.53a.75.75 0 0 1 1.06 0Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(WifiIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL1dpZmlJY29uLmpzIiwibWFwcGluZ3MiOiI7O0FBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHNCQUFzQixnREFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRywrQkFBK0IsZ0RBQW1CO0FBQ3JEO0FBQ0EsR0FBRyw4QkFBOEIsZ0RBQW1CO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlDQUFpQyw2Q0FBZ0I7QUFDakQsK0RBQWUsVUFBVSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lL2VzbS9XaWZpSWNvbi5qcz80Y2YwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuZnVuY3Rpb24gV2lmaUljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk04LjI4OCAxNS4wMzhhNS4yNSA1LjI1IDAgMCAxIDcuNDI0IDBNNS4xMDYgMTEuODU2YzMuODA3LTMuODA4IDkuOTgtMy44MDggMTMuNzg4IDBNMS45MjQgOC42NzRjNS41NjUtNS41NjUgMTQuNTg3LTUuNTY1IDIwLjE1MiAwTTEyLjUzIDE4LjIybC0uNTMuNTMtLjUzLS41M2EuNzUuNzUgMCAwIDEgMS4wNiAwWlwiXG4gIH0pKTtcbn1cbmNvbnN0IEZvcndhcmRSZWYgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoV2lmaUljb24pO1xuZXhwb3J0IGRlZmF1bHQgRm9yd2FyZFJlZjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/WifiIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/XCircleIcon.js":
|
|
/*!*********************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/XCircleIcon.js ***!
|
|
\*********************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction XCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(XCircleIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL1hDaXJjbGVJY29uLmpzIiwibWFwcGluZ3MiOiI7O0FBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHNCQUFzQixnREFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRywrQkFBK0IsZ0RBQW1CO0FBQ3JEO0FBQ0EsR0FBRyw4QkFBOEIsZ0RBQW1CO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLGlDQUFpQyw2Q0FBZ0I7QUFDakQsK0RBQWUsVUFBVSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lL2VzbS9YQ2lyY2xlSWNvbi5qcz83OTkyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuZnVuY3Rpb24gWENpcmNsZUljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIm05Ljc1IDkuNzUgNC41IDQuNW0wLTQuNS00LjUgNC41TTIxIDEyYTkgOSAwIDEgMS0xOCAwIDkgOSAwIDAgMSAxOCAwWlwiXG4gIH0pKTtcbn1cbmNvbnN0IEZvcndhcmRSZWYgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmZvcndhcmRSZWYoWENpcmNsZUljb24pO1xuZXhwb3J0IGRlZmF1bHQgRm9yd2FyZFJlZjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/XCircleIcon.js\n"));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/XMarkIcon.js":
|
|
/*!*******************************************************************!*\
|
|
!*** ./node_modules/@heroicons/react/24/outline/esm/XMarkIcon.js ***!
|
|
\*******************************************************************/
|
|
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\nfunction XMarkIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6 18 18 6M6 6l12 12\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(XMarkIcon);\n/* harmony default export */ __webpack_exports__[\"default\"] = (ForwardRef);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUvZXNtL1hNYXJrSWNvbi5qcyIsIm1hcHBpbmdzIjoiOztBQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxzQkFBc0IsZ0RBQW1CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsK0JBQStCLGdEQUFtQjtBQUNyRDtBQUNBLEdBQUcsOEJBQThCLGdEQUFtQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpQ0FBaUMsNkNBQWdCO0FBQ2pELCtEQUFlLFVBQVUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0BoZXJvaWNvbnMvcmVhY3QvMjQvb3V0bGluZS9lc20vWE1hcmtJY29uLmpzPzA5OWMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiBYTWFya0ljb24oe1xuICB0aXRsZSxcbiAgdGl0bGVJZCxcbiAgLi4ucHJvcHNcbn0sIHN2Z1JlZikge1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgT2JqZWN0LmFzc2lnbih7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAyNCAyNFwiLFxuICAgIHN0cm9rZVdpZHRoOiAxLjUsXG4gICAgc3Ryb2tlOiBcImN1cnJlbnRDb2xvclwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJkYXRhLXNsb3RcIjogXCJpY29uXCIsXG4gICAgcmVmOiBzdmdSZWYsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGVJZFxuICB9LCBwcm9wcyksIHRpdGxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0aXRsZVwiLCB7XG4gICAgaWQ6IHRpdGxlSWRcbiAgfSwgdGl0bGUpIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBzdHJva2VMaW5lY2FwOiBcInJvdW5kXCIsXG4gICAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIixcbiAgICBkOiBcIk02IDE4IDE4IDZNNiA2bDEyIDEyXCJcbiAgfSkpO1xufVxuY29uc3QgRm9yd2FyZFJlZiA9IC8qI19fUFVSRV9fKi8gUmVhY3QuZm9yd2FyZFJlZihYTWFya0ljb24pO1xuZXhwb3J0IGRlZmF1bHQgRm9yd2FyZFJlZjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@heroicons/react/24/outline/esm/XMarkIcon.js\n"));
|
|
|
|
/***/ })
|
|
|
|
},
|
|
/******/ function(__webpack_require__) { // webpackRuntimeModules
|
|
/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
|
|
/******/ __webpack_require__.O(0, ["main-app"], function() { return __webpack_exec__("(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fhome%2Ftony%2Fchorus%2Fproject-queues%2Factive%2FBZZZ%2Finstall%2Fconfig-ui%2Fapp%2Fsetup%2Fpage.tsx&server=false!"); });
|
|
/******/ var __webpack_exports__ = __webpack_require__.O();
|
|
/******/ _N_E = __webpack_exports__;
|
|
/******/ }
|
|
]); |