Some checks failed
CI/CD - Francia Ocupada (La Resistencia) / build-and-deploy (push) Failing after 8s
22 lines
129 KiB
JavaScript
22 lines
129 KiB
JavaScript
"use strict";
|
|
/*
|
|
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
* This devtool is neither made for production nor for readable output files.
|
|
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
|
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
* or disable the default devtool with "devtool: false".
|
|
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
*/
|
|
self["webpackHotUpdate_N_E"]("app/dashboard/page",{
|
|
|
|
/***/ "(app-pages-browser)/./src/app/dashboard/page.tsx":
|
|
/*!************************************!*\
|
|
!*** ./src/app/dashboard/page.tsx ***!
|
|
\************************************/
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Dashboard; }\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 styled_jsx_style__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-jsx/style */ \"(app-pages-browser)/./node_modules/styled-jsx/style.js\");\n/* harmony import */ var styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(styled_jsx_style__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! framer-motion */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/motion.mjs\");\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! framer-motion */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs\");\n/* harmony import */ var _hooks_useSocket__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../hooks/useSocket */ \"(app-pages-browser)/./src/hooks/useSocket.ts\");\n/* harmony import */ var _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Clock,Gamepad2,History,Key,LogOut,Shield,UserMinus,Users!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/gamepad-2.js\");\n/* harmony import */ var _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=Clock,Gamepad2,History,Key,LogOut,Shield,UserMinus,Users!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/users.js\");\n/* harmony import */ var _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Clock,Gamepad2,History,Key,LogOut,Shield,UserMinus,Users!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/history.js\");\n/* harmony import */ var _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=Clock,Gamepad2,History,Key,LogOut,Shield,UserMinus,Users!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/clock.js\");\n/* harmony import */ var _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=Clock,Gamepad2,History,Key,LogOut,Shield,UserMinus,Users!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/shield.js\");\n/* harmony import */ var _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=Clock,Gamepad2,History,Key,LogOut,Shield,UserMinus,Users!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/key.js\");\n/* harmony import */ var _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! __barrel_optimize__?names=Clock,Gamepad2,History,Key,LogOut,Shield,UserMinus,Users!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/log-out.js\");\n/* harmony import */ var _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! __barrel_optimize__?names=Clock,Gamepad2,History,Key,LogOut,Shield,UserMinus,Users!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/user-minus.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\nconst ADMIN_PASSWORD = \"admin123\";\nfunction Dashboard() {\n _s();\n const { socket, isConnected } = (0,_hooks_useSocket__WEBPACK_IMPORTED_MODULE_3__.useSocket)();\n const [password, setPassword] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(\"\");\n const [isAuthenticated, setIsAuthenticated] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n const [activeGames, setActiveGames] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)([]);\n const [gameHistory, setGameHistory] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)([]);\n const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(\"\");\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(()=>{\n const savedSession = true ? localStorage.getItem(\"resistencia_admin_session\") : 0;\n if (savedSession === \"active\") {\n setIsAuthenticated(true);\n }\n }, []);\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(()=>{\n if (isAuthenticated && socket) {\n socket.emit(\"admin_get_data\");\n const handleAdminData = (data)=>{\n setActiveGames(data.activeGames);\n setGameHistory(data.history);\n };\n const handleSuccess = ()=>{\n socket.emit(\"admin_get_data\");\n };\n socket.on(\"admin_data\", handleAdminData);\n socket.on(\"admin_action_success\", handleSuccess);\n return ()=>{\n socket.off(\"admin_data\", handleAdminData);\n socket.off(\"admin_action_success\", handleSuccess);\n };\n }\n }, [\n isAuthenticated,\n socket\n ]);\n const handleLogin = (e)=>{\n e.preventDefault();\n if (password === ADMIN_PASSWORD) {\n setIsAuthenticated(true);\n localStorage.setItem(\"resistencia_admin_session\", \"active\");\n setError(\"\");\n } else {\n setError(\"Acceso Denegado: Contrase\\xf1a incorrecta\");\n }\n };\n const handleLogout = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(()=>{\n localStorage.removeItem(\"resistencia_admin_session\");\n setIsAuthenticated(false);\n setPassword(\"\");\n }, []);\n const closeGame = (roomId)=>{\n if ( true && window.confirm(\"\\xbfSeguro que quieres forzar el cierre de esta partida?\")) {\n socket === null || socket === void 0 ? void 0 : socket.emit(\"admin_close_game\", {\n roomId\n });\n }\n };\n const kickPlayer = (roomId, socketId)=>{\n if ( true && window.confirm(\"\\xbfSeguro que quieres expulsar a este jugador?\")) {\n socket === null || socket === void 0 ? void 0 : socket.emit(\"admin_kick_player\", {\n roomId,\n targetSocketId: socketId\n });\n }\n };\n const stats = [\n {\n label: \"Partidas Activas\",\n value: activeGames.length,\n color: \"text-red-500\",\n icon: _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n },\n {\n label: \"Agentes Online\",\n value: activeGames.reduce((acc, g)=>acc + g.currentPlayers, 0),\n color: \"text-blue-400\",\n icon: _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"]\n },\n {\n label: \"Misiones Registradas\",\n value: gameHistory.length,\n color: \"text-orange-400\",\n icon: _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"]\n },\n {\n label: \"Estado\",\n value: isConnected ? \"100%\" : \"0%\",\n color: \"text-green-400\",\n icon: _barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"]\n }\n ];\n if (!isAuthenticated) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"min-h-screen bg-[#0a0a0c] flex items-center justify-center p-4 font-['Inter',sans-serif]\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n initial: {\n opacity: 0,\n scale: 0.95\n },\n animate: {\n opacity: 1,\n scale: 1\n },\n className: \"bg-[#121216] border border-white/10 p-10 rounded-3xl w-full max-w-md shadow-[0_20px_50px_rgba(0,0,0,0.5)] relative overflow-hidden\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute top-0 left-0 w-full h-1 bg-gradient-to-r from-red-600 via-zinc-800 to-red-600\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 122,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-center mb-8 relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 bg-red-500/20 blur-2xl rounded-full\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 125,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n size: 64,\n className: \"text-red-500 relative z-10\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 126,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 124,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-3xl font-black text-white text-center mb-2 uppercase tracking-tight\",\n children: \"Acceso Admin\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 129,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-400 text-center text-sm mb-10 font-medium\",\n children: \"Panel de Control de La Resistencia\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 130,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: handleLogin,\n className: \"space-y-6\",\n children: [\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_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n size: 18,\n className: \"absolute left-4 top-1/2 -translate-y-1/2 text-gray-500\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 134,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"password\",\n autoFocus: true,\n value: password,\n onChange: (e)=>setPassword(e.target.value),\n placeholder: \"Introduce la contrase\\xf1a\",\n className: \"w-full bg-[#1a1a20] border border-white/5 rounded-2xl pl-12 pr-6 py-4 text-white focus:outline-none focus:ring-2 focus:ring-red-600/50 transition-all placeholder:text-gray-600 font-medium\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 135,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 133,\n columnNumber: 25\n }, this),\n error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.p, {\n initial: {\n opacity: 0,\n y: -10\n },\n animate: {\n opacity: 1,\n y: 0\n },\n className: \"text-red-500 text-xs font-bold text-center mt-2 flex items-center justify-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"w-1.5 h-1.5 bg-red-500 rounded-full animate-pulse\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 151,\n columnNumber: 33\n }, this),\n error\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 146,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"submit\",\n className: \"w-full bg-red-600 hover:bg-red-500 text-white font-black py-4 rounded-2xl shadow-xl shadow-red-600/10 transition-all uppercase tracking-[0.2em] text-xs hover:scale-[1.02] active:scale-[0.98]\",\n children: \"Entrar en Sistema\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 156,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 132,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 117,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 116,\n columnNumber: 13\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"min-h-screen bg-[#0a0a0c] text-white p-4 md:p-10 font-['Inter',sans-serif]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"max-w-7xl mx-auto flex flex-col md:flex-row justify-between items-start md:items-center mb-12 gap-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"space-y-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-3 text-red-500\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"p-2 bg-red-500/10 rounded-lg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n size: 22\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 175,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 174,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-[10px] font-black uppercase tracking-[0.4em] opacity-80\",\n children: \"Seguimiento de Operaciones\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 177,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 173,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-5xl font-black tracking-tighter uppercase italic text-transparent bg-clip-text bg-gradient-to-r from-white via-white to-gray-500\",\n children: \"Comandante\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 179,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 172,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-6 bg-[#121216] border border-white/10 px-8 py-4 rounded-3xl shadow-xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex flex-col items-end\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-[10px] text-gray-500 uppercase font-black tracking-widest mb-1\",\n children: \"Status Servidor\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 184,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"w-2.5 h-2.5 rounded-full \".concat(isConnected ? \"bg-green-500 shadow-[0_0_15px_rgba(34,197,94,0.6)] animate-pulse\" : \"bg-red-500\")\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 186,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-xs font-mono font-black tracking-widest\",\n children: isConnected ? \"OPERATIVO\" : \"DESCONECTADO\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 187,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 185,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 183,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"w-px h-8 bg-white/10 mx-2\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 191,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: handleLogout,\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-2 px-5 py-2.5 bg-zinc-800 hover:bg-red-600 text-gray-300 hover:text-white rounded-xl transition-all font-black text-[10px] uppercase tracking-widest group\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n size: 16,\n className: \"group-hover:translate-x-1 transition-transform\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 197,\n columnNumber: 25\n }, this),\n \"Desconectar\"\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 193,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 182,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 171,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-12 gap-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"lg:col-span-12 grid grid-cols-2 md:grid-cols-4 gap-4 mb-2\",\n children: stats.map((stat, i)=>{\n const Icon = stat.icon;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"bg-[#121216] border border-white/5 p-6 rounded-2xl flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-[10px] uppercase font-black tracking-widest text-gray-500 mb-1\",\n children: stat.label\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 212,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-2xl font-black \".concat(stat.color),\n children: stat.value\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 213,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 211,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Icon, {\n size: 32,\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"opacity-10\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 215,\n columnNumber: 33\n }, this)\n ]\n }, i, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 210,\n columnNumber: 29\n }, this);\n })\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 206,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"lg:col-span-8 space-y-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"jsx-fdcac8fe30296e2f\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-4 mb-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-xl font-black text-white uppercase tracking-tighter italic border-l-4 border-red-600 pl-4\",\n children: \"Canales de Radio Activos\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 225,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 224,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"grid gap-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_12__.AnimatePresence, {\n mode: \"popLayout\",\n children: activeGames.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n className: \"bg-[#121216]/40 border border-dashed border-white/10 rounded-3xl p-20 text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n size: 48,\n className: \"mx-auto mb-6 text-gray-700\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 237,\n columnNumber: 41\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-lg font-bold text-gray-600 uppercase tracking-widest\",\n children: \"Silencio Radioel\\xe9ctrico\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 238,\n columnNumber: 41\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-xs text-gray-700 font-medium\",\n children: \"Buscando se\\xf1ales de misiones activas...\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 239,\n columnNumber: 41\n }, this)\n ]\n }, \"empty-state\", true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 231,\n columnNumber: 37\n }, this) : activeGames.map((game)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n layout: true,\n initial: {\n opacity: 0,\n x: -20\n },\n animate: {\n opacity: 1,\n x: 0\n },\n exit: {\n opacity: 0,\n scale: 0.95\n },\n className: \"bg-[#121216] border border-white/10 rounded-3xl p-8 hover:bg-[#16161c] transition-all group shadow-xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex flex-col md:flex-row justify-between items-start md:items-center gap-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-3 mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-2xl font-black text-white italic uppercase tracking-tighter leading-none\",\n children: game.name\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 254,\n columnNumber: 57\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-[10px] font-bold px-2 py-0.5 bg-red-500/10 text-red-500 rounded border border-red-500/20\",\n children: game.status\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 255,\n columnNumber: 57\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 253,\n columnNumber: 53\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-4 text-[10px] uppercase font-black tracking-widest text-gray-500\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-1.5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n size: 12,\n className: \"text-red-500\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 259,\n columnNumber: 61\n }, this),\n game.currentPlayers,\n \" / \",\n game.maxPlayers,\n \" Agentes Movilizados\"\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 258,\n columnNumber: 57\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-gray-800\",\n children: \"|\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 262,\n columnNumber: 57\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\",\n children: [\n \"ID: \",\n game.id.slice(0, 8)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 263,\n columnNumber: 57\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 257,\n columnNumber: 53\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 252,\n columnNumber: 49\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>closeGame(game.id),\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"px-6 py-3 bg-zinc-900 hover:bg-red-600 text-gray-400 hover:text-white rounded-2xl text-[10px] font-black uppercase tracking-[0.2em] transition-all border border-white/5 active:scale-95 whitespace-nowrap\",\n children: \"Abortar Misi\\xf3n\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 267,\n columnNumber: 49\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 251,\n columnNumber: 45\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"mt-8 pt-8 border-t border-white/5\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4\",\n children: game.players.map((player)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"bg-black/40 p-4 rounded-2xl border border-white/5 flex items-center justify-between group/player hover:border-red-500/30 transition-all\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"w-10 h-10 rounded-xl bg-white/5 flex items-center justify-center font-black text-red-500 border border-white/5 group-hover/player:bg-red-500 group-hover/player:text-white transition-all\",\n children: player.name[0].toUpperCase()\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 281,\n columnNumber: 65\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-sm font-black text-white leading-none mb-1\",\n children: player.name\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 285,\n columnNumber: 69\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-[9px] opacity-30 font-mono italic\",\n children: [\n \"AG-\",\n player.id.slice(0, 4)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 286,\n columnNumber: 69\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 284,\n columnNumber: 65\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 280,\n columnNumber: 61\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>kickPlayer(game.id, player.id),\n title: \"Expulsar de la zona\",\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"p-2.5 text-gray-700 hover:text-red-500 hover:bg-red-500/10 rounded-xl transition-all opacity-0 group-hover/player:opacity-100\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n size: 18\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 294,\n columnNumber: 65\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 289,\n columnNumber: 61\n }, this)\n ]\n }, player.id, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 279,\n columnNumber: 57\n }, this))\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 277,\n columnNumber: 49\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 276,\n columnNumber: 45\n }, this)\n ]\n }, game.id, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 243,\n columnNumber: 41\n }, this))\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 229,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 228,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 223,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 222,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"lg:col-span-4 space-y-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"sticky top-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-4 mb-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-xl font-black text-white uppercase tracking-tighter italic border-l-4 border-gray-600 pl-4\",\n children: \"Informe Forense\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 312,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 311,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"bg-[#121216] border border-white/10 rounded-3xl overflow-hidden shadow-2xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"p-6 bg-white/5 border-b border-white/5\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-[10px] uppercase font-black tracking-widest text-gray-400\",\n children: \"\\xdaltimos Informes Desclasificados\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 317,\n columnNumber: 33\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 316,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"max-h-[60vh] overflow-y-auto custom-scrollbar p-6 space-y-6\",\n children: gameHistory.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-center py-20 opacity-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Clock_Gamepad2_History_Key_LogOut_Shield_UserMinus_Users_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n size: 40,\n className: \"mx-auto mb-4\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 323,\n columnNumber: 41\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-xs italic font-bold\",\n children: \"Sin archivos registrados\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 324,\n columnNumber: 41\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 322,\n columnNumber: 37\n }, this) : gameHistory.map((entry)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_8__.motion.div, {\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n className: \"group relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex justify-between items-start\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"space-y-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-sm font-black text-gray-200 uppercase tracking-tight group-hover:text-white transition-colors leading-none mb-1\",\n children: entry.room_name\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 336,\n columnNumber: 53\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-2 text-[9px] text-gray-600 font-bold uppercase tracking-widest\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\",\n children: entry.host_name\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 338,\n columnNumber: 57\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\",\n children: \"•\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 339,\n columnNumber: 57\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\",\n children: new Date(entry.created_at).toLocaleDateString()\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 340,\n columnNumber: 57\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 337,\n columnNumber: 53\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 335,\n columnNumber: 49\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-[9px] font-black uppercase px-2 py-1 rounded shadow-sm \".concat(entry.winner === \"resistance\" ? \"bg-green-500/20 text-green-500\" : entry.winner === \"spies\" ? \"bg-red-500/20 text-red-500\" : \"bg-gray-700/20 text-gray-500\"),\n children: entry.winner ? entry.winner === \"resistance\" ? \"RES\" : \"SPIES\" : \"LOGOUT\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 343,\n columnNumber: 49\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 334,\n columnNumber: 45\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"mt-2 flex items-center gap-3 text-[9px] opacity-40 group-hover:opacity-60 transition-opacity\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"flex items-center gap-1 font-mono\",\n children: [\n entry.players.split(\",\").length,\n \" Agtes\"\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 350,\n columnNumber: 49\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"w-1 h-1 bg-white/20 rounded-full\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 351,\n columnNumber: 49\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-fdcac8fe30296e2f\",\n children: new Date(entry.created_at).toLocaleTimeString()\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 352,\n columnNumber: 49\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 349,\n columnNumber: 45\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"absolute -left-6 top-1.5 w-1 h-0 group-hover:h-3 bg-red-600 transition-all rounded-full\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 354,\n columnNumber: 45\n }, this)\n ]\n }, entry.id, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 328,\n columnNumber: 41\n }, this))\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 320,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"p-6 bg-white/5 border-t border-white/5\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-fdcac8fe30296e2f\" + \" \" + \"text-[9px] font-bold text-center text-gray-600 uppercase tracking-widest\",\n children: \"Fin del Informe Forense\"\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 361,\n columnNumber: 33\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 360,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 315,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 310,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 309,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 203,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default()), {\n id: \"fdcac8fe30296e2f\",\n children: '@import url(\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700;900&display=swap\");body{background-color:#0a0a0c;cursor:crosshair}.custom-scrollbar::-webkit-scrollbar{width:3px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.05);-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.1)}'\n }, void 0, false, void 0, this)\n ]\n }, void 0, true, {\n fileName: \"/app/client/src/app/dashboard/page.tsx\",\n lineNumber: 169,\n columnNumber: 9\n }, this);\n}\n_s(Dashboard, \"BFP+G16fII/BdzssXeMkBySgQUc=\", false, function() {\n return [\n _hooks_useSocket__WEBPACK_IMPORTED_MODULE_3__.useSocket\n ];\n});\n_c = Dashboard;\nvar _c;\n$RefreshReg$(_c, \"Dashboard\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9hcHAvZGFzaGJvYXJkL3BhZ2UudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXlEO0FBQ0Q7QUFDTjtBQUN5RDtBQUUzRyxNQUFNYyxpQkFBaUI7QUFnQ1IsU0FBU0M7O0lBQ3BCLE1BQU0sRUFBRUMsTUFBTSxFQUFFQyxXQUFXLEVBQUUsR0FBR1osMkRBQVNBO0lBQ3pDLE1BQU0sQ0FBQ2EsVUFBVUMsWUFBWSxHQUFHbkIsK0NBQVFBLENBQUM7SUFDekMsTUFBTSxDQUFDb0IsaUJBQWlCQyxtQkFBbUIsR0FBR3JCLCtDQUFRQSxDQUFDO0lBQ3ZELE1BQU0sQ0FBQ3NCLGFBQWFDLGVBQWUsR0FBR3ZCLCtDQUFRQSxDQUFrQixFQUFFO0lBQ2xFLE1BQU0sQ0FBQ3dCLGFBQWFDLGVBQWUsR0FBR3pCLCtDQUFRQSxDQUFxQixFQUFFO0lBQ3JFLE1BQU0sQ0FBQzBCLE9BQU9DLFNBQVMsR0FBRzNCLCtDQUFRQSxDQUFDO0lBRW5DQyxnREFBU0EsQ0FBQztRQUNOLE1BQU0yQixlQUFlLEtBQWtCLEdBQWNDLGFBQWFDLE9BQU8sQ0FBQywrQkFBK0IsQ0FBSTtRQUM3RyxJQUFJRixpQkFBaUIsVUFBVTtZQUMzQlAsbUJBQW1CO1FBQ3ZCO0lBQ0osR0FBRyxFQUFFO0lBRUxwQixnREFBU0EsQ0FBQztRQUNOLElBQUltQixtQkFBbUJKLFFBQVE7WUFDM0JBLE9BQU9lLElBQUksQ0FBQztZQUVaLE1BQU1DLGtCQUFrQixDQUFDQztnQkFDckJWLGVBQWVVLEtBQUtYLFdBQVc7Z0JBQy9CRyxlQUFlUSxLQUFLQyxPQUFPO1lBQy9CO1lBRUEsTUFBTUMsZ0JBQWdCO2dCQUNsQm5CLE9BQU9lLElBQUksQ0FBQztZQUNoQjtZQUVBZixPQUFPb0IsRUFBRSxDQUFDLGNBQWNKO1lBQ3hCaEIsT0FBT29CLEVBQUUsQ0FBQyx3QkFBd0JEO1lBRWxDLE9BQU87Z0JBQ0huQixPQUFPcUIsR0FBRyxDQUFDLGNBQWNM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QUFXOzs7Ozs7Ozs7Ozs7c0VBRzVFLDhEQUFDbkQ7c0dBQWM7OzhFQUNYLDhEQUFDa0I7OEdBQWU7O3dFQUFxQzBCLE1BQU1KLE9BQU8sQ0FBQ1ksS0FBSyxDQUFDLEtBQUszRCxNQUFNO3dFQUFDOzs7Ozs7OzhFQUNyRiw4REFBQ087OEdBQWM7Ozs7Ozs4RUFDZiw4REFBQ2tCOzs4RUFBTSxJQUFJOEIsS0FBS0osTUFBTUssVUFBVSxFQUFFSSxrQkFBa0I7Ozs7Ozs7Ozs7OztzRUFFeEQsOERBQUNyRDtzR0FBYzs7Ozs7OzttREF2QlY0QyxNQUFNTixFQUFFOzs7Ozs7Ozs7O3NEQTZCN0IsOERBQUN0QztzRkFBYztzREFDWCw0RUFBQ1E7MEZBQVk7MERBQTJFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQStCeEg7R0FoV3dCdEQ7O1FBQ1lWLHVEQUFTQTs7O0tBRHJCVSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvYXBwL2Rhc2hib2FyZC9wYWdlLnRzeD9jMTVlIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBtb3Rpb24sIEFuaW1hdGVQcmVzZW5jZSB9IGZyb20gJ2ZyYW1lci1tb3Rpb24nO1xuaW1wb3J0IHsgdXNlU29ja2V0IH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlU29ja2V0JztcbmltcG9ydCB7IFNoaWVsZCwgVXNlcnMsIEdhbWVwYWQyLCBMb2dPdXQsIENsb2NrLCBIaXN0b3J5LCBVc2VyTWludXMsIEtleSwgTHVjaWRlSWNvbiB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5cbmNvbnN0IEFETUlOX1BBU1NXT1JEID0gXCJhZG1pbjEyM1wiO1xuXG5pbnRlcmZhY2UgQWRtaW5QbGF5ZXJEYXRhIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEFkbWluR2FtZURhdGEge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHN0YXR1czogc3RyaW5nO1xuICAgIGN1cnJlbnRQbGF5ZXJzOiBudW1iZXI7XG4gICAgbWF4UGxheWVyczogbnVtYmVyO1xuICAgIHBsYXllcnM6IEFkbWluUGxheWVyRGF0YVtdO1xufVxuXG5pbnRlcmZhY2UgR2FtZUhpc3RvcnlFbnRyeSB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICByb29tX25hbWU6IHN0cmluZztcbiAgICBob3N0X25hbWU6IHN0cmluZztcbiAgICBwbGF5ZXJzOiBzdHJpbmc7XG4gICAgd2lubmVyOiBzdHJpbmcgfCBudWxsO1xuICAgIGNyZWF0ZWRfYXQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFN0YXRJdGVtIHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gICAgY29sb3I6IHN0cmluZztcbiAgICBpY29uOiBMdWNpZGVJY29uO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBEYXNoYm9hcmQoKSB7XG4gICAgY29uc3QgeyBzb2NrZXQsIGlzQ29ubmVjdGVkIH0gPSB1c2VTb2NrZXQoKTtcbiAgICBjb25zdCBbcGFzc3dvcmQsIHNldFBhc3N3b3JkXSA9IHVzZVN0YXRlKCcnKTtcbiAgICBjb25zdCBbaXNBdXRoZW50aWNhdGVkLCBzZXRJc0F1dGhlbnRpY2F0ZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFthY3RpdmVHYW1lcywgc2V0QWN0aXZlR2FtZXNdID0gdXNlU3RhdGU8QWRtaW5HYW1lRGF0YVtdPihbXSk7XG4gICAgY29uc3QgW2dhbWVIaXN0b3J5LCBzZXRHYW1lSGlzdG9yeV0gPSB1c2VTdGF0ZTxHYW1lSGlzdG9yeUVudHJ5W10+KFtdKTtcbiAgICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlKCcnKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNhdmVkU2Vzc2lvbiA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Jlc2lzdGVuY2lhX2FkbWluX3Nlc3Npb24nKSA6IG51bGw7XG4gICAgICAgIGlmIChzYXZlZFNlc3Npb24gPT09ICdhY3RpdmUnKSB7XG4gICAgICAgICAgICBzZXRJc0F1dGhlbnRpY2F0ZWQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoaXNBdXRoZW50aWNhdGVkICYmIHNvY2tldCkge1xuICAgICAgICAgICAgc29ja2V0LmVtaXQoJ2FkbWluX2dldF9kYXRhJyk7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUFkbWluRGF0YSA9IChkYXRhOiB7IGFjdGl2ZUdhbWVzOiBBZG1pbkdhbWVEYXRhW10sIGhpc3Rvcnk6IEdhbWVIaXN0b3J5RW50cnlbXSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0QWN0aXZlR2FtZXMoZGF0YS5hY3RpdmVHYW1lcyk7XG4gICAgICAgICAgICAgICAgc2V0R2FtZUhpc3RvcnkoZGF0YS5oaXN0b3J5KTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZVN1Y2Nlc3MgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgc29ja2V0LmVtaXQoJ2FkbWluX2dldF9kYXRhJyk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBzb2NrZXQub24oJ2FkbWluX2RhdGEnLCBoYW5kbGVBZG1pbkRhdGEpO1xuICAgICAgICAgICAgc29ja2V0Lm9uKCdhZG1pbl9hY3Rpb25fc3VjY2VzcycsIGhhbmRsZVN1Y2Nlc3MpO1xuXG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNvY2tldC5vZmYoJ2FkbWluX2RhdGEnLCBoYW5kbGVBZG1pbkRhdGEpO1xuICAgICAgICAgICAgICAgIHNvY2tldC5vZmYoJ2FkbWluX2FjdGlvbl9zdWNjZXNzJywgaGFuZGxlU3VjY2Vzcyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfSwgW2lzQXV0aGVudGljYXRlZCwgc29ja2V0XSk7XG5cbiAgICBjb25zdCBoYW5kbGVMb2dpbiA9IChlOiBSZWFjdC5Gb3JtRXZlbnQpID0+IHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAocGFzc3dvcmQgPT09IEFETUlOX1BBU1NXT1JEKSB7XG4gICAgICAgICAgICBzZXRJc0F1dGhlbnRpY2F0ZWQodHJ1ZSk7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncmVzaXN0ZW5jaWFfYWRtaW5fc2Vzc2lvbicsICdhY3RpdmUnKTtcbiAgICAgICAgICAgIHNldEVycm9yKCcnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldEVycm9yKCdBY2Nlc28gRGVuZWdhZG86IENvbnRyYXNlw7FhIGluY29ycmVjdGEnKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMb2dvdXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdyZXNpc3RlbmNpYV9hZG1pbl9zZXNzaW9uJyk7XG4gICAgICAgIHNldElzQXV0aGVudGljYXRlZChmYWxzZSk7XG4gICAgICAgIHNldFBhc3N3b3JkKCcnKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBjbG9zZUdhbWUgPSAocm9vbUlkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5jb25maXJtKCfCv1NlZ3VybyBxdWUgcXVpZXJlcyBmb3J6YXIgZWwgY2llcnJlIGRlIGVzdGEgcGFydGlkYT8nKSkge1xuICAgICAgICAgICAgc29ja2V0Py5lbWl0KCdhZG1pbl9jbG9zZV9nYW1lJywgeyByb29tSWQgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qga2lja1BsYXllciA9IChyb29tSWQ6IHN0cmluZywgc29ja2V0SWQ6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmNvbmZpcm0oJ8K/U2VndXJvIHF1ZSBxdWllcmVzIGV4cHVsc2FyIGEgZXN0ZSBqdWdhZG9yPycpKSB7XG4gICAgICAgICAgICBzb2NrZXQ/LmVtaXQoJ2FkbWluX2tpY2tfcGxheWVyJywgeyByb29tSWQsIHRhcmdldFNvY2tldElkOiBzb2NrZXRJZCB9KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0czogU3RhdEl0ZW1bXSA9IFtcbiAgICAgICAgeyBsYWJlbDogJ1BhcnRpZGFzIEFjdGl2YXMnLCB2YWx1ZTogYWN0aXZlR2FtZXMubGVuZ3RoLCBjb2xvcjogJ3RleHQtcmVkLTUwMCcsIGljb246IEdhbWVwYWQyIH0sXG4gICAgICAgIHsgbGFiZWw6ICdBZ2VudGVzIE9ubGluZScsIHZhbHVlOiBhY3RpdmVHYW1lcy5yZWR1Y2UoKGFjYywgZykgPT4gYWNjICsgZy5jdXJyZW50UGxheWVycywgMCksIGNvbG9yOiAndGV4dC1ibHVlLTQwMCcsIGljb246IFVzZXJzIH0sXG4gICAgICAgIHsgbGFiZWw6ICdNaXNpb25lcyBSZWdpc3RyYWRhcycsIHZhbHVlOiBnYW1lSGlzdG9yeS5sZW5ndGgsIGNvbG9yOiAndGV4dC1vcmFuZ2UtNDAwJywgaWNvbjogSGlzdG9yeSB9LFxuICAgICAgICB7IGxhYmVsOiAnRXN0YWRvJywgdmFsdWU6IGlzQ29ubmVjdGVkID8gJzEwMCUnIDogJzAlJywgY29sb3I6ICd0ZXh0LWdyZWVuLTQwMCcsIGljb246IENsb2NrIH1cbiAgICBdO1xuXG4gICAgaWYgKCFpc0F1dGhlbnRpY2F0ZWQpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWluLWgtc2NyZWVuIGJnLVsjMGEwYTBjXSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBwLTQgZm9udC1bJ0ludGVyJyxzYW5zLXNlcmlmXVwiPlxuICAgICAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCwgc2NhbGU6IDAuOTUgfX1cbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxLCBzY2FsZTogMSB9fVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1bIzEyMTIxNl0gYm9yZGVyIGJvcmRlci13aGl0ZS8xMCBwLTEwIHJvdW5kZWQtM3hsIHctZnVsbCBtYXgtdy1tZCBzaGFkb3ctWzBfMjBweF81MHB4X3JnYmEoMCwwLDAsMC41KV0gcmVsYXRpdmUgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHctZnVsbCBoLTEgYmctZ3JhZGllbnQtdG8tciBmcm9tLXJlZC02MDAgdmlhLXppbmMtODAwIHRvLXJlZC02MDBcIj48L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1jZW50ZXIgbWItOCByZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIGJnLXJlZC01MDAvMjAgYmx1ci0yeGwgcm91bmRlZC1mdWxsXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U2hpZWxkIHNpemU9ezY0fSBjbGFzc05hbWU9XCJ0ZXh0LXJlZC01MDAgcmVsYXRpdmUgei0xMFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LTN4bCBmb250LWJsYWNrIHRleHQtd2hpdGUgdGV4dC1jZW50ZXIgbWItMiB1cHBlcmNhc2UgdHJhY2tpbmctdGlnaHRcIj5BY2Nlc28gQWRtaW48L2gxPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNDAwIHRleHQtY2VudGVyIHRleHQtc20gbWItMTAgZm9udC1tZWRpdW1cIj5QYW5lbCBkZSBDb250cm9sIGRlIExhIFJlc2lzdGVuY2lhPC9wPlxuXG4gICAgICAgICAgICAgICAgICAgIDxmb3JtIG9uU3VibWl0PXtoYW5kbGVMb2dpbn0gY2xhc3NOYW1lPVwic3BhY2UteS02XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEtleSBzaXplPXsxOH0gY2xhc3NOYW1lPVwiYWJzb2x1dGUgbGVmdC00IHRvcC0xLzIgLXRyYW5zbGF0ZS15LTEvMiB0ZXh0LWdyYXktNTAwXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtwYXNzd29yZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRQYXNzd29yZChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiSW50cm9kdWNlIGxhIGNvbnRyYXNlw7FhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGJnLVsjMWExYTIwXSBib3JkZXIgYm9yZGVyLXdoaXRlLzUgcm91bmRlZC0yeGwgcGwtMTIgcHItNiBweS00IHRleHQtd2hpdGUgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLXJlZC02MDAvNTAgdHJhbnNpdGlvbi1hbGwgcGxhY2Vob2xkZXI6dGV4dC1ncmF5LTYwMCBmb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICB7ZXJyb3IgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb3Rpb24ucFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHk6IC0xMCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEsIHk6IDAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1yZWQtNTAwIHRleHQteHMgZm9udC1ib2xkIHRleHQtY2VudGVyIG10LTIgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidy0xLjUgaC0xLjUgYmctcmVkLTUwMCByb3VuZGVkLWZ1bGwgYW5pbWF0ZS1wdWxzZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Vycm9yfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbW90aW9uLnA+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGJnLXJlZC02MDAgaG92ZXI6YmctcmVkLTUwMCB0ZXh0LXdoaXRlIGZvbnQtYmxhY2sgcHktNCByb3VuZGVkLTJ4bCBzaGFkb3cteGwgc2hhZG93LXJlZC02MDAvMTAgdHJhbnNpdGlvbi1hbGwgdXBwZXJjYXNlIHRyYWNraW5nLVswLjJlbV0gdGV4dC14cyBob3ZlcjpzY2FsZS1bMS4wMl0gYWN0aXZlOnNjYWxlLVswLjk4XVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW50cmFyIGVuIFNpc3RlbWFcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtaW4taC1zY3JlZW4gYmctWyMwYTBhMGNdIHRleHQtd2hpdGUgcC00IG1kOnAtMTAgZm9udC1bJ0ludGVyJyxzYW5zLXNlcmlmXVwiPlxuICAgICAgICAgICAgey8qIEhlYWRlciAqL31cbiAgICAgICAgICAgIDxoZWFkZXIgY2xhc3NOYW1lPVwibWF4LXctN3hsIG14LWF1dG8gZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtc3RhcnQgbWQ6aXRlbXMtY2VudGVyIG1iLTEyIGdhcC02XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyB0ZXh0LXJlZC01MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC0yIGJnLXJlZC01MDAvMTAgcm91bmRlZC1sZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTaGllbGQgc2l6ZT17MjJ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtWzEwcHhdIGZvbnQtYmxhY2sgdXBwZXJjYXNlIHRyYWNraW5nLVswLjRlbV0gb3BhY2l0eS04MFwiPlNlZ3VpbWllbnRvIGRlIE9wZXJhY2lvbmVzPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cInRleHQtNXhsIGZvbnQtYmxhY2sgdHJhY2tpbmctdGlnaHRlciB1cHBlcmNhc2UgaXRhbGljIHRleHQtdHJhbnNwYXJlbnQgYmctY2xpcC10ZXh0IGJnLWdyYWRpZW50LXRvLXIgZnJvbS13aGl0ZSB2aWEtd2hpdGUgdG8tZ3JheS01MDBcIj5Db21hbmRhbnRlPC9oMT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTYgYmctWyMxMjEyMTZdIGJvcmRlciBib3JkZXItd2hpdGUvMTAgcHgtOCBweS00IHJvdW5kZWQtM3hsIHNoYWRvdy14bFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaXRlbXMtZW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LVsxMHB4XSB0ZXh0LWdyYXktNTAwIHVwcGVyY2FzZSBmb250LWJsYWNrIHRyYWNraW5nLXdpZGVzdCBtYi0xXCI+U3RhdHVzIFNlcnZpZG9yPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgdy0yLjUgaC0yLjUgcm91bmRlZC1mdWxsICR7aXNDb25uZWN0ZWQgPyAnYmctZ3JlZW4tNTAwIHNoYWRvdy1bMF8wXzE1cHhfcmdiYSgzNCwxOTcsOTQsMC42KV0gYW5pbWF0ZS1wdWxzZScgOiAnYmctcmVkLTUwMCd9YH0+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC14cyBmb250LW1vbm8gZm9udC1ibGFjayB0cmFja2luZy13aWRlc3RcIj57aXNDb25uZWN0ZWQgPyAnT1BFUkFUSVZPJyA6ICdERVNDT05FQ1RBRE8nfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctcHggaC04IGJnLXdoaXRlLzEwIG14LTJcIj48L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVMb2dvdXR9XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBweC01IHB5LTIuNSBiZy16aW5jLTgwMCBob3ZlcjpiZy1yZWQtNjAwIHRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC13aGl0ZSByb3VuZGVkLXhsIHRyYW5zaXRpb24tYWxsIGZvbnQtYmxhY2sgdGV4dC1bMTBweF0gdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVzdCBncm91cFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxMb2dPdXQgc2l6ZT17MTZ9IGNsYXNzTmFtZT1cImdyb3VwLWhvdmVyOnRyYW5zbGF0ZS14LTEgdHJhbnNpdGlvbi10cmFuc2Zvcm1cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgRGVzY29uZWN0YXJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICAgICAgPG1haW4gY2xhc3NOYW1lPVwibWF4LXctN3hsIG14LWF1dG8gZ3JpZCBncmlkLWNvbHMtMSBsZzpncmlkLWNvbHMtMTIgZ2FwLTEwXCI+XG5cbiAgICAgICAgICAgICAgICB7LyogUGFuZWwgTGF0aW5vOiBFc3RhZMOtc3RpY2FzIFLDoXBpZGFzICovfVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGc6Y29sLXNwYW4tMTIgZ3JpZCBncmlkLWNvbHMtMiBtZDpncmlkLWNvbHMtNCBnYXAtNCBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIHtzdGF0cy5tYXAoKHN0YXQsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEljb24gPSBzdGF0Lmljb247XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYga2V5PXtpfSBjbGFzc05hbWU9XCJiZy1bIzEyMTIxNl0gYm9yZGVyIGJvcmRlci13aGl0ZS81IHAtNiByb3VuZGVkLTJ4bCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtWzEwcHhdIHVwcGVyY2FzZSBmb250LWJsYWNrIHRyYWNraW5nLXdpZGVzdCB0ZXh0LWdyYXktNTAwIG1iLTFcIj57c3RhdC5sYWJlbH08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9e2B0ZXh0LTJ4bCBmb250LWJsYWNrICR7c3RhdC5jb2xvcn1gfT57c3RhdC52YWx1ZX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBjbGFzc05hbWU9XCJvcGFjaXR5LTEwXCIgc2l6ZT17MzJ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIHsvKiBDb2x1bW5hIFByaW5jaXBhbDogUGFydGlkYXMgQWN0aXZhcyAqL31cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxnOmNvbC1zcGFuLTggc3BhY2UteS04XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNCBtYi04XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQteGwgZm9udC1ibGFjayB0ZXh0LXdoaXRlIHVwcGVyY2FzZSB0cmFja2luZy10aWdodGVyIGl0YWxpYyBib3JkZXItbC00IGJvcmRlci1yZWQtNjAwIHBsLTRcIj5DYW5hbGVzIGRlIFJhZGlvIEFjdGl2b3M8L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBnYXAtNlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBbmltYXRlUHJlc2VuY2UgbW9kZT1cInBvcExheW91dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YWN0aXZlR2FtZXMubGVuZ3RoID09PSAwID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vdGlvbi5kaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9XCJlbXB0eS1zdGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctWyMxMjEyMTZdLzQwIGJvcmRlciBib3JkZXItZGFzaGVkIGJvcmRlci13aGl0ZS8xMCByb3VuZGVkLTN4bCBwLTIwIHRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2xvY2sgc2l6ZT17NDh9IGNsYXNzTmFtZT1cIm14LWF1dG8gbWItNiB0ZXh0LWdyYXktNzAwXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LWdyYXktNjAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlc3RcIj5TaWxlbmNpbyBSYWRpb2Vsw6ljdHJpY288L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LWdyYXktNzAwIGZvbnQtbWVkaXVtXCI+QnVzY2FuZG8gc2XDsWFsZXMgZGUgbWlzaW9uZXMgYWN0aXZhcy4uLjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZUdhbWVzLm1hcCgoZ2FtZSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Z2FtZS5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCwgeDogLTIwIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGU9e3sgb3BhY2l0eTogMSwgeDogMCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGl0PXt7IG9wYWNpdHk6IDAsIHNjYWxlOiAwLjk1IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJnLVsjMTIxMjE2XSBib3JkZXIgYm9yZGVyLXdoaXRlLzEwIHJvdW5kZWQtM3hsIHAtOCBob3ZlcjpiZy1bIzE2MTYxY10gdHJhbnNpdGlvbi1hbGwgZ3JvdXAgc2hhZG93LXhsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtc3RhcnQgbWQ6aXRlbXMtY2VudGVyIGdhcC02XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC0yeGwgZm9udC1ibGFjayB0ZXh0LXdoaXRlIGl0YWxpYyB1cHBlcmNhc2UgdHJhY2tpbmctdGlnaHRlciBsZWFkaW5nLW5vbmVcIj57Z2FtZS5uYW1lfTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtWzEwcHhdIGZvbnQtYm9sZCBweC0yIHB5LTAuNSBiZy1yZWQtNTAwLzEwIHRleHQtcmVkLTUwMCByb3VuZGVkIGJvcmRlciBib3JkZXItcmVkLTUwMC8yMFwiPntnYW1lLnN0YXR1c308L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNCB0ZXh0LVsxMHB4XSB1cHBlcmNhc2UgZm9udC1ibGFjayB0cmFja2luZy13aWRlc3QgdGV4dC1ncmF5LTUwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VXNlcnMgc2l6ZT17MTJ9IGNsYXNzTmFtZT1cInRleHQtcmVkLTUwMFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Z2FtZS5jdXJyZW50UGxheWVyc30gLyB7Z2FtZS5tYXhQbGF5ZXJzfSBBZ2VudGVzIE1vdmlsaXphZG9zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1ncmF5LTgwMFwiPnw8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPklEOiB7Z2FtZS5pZC5zbGljZSgwLCA4KX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGNsb3NlR2FtZShnYW1lLmlkKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJweC02IHB5LTMgYmctemluYy05MDAgaG92ZXI6YmctcmVkLTYwMCB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUgcm91bmRlZC0yeGwgdGV4dC1bMTBweF0gZm9udC1ibGFjayB1cHBlcmNhc2UgdHJhY2tpbmctWzAuMmVtXSB0cmFuc2l0aW9uLWFsbCBib3JkZXIgYm9yZGVyLXdoaXRlLzUgYWN0aXZlOnNjYWxlLTk1IHdoaXRlc3BhY2Utbm93cmFwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBYm9ydGFyIE1pc2nDs25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogU3VicGFuZWw6IEp1Z2Fkb3JlcyAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC04IHB0LTggYm9yZGVyLXQgYm9yZGVyLXdoaXRlLzVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMSBzbTpncmlkLWNvbHMtMiBtZDpncmlkLWNvbHMtMyBnYXAtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtnYW1lLnBsYXllcnMubWFwKChwbGF5ZXIpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e3BsYXllci5pZH0gY2xhc3NOYW1lPVwiYmctYmxhY2svNDAgcC00IHJvdW5kZWQtMnhsIGJvcmRlciBib3JkZXItd2hpdGUvNSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ3JvdXAvcGxheWVyIGhvdmVyOmJvcmRlci1yZWQtNTAwLzMwIHRyYW5zaXRpb24tYWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTEwIGgtMTAgcm91bmRlZC14bCBiZy13aGl0ZS81IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZvbnQtYmxhY2sgdGV4dC1yZWQtNTAwIGJvcmRlciBib3JkZXItd2hpdGUvNSBncm91cC1ob3Zlci9wbGF5ZXI6YmctcmVkLTUwMCBncm91cC1ob3Zlci9wbGF5ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWFsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cGxheWVyLm5hbWVbMF0udG9VcHBlckNhc2UoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtYmxhY2sgdGV4dC13aGl0ZSBsZWFkaW5nLW5vbmUgbWItMVwiPntwbGF5ZXIubmFtZX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtWzlweF0gb3BhY2l0eS0zMCBmb250LW1vbm8gaXRhbGljXCI+QUcte3BsYXllci5pZC5zbGljZSgwLCA0KX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBraWNrUGxheWVyKGdhbWUuaWQsIHBsYXllci5pZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicC0yLjUgdGV4dC1ncmF5LTcwMCBob3Zlcjp0ZXh0LXJlZC01MDAgaG92ZXI6YmctcmVkLTUwMC8xMCByb3VuZGVkLXhsIHRyYW5zaXRpb24tYWxsIG9wYWNpdHktMCBncm91cC1ob3Zlci9wbGF5ZXI6b3BhY2l0eS0xMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiRXhwdWxzYXIgZGUgbGEgem9uYVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFVzZXJNaW51cyBzaXplPXsxOH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQW5pbWF0ZVByZXNlbmNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIHsvKiBDb2x1bW5hIExhdGVyYWw6IEFyY2hpdm8gSGlzdMOzcmljbyAqL31cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxnOmNvbC1zcGFuLTQgc3BhY2UteS04XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInN0aWNreSB0b3AtMTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTQgbWItOFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtYmxhY2sgdGV4dC13aGl0ZSB1cHBlcmNhc2UgdHJhY2tpbmctdGlnaHRlciBpdGFsaWMgYm9yZGVyLWwtNCBib3JkZXItZ3JheS02MDAgcGwtNFwiPkluZm9ybWUgRm9yZW5zZTwvaDI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy1bIzEyMTIxNl0gYm9yZGVyIGJvcmRlci13aGl0ZS8xMCByb3VuZGVkLTN4bCBvdmVyZmxvdy1oaWRkZW4gc2hhZG93LTJ4bFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC02IGJnLXdoaXRlLzUgYm9yZGVyLWIgYm9yZGVyLXdoaXRlLzVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1bMTBweF0gdXBwZXJjYXNlIGZvbnQtYmxhY2sgdHJhY2tpbmctd2lkZXN0IHRleHQtZ3JheS00MDBcIj7Dmmx0aW1vcyBJbmZvcm1lcyBEZXNjbGFzaWZpY2Fkb3M8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1heC1oLVs2MHZoXSBvdmVyZmxvdy15LWF1dG8gY3VzdG9tLXNjcm9sbGJhciBwLTYgc3BhY2UteS02XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtnYW1lSGlzdG9yeS5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyIHB5LTIwIG9wYWNpdHktMTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlzdG9yeSBzaXplPXs0MH0gY2xhc3NOYW1lPVwibXgtYXV0byBtYi00XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIGl0YWxpYyBmb250LWJvbGRcIj5TaW4gYXJjaGl2b3MgcmVnaXN0cmFkb3M8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhbWVIaXN0b3J5Lm1hcCgoZW50cnkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17ZW50cnkuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImdyb3VwIHJlbGF0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtc3RhcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1ibGFjayB0ZXh0LWdyYXktMjAwIHVwcGVyY2FzZSB0cmFja2luZy10aWdodCBncm91cC1ob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzIGxlYWRpbmctbm9uZSBtYi0xXCI+e2VudHJ5LnJvb21fbmFtZX08L2g0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1bOXB4XSB0ZXh0LWdyYXktNjAwIGZvbnQtYm9sZCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPntlbnRyeS5ob3N0X25hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj7igKI8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPntuZXcgRGF0ZShlbnRyeS5jcmVhdGVkX2F0KS50b0xvY2FsZURhdGVTdHJpbmcoKX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgdGV4dC1bOXB4XSBmb250LWJsYWNrIHVwcGVyY2FzZSBweC0yIHB5LTEgcm91bmRlZCBzaGFkb3ctc20gJHtlbnRyeS53aW5uZXIgPT09ICdyZXNpc3RhbmNlJyA/ICdiZy1ncmVlbi01MDAvMjAgdGV4dC1ncmVlbi01MDAnIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkud2lubmVyID09PSAnc3BpZXMnID8gJ2JnLXJlZC01MDAvMjAgdGV4dC1yZWQtNTAwJyA6ICdiZy1ncmF5LTcwMC8yMCB0ZXh0LWdyYXktNTAwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1gfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZW50cnkud2lubmVyID8gKGVudHJ5Lndpbm5lciA9PT0gJ3Jlc2lzdGFuY2UnID8gJ1JFUycgOiAnU1BJRVMnKSA6ICdMT0dPVVQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTIgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgdGV4dC1bOXB4XSBvcGFjaXR5LTQwIGdyb3VwLWhvdmVyOm9wYWNpdHktNjAgdHJhbnNpdGlvbi1vcGFjaXR5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSBmb250LW1vbm9cIj57ZW50cnkucGxheWVycy5zcGxpdCgnLCcpLmxlbmd0aH0gQWd0ZXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctMSBoLTEgYmctd2hpdGUvMjAgcm91bmRlZC1mdWxsXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57bmV3IERhdGUoZW50cnkuY3JlYXRlZF9hdCkudG9Mb2NhbGVUaW1lU3RyaW5nKCl9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSAtbGVmdC02IHRvcC0xLjUgdy0xIGgtMCBncm91cC1ob3ZlcjpoLTMgYmctcmVkLTYwMCB0cmFuc2l0aW9uLWFsbCByb3VuZGVkLWZ1bGxcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTYgYmctd2hpdGUvNSBib3JkZXItdCBib3JkZXItd2hpdGUvNVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LVs5cHhdIGZvbnQtYm9sZCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNjAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlc3RcIj5GaW4gZGVsIEluZm9ybWUgRm9yZW5zZTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21haW4+XG5cbiAgICAgICAgICAgIDxzdHlsZSBqc3ggZ2xvYmFsPntgXG4gICAgICAgICAgICAgICAgQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9SW50ZXI6d2dodEA0MDA7NzAwOzkwMCZkaXNwbGF5PXN3YXAnKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBib2R5IHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBhMGEwYztcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBjcm9zc2hhaXI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmN1c3RvbS1zY3JvbGxiYXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDNweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmN1c3RvbS1zY3JvbGxiYXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5jdXN0b20tc2Nyb2xsYmFyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5jdXN0b20tc2Nyb2xsYmFyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBgfTwvc3R5bGU+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59XG4iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJ1c2VDYWxsYmFjayIsIm1vdGlvbiIsIkFuaW1hdGVQcmVzZW5jZSIsInVzZVNvY2tldCIsIlNoaWVsZCIsIlVzZXJzIiwiR2FtZXBhZDIiLCJMb2dPdXQiLCJDbG9jayIsIkhpc3RvcnkiLCJVc2VyTWludXMiLCJLZXkiLCJBRE1JTl9QQVNTV09SRCIsIkRhc2hib2FyZCIsInNvY2tldCIsImlzQ29ubmVjdGVkIiwicGFzc3dvcmQiLCJzZXRQYXNzd29yZCIsImlzQXV0aGVudGljYXRlZCIsInNldElzQXV0aGVudGljYXRlZCIsImFjdGl2ZUdhbWVzIiwic2V0QWN0aXZlR2FtZXMiLCJnYW1lSGlzdG9yeSIsInNldEdhbWVIaXN0b3J5IiwiZXJyb3IiLCJzZXRFcnJvciIsInNhdmVkU2Vzc2lvbiIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJlbWl0IiwiaGFuZGxlQWRtaW5EYXRhIiwiZGF0YSIsImhpc3RvcnkiLCJoYW5kbGVTdWNjZXNzIiwib24iLCJvZmYiLCJoYW5kbGVMb2dpbiIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInNldEl0ZW0iLCJoYW5kbGVMb2dvdXQiLCJyZW1vdmVJdGVtIiwiY2xvc2VHYW1lIiwicm9vbUlkIiwid2luZG93IiwiY29uZmlybSIsImtpY2tQbGF5ZXIiLCJzb2NrZXRJZCIsInRhcmdldFNvY2tldElkIiwic3RhdHMiLCJsYWJlbCIsInZhbHVlIiwibGVuZ3RoIiwiY29sb3IiLCJpY29uIiwicmVkdWNlIiwiYWNjIiwiZyIsImN1cnJlbnRQbGF5ZXJzIiwiZGl2IiwiY2xhc3NOYW1lIiwiaW5pdGlhbCIsIm9wYWNpdHkiLCJzY2FsZSIsImFuaW1hdGUiLCJzaXplIiwiaDEiLCJwIiwiZm9ybSIsIm9uU3VibWl0IiwiaW5wdXQiLCJ0eXBlIiwiYXV0b0ZvY3VzIiwib25DaGFuZ2UiLCJ0YXJnZXQiLCJwbGFjZWhvbGRlciIsInkiLCJzcGFuIiwiYnV0dG9uIiwiaGVhZGVyIiwib25DbGljayIsIm1haW4iLCJtYXAiLCJzdGF0IiwiaSIsIkljb24iLCJzZWN0aW9uIiwiaDIiLCJtb2RlIiwiZ2FtZSIsImxheW91dCIsIngiLCJleGl0IiwiaDMiLCJuYW1lIiwic3RhdHVzIiwibWF4UGxheWVycyIsImlkIiwic2xpY2UiLCJwbGF5ZXJzIiwicGxheWVyIiwidG9VcHBlckNhc2UiLCJ0aXRsZSIsImVudHJ5IiwiaDQiLCJyb29tX25hbWUiLCJob3N0X25hbWUiLCJEYXRlIiwiY3JlYXRlZF9hdCIsInRvTG9jYWxlRGF0ZVN0cmluZyIsIndpbm5lciIsInNwbGl0IiwidG9Mb2NhbGVUaW1lU3RyaW5nIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/app/dashboard/page.tsx\n"));
|
|
|
|
/***/ })
|
|
|
|
}); |