/* * 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/courrier/page"],{ /***/ "(app-pages-browser)/./app/courrier/page.tsx": /*!*******************************!*\ !*** ./app/courrier/page.tsx ***! \*******************************/ /***/ ((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\": () => (/* binding */ CourrierPage)\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 next_navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/navigation */ \"(app-pages-browser)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var next_auth_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next-auth/react */ \"(app-pages-browser)/./node_modules/next-auth/react/index.js\");\n/* harmony import */ var next_auth_react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_auth_react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/inbox.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/send.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trash.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/archive.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/square-pen.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/octagon-alert.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/folder.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/menu.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/loader-circle.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-alert.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check.js\");\n/* harmony import */ var _components_ui_dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ui/dialog */ \"(app-pages-browser)/./components/ui/dialog.tsx\");\n/* harmony import */ var _components_ui_alert__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/ui/alert */ \"(app-pages-browser)/./components/ui/alert.tsx\");\n/* harmony import */ var _components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/ui/alert-dialog */ \"(app-pages-browser)/./components/ui/alert-dialog.tsx\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _components_ui_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/components/ui/input */ \"(app-pages-browser)/./components/ui/input.tsx\");\n/* harmony import */ var _components_ui_label__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/components/ui/label */ \"(app-pages-browser)/./components/ui/label.tsx\");\n/* harmony import */ var _components_ui_use_toast__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/components/ui/use-toast */ \"(app-pages-browser)/./components/ui/use-toast.ts\");\n/* harmony import */ var _components_email_EmailSidebar__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/components/email/EmailSidebar */ \"(app-pages-browser)/./components/email/EmailSidebar.tsx\");\n/* harmony import */ var _components_email_EmailList__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/components/email/EmailList */ \"(app-pages-browser)/./components/email/EmailList.tsx\");\n/* harmony import */ var _components_email_EmailDetailView__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/components/email/EmailDetailView */ \"(app-pages-browser)/./components/email/EmailDetailView.tsx\");\n/* harmony import */ var _components_email_ComposeEmail__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/components/email/ComposeEmail */ \"(app-pages-browser)/./components/email/ComposeEmail.tsx\");\n/* harmony import */ var _components_email_EmailDialogs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/components/email/EmailDialogs */ \"(app-pages-browser)/./components/email/EmailDialogs.tsx\");\n/* harmony import */ var _hooks_use_email_state__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/hooks/use-email-state */ \"(app-pages-browser)/./hooks/use-email-state.ts\");\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// Import components\n\n\n\n\n\n// Import the custom hooks\n\n// Simplified version for this component\nfunction SimplifiedLoadingFix() {\n // In production, don't render anything\n if (false) {}\n // Simple debugging component\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"fixed bottom-4 right-4 z-50 p-2 bg-white/80 shadow rounded-lg text-xs\",\n children: \"Debug: Email app loaded\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n_c = SimplifiedLoadingFix;\n// Define a color palette for account circles\nconst colorPalette = [\n 'bg-blue-500',\n 'bg-green-500',\n 'bg-red-500',\n 'bg-yellow-500',\n 'bg-purple-500',\n 'bg-pink-500',\n 'bg-indigo-500',\n 'bg-teal-500',\n 'bg-orange-500',\n 'bg-cyan-500'\n];\n// Helper function for consistent logging\nconst logEmailOp = (operation, details, data)=>{\n const timestamp = new Date().toISOString().split('T')[1].substring(0, 12);\n console.log(\"[\".concat(timestamp, \"][EMAIL-APP][\").concat(operation, \"] \").concat(details));\n if (data) {\n console.log(\"[\".concat(timestamp, \"][EMAIL-APP][DATA]\"), data);\n }\n};\nfunction CourrierPage() {\n var _session_user;\n _s();\n const router = (0,next_navigation__WEBPACK_IMPORTED_MODULE_2__.useRouter)();\n const { data: session } = (0,next_auth_react__WEBPACK_IMPORTED_MODULE_3__.useSession)();\n // Replace useCourrier with useEmailState\n const { // State values\n accounts, selectedAccount, selectedFolders, currentFolder, emails, selectedEmail, selectedEmailIds, isLoading, error, page, totalPages, totalEmails, mailboxes, unreadCountMap, showFolders, // Actions\n loadEmails, handleEmailSelect, toggleEmailSelection, toggleSelectAll, markEmailAsRead, toggleStarred, changeFolder, deleteEmails, sendEmail, searchEmails, formatEmailForAction, setPage, setEmails, selectAccount, handleLoadMore } = (0,_hooks_use_email_state__WEBPACK_IMPORTED_MODULE_16__.useEmailState)();\n // UI state (keeping only what's still needed)\n const [showComposeModal, setShowComposeModal] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [composeType, setComposeType] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('new');\n const [showDeleteConfirm, setShowDeleteConfirm] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [showLoginNeeded, setShowLoginNeeded] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [sidebarOpen, setSidebarOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [mobileSidebarOpen, setMobileSidebarOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [prefetchStarted, setPrefetchStarted] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [showAddAccountForm, setShowAddAccountForm] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n // Add state for modals/dialogs\n const [showEditModal, setShowEditModal] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [showDeleteDialog, setShowDeleteDialog] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [accountToEdit, setAccountToEdit] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [accountToDelete, setAccountToDelete] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [newPassword, setNewPassword] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('');\n const [editLoading, setEditLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [deleteLoading, setDeleteLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [selectedColor, setSelectedColor] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('');\n // Use the reducer-managed values directly instead of tracked separately\n const [searchQuery, setSearchQuery] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('');\n const [unreadCount, setUnreadCount] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);\n // Calculate unread count for the selected folder\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"CourrierPage.useEffect\": ()=>{\n if (selectedAccount && selectedAccount.id !== 'loading-account') {\n const folderCounts = unreadCountMap[selectedAccount.id.toString()];\n if (folderCounts) {\n setUnreadCount(folderCounts[currentFolder] || 0);\n } else {\n setUnreadCount(0);\n }\n } else {\n // For 'loading-account', sum up all unread counts for the current folder\n let totalUnread = 0;\n Object.values(unreadCountMap).forEach({\n \"CourrierPage.useEffect\": (folderCounts)=>{\n totalUnread += folderCounts[currentFolder] || 0;\n }\n }[\"CourrierPage.useEffect\"]);\n setUnreadCount(totalUnread);\n }\n }\n }[\"CourrierPage.useEffect\"], [\n unreadCountMap,\n selectedAccount,\n currentFolder\n ]);\n // Initialize session and start prefetching\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"CourrierPage.useEffect\": ()=>{\n var _session_user;\n // Flag to prevent multiple initialization attempts\n let isMounted = true;\n let retryCount = 0;\n const MAX_RETRIES = 3;\n const RETRY_DELAY = 1000; // 1 second\n const initSession = {\n \"CourrierPage.useEffect.initSession\": async ()=>{\n try {\n var _data_allAccounts;\n if (!isMounted) return;\n logEmailOp('SESSION', 'Initializing email session');\n setLoading(true);\n // First check if Redis is ready before making API calls\n const redisStatus = await fetch('/api/redis/status').then({\n \"CourrierPage.useEffect.initSession\": (res)=>res.json()\n }[\"CourrierPage.useEffect.initSession\"]).catch({\n \"CourrierPage.useEffect.initSession\": ()=>({\n ready: false\n })\n }[\"CourrierPage.useEffect.initSession\"]);\n if (!isMounted) return;\n // Call the session API to check email credentials and start prefetching\n logEmailOp('SESSION', 'Fetching session data from API');\n const response = await fetch('/api/courrier/session', {\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n // Handle 401 Unauthorized with retry logic\n if (response.status === 401) {\n if (retryCount < MAX_RETRIES) {\n retryCount++;\n console.log(\"Session request failed (attempt \".concat(retryCount, \"/\").concat(MAX_RETRIES, \"), retrying in \").concat(RETRY_DELAY, \"ms...\"));\n await new Promise({\n \"CourrierPage.useEffect.initSession\": (resolve)=>setTimeout(resolve, RETRY_DELAY)\n }[\"CourrierPage.useEffect.initSession\"]);\n return initSession();\n } else {\n console.error('Max retries reached for session request');\n return;\n }\n }\n if (!response.ok) {\n throw new Error(\"Session request failed with status \".concat(response.status));\n }\n const data = await response.json();\n // Log session response\n console.log('[DEBUG] Session API response details:', {\n authenticated: data.authenticated,\n hasEmailCredentials: data.hasEmailCredentials,\n accountsCount: ((_data_allAccounts = data.allAccounts) === null || _data_allAccounts === void 0 ? void 0 : _data_allAccounts.length) || 0\n });\n // Process accounts if authenticated\n if (data.authenticated && data.hasEmailCredentials) {\n setPrefetchStarted(Boolean(data.prefetchStarted));\n let updatedAccounts = [];\n // Process multiple accounts\n if (data.allAccounts && Array.isArray(data.allAccounts) && data.allAccounts.length > 0) {\n console.log('[DEBUG] Processing multiple accounts:', data.allAccounts.length);\n data.allAccounts.forEach({\n \"CourrierPage.useEffect.initSession\": (account)=>{\n // Use exact folders from IMAP\n const accountFolders = account.folders && Array.isArray(account.folders) ? account.folders : [];\n // Ensure folder names have account prefix\n const validFolders = accountFolders.map({\n \"CourrierPage.useEffect.initSession.validFolders\": (folder)=>{\n if (!folder.includes(':')) {\n return \"\".concat(account.id, \":\").concat(folder);\n }\n return folder;\n }\n }[\"CourrierPage.useEffect.initSession.validFolders\"]);\n updatedAccounts.push({\n id: account.id,\n name: account.display_name || account.email,\n email: account.email,\n color: account.color || colorPalette[updatedAccounts.length % colorPalette.length],\n folders: validFolders\n });\n }\n }[\"CourrierPage.useEffect.initSession\"]);\n console.log('[DEBUG] Constructed accounts:', updatedAccounts);\n } else {\n // Fallback to single account if allAccounts is not available\n const folderList = data.mailboxes && data.mailboxes.length > 0 ? data.mailboxes : [];\n updatedAccounts.push({\n id: 'default-account',\n name: data.displayName || data.email,\n email: data.email,\n color: colorPalette[0],\n folders: folderList\n });\n console.log('[DEBUG] Constructed single fallback account:', updatedAccounts[0]);\n }\n // Update accounts state using our reducer actions\n // First, set the accounts\n setEmails([]); // Clear any existing emails first\n // Log current state for debugging\n console.log('[DEBUG] Current state before setting accounts:', {\n accounts: (accounts === null || accounts === void 0 ? void 0 : accounts.length) || 0,\n selectedAccount: (selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.id) || 'none',\n currentFolder: currentFolder || 'none'\n });\n // Use our reducer actions instead of setState\n setAccounts(updatedAccounts);\n // Auto-select the first account if available\n if (updatedAccounts.length > 0) {\n const firstAccount = updatedAccounts[0];\n console.log('[DEBUG] Auto-selecting first account:', firstAccount);\n // Use our new selectAccount function which handles state atomically\n // Add a slight delay to ensure the accounts are set first\n setTimeout({\n \"CourrierPage.useEffect.initSession\": ()=>{\n console.log('[DEBUG] Now calling selectAccount');\n selectAccount(firstAccount);\n }\n }[\"CourrierPage.useEffect.initSession\"], 100);\n }\n } else {\n // User is authenticated but doesn't have email credentials\n setShowLoginNeeded(true);\n }\n } catch (error) {\n console.error('Error initializing session:', error);\n } finally{\n if (isMounted) {\n setLoading(false);\n }\n }\n }\n }[\"CourrierPage.useEffect.initSession\"];\n if (session === null || session === void 0 ? void 0 : (_session_user = session.user) === null || _session_user === void 0 ? void 0 : _session_user.id) {\n initSession();\n }\n return ({\n \"CourrierPage.useEffect\": ()=>{\n isMounted = false;\n }\n })[\"CourrierPage.useEffect\"];\n }\n }[\"CourrierPage.useEffect\"], [\n session === null || session === void 0 ? void 0 : (_session_user = session.user) === null || _session_user === void 0 ? void 0 : _session_user.id,\n setEmails,\n selectAccount\n ]);\n // Helper to get folder icons\n const getFolderIcon = (folder)=>{\n const folderLower = folder.toLowerCase();\n if (folderLower.includes('inbox')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 382,\n columnNumber: 14\n }, this);\n } else if (folderLower.includes('sent')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 384,\n columnNumber: 14\n }, this);\n } else if (folderLower.includes('trash')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 386,\n columnNumber: 14\n }, this);\n } else if (folderLower.includes('archive')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 388,\n columnNumber: 14\n }, this);\n } else if (folderLower.includes('draft')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_21__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 390,\n columnNumber: 14\n }, this);\n } else if (folderLower.includes('spam') || folderLower.includes('junk')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_22__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 392,\n columnNumber: 14\n }, this);\n } else {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_23__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 394,\n columnNumber: 14\n }, this);\n }\n };\n // Helper to format folder names\n const formatFolderName = (folder)=>{\n // Extract base folder name if prefixed\n const baseFolderName = folder.includes(':') ? folder.split(':')[1] : folder;\n return baseFolderName.charAt(0).toUpperCase() + baseFolderName.slice(1).toLowerCase();\n };\n // Handle actions - replace with useReducer-based functions\n const handleMailboxChange = (folder, accountId)=>{\n // Simply call our new changeFolder function which handles everything atomically\n setLoading(true);\n changeFolder(folder, accountId).finally(()=>{\n setLoading(false);\n });\n };\n // Handle account selection - replace with reducer-based function\n const handleAccountSelect = (account)=>{\n var _account_folders;\n // Add extensive debugging to track the process\n console.log('[DEBUG] handleAccountSelect called with account:', {\n id: account.id,\n email: account.email,\n folders: (_account_folders = account.folders) === null || _account_folders === void 0 ? void 0 : _account_folders.length\n });\n // Skip if no valid account provided\n if (!account || !account.id) {\n console.error('Invalid account passed to handleAccountSelect');\n return;\n }\n // Skip if this is already the selected account\n if ((selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.id) === account.id) {\n console.log('[DEBUG] Account already selected, skipping');\n return;\n }\n // Simply call our new selectAccount function which handles everything atomically\n setLoading(true);\n // Clear all existing selections first\n console.log('[DEBUG] Now selecting account through reducer action');\n selectAccount(account);\n // Log what happened\n console.log('[DEBUG] Account selection completed');\n // Give some time for the UI to update\n setTimeout(()=>setLoading(false), 300);\n };\n // Email actions\n const handleReply = ()=>{\n if (!selectedEmail) return;\n setComposeType('reply');\n setShowComposeModal(true);\n };\n const handleReplyAll = ()=>{\n if (!selectedEmail) return;\n setComposeType('reply-all');\n setShowComposeModal(true);\n };\n const handleForward = ()=>{\n if (!selectedEmail) return;\n setComposeType('forward');\n setShowComposeModal(true);\n };\n const handleComposeNew = ()=>{\n setComposeType('new');\n setShowComposeModal(true);\n };\n // Handle bulk actions\n const handleBulkAction = async (action)=>{\n if (selectedEmailIds.length === 0) return;\n switch(action){\n case 'delete':\n setShowDeleteConfirm(true);\n break;\n case 'mark-read':\n // Mark all selected emails as read\n for (const emailId of selectedEmailIds){\n await markEmailAsRead(emailId, true);\n }\n break;\n case 'mark-unread':\n // Mark all selected emails as unread\n for (const emailId of selectedEmailIds){\n await markEmailAsRead(emailId, false);\n }\n break;\n case 'archive':\n break;\n }\n };\n const handleSendEmail = async (emailData)=>{\n try {\n const result = await sendEmail(emailData);\n if (!result.success) {\n throw new Error(result.error);\n }\n return result;\n } catch (error) {\n throw error;\n }\n };\n const handleDeleteConfirm = async ()=>{\n await deleteEmails(selectedEmailIds);\n setShowDeleteConfirm(false);\n // Clear selected emails after deletion\n // Using setEmails will reset the selection state\n setLoading(true);\n setPage(1);\n loadEmails(1, 20, false).finally(()=>{\n // Selection will be cleared by loading new emails\n setLoading(false);\n });\n };\n const handleGoToLogin = ()=>{\n router.push('/courrier/login');\n };\n // Update the accounts from state - fix type issues\n const setAccounts = (newAccounts)=>{\n console.log('[DEBUG] Setting accounts:', newAccounts);\n // In the previous implementation, we'd dispatch an action\n // But since we don't have direct access to the reducer's dispatch function,\n // we need to use the exported actions from our hook\n // This dispatch function should be made available by our hook\n const windowWithDispatch = window;\n if (typeof windowWithDispatch.dispatchEmailAction === 'function') {\n // Use the global dispatch function if available\n windowWithDispatch.dispatchEmailAction({\n type: 'SET_ACCOUNTS',\n payload: newAccounts\n });\n } else {\n console.error('Cannot dispatch SET_ACCOUNTS action - no dispatch function available');\n // Fallback: Try to directly modify the accounts array if we have access\n // This isn't ideal but ensures backward compatibility during transition\n console.log('[DEBUG] Using fallback method to update accounts');\n // Our reducer should expose this action\n const useEmailStateDispatch = windowWithDispatch.__emailStateDispatch;\n if (typeof useEmailStateDispatch === 'function') {\n useEmailStateDispatch({\n type: 'SET_ACCOUNTS',\n payload: newAccounts\n });\n } else {\n console.error('No fallback dispatch method available either');\n }\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SimplifiedLoadingFix, {}, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 571,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"w-full h-screen bg-black\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full h-full px-4 pt-12 pb-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex h-full bg-carnet-bg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_email_EmailSidebar__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n accounts: accounts,\n selectedAccount: selectedAccount,\n selectedFolders: selectedFolders,\n currentFolder: currentFolder,\n loading: loading || isLoading,\n unreadCount: unreadCountMap,\n showAddAccountForm: showAddAccountForm,\n onFolderChange: handleMailboxChange,\n onRefresh: ()=>{\n setLoading(true);\n setPage(1);\n loadEmails(page, 10, false).finally(()=>setLoading(false));\n },\n onComposeNew: handleComposeNew,\n onAccountSelect: handleAccountSelect,\n onShowAddAccountForm: setShowAddAccountForm,\n onAddAccount: async (formData)=>{\n var _formData_get, _formData_get1, _formData_get2, _formData_get3, _formData_get4, _formData_get5, _formData_get6, _formData_get7;\n setLoading(true);\n console.log('[DEBUG] Add account form submission:', formData);\n // Pull values from form with proper type handling\n const formValues = {\n email: ((_formData_get = formData.get('email')) === null || _formData_get === void 0 ? void 0 : _formData_get.toString()) || '',\n password: ((_formData_get1 = formData.get('password')) === null || _formData_get1 === void 0 ? void 0 : _formData_get1.toString()) || '',\n host: ((_formData_get2 = formData.get('host')) === null || _formData_get2 === void 0 ? void 0 : _formData_get2.toString()) || '',\n port: parseInt(((_formData_get3 = formData.get('port')) === null || _formData_get3 === void 0 ? void 0 : _formData_get3.toString()) || '993'),\n secure: formData.get('secure') === 'on',\n display_name: ((_formData_get4 = formData.get('display_name')) === null || _formData_get4 === void 0 ? void 0 : _formData_get4.toString()) || '',\n smtp_host: ((_formData_get5 = formData.get('smtp_host')) === null || _formData_get5 === void 0 ? void 0 : _formData_get5.toString()) || '',\n smtp_port: ((_formData_get6 = formData.get('smtp_port')) === null || _formData_get6 === void 0 ? void 0 : _formData_get6.toString()) ? parseInt(((_formData_get7 = formData.get('smtp_port')) === null || _formData_get7 === void 0 ? void 0 : _formData_get7.toString()) || '587') : undefined,\n smtp_secure: formData.get('smtp_secure') === 'on'\n };\n // If display_name is empty, use email\n if (!formValues.display_name) {\n formValues.display_name = formValues.email;\n }\n try {\n // First test the connection\n const testResponse = await fetch('/api/courrier/test-connection', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n email: formValues.email,\n password: formValues.password,\n host: formValues.host,\n port: formValues.port,\n secure: formValues.secure\n })\n });\n const testResult = await testResponse.json();\n if (!testResponse.ok) {\n throw new Error(testResult.error || 'Connection test failed');\n }\n console.log('Connection test successful:', testResult);\n // Only declare realAccounts once before using for color assignment\n const realAccounts = accounts.filter((a)=>a.id !== 'loading-account');\n const saveResponse = await fetch('/api/courrier/account', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(formValues)\n });\n const saveResult = await saveResponse.json();\n if (!saveResponse.ok) {\n throw new Error(saveResult.error || 'Failed to add account');\n }\n const realAccount = saveResult.account;\n realAccount.color = colorPalette[realAccounts.length % colorPalette.length];\n realAccount.folders = testResult.details.sampleFolders || [\n 'INBOX',\n 'Sent',\n 'Drafts',\n 'Trash'\n ];\n setAccounts([\n ...accounts,\n realAccount\n ]);\n setShowAddAccountForm(false);\n (0,_components_ui_use_toast__WEBPACK_IMPORTED_MODULE_10__.toast)({\n title: \"Account added successfully\",\n description: \"Your email account \".concat(formValues.email, \" has been added.\"),\n duration: 5000\n });\n } catch (error) {\n console.error('Error adding account:', error);\n (0,_components_ui_use_toast__WEBPACK_IMPORTED_MODULE_10__.toast)({\n title: \"Failed to add account\",\n description: error instanceof Error ? error.message : 'Unknown error',\n variant: \"destructive\",\n duration: 5000\n });\n } finally{\n setLoading(false);\n }\n },\n onEditAccount: async (account)=>{\n try {\n // Get the latest account data from accounts array\n const updatedAccount = accounts.find((a)=>a.id === account.id);\n if (updatedAccount) {\n setAccountToEdit(updatedAccount);\n setSelectedColor(updatedAccount.color || '');\n setShowEditModal(true);\n } else {\n (0,_components_ui_use_toast__WEBPACK_IMPORTED_MODULE_10__.toast)({\n title: \"Error\",\n description: \"Could not find account data\",\n variant: \"destructive\",\n duration: 3000\n });\n }\n } catch (error) {\n console.error(\"Error preparing account edit:\", error);\n (0,_components_ui_use_toast__WEBPACK_IMPORTED_MODULE_10__.toast)({\n title: \"Error\",\n description: \"Failed to load account settings\",\n variant: \"destructive\",\n duration: 3000\n });\n }\n },\n onDeleteAccount: (account)=>{\n setAccountToDelete(account);\n setShowDeleteDialog(true);\n },\n onSelectEmail: (emailId, accountId, folder)=>{\n if (typeof emailId === 'string') {\n handleEmailSelect(emailId, accountId || '', folder || currentFolder);\n }\n },\n ...{}\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 578,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-80 flex flex-col border-r border-gray-100 overflow-hidden\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-2 border-b border-gray-100 bg-white flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_7__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"md:hidden h-9 w-9\",\n onClick: ()=>setMobileSidebarOpen(!mobileSidebarOpen),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_24__[\"default\"], {\n className: \"h-5 w-5 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 726,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 720,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n getFolderIcon(currentFolder),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"ml-2 font-medium text-gray-700\",\n children: [\n (selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.email) ? \"\".concat(selectedAccount.email, \": \") : '',\n formatFolderName(currentFolder.includes(':') ? currentFolder.split(':')[1] : currentFolder)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 733,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 730,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 729,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 719,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-hidden bg-white\",\n children: isLoading ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-full flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_25__[\"default\"], {\n className: \"h-8 w-8 text-blue-500 animate-spin mb-2\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 748,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-500\",\n children: \"Loading emails...\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 749,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 747,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 746,\n columnNumber: 19\n }, this) : error ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-full flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-md p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert__WEBPACK_IMPORTED_MODULE_5__.Alert, {\n variant: \"destructive\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_26__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 756,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert__WEBPACK_IMPORTED_MODULE_5__.AlertTitle, {\n children: \"Error\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 757,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert__WEBPACK_IMPORTED_MODULE_5__.AlertDescription, {\n children: error\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 758,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 755,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 754,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 753,\n columnNumber: 19\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-full overflow-hidden flex flex-col\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-y-auto\",\n onScroll: (e)=>{\n const target = e.currentTarget;\n const { scrollTop, scrollHeight, clientHeight } = target;\n const distanceToBottom = scrollHeight - scrollTop - clientHeight;\n const scrollPercentage = (scrollTop + clientHeight) / scrollHeight;\n // Store last scroll position to detect direction\n const lastScrollTop = target.dataset.lastScrollTop ? parseInt(target.dataset.lastScrollTop) : 0;\n const scrollingDown = scrollTop > lastScrollTop;\n // Update last scroll position\n target.dataset.lastScrollTop = scrollTop.toString();\n // Prevent frequent log spam with a timestamp check\n const now = Date.now();\n const lastLog = parseInt(target.dataset.lastLogTime || '0');\n if (now - lastLog > 500) {\n console.log(\"[DEBUG-WRAPPER-SCROLL] Distance: \".concat(distanceToBottom, \"px, %: \").concat(Math.round(scrollPercentage * 100), \"%, direction: \").concat(scrollingDown ? 'down' : 'up', \", more: \").concat(page < totalPages, \", loading: \").concat(isLoading));\n target.dataset.lastLogTime = now.toString();\n }\n // Check throttle to prevent multiple rapid triggers\n const lastTrigger = parseInt(target.dataset.lastTriggerTime || '0');\n const throttleTime = 1000; // 1 second throttle\n // CRITICAL FIX: Only trigger loading more emails when:\n // 1. User is scrolling DOWN (not up)\n // 2. User is EXACTLY at the bottom (distance < 5px)\n // 3. Not currently loading\n // 4. More emails exist to load\n // 5. Not throttled (hasn't triggered in last second)\n if (scrollingDown && distanceToBottom < 5 && // Much stricter - truly at bottom\n !isLoading && page < totalPages && now - lastTrigger > throttleTime) {\n console.log(\"[DEBUG-WRAPPER-TRIGGER] *** AT BOTTOM *** Loading more emails\");\n target.dataset.lastTriggerTime = now.toString();\n handleLoadMore();\n }\n },\n children: emails.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-full flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n className: \"h-12 w-12 text-gray-300 mx-auto mb-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 815,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-700\",\n children: \"No emails found\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 816,\n columnNumber: 29\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: searchQuery ? 'No results found for \"'.concat(searchQuery, '\"') : \"Your \".concat(currentFolder.toLowerCase(), \" is empty\")\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 817,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 814,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 813,\n columnNumber: 25\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_email_EmailList__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n emails: emails,\n selectedEmailIds: selectedEmailIds,\n selectedEmail: selectedEmail,\n onSelectEmail: (emailId, emailAccountId, emailFolder)=>{\n // Always use the email's own accountId and folder if available\n handleEmailSelect(emailId, emailAccountId || (selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.id) || '', emailFolder || currentFolder);\n },\n onToggleSelect: toggleEmailSelection,\n onToggleSelectAll: toggleSelectAll,\n onToggleStarred: toggleStarred,\n onLoadMore: handleLoadMore,\n hasMoreEmails: page < totalPages,\n currentFolder: currentFolder,\n isLoading: isLoading,\n totalEmails: emails.length,\n onBulkAction: handleBulkAction\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 825,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 767,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 765,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 744,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 717,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 flex flex-col overflow-hidden\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-hidden bg-white\",\n children: selectedEmail ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_email_EmailDetailView__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n email: selectedEmail,\n onBack: ()=>{\n handleEmailSelect('', '', '');\n // Ensure sidebar stays visible\n setSidebarOpen(true);\n },\n onReply: handleReply,\n onReplyAll: handleReplyAll,\n onForward: handleForward,\n onToggleStar: ()=>toggleStarred(selectedEmail.id)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 859,\n columnNumber: 19\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-full flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center text-muted-foreground\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: \"Select an email to view or\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 874,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"text-primary mt-2 hover:underline\",\n onClick: ()=>{\n setComposeType('new');\n setShowComposeModal(true);\n },\n children: \"Compose a new message\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 875,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 873,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 872,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 857,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 855,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 576,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 575,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 574,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_email_EmailDialogs__WEBPACK_IMPORTED_MODULE_15__.DeleteConfirmDialog, {\n show: showDeleteConfirm,\n selectedCount: selectedEmailIds.length,\n onConfirm: handleDeleteConfirm,\n onCancel: ()=>setShowDeleteConfirm(false)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 894,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_4__.Dialog, {\n open: showComposeModal,\n onOpenChange: (open)=>!open && setShowComposeModal(false),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_4__.DialogContent, {\n className: \"sm:max-w-[800px] p-0 h-[80vh]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_4__.DialogTitle, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"sr-only\",\n children: \"New Message\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 905,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 904,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_email_ComposeEmail__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n type: composeType,\n initialEmail: composeType !== 'new' ? selectedEmail : undefined,\n onSend: async (emailData)=>{\n try {\n const result = await sendEmail(emailData);\n return;\n } catch (error) {\n console.error('Error sending email:', error);\n throw error;\n }\n },\n onClose: ()=>setShowComposeModal(false),\n accounts: accounts\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 907,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 903,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 902,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_4__.Dialog, {\n open: showEditModal,\n onOpenChange: (open)=>{\n if (!open) {\n setShowEditModal(false);\n setEditLoading(false);\n setAccountToEdit(null);\n setNewPassword('');\n setSelectedColor('');\n window.location.reload();\n }\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_4__.DialogContent, {\n className: \"sm:max-w-[500px] bg-white text-gray-800\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_4__.DialogTitle, {\n className: \"text-gray-800\",\n children: \"Edit Account Settings\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 937,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: async (e)=>{\n e.preventDefault();\n if (!accountToEdit) return;\n setEditLoading(true);\n try {\n const formElement = e.target;\n const displayName = formElement.querySelector('#display-name').value;\n const color = selectedColor;\n // If password is changed, test the connection first\n if (newPassword) {\n try {\n // First get the account's connection details\n const accountDetailsRes = await fetch(\"/api/courrier/account-details?accountId=\".concat(accountToEdit.id));\n if (!accountDetailsRes.ok) {\n throw new Error('Failed to fetch account connection details');\n }\n const accountDetails = await accountDetailsRes.json();\n // Test connection with new password before saving\n const testResponse = await fetch('/api/courrier/test-connection', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n email: accountToEdit.email,\n password: newPassword,\n // Use the account's connection details from the API\n host: accountDetails.host,\n port: accountDetails.port || 993,\n secure: accountDetails.secure || true\n })\n });\n const testResult = await testResponse.json();\n if (!testResponse.ok) {\n throw new Error(testResult.error || 'Connection test failed with new password');\n }\n console.log('Connection test successful with new password');\n } catch (error) {\n console.error('Error testing connection:', error);\n throw new Error(\"Password test failed: \".concat(error instanceof Error ? error.message : 'Unknown error'));\n }\n }\n // Continue with the update if test passed or no password change\n const res = await fetch('/api/courrier/account', {\n method: 'PATCH',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n accountId: accountToEdit.id,\n newPassword: newPassword || undefined,\n display_name: displayName,\n color: color\n })\n });\n const data = await res.json();\n if (!res.ok) throw new Error(data.error || 'Failed to update account settings');\n (0,_components_ui_use_toast__WEBPACK_IMPORTED_MODULE_10__.toast)({\n title: 'Account updated',\n description: 'Account settings updated successfully.'\n });\n setShowEditModal(false);\n setNewPassword('');\n // Update the local account data\n setAccounts(accounts.map((account)=>account.id === accountToEdit.id ? {\n ...account,\n name: displayName,\n color: color\n } : account));\n // Clear accountToEdit to ensure fresh data on next edit\n setAccountToEdit(null);\n // Force a page refresh to reset all UI states\n window.location.reload();\n } catch (err) {\n (0,_components_ui_use_toast__WEBPACK_IMPORTED_MODULE_10__.toast)({\n title: 'Error',\n description: err instanceof Error ? err.message : 'Failed to update account settings',\n variant: 'destructive'\n });\n } finally{\n setEditLoading(false);\n }\n },\n children: [\n /*#__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)(_components_ui_label__WEBPACK_IMPORTED_MODULE_9__.Label, {\n htmlFor: \"display-name\",\n className: \"text-gray-800\",\n children: \"Account Name\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1019,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_8__.Input, {\n id: \"display-name\",\n type: \"text\",\n defaultValue: accountToEdit === null || accountToEdit === void 0 ? void 0 : accountToEdit.name,\n className: \"mt-1 bg-white text-gray-800\",\n disabled: editLoading\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1020,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1018,\n columnNumber: 13\n }, this),\n /*#__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)(_components_ui_label__WEBPACK_IMPORTED_MODULE_9__.Label, {\n htmlFor: \"new-password\",\n className: \"text-gray-800\",\n children: \"New Password (optional)\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1030,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_8__.Input, {\n id: \"new-password\",\n type: \"password\",\n value: newPassword,\n onChange: (e)=>setNewPassword(e.target.value),\n className: \"mt-1 bg-white text-gray-800\",\n placeholder: \"Leave blank to keep current password\",\n disabled: editLoading\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1031,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1029,\n columnNumber: 13\n }, this),\n /*#__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)(_components_ui_label__WEBPACK_IMPORTED_MODULE_9__.Label, {\n className: \"block mb-2 text-gray-800\",\n children: \"Account Color\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1043,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-5 gap-2\",\n children: colorPalette.map((color, index)=>/*#__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 id: \"color-\".concat(index),\n name: \"color\",\n value: color,\n checked: selectedColor === color,\n onChange: ()=>setSelectedColor(color),\n className: \"sr-only\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1047,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: \"color-\".concat(index),\n className: \"w-8 h-8 rounded-full cursor-pointer flex items-center justify-center \".concat(color, \" hover:ring-2 hover:ring-blue-300 transition-all\"),\n style: {\n boxShadow: selectedColor === color ? '0 0 0 2px white, 0 0 0 4px #3b82f6' : 'none'\n },\n onClick: ()=>setSelectedColor(color),\n children: selectedColor === color && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_27__[\"default\"], {\n className: \"h-4 w-4 text-white\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1063,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1056,\n columnNumber: 21\n }, this)\n ]\n }, index, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1046,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1044,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1042,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-end gap-2 mt-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_7__.Button, {\n type: \"button\",\n className: \"bg-red-500 hover:bg-red-600 text-white\",\n onClick: ()=>{\n setShowEditModal(false);\n window.location.reload();\n },\n children: \"Cancel\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1072,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_7__.Button, {\n type: \"submit\",\n className: \"bg-blue-500 hover:bg-blue-600 text-white\",\n disabled: editLoading,\n children: [\n editLoading ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_25__[\"default\"], {\n className: \"h-4 w-4 animate-spin mr-2\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1087,\n columnNumber: 32\n }, this) : null,\n \"Save\"\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1082,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1071,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 938,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 936,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 926,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_6__.AlertDialog, {\n open: showDeleteDialog,\n onOpenChange: (open)=>{\n if (!open) setShowDeleteDialog(false);\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_6__.AlertDialogContent, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_6__.AlertDialogHeader, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_6__.AlertDialogTitle, {\n children: \"Delete Account\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1099,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_6__.AlertDialogDescription, {\n children: \"Are you sure you want to delete this account? This action cannot be undone.\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1100,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1098,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_6__.AlertDialogFooter, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_6__.AlertDialogCancel, {\n onClick: ()=>setShowDeleteDialog(false),\n children: \"Cancel\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1105,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_6__.AlertDialogAction, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_7__.Button, {\n variant: \"destructive\",\n disabled: deleteLoading,\n onClick: async ()=>{\n if (!accountToDelete) return;\n setDeleteLoading(true);\n try {\n const res = await fetch(\"/api/courrier/account?accountId=\".concat(accountToDelete.id), {\n method: 'DELETE'\n });\n const data = await res.json();\n if (!res.ok) throw new Error(data.error || 'Failed to delete account');\n (0,_components_ui_use_toast__WEBPACK_IMPORTED_MODULE_10__.toast)({\n title: 'Account deleted',\n description: 'The account was deleted successfully.'\n });\n setShowDeleteDialog(false);\n window.location.reload();\n } catch (err) {\n (0,_components_ui_use_toast__WEBPACK_IMPORTED_MODULE_10__.toast)({\n title: 'Error',\n description: err instanceof Error ? err.message : 'Failed to delete account',\n variant: 'destructive'\n });\n } finally{\n setDeleteLoading(false);\n }\n },\n children: \"Delete\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1107,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1106,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1104,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1097,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1096,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n}\n_s(CourrierPage, \"+EqHQB1AaVCMJ2wfeAySYgBnZNQ=\", false, function() {\n return [\n next_navigation__WEBPACK_IMPORTED_MODULE_2__.useRouter,\n next_auth_react__WEBPACK_IMPORTED_MODULE_3__.useSession,\n _hooks_use_email_state__WEBPACK_IMPORTED_MODULE_16__.useEmailState\n ];\n});\n_c1 = CourrierPage;\nvar _c, _c1;\n$RefreshReg$(_c, \"SimplifiedLoadingFix\");\n$RefreshReg$(_c1, \"CourrierPage\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9jb3Vycmllci9wYWdlLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbUQ7QUFDUDtBQUNDO0FBUXZCO0FBQ3NEO0FBQ0E7QUFVdEM7QUFHVTtBQUNGO0FBR0E7QUFDSTtBQUdsRCxvQkFBb0I7QUFDdUM7QUFDTjtBQUVZO0FBQ047QUFDVztBQUV0RSwwQkFBMEI7QUFDOEI7QUFXeEQsd0NBQXdDO0FBQ3hDLFNBQVN3QztJQUNQLHVDQUF1QztJQUN2QyxJQUFJQyxLQUFxQyxFQUFFLEVBRTFDO0lBRUQsNkJBQTZCO0lBQzdCLHFCQUNFLDhEQUFDQztRQUFJQyxXQUFVO2tCQUF3RTs7Ozs7O0FBSTNGO0tBWlNIO0FBMERULDZDQUE2QztBQUM3QyxNQUFNSSxlQUFlO0lBQ25CO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFRCx5Q0FBeUM7QUFDekMsTUFBTUMsYUFBYSxDQUFDQyxXQUFtQkMsU0FBaUJDO0lBQ3RELE1BQU1DLFlBQVksSUFBSUMsT0FBT0MsV0FBVyxHQUFHQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQ0MsU0FBUyxDQUFDLEdBQUc7SUFDdEVDLFFBQVFDLEdBQUcsQ0FBQyxJQUE2QlQsT0FBekJHLFdBQVUsaUJBQTZCRixPQUFkRCxXQUFVLE1BQVksT0FBUkM7SUFDdkQsSUFBSUMsTUFBTTtRQUNSTSxRQUFRQyxHQUFHLENBQUMsSUFBYyxPQUFWTixXQUFVLHVCQUFxQkQ7SUFDakQ7QUFDRjtBQUVlLFNBQVNRO1FBNk9sQkM7O0lBNU9KLE1BQU1DLFNBQVN2RCwwREFBU0E7SUFDeEIsTUFBTSxFQUFFNkMsTUFBTVMsT0FBTyxFQUFFLEdBQUdyRCwyREFBVUE7SUFFcEMseUNBQXlDO0lBQ3pDLE1BQU0sRUFDSixlQUFlO0lBQ2Z1RCxRQUFRLEVBQ1JDLGVBQWUsRUFDZkMsZUFBZSxFQUNmQyxhQUFhLEVBQ2JDLE1BQU0sRUFDTkMsYUFBYSxFQUNiQyxnQkFBZ0IsRUFDaEJDLFNBQVMsRUFDVEMsS0FBSyxFQUNMQyxJQUFJLEVBQ0pDLFVBQVUsRUFDVkMsV0FBVyxFQUNYQyxTQUFTLEVBQ1RDLGNBQWMsRUFDZEMsV0FBVyxFQUVYLFVBQVU7SUFDVkMsVUFBVSxFQUNWQyxpQkFBaUIsRUFDakJDLG9CQUFvQixFQUNwQkMsZUFBZSxFQUNmQyxlQUFlLEVBQ2ZDLGFBQWEsRUFDYkMsWUFBWSxFQUNaQyxZQUFZLEVBQ1pDLFNBQVMsRUFDVEMsWUFBWSxFQUNaQyxvQkFBb0IsRUFDcEJDLE9BQU8sRUFDUEMsU0FBUyxFQUNUQyxhQUFhLEVBQ2JDLGNBQWMsRUFDZixHQUFHakQsc0VBQWFBO0lBRWpCLDhDQUE4QztJQUM5QyxNQUFNLENBQUNrRCxrQkFBa0JDLG9CQUFvQixHQUFHekYsK0NBQVFBLENBQUM7SUFDekQsTUFBTSxDQUFDMEYsYUFBYUMsZUFBZSxHQUFHM0YsK0NBQVFBLENBQTRDO0lBQzFGLE1BQU0sQ0FBQzRGLG1CQUFtQkMscUJBQXFCLEdBQUc3RiwrQ0FBUUEsQ0FBQztJQUMzRCxNQUFNLENBQUM4RixpQkFBaUJDLG1CQUFtQixHQUFHL0YsK0NBQVFBLENBQUM7SUFDdkQsTUFBTSxDQUFDZ0csYUFBYUMsZUFBZSxHQUFHakcsK0NBQVFBLENBQUM7SUFDL0MsTUFBTSxDQUFDa0csbUJBQW1CQyxxQkFBcUIsR0FBR25HLCtDQUFRQSxDQUFDO0lBQzNELE1BQU0sQ0FBQ29HLFNBQVNDLFdBQVcsR0FBR3JHLCtDQUFRQSxDQUFDO0lBQ3ZDLE1BQU0sQ0FBQ3NHLGlCQUFpQkMsbUJBQW1CLEdBQUd2RywrQ0FBUUEsQ0FBQztJQUN2RCxNQUFNLENBQUN3RyxvQkFBb0JDLHNCQUFzQixHQUFHekcsK0NBQVFBLENBQUM7SUFFN0QsK0JBQStCO0lBQy9CLE1BQU0sQ0FBQzBHLGVBQWVDLGlCQUFpQixHQUFHM0csK0NBQVFBLENBQUM7SUFDbkQsTUFBTSxDQUFDNEcsa0JBQWtCQyxvQkFBb0IsR0FBRzdHLCtDQUFRQSxDQUFDO0lBQ3pELE1BQU0sQ0FBQzhHLGVBQWVDLGlCQUFpQixHQUFHL0csK0NBQVFBLENBQWlCO0lBQ25FLE1BQU0sQ0FBQ2dILGlCQUFpQkMsbUJBQW1CLEdBQUdqSCwrQ0FBUUEsQ0FBaUI7SUFDdkUsTUFBTSxDQUFDa0gsYUFBYUMsZUFBZSxHQUFHbkgsK0NBQVFBLENBQUM7SUFDL0MsTUFBTSxDQUFDb0gsYUFBYUMsZUFBZSxHQUFHckgsK0NBQVFBLENBQUM7SUFDL0MsTUFBTSxDQUFDc0gsZUFBZUMsaUJBQWlCLEdBQUd2SCwrQ0FBUUEsQ0FBQztJQUNuRCxNQUFNLENBQUN3SCxlQUFlQyxpQkFBaUIsR0FBR3pILCtDQUFRQSxDQUFTO0lBRTNELHdFQUF3RTtJQUN4RSxNQUFNLENBQUMwSCxhQUFhQyxlQUFlLEdBQUczSCwrQ0FBUUEsQ0FBQztJQUMvQyxNQUFNLENBQUM0SCxhQUFhQyxlQUFlLEdBQUc3SCwrQ0FBUUEsQ0FBQztJQUUvQyxpREFBaUQ7SUFDakRDLGdEQUFTQTtrQ0FBQztZQUNSLElBQUkwRCxtQkFBbUJBLGdCQUFnQm1FLEVBQUUsS0FBSyxtQkFBbUI7Z0JBQy9ELE1BQU1DLGVBQWV4RCxjQUFjLENBQUNaLGdCQUFnQm1FLEVBQUUsQ0FBQ0UsUUFBUSxHQUFHO2dCQUNsRSxJQUFJRCxjQUFjO29CQUNoQkYsZUFBZUUsWUFBWSxDQUFDbEUsY0FBYyxJQUFJO2dCQUNoRCxPQUFPO29CQUNMZ0UsZUFBZTtnQkFDakI7WUFDRixPQUFPO2dCQUNMLHlFQUF5RTtnQkFDekUsSUFBSUksY0FBYztnQkFDbEJDLE9BQU9DLE1BQU0sQ0FBQzVELGdCQUFnQjZELE9BQU87OENBQUMsQ0FBQ0w7d0JBQ3JDRSxlQUFlRixZQUFZLENBQUNsRSxjQUFjLElBQUk7b0JBQ2hEOztnQkFDQWdFLGVBQWVJO1lBQ2pCO1FBQ0Y7aUNBQUc7UUFBQzFEO1FBQWdCWjtRQUFpQkU7S0FBYztJQUVuRCwyQ0FBMkM7SUFDM0M1RCxnREFBU0E7a0NBQUM7Z0JBZ0pKdUQ7WUEvSUosbURBQW1EO1lBQ25ELElBQUk2RSxZQUFZO1lBQ2hCLElBQUlDLGFBQWE7WUFDakIsTUFBTUMsY0FBYztZQUNwQixNQUFNQyxjQUFjLE1BQU0sV0FBVztZQUVyQyxNQUFNQztzREFBYztvQkFDbEIsSUFBSTs0QkE0Q2UxRjt3QkEzQ2pCLElBQUksQ0FBQ3NGLFdBQVc7d0JBQ2hCekYsV0FBVyxXQUFXO3dCQUN0QnlELFdBQVc7d0JBRVgsd0RBQXdEO3dCQUN4RCxNQUFNcUMsY0FBYyxNQUFNQyxNQUFNLHFCQUM3QkMsSUFBSTtrRUFBQ0MsQ0FBQUEsTUFBT0EsSUFBSUMsSUFBSTtpRUFDcEJDLEtBQUs7a0VBQUMsSUFBTztvQ0FBRUMsT0FBTztnQ0FBTTs7d0JBRS9CLElBQUksQ0FBQ1gsV0FBVzt3QkFFaEIsd0VBQXdFO3dCQUN4RXpGLFdBQVcsV0FBVzt3QkFDdEIsTUFBTXFHLFdBQVcsTUFBTU4sTUFBTSx5QkFBeUI7NEJBQ3BETyxhQUFhOzRCQUNiQyxTQUFTO2dDQUNQLGdCQUFnQjs0QkFDbEI7d0JBQ0Y7d0JBRUEsMkNBQTJDO3dCQUMzQyxJQUFJRixTQUFTRyxNQUFNLEtBQUssS0FBSzs0QkFDM0IsSUFBSWQsYUFBYUMsYUFBYTtnQ0FDNUJEO2dDQUNBakYsUUFBUUMsR0FBRyxDQUFDLG1DQUFpRGlGLE9BQWRELFlBQVcsS0FBZ0NFLE9BQTdCRCxhQUFZLG1CQUE2QixPQUFaQyxhQUFZO2dDQUN0RyxNQUFNLElBQUlhOzBFQUFRQyxDQUFBQSxVQUFXQyxXQUFXRCxTQUFTZDs7Z0NBQ2pELE9BQU9DOzRCQUNULE9BQU87Z0NBQ0xwRixRQUFRYSxLQUFLLENBQUM7Z0NBQ2Q7NEJBQ0Y7d0JBQ0Y7d0JBRUEsSUFBSSxDQUFDK0UsU0FBU08sRUFBRSxFQUFFOzRCQUNoQixNQUFNLElBQUlDLE1BQU0sc0NBQXNELE9BQWhCUixTQUFTRyxNQUFNO3dCQUN2RTt3QkFFQSxNQUFNckcsT0FBTyxNQUFNa0csU0FBU0gsSUFBSTt3QkFFaEMsdUJBQXVCO3dCQUN2QnpGLFFBQVFDLEdBQUcsQ0FBQyx5Q0FBeUM7NEJBQ25Eb0csZUFBZTNHLEtBQUsyRyxhQUFhOzRCQUNqQ0MscUJBQXFCNUcsS0FBSzRHLG1CQUFtQjs0QkFDN0NDLGVBQWU3RyxFQUFBQSxvQkFBQUEsS0FBSzhHLFdBQVcsY0FBaEI5Ryx3Q0FBQUEsa0JBQWtCK0csTUFBTSxLQUFJO3dCQUM3Qzt3QkFFQSxvQ0FBb0M7d0JBQ3BDLElBQUkvRyxLQUFLMkcsYUFBYSxJQUFJM0csS0FBSzRHLG1CQUFtQixFQUFFOzRCQUNsRHBELG1CQUFtQndELFFBQVFoSCxLQUFLdUQsZUFBZTs0QkFFL0MsSUFBSTBELGtCQUE2QixFQUFFOzRCQUVuQyw0QkFBNEI7NEJBQzVCLElBQUlqSCxLQUFLOEcsV0FBVyxJQUFJSSxNQUFNQyxPQUFPLENBQUNuSCxLQUFLOEcsV0FBVyxLQUFLOUcsS0FBSzhHLFdBQVcsQ0FBQ0MsTUFBTSxHQUFHLEdBQUc7Z0NBQ3RGekcsUUFBUUMsR0FBRyxDQUFDLHlDQUF5Q1AsS0FBSzhHLFdBQVcsQ0FBQ0MsTUFBTTtnQ0FFNUUvRyxLQUFLOEcsV0FBVyxDQUFDekIsT0FBTzswRUFBQyxDQUFDK0I7d0NBQ3hCLDhCQUE4Qjt3Q0FDOUIsTUFBTUMsaUJBQWlCLFFBQVNDLE9BQU8sSUFBSUosTUFBTUMsT0FBTyxDQUFDQyxRQUFRRSxPQUFPLElBQ3BFRixRQUFRRSxPQUFPLEdBQ2YsRUFBRTt3Q0FFTiwwQ0FBMEM7d0NBQzFDLE1BQU1DLGVBQWVGLGVBQWVHLEdBQUc7K0ZBQUMsQ0FBQ0M7Z0RBQ3ZDLElBQUksQ0FBQ0EsT0FBT0MsUUFBUSxDQUFDLE1BQU07b0RBQ3pCLE9BQU8sR0FBaUJELE9BQWRMLFFBQVFyQyxFQUFFLEVBQUMsS0FBVSxPQUFQMEM7Z0RBQzFCO2dEQUNBLE9BQU9BOzRDQUNUOzt3Q0FFQVIsZ0JBQWdCVSxJQUFJLENBQUM7NENBQ25CNUMsSUFBSXFDLFFBQVFyQyxFQUFFOzRDQUNkNkMsTUFBTVIsUUFBUVMsWUFBWSxJQUFJVCxRQUFRVSxLQUFLOzRDQUMzQ0EsT0FBT1YsUUFBUVUsS0FBSzs0Q0FDcEJDLE9BQU9YLFFBQVFXLEtBQUssSUFBSW5JLFlBQVksQ0FBQyxnQkFBaUJtSCxNQUFNLEdBQUluSCxhQUFhbUgsTUFBTSxDQUFDOzRDQUNwRk8sU0FBU0M7d0NBQ1g7b0NBQ0Y7O2dDQUVBakgsUUFBUUMsR0FBRyxDQUFDLGlDQUFpQzBHOzRCQUMvQyxPQUFPO2dDQUNMLDZEQUE2RDtnQ0FDN0QsTUFBTWUsYUFBYSxLQUFNekcsU0FBUyxJQUFJdkIsS0FBS3VCLFNBQVMsQ0FBQ3dGLE1BQU0sR0FBRyxJQUM1RC9HLEtBQUt1QixTQUFTLEdBQUcsRUFBRTtnQ0FFckIwRixnQkFBZ0JVLElBQUksQ0FBQztvQ0FDbkI1QyxJQUFJO29DQUNKNkMsTUFBTTVILEtBQUtpSSxXQUFXLElBQUlqSSxLQUFLOEgsS0FBSztvQ0FDcENBLE9BQU85SCxLQUFLOEgsS0FBSztvQ0FDakJDLE9BQU9uSSxZQUFZLENBQUMsRUFBRTtvQ0FDdEIwSCxTQUFTVTtnQ0FDWDtnQ0FFQTFILFFBQVFDLEdBQUcsQ0FBQyxnREFBZ0QwRyxlQUFlLENBQUMsRUFBRTs0QkFDaEY7NEJBRUEsa0RBQWtEOzRCQUNsRCwwQkFBMEI7NEJBQzFCM0UsVUFBVSxFQUFFLEdBQUksa0NBQWtDOzRCQUVsRCxrQ0FBa0M7NEJBQ2xDaEMsUUFBUUMsR0FBRyxDQUFDLGtEQUFrRDtnQ0FDNURJLFVBQVVBLENBQUFBLHFCQUFBQSwrQkFBQUEsU0FBVW9HLE1BQU0sS0FBSTtnQ0FDOUJuRyxpQkFBaUJBLENBQUFBLDRCQUFBQSxzQ0FBQUEsZ0JBQWlCbUUsRUFBRSxLQUFJO2dDQUN4Q2pFLGVBQWVBLGlCQUFpQjs0QkFDbEM7NEJBRUEsOENBQThDOzRCQUM5Q29ILFlBQVlqQjs0QkFFWiw2Q0FBNkM7NEJBQzdDLElBQUlBLGdCQUFnQkYsTUFBTSxHQUFHLEdBQUc7Z0NBQzlCLE1BQU1vQixlQUFlbEIsZUFBZSxDQUFDLEVBQUU7Z0NBQ3ZDM0csUUFBUUMsR0FBRyxDQUFDLHlDQUF5QzRIO2dDQUVyRCxvRUFBb0U7Z0NBQ3BFLDBEQUEwRDtnQ0FDMUQzQjswRUFBVzt3Q0FDVGxHLFFBQVFDLEdBQUcsQ0FBQzt3Q0FDWmdDLGNBQWM0RjtvQ0FDaEI7eUVBQUc7NEJBQ0w7d0JBQ0YsT0FBTzs0QkFDTCwyREFBMkQ7NEJBQzNEbkYsbUJBQW1CO3dCQUNyQjtvQkFDRixFQUFFLE9BQU83QixPQUFPO3dCQUNkYixRQUFRYSxLQUFLLENBQUMsK0JBQStCQTtvQkFDL0MsU0FBVTt3QkFDUixJQUFJbUUsV0FBVzs0QkFDYmhDLFdBQVc7d0JBQ2I7b0JBQ0Y7Z0JBQ0Y7O1lBRUEsSUFBSTdDLG9CQUFBQSwrQkFBQUEsZ0JBQUFBLFFBQVMySCxJQUFJLGNBQWIzSCxvQ0FBQUEsY0FBZXNFLEVBQUUsRUFBRTtnQkFDckJXO1lBQ0Y7WUFFQTswQ0FBTztvQkFDTEosWUFBWTtnQkFDZDs7UUFDRjtpQ0FBRztRQUFDN0Usb0JBQUFBLCtCQUFBQSxnQkFBQUEsUUFBUzJILElBQUksY0FBYjNILG9DQUFBQSxjQUFlc0UsRUFBRTtRQUFFekM7UUFBV0M7S0FBYztJQUVoRCw2QkFBNkI7SUFDN0IsTUFBTThGLGdCQUFnQixDQUFDWjtRQUNyQixNQUFNYSxjQUFjYixPQUFPYyxXQUFXO1FBRXRDLElBQUlELFlBQVlaLFFBQVEsQ0FBQyxVQUFVO1lBQ2pDLHFCQUFPLDhEQUFDbEssNkpBQUtBO2dCQUFDbUMsV0FBVTs7Ozs7O1FBQzFCLE9BQU8sSUFBSTJJLFlBQVlaLFFBQVEsQ0FBQyxTQUFTO1lBQ3ZDLHFCQUFPLDhEQUFDakssNkpBQUlBO2dCQUFDa0MsV0FBVTs7Ozs7O1FBQ3pCLE9BQU8sSUFBSTJJLFlBQVlaLFFBQVEsQ0FBQyxVQUFVO1lBQ3hDLHFCQUFPLDhEQUFDaEssNkpBQUtBO2dCQUFDaUMsV0FBVTs7Ozs7O1FBQzFCLE9BQU8sSUFBSTJJLFlBQVlaLFFBQVEsQ0FBQyxZQUFZO1lBQzFDLHFCQUFPLDhEQUFDN0osNkpBQU9BO2dCQUFDOEIsV0FBVTs7Ozs7O1FBQzVCLE9BQU8sSUFBSTJJLFlBQVlaLFFBQVEsQ0FBQyxVQUFVO1lBQ3hDLHFCQUFPLDhEQUFDbkssNkpBQUlBO2dCQUFDb0MsV0FBVTs7Ozs7O1FBQ3pCLE9BQU8sSUFBSTJJLFlBQVlaLFFBQVEsQ0FBQyxXQUFXWSxZQUFZWixRQUFRLENBQUMsU0FBUztZQUN2RSxxQkFBTyw4REFBQzlKLDZKQUFZQTtnQkFBQytCLFdBQVU7Ozs7OztRQUNqQyxPQUFPO1lBQ0wscUJBQU8sOERBQUNoQyw2SkFBTUE7Z0JBQUNnQyxXQUFVOzs7Ozs7UUFDM0I7SUFDRjtJQUVBLGdDQUFnQztJQUNoQyxNQUFNNkksbUJBQW1CLENBQUNmO1FBQ3hCLHVDQUF1QztRQUN2QyxNQUFNZ0IsaUJBQWlCaEIsT0FBT0MsUUFBUSxDQUFDLE9BQU9ELE9BQU9ySCxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBR3FIO1FBQ3JFLE9BQU9nQixlQUFlQyxNQUFNLENBQUMsR0FBR0MsV0FBVyxLQUFLRixlQUFlRyxLQUFLLENBQUMsR0FBR0wsV0FBVztJQUNyRjtJQUVBLDJEQUEyRDtJQUMzRCxNQUFNTSxzQkFBc0IsQ0FBQ3BCLFFBQWdCcUI7UUFDM0MsZ0ZBQWdGO1FBQ2hGeEYsV0FBVztRQUNYdEIsYUFBYXlGLFFBQVFxQixXQUNsQkMsT0FBTyxDQUFDO1lBQ1B6RixXQUFXO1FBQ2I7SUFDSjtJQUVBLGlFQUFpRTtJQUNqRSxNQUFNMEYsc0JBQXNCLENBQUM1QjtZQUtoQkE7UUFKWCwrQ0FBK0M7UUFDL0M5RyxRQUFRQyxHQUFHLENBQUMsb0RBQW9EO1lBQzlEd0UsSUFBSXFDLFFBQVFyQyxFQUFFO1lBQ2QrQyxPQUFPVixRQUFRVSxLQUFLO1lBQ3BCUixPQUFPLEdBQUVGLG1CQUFBQSxRQUFRRSxPQUFPLGNBQWZGLHVDQUFBQSxpQkFBaUJMLE1BQU07UUFDbEM7UUFFQSxvQ0FBb0M7UUFDcEMsSUFBSSxDQUFDSyxXQUFXLENBQUNBLFFBQVFyQyxFQUFFLEVBQUU7WUFDM0J6RSxRQUFRYSxLQUFLLENBQUM7WUFDZDtRQUNGO1FBRUEsK0NBQStDO1FBQy9DLElBQUlQLENBQUFBLDRCQUFBQSxzQ0FBQUEsZ0JBQWlCbUUsRUFBRSxNQUFLcUMsUUFBUXJDLEVBQUUsRUFBRTtZQUN0Q3pFLFFBQVFDLEdBQUcsQ0FBQztZQUNaO1FBQ0Y7UUFFQSxpRkFBaUY7UUFDakYrQyxXQUFXO1FBRVgsc0NBQXNDO1FBQ3RDaEQsUUFBUUMsR0FBRyxDQUFDO1FBQ1pnQyxjQUFjNkU7UUFFZCxvQkFBb0I7UUFDcEI5RyxRQUFRQyxHQUFHLENBQUM7UUFFWixzQ0FBc0M7UUFDdENpRyxXQUFXLElBQU1sRCxXQUFXLFFBQVE7SUFDdEM7SUFFQSxnQkFBZ0I7SUFDaEIsTUFBTTJGLGNBQWM7UUFDbEIsSUFBSSxDQUFDakksZUFBZTtRQUNwQjRCLGVBQWU7UUFDZkYsb0JBQW9CO0lBQ3RCO0lBRUEsTUFBTXdHLGlCQUFpQjtRQUNyQixJQUFJLENBQUNsSSxlQUFlO1FBQ3BCNEIsZUFBZTtRQUNmRixvQkFBb0I7SUFDdEI7SUFFQSxNQUFNeUcsZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQ25JLGVBQWU7UUFDcEI0QixlQUFlO1FBQ2ZGLG9CQUFvQjtJQUN0QjtJQUVBLE1BQU0wRyxtQkFBbUI7UUFDdkJ4RyxlQUFlO1FBQ2ZGLG9CQUFvQjtJQUN0QjtJQUVBLHNCQUFzQjtJQUN0QixNQUFNMkcsbUJBQW1CLE9BQU9DO1FBQzlCLElBQUlySSxpQkFBaUI4RixNQUFNLEtBQUssR0FBRztRQUVuQyxPQUFRdUM7WUFDTixLQUFLO2dCQUNIeEcscUJBQXFCO2dCQUNyQjtZQUVGLEtBQUs7Z0JBQ0gsbUNBQW1DO2dCQUNuQyxLQUFLLE1BQU15RyxXQUFXdEksaUJBQWtCO29CQUN0QyxNQUFNYSxnQkFBZ0J5SCxTQUFTO2dCQUNqQztnQkFDQTtZQUVGLEtBQUs7Z0JBQ0gscUNBQXFDO2dCQUNyQyxLQUFLLE1BQU1BLFdBQVd0SSxpQkFBa0I7b0JBQ3RDLE1BQU1hLGdCQUFnQnlILFNBQVM7Z0JBQ2pDO2dCQUNBO1lBRUYsS0FBSztnQkFFSDtRQUNKO0lBQ0Y7SUFFQSxNQUFNQyxrQkFBa0IsT0FBT0M7UUFDN0IsSUFBSTtZQUNGLE1BQU1DLFNBQVMsTUFBTXhILFVBQVV1SDtZQUMvQixJQUFJLENBQUNDLE9BQU9DLE9BQU8sRUFBRTtnQkFDbkIsTUFBTSxJQUFJakQsTUFBTWdELE9BQU92SSxLQUFLO1lBQzlCO1lBQ0EsT0FBT3VJO1FBQ1QsRUFBRSxPQUFPdkksT0FBTztZQUNkLE1BQU1BO1FBQ1I7SUFDRjtJQUVBLE1BQU15SSxzQkFBc0I7UUFDMUIsTUFBTTNILGFBQWFoQjtRQUNuQjZCLHFCQUFxQjtRQUVyQix1Q0FBdUM7UUFDdkMsaURBQWlEO1FBQ2pEUSxXQUFXO1FBQ1hqQixRQUFRO1FBQ1JYLFdBQVcsR0FBRyxJQUFJLE9BQU9xSCxPQUFPLENBQUM7WUFDL0Isa0RBQWtEO1lBQ2xEekYsV0FBVztRQUNiO0lBQ0Y7SUFFQSxNQUFNdUcsa0JBQWtCO1FBQ3RCbkosT0FBT2lILElBQUksQ0FBQztJQUNkO0lBRUEsbURBQW1EO0lBQ25ELE1BQU1PLGNBQWMsQ0FBQzRCO1FBQ25CeEosUUFBUUMsR0FBRyxDQUFDLDZCQUE2QnVKO1FBRXpDLDBEQUEwRDtRQUMxRCw0RUFBNEU7UUFDNUUsb0RBQW9EO1FBRXBELDhEQUE4RDtRQUM5RCxNQUFNQyxxQkFBcUJDO1FBQzNCLElBQUksT0FBT0QsbUJBQW1CRSxtQkFBbUIsS0FBSyxZQUFZO1lBQ2hFLGdEQUFnRDtZQUNoREYsbUJBQW1CRSxtQkFBbUIsQ0FBQztnQkFDckNDLE1BQU07Z0JBQ05DLFNBQVNMO1lBQ1g7UUFDRixPQUFPO1lBQ0x4SixRQUFRYSxLQUFLLENBQUM7WUFFZCx3RUFBd0U7WUFDeEUsd0VBQXdFO1lBQ3hFYixRQUFRQyxHQUFHLENBQUM7WUFFWix3Q0FBd0M7WUFDeEMsTUFBTTZKLHdCQUF3QkwsbUJBQW1CTSxvQkFBb0I7WUFDckUsSUFBSSxPQUFPRCwwQkFBMEIsWUFBWTtnQkFDL0NBLHNCQUFzQjtvQkFDcEJGLE1BQU07b0JBQ05DLFNBQVNMO2dCQUNYO1lBQ0YsT0FBTztnQkFDTHhKLFFBQVFhLEtBQUssQ0FBQztZQUNoQjtRQUNGO0lBQ0Y7SUFFQSxxQkFDRTs7MEJBQ0UsOERBQUMzQjs7Ozs7MEJBR0QsOERBQUM4SztnQkFBSzNLLFdBQVU7MEJBQ2QsNEVBQUNEO29CQUFJQyxXQUFVOzhCQUNiLDRFQUFDRDt3QkFBSUMsV0FBVTs7MENBRWIsOERBQUNULHVFQUFZQTtnQ0FDWHlCLFVBQVVBO2dDQUNWQyxpQkFBaUJBO2dDQUNqQkMsaUJBQWlCQTtnQ0FDakJDLGVBQWVBO2dDQUNmdUMsU0FBU0EsV0FBV25DO2dDQUNwQjJELGFBQWFyRDtnQ0FDYmlDLG9CQUFvQkE7Z0NBQ3BCOEcsZ0JBQWdCMUI7Z0NBQ2hCMkIsV0FBVztvQ0FDVGxILFdBQVc7b0NBQ1hqQixRQUFRO29DQUNSWCxXQUFXTixNQUFNLElBQUksT0FBTzJILE9BQU8sQ0FBQyxJQUFNekYsV0FBVztnQ0FDdkQ7Z0NBQ0FtSCxjQUFjckI7Z0NBQ2RzQixpQkFBaUIxQjtnQ0FDakIyQixzQkFBc0JqSDtnQ0FDdEJrSCxjQUFjLE9BQU9DO3dDQU9WQSxlQUNHQSxnQkFDSkEsZ0JBQ1NBLGdCQUVEQSxnQkFDSEEsZ0JBQ0FBLGdCQUNBQTtvQ0FkYnZILFdBQVc7b0NBRVhoRCxRQUFRQyxHQUFHLENBQUMsd0NBQXdDc0s7b0NBRXBELGtEQUFrRDtvQ0FDbEQsTUFBTUMsYUFBYTt3Q0FDakJoRCxPQUFPK0MsRUFBQUEsZ0JBQUFBLFNBQVNFLEdBQUcsQ0FBQyxzQkFBYkYsb0NBQUFBLGNBQXVCNUYsUUFBUSxPQUFNO3dDQUM1QytGLFVBQVVILEVBQUFBLGlCQUFBQSxTQUFTRSxHQUFHLENBQUMseUJBQWJGLHFDQUFBQSxlQUEwQjVGLFFBQVEsT0FBTTt3Q0FDbERnRyxNQUFNSixFQUFBQSxpQkFBQUEsU0FBU0UsR0FBRyxDQUFDLHFCQUFiRixxQ0FBQUEsZUFBc0I1RixRQUFRLE9BQU07d0NBQzFDaUcsTUFBTUMsU0FBU04sRUFBQUEsaUJBQUFBLFNBQVNFLEdBQUcsQ0FBQyxxQkFBYkYscUNBQUFBLGVBQXNCNUYsUUFBUSxPQUFNO3dDQUNuRG1HLFFBQVFQLFNBQVNFLEdBQUcsQ0FBQyxjQUFjO3dDQUNuQ2xELGNBQWNnRCxFQUFBQSxpQkFBQUEsU0FBU0UsR0FBRyxDQUFDLDZCQUFiRixxQ0FBQUEsZUFBOEI1RixRQUFRLE9BQU07d0NBQzFEb0csV0FBV1IsRUFBQUEsaUJBQUFBLFNBQVNFLEdBQUcsQ0FBQywwQkFBYkYscUNBQUFBLGVBQTJCNUYsUUFBUSxPQUFNO3dDQUNwRHFHLFdBQVdULEVBQUFBLGlCQUFBQSxTQUFTRSxHQUFHLENBQUMsMEJBQWJGLHFDQUFBQSxlQUEyQjVGLFFBQVEsTUFDNUNrRyxTQUFTTixFQUFBQSxpQkFBQUEsU0FBU0UsR0FBRyxDQUFDLDBCQUFiRixxQ0FBQUEsZUFBMkI1RixRQUFRLE9BQU0sU0FBU3NHO3dDQUM3REMsYUFBYVgsU0FBU0UsR0FBRyxDQUFDLG1CQUFtQjtvQ0FDL0M7b0NBRUEsc0NBQXNDO29DQUN0QyxJQUFJLENBQUNELFdBQVdqRCxZQUFZLEVBQUU7d0NBQzVCaUQsV0FBV2pELFlBQVksR0FBR2lELFdBQVdoRCxLQUFLO29DQUM1QztvQ0FFQSxJQUFJO3dDQUNGLDRCQUE0Qjt3Q0FDNUIsTUFBTTJELGVBQWUsTUFBTTdGLE1BQU0saUNBQWlDOzRDQUNoRThGLFFBQVE7NENBQ1J0RixTQUFTO2dEQUNQLGdCQUFnQjs0Q0FDbEI7NENBQ0F1RixNQUFNQyxLQUFLQyxTQUFTLENBQUM7Z0RBQ25CL0QsT0FBT2dELFdBQVdoRCxLQUFLO2dEQUN2QmtELFVBQVVGLFdBQVdFLFFBQVE7Z0RBQzdCQyxNQUFNSCxXQUFXRyxJQUFJO2dEQUNyQkMsTUFBTUosV0FBV0ksSUFBSTtnREFDckJFLFFBQVFOLFdBQVdNLE1BQU07NENBQzNCO3dDQUNGO3dDQUVBLE1BQU1VLGFBQWEsTUFBTUwsYUFBYTFGLElBQUk7d0NBRTFDLElBQUksQ0FBQzBGLGFBQWFoRixFQUFFLEVBQUU7NENBQ3BCLE1BQU0sSUFBSUMsTUFBTW9GLFdBQVczSyxLQUFLLElBQUk7d0NBQ3RDO3dDQUVBYixRQUFRQyxHQUFHLENBQUMsK0JBQStCdUw7d0NBRTNDLG1FQUFtRTt3Q0FDbkUsTUFBTUMsZUFBZXBMLFNBQVNxTCxNQUFNLENBQUNDLENBQUFBLElBQUtBLEVBQUVsSCxFQUFFLEtBQUs7d0NBQ25ELE1BQU1tSCxlQUFlLE1BQU10RyxNQUFNLHlCQUF5Qjs0Q0FDeEQ4RixRQUFROzRDQUNSdEYsU0FBUztnREFDUCxnQkFBZ0I7NENBQ2xCOzRDQUNBdUYsTUFBTUMsS0FBS0MsU0FBUyxDQUFDZjt3Q0FDdkI7d0NBQ0EsTUFBTXFCLGFBQWEsTUFBTUQsYUFBYW5HLElBQUk7d0NBQzFDLElBQUksQ0FBQ21HLGFBQWF6RixFQUFFLEVBQUU7NENBQ3BCLE1BQU0sSUFBSUMsTUFBTXlGLFdBQVdoTCxLQUFLLElBQUk7d0NBQ3RDO3dDQUNBLE1BQU1pTCxjQUFjRCxXQUFXL0UsT0FBTzt3Q0FDdENnRixZQUFZckUsS0FBSyxHQUFHbkksWUFBWSxDQUFDbU0sYUFBYWhGLE1BQU0sR0FBR25ILGFBQWFtSCxNQUFNLENBQUM7d0NBQzNFcUYsWUFBWTlFLE9BQU8sR0FBR3dFLFdBQVcvTCxPQUFPLENBQUNzTSxhQUFhLElBQUk7NENBQUM7NENBQVM7NENBQVE7NENBQVU7eUNBQVE7d0NBQzlGbkUsWUFBWTsrQ0FBSXZIOzRDQUFVeUw7eUNBQVk7d0NBQ3RDMUksc0JBQXNCO3dDQUN0QnpFLGdFQUFLQSxDQUFDOzRDQUNKcU4sT0FBTzs0Q0FDUEMsYUFBYSxzQkFBdUMsT0FBakJ6QixXQUFXaEQsS0FBSyxFQUFDOzRDQUNwRDBFLFVBQVU7d0NBQ1o7b0NBQ0YsRUFBRSxPQUFPckwsT0FBTzt3Q0FDZGIsUUFBUWEsS0FBSyxDQUFDLHlCQUF5QkE7d0NBQ3ZDbEMsZ0VBQUtBLENBQUM7NENBQ0pxTixPQUFPOzRDQUNQQyxhQUFhcEwsaUJBQWlCdUYsUUFBUXZGLE1BQU1zTCxPQUFPLEdBQUc7NENBQ3REQyxTQUFTOzRDQUNURixVQUFVO3dDQUNaO29DQUNGLFNBQVU7d0NBQ1JsSixXQUFXO29DQUNiO2dDQUNGO2dDQUNBcUosZUFBZSxPQUFPdkY7b0NBQ3BCLElBQUk7d0NBQ0Ysa0RBQWtEO3dDQUNsRCxNQUFNd0YsaUJBQWlCak0sU0FBU2tNLElBQUksQ0FBQ1osQ0FBQUEsSUFBS0EsRUFBRWxILEVBQUUsS0FBS3FDLFFBQVFyQyxFQUFFO3dDQUM3RCxJQUFJNkgsZ0JBQWdCOzRDQUNsQjVJLGlCQUFpQjRJOzRDQUNqQmxJLGlCQUFpQmtJLGVBQWU3RSxLQUFLLElBQUk7NENBQ3pDbkUsaUJBQWlCO3dDQUNuQixPQUFPOzRDQUNMM0UsZ0VBQUtBLENBQUM7Z0RBQ0pxTixPQUFPO2dEQUNQQyxhQUFhO2dEQUNiRyxTQUFTO2dEQUNURixVQUFVOzRDQUNaO3dDQUNGO29DQUNGLEVBQUUsT0FBT3JMLE9BQU87d0NBQ2RiLFFBQVFhLEtBQUssQ0FBQyxpQ0FBaUNBO3dDQUMvQ2xDLGdFQUFLQSxDQUFDOzRDQUNKcU4sT0FBTzs0Q0FDUEMsYUFBYTs0Q0FDYkcsU0FBUzs0Q0FDVEYsVUFBVTt3Q0FDWjtvQ0FDRjtnQ0FDRjtnQ0FDQU0saUJBQWlCLENBQUMxRjtvQ0FDaEJsRCxtQkFBbUJrRDtvQ0FDbkJ0RCxvQkFBb0I7Z0NBQ3RCO2dDQUNBaUosZUFBZSxDQUFDeEQsU0FBU1QsV0FBV3JCO29DQUNsQyxJQUFJLE9BQU84QixZQUFZLFVBQVU7d0NBQy9CNUgsa0JBQWtCNEgsU0FBU1QsYUFBYSxJQUFJckIsVUFBVTNHO29DQUN4RDtnQ0FDRjtnQ0FDQyxHQUFJLENBQUMsQ0FBQzs7Ozs7OzBDQUlULDhEQUFDcEI7Z0NBQUlDLFdBQVU7O2tEQUViLDhEQUFDRDt3Q0FBSUMsV0FBVTs7MERBQ2IsOERBQUNiLHlEQUFNQTtnREFDTDROLFNBQVE7Z0RBQ1JNLE1BQUs7Z0RBQ0xyTixXQUFVO2dEQUNWc04sU0FBUyxJQUFNN0oscUJBQXFCLENBQUNEOzBEQUVyQyw0RUFBQ3JGLDZKQUFJQTtvREFBQzZCLFdBQVU7Ozs7Ozs7Ozs7OzBEQUdsQiw4REFBQ0Q7Z0RBQUlDLFdBQVU7MERBQ2IsNEVBQUNEO29EQUFJQyxXQUFVOzt3REFDWjBJLGNBQWN2SDtzRUFFZiw4REFBQ29NOzREQUFLdk4sV0FBVTs7Z0VBQ2JpQixDQUFBQSw0QkFBQUEsc0NBQUFBLGdCQUFpQmtILEtBQUssSUFBRyxHQUF5QixPQUF0QmxILGdCQUFnQmtILEtBQUssRUFBQyxRQUFNO2dFQUN4RFUsaUJBQWlCMUgsY0FBYzRHLFFBQVEsQ0FBQyxPQUFPNUcsY0FBY1YsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUdVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0RBU3RGLDhEQUFDcEI7d0NBQUlDLFdBQVU7a0RBQ1p1QiwwQkFDQyw4REFBQ3hCOzRDQUFJQyxXQUFVO3NEQUNiLDRFQUFDRDtnREFBSUMsV0FBVTs7a0VBQ2IsOERBQUN0Qyw2SkFBT0E7d0RBQUNzQyxXQUFVOzs7Ozs7a0VBQ25CLDhEQUFDd047d0RBQUV4TixXQUFVO2tFQUF3Qjs7Ozs7Ozs7Ozs7Ozs7OzttREFHdkN3QixzQkFDRiw4REFBQ3pCOzRDQUFJQyxXQUFVO3NEQUNiLDRFQUFDRDtnREFBSUMsV0FBVTswREFDYiw0RUFBQ3hCLHVEQUFLQTtvREFBQ3VPLFNBQVE7O3NFQUNiLDhEQUFDcFAsNkpBQVdBOzREQUFDcUMsV0FBVTs7Ozs7O3NFQUN2Qiw4REFBQ3RCLDREQUFVQTtzRUFBQzs7Ozs7O3NFQUNaLDhEQUFDRCxrRUFBZ0JBO3NFQUNkK0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpRUFNVCw4REFBQ3pCOzRDQUFJQyxXQUFVO3NEQUViLDRFQUFDRDtnREFDQ0MsV0FBVTtnREFDVnlOLFVBQVUsQ0FBQ0M7b0RBQ1QsTUFBTUMsU0FBU0QsRUFBRUUsYUFBYTtvREFDOUIsTUFBTSxFQUFFQyxTQUFTLEVBQUVDLFlBQVksRUFBRUMsWUFBWSxFQUFFLEdBQUdKO29EQUNsRCxNQUFNSyxtQkFBbUJGLGVBQWVELFlBQVlFO29EQUNwRCxNQUFNRSxtQkFBbUIsQ0FBQ0osWUFBWUUsWUFBVyxJQUFLRDtvREFFdEQsaURBQWlEO29EQUNqRCxNQUFNSSxnQkFBZ0JQLE9BQU9RLE9BQU8sQ0FBQ0QsYUFBYSxHQUNoRDFDLFNBQVNtQyxPQUFPUSxPQUFPLENBQUNELGFBQWEsSUFBSTtvREFDM0MsTUFBTUUsZ0JBQWdCUCxZQUFZSztvREFFbEMsOEJBQThCO29EQUM5QlAsT0FBT1EsT0FBTyxDQUFDRCxhQUFhLEdBQUdMLFVBQVV2SSxRQUFRO29EQUVqRCxtREFBbUQ7b0RBQ25ELE1BQU0rSSxNQUFNOU4sS0FBSzhOLEdBQUc7b0RBQ3BCLE1BQU1DLFVBQVU5QyxTQUFTbUMsT0FBT1EsT0FBTyxDQUFDSSxXQUFXLElBQUk7b0RBQ3ZELElBQUlGLE1BQU1DLFVBQVUsS0FBSzt3REFDdkIzTixRQUFRQyxHQUFHLENBQUMsb0NBQThENE4sT0FBMUJSLGtCQUFpQixXQUE0REksT0FBbkRJLEtBQUtDLEtBQUssQ0FBQ1IsbUJBQW1CLE1BQUssa0JBQXdEeE0sT0FBeEMyTSxnQkFBZ0IsU0FBUyxNQUFLLFlBQXlDN00sT0FBL0JFLE9BQU9DLFlBQVcsZUFBdUIsT0FBVkg7d0RBQ3BNb00sT0FBT1EsT0FBTyxDQUFDSSxXQUFXLEdBQUdGLElBQUkvSSxRQUFRO29EQUMzQztvREFFQSxvREFBb0Q7b0RBQ3BELE1BQU1vSixjQUFjbEQsU0FBU21DLE9BQU9RLE9BQU8sQ0FBQ1EsZUFBZSxJQUFJO29EQUMvRCxNQUFNQyxlQUFlLE1BQU0sb0JBQW9CO29EQUUvQyx1REFBdUQ7b0RBQ3ZELHFDQUFxQztvREFDckMsb0RBQW9EO29EQUNwRCwyQkFBMkI7b0RBQzNCLCtCQUErQjtvREFDL0IscURBQXFEO29EQUNyRCxJQUFJUixpQkFDQUosbUJBQW1CLEtBQUssa0NBQWtDO29EQUMxRCxDQUFDek0sYUFDREUsT0FBT0MsY0FDUDJNLE1BQU1LLGNBQWNFLGNBQWM7d0RBQ3BDak8sUUFBUUMsR0FBRyxDQUFFO3dEQUNiK00sT0FBT1EsT0FBTyxDQUFDUSxlQUFlLEdBQUdOLElBQUkvSSxRQUFRO3dEQUM3Q3pDO29EQUNGO2dEQUNGOzBEQUVDekIsT0FBT2dHLE1BQU0sS0FBSyxrQkFDakIsOERBQUNySDtvREFBSUMsV0FBVTs4REFDYiw0RUFBQ0Q7d0RBQUlDLFdBQVU7OzBFQUNiLDhEQUFDbkMsNkpBQUtBO2dFQUFDbUMsV0FBVTs7Ozs7OzBFQUNqQiw4REFBQzZPO2dFQUFHN08sV0FBVTswRUFBb0M7Ozs7OzswRUFDbEQsOERBQUN3TjtnRUFBRXhOLFdBQVU7MEVBQ1ZnRixjQUNHLHlCQUFxQyxPQUFaQSxhQUFZLE9BQ3JDLFFBQW9DLE9BQTVCN0QsY0FBY3lILFdBQVcsSUFBRzs7Ozs7Ozs7Ozs7Ozs7Ozt5RUFLOUMsOERBQUNwSixvRUFBU0E7b0RBQ1I0QixRQUFRQTtvREFDUkUsa0JBQWtCQTtvREFDbEJELGVBQWVBO29EQUNmK0wsZUFBZSxDQUFDeEQsU0FBU2tGLGdCQUFnQkM7d0RBQ3ZDLCtEQUErRDt3REFDL0QvTSxrQkFDRTRILFNBQ0FrRixtQkFBa0I3Tiw0QkFBQUEsc0NBQUFBLGdCQUFpQm1FLEVBQUUsS0FBSSxJQUN6QzJKLGVBQWU1TjtvREFFbkI7b0RBQ0E2TixnQkFBZ0IvTTtvREFDaEJnTixtQkFBbUIvTTtvREFDbkJnTixpQkFBaUI5TTtvREFDakIrTSxZQUFZdE07b0RBQ1p1TSxlQUFlM04sT0FBT0M7b0RBQ3RCUCxlQUFlQTtvREFDZkksV0FBV0E7b0RBQ1hJLGFBQWFQLE9BQU9nRyxNQUFNO29EQUMxQmlJLGNBQWMzRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBDQVU1Qiw4REFBQzNKO2dDQUFJQyxXQUFVOzBDQUViLDRFQUFDRDtvQ0FBSUMsV0FBVTs4Q0FDWnFCLDhCQUNDLDhEQUFDNUIsMEVBQWVBO3dDQUNkMEksT0FBTzlHO3dDQUNQaU8sUUFBUTs0Q0FDTnROLGtCQUFrQixJQUFJLElBQUk7NENBQzFCLCtCQUErQjs0Q0FDL0J1QixlQUFlO3dDQUNqQjt3Q0FDQWdNLFNBQVNqRzt3Q0FDVGtHLFlBQVlqRzt3Q0FDWmtHLFdBQVdqRzt3Q0FDWGtHLGNBQWMsSUFBTXROLGNBQWNmLGNBQWMrRCxFQUFFOzs7Ozs2REFHcEQsOERBQUNyRjt3Q0FBSUMsV0FBVTtrREFDYiw0RUFBQ0Q7NENBQUlDLFdBQVU7OzhEQUNiLDhEQUFDd047OERBQUU7Ozs7Ozs4REFDSCw4REFBQ21DO29EQUNDM1AsV0FBVTtvREFDVnNOLFNBQVM7d0RBQ1BySyxlQUFlO3dEQUNmRixvQkFBb0I7b0RBQ3RCOzhEQUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQWFqQiw4REFBQ3BELGdGQUFtQkE7Z0JBQ2xCaVEsTUFBTTFNO2dCQUNOMk0sZUFBZXZPLGlCQUFpQjhGLE1BQU07Z0JBQ3RDMEksV0FBVzdGO2dCQUNYOEYsVUFBVSxJQUFNNU0scUJBQXFCOzs7Ozs7MEJBSXZDLDhEQUFDOUUseURBQU1BO2dCQUFDMlIsTUFBTWxOO2dCQUFrQm1OLGNBQWMsQ0FBQ0QsT0FBUyxDQUFDQSxRQUFRak4sb0JBQW9COzBCQUNuRiw0RUFBQ3pFLGdFQUFhQTtvQkFBQzBCLFdBQVU7O3NDQUN2Qiw4REFBQ3pCLDhEQUFXQTs0QkFBQzJSLE9BQU87c0NBQ2xCLDRFQUFDM0M7Z0NBQUt2TixXQUFVOzBDQUFVOzs7Ozs7Ozs7OztzQ0FFNUIsOERBQUNOLHVFQUFZQTs0QkFDWDZLLE1BQU12SDs0QkFDTm1OLGNBQWNuTixnQkFBZ0IsUUFBUzNCLGdCQUF3QnVLOzRCQUMvRHdFLFFBQVEsT0FBT3RHO2dDQUNiLElBQUk7b0NBQ0YsTUFBTUMsU0FBUyxNQUFNeEgsVUFBVXVIO29DQUMvQjtnQ0FDRixFQUFFLE9BQU90SSxPQUFPO29DQUNkYixRQUFRYSxLQUFLLENBQUMsd0JBQXdCQTtvQ0FDdEMsTUFBTUE7Z0NBQ1I7NEJBQ0Y7NEJBQ0E2TyxTQUFTLElBQU10TixvQkFBb0I7NEJBQ25DL0IsVUFBVUE7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQU1oQiw4REFBQzNDLHlEQUFNQTtnQkFBQzJSLE1BQU1oTTtnQkFBZWlNLGNBQWNELENBQUFBO29CQUN6QyxJQUFJLENBQUNBLE1BQU07d0JBQ1QvTCxpQkFBaUI7d0JBQ2pCVSxlQUFlO3dCQUNmTixpQkFBaUI7d0JBQ2pCSSxlQUFlO3dCQUNmTSxpQkFBaUI7d0JBQ2pCc0YsT0FBT2lHLFFBQVEsQ0FBQ0MsTUFBTTtvQkFDeEI7Z0JBQ0Y7MEJBQ0UsNEVBQUNqUyxnRUFBYUE7b0JBQUMwQixXQUFVOztzQ0FDdkIsOERBQUN6Qiw4REFBV0E7NEJBQUN5QixXQUFVO3NDQUFnQjs7Ozs7O3NDQUN2Qyw4REFBQ3dROzRCQUFLQyxVQUFVLE9BQU0vQztnQ0FDcEJBLEVBQUVnRCxjQUFjO2dDQUNoQixJQUFJLENBQUN0TSxlQUFlO2dDQUNwQk8sZUFBZTtnQ0FDZixJQUFJO29DQUNGLE1BQU1nTSxjQUFjakQsRUFBRUMsTUFBTTtvQ0FDNUIsTUFBTXJGLGNBQWMsWUFBYXNJLGFBQWEsQ0FBQyxpQkFBc0NDLEtBQUs7b0NBQzFGLE1BQU16SSxRQUFRdEQ7b0NBRWQsb0RBQW9EO29DQUNwRCxJQUFJTixhQUFhO3dDQUNmLElBQUk7NENBQ0YsNkNBQTZDOzRDQUM3QyxNQUFNc00sb0JBQW9CLE1BQU03SyxNQUFNLDJDQUE0RCxPQUFqQjdCLGNBQWNnQixFQUFFOzRDQUNqRyxJQUFJLENBQUMwTCxrQkFBa0JoSyxFQUFFLEVBQUU7Z0RBQ3pCLE1BQU0sSUFBSUMsTUFBTTs0Q0FDbEI7NENBQ0EsTUFBTWdLLGlCQUFpQixNQUFNRCxrQkFBa0IxSyxJQUFJOzRDQUVuRCxrREFBa0Q7NENBQ2xELE1BQU0wRixlQUFlLE1BQU03RixNQUFNLGlDQUFpQztnREFDaEU4RixRQUFRO2dEQUNSdEYsU0FBUztvREFDUCxnQkFBZ0I7Z0RBQ2xCO2dEQUNBdUYsTUFBTUMsS0FBS0MsU0FBUyxDQUFDO29EQUNuQi9ELE9BQU8vRCxjQUFjK0QsS0FBSztvREFDMUJrRCxVQUFVN0c7b0RBQ1Ysb0RBQW9EO29EQUNwRDhHLE1BQU15RixlQUFlekYsSUFBSTtvREFDekJDLE1BQU13RixlQUFleEYsSUFBSSxJQUFJO29EQUM3QkUsUUFBUXNGLGVBQWV0RixNQUFNLElBQUk7Z0RBQ25DOzRDQUNGOzRDQUVBLE1BQU1VLGFBQWEsTUFBTUwsYUFBYTFGLElBQUk7NENBRTFDLElBQUksQ0FBQzBGLGFBQWFoRixFQUFFLEVBQUU7Z0RBQ3BCLE1BQU0sSUFBSUMsTUFBTW9GLFdBQVczSyxLQUFLLElBQUk7NENBQ3RDOzRDQUVBYixRQUFRQyxHQUFHLENBQUM7d0NBQ2QsRUFBRSxPQUFPWSxPQUFPOzRDQUNkYixRQUFRYSxLQUFLLENBQUMsNkJBQTZCQTs0Q0FDM0MsTUFBTSxJQUFJdUYsTUFBTSx5QkFBa0YsT0FBekR2RixpQkFBaUJ1RixRQUFRdkYsTUFBTXNMLE9BQU8sR0FBRzt3Q0FDcEY7b0NBQ0Y7b0NBRUEsZ0VBQWdFO29DQUNoRSxNQUFNM0csTUFBTSxNQUFNRixNQUFNLHlCQUF5Qjt3Q0FDL0M4RixRQUFRO3dDQUNSdEYsU0FBUzs0Q0FBRSxnQkFBZ0I7d0NBQW1CO3dDQUM5Q3VGLE1BQU1DLEtBQUtDLFNBQVMsQ0FBQzs0Q0FDbkIvQyxXQUFXL0UsY0FBY2dCLEVBQUU7NENBQzNCWixhQUFhQSxlQUFlb0g7NENBQzVCMUQsY0FBY0k7NENBQ2RGLE9BQU9BO3dDQUNUO29DQUNGO29DQUNBLE1BQU0vSCxPQUFPLE1BQU04RixJQUFJQyxJQUFJO29DQUMzQixJQUFJLENBQUNELElBQUlXLEVBQUUsRUFBRSxNQUFNLElBQUlDLE1BQU0xRyxLQUFLbUIsS0FBSyxJQUFJO29DQUMzQ2xDLGdFQUFLQSxDQUFDO3dDQUFFcU4sT0FBTzt3Q0FBbUJDLGFBQWE7b0NBQXlDO29DQUN4RjNJLGlCQUFpQjtvQ0FDakJRLGVBQWU7b0NBQ2YsZ0NBQWdDO29DQUNoQzhELFlBQVl2SCxTQUFTNkcsR0FBRyxDQUFDSixDQUFBQSxVQUN2QkEsUUFBUXJDLEVBQUUsS0FBS2hCLGNBQWNnQixFQUFFLEdBQzNCOzRDQUFDLEdBQUdxQyxPQUFPOzRDQUFFUSxNQUFNSzs0Q0FBYUYsT0FBT0E7d0NBQUssSUFDNUNYO29DQUVOLHdEQUF3RDtvQ0FDeERwRCxpQkFBaUI7b0NBQ2pCLDhDQUE4QztvQ0FDOUNnRyxPQUFPaUcsUUFBUSxDQUFDQyxNQUFNO2dDQUN4QixFQUFFLE9BQU9TLEtBQUs7b0NBQ1oxUixnRUFBS0EsQ0FBQzt3Q0FBRXFOLE9BQU87d0NBQVNDLGFBQWFvRSxlQUFlakssUUFBUWlLLElBQUlsRSxPQUFPLEdBQUc7d0NBQXFDQyxTQUFTO29DQUFjO2dDQUN4SSxTQUFVO29DQUNScEksZUFBZTtnQ0FDakI7NEJBQ0Y7OzhDQUNFLDhEQUFDNUU7b0NBQUlDLFdBQVU7O3NEQUNiLDhEQUFDWCx1REFBS0E7NENBQUM0UixTQUFROzRDQUFlalIsV0FBVTtzREFBZ0I7Ozs7OztzREFDeEQsOERBQUNaLHVEQUFLQTs0Q0FDSmdHLElBQUc7NENBQ0htRixNQUFLOzRDQUNMMkcsWUFBWSxFQUFFOU0sMEJBQUFBLG9DQUFBQSxjQUFlNkQsSUFBSTs0Q0FDakNqSSxXQUFVOzRDQUNWbVIsVUFBVXpNOzs7Ozs7Ozs7Ozs7OENBSWQsOERBQUMzRTtvQ0FBSUMsV0FBVTs7c0RBQ2IsOERBQUNYLHVEQUFLQTs0Q0FBQzRSLFNBQVE7NENBQWVqUixXQUFVO3NEQUFnQjs7Ozs7O3NEQUN4RCw4REFBQ1osdURBQUtBOzRDQUNKZ0csSUFBRzs0Q0FDSG1GLE1BQUs7NENBQ0xzRyxPQUFPck07NENBQ1A0TSxVQUFVMUQsQ0FBQUEsSUFBS2pKLGVBQWVpSixFQUFFQyxNQUFNLENBQUNrRCxLQUFLOzRDQUM1QzdRLFdBQVU7NENBQ1ZxUixhQUFZOzRDQUNaRixVQUFVek07Ozs7Ozs7Ozs7Ozs4Q0FJZCw4REFBQzNFO29DQUFJQyxXQUFVOztzREFDYiw4REFBQ1gsdURBQUtBOzRDQUFDVyxXQUFVO3NEQUEyQjs7Ozs7O3NEQUM1Qyw4REFBQ0Q7NENBQUlDLFdBQVU7c0RBQ1pDLGFBQWE0SCxHQUFHLENBQUMsQ0FBQ08sT0FBT2tKLHNCQUN4Qiw4REFBQ3ZSO29EQUFnQkMsV0FBVTs7c0VBQ3pCLDhEQUFDdVI7NERBQ0NoSCxNQUFLOzREQUNMbkYsSUFBSSxTQUFlLE9BQU5rTTs0REFDYnJKLE1BQUs7NERBQ0w0SSxPQUFPekk7NERBQ1BvSixTQUFTMU0sa0JBQWtCc0Q7NERBQzNCZ0osVUFBVSxJQUFNck0saUJBQWlCcUQ7NERBQ2pDcEksV0FBVTs7Ozs7O3NFQUVaLDhEQUFDeVI7NERBQ0NSLFNBQVMsU0FBZSxPQUFOSzs0REFDbEJ0UixXQUFXLHdFQUE4RSxPQUFOb0ksT0FBTTs0REFDekZzSixPQUFPO2dFQUFFQyxXQUFXN00sa0JBQWtCc0QsUUFBUSx1Q0FBdUM7NERBQU87NERBQzVGa0YsU0FBUyxJQUFNdkksaUJBQWlCcUQ7c0VBRS9CdEQsa0JBQWtCc0QsdUJBQ2pCLDhEQUFDaEssNkpBQUtBO2dFQUFDNEIsV0FBVTs7Ozs7Ozs7Ozs7O21EQWpCYnNSOzs7Ozs7Ozs7Ozs7Ozs7OzhDQXlCaEIsOERBQUN2UjtvQ0FBSUMsV0FBVTs7c0RBQ2IsOERBQUNiLHlEQUFNQTs0Q0FDTG9MLE1BQUs7NENBQ0x2SyxXQUFVOzRDQUNWc04sU0FBUztnREFDUHJKLGlCQUFpQjtnREFDakJvRyxPQUFPaUcsUUFBUSxDQUFDQyxNQUFNOzRDQUN4QjtzREFDRDs7Ozs7O3NEQUdELDhEQUFDcFIseURBQU1BOzRDQUNMb0wsTUFBSzs0Q0FDTHZLLFdBQVU7NENBQ1ZtUixVQUFVek07O2dEQUVUQSw0QkFBYyw4REFBQ2hILDZKQUFPQTtvREFBQ3NDLFdBQVU7Ozs7OzJEQUFpQztnREFBSzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQVNsRiw4REFBQ3JCLG9FQUFXQTtnQkFBQ3FSLE1BQU05TDtnQkFBa0IrTCxjQUFjRCxDQUFBQTtvQkFBVSxJQUFJLENBQUNBLE1BQU03TCxvQkFBb0I7Z0JBQVE7MEJBQ2xHLDRFQUFDckYsMkVBQWtCQTs7c0NBQ2pCLDhEQUFDRywwRUFBaUJBOzs4Q0FDaEIsOERBQUNDLHlFQUFnQkE7OENBQUM7Ozs7Ozs4Q0FDbEIsOERBQUNILCtFQUFzQkE7OENBQUM7Ozs7Ozs7Ozs7OztzQ0FJMUIsOERBQUNDLDBFQUFpQkE7OzhDQUNoQiw4REFBQ0gsMEVBQWlCQTtvQ0FBQ3lPLFNBQVMsSUFBTW5KLG9CQUFvQjs4Q0FBUTs7Ozs7OzhDQUM5RCw4REFBQ3ZGLDBFQUFpQkE7b0NBQUNzUixPQUFPOzhDQUN4Qiw0RUFBQy9RLHlEQUFNQTt3Q0FBQzROLFNBQVE7d0NBQWNvRSxVQUFVdk07d0NBQWUwSSxTQUFTOzRDQUM5RCxJQUFJLENBQUNoSixpQkFBaUI7NENBQ3RCTyxpQkFBaUI7NENBQ2pCLElBQUk7Z0RBQ0YsTUFBTXNCLE1BQU0sTUFBTUYsTUFBTSxtQ0FBc0QsT0FBbkIzQixnQkFBZ0JjLEVBQUUsR0FBSTtvREFBRTJHLFFBQVE7Z0RBQVM7Z0RBQ3BHLE1BQU0xTCxPQUFPLE1BQU04RixJQUFJQyxJQUFJO2dEQUMzQixJQUFJLENBQUNELElBQUlXLEVBQUUsRUFBRSxNQUFNLElBQUlDLE1BQU0xRyxLQUFLbUIsS0FBSyxJQUFJO2dEQUMzQ2xDLGdFQUFLQSxDQUFDO29EQUFFcU4sT0FBTztvREFBbUJDLGFBQWE7Z0RBQXdDO2dEQUN2RnpJLG9CQUFvQjtnREFDcEJrRyxPQUFPaUcsUUFBUSxDQUFDQyxNQUFNOzRDQUN4QixFQUFFLE9BQU9TLEtBQUs7Z0RBQ1oxUixnRUFBS0EsQ0FBQztvREFBRXFOLE9BQU87b0RBQVNDLGFBQWFvRSxlQUFlakssUUFBUWlLLElBQUlsRSxPQUFPLEdBQUc7b0RBQTRCQyxTQUFTO2dEQUFjOzRDQUMvSCxTQUFVO2dEQUNSbEksaUJBQWlCOzRDQUNuQjt3Q0FDRjtrREFBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT2pCO0dBLzlCd0JoRTs7UUFDUHJELHNEQUFTQTtRQUNFQyx1REFBVUE7UUFxQ2hDbUMsa0VBQWFBOzs7TUF2Q0tpQiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9hcHAvY291cnJpZXIvcGFnZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuXG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gJ25leHQvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyB1c2VTZXNzaW9uIH0gZnJvbSAnbmV4dC1hdXRoL3JlYWN0JztcbmltcG9ydCB7IFxuICBNYWlsLCBMb2FkZXIyLCBBbGVydENpcmNsZSwgXG4gIE1vcmVWZXJ0aWNhbCwgU2V0dGluZ3MsIFBsdXMgYXMgUGx1c0ljb24sIFRyYXNoMiwgRWRpdCwgXG4gIEluYm94LCBTZW5kLCBTdGFyLCBUcmFzaCwgUGx1cywgQ2hldnJvbkxlZnQsIENoZXZyb25SaWdodCwgXG4gIFNlYXJjaCwgQ2hldnJvbkRvd24sIEZvbGRlciwgQ2hldnJvblVwLCBSZXBseSwgRm9yd2FyZCwgUmVwbHlBbGwsIFxuICBNb3JlSG9yaXpvbnRhbCwgRm9sZGVyT3BlbiwgWCwgUGFwZXJjbGlwLCBNZXNzYWdlU3F1YXJlLCBDb3B5LCBFeWVPZmYsIFxuICBBbGVydE9jdGFnb24sIEFyY2hpdmUsIE1lbnUsIENoZWNrXG59IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQgeyBEaWFsb2csIERpYWxvZ0NvbnRlbnQsIERpYWxvZ1RpdGxlIH0gZnJvbSAnQC9jb21wb25lbnRzL3VpL2RpYWxvZyc7XG5pbXBvcnQgeyBBbGVydCwgQWxlcnREZXNjcmlwdGlvbiwgQWxlcnRUaXRsZSB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9hbGVydCc7XG5pbXBvcnQge1xuICBBbGVydERpYWxvZyxcbiAgQWxlcnREaWFsb2dBY3Rpb24sXG4gIEFsZXJ0RGlhbG9nQ2FuY2VsLFxuICBBbGVydERpYWxvZ0NvbnRlbnQsXG4gIEFsZXJ0RGlhbG9nRGVzY3JpcHRpb24sXG4gIEFsZXJ0RGlhbG9nRm9vdGVyLFxuICBBbGVydERpYWxvZ0hlYWRlcixcbiAgQWxlcnREaWFsb2dUaXRsZSxcbn0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9hbGVydC1kaWFsb2dcIjtcbmltcG9ydCB7IFNjcm9sbEFyZWEgfSBmcm9tICdAL2NvbXBvbmVudHMvdWkvc2Nyb2xsLWFyZWEnO1xuaW1wb3J0IHsgQXZhdGFyLCBBdmF0YXJGYWxsYmFjayB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9hdmF0YXInO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnQC9jb21wb25lbnRzL3VpL2J1dHRvbic7XG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9pbnB1dCc7XG5pbXBvcnQgeyBUYWJzLCBUYWJzTGlzdCwgVGFic1RyaWdnZXIsIFRhYnNDb250ZW50IH0gZnJvbSAnQC9jb21wb25lbnRzL3VpL3RhYnMnO1xuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tICdAL2NvbXBvbmVudHMvdWkvY2hlY2tib3gnO1xuaW1wb3J0IHsgTGFiZWwgfSBmcm9tICdAL2NvbXBvbmVudHMvdWkvbGFiZWwnO1xuaW1wb3J0IHsgdG9hc3QgfSBmcm9tICdAL2NvbXBvbmVudHMvdWkvdXNlLXRvYXN0JztcbmltcG9ydCB7IERyb3Bkb3duTWVudSwgRHJvcGRvd25NZW51VHJpZ2dlciwgRHJvcGRvd25NZW51Q29udGVudCwgRHJvcGRvd25NZW51SXRlbSB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9kcm9wZG93bi1tZW51JztcblxuLy8gSW1wb3J0IGNvbXBvbmVudHNcbmltcG9ydCBFbWFpbFNpZGViYXIgZnJvbSAnQC9jb21wb25lbnRzL2VtYWlsL0VtYWlsU2lkZWJhcic7XG5pbXBvcnQgRW1haWxMaXN0IGZyb20gJ0AvY29tcG9uZW50cy9lbWFpbC9FbWFpbExpc3QnO1xuaW1wb3J0IEVtYWlsU2lkZWJhckNvbnRlbnQgZnJvbSAnQC9jb21wb25lbnRzL2VtYWlsL0VtYWlsU2lkZWJhckNvbnRlbnQnO1xuaW1wb3J0IEVtYWlsRGV0YWlsVmlldyBmcm9tICdAL2NvbXBvbmVudHMvZW1haWwvRW1haWxEZXRhaWxWaWV3JztcbmltcG9ydCBDb21wb3NlRW1haWwgZnJvbSAnQC9jb21wb25lbnRzL2VtYWlsL0NvbXBvc2VFbWFpbCc7XG5pbXBvcnQgeyBEZWxldGVDb25maXJtRGlhbG9nIH0gZnJvbSAnQC9jb21wb25lbnRzL2VtYWlsL0VtYWlsRGlhbG9ncyc7XG5cbi8vIEltcG9ydCB0aGUgY3VzdG9tIGhvb2tzXG5pbXBvcnQgeyB1c2VFbWFpbFN0YXRlIH0gZnJvbSAnQC9ob29rcy91c2UtZW1haWwtc3RhdGUnO1xuXG4vLyBJbXBvcnQgdGhlIHByZWZldGNoaW5nIGZ1bmN0aW9uXG5pbXBvcnQgeyBwcmVmZXRjaEZvbGRlckVtYWlscyB9IGZyb20gJ0AvbGliL3NlcnZpY2VzL3ByZWZldGNoLXNlcnZpY2UnO1xuXG4vLyBJbXBvcnQgQWNjb3VudCB0eXBlIGZyb20gdGhlIHJlZHVjZXJcbmltcG9ydCB7IEFjY291bnQgfSBmcm9tICdAL2xpYi9yZWR1Y2Vycy9lbWFpbFJlZHVjZXInO1xuXG4vLyBBZGQgdGhlIG1pc3NpbmcgRW1haWxEYXRhIGltcG9ydCBmcm9tIHVzZS1jb3VycmllclxuaW1wb3J0IHsgRW1haWxEYXRhIH0gZnJvbSAnQC9ob29rcy91c2UtY291cnJpZXInO1xuXG4vLyBTaW1wbGlmaWVkIHZlcnNpb24gZm9yIHRoaXMgY29tcG9uZW50XG5mdW5jdGlvbiBTaW1wbGlmaWVkTG9hZGluZ0ZpeCgpIHtcbiAgLy8gSW4gcHJvZHVjdGlvbiwgZG9uJ3QgcmVuZGVyIGFueXRoaW5nXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgXG4gIC8vIFNpbXBsZSBkZWJ1Z2dpbmcgY29tcG9uZW50XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJmaXhlZCBib3R0b20tNCByaWdodC00IHotNTAgcC0yIGJnLXdoaXRlLzgwIHNoYWRvdyByb3VuZGVkLWxnIHRleHQteHNcIj5cbiAgICAgIERlYnVnOiBFbWFpbCBhcHAgbG9hZGVkXG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmludGVyZmFjZSBFbWFpbFdpdGhGbGFncyB7XG4gIGlkOiBzdHJpbmc7XG4gIHJlYWQ/OiBib29sZWFuO1xuICBmbGFncz86IHtcbiAgICBzZWVuPzogYm9vbGVhbjtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIEVtYWlsTWVzc2FnZSB7XG4gIGlkOiBzdHJpbmc7XG4gIGZyb206IHsgbmFtZTogc3RyaW5nOyBhZGRyZXNzOiBzdHJpbmcgfVtdO1xuICB0bzogeyBuYW1lOiBzdHJpbmc7IGFkZHJlc3M6IHN0cmluZyB9W107XG4gIHN1YmplY3Q6IHN0cmluZztcbiAgZGF0ZTogRGF0ZTtcbiAgZmxhZ3M6IHtcbiAgICBzZWVuOiBib29sZWFuO1xuICAgIGZsYWdnZWQ6IGJvb2xlYW47XG4gICAgYW5zd2VyZWQ6IGJvb2xlYW47XG4gICAgZHJhZnQ6IGJvb2xlYW47XG4gICAgZGVsZXRlZDogYm9vbGVhbjtcbiAgfTtcbiAgc2l6ZTogbnVtYmVyO1xuICBoYXNBdHRhY2htZW50czogYm9vbGVhbjtcbiAgZm9sZGVyOiBzdHJpbmc7XG4gIGNvbnRlbnRGZXRjaGVkOiBib29sZWFuO1xuICBhY2NvdW50SWQ6IHN0cmluZztcbiAgY29udGVudDoge1xuICAgIHRleHQ6IHN0cmluZztcbiAgICBodG1sOiBzdHJpbmc7XG4gIH07XG59XG5cbmludGVyZmFjZSBBY2NvdW50RGF0YSB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHBhc3N3b3JkOiBzdHJpbmc7XG4gIGhvc3Q6IHN0cmluZztcbiAgcG9ydDogbnVtYmVyO1xuICBzZWN1cmU6IGJvb2xlYW47XG4gIGRpc3BsYXlfbmFtZTogc3RyaW5nO1xuICBzbXRwX2hvc3Q/OiBzdHJpbmc7XG4gIHNtdHBfcG9ydD86IG51bWJlcjtcbiAgc210cF9zZWN1cmU/OiBib29sZWFuO1xufVxuXG4vLyBEZWZpbmUgYSBjb2xvciBwYWxldHRlIGZvciBhY2NvdW50IGNpcmNsZXNcbmNvbnN0IGNvbG9yUGFsZXR0ZSA9IFtcbiAgJ2JnLWJsdWUtNTAwJyxcbiAgJ2JnLWdyZWVuLTUwMCcsXG4gICdiZy1yZWQtNTAwJyxcbiAgJ2JnLXllbGxvdy01MDAnLFxuICAnYmctcHVycGxlLTUwMCcsXG4gICdiZy1waW5rLTUwMCcsXG4gICdiZy1pbmRpZ28tNTAwJyxcbiAgJ2JnLXRlYWwtNTAwJyxcbiAgJ2JnLW9yYW5nZS01MDAnLFxuICAnYmctY3lhbi01MDAnLFxuXTtcblxuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBjb25zaXN0ZW50IGxvZ2dpbmdcbmNvbnN0IGxvZ0VtYWlsT3AgPSAob3BlcmF0aW9uOiBzdHJpbmcsIGRldGFpbHM6IHN0cmluZywgZGF0YT86IGFueSkgPT4ge1xuICBjb25zdCB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVsxXS5zdWJzdHJpbmcoMCwgMTIpO1xuICBjb25zb2xlLmxvZyhgWyR7dGltZXN0YW1wfV1bRU1BSUwtQVBQXVske29wZXJhdGlvbn1dICR7ZGV0YWlsc31gKTtcbiAgaWYgKGRhdGEpIHtcbiAgICBjb25zb2xlLmxvZyhgWyR7dGltZXN0YW1wfV1bRU1BSUwtQVBQXVtEQVRBXWAsIGRhdGEpO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBDb3VycmllclBhZ2UoKSB7XG4gIGNvbnN0IHJvdXRlciA9IHVzZVJvdXRlcigpO1xuICBjb25zdCB7IGRhdGE6IHNlc3Npb24gfSA9IHVzZVNlc3Npb24oKTtcbiAgXG4gIC8vIFJlcGxhY2UgdXNlQ291cnJpZXIgd2l0aCB1c2VFbWFpbFN0YXRlXG4gIGNvbnN0IHtcbiAgICAvLyBTdGF0ZSB2YWx1ZXNcbiAgICBhY2NvdW50cyxcbiAgICBzZWxlY3RlZEFjY291bnQsXG4gICAgc2VsZWN0ZWRGb2xkZXJzLFxuICAgIGN1cnJlbnRGb2xkZXIsXG4gICAgZW1haWxzLFxuICAgIHNlbGVjdGVkRW1haWwsXG4gICAgc2VsZWN0ZWRFbWFpbElkcyxcbiAgICBpc0xvYWRpbmcsXG4gICAgZXJyb3IsXG4gICAgcGFnZSxcbiAgICB0b3RhbFBhZ2VzLFxuICAgIHRvdGFsRW1haWxzLFxuICAgIG1haWxib3hlcyxcbiAgICB1bnJlYWRDb3VudE1hcCxcbiAgICBzaG93Rm9sZGVycyxcbiAgICBcbiAgICAvLyBBY3Rpb25zXG4gICAgbG9hZEVtYWlscyxcbiAgICBoYW5kbGVFbWFpbFNlbGVjdCxcbiAgICB0b2dnbGVFbWFpbFNlbGVjdGlvbixcbiAgICB0b2dnbGVTZWxlY3RBbGwsXG4gICAgbWFya0VtYWlsQXNSZWFkLFxuICAgIHRvZ2dsZVN0YXJyZWQsXG4gICAgY2hhbmdlRm9sZGVyLFxuICAgIGRlbGV0ZUVtYWlscyxcbiAgICBzZW5kRW1haWwsXG4gICAgc2VhcmNoRW1haWxzLFxuICAgIGZvcm1hdEVtYWlsRm9yQWN0aW9uLFxuICAgIHNldFBhZ2UsXG4gICAgc2V0RW1haWxzLFxuICAgIHNlbGVjdEFjY291bnQsXG4gICAgaGFuZGxlTG9hZE1vcmVcbiAgfSA9IHVzZUVtYWlsU3RhdGUoKTtcblxuICAvLyBVSSBzdGF0ZSAoa2VlcGluZyBvbmx5IHdoYXQncyBzdGlsbCBuZWVkZWQpXG4gIGNvbnN0IFtzaG93Q29tcG9zZU1vZGFsLCBzZXRTaG93Q29tcG9zZU1vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2NvbXBvc2VUeXBlLCBzZXRDb21wb3NlVHlwZV0gPSB1c2VTdGF0ZTwnbmV3JyB8ICdyZXBseScgfCAncmVwbHktYWxsJyB8ICdmb3J3YXJkJz4oJ25ldycpO1xuICBjb25zdCBbc2hvd0RlbGV0ZUNvbmZpcm0sIHNldFNob3dEZWxldGVDb25maXJtXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3Nob3dMb2dpbk5lZWRlZCwgc2V0U2hvd0xvZ2luTmVlZGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3NpZGViYXJPcGVuLCBzZXRTaWRlYmFyT3Blbl0gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgY29uc3QgW21vYmlsZVNpZGViYXJPcGVuLCBzZXRNb2JpbGVTaWRlYmFyT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3ByZWZldGNoU3RhcnRlZCwgc2V0UHJlZmV0Y2hTdGFydGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3Nob3dBZGRBY2NvdW50Rm9ybSwgc2V0U2hvd0FkZEFjY291bnRGb3JtXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgXG4gIC8vIEFkZCBzdGF0ZSBmb3IgbW9kYWxzL2RpYWxvZ3NcbiAgY29uc3QgW3Nob3dFZGl0TW9kYWwsIHNldFNob3dFZGl0TW9kYWxdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2hvd0RlbGV0ZURpYWxvZywgc2V0U2hvd0RlbGV0ZURpYWxvZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFthY2NvdW50VG9FZGl0LCBzZXRBY2NvdW50VG9FZGl0XSA9IHVzZVN0YXRlPEFjY291bnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2FjY291bnRUb0RlbGV0ZSwgc2V0QWNjb3VudFRvRGVsZXRlXSA9IHVzZVN0YXRlPEFjY291bnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW25ld1Bhc3N3b3JkLCBzZXROZXdQYXNzd29yZF0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IFtlZGl0TG9hZGluZywgc2V0RWRpdExvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZGVsZXRlTG9hZGluZywgc2V0RGVsZXRlTG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtzZWxlY3RlZENvbG9yLCBzZXRTZWxlY3RlZENvbG9yXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xuICBcbiAgLy8gVXNlIHRoZSByZWR1Y2VyLW1hbmFnZWQgdmFsdWVzIGRpcmVjdGx5IGluc3RlYWQgb2YgdHJhY2tlZCBzZXBhcmF0ZWx5XG4gIGNvbnN0IFtzZWFyY2hRdWVyeSwgc2V0U2VhcmNoUXVlcnldID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbdW5yZWFkQ291bnQsIHNldFVucmVhZENvdW50XSA9IHVzZVN0YXRlKDApO1xuICBcbiAgLy8gQ2FsY3VsYXRlIHVucmVhZCBjb3VudCBmb3IgdGhlIHNlbGVjdGVkIGZvbGRlclxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzZWxlY3RlZEFjY291bnQgJiYgc2VsZWN0ZWRBY2NvdW50LmlkICE9PSAnbG9hZGluZy1hY2NvdW50Jykge1xuICAgICAgY29uc3QgZm9sZGVyQ291bnRzID0gdW5yZWFkQ291bnRNYXBbc2VsZWN0ZWRBY2NvdW50LmlkLnRvU3RyaW5nKCldO1xuICAgICAgaWYgKGZvbGRlckNvdW50cykge1xuICAgICAgICBzZXRVbnJlYWRDb3VudChmb2xkZXJDb3VudHNbY3VycmVudEZvbGRlcl0gfHwgMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRVbnJlYWRDb3VudCgwKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRm9yICdsb2FkaW5nLWFjY291bnQnLCBzdW0gdXAgYWxsIHVucmVhZCBjb3VudHMgZm9yIHRoZSBjdXJyZW50IGZvbGRlclxuICAgICAgbGV0IHRvdGFsVW5yZWFkID0gMDtcbiAgICAgIE9iamVjdC52YWx1ZXModW5yZWFkQ291bnRNYXApLmZvckVhY2goKGZvbGRlckNvdW50cykgPT4ge1xuICAgICAgICB0b3RhbFVucmVhZCArPSBmb2xkZXJDb3VudHNbY3VycmVudEZvbGRlcl0gfHwgMDtcbiAgICAgIH0pO1xuICAgICAgc2V0VW5yZWFkQ291bnQodG90YWxVbnJlYWQpO1xuICAgIH1cbiAgfSwgW3VucmVhZENvdW50TWFwLCBzZWxlY3RlZEFjY291bnQsIGN1cnJlbnRGb2xkZXJdKTtcbiAgXG4gIC8vIEluaXRpYWxpemUgc2Vzc2lvbiBhbmQgc3RhcnQgcHJlZmV0Y2hpbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBGbGFnIHRvIHByZXZlbnQgbXVsdGlwbGUgaW5pdGlhbGl6YXRpb24gYXR0ZW1wdHNcbiAgICBsZXQgaXNNb3VudGVkID0gdHJ1ZTtcbiAgICBsZXQgcmV0cnlDb3VudCA9IDA7XG4gICAgY29uc3QgTUFYX1JFVFJJRVMgPSAzO1xuICAgIGNvbnN0IFJFVFJZX0RFTEFZID0gMTAwMDsgLy8gMSBzZWNvbmRcblxuICAgIGNvbnN0IGluaXRTZXNzaW9uID0gYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKCFpc01vdW50ZWQpIHJldHVybjtcbiAgICAgICAgbG9nRW1haWxPcCgnU0VTU0lPTicsICdJbml0aWFsaXppbmcgZW1haWwgc2Vzc2lvbicpO1xuICAgICAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICBcbiAgICAgICAgLy8gRmlyc3QgY2hlY2sgaWYgUmVkaXMgaXMgcmVhZHkgYmVmb3JlIG1ha2luZyBBUEkgY2FsbHNcbiAgICAgICAgY29uc3QgcmVkaXNTdGF0dXMgPSBhd2FpdCBmZXRjaCgnL2FwaS9yZWRpcy9zdGF0dXMnKVxuICAgICAgICAgIC50aGVuKHJlcyA9PiByZXMuanNvbigpKVxuICAgICAgICAgIC5jYXRjaCgoKSA9PiAoeyByZWFkeTogZmFsc2UgfSkpO1xuICAgICAgICBcbiAgICAgICAgaWYgKCFpc01vdW50ZWQpIHJldHVybjtcbiAgICAgICAgXG4gICAgICAgIC8vIENhbGwgdGhlIHNlc3Npb24gQVBJIHRvIGNoZWNrIGVtYWlsIGNyZWRlbnRpYWxzIGFuZCBzdGFydCBwcmVmZXRjaGluZ1xuICAgICAgICBsb2dFbWFpbE9wKCdTRVNTSU9OJywgJ0ZldGNoaW5nIHNlc3Npb24gZGF0YSBmcm9tIEFQSScpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCcvYXBpL2NvdXJyaWVyL3Nlc3Npb24nLCB7XG4gICAgICAgICAgY3JlZGVudGlhbHM6ICdpbmNsdWRlJyxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICAvLyBIYW5kbGUgNDAxIFVuYXV0aG9yaXplZCB3aXRoIHJldHJ5IGxvZ2ljXG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgIGlmIChyZXRyeUNvdW50IDwgTUFYX1JFVFJJRVMpIHtcbiAgICAgICAgICAgIHJldHJ5Q291bnQrKztcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBTZXNzaW9uIHJlcXVlc3QgZmFpbGVkIChhdHRlbXB0ICR7cmV0cnlDb3VudH0vJHtNQVhfUkVUUklFU30pLCByZXRyeWluZyBpbiAke1JFVFJZX0RFTEFZfW1zLi4uYCk7XG4gICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgUkVUUllfREVMQVkpKTtcbiAgICAgICAgICAgIHJldHVybiBpbml0U2Vzc2lvbigpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdNYXggcmV0cmllcyByZWFjaGVkIGZvciBzZXNzaW9uIHJlcXVlc3QnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTZXNzaW9uIHJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgICAgXG4gICAgICAgIC8vIExvZyBzZXNzaW9uIHJlc3BvbnNlXG4gICAgICAgIGNvbnNvbGUubG9nKCdbREVCVUddIFNlc3Npb24gQVBJIHJlc3BvbnNlIGRldGFpbHM6Jywge1xuICAgICAgICAgIGF1dGhlbnRpY2F0ZWQ6IGRhdGEuYXV0aGVudGljYXRlZCxcbiAgICAgICAgICBoYXNFbWFpbENyZWRlbnRpYWxzOiBkYXRhLmhhc0VtYWlsQ3JlZGVudGlhbHMsXG4gICAgICAgICAgYWNjb3VudHNDb3VudDogZGF0YS5hbGxBY2NvdW50cz8ubGVuZ3RoIHx8IDBcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gUHJvY2VzcyBhY2NvdW50cyBpZiBhdXRoZW50aWNhdGVkXG4gICAgICAgIGlmIChkYXRhLmF1dGhlbnRpY2F0ZWQgJiYgZGF0YS5oYXNFbWFpbENyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgc2V0UHJlZmV0Y2hTdGFydGVkKEJvb2xlYW4oZGF0YS5wcmVmZXRjaFN0YXJ0ZWQpKTtcbiAgICAgICAgICBcbiAgICAgICAgICBsZXQgdXBkYXRlZEFjY291bnRzOiBBY2NvdW50W10gPSBbXTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBQcm9jZXNzIG11bHRpcGxlIGFjY291bnRzXG4gICAgICAgICAgaWYgKGRhdGEuYWxsQWNjb3VudHMgJiYgQXJyYXkuaXNBcnJheShkYXRhLmFsbEFjY291bnRzKSAmJiBkYXRhLmFsbEFjY291bnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbREVCVUddIFByb2Nlc3NpbmcgbXVsdGlwbGUgYWNjb3VudHM6JywgZGF0YS5hbGxBY2NvdW50cy5sZW5ndGgpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBkYXRhLmFsbEFjY291bnRzLmZvckVhY2goKGFjY291bnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAvLyBVc2UgZXhhY3QgZm9sZGVycyBmcm9tIElNQVBcbiAgICAgICAgICAgICAgY29uc3QgYWNjb3VudEZvbGRlcnMgPSAoYWNjb3VudC5mb2xkZXJzICYmIEFycmF5LmlzQXJyYXkoYWNjb3VudC5mb2xkZXJzKSkgXG4gICAgICAgICAgICAgICAgPyBhY2NvdW50LmZvbGRlcnMgXG4gICAgICAgICAgICAgICAgOiBbXTtcbiAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgIC8vIEVuc3VyZSBmb2xkZXIgbmFtZXMgaGF2ZSBhY2NvdW50IHByZWZpeFxuICAgICAgICAgICAgICBjb25zdCB2YWxpZEZvbGRlcnMgPSBhY2NvdW50Rm9sZGVycy5tYXAoKGZvbGRlcjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFmb2xkZXIuaW5jbHVkZXMoJzonKSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2FjY291bnQuaWR9OiR7Zm9sZGVyfWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmb2xkZXI7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgdXBkYXRlZEFjY291bnRzLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkOiBhY2NvdW50LmlkLFxuICAgICAgICAgICAgICAgIG5hbWU6IGFjY291bnQuZGlzcGxheV9uYW1lIHx8IGFjY291bnQuZW1haWwsXG4gICAgICAgICAgICAgICAgZW1haWw6IGFjY291bnQuZW1haWwsXG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY291bnQuY29sb3IgfHwgY29sb3JQYWxldHRlWyh1cGRhdGVkQWNjb3VudHMubGVuZ3RoKSAlIGNvbG9yUGFsZXR0ZS5sZW5ndGhdLFxuICAgICAgICAgICAgICAgIGZvbGRlcnM6IHZhbGlkRm9sZGVyc1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnW0RFQlVHXSBDb25zdHJ1Y3RlZCBhY2NvdW50czonLCB1cGRhdGVkQWNjb3VudHMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBGYWxsYmFjayB0byBzaW5nbGUgYWNjb3VudCBpZiBhbGxBY2NvdW50cyBpcyBub3QgYXZhaWxhYmxlXG4gICAgICAgICAgICBjb25zdCBmb2xkZXJMaXN0ID0gKGRhdGEubWFpbGJveGVzICYmIGRhdGEubWFpbGJveGVzLmxlbmd0aCA+IDApID8gXG4gICAgICAgICAgICAgIGRhdGEubWFpbGJveGVzIDogW107XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHVwZGF0ZWRBY2NvdW50cy5wdXNoKHtcbiAgICAgICAgICAgICAgaWQ6ICdkZWZhdWx0LWFjY291bnQnLFxuICAgICAgICAgICAgICBuYW1lOiBkYXRhLmRpc3BsYXlOYW1lIHx8IGRhdGEuZW1haWwsXG4gICAgICAgICAgICAgIGVtYWlsOiBkYXRhLmVtYWlsLFxuICAgICAgICAgICAgICBjb2xvcjogY29sb3JQYWxldHRlWzBdLFxuICAgICAgICAgICAgICBmb2xkZXJzOiBmb2xkZXJMaXN0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgY29uc29sZS5sb2coJ1tERUJVR10gQ29uc3RydWN0ZWQgc2luZ2xlIGZhbGxiYWNrIGFjY291bnQ6JywgdXBkYXRlZEFjY291bnRzWzBdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gVXBkYXRlIGFjY291bnRzIHN0YXRlIHVzaW5nIG91ciByZWR1Y2VyIGFjdGlvbnNcbiAgICAgICAgICAvLyBGaXJzdCwgc2V0IHRoZSBhY2NvdW50c1xuICAgICAgICAgIHNldEVtYWlscyhbXSk7ICAvLyBDbGVhciBhbnkgZXhpc3RpbmcgZW1haWxzIGZpcnN0XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gTG9nIGN1cnJlbnQgc3RhdGUgZm9yIGRlYnVnZ2luZ1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdbREVCVUddIEN1cnJlbnQgc3RhdGUgYmVmb3JlIHNldHRpbmcgYWNjb3VudHM6Jywge1xuICAgICAgICAgICAgYWNjb3VudHM6IGFjY291bnRzPy5sZW5ndGggfHwgMCxcbiAgICAgICAgICAgIHNlbGVjdGVkQWNjb3VudDogc2VsZWN0ZWRBY2NvdW50Py5pZCB8fCAnbm9uZScsXG4gICAgICAgICAgICBjdXJyZW50Rm9sZGVyOiBjdXJyZW50Rm9sZGVyIHx8ICdub25lJ1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIFVzZSBvdXIgcmVkdWNlciBhY3Rpb25zIGluc3RlYWQgb2Ygc2V0U3RhdGVcbiAgICAgICAgICBzZXRBY2NvdW50cyh1cGRhdGVkQWNjb3VudHMpO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIEF1dG8tc2VsZWN0IHRoZSBmaXJzdCBhY2NvdW50IGlmIGF2YWlsYWJsZVxuICAgICAgICAgIGlmICh1cGRhdGVkQWNjb3VudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgZmlyc3RBY2NvdW50ID0gdXBkYXRlZEFjY291bnRzWzBdO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1tERUJVR10gQXV0by1zZWxlY3RpbmcgZmlyc3QgYWNjb3VudDonLCBmaXJzdEFjY291bnQpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBVc2Ugb3VyIG5ldyBzZWxlY3RBY2NvdW50IGZ1bmN0aW9uIHdoaWNoIGhhbmRsZXMgc3RhdGUgYXRvbWljYWxseVxuICAgICAgICAgICAgLy8gQWRkIGEgc2xpZ2h0IGRlbGF5IHRvIGVuc3VyZSB0aGUgYWNjb3VudHMgYXJlIHNldCBmaXJzdFxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbREVCVUddIE5vdyBjYWxsaW5nIHNlbGVjdEFjY291bnQnKTtcbiAgICAgICAgICAgICAgc2VsZWN0QWNjb3VudChmaXJzdEFjY291bnQpO1xuICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gVXNlciBpcyBhdXRoZW50aWNhdGVkIGJ1dCBkb2Vzbid0IGhhdmUgZW1haWwgY3JlZGVudGlhbHNcbiAgICAgICAgICBzZXRTaG93TG9naW5OZWVkZWQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluaXRpYWxpemluZyBzZXNzaW9uOicsIGVycm9yKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChpc01vdW50ZWQpIHtcbiAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgXG4gICAgaWYgKHNlc3Npb24/LnVzZXI/LmlkKSB7XG4gICAgICBpbml0U2Vzc2lvbigpO1xuICAgIH1cbiAgICBcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaXNNb3VudGVkID0gZmFsc2U7XG4gICAgfTtcbiAgfSwgW3Nlc3Npb24/LnVzZXI/LmlkLCBzZXRFbWFpbHMsIHNlbGVjdEFjY291bnRdKTtcbiAgXG4gIC8vIEhlbHBlciB0byBnZXQgZm9sZGVyIGljb25zXG4gIGNvbnN0IGdldEZvbGRlckljb24gPSAoZm9sZGVyOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBmb2xkZXJMb3dlciA9IGZvbGRlci50b0xvd2VyQ2FzZSgpO1xuICAgIFxuICAgIGlmIChmb2xkZXJMb3dlci5pbmNsdWRlcygnaW5ib3gnKSkge1xuICAgICAgcmV0dXJuIDxJbmJveCBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtZ3JheS01MDBcIiAvPjtcbiAgICB9IGVsc2UgaWYgKGZvbGRlckxvd2VyLmluY2x1ZGVzKCdzZW50JykpIHtcbiAgICAgIHJldHVybiA8U2VuZCBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtZ3JheS01MDBcIiAvPjtcbiAgICB9IGVsc2UgaWYgKGZvbGRlckxvd2VyLmluY2x1ZGVzKCd0cmFzaCcpKSB7XG4gICAgICByZXR1cm4gPFRyYXNoIGNsYXNzTmFtZT1cImgtNCB3LTQgdGV4dC1ncmF5LTUwMFwiIC8+O1xuICAgIH0gZWxzZSBpZiAoZm9sZGVyTG93ZXIuaW5jbHVkZXMoJ2FyY2hpdmUnKSkge1xuICAgICAgcmV0dXJuIDxBcmNoaXZlIGNsYXNzTmFtZT1cImgtNCB3LTQgdGV4dC1ncmF5LTUwMFwiIC8+O1xuICAgIH0gZWxzZSBpZiAoZm9sZGVyTG93ZXIuaW5jbHVkZXMoJ2RyYWZ0JykpIHtcbiAgICAgIHJldHVybiA8RWRpdCBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtZ3JheS01MDBcIiAvPjtcbiAgICB9IGVsc2UgaWYgKGZvbGRlckxvd2VyLmluY2x1ZGVzKCdzcGFtJykgfHwgZm9sZGVyTG93ZXIuaW5jbHVkZXMoJ2p1bmsnKSkge1xuICAgICAgcmV0dXJuIDxBbGVydE9jdGFnb24gY2xhc3NOYW1lPVwiaC00IHctNCB0ZXh0LWdyYXktNTAwXCIgLz47XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiA8Rm9sZGVyIGNsYXNzTmFtZT1cImgtNCB3LTQgdGV4dC1ncmF5LTUwMFwiIC8+O1xuICAgIH1cbiAgfTtcbiAgXG4gIC8vIEhlbHBlciB0byBmb3JtYXQgZm9sZGVyIG5hbWVzXG4gIGNvbnN0IGZvcm1hdEZvbGRlck5hbWUgPSAoZm9sZGVyOiBzdHJpbmcpID0+IHtcbiAgICAvLyBFeHRyYWN0IGJhc2UgZm9sZGVyIG5hbWUgaWYgcHJlZml4ZWRcbiAgICBjb25zdCBiYXNlRm9sZGVyTmFtZSA9IGZvbGRlci5pbmNsdWRlcygnOicpID8gZm9sZGVyLnNwbGl0KCc6JylbMV0gOiBmb2xkZXI7XG4gICAgcmV0dXJuIGJhc2VGb2xkZXJOYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgYmFzZUZvbGRlck5hbWUuc2xpY2UoMSkudG9Mb3dlckNhc2UoKTtcbiAgfTtcblxuICAvLyBIYW5kbGUgYWN0aW9ucyAtIHJlcGxhY2Ugd2l0aCB1c2VSZWR1Y2VyLWJhc2VkIGZ1bmN0aW9uc1xuICBjb25zdCBoYW5kbGVNYWlsYm94Q2hhbmdlID0gKGZvbGRlcjogc3RyaW5nLCBhY2NvdW50SWQ/OiBzdHJpbmcpID0+IHtcbiAgICAvLyBTaW1wbHkgY2FsbCBvdXIgbmV3IGNoYW5nZUZvbGRlciBmdW5jdGlvbiB3aGljaCBoYW5kbGVzIGV2ZXJ5dGhpbmcgYXRvbWljYWxseVxuICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgY2hhbmdlRm9sZGVyKGZvbGRlciwgYWNjb3VudElkKVxuICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgIH0pO1xuICB9O1xuXG4gIC8vIEhhbmRsZSBhY2NvdW50IHNlbGVjdGlvbiAtIHJlcGxhY2Ugd2l0aCByZWR1Y2VyLWJhc2VkIGZ1bmN0aW9uXG4gIGNvbnN0IGhhbmRsZUFjY291bnRTZWxlY3QgPSAoYWNjb3VudDogQWNjb3VudCkgPT4ge1xuICAgIC8vIEFkZCBleHRlbnNpdmUgZGVidWdnaW5nIHRvIHRyYWNrIHRoZSBwcm9jZXNzXG4gICAgY29uc29sZS5sb2coJ1tERUJVR10gaGFuZGxlQWNjb3VudFNlbGVjdCBjYWxsZWQgd2l0aCBhY2NvdW50OicsIHtcbiAgICAgIGlkOiBhY2NvdW50LmlkLCBcbiAgICAgIGVtYWlsOiBhY2NvdW50LmVtYWlsLFxuICAgICAgZm9sZGVyczogYWNjb3VudC5mb2xkZXJzPy5sZW5ndGhcbiAgICB9KTtcbiAgICBcbiAgICAvLyBTa2lwIGlmIG5vIHZhbGlkIGFjY291bnQgcHJvdmlkZWRcbiAgICBpZiAoIWFjY291bnQgfHwgIWFjY291bnQuaWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgYWNjb3VudCBwYXNzZWQgdG8gaGFuZGxlQWNjb3VudFNlbGVjdCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICAvLyBTa2lwIGlmIHRoaXMgaXMgYWxyZWFkeSB0aGUgc2VsZWN0ZWQgYWNjb3VudFxuICAgIGlmIChzZWxlY3RlZEFjY291bnQ/LmlkID09PSBhY2NvdW50LmlkKSB7XG4gICAgICBjb25zb2xlLmxvZygnW0RFQlVHXSBBY2NvdW50IGFscmVhZHkgc2VsZWN0ZWQsIHNraXBwaW5nJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIFNpbXBseSBjYWxsIG91ciBuZXcgc2VsZWN0QWNjb3VudCBmdW5jdGlvbiB3aGljaCBoYW5kbGVzIGV2ZXJ5dGhpbmcgYXRvbWljYWxseVxuICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgXG4gICAgLy8gQ2xlYXIgYWxsIGV4aXN0aW5nIHNlbGVjdGlvbnMgZmlyc3RcbiAgICBjb25zb2xlLmxvZygnW0RFQlVHXSBOb3cgc2VsZWN0aW5nIGFjY291bnQgdGhyb3VnaCByZWR1Y2VyIGFjdGlvbicpO1xuICAgIHNlbGVjdEFjY291bnQoYWNjb3VudCk7XG4gICAgXG4gICAgLy8gTG9nIHdoYXQgaGFwcGVuZWRcbiAgICBjb25zb2xlLmxvZygnW0RFQlVHXSBBY2NvdW50IHNlbGVjdGlvbiBjb21wbGV0ZWQnKTtcbiAgICBcbiAgICAvLyBHaXZlIHNvbWUgdGltZSBmb3IgdGhlIFVJIHRvIHVwZGF0ZVxuICAgIHNldFRpbWVvdXQoKCkgPT4gc2V0TG9hZGluZyhmYWxzZSksIDMwMCk7XG4gIH07XG5cbiAgLy8gRW1haWwgYWN0aW9uc1xuICBjb25zdCBoYW5kbGVSZXBseSA9ICgpID0+IHtcbiAgICBpZiAoIXNlbGVjdGVkRW1haWwpIHJldHVybjtcbiAgICBzZXRDb21wb3NlVHlwZSgncmVwbHknKTtcbiAgICBzZXRTaG93Q29tcG9zZU1vZGFsKHRydWUpO1xuICB9O1xuICBcbiAgY29uc3QgaGFuZGxlUmVwbHlBbGwgPSAoKSA9PiB7XG4gICAgaWYgKCFzZWxlY3RlZEVtYWlsKSByZXR1cm47XG4gICAgc2V0Q29tcG9zZVR5cGUoJ3JlcGx5LWFsbCcpO1xuICAgIHNldFNob3dDb21wb3NlTW9kYWwodHJ1ZSk7XG4gIH07XG4gIFxuICBjb25zdCBoYW5kbGVGb3J3YXJkID0gKCkgPT4ge1xuICAgIGlmICghc2VsZWN0ZWRFbWFpbCkgcmV0dXJuO1xuICAgIHNldENvbXBvc2VUeXBlKCdmb3J3YXJkJyk7XG4gICAgc2V0U2hvd0NvbXBvc2VNb2RhbCh0cnVlKTtcbiAgfTtcbiAgXG4gIGNvbnN0IGhhbmRsZUNvbXBvc2VOZXcgPSAoKSA9PiB7XG4gICAgc2V0Q29tcG9zZVR5cGUoJ25ldycpO1xuICAgIHNldFNob3dDb21wb3NlTW9kYWwodHJ1ZSk7XG4gIH07XG5cbiAgLy8gSGFuZGxlIGJ1bGsgYWN0aW9uc1xuICBjb25zdCBoYW5kbGVCdWxrQWN0aW9uID0gYXN5bmMgKGFjdGlvbjogJ2RlbGV0ZScgfCAnbWFyay1yZWFkJyB8ICdtYXJrLXVucmVhZCcgfCAnYXJjaGl2ZScpID0+IHtcbiAgICBpZiAoc2VsZWN0ZWRFbWFpbElkcy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBcbiAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgc2V0U2hvd0RlbGV0ZUNvbmZpcm0odHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgICBcbiAgICAgIGNhc2UgJ21hcmstcmVhZCc6XG4gICAgICAgIC8vIE1hcmsgYWxsIHNlbGVjdGVkIGVtYWlscyBhcyByZWFkXG4gICAgICAgIGZvciAoY29uc3QgZW1haWxJZCBvZiBzZWxlY3RlZEVtYWlsSWRzKSB7XG4gICAgICAgICAgYXdhaXQgbWFya0VtYWlsQXNSZWFkKGVtYWlsSWQsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgICBcbiAgICAgIGNhc2UgJ21hcmstdW5yZWFkJzpcbiAgICAgICAgLy8gTWFyayBhbGwgc2VsZWN0ZWQgZW1haWxzIGFzIHVucmVhZFxuICAgICAgICBmb3IgKGNvbnN0IGVtYWlsSWQgb2Ygc2VsZWN0ZWRFbWFpbElkcykge1xuICAgICAgICAgIGF3YWl0IG1hcmtFbWFpbEFzUmVhZChlbWFpbElkLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICAgIFxuICAgICAgY2FzZSAnYXJjaGl2ZSc6XG4gICAgICAgIC8vIEFyY2hpdmUgZnVuY3Rpb25hbGl0eSB3b3VsZCBiZSBpbXBsZW1lbnRlZCBoZXJlXG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVTZW5kRW1haWwgPSBhc3luYyAoZW1haWxEYXRhOiBFbWFpbERhdGEpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2VuZEVtYWlsKGVtYWlsRGF0YSk7XG4gICAgICBpZiAoIXJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQuZXJyb3IpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUNvbmZpcm0gPSBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgZGVsZXRlRW1haWxzKHNlbGVjdGVkRW1haWxJZHMpO1xuICAgIHNldFNob3dEZWxldGVDb25maXJtKGZhbHNlKTtcbiAgICBcbiAgICAvLyBDbGVhciBzZWxlY3RlZCBlbWFpbHMgYWZ0ZXIgZGVsZXRpb25cbiAgICAvLyBVc2luZyBzZXRFbWFpbHMgd2lsbCByZXNldCB0aGUgc2VsZWN0aW9uIHN0YXRlXG4gICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICBzZXRQYWdlKDEpO1xuICAgIGxvYWRFbWFpbHMoMSwgMjAsIGZhbHNlKS5maW5hbGx5KCgpID0+IHtcbiAgICAgIC8vIFNlbGVjdGlvbiB3aWxsIGJlIGNsZWFyZWQgYnkgbG9hZGluZyBuZXcgZW1haWxzXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICB9KTtcbiAgfTtcbiAgXG4gIGNvbnN0IGhhbmRsZUdvVG9Mb2dpbiA9ICgpID0+IHtcbiAgICByb3V0ZXIucHVzaCgnL2NvdXJyaWVyL2xvZ2luJyk7XG4gIH07XG5cbiAgLy8gVXBkYXRlIHRoZSBhY2NvdW50cyBmcm9tIHN0YXRlIC0gZml4IHR5cGUgaXNzdWVzXG4gIGNvbnN0IHNldEFjY291bnRzID0gKG5ld0FjY291bnRzOiBBY2NvdW50W10pID0+IHtcbiAgICBjb25zb2xlLmxvZygnW0RFQlVHXSBTZXR0aW5nIGFjY291bnRzOicsIG5ld0FjY291bnRzKTtcbiAgICBcbiAgICAvLyBJbiB0aGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb24sIHdlJ2QgZGlzcGF0Y2ggYW4gYWN0aW9uXG4gICAgLy8gQnV0IHNpbmNlIHdlIGRvbid0IGhhdmUgZGlyZWN0IGFjY2VzcyB0byB0aGUgcmVkdWNlcidzIGRpc3BhdGNoIGZ1bmN0aW9uLFxuICAgIC8vIHdlIG5lZWQgdG8gdXNlIHRoZSBleHBvcnRlZCBhY3Rpb25zIGZyb20gb3VyIGhvb2tcbiAgICBcbiAgICAvLyBUaGlzIGRpc3BhdGNoIGZ1bmN0aW9uIHNob3VsZCBiZSBtYWRlIGF2YWlsYWJsZSBieSBvdXIgaG9va1xuICAgIGNvbnN0IHdpbmRvd1dpdGhEaXNwYXRjaCA9IHdpbmRvdyBhcyBhbnk7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3dXaXRoRGlzcGF0Y2guZGlzcGF0Y2hFbWFpbEFjdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gVXNlIHRoZSBnbG9iYWwgZGlzcGF0Y2ggZnVuY3Rpb24gaWYgYXZhaWxhYmxlXG4gICAgICB3aW5kb3dXaXRoRGlzcGF0Y2guZGlzcGF0Y2hFbWFpbEFjdGlvbih7IFxuICAgICAgICB0eXBlOiAnU0VUX0FDQ09VTlRTJywgXG4gICAgICAgIHBheWxvYWQ6IG5ld0FjY291bnRzIFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Nhbm5vdCBkaXNwYXRjaCBTRVRfQUNDT1VOVFMgYWN0aW9uIC0gbm8gZGlzcGF0Y2ggZnVuY3Rpb24gYXZhaWxhYmxlJyk7XG4gICAgICBcbiAgICAgIC8vIEZhbGxiYWNrOiBUcnkgdG8gZGlyZWN0bHkgbW9kaWZ5IHRoZSBhY2NvdW50cyBhcnJheSBpZiB3ZSBoYXZlIGFjY2Vzc1xuICAgICAgLy8gVGhpcyBpc24ndCBpZGVhbCBidXQgZW5zdXJlcyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGR1cmluZyB0cmFuc2l0aW9uXG4gICAgICBjb25zb2xlLmxvZygnW0RFQlVHXSBVc2luZyBmYWxsYmFjayBtZXRob2QgdG8gdXBkYXRlIGFjY291bnRzJyk7XG4gICAgICBcbiAgICAgIC8vIE91ciByZWR1Y2VyIHNob3VsZCBleHBvc2UgdGhpcyBhY3Rpb25cbiAgICAgIGNvbnN0IHVzZUVtYWlsU3RhdGVEaXNwYXRjaCA9IHdpbmRvd1dpdGhEaXNwYXRjaC5fX2VtYWlsU3RhdGVEaXNwYXRjaDtcbiAgICAgIGlmICh0eXBlb2YgdXNlRW1haWxTdGF0ZURpc3BhdGNoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHVzZUVtYWlsU3RhdGVEaXNwYXRjaCh7IFxuICAgICAgICAgIHR5cGU6ICdTRVRfQUNDT1VOVFMnLCBcbiAgICAgICAgICBwYXlsb2FkOiBuZXdBY2NvdW50cyBcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdObyBmYWxsYmFjayBkaXNwYXRjaCBtZXRob2QgYXZhaWxhYmxlIGVpdGhlcicpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8U2ltcGxpZmllZExvYWRpbmdGaXggLz5cbiAgICAgIFxuICAgICAgey8qIE1haW4gbGF5b3V0ICovfVxuICAgICAgPG1haW4gY2xhc3NOYW1lPVwidy1mdWxsIGgtc2NyZWVuIGJnLWJsYWNrXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy1mdWxsIGgtZnVsbCBweC00IHB0LTEyIHBiLTRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaC1mdWxsIGJnLWNhcm5ldC1iZ1wiPlxuICAgICAgICAgICAgey8qIFVzZSBFbWFpbFNpZGViYXIgY29tcG9uZW50IGluc3RlYWQgb2YgaW5saW5lIHNpZGViYXIgKi99XG4gICAgICAgICAgICA8RW1haWxTaWRlYmFyXG4gICAgICAgICAgICAgIGFjY291bnRzPXthY2NvdW50c31cbiAgICAgICAgICAgICAgc2VsZWN0ZWRBY2NvdW50PXtzZWxlY3RlZEFjY291bnR9XG4gICAgICAgICAgICAgIHNlbGVjdGVkRm9sZGVycz17c2VsZWN0ZWRGb2xkZXJzfVxuICAgICAgICAgICAgICBjdXJyZW50Rm9sZGVyPXtjdXJyZW50Rm9sZGVyfVxuICAgICAgICAgICAgICBsb2FkaW5nPXtsb2FkaW5nIHx8IGlzTG9hZGluZ31cbiAgICAgICAgICAgICAgdW5yZWFkQ291bnQ9e3VucmVhZENvdW50TWFwfVxuICAgICAgICAgICAgICBzaG93QWRkQWNjb3VudEZvcm09e3Nob3dBZGRBY2NvdW50Rm9ybX1cbiAgICAgICAgICAgICAgb25Gb2xkZXJDaGFuZ2U9e2hhbmRsZU1haWxib3hDaGFuZ2V9XG4gICAgICAgICAgICAgIG9uUmVmcmVzaD17KCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICAgICAgc2V0UGFnZSgxKTtcbiAgICAgICAgICAgICAgICBsb2FkRW1haWxzKHBhZ2UsIDEwLCBmYWxzZSkuZmluYWxseSgoKSA9PiBzZXRMb2FkaW5nKGZhbHNlKSk7XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIG9uQ29tcG9zZU5ldz17aGFuZGxlQ29tcG9zZU5ld31cbiAgICAgICAgICAgICAgb25BY2NvdW50U2VsZWN0PXtoYW5kbGVBY2NvdW50U2VsZWN0fVxuICAgICAgICAgICAgICBvblNob3dBZGRBY2NvdW50Rm9ybT17c2V0U2hvd0FkZEFjY291bnRGb3JtfVxuICAgICAgICAgICAgICBvbkFkZEFjY291bnQ9e2FzeW5jIChmb3JtRGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1tERUJVR10gQWRkIGFjY291bnQgZm9ybSBzdWJtaXNzaW9uOicsIGZvcm1EYXRhKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvLyBQdWxsIHZhbHVlcyBmcm9tIGZvcm0gd2l0aCBwcm9wZXIgdHlwZSBoYW5kbGluZ1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSB7XG4gICAgICAgICAgICAgICAgICBlbWFpbDogZm9ybURhdGEuZ2V0KCdlbWFpbCcpPy50b1N0cmluZygpIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ6IGZvcm1EYXRhLmdldCgncGFzc3dvcmQnKT8udG9TdHJpbmcoKSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgIGhvc3Q6IGZvcm1EYXRhLmdldCgnaG9zdCcpPy50b1N0cmluZygpIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgcG9ydDogcGFyc2VJbnQoZm9ybURhdGEuZ2V0KCdwb3J0Jyk/LnRvU3RyaW5nKCkgfHwgJzk5MycpLFxuICAgICAgICAgICAgICAgICAgc2VjdXJlOiBmb3JtRGF0YS5nZXQoJ3NlY3VyZScpID09PSAnb24nLFxuICAgICAgICAgICAgICAgICAgZGlzcGxheV9uYW1lOiBmb3JtRGF0YS5nZXQoJ2Rpc3BsYXlfbmFtZScpPy50b1N0cmluZygpIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgc210cF9ob3N0OiBmb3JtRGF0YS5nZXQoJ3NtdHBfaG9zdCcpPy50b1N0cmluZygpIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgc210cF9wb3J0OiBmb3JtRGF0YS5nZXQoJ3NtdHBfcG9ydCcpPy50b1N0cmluZygpID8gXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KGZvcm1EYXRhLmdldCgnc210cF9wb3J0Jyk/LnRvU3RyaW5nKCkgfHwgJzU4NycpIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgc210cF9zZWN1cmU6IGZvcm1EYXRhLmdldCgnc210cF9zZWN1cmUnKSA9PT0gJ29uJ1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgLy8gSWYgZGlzcGxheV9uYW1lIGlzIGVtcHR5LCB1c2UgZW1haWxcbiAgICAgICAgICAgICAgICBpZiAoIWZvcm1WYWx1ZXMuZGlzcGxheV9uYW1lKSB7XG4gICAgICAgICAgICAgICAgICBmb3JtVmFsdWVzLmRpc3BsYXlfbmFtZSA9IGZvcm1WYWx1ZXMuZW1haWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAvLyBGaXJzdCB0ZXN0IHRoZSBjb25uZWN0aW9uXG4gICAgICAgICAgICAgICAgICBjb25zdCB0ZXN0UmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL2FwaS9jb3Vycmllci90ZXN0LWNvbm5lY3Rpb24nLCB7XG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgZW1haWw6IGZvcm1WYWx1ZXMuZW1haWwsXG4gICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ6IGZvcm1WYWx1ZXMucGFzc3dvcmQsXG4gICAgICAgICAgICAgICAgICAgICAgaG9zdDogZm9ybVZhbHVlcy5ob3N0LFxuICAgICAgICAgICAgICAgICAgICAgIHBvcnQ6IGZvcm1WYWx1ZXMucG9ydCxcbiAgICAgICAgICAgICAgICAgICAgICBzZWN1cmU6IGZvcm1WYWx1ZXMuc2VjdXJlXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgY29uc3QgdGVzdFJlc3VsdCA9IGF3YWl0IHRlc3RSZXNwb25zZS5qc29uKCk7XG4gICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcih0ZXN0UmVzdWx0LmVycm9yIHx8ICdDb25uZWN0aW9uIHRlc3QgZmFpbGVkJyk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDb25uZWN0aW9uIHRlc3Qgc3VjY2Vzc2Z1bDonLCB0ZXN0UmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgLy8gT25seSBkZWNsYXJlIHJlYWxBY2NvdW50cyBvbmNlIGJlZm9yZSB1c2luZyBmb3IgY29sb3IgYXNzaWdubWVudFxuICAgICAgICAgICAgICAgICAgY29uc3QgcmVhbEFjY291bnRzID0gYWNjb3VudHMuZmlsdGVyKGEgPT4gYS5pZCAhPT0gJ2xvYWRpbmctYWNjb3VudCcpO1xuICAgICAgICAgICAgICAgICAgY29uc3Qgc2F2ZVJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy9hcGkvY291cnJpZXIvYWNjb3VudCcsIHtcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGZvcm1WYWx1ZXMpXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHNhdmVSZXN1bHQgPSBhd2FpdCBzYXZlUmVzcG9uc2UuanNvbigpO1xuICAgICAgICAgICAgICAgICAgaWYgKCFzYXZlUmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHNhdmVSZXN1bHQuZXJyb3IgfHwgJ0ZhaWxlZCB0byBhZGQgYWNjb3VudCcpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY29uc3QgcmVhbEFjY291bnQgPSBzYXZlUmVzdWx0LmFjY291bnQ7XG4gICAgICAgICAgICAgICAgICByZWFsQWNjb3VudC5jb2xvciA9IGNvbG9yUGFsZXR0ZVtyZWFsQWNjb3VudHMubGVuZ3RoICUgY29sb3JQYWxldHRlLmxlbmd0aF07XG4gICAgICAgICAgICAgICAgICByZWFsQWNjb3VudC5mb2xkZXJzID0gdGVzdFJlc3VsdC5kZXRhaWxzLnNhbXBsZUZvbGRlcnMgfHwgWydJTkJPWCcsICdTZW50JywgJ0RyYWZ0cycsICdUcmFzaCddO1xuICAgICAgICAgICAgICAgICAgc2V0QWNjb3VudHMoWy4uLmFjY291bnRzLCByZWFsQWNjb3VudF0pO1xuICAgICAgICAgICAgICAgICAgc2V0U2hvd0FkZEFjY291bnRGb3JtKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgIHRvYXN0KHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiQWNjb3VudCBhZGRlZCBzdWNjZXNzZnVsbHlcIixcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBZb3VyIGVtYWlsIGFjY291bnQgJHtmb3JtVmFsdWVzLmVtYWlsfSBoYXMgYmVlbiBhZGRlZC5gLFxuICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogNTAwMFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGFkZGluZyBhY2NvdW50OicsIGVycm9yKTtcbiAgICAgICAgICAgICAgICAgIHRvYXN0KHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiRmFpbGVkIHRvIGFkZCBhY2NvdW50XCIsXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudDogXCJkZXN0cnVjdGl2ZVwiLFxuICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogNTAwMFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgb25FZGl0QWNjb3VudD17YXN5bmMgKGFjY291bnQpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgLy8gR2V0IHRoZSBsYXRlc3QgYWNjb3VudCBkYXRhIGZyb20gYWNjb3VudHMgYXJyYXlcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRBY2NvdW50ID0gYWNjb3VudHMuZmluZChhID0+IGEuaWQgPT09IGFjY291bnQuaWQpO1xuICAgICAgICAgICAgICAgICAgaWYgKHVwZGF0ZWRBY2NvdW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHNldEFjY291bnRUb0VkaXQodXBkYXRlZEFjY291bnQgYXMgYW55KTtcbiAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRDb2xvcih1cGRhdGVkQWNjb3VudC5jb2xvciB8fCAnJyk7XG4gICAgICAgICAgICAgICAgICAgIHNldFNob3dFZGl0TW9kYWwodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0b2FzdCh7XG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiRXJyb3JcIixcbiAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJDb3VsZCBub3QgZmluZCBhY2NvdW50IGRhdGFcIixcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50OiBcImRlc3RydWN0aXZlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDMwMDBcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciBwcmVwYXJpbmcgYWNjb3VudCBlZGl0OlwiLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgICB0b2FzdCh7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIkVycm9yXCIsXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkZhaWxlZCB0byBsb2FkIGFjY291bnQgc2V0dGluZ3NcIixcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudDogXCJkZXN0cnVjdGl2ZVwiLFxuICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMzAwMFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBvbkRlbGV0ZUFjY291bnQ9eyhhY2NvdW50KSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0QWNjb3VudFRvRGVsZXRlKGFjY291bnQgYXMgYW55KTsgXG4gICAgICAgICAgICAgICAgc2V0U2hvd0RlbGV0ZURpYWxvZyh0cnVlKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgb25TZWxlY3RFbWFpbD17KGVtYWlsSWQsIGFjY291bnRJZCwgZm9sZGVyKSA9PiB7IFxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZW1haWxJZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgIGhhbmRsZUVtYWlsU2VsZWN0KGVtYWlsSWQsIGFjY291bnRJZCB8fCAnJywgZm9sZGVyIHx8IGN1cnJlbnRGb2xkZXIpOyBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIHsuLi4oe30gYXMgYW55KX1cbiAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgIHsvKiBQYW5lbCAyOiBFbWFpbCBMaXN0IC0gQWx3YXlzIHZpc2libGUgKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctODAgZmxleCBmbGV4LWNvbCBib3JkZXItciBib3JkZXItZ3JheS0xMDAgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgICAgICAgIHsvKiBIZWFkZXIgd2l0aG91dCBzZWFyY2ggYmFyIG9yIHByb2ZpbGUgKi99XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC0yIGJvcmRlci1iIGJvcmRlci1ncmF5LTEwMCBiZy13aGl0ZSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICA8QnV0dG9uIFxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCIgXG4gICAgICAgICAgICAgICAgICBzaXplPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtZDpoaWRkZW4gaC05IHctOVwiXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRNb2JpbGVTaWRlYmFyT3BlbighbW9iaWxlU2lkZWJhck9wZW4pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxNZW51IGNsYXNzTmFtZT1cImgtNSB3LTUgdGV4dC1ncmF5LTUwMFwiIC8+XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAge2dldEZvbGRlckljb24oY3VycmVudEZvbGRlcil9XG4gICAgICAgICAgICAgICAgICAgIHsvKiBFeHRyYWN0IGJhc2UgZm9sZGVyIGFuZCBzaG93IGVtYWlsIGFzIHByZWZpeCAqL31cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibWwtMiBmb250LW1lZGl1bSB0ZXh0LWdyYXktNzAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3NlbGVjdGVkQWNjb3VudD8uZW1haWwgPyBgJHtzZWxlY3RlZEFjY291bnQuZW1haWx9OiBgIDogJyd9XG4gICAgICAgICAgICAgICAgICAgICAge2Zvcm1hdEZvbGRlck5hbWUoY3VycmVudEZvbGRlci5pbmNsdWRlcygnOicpID8gY3VycmVudEZvbGRlci5zcGxpdCgnOicpWzFdIDogY3VycmVudEZvbGRlcil9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHsvKiBCdXR0b25zIHJlbW92ZWQgZnJvbSBoZXJlIHRvIGF2b2lkIGR1cGxpY2F0aW9uIHdpdGggdGhlIEJ1bGtBY3Rpb25zVG9vbGJhciAqL31cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICB7LyogRW1haWwgTGlzdCAtIEFsd2F5cyB2aXNpYmxlICovfVxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMSBvdmVyZmxvdy1oaWRkZW4gYmctd2hpdGVcIj5cbiAgICAgICAgICAgICAgICB7aXNMb2FkaW5nID8gKFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxMb2FkZXIyIGNsYXNzTmFtZT1cImgtOCB3LTggdGV4dC1ibHVlLTUwMCBhbmltYXRlLXNwaW4gbWItMlwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNTAwXCI+TG9hZGluZyBlbWFpbHMuLi48L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKSA6IGVycm9yID8gKFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy1tZCBwLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8QWxlcnQgdmFyaWFudD1cImRlc3RydWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8QWxlcnRDaXJjbGUgY2xhc3NOYW1lPVwiaC00IHctNFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8QWxlcnRUaXRsZT5FcnJvcjwvQWxlcnRUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxBbGVydERlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7ZXJyb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0FsZXJ0RGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9BbGVydD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoLWZ1bGwgb3ZlcmZsb3ctaGlkZGVuIGZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgey8qIEVtYWlsIExpc3QgKi99XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleC0xIG92ZXJmbG93LXktYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgb25TY3JvbGw9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBlLmN1cnJlbnRUYXJnZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgfSA9IHRhcmdldDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlVG9Cb3R0b20gPSBzY3JvbGxIZWlnaHQgLSBzY3JvbGxUb3AgLSBjbGllbnRIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzY3JvbGxQZXJjZW50YWdlID0gKHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCkgLyBzY3JvbGxIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN0b3JlIGxhc3Qgc2Nyb2xsIHBvc2l0aW9uIHRvIGRldGVjdCBkaXJlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RTY3JvbGxUb3AgPSB0YXJnZXQuZGF0YXNldC5sYXN0U2Nyb2xsVG9wID8gXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KHRhcmdldC5kYXRhc2V0Lmxhc3RTY3JvbGxUb3ApIDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNjcm9sbGluZ0Rvd24gPSBzY3JvbGxUb3AgPiBsYXN0U2Nyb2xsVG9wO1xuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgbGFzdCBzY3JvbGwgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5kYXRhc2V0Lmxhc3RTY3JvbGxUb3AgPSBzY3JvbGxUb3AudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUHJldmVudCBmcmVxdWVudCBsb2cgc3BhbSB3aXRoIGEgdGltZXN0YW1wIGNoZWNrXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdExvZyA9IHBhcnNlSW50KHRhcmdldC5kYXRhc2V0Lmxhc3RMb2dUaW1lIHx8ICcwJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobm93IC0gbGFzdExvZyA+IDUwMCkgeyAvLyBMb2cgYXQgbW9zdCBldmVyeSA1MDBtc1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLVdSQVBQRVItU0NST0xMXSBEaXN0YW5jZTogJHtkaXN0YW5jZVRvQm90dG9tfXB4LCAlOiAke01hdGgucm91bmQoc2Nyb2xsUGVyY2VudGFnZSAqIDEwMCl9JSwgZGlyZWN0aW9uOiAke3Njcm9sbGluZ0Rvd24gPyAnZG93bicgOiAndXAnfSwgbW9yZTogJHtwYWdlIDwgdG90YWxQYWdlc30sIGxvYWRpbmc6ICR7aXNMb2FkaW5nfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQuZGF0YXNldC5sYXN0TG9nVGltZSA9IG5vdy50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayB0aHJvdHRsZSB0byBwcmV2ZW50IG11bHRpcGxlIHJhcGlkIHRyaWdnZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXN0VHJpZ2dlciA9IHBhcnNlSW50KHRhcmdldC5kYXRhc2V0Lmxhc3RUcmlnZ2VyVGltZSB8fCAnMCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhyb3R0bGVUaW1lID0gMTAwMDsgLy8gMSBzZWNvbmQgdGhyb3R0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ1JJVElDQUwgRklYOiBPbmx5IHRyaWdnZXIgbG9hZGluZyBtb3JlIGVtYWlscyB3aGVuOlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gMS4gVXNlciBpcyBzY3JvbGxpbmcgRE9XTiAobm90IHVwKVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gMi4gVXNlciBpcyBFWEFDVExZIGF0IHRoZSBib3R0b20gKGRpc3RhbmNlIDwgNXB4KVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gMy4gTm90IGN1cnJlbnRseSBsb2FkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyA0LiBNb3JlIGVtYWlscyBleGlzdCB0byBsb2FkXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyA1LiBOb3QgdGhyb3R0bGVkIChoYXNuJ3QgdHJpZ2dlcmVkIGluIGxhc3Qgc2Vjb25kKVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNjcm9sbGluZ0Rvd24gJiYgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdGFuY2VUb0JvdHRvbSA8IDUgJiYgLy8gTXVjaCBzdHJpY3RlciAtIHRydWx5IGF0IGJvdHRvbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFpc0xvYWRpbmcgJiYgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZSA8IHRvdGFsUGFnZXMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3cgLSBsYXN0VHJpZ2dlciA+IHRocm90dGxlVGltZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLVdSQVBQRVItVFJJR0dFUl0gKioqIEFUIEJPVFRPTSAqKiogTG9hZGluZyBtb3JlIGVtYWlsc2ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQuZGF0YXNldC5sYXN0VHJpZ2dlclRpbWUgPSBub3cudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlTG9hZE1vcmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge2VtYWlscy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyIHAtNlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmJveCBjbGFzc05hbWU9XCJoLTEyIHctMTIgdGV4dC1ncmF5LTMwMCBteC1hdXRvIG1iLTRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDBcIj5ObyBlbWFpbHMgZm91bmQ8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTUwMCBtdC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoUXVlcnkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYE5vIHJlc3VsdHMgZm91bmQgZm9yIFwiJHtzZWFyY2hRdWVyeX1cImBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBgWW91ciAke2N1cnJlbnRGb2xkZXIudG9Mb3dlckNhc2UoKX0gaXMgZW1wdHlgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgPEVtYWlsTGlzdCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZW1haWxzPXtlbWFpbHN9IFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEVtYWlsSWRzPXtzZWxlY3RlZEVtYWlsSWRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEVtYWlsPXtzZWxlY3RlZEVtYWlsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblNlbGVjdEVtYWlsPXsoZW1haWxJZCwgZW1haWxBY2NvdW50SWQsIGVtYWlsRm9sZGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWx3YXlzIHVzZSB0aGUgZW1haWwncyBvd24gYWNjb3VudElkIGFuZCBmb2xkZXIgaWYgYXZhaWxhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlRW1haWxTZWxlY3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWFpbElkLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsQWNjb3VudElkIHx8IHNlbGVjdGVkQWNjb3VudD8uaWQgfHwgJycsIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1haWxGb2xkZXIgfHwgY3VycmVudEZvbGRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVG9nZ2xlU2VsZWN0PXt0b2dnbGVFbWFpbFNlbGVjdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25Ub2dnbGVTZWxlY3RBbGw9e3RvZ2dsZVNlbGVjdEFsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25Ub2dnbGVTdGFycmVkPXt0b2dnbGVTdGFycmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkxvYWRNb3JlPXtoYW5kbGVMb2FkTW9yZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzTW9yZUVtYWlscz17cGFnZSA8IHRvdGFsUGFnZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGb2xkZXI9e2N1cnJlbnRGb2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbEVtYWlscz17ZW1haWxzLmxlbmd0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25CdWxrQWN0aW9uPXtoYW5kbGVCdWxrQWN0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIHsvKiBQYW5lbCAzOiBFbWFpbCBEZXRhaWwgLSBBbHdheXMgdmlzaWJsZSAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIGZsZXggZmxleC1jb2wgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgICAgICAgIHsvKiBDb250ZW50IGZvciBQYW5lbCAzIGJhc2VkIG9uIHN0YXRlIGJ1dCBhbHdheXMgdmlzaWJsZSAqL31cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgb3ZlcmZsb3ctaGlkZGVuIGJnLXdoaXRlXCI+XG4gICAgICAgICAgICAgICAge3NlbGVjdGVkRW1haWwgPyAoXG4gICAgICAgICAgICAgICAgICA8RW1haWxEZXRhaWxWaWV3IFxuICAgICAgICAgICAgICAgICAgICBlbWFpbD17c2VsZWN0ZWRFbWFpbCBhcyBhbnl9XG4gICAgICAgICAgICAgICAgICAgIG9uQmFjaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUVtYWlsU2VsZWN0KCcnLCAnJywgJycpO1xuICAgICAgICAgICAgICAgICAgICAgIC8vIEVuc3VyZSBzaWRlYmFyIHN0YXlzIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICBzZXRTaWRlYmFyT3Blbih0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgb25SZXBseT17aGFuZGxlUmVwbHl9XG4gICAgICAgICAgICAgICAgICAgIG9uUmVwbHlBbGw9e2hhbmRsZVJlcGx5QWxsfVxuICAgICAgICAgICAgICAgICAgICBvbkZvcndhcmQ9e2hhbmRsZUZvcndhcmR9XG4gICAgICAgICAgICAgICAgICAgIG9uVG9nZ2xlU3Rhcj17KCkgPT4gdG9nZ2xlU3RhcnJlZChzZWxlY3RlZEVtYWlsLmlkKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXIgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHA+U2VsZWN0IGFuIGVtYWlsIHRvIHZpZXcgb3I8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtcHJpbWFyeSBtdC0yIGhvdmVyOnVuZGVybGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbXBvc2VUeXBlKCduZXcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2hvd0NvbXBvc2VNb2RhbCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQ29tcG9zZSBhIG5ldyBtZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21haW4+XG5cbiAgICAgIHsvKiBNb2RhbHMgYW5kIERpYWxvZ3MgKi99XG4gICAgICA8RGVsZXRlQ29uZmlybURpYWxvZyBcbiAgICAgICAgc2hvdz17c2hvd0RlbGV0ZUNvbmZpcm19XG4gICAgICAgIHNlbGVjdGVkQ291bnQ9e3NlbGVjdGVkRW1haWxJZHMubGVuZ3RofVxuICAgICAgICBvbkNvbmZpcm09e2hhbmRsZURlbGV0ZUNvbmZpcm19XG4gICAgICAgIG9uQ2FuY2VsPXsoKSA9PiBzZXRTaG93RGVsZXRlQ29uZmlybShmYWxzZSl9XG4gICAgICAvPlxuXG4gICAgICB7LyogQ29tcG9zZSBFbWFpbCBEaWFsb2cgKi99XG4gICAgICA8RGlhbG9nIG9wZW49e3Nob3dDb21wb3NlTW9kYWx9IG9uT3BlbkNoYW5nZT17KG9wZW4pID0+ICFvcGVuICYmIHNldFNob3dDb21wb3NlTW9kYWwoZmFsc2UpfT5cbiAgICAgICAgPERpYWxvZ0NvbnRlbnQgY2xhc3NOYW1lPVwic206bWF4LXctWzgwMHB4XSBwLTAgaC1bODB2aF1cIj5cbiAgICAgICAgICA8RGlhbG9nVGl0bGUgYXNDaGlsZD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInNyLW9ubHlcIj5OZXcgTWVzc2FnZTwvc3Bhbj5cbiAgICAgICAgICA8L0RpYWxvZ1RpdGxlPlxuICAgICAgICAgIDxDb21wb3NlRW1haWwgXG4gICAgICAgICAgICB0eXBlPXtjb21wb3NlVHlwZX1cbiAgICAgICAgICAgIGluaXRpYWxFbWFpbD17Y29tcG9zZVR5cGUgIT09ICduZXcnID8gKHNlbGVjdGVkRW1haWwgYXMgYW55KSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIG9uU2VuZD17YXN5bmMgKGVtYWlsRGF0YSkgPT4ge1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNlbmRFbWFpbChlbWFpbERhdGEpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzZW5kaW5nIGVtYWlsOicsIGVycm9yKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHNldFNob3dDb21wb3NlTW9kYWwoZmFsc2UpfVxuICAgICAgICAgICAgYWNjb3VudHM9e2FjY291bnRzfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvRGlhbG9nQ29udGVudD5cbiAgICAgIDwvRGlhbG9nPlxuXG4gICAgICB7LyogRWRpdCBQYXNzd29yZCBNb2RhbCAqL31cbiAgICAgIDxEaWFsb2cgb3Blbj17c2hvd0VkaXRNb2RhbH0gb25PcGVuQ2hhbmdlPXtvcGVuID0+IHsgXG4gICAgICAgIGlmICghb3Blbikge1xuICAgICAgICAgIHNldFNob3dFZGl0TW9kYWwoZmFsc2UpO1xuICAgICAgICAgIHNldEVkaXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICBzZXRBY2NvdW50VG9FZGl0KG51bGwpO1xuICAgICAgICAgIHNldE5ld1Bhc3N3b3JkKCcnKTtcbiAgICAgICAgICBzZXRTZWxlY3RlZENvbG9yKCcnKTtcbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgIH1cbiAgICAgIH19PlxuICAgICAgICA8RGlhbG9nQ29udGVudCBjbGFzc05hbWU9XCJzbTptYXgtdy1bNTAwcHhdIGJnLXdoaXRlIHRleHQtZ3JheS04MDBcIj5cbiAgICAgICAgICA8RGlhbG9nVGl0bGUgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTgwMFwiPkVkaXQgQWNjb3VudCBTZXR0aW5nczwvRGlhbG9nVGl0bGU+XG4gICAgICAgICAgPGZvcm0gb25TdWJtaXQ9e2FzeW5jIGUgPT4ge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKCFhY2NvdW50VG9FZGl0KSByZXR1cm47XG4gICAgICAgICAgICBzZXRFZGl0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZvcm1FbGVtZW50ID0gZS50YXJnZXQgYXMgSFRNTEZvcm1FbGVtZW50O1xuICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IChmb3JtRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcjZGlzcGxheS1uYW1lJykgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gc2VsZWN0ZWRDb2xvcjtcbiAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgIC8vIElmIHBhc3N3b3JkIGlzIGNoYW5nZWQsIHRlc3QgdGhlIGNvbm5lY3Rpb24gZmlyc3RcbiAgICAgICAgICAgICAgaWYgKG5ld1Bhc3N3b3JkKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgIC8vIEZpcnN0IGdldCB0aGUgYWNjb3VudCdzIGNvbm5lY3Rpb24gZGV0YWlsc1xuICAgICAgICAgICAgICAgICAgY29uc3QgYWNjb3VudERldGFpbHNSZXMgPSBhd2FpdCBmZXRjaChgL2FwaS9jb3Vycmllci9hY2NvdW50LWRldGFpbHM/YWNjb3VudElkPSR7YWNjb3VudFRvRWRpdC5pZH1gKTtcbiAgICAgICAgICAgICAgICAgIGlmICghYWNjb3VudERldGFpbHNSZXMub2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggYWNjb3VudCBjb25uZWN0aW9uIGRldGFpbHMnKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGNvbnN0IGFjY291bnREZXRhaWxzID0gYXdhaXQgYWNjb3VudERldGFpbHNSZXMuanNvbigpO1xuICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAvLyBUZXN0IGNvbm5lY3Rpb24gd2l0aCBuZXcgcGFzc3dvcmQgYmVmb3JlIHNhdmluZ1xuICAgICAgICAgICAgICAgICAgY29uc3QgdGVzdFJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy9hcGkvY291cnJpZXIvdGVzdC1jb25uZWN0aW9uJywge1xuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgIGVtYWlsOiBhY2NvdW50VG9FZGl0LmVtYWlsLFxuICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkOiBuZXdQYXNzd29yZCxcbiAgICAgICAgICAgICAgICAgICAgICAvLyBVc2UgdGhlIGFjY291bnQncyBjb25uZWN0aW9uIGRldGFpbHMgZnJvbSB0aGUgQVBJXG4gICAgICAgICAgICAgICAgICAgICAgaG9zdDogYWNjb3VudERldGFpbHMuaG9zdCxcbiAgICAgICAgICAgICAgICAgICAgICBwb3J0OiBhY2NvdW50RGV0YWlscy5wb3J0IHx8IDk5MyxcbiAgICAgICAgICAgICAgICAgICAgICBzZWN1cmU6IGFjY291bnREZXRhaWxzLnNlY3VyZSB8fCB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgY29uc3QgdGVzdFJlc3VsdCA9IGF3YWl0IHRlc3RSZXNwb25zZS5qc29uKCk7XG4gICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcih0ZXN0UmVzdWx0LmVycm9yIHx8ICdDb25uZWN0aW9uIHRlc3QgZmFpbGVkIHdpdGggbmV3IHBhc3N3b3JkJyk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDb25uZWN0aW9uIHRlc3Qgc3VjY2Vzc2Z1bCB3aXRoIG5ldyBwYXNzd29yZCcpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciB0ZXN0aW5nIGNvbm5lY3Rpb246JywgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXNzd29yZCB0ZXN0IGZhaWxlZDogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJ31gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgIC8vIENvbnRpbnVlIHdpdGggdGhlIHVwZGF0ZSBpZiB0ZXN0IHBhc3NlZCBvciBubyBwYXNzd29yZCBjaGFuZ2VcbiAgICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goJy9hcGkvY291cnJpZXIvYWNjb3VudCcsIHtcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBcbiAgICAgICAgICAgICAgICAgIGFjY291bnRJZDogYWNjb3VudFRvRWRpdC5pZCwgXG4gICAgICAgICAgICAgICAgICBuZXdQYXNzd29yZDogbmV3UGFzc3dvcmQgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgZGlzcGxheV9uYW1lOiBkaXNwbGF5TmFtZSxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvclxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlcy5qc29uKCk7XG4gICAgICAgICAgICAgIGlmICghcmVzLm9rKSB0aHJvdyBuZXcgRXJyb3IoZGF0YS5lcnJvciB8fCAnRmFpbGVkIHRvIHVwZGF0ZSBhY2NvdW50IHNldHRpbmdzJyk7XG4gICAgICAgICAgICAgIHRvYXN0KHsgdGl0bGU6ICdBY2NvdW50IHVwZGF0ZWQnLCBkZXNjcmlwdGlvbjogJ0FjY291bnQgc2V0dGluZ3MgdXBkYXRlZCBzdWNjZXNzZnVsbHkuJyB9KTtcbiAgICAgICAgICAgICAgc2V0U2hvd0VkaXRNb2RhbChmYWxzZSk7XG4gICAgICAgICAgICAgIHNldE5ld1Bhc3N3b3JkKCcnKTtcbiAgICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBsb2NhbCBhY2NvdW50IGRhdGFcbiAgICAgICAgICAgICAgc2V0QWNjb3VudHMoYWNjb3VudHMubWFwKGFjY291bnQgPT4gXG4gICAgICAgICAgICAgICAgYWNjb3VudC5pZCA9PT0gYWNjb3VudFRvRWRpdC5pZCBcbiAgICAgICAgICAgICAgICAgID8gey4uLmFjY291bnQsIG5hbWU6IGRpc3BsYXlOYW1lLCBjb2xvcjogY29sb3J9IFxuICAgICAgICAgICAgICAgICAgOiBhY2NvdW50XG4gICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICAvLyBDbGVhciBhY2NvdW50VG9FZGl0IHRvIGVuc3VyZSBmcmVzaCBkYXRhIG9uIG5leHQgZWRpdFxuICAgICAgICAgICAgICBzZXRBY2NvdW50VG9FZGl0KG51bGwpO1xuICAgICAgICAgICAgICAvLyBGb3JjZSBhIHBhZ2UgcmVmcmVzaCB0byByZXNldCBhbGwgVUkgc3RhdGVzXG4gICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICB0b2FzdCh7IHRpdGxlOiAnRXJyb3InLCBkZXNjcmlwdGlvbjogZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdGYWlsZWQgdG8gdXBkYXRlIGFjY291bnQgc2V0dGluZ3MnLCB2YXJpYW50OiAnZGVzdHJ1Y3RpdmUnIH0pO1xuICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgc2V0RWRpdExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH19PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi00XCI+XG4gICAgICAgICAgICAgIDxMYWJlbCBodG1sRm9yPVwiZGlzcGxheS1uYW1lXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTgwMFwiPkFjY291bnQgTmFtZTwvTGFiZWw+XG4gICAgICAgICAgICAgIDxJbnB1dCBcbiAgICAgICAgICAgICAgICBpZD1cImRpc3BsYXktbmFtZVwiIFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIgXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXthY2NvdW50VG9FZGl0Py5uYW1lfSBcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtdC0xIGJnLXdoaXRlIHRleHQtZ3JheS04MDBcIiBcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZWRpdExvYWRpbmd9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi00XCI+XG4gICAgICAgICAgICAgIDxMYWJlbCBodG1sRm9yPVwibmV3LXBhc3N3b3JkXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTgwMFwiPk5ldyBQYXNzd29yZCAob3B0aW9uYWwpPC9MYWJlbD5cbiAgICAgICAgICAgICAgPElucHV0IFxuICAgICAgICAgICAgICAgIGlkPVwibmV3LXBhc3N3b3JkXCIgXG4gICAgICAgICAgICAgICAgdHlwZT1cInBhc3N3b3JkXCIgXG4gICAgICAgICAgICAgICAgdmFsdWU9e25ld1Bhc3N3b3JkfSBcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiBzZXROZXdQYXNzd29yZChlLnRhcmdldC52YWx1ZSl9IFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm10LTEgYmctd2hpdGUgdGV4dC1ncmF5LTgwMFwiIFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTGVhdmUgYmxhbmsgdG8ga2VlcCBjdXJyZW50IHBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZWRpdExvYWRpbmd9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi00XCI+XG4gICAgICAgICAgICAgIDxMYWJlbCBjbGFzc05hbWU9XCJibG9jayBtYi0yIHRleHQtZ3JheS04MDBcIj5BY2NvdW50IENvbG9yPC9MYWJlbD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy01IGdhcC0yXCI+XG4gICAgICAgICAgICAgICAge2NvbG9yUGFsZXR0ZS5tYXAoKGNvbG9yLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgIGlkPXtgY29sb3ItJHtpbmRleH1gfVxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJjb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2NvbG9yfVxuICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e3NlbGVjdGVkQ29sb3IgPT09IGNvbG9yfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoKSA9PiBzZXRTZWxlY3RlZENvbG9yKGNvbG9yKX1cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzci1vbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgaHRtbEZvcj17YGNvbG9yLSR7aW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2B3LTggaC04IHJvdW5kZWQtZnVsbCBjdXJzb3ItcG9pbnRlciBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciAke2NvbG9yfSBob3ZlcjpyaW5nLTIgaG92ZXI6cmluZy1ibHVlLTMwMCB0cmFuc2l0aW9uLWFsbGB9XG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgYm94U2hhZG93OiBzZWxlY3RlZENvbG9yID09PSBjb2xvciA/ICcwIDAgMCAycHggd2hpdGUsIDAgMCAwIDRweCAjM2I4MmY2JyA6ICdub25lJyB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNlbGVjdGVkQ29sb3IoY29sb3IpfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3NlbGVjdGVkQ29sb3IgPT09IGNvbG9yICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxDaGVjayBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtd2hpdGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktZW5kIGdhcC0yIG10LTZcIj5cbiAgICAgICAgICAgICAgPEJ1dHRvbiBcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctcmVkLTUwMCBob3ZlcjpiZy1yZWQtNjAwIHRleHQtd2hpdGVcIiBcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBzZXRTaG93RWRpdE1vZGFsKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICA8QnV0dG9uIFxuICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIiBcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1ibHVlLTUwMCBob3ZlcjpiZy1ibHVlLTYwMCB0ZXh0LXdoaXRlXCIgXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2VkaXRMb2FkaW5nfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2VkaXRMb2FkaW5nID8gPExvYWRlcjIgY2xhc3NOYW1lPVwiaC00IHctNCBhbmltYXRlLXNwaW4gbXItMlwiIC8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICBTYXZlXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9mb3JtPlxuICAgICAgICA8L0RpYWxvZ0NvbnRlbnQ+XG4gICAgICA8L0RpYWxvZz5cblxuICAgICAgey8qIERlbGV0ZSBBY2NvdW50IERpYWxvZyAqL31cbiAgICAgIDxBbGVydERpYWxvZyBvcGVuPXtzaG93RGVsZXRlRGlhbG9nfSBvbk9wZW5DaGFuZ2U9e29wZW4gPT4geyBpZiAoIW9wZW4pIHNldFNob3dEZWxldGVEaWFsb2coZmFsc2UpOyB9fT5cbiAgICAgICAgPEFsZXJ0RGlhbG9nQ29udGVudD5cbiAgICAgICAgICA8QWxlcnREaWFsb2dIZWFkZXI+XG4gICAgICAgICAgICA8QWxlcnREaWFsb2dUaXRsZT5EZWxldGUgQWNjb3VudDwvQWxlcnREaWFsb2dUaXRsZT5cbiAgICAgICAgICAgIDxBbGVydERpYWxvZ0Rlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWNjb3VudD8gVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZS5cbiAgICAgICAgICAgIDwvQWxlcnREaWFsb2dEZXNjcmlwdGlvbj5cbiAgICAgICAgICA8L0FsZXJ0RGlhbG9nSGVhZGVyPlxuICAgICAgICAgIDxBbGVydERpYWxvZ0Zvb3Rlcj5cbiAgICAgICAgICAgIDxBbGVydERpYWxvZ0NhbmNlbCBvbkNsaWNrPXsoKSA9PiBzZXRTaG93RGVsZXRlRGlhbG9nKGZhbHNlKX0+Q2FuY2VsPC9BbGVydERpYWxvZ0NhbmNlbD5cbiAgICAgICAgICAgIDxBbGVydERpYWxvZ0FjdGlvbiBhc0NoaWxkPlxuICAgICAgICAgICAgICA8QnV0dG9uIHZhcmlhbnQ9XCJkZXN0cnVjdGl2ZVwiIGRpc2FibGVkPXtkZWxldGVMb2FkaW5nfSBvbkNsaWNrPXthc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFhY2NvdW50VG9EZWxldGUpIHJldHVybjtcbiAgICAgICAgICAgICAgICBzZXREZWxldGVMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChgL2FwaS9jb3Vycmllci9hY2NvdW50P2FjY291bnRJZD0ke2FjY291bnRUb0RlbGV0ZS5pZH1gLCB7IG1ldGhvZDogJ0RFTEVURScgfSk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzLmpzb24oKTtcbiAgICAgICAgICAgICAgICAgIGlmICghcmVzLm9rKSB0aHJvdyBuZXcgRXJyb3IoZGF0YS5lcnJvciB8fCAnRmFpbGVkIHRvIGRlbGV0ZSBhY2NvdW50Jyk7XG4gICAgICAgICAgICAgICAgICB0b2FzdCh7IHRpdGxlOiAnQWNjb3VudCBkZWxldGVkJywgZGVzY3JpcHRpb246ICdUaGUgYWNjb3VudCB3YXMgZGVsZXRlZCBzdWNjZXNzZnVsbHkuJyB9KTtcbiAgICAgICAgICAgICAgICAgIHNldFNob3dEZWxldGVEaWFsb2coZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgdG9hc3QoeyB0aXRsZTogJ0Vycm9yJywgZGVzY3JpcHRpb246IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnRmFpbGVkIHRvIGRlbGV0ZSBhY2NvdW50JywgdmFyaWFudDogJ2Rlc3RydWN0aXZlJyB9KTtcbiAgICAgICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgICAgc2V0RGVsZXRlTG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9fT5EZWxldGU8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvQWxlcnREaWFsb2dBY3Rpb24+XG4gICAgICAgICAgPC9BbGVydERpYWxvZ0Zvb3Rlcj5cbiAgICAgICAgPC9BbGVydERpYWxvZ0NvbnRlbnQ+XG4gICAgICA8L0FsZXJ0RGlhbG9nPlxuICAgIDwvPlxuICApO1xufSJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwidXNlUm91dGVyIiwidXNlU2Vzc2lvbiIsIkxvYWRlcjIiLCJBbGVydENpcmNsZSIsIkVkaXQiLCJJbmJveCIsIlNlbmQiLCJUcmFzaCIsIkZvbGRlciIsIkFsZXJ0T2N0YWdvbiIsIkFyY2hpdmUiLCJNZW51IiwiQ2hlY2siLCJEaWFsb2ciLCJEaWFsb2dDb250ZW50IiwiRGlhbG9nVGl0bGUiLCJBbGVydCIsIkFsZXJ0RGVzY3JpcHRpb24iLCJBbGVydFRpdGxlIiwiQWxlcnREaWFsb2ciLCJBbGVydERpYWxvZ0FjdGlvbiIsIkFsZXJ0RGlhbG9nQ2FuY2VsIiwiQWxlcnREaWFsb2dDb250ZW50IiwiQWxlcnREaWFsb2dEZXNjcmlwdGlvbiIsIkFsZXJ0RGlhbG9nRm9vdGVyIiwiQWxlcnREaWFsb2dIZWFkZXIiLCJBbGVydERpYWxvZ1RpdGxlIiwiQnV0dG9uIiwiSW5wdXQiLCJMYWJlbCIsInRvYXN0IiwiRW1haWxTaWRlYmFyIiwiRW1haWxMaXN0IiwiRW1haWxEZXRhaWxWaWV3IiwiQ29tcG9zZUVtYWlsIiwiRGVsZXRlQ29uZmlybURpYWxvZyIsInVzZUVtYWlsU3RhdGUiLCJTaW1wbGlmaWVkTG9hZGluZ0ZpeCIsInByb2Nlc3MiLCJkaXYiLCJjbGFzc05hbWUiLCJjb2xvclBhbGV0dGUiLCJsb2dFbWFpbE9wIiwib3BlcmF0aW9uIiwiZGV0YWlscyIsImRhdGEiLCJ0aW1lc3RhbXAiLCJEYXRlIiwidG9JU09TdHJpbmciLCJzcGxpdCIsInN1YnN0cmluZyIsImNvbnNvbGUiLCJsb2ciLCJDb3VycmllclBhZ2UiLCJzZXNzaW9uIiwicm91dGVyIiwiYWNjb3VudHMiLCJzZWxlY3RlZEFjY291bnQiLCJzZWxlY3RlZEZvbGRlcnMiLCJjdXJyZW50Rm9sZGVyIiwiZW1haWxzIiwic2VsZWN0ZWRFbWFpbCIsInNlbGVjdGVkRW1haWxJZHMiLCJpc0xvYWRpbmciLCJlcnJvciIsInBhZ2UiLCJ0b3RhbFBhZ2VzIiwidG90YWxFbWFpbHMiLCJtYWlsYm94ZXMiLCJ1bnJlYWRDb3VudE1hcCIsInNob3dGb2xkZXJzIiwibG9hZEVtYWlscyIsImhhbmRsZUVtYWlsU2VsZWN0IiwidG9nZ2xlRW1haWxTZWxlY3Rpb24iLCJ0b2dnbGVTZWxlY3RBbGwiLCJtYXJrRW1haWxBc1JlYWQiLCJ0b2dnbGVTdGFycmVkIiwiY2hhbmdlRm9sZGVyIiwiZGVsZXRlRW1haWxzIiwic2VuZEVtYWlsIiwic2VhcmNoRW1haWxzIiwiZm9ybWF0RW1haWxGb3JBY3Rpb24iLCJzZXRQYWdlIiwic2V0RW1haWxzIiwic2VsZWN0QWNjb3VudCIsImhhbmRsZUxvYWRNb3JlIiwic2hvd0NvbXBvc2VNb2RhbCIsInNldFNob3dDb21wb3NlTW9kYWwiLCJjb21wb3NlVHlwZSIsInNldENvbXBvc2VUeXBlIiwic2hvd0RlbGV0ZUNvbmZpcm0iLCJzZXRTaG93RGVsZXRlQ29uZmlybSIsInNob3dMb2dpbk5lZWRlZCIsInNldFNob3dMb2dpbk5lZWRlZCIsInNpZGViYXJPcGVuIiwic2V0U2lkZWJhck9wZW4iLCJtb2JpbGVTaWRlYmFyT3BlbiIsInNldE1vYmlsZVNpZGViYXJPcGVuIiwibG9hZGluZyIsInNldExvYWRpbmciLCJwcmVmZXRjaFN0YXJ0ZWQiLCJzZXRQcmVmZXRjaFN0YXJ0ZWQiLCJzaG93QWRkQWNjb3VudEZvcm0iLCJzZXRTaG93QWRkQWNjb3VudEZvcm0iLCJzaG93RWRpdE1vZGFsIiwic2V0U2hvd0VkaXRNb2RhbCIsInNob3dEZWxldGVEaWFsb2ciLCJzZXRTaG93RGVsZXRlRGlhbG9nIiwiYWNjb3VudFRvRWRpdCIsInNldEFjY291bnRUb0VkaXQiLCJhY2NvdW50VG9EZWxldGUiLCJzZXRBY2NvdW50VG9EZWxldGUiLCJuZXdQYXNzd29yZCIsInNldE5ld1Bhc3N3b3JkIiwiZWRpdExvYWRpbmciLCJzZXRFZGl0TG9hZGluZyIsImRlbGV0ZUxvYWRpbmciLCJzZXREZWxldGVMb2FkaW5nIiwic2VsZWN0ZWRDb2xvciIsInNldFNlbGVjdGVkQ29sb3IiLCJzZWFyY2hRdWVyeSIsInNldFNlYXJjaFF1ZXJ5IiwidW5yZWFkQ291bnQiLCJzZXRVbnJlYWRDb3VudCIsImlkIiwiZm9sZGVyQ291bnRzIiwidG9TdHJpbmciLCJ0b3RhbFVucmVhZCIsIk9iamVjdCIsInZhbHVlcyIsImZvckVhY2giLCJpc01vdW50ZWQiLCJyZXRyeUNvdW50IiwiTUFYX1JFVFJJRVMiLCJSRVRSWV9ERUxBWSIsImluaXRTZXNzaW9uIiwicmVkaXNTdGF0dXMiLCJmZXRjaCIsInRoZW4iLCJyZXMiLCJqc29uIiwiY2F0Y2giLCJyZWFkeSIsInJlc3BvbnNlIiwiY3JlZGVudGlhbHMiLCJoZWFkZXJzIiwic3RhdHVzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJzZXRUaW1lb3V0Iiwib2siLCJFcnJvciIsImF1dGhlbnRpY2F0ZWQiLCJoYXNFbWFpbENyZWRlbnRpYWxzIiwiYWNjb3VudHNDb3VudCIsImFsbEFjY291bnRzIiwibGVuZ3RoIiwiQm9vbGVhbiIsInVwZGF0ZWRBY2NvdW50cyIsIkFycmF5IiwiaXNBcnJheSIsImFjY291bnQiLCJhY2NvdW50Rm9sZGVycyIsImZvbGRlcnMiLCJ2YWxpZEZvbGRlcnMiLCJtYXAiLCJmb2xkZXIiLCJpbmNsdWRlcyIsInB1c2giLCJuYW1lIiwiZGlzcGxheV9uYW1lIiwiZW1haWwiLCJjb2xvciIsImZvbGRlckxpc3QiLCJkaXNwbGF5TmFtZSIsInNldEFjY291bnRzIiwiZmlyc3RBY2NvdW50IiwidXNlciIsImdldEZvbGRlckljb24iLCJmb2xkZXJMb3dlciIsInRvTG93ZXJDYXNlIiwiZm9ybWF0Rm9sZGVyTmFtZSIsImJhc2VGb2xkZXJOYW1lIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsImhhbmRsZU1haWxib3hDaGFuZ2UiLCJhY2NvdW50SWQiLCJmaW5hbGx5IiwiaGFuZGxlQWNjb3VudFNlbGVjdCIsImhhbmRsZVJlcGx5IiwiaGFuZGxlUmVwbHlBbGwiLCJoYW5kbGVGb3J3YXJkIiwiaGFuZGxlQ29tcG9zZU5ldyIsImhhbmRsZUJ1bGtBY3Rpb24iLCJhY3Rpb24iLCJlbWFpbElkIiwiaGFuZGxlU2VuZEVtYWlsIiwiZW1haWxEYXRhIiwicmVzdWx0Iiwic3VjY2VzcyIsImhhbmRsZURlbGV0ZUNvbmZpcm0iLCJoYW5kbGVHb1RvTG9naW4iLCJuZXdBY2NvdW50cyIsIndpbmRvd1dpdGhEaXNwYXRjaCIsIndpbmRvdyIsImRpc3BhdGNoRW1haWxBY3Rpb24iLCJ0eXBlIiwicGF5bG9hZCIsInVzZUVtYWlsU3RhdGVEaXNwYXRjaCIsIl9fZW1haWxTdGF0ZURpc3BhdGNoIiwibWFpbiIsIm9uRm9sZGVyQ2hhbmdlIiwib25SZWZyZXNoIiwib25Db21wb3NlTmV3Iiwib25BY2NvdW50U2VsZWN0Iiwib25TaG93QWRkQWNjb3VudEZvcm0iLCJvbkFkZEFjY291bnQiLCJmb3JtRGF0YSIsImZvcm1WYWx1ZXMiLCJnZXQiLCJwYXNzd29yZCIsImhvc3QiLCJwb3J0IiwicGFyc2VJbnQiLCJzZWN1cmUiLCJzbXRwX2hvc3QiLCJzbXRwX3BvcnQiLCJ1bmRlZmluZWQiLCJzbXRwX3NlY3VyZSIsInRlc3RSZXNwb25zZSIsIm1ldGhvZCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwidGVzdFJlc3VsdCIsInJlYWxBY2NvdW50cyIsImZpbHRlciIsImEiLCJzYXZlUmVzcG9uc2UiLCJzYXZlUmVzdWx0IiwicmVhbEFjY291bnQiLCJzYW1wbGVGb2xkZXJzIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImR1cmF0aW9uIiwibWVzc2FnZSIsInZhcmlhbnQiLCJvbkVkaXRBY2NvdW50IiwidXBkYXRlZEFjY291bnQiLCJmaW5kIiwib25EZWxldGVBY2NvdW50Iiwib25TZWxlY3RFbWFpbCIsInNpemUiLCJvbkNsaWNrIiwic3BhbiIsInAiLCJvblNjcm9sbCIsImUiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0Iiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiZGlzdGFuY2VUb0JvdHRvbSIsInNjcm9sbFBlcmNlbnRhZ2UiLCJsYXN0U2Nyb2xsVG9wIiwiZGF0YXNldCIsInNjcm9sbGluZ0Rvd24iLCJub3ciLCJsYXN0TG9nIiwibGFzdExvZ1RpbWUiLCJNYXRoIiwicm91bmQiLCJsYXN0VHJpZ2dlciIsImxhc3RUcmlnZ2VyVGltZSIsInRocm90dGxlVGltZSIsImgzIiwiZW1haWxBY2NvdW50SWQiLCJlbWFpbEZvbGRlciIsIm9uVG9nZ2xlU2VsZWN0Iiwib25Ub2dnbGVTZWxlY3RBbGwiLCJvblRvZ2dsZVN0YXJyZWQiLCJvbkxvYWRNb3JlIiwiaGFzTW9yZUVtYWlscyIsIm9uQnVsa0FjdGlvbiIsIm9uQmFjayIsIm9uUmVwbHkiLCJvblJlcGx5QWxsIiwib25Gb3J3YXJkIiwib25Ub2dnbGVTdGFyIiwiYnV0dG9uIiwic2hvdyIsInNlbGVjdGVkQ291bnQiLCJvbkNvbmZpcm0iLCJvbkNhbmNlbCIsIm9wZW4iLCJvbk9wZW5DaGFuZ2UiLCJhc0NoaWxkIiwiaW5pdGlhbEVtYWlsIiwib25TZW5kIiwib25DbG9zZSIsImxvY2F0aW9uIiwicmVsb2FkIiwiZm9ybSIsIm9uU3VibWl0IiwicHJldmVudERlZmF1bHQiLCJmb3JtRWxlbWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJ2YWx1ZSIsImFjY291bnREZXRhaWxzUmVzIiwiYWNjb3VudERldGFpbHMiLCJlcnIiLCJodG1sRm9yIiwiZGVmYXVsdFZhbHVlIiwiZGlzYWJsZWQiLCJvbkNoYW5nZSIsInBsYWNlaG9sZGVyIiwiaW5kZXgiLCJpbnB1dCIsImNoZWNrZWQiLCJsYWJlbCIsInN0eWxlIiwiYm94U2hhZG93Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/courrier/page.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/email/BulkActionsToolbar.tsx": /*!*************************************************!*\ !*** ./components/email/BulkActionsToolbar.tsx ***! \*************************************************/ /***/ ((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\": () => (/* binding */ BulkActionsToolbar)\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_Archive_EyeOff_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Archive,EyeOff,Trash2!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/eye-off.js\");\n/* harmony import */ var _barrel_optimize_names_Archive_EyeOff_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=Archive,EyeOff,Trash2!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/archive.js\");\n/* harmony import */ var _barrel_optimize_names_Archive_EyeOff_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Archive,EyeOff,Trash2!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trash-2.js\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/tooltip */ \"(app-pages-browser)/./components/ui/tooltip.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\nfunction BulkActionsToolbar(param) {\n let { selectedCount, onBulkAction } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-blue-50 border-b border-blue-100 px-4 py-2 flex items-center justify-between shadow-md transition-all duration-200\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs font-medium text-blue-700\",\n children: [\n selectedCount,\n \" selected\"\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 24,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.TooltipProvider, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.Tooltip, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.TooltipTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"h-7 w-7 text-blue-600 hover:text-blue-900 hover:bg-blue-100\",\n onClick: ()=>onBulkAction('mark-unread'),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Archive_EyeOff_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-3.5 w-3.5\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 37,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 31,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 30,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.TooltipContent, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: \"Mark as unread\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 41,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 40,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 28,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.TooltipProvider, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.Tooltip, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.TooltipTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"h-7 w-7 text-blue-600 hover:text-blue-900 hover:bg-blue-100\",\n onClick: ()=>onBulkAction('archive'),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Archive_EyeOff_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-3.5 w-3.5\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 55,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 49,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 48,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.TooltipContent, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: \"Archive\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 59,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 58,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 47,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 46,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.TooltipProvider, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.Tooltip, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.TooltipTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"h-7 w-7 text-red-600 hover:text-red-700 hover:bg-red-50\",\n onClick: ()=>onBulkAction('delete'),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Archive_EyeOff_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-3.5 w-3.5\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 73,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 67,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 66,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.TooltipContent, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: \"Delete\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 77,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 76,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 65,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 64,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 27,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 23,\n columnNumber: 5\n }, this);\n}\n_c = BulkActionsToolbar;\nvar _c;\n$RefreshReg$(_c, \"BulkActionsToolbar\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZW1haWwvQnVsa0FjdGlvbnNUb29sYmFyLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBRTBCO0FBQzZCO0FBQ1A7QUFNZjtBQU9sQixTQUFTUyxtQkFBbUIsS0FHakI7UUFIaUIsRUFDekNDLGFBQWEsRUFDYkMsWUFBWSxFQUNZLEdBSGlCO0lBSXpDLHFCQUNFLDhEQUFDQztRQUFJQyxXQUFVOzswQkFDYiw4REFBQ0M7Z0JBQUtELFdBQVU7O29CQUNiSDtvQkFBYzs7Ozs7OzswQkFFakIsOERBQUNFO2dCQUFJQyxXQUFVOztrQ0FDYiw4REFBQ04sbUVBQWVBO2tDQUNkLDRFQUFDRiwyREFBT0E7OzhDQUNOLDhEQUFDRyxrRUFBY0E7b0NBQUNPLE9BQU87OENBQ3JCLDRFQUFDWCx5REFBTUE7d0NBQ0xZLFNBQVE7d0NBQ1JDLE1BQUs7d0NBQ0xKLFdBQVU7d0NBQ1ZLLFNBQVMsSUFBTVAsYUFBYTtrREFFNUIsNEVBQUNSLGlHQUFNQTs0Q0FBQ1UsV0FBVTs7Ozs7Ozs7Ozs7Ozs7Ozs4Q0FHdEIsOERBQUNQLGtFQUFjQTs4Q0FDYiw0RUFBQ2E7a0RBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0NBS1QsOERBQUNaLG1FQUFlQTtrQ0FDZCw0RUFBQ0YsMkRBQU9BOzs4Q0FDTiw4REFBQ0csa0VBQWNBO29DQUFDTyxPQUFPOzhDQUNyQiw0RUFBQ1gseURBQU1BO3dDQUNMWSxTQUFRO3dDQUNSQyxNQUFLO3dDQUNMSixXQUFVO3dDQUNWSyxTQUFTLElBQU1QLGFBQWE7a0RBRTVCLDRFQUFDVCxpR0FBT0E7NENBQUNXLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7OENBR3ZCLDhEQUFDUCxrRUFBY0E7OENBQ2IsNEVBQUNhO2tEQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tDQUtULDhEQUFDWixtRUFBZUE7a0NBQ2QsNEVBQUNGLDJEQUFPQTs7OENBQ04sOERBQUNHLGtFQUFjQTtvQ0FBQ08sT0FBTzs4Q0FDckIsNEVBQUNYLHlEQUFNQTt3Q0FDTFksU0FBUTt3Q0FDUkMsTUFBSzt3Q0FDTEosV0FBVTt3Q0FDVkssU0FBUyxJQUFNUCxhQUFhO2tEQUU1Qiw0RUFBQ1YsaUdBQU1BOzRDQUFDWSxXQUFVOzs7Ozs7Ozs7Ozs7Ozs7OzhDQUd0Qiw4REFBQ1Asa0VBQWNBOzhDQUNiLDRFQUFDYTtrREFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9qQjtLQWxFd0JWIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2NvbXBvbmVudHMvZW1haWwvQnVsa0FjdGlvbnNUb29sYmFyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBUcmFzaDIsIEFyY2hpdmUsIEV5ZU9mZiB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICdAL2NvbXBvbmVudHMvdWkvYnV0dG9uJztcbmltcG9ydCB7XG4gIFRvb2x0aXAsXG4gIFRvb2x0aXBDb250ZW50LFxuICBUb29sdGlwUHJvdmlkZXIsXG4gIFRvb2x0aXBUcmlnZ2VyLFxufSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL3Rvb2x0aXBcIjtcblxuaW50ZXJmYWNlIEJ1bGtBY3Rpb25zVG9vbGJhclByb3BzIHtcbiAgc2VsZWN0ZWRDb3VudDogbnVtYmVyO1xuICBvbkJ1bGtBY3Rpb246IChhY3Rpb246ICdkZWxldGUnIHwgJ21hcmstcmVhZCcgfCAnbWFyay11bnJlYWQnIHwgJ2FyY2hpdmUnKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBCdWxrQWN0aW9uc1Rvb2xiYXIoe1xuICBzZWxlY3RlZENvdW50LFxuICBvbkJ1bGtBY3Rpb25cbn06IEJ1bGtBY3Rpb25zVG9vbGJhclByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJiZy1ibHVlLTUwIGJvcmRlci1iIGJvcmRlci1ibHVlLTEwMCBweC00IHB5LTIgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHNoYWRvdy1tZCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0yMDBcIj5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1tZWRpdW0gdGV4dC1ibHVlLTcwMFwiPlxuICAgICAgICB7c2VsZWN0ZWRDb3VudH0gc2VsZWN0ZWRcbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIj5cbiAgICAgICAgPFRvb2x0aXBQcm92aWRlcj5cbiAgICAgICAgICA8VG9vbHRpcD5cbiAgICAgICAgICAgIDxUb29sdGlwVHJpZ2dlciBhc0NoaWxkPlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICBzaXplPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC03IHctNyB0ZXh0LWJsdWUtNjAwIGhvdmVyOnRleHQtYmx1ZS05MDAgaG92ZXI6YmctYmx1ZS0xMDBcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQnVsa0FjdGlvbignbWFyay11bnJlYWQnKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxFeWVPZmYgY2xhc3NOYW1lPVwiaC0zLjUgdy0zLjVcIiAvPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcFRyaWdnZXI+XG4gICAgICAgICAgICA8VG9vbHRpcENvbnRlbnQ+XG4gICAgICAgICAgICAgIDxwPk1hcmsgYXMgdW5yZWFkPC9wPlxuICAgICAgICAgICAgPC9Ub29sdGlwQ29udGVudD5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIDwvVG9vbHRpcFByb3ZpZGVyPlxuXG4gICAgICAgIDxUb29sdGlwUHJvdmlkZXI+XG4gICAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgICA8VG9vbHRpcFRyaWdnZXIgYXNDaGlsZD5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cImljb25cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtNyB3LTcgdGV4dC1ibHVlLTYwMCBob3Zlcjp0ZXh0LWJsdWUtOTAwIGhvdmVyOmJnLWJsdWUtMTAwXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkJ1bGtBY3Rpb24oJ2FyY2hpdmUnKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxBcmNoaXZlIGNsYXNzTmFtZT1cImgtMy41IHctMy41XCIgLz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXBUcmlnZ2VyPlxuICAgICAgICAgICAgPFRvb2x0aXBDb250ZW50PlxuICAgICAgICAgICAgICA8cD5BcmNoaXZlPC9wPlxuICAgICAgICAgICAgPC9Ub29sdGlwQ29udGVudD5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIDwvVG9vbHRpcFByb3ZpZGVyPlxuXG4gICAgICAgIDxUb29sdGlwUHJvdmlkZXI+XG4gICAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgICA8VG9vbHRpcFRyaWdnZXIgYXNDaGlsZD5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cImljb25cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtNyB3LTcgdGV4dC1yZWQtNjAwIGhvdmVyOnRleHQtcmVkLTcwMCBob3ZlcjpiZy1yZWQtNTBcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQnVsa0FjdGlvbignZGVsZXRlJyl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8VHJhc2gyIGNsYXNzTmFtZT1cImgtMy41IHctMy41XCIgLz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXBUcmlnZ2VyPlxuICAgICAgICAgICAgPFRvb2x0aXBDb250ZW50PlxuICAgICAgICAgICAgICA8cD5EZWxldGU8L3A+XG4gICAgICAgICAgICA8L1Rvb2x0aXBDb250ZW50PlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgPC9Ub29sdGlwUHJvdmlkZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn0gIl0sIm5hbWVzIjpbIlJlYWN0IiwiVHJhc2gyIiwiQXJjaGl2ZSIsIkV5ZU9mZiIsIkJ1dHRvbiIsIlRvb2x0aXAiLCJUb29sdGlwQ29udGVudCIsIlRvb2x0aXBQcm92aWRlciIsIlRvb2x0aXBUcmlnZ2VyIiwiQnVsa0FjdGlvbnNUb29sYmFyIiwic2VsZWN0ZWRDb3VudCIsIm9uQnVsa0FjdGlvbiIsImRpdiIsImNsYXNzTmFtZSIsInNwYW4iLCJhc0NoaWxkIiwidmFyaWFudCIsInNpemUiLCJvbkNsaWNrIiwicCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/email/BulkActionsToolbar.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/email/ComposeEmail.tsx": /*!*******************************************!*\ !*** ./components/email/ComposeEmail.tsx ***! \*******************************************/ /***/ ((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\": () => (/* binding */ ComposeEmail)\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 _barrel_optimize_names_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronDown,Loader2,Paperclip,SendHorizontal,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/x.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronDown,Loader2,Paperclip,SendHorizontal,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-down.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronDown,Loader2,Paperclip,SendHorizontal,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/paperclip.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronDown,Loader2,Paperclip,SendHorizontal,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/loader-circle.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronDown,Loader2,Paperclip,SendHorizontal,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/send-horizontal.js\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _components_ui_input__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ui/input */ \"(app-pages-browser)/./components/ui/input.tsx\");\n/* harmony import */ var _components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/ui/dropdown-menu */ \"(app-pages-browser)/./components/ui/dropdown-menu.tsx\");\n/* harmony import */ var _components_email_RichEmailEditor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/email/RichEmailEditor */ \"(app-pages-browser)/./components/email/RichEmailEditor.tsx\");\n/* harmony import */ var _lib_utils_email_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/lib/utils/email-utils */ \"(app-pages-browser)/./lib/utils/email-utils.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\n// Import from the centralized utils\n\nfunction ComposeEmail(props) {\n _s();\n const { initialEmail, type = 'new', onClose, onSend, accounts = [] } = props;\n // State for email form\n const [selectedAccount, setSelectedAccount] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(accounts[0]);\n const [to, setTo] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)('');\n const [cc, setCc] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)('');\n const [bcc, setBcc] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)('');\n const [subject, setSubject] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)('');\n const [emailContent, setEmailContent] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)('');\n const [showCc, setShowCc] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n const [showBcc, setShowBcc] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n const [sending, setSending] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n const [attachments, setAttachments] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)([]);\n // Reference to editor\n const editorRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n // Helper function to get formatted info from email\n function getFormattedInfoForEmail(email) {\n var _email_from;\n // Format the subject\n const subject = email.subject || '';\n // Format the date\n const dateStr = email.date ? new Date(email.date).toLocaleString() : 'Unknown Date';\n // Format sender\n const fromStr = Array.isArray(email.from) ? email.from.map((addr)=>{\n if (typeof addr === 'string') return addr;\n return addr.name ? \"\".concat(addr.name, \" <\").concat(addr.address, \">\") : addr.address;\n }).join(', ') : typeof email.from === 'string' ? email.from : ((_email_from = email.from) === null || _email_from === void 0 ? void 0 : _email_from.address) ? email.from.name ? \"\".concat(email.from.name, \" <\").concat(email.from.address, \">\") : email.from.address : 'Unknown Sender';\n // Format recipients\n const toStr = Array.isArray(email.to) ? email.to.map((addr)=>{\n if (typeof addr === 'string') return addr;\n return addr.name ? \"\".concat(addr.name, \" <\").concat(addr.address, \">\") : addr.address;\n }).join(', ') : typeof email.to === 'string' ? email.to : '';\n // Format CC \n const ccStr = Array.isArray(email.cc) ? email.cc.map((addr)=>{\n if (typeof addr === 'string') return addr;\n return addr.name ? \"\".concat(addr.name, \" <\").concat(addr.address, \">\") : addr.address;\n }).join(', ') : typeof email.cc === 'string' ? email.cc : '';\n return {\n fromStr,\n toStr,\n ccStr,\n dateStr,\n subject\n };\n }\n // Initialize email form based on initial email and type\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)({\n \"ComposeEmail.useEffect\": ()=>{\n if (initialEmail) {\n try {\n console.log('Initializing compose with email:', {\n id: initialEmail.id,\n subject: initialEmail.subject,\n hasContent: !!initialEmail.content,\n contentType: initialEmail.content ? typeof initialEmail.content : 'none'\n });\n // Set default account from original email - use type assertion since accountId might be custom property\n const emailAny = initialEmail;\n if (emailAny.accountId && (accounts === null || accounts === void 0 ? void 0 : accounts.length)) {\n const account = accounts.find({\n \"ComposeEmail.useEffect.account\": (a)=>a.id === emailAny.accountId\n }[\"ComposeEmail.useEffect.account\"]);\n if (account) {\n setSelectedAccount(account);\n }\n }\n // Get recipients based on type\n if (type === 'reply' || type === 'reply-all') {\n // Get formatted data for reply\n const formatted = (0,_lib_utils_email_utils__WEBPACK_IMPORTED_MODULE_7__.formatReplyEmail)(initialEmail, type);\n // Set reply addresses\n setTo(formatted.to);\n if (formatted.cc) {\n setShowCc(true);\n setCc(formatted.cc);\n }\n // Set subject\n setSubject(formatted.subject);\n // Set content with original email - ensure we have content\n const content = formatted.content.html || formatted.content.text || '';\n if (!content) {\n console.warn('Reply content is empty, falling back to a basic template');\n // Provide a basic template if the content is empty\n const { fromStr, dateStr } = getFormattedInfoForEmail(initialEmail);\n const fallbackContent = '\\n
\\n On '.concat(dateStr, \", \").concat(fromStr, ' wrote:\\n
\\n
\\n [Original message content could not be loaded]\\n
\\n ');\n setEmailContent(fallbackContent);\n } else {\n console.log('Setting reply content:', {\n length: content.length,\n isHtml: formatted.content.isHtml,\n startsWithHtml: content.trim().startsWith('<'),\n contentType: typeof content\n });\n setEmailContent(content);\n }\n // Handle any attachments from reply (e.g., inline images extracted as attachments)\n if (formatted.attachments && formatted.attachments.length > 0) {\n const formattedAttachments = formatted.attachments.map({\n \"ComposeEmail.useEffect.formattedAttachments\": (att)=>({\n name: att.filename || 'attachment',\n type: att.contentType || 'application/octet-stream',\n content: att.content || ''\n })\n }[\"ComposeEmail.useEffect.formattedAttachments\"]);\n setAttachments(formattedAttachments);\n }\n } else if (type === 'forward') {\n // Get formatted data for forward\n const formatted = (0,_lib_utils_email_utils__WEBPACK_IMPORTED_MODULE_7__.formatForwardedEmail)(initialEmail);\n // Set subject\n setSubject(formatted.subject);\n // Set content with original email - ensure we have content\n const content = formatted.content.html || formatted.content.text || '';\n if (!content) {\n console.warn('Forward content is empty, falling back to a basic template');\n // Provide a basic template if the content is empty\n const { fromStr, dateStr, subject: origSubject, toStr, ccStr } = getFormattedInfoForEmail(initialEmail);\n console.log('Creating forward fallback with:', {\n fromStr,\n dateStr,\n origSubject\n });\n const fallbackContent = '\\n
\\n
\\n
---------------------------- Forwarded Message ----------------------------
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \").concat(ccStr ? '\\n \\n \\n \\n \") : '', '\\n
From:'.concat(fromStr, '
Date:').concat(dateStr, '
Subject:').concat(origSubject || '', '
To:').concat(toStr, \"
Cc:'.concat(ccStr, \"
\\n
\\n
----------------------------------------------------------------------
\\n
\\n
\\n
\\n [Original message content could not be loaded]\\n
\\n ');\n setEmailContent(fallbackContent);\n } else {\n console.log('Setting forward content:', {\n length: content.length,\n isHtml: formatted.content.isHtml\n });\n setEmailContent(content);\n }\n // Handle attachments for forward (original attachments + extracted inline images)\n if (formatted.attachments && formatted.attachments.length > 0) {\n console.log(\"Processing \".concat(formatted.attachments.length, \" attachments for forwarded email\"));\n const formattedAttachments = formatted.attachments.map({\n \"ComposeEmail.useEffect.formattedAttachments\": (att)=>({\n name: att.filename || 'attachment',\n type: att.contentType || 'application/octet-stream',\n content: att.content || ''\n })\n }[\"ComposeEmail.useEffect.formattedAttachments\"]);\n setAttachments(formattedAttachments);\n }\n }\n } catch (error) {\n console.error('Error initializing compose form:', error);\n // Provide a fallback in case of error\n setEmailContent('

Error loading email content

');\n }\n }\n }\n }[\"ComposeEmail.useEffect\"], [\n initialEmail,\n type,\n accounts\n ]);\n // Place cursor at beginning and ensure content is scrolled to top\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)({\n \"ComposeEmail.useEffect\": ()=>{\n if (editorRef.current && type !== 'new') {\n // Small delay to ensure DOM is ready\n setTimeout({\n \"ComposeEmail.useEffect\": ()=>{\n if (editorRef.current) {\n // Focus the editor\n editorRef.current.focus();\n // Also make sure editor container is scrolled to top\n editorRef.current.scrollTop = 0;\n // Find parent scrollable containers and scroll them to top\n let parent = editorRef.current.parentElement;\n while(parent){\n if (parent.classList.contains('overflow-y-auto')) {\n parent.scrollTop = 0;\n }\n parent = parent.parentElement;\n }\n }\n }\n }[\"ComposeEmail.useEffect\"], 100);\n }\n }\n }[\"ComposeEmail.useEffect\"], [\n emailContent,\n type\n ]);\n // Handle file attachments\n const handleAttachmentAdd = async (files)=>{\n const newAttachments = Array.from(files).map((file)=>({\n name: file.name,\n type: file.type,\n content: URL.createObjectURL(file)\n }));\n setAttachments((prev)=>[\n ...prev,\n ...newAttachments\n ]);\n };\n const handleAttachmentRemove = (index)=>{\n setAttachments((prev)=>prev.filter((_, i)=>i !== index));\n };\n // Handle sending email\n const handleSend = async ()=>{\n if (!to) {\n alert('Please specify at least one recipient');\n return;\n }\n setSending(true);\n try {\n await onSend({\n to,\n cc: cc || undefined,\n bcc: bcc || undefined,\n subject,\n body: emailContent,\n fromAccount: selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.id,\n attachments\n });\n // Reset form and close\n onClose();\n } catch (error) {\n console.error('Error sending email:', error);\n alert('Failed to send email. Please try again.');\n } finally{\n setSending(false);\n }\n };\n // Get compose title based on type\n const getComposeTitle = ()=>{\n switch(type){\n case 'reply':\n return 'Reply';\n case 'reply-all':\n return 'Reply All';\n case 'forward':\n return 'Forward';\n default:\n return 'New Message';\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex flex-col h-full max-h-[80vh] bg-white border rounded-md shadow-md\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex items-center justify-between p-3 border-b bg-gray-50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"text-lg font-medium text-gray-800\",\n children: getComposeTitle()\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 353,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n onClick: onClose,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 355,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 354,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 352,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex-1 overflow-y-auto bg-white\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"p-2 space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"border-b pb-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"w-16 text-gray-700 text-sm font-medium\",\n children: \"From:\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 365,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.DropdownMenu, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.DropdownMenuTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.Button, {\n variant: \"outline\",\n className: \"w-full flex justify-between items-center h-8 px-2 py-1 text-left font-normal bg-white text-gray-800 border-gray-200\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"truncate\",\n children: selectedAccount ? selectedAccount.display_name ? \"\".concat(selectedAccount.display_name, \" <\").concat(selectedAccount.email, \">\") : selectedAccount.email : 'Select account'\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 372,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"h-4 w-4 opacity-50\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 379,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 368,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 367,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.DropdownMenuContent, {\n align: \"start\",\n className: \"w-[240px]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.DropdownMenuLabel, {\n children: \"Select account\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 383,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.DropdownMenuSeparator, {}, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 384,\n columnNumber: 19\n }, this),\n accounts.length > 0 ? accounts.map((account)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.DropdownMenuItem, {\n onClick: ()=>setSelectedAccount(account),\n className: \"cursor-pointer hover:bg-blue-50 focus:bg-blue-50\",\n children: account.display_name ? \"\".concat(account.display_name, \" <\").concat(account.email, \">\") : account.email\n }, account.id, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 387,\n columnNumber: 23\n }, this)) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.DropdownMenuItem, {\n disabled: true,\n children: \"No accounts available\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 398,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 382,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 366,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 364,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 363,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"border-b pb-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"w-16 text-gray-700 text-sm font-medium\",\n children: \"To:\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 408,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_4__.Input, {\n type: \"text\",\n value: to,\n onChange: (e)=>setTo(e.target.value),\n placeholder: \"recipient@example.com\",\n className: \"flex-1 border-0 shadow-none focus-visible:ring-0 px-0 h-8 bg-white text-gray-800\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 409,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 407,\n columnNumber: 13\n }, this),\n showCc && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"w-16 text-gray-700 text-sm font-medium\",\n children: \"Cc:\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 420,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_4__.Input, {\n type: \"text\",\n value: cc,\n onChange: (e)=>setCc(e.target.value),\n placeholder: \"cc@example.com\",\n className: \"flex-1 border-0 shadow-none focus-visible:ring-0 px-0 h-8 bg-white text-gray-800\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 421,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 419,\n columnNumber: 15\n }, this),\n showBcc && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"w-16 text-gray-700 text-sm font-medium\",\n children: \"Bcc:\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 433,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_4__.Input, {\n type: \"text\",\n value: bcc,\n onChange: (e)=>setBcc(e.target.value),\n placeholder: \"bcc@example.com\",\n className: \"flex-1 border-0 shadow-none focus-visible:ring-0 px-0 h-8 bg-white text-gray-800\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 434,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 432,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex gap-3 ml-16\",\n children: [\n !showCc && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowCc(true),\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"text-blue-600 text-sm hover:underline\",\n children: \"Add Cc\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 447,\n columnNumber: 17\n }, this),\n !showBcc && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowBcc(true),\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"text-blue-600 text-sm hover:underline\",\n children: \"Add Bcc\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 456,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 445,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 406,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"border-b pb-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"w-16 text-gray-700 text-sm font-medium\",\n children: \"Subject:\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 469,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_4__.Input, {\n type: \"text\",\n value: subject,\n onChange: (e)=>setSubject(e.target.value),\n placeholder: \"Subject\",\n className: \"flex-1 border-0 shadow-none focus-visible:ring-0 px-0 h-8 bg-white text-gray-800\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 470,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 468,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 467,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_email_RichEmailEditor__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n initialContent: emailContent,\n onChange: (html)=>{\n setEmailContent(html);\n },\n placeholder: \"Write your message here...\",\n minHeight: \"320px\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 481,\n columnNumber: 11\n }, this),\n attachments.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"p-2 border rounded-md bg-gray-50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"text-sm font-medium mb-1 text-gray-700\",\n children: \"Attachments:\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 493,\n columnNumber: 15\n }, this),\n attachments.map((file, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex items-center justify-between text-sm py-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"truncate mr-2 text-gray-800\",\n children: file.name\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 496,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.Button, {\n variant: \"ghost\",\n size: \"sm\",\n onClick: ()=>handleAttachmentRemove(index),\n className: \"h-6 w-6 p-0\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 503,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 497,\n columnNumber: 19\n }, this)\n ]\n }, index, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 495,\n columnNumber: 17\n }, this))\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 492,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 361,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 360,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"border-t p-3 flex items-center justify-between bg-gray-50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"file\",\n id: \"file-attachment\",\n multiple: true,\n onChange: (e)=>{\n if (e.target.files && e.target.files.length > 0) {\n handleAttachmentAdd(e.target.files);\n }\n },\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"hidden\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 516,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: \"file-attachment\",\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"cursor-pointer\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.Button, {\n variant: \"ghost\",\n size: \"sm\",\n className: \"p-1 text-gray-700 hover:bg-gray-100\",\n title: \"Attach files\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 534,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 528,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 527,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 514,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.Button, {\n variant: \"default\",\n onClick: onClose,\n className: \"bg-red-600 hover:bg-red-700 text-white\",\n children: \"Cancel\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 540,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.Button, {\n variant: \"default\",\n onClick: handleSend,\n disabled: sending,\n className: \"bg-blue-600 hover:bg-blue-700 text-white\",\n children: sending ? /*#__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_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"mr-2 h-4 w-4 animate-spin\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 556,\n columnNumber: 17\n }, this),\n \"Sending\"\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_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n className: \"mr-2 h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 561,\n columnNumber: 17\n }, this),\n \"Send\"\n ]\n }, void 0, true)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 548,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 539,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 513,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default()), {\n id: \"4bd026b7b30bfd4c\",\n children: '[contenteditable]{-webkit-user-modify:read-write-plaintext-only;word-wrap:break-word;overflow-wrap:break-word;-webkit-line-break:after-white-space;-webkit-user-select:text;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Arial,sans-serif;font-size:14px;line-height:1.5;color:#333;background-color:#fff}[contenteditable]:focus{outline:none}[contenteditable] blockquote{margin:10px 0;padding-left:15px;border-left:2px solid#ddd;color:#666}[contenteditable] img{max-width:100%;height:auto}[contenteditable] table{border-collapse:collapse;width:100%;max-width:100%;margin-bottom:1rem}[contenteditable] th,[contenteditable] td{padding:5px;border:1px solid#ddd}[contenteditable] th{background-color:#f8f9fa;font-weight:600;text-align:left}.email-original-content{margin-top:20px;color:#505050}'\n }, void 0, false, void 0, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 350,\n columnNumber: 5\n }, this);\n}\n_s(ComposeEmail, \"YH9IrkUO0NjBIMqJAnsJbMh4UoQ=\");\n_c = ComposeEmail;\nvar _c;\n$RefreshReg$(_c, \"ComposeEmail\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZW1haWwvQ29tcG9zZUVtYWlsLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRW9EO0FBRzlCO0FBQzBCO0FBQ0Y7QUFTUDtBQUMwQjtBQUdqRSxvQ0FBb0M7QUFJSDtBQStCbEIsU0FBU21CLGFBQWFDLEtBQXdCOztJQUMzRCxNQUFNLEVBQUVDLFlBQVksRUFBRUMsT0FBTyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxXQUFXLEVBQUUsRUFBRSxHQUFHTDtJQUV2RSx1QkFBdUI7SUFDdkIsTUFBTSxDQUFDTSxpQkFBaUJDLG1CQUFtQixHQUFHM0IsK0NBQVFBLENBQU15QixRQUFRLENBQUMsRUFBRTtJQUN2RSxNQUFNLENBQUNHLElBQUlDLE1BQU0sR0FBRzdCLCtDQUFRQSxDQUFDO0lBQzdCLE1BQU0sQ0FBQzhCLElBQUlDLE1BQU0sR0FBRy9CLCtDQUFRQSxDQUFDO0lBQzdCLE1BQU0sQ0FBQ2dDLEtBQUtDLE9BQU8sR0FBR2pDLCtDQUFRQSxDQUFDO0lBQy9CLE1BQU0sQ0FBQ2tDLFNBQVNDLFdBQVcsR0FBR25DLCtDQUFRQSxDQUFDO0lBQ3ZDLE1BQU0sQ0FBQ29DLGNBQWNDLGdCQUFnQixHQUFHckMsK0NBQVFBLENBQUM7SUFDakQsTUFBTSxDQUFDc0MsUUFBUUMsVUFBVSxHQUFHdkMsK0NBQVFBLENBQUM7SUFDckMsTUFBTSxDQUFDd0MsU0FBU0MsV0FBVyxHQUFHekMsK0NBQVFBLENBQUM7SUFDdkMsTUFBTSxDQUFDMEMsU0FBU0MsV0FBVyxHQUFHM0MsK0NBQVFBLENBQUM7SUFDdkMsTUFBTSxDQUFDNEMsYUFBYUMsZUFBZSxHQUFHN0MsK0NBQVFBLENBQXdELEVBQUU7SUFFeEcsc0JBQXNCO0lBQ3RCLE1BQU04QyxZQUFZN0MsNkNBQU1BLENBQWlCO0lBRXpDLG1EQUFtRDtJQUNuRCxTQUFTOEMseUJBQXlCQyxLQUFVO1lBZXBDQTtRQWROLHFCQUFx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b0NBQ0w4RyxTQUFRO29DQUNSQyxNQUFLO29DQUNMRSxXQUFVO29DQUNWa0IsT0FBTTs4Q0FFTiw0RUFBQ3ZJLDJIQUFTQTt3Q0FBQ3FILFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0NBSzNCLDhEQUFDTDtrRUFBYzs7MENBQ2IsOERBQUM1Ryx5REFBTUE7Z0NBQ0w4RyxTQUFRO2dDQUNSRSxTQUFTakc7Z0NBQ1RrRyxXQUFVOzBDQUNYOzs7Ozs7MENBSUQsOERBQUNqSCx5REFBTUE7Z0NBQ0w4RyxTQUFRO2dDQUNSRSxTQUFTVjtnQ0FDVGdCLFVBQVVwRjtnQ0FDVitFLFdBQVU7MENBRVQvRSx3QkFDQzs7c0RBQ0UsOERBQUNwQywySEFBT0E7NENBQUNtSCxXQUFVOzs7Ozs7d0NBQThCOztpRUFJbkQ7O3NEQUNFLDhEQUFDcEgsMkhBQWNBOzRDQUFDb0gsV0FBVTs7Ozs7O3dDQUFpQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBaUUzRDtHQTFqQndCdEc7S0FBQUEiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvY29tcG9uZW50cy9lbWFpbC9Db21wb3NlRW1haWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZVJlZiwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgXG4gIFgsIFBhcGVyY2xpcCwgU2VuZEhvcml6b250YWwsIExvYWRlcjIsIFBsdXMsIENoZXZyb25Eb3duXG59IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICdAL2NvbXBvbmVudHMvdWkvYnV0dG9uJztcbmltcG9ydCB7IElucHV0IH0gZnJvbSAnQC9jb21wb25lbnRzL3VpL2lucHV0JztcbmltcG9ydCBET01QdXJpZnkgZnJvbSAnaXNvbW9ycGhpYy1kb21wdXJpZnknO1xuaW1wb3J0IHtcbiAgRHJvcGRvd25NZW51LFxuICBEcm9wZG93bk1lbnVDb250ZW50LFxuICBEcm9wZG93bk1lbnVJdGVtLFxuICBEcm9wZG93bk1lbnVMYWJlbCxcbiAgRHJvcGRvd25NZW51U2VwYXJhdG9yLFxuICBEcm9wZG93bk1lbnVUcmlnZ2VyLFxufSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2Ryb3Bkb3duLW1lbnVcIjtcbmltcG9ydCBSaWNoRW1haWxFZGl0b3IgZnJvbSAnQC9jb21wb25lbnRzL2VtYWlsL1JpY2hFbWFpbEVkaXRvcic7XG5pbXBvcnQgeyBkZXRlY3RUZXh0RGlyZWN0aW9uIH0gZnJvbSAnQC9saWIvdXRpbHMvdGV4dC1kaXJlY3Rpb24nO1xuXG4vLyBJbXBvcnQgZnJvbSB0aGUgY2VudHJhbGl6ZWQgdXRpbHNcbmltcG9ydCB7IFxuICBmb3JtYXRSZXBseUVtYWlsLCBcbiAgZm9ybWF0Rm9yd2FyZGVkRW1haWxcbn0gZnJvbSAnQC9saWIvdXRpbHMvZW1haWwtdXRpbHMnO1xuaW1wb3J0IHsgRW1haWxNZXNzYWdlIH0gZnJvbSAnQC90eXBlcy9lbWFpbCc7XG5cbi8qKlxuICogRW1haWwgY29tcG9zZXIgY29tcG9uZW50XG4gKiBIYW5kbGVzIG5ldyBlbWFpbHMsIHJlcGxpZXMsIGFuZCBmb3J3YXJkcyB3aXRoIGEgY2xlYW4gVUlcbiAqL1xuaW50ZXJmYWNlIENvbXBvc2VFbWFpbFByb3BzIHtcbiAgaW5pdGlhbEVtYWlsPzogRW1haWxNZXNzYWdlIHwgbnVsbDtcbiAgdHlwZT86ICduZXcnIHwgJ3JlcGx5JyB8ICdyZXBseS1hbGwnIHwgJ2ZvcndhcmQnO1xuICBvbkNsb3NlOiAoKSA9PiB2b2lkO1xuICBvblNlbmQ6IChlbWFpbERhdGE6IHtcbiAgICB0bzogc3RyaW5nO1xuICAgIGNjPzogc3RyaW5nO1xuICAgIGJjYz86IHN0cmluZztcbiAgICBzdWJqZWN0OiBzdHJpbmc7XG4gICAgYm9keTogc3RyaW5nO1xuICAgIGZyb21BY2NvdW50Pzogc3RyaW5nO1xuICAgIGF0dGFjaG1lbnRzPzogQXJyYXk8e1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgY29udGVudDogc3RyaW5nO1xuICAgICAgdHlwZTogc3RyaW5nO1xuICAgIH0+O1xuICB9KSA9PiBQcm9taXNlPHZvaWQ+O1xuICBhY2NvdW50cz86IEFycmF5PHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgZGlzcGxheV9uYW1lPzogc3RyaW5nO1xuICB9Pjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQ29tcG9zZUVtYWlsKHByb3BzOiBDb21wb3NlRW1haWxQcm9wcykge1xuICBjb25zdCB7IGluaXRpYWxFbWFpbCwgdHlwZSA9ICduZXcnLCBvbkNsb3NlLCBvblNlbmQsIGFjY291bnRzID0gW10gfSA9IHByb3BzO1xuICBcbiAgLy8gU3RhdGUgZm9yIGVtYWlsIGZvcm1cbiAgY29uc3QgW3NlbGVjdGVkQWNjb3VudCwgc2V0U2VsZWN0ZWRBY2NvdW50XSA9IHVzZVN0YXRlPGFueT4oYWNjb3VudHNbMF0pO1xuICBjb25zdCBbdG8sIHNldFRvXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgW2NjLCBzZXRDY10gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IFtiY2MsIHNldEJjY10gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IFtzdWJqZWN0LCBzZXRTdWJqZWN0XSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgW2VtYWlsQ29udGVudCwgc2V0RW1haWxDb250ZW50XSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgW3Nob3dDYywgc2V0U2hvd0NjXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3Nob3dCY2MsIHNldFNob3dCY2NdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2VuZGluZywgc2V0U2VuZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFthdHRhY2htZW50cywgc2V0QXR0YWNobWVudHNdID0gdXNlU3RhdGU8QXJyYXk8e25hbWU6IHN0cmluZzsgY29udGVudDogc3RyaW5nOyB0eXBlOiBzdHJpbmc7fT4+KFtdKTtcbiAgXG4gIC8vIFJlZmVyZW5jZSB0byBlZGl0b3JcbiAgY29uc3QgZWRpdG9yUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IGZvcm1hdHRlZCBpbmZvIGZyb20gZW1haWxcbiAgZnVuY3Rpb24gZ2V0Rm9ybWF0dGVkSW5mb0ZvckVtYWlsKGVtYWlsOiBhbnkpIHtcbiAgICAvLyBGb3JtYXQgdGhlIHN1YmplY3RcbiAgICBjb25zdCBzdWJqZWN0ID0gZW1haWwuc3ViamVjdCB8fCAnJztcblxuICAgIC8vIEZvcm1hdCB0aGUgZGF0ZVxuICAgIGNvbnN0IGRhdGVTdHIgPSBlbWFpbC5kYXRlID8gbmV3IERhdGUoZW1haWwuZGF0ZSkudG9Mb2NhbGVTdHJpbmcoKSA6ICdVbmtub3duIERhdGUnO1xuICAgIFxuICAgIC8vIEZvcm1hdCBzZW5kZXJcbiAgICBjb25zdCBmcm9tU3RyID0gQXJyYXkuaXNBcnJheShlbWFpbC5mcm9tKVxuICAgICAgPyBlbWFpbC5mcm9tLm1hcCgoYWRkcjogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBhZGRyID09PSAnc3RyaW5nJykgcmV0dXJuIGFkZHI7XG4gICAgICAgICAgcmV0dXJuIGFkZHIubmFtZSA/IGAke2FkZHIubmFtZX0gPCR7YWRkci5hZGRyZXNzfT5gIDogYWRkci5hZGRyZXNzO1xuICAgICAgICB9KS5qb2luKCcsICcpXG4gICAgICA6IHR5cGVvZiBlbWFpbC5mcm9tID09PSAnc3RyaW5nJ1xuICAgICAgICA/IGVtYWlsLmZyb21cbiAgICAgICAgOiBlbWFpbC5mcm9tPy5hZGRyZXNzXG4gICAgICAgICAgPyBlbWFpbC5mcm9tLm5hbWVcbiAgICAgICAgICAgID8gYCR7ZW1haWwuZnJvbS5uYW1lfSA8JHtlbWFpbC5mcm9tLmFkZHJlc3N9PmBcbiAgICAgICAgICAgIDogZW1haWwuZnJvbS5hZGRyZXNzXG4gICAgICAgICAgOiAnVW5rbm93biBTZW5kZXInO1xuICAgIFxuICAgIC8vIEZvcm1hdCByZWNpcGllbnRzXG4gICAgY29uc3QgdG9TdHIgPSBBcnJheS5pc0FycmF5KGVtYWlsLnRvKVxuICAgICAgPyBlbWFpbC50by5tYXAoKGFkZHI6IGFueSkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgYWRkciA9PT0gJ3N0cmluZycpIHJldHVybiBhZGRyO1xuICAgICAgICAgIHJldHVybiBhZGRyLm5hbWUgPyBgJHthZGRyLm5hbWV9IDwke2FkZHIuYWRkcmVzc30+YCA6IGFkZHIuYWRkcmVzcztcbiAgICAgICAgfSkuam9pbignLCAnKVxuICAgICAgOiB0eXBlb2YgZW1haWwudG8gPT09ICdzdHJpbmcnXG4gICAgICAgID8gZW1haWwudG9cbiAgICAgICAgOiAnJztcbiAgICBcbiAgICAvLyBGb3JtYXQgQ0MgXG4gICAgY29uc3QgY2NTdHIgPSBBcnJheS5pc0FycmF5KGVtYWlsLmNjKVxuICAgICAgPyBlbWFpbC5jYy5tYXAoKGFkZHI6IGFueSkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgYWRkciA9PT0gJ3N0cmluZycpIHJldHVybiBhZGRyO1xuICAgICAgICAgIHJldHVybiBhZGRyLm5hbWUgPyBgJHthZGRyLm5hbWV9IDwke2FkZHIuYWRkcmVzc30+YCA6IGFkZHIuYWRkcmVzcztcbiAgICAgICAgfSkuam9pbignLCAnKVxuICAgICAgOiB0eXBlb2YgZW1haWwuY2MgPT09ICdzdHJpbmcnXG4gICAgICAgID8gZW1haWwuY2NcbiAgICAgICAgOiAnJztcblxuICAgIHJldHVybiB7IGZyb21TdHIsIHRvU3RyLCBjY1N0ciwgZGF0ZVN0ciwgc3ViamVjdCB9O1xuICB9XG4gIFxuICAvLyBJbml0aWFsaXplIGVtYWlsIGZvcm0gYmFzZWQgb24gaW5pdGlhbCBlbWFpbCBhbmQgdHlwZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpbml0aWFsRW1haWwpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdJbml0aWFsaXppbmcgY29tcG9zZSB3aXRoIGVtYWlsOicsIHtcbiAgICAgICAgICBpZDogaW5pdGlhbEVtYWlsLmlkLFxuICAgICAgICAgIHN1YmplY3Q6IGluaXRpYWxFbWFpbC5zdWJqZWN0LFxuICAgICAgICAgIGhhc0NvbnRlbnQ6ICEhaW5pdGlhbEVtYWlsLmNvbnRlbnQsXG4gICAgICAgICAgY29udGVudFR5cGU6IGluaXRpYWxFbWFpbC5jb250ZW50ID8gdHlwZW9mIGluaXRpYWxFbWFpbC5jb250ZW50IDogJ25vbmUnXG4gICAgICAgIH0pO1xuICAgICAgICBcbiAgICAgICAgLy8gU2V0IGRlZmF1bHQgYWNjb3VudCBmcm9tIG9yaWdpbmFsIGVtYWlsIC0gdXNlIHR5cGUgYXNzZXJ0aW9uIHNpbmNlIGFjY291bnRJZCBtaWdodCBiZSBjdXN0b20gcHJvcGVydHlcbiAgICAgICAgY29uc3QgZW1haWxBbnkgPSBpbml0aWFsRW1haWwgYXMgYW55O1xuICAgICAgICBpZiAoZW1haWxBbnkuYWNjb3VudElkICYmIGFjY291bnRzPy5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zdCBhY2NvdW50ID0gYWNjb3VudHMuZmluZChhID0+IGEuaWQgPT09IGVtYWlsQW55LmFjY291bnRJZCk7XG4gICAgICAgICAgaWYgKGFjY291bnQpIHtcbiAgICAgICAgICAgIHNldFNlbGVjdGVkQWNjb3VudChhY2NvdW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vIEdldCByZWNpcGllbnRzIGJhc2VkIG9uIHR5cGVcbiAgICAgICAgaWYgKHR5cGUgPT09ICdyZXBseScgfHwgdHlwZSA9PT0gJ3JlcGx5LWFsbCcpIHtcbiAgICAgICAgICAvLyBHZXQgZm9ybWF0dGVkIGRhdGEgZm9yIHJlcGx5XG4gICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0UmVwbHlFbWFpbChpbml0aWFsRW1haWwsIHR5cGUpO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIFNldCByZXBseSBhZGRyZXNzZXNcbiAgICAgICAgICBzZXRUbyhmb3JtYXR0ZWQudG8pO1xuICAgICAgICAgIGlmIChmb3JtYXR0ZWQuY2MpIHtcbiAgICAgICAgICAgIHNldFNob3dDYyh0cnVlKTtcbiAgICAgICAgICAgIHNldENjKGZvcm1hdHRlZC5jYyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIC8vIFNldCBzdWJqZWN0XG4gICAgICAgICAgc2V0U3ViamVjdChmb3JtYXR0ZWQuc3ViamVjdCk7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gU2V0IGNvbnRlbnQgd2l0aCBvcmlnaW5hbCBlbWFpbCAtIGVuc3VyZSB3ZSBoYXZlIGNvbnRlbnRcbiAgICAgICAgICBjb25zdCBjb250ZW50ID0gZm9ybWF0dGVkLmNvbnRlbnQuaHRtbCB8fCBmb3JtYXR0ZWQuY29udGVudC50ZXh0IHx8ICcnO1xuICAgICAgICAgIFxuICAgICAgICAgIGlmICghY29udGVudCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdSZXBseSBjb250ZW50IGlzIGVtcHR5LCBmYWxsaW5nIGJhY2sgdG8gYSBiYXNpYyB0ZW1wbGF0ZScpO1xuICAgICAgICAgICAgLy8gUHJvdmlkZSBhIGJhc2ljIHRlbXBsYXRlIGlmIHRoZSBjb250ZW50IGlzIGVtcHR5XG4gICAgICAgICAgICBjb25zdCB7IGZyb21TdHIsIGRhdGVTdHIgfSA9IGdldEZvcm1hdHRlZEluZm9Gb3JFbWFpbChpbml0aWFsRW1haWwpO1xuICAgICAgICAgICAgY29uc3QgZmFsbGJhY2tDb250ZW50ID0gYFxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luOiAyMHB4IDAgMTBweCAwOyBjb2xvcjogIzY2NjsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7IHBhZGRpbmctYm90dG9tOiA1cHg7XCI+XG4gICAgICAgICAgICAgICAgT24gJHtkYXRlU3RyfSwgJHtmcm9tU3RyfSB3cm90ZTpcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxibG9ja3F1b3RlIHN0eWxlPVwibWFyZ2luOiAwOyBwYWRkaW5nLWxlZnQ6IDEwcHg7IGJvcmRlci1sZWZ0OiAzcHggc29saWQgI2RkZDsgY29sb3I6ICM1MDUwNTA7IGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7IHBhZGRpbmc6IDEwcHg7XCI+XG4gICAgICAgICAgICAgICAgW09yaWdpbmFsIG1lc3NhZ2UgY29udGVudCBjb3VsZCBub3QgYmUgbG9hZGVkXVxuICAgICAgICAgICAgICA8L2Jsb2NrcXVvdGU+XG4gICAgICAgICAgICBgO1xuICAgICAgICAgICAgc2V0RW1haWxDb250ZW50KGZhbGxiYWNrQ29udGVudCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdTZXR0aW5nIHJlcGx5IGNvbnRlbnQ6Jywge1xuICAgICAgICAgICAgICBsZW5ndGg6IGNvbnRlbnQubGVuZ3RoLFxuICAgICAgICAgICAgICBpc0h0bWw6IGZvcm1hdHRlZC5jb250ZW50LmlzSHRtbCxcbiAgICAgICAgICAgICAgc3RhcnRzV2l0aEh0bWw6IGNvbnRlbnQudHJpbSgpLnN0YXJ0c1dpdGgoJzwnKSxcbiAgICAgICAgICAgICAgY29udGVudFR5cGU6IHR5cGVvZiBjb250ZW50XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHNldEVtYWlsQ29udGVudChjb250ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gSGFuZGxlIGFueSBhdHRhY2htZW50cyBmcm9tIHJlcGx5IChlLmcuLCBpbmxpbmUgaW1hZ2VzIGV4dHJhY3RlZCBhcyBhdHRhY2htZW50cylcbiAgICAgICAgICBpZiAoZm9ybWF0dGVkLmF0dGFjaG1lbnRzICYmIGZvcm1hdHRlZC5hdHRhY2htZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRBdHRhY2htZW50cyA9IGZvcm1hdHRlZC5hdHRhY2htZW50cy5tYXAoYXR0ID0+ICh7XG4gICAgICAgICAgICAgIG5hbWU6IGF0dC5maWxlbmFtZSB8fCAnYXR0YWNobWVudCcsXG4gICAgICAgICAgICAgIHR5cGU6IGF0dC5jb250ZW50VHlwZSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyxcbiAgICAgICAgICAgICAgY29udGVudDogYXR0LmNvbnRlbnQgfHwgJydcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIHNldEF0dGFjaG1lbnRzKGZvcm1hdHRlZEF0dGFjaG1lbnRzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZSA9PT0gJ2ZvcndhcmQnKSB7XG4gICAgICAgICAgLy8gR2V0IGZvcm1hdHRlZCBkYXRhIGZvciBmb3J3YXJkXG4gICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0Rm9yd2FyZGVkRW1haWwoaW5pdGlhbEVtYWlsKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBTZXQgc3ViamVjdFxuICAgICAgICAgIHNldFN1YmplY3QoZm9ybWF0dGVkLnN1YmplY3QpO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIFNldCBjb250ZW50IHdpdGggb3JpZ2luYWwgZW1haWwgLSBlbnN1cmUgd2UgaGF2ZSBjb250ZW50XG4gICAgICAgICAgY29uc3QgY29udGVudCA9IGZvcm1hdHRlZC5jb250ZW50Lmh0bWwgfHwgZm9ybWF0dGVkLmNvbnRlbnQudGV4dCB8fCAnJztcbiAgICAgICAgICBcbiAgICAgICAgICBpZiAoIWNvbnRlbnQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignRm9yd2FyZCBjb250ZW50IGlzIGVtcHR5LCBmYWxsaW5nIGJhY2sgdG8gYSBiYXNpYyB0ZW1wbGF0ZScpO1xuICAgICAgICAgICAgLy8gUHJvdmlkZSBhIGJhc2ljIHRlbXBsYXRlIGlmIHRoZSBjb250ZW50IGlzIGVtcHR5XG4gICAgICAgICAgICBjb25zdCB7IGZyb21TdHIsIGRhdGVTdHIsIHN1YmplY3Q6IG9yaWdTdWJqZWN0LCB0b1N0ciwgY2NTdHIgfSA9IGdldEZvcm1hdHRlZEluZm9Gb3JFbWFpbChpbml0aWFsRW1haWwpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0NyZWF0aW5nIGZvcndhcmQgZmFsbGJhY2sgd2l0aDonLCB7IGZyb21TdHIsIGRhdGVTdHIsIG9yaWdTdWJqZWN0IH0pO1xuICAgICAgICAgICAgY29uc3QgZmFsbGJhY2tDb250ZW50ID0gYFxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luOiAyMHB4IDAgMTBweCAwOyBjb2xvcjogIzY2NjsgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsgbWFyZ2luLWJvdHRvbTogMTBweDsgcGFkZGluZy1ib3R0b206IDVweDtcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGb3J3YXJkZWQgTWVzc2FnZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHRhYmxlIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMTBweDsgZm9udC1zaXplOiAxNHB4O1wiPlxuICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOiAzcHggMTBweCAzcHggMDsgZm9udC13ZWlnaHQ6IGJvbGQ7IHRleHQtYWxpZ246IHJpZ2h0OyB2ZXJ0aWNhbC1hbGlnbjogdG9wO1wiPkZyb206PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogM3B4IDA7XCI+JHtmcm9tU3RyfTwvdGQ+XG4gICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOiAzcHggMTBweCAzcHggMDsgZm9udC13ZWlnaHQ6IGJvbGQ7IHRleHQtYWxpZ246IHJpZ2h0OyB2ZXJ0aWNhbC1hbGlnbjogdG9wO1wiPkRhdGU6PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogM3B4IDA7XCI+JHtkYXRlU3RyfTwvdGQ+XG4gICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOiAzcHggMTBweCAzcHggMDsgZm9udC13ZWlnaHQ6IGJvbGQ7IHRleHQtYWxpZ246IHJpZ2h0OyB2ZXJ0aWNhbC1hbGlnbjogdG9wO1wiPlN1YmplY3Q6PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogM3B4IDA7XCI+JHtvcmlnU3ViamVjdCB8fCAnJ308L3RkPlxuICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogM3B4IDEwcHggM3B4IDA7IGZvbnQtd2VpZ2h0OiBib2xkOyB0ZXh0LWFsaWduOiByaWdodDsgdmVydGljYWwtYWxpZ246IHRvcDtcIj5Ubzo8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOiAzcHggMDtcIj4ke3RvU3RyfTwvdGQ+XG4gICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgJHtjY1N0ciA/IGBcbiAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogM3B4IDEwcHggM3B4IDA7IGZvbnQtd2VpZ2h0OiBib2xkOyB0ZXh0LWFsaWduOiByaWdodDsgdmVydGljYWwtYWxpZ246IHRvcDtcIj5DYzo8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOiAzcHggMDtcIj4ke2NjU3RyfTwvdGQ+XG4gICAgICAgICAgICAgICAgICA8L3RyPmAgOiAnJ31cbiAgICAgICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsgbWFyZ2luLXRvcDogNXB4OyBtYXJnaW4tYm90dG9tOiAxNXB4OyBwYWRkaW5nLWJvdHRvbTogNXB4O1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdj4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9yd2FyZGVkLWNvbnRlbnRcIiBzdHlsZT1cIm1hcmdpbjogMDsgY29sb3I6ICMzMzM7XCI+XG4gICAgICAgICAgICAgICAgW09yaWdpbmFsIG1lc3NhZ2UgY29udGVudCBjb3VsZCBub3QgYmUgbG9hZGVkXVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGA7XG4gICAgICAgICAgICBzZXRFbWFpbENvbnRlbnQoZmFsbGJhY2tDb250ZW50KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1NldHRpbmcgZm9yd2FyZCBjb250ZW50OicsIHtcbiAgICAgICAgICAgICAgbGVuZ3RoOiBjb250ZW50Lmxlbmd0aCxcbiAgICAgICAgICAgICAgaXNIdG1sOiBmb3JtYXR0ZWQuY29udGVudC5pc0h0bWxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc2V0RW1haWxDb250ZW50KGNvbnRlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBcbiAgICAgICAgICAvLyBIYW5kbGUgYXR0YWNobWVudHMgZm9yIGZvcndhcmQgKG9yaWdpbmFsIGF0dGFjaG1lbnRzICsgZXh0cmFjdGVkIGlubGluZSBpbWFnZXMpXG4gICAgICAgICAgaWYgKGZvcm1hdHRlZC5hdHRhY2htZW50cyAmJiBmb3JtYXR0ZWQuYXR0YWNobWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYFByb2Nlc3NpbmcgJHtmb3JtYXR0ZWQuYXR0YWNobWVudHMubGVuZ3RofSBhdHRhY2htZW50cyBmb3IgZm9yd2FyZGVkIGVtYWlsYCk7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRBdHRhY2htZW50cyA9IGZvcm1hdHRlZC5hdHRhY2htZW50cy5tYXAoYXR0ID0+ICh7XG4gICAgICAgICAgICAgIG5hbWU6IGF0dC5maWxlbmFtZSB8fCAnYXR0YWNobWVudCcsXG4gICAgICAgICAgICAgIHR5cGU6IGF0dC5jb250ZW50VHlwZSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyxcbiAgICAgICAgICAgICAgY29udGVudDogYXR0LmNvbnRlbnQgfHwgJydcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIHNldEF0dGFjaG1lbnRzKGZvcm1hdHRlZEF0dGFjaG1lbnRzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluaXRpYWxpemluZyBjb21wb3NlIGZvcm06JywgZXJyb3IpO1xuICAgICAgICAvLyBQcm92aWRlIGEgZmFsbGJhY2sgaW4gY2FzZSBvZiBlcnJvclxuICAgICAgICBzZXRFbWFpbENvbnRlbnQoJzxwPkVycm9yIGxvYWRpbmcgZW1haWwgY29udGVudDwvcD4nKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtpbml0aWFsRW1haWwsIHR5cGUsIGFjY291bnRzXSk7XG4gIFxuICAvLyBQbGFjZSBjdXJzb3IgYXQgYmVnaW5uaW5nIGFuZCBlbnN1cmUgY29udGVudCBpcyBzY3JvbGxlZCB0byB0b3BcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZWRpdG9yUmVmLmN1cnJlbnQgJiYgdHlwZSAhPT0gJ25ldycpIHtcbiAgICAgIC8vIFNtYWxsIGRlbGF5IHRvIGVuc3VyZSBET00gaXMgcmVhZHlcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAoZWRpdG9yUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAvLyBGb2N1cyB0aGUgZWRpdG9yXG4gICAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBBbHNvIG1ha2Ugc3VyZSBlZGl0b3IgY29udGFpbmVyIGlzIHNjcm9sbGVkIHRvIHRvcFxuICAgICAgICAgIGVkaXRvclJlZi5jdXJyZW50LnNjcm9sbFRvcCA9IDA7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gRmluZCBwYXJlbnQgc2Nyb2xsYWJsZSBjb250YWluZXJzIGFuZCBzY3JvbGwgdGhlbSB0byB0b3BcbiAgICAgICAgICBsZXQgcGFyZW50ID0gZWRpdG9yUmVmLmN1cnJlbnQucGFyZW50RWxlbWVudDtcbiAgICAgICAgICB3aGlsZSAocGFyZW50KSB7XG4gICAgICAgICAgICBpZiAocGFyZW50LmNsYXNzTGlzdC5jb250YWlucygnb3ZlcmZsb3cteS1hdXRvJykpIHtcbiAgICAgICAgICAgICAgcGFyZW50LnNjcm9sbFRvcCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sIDEwMCk7XG4gICAgfVxuICB9LCBbZW1haWxDb250ZW50LCB0eXBlXSk7XG4gIFxuICAvLyBIYW5kbGUgZmlsZSBhdHRhY2htZW50c1xuICBjb25zdCBoYW5kbGVBdHRhY2htZW50QWRkID0gYXN5bmMgKGZpbGVzOiBGaWxlTGlzdCkgPT4ge1xuICAgIGNvbnN0IG5ld0F0dGFjaG1lbnRzID0gQXJyYXkuZnJvbShmaWxlcykubWFwKGZpbGUgPT4gKHtcbiAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgIGNvbnRlbnQ6IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSlcbiAgICB9KSk7XG4gICAgXG4gICAgc2V0QXR0YWNobWVudHMocHJldiA9PiBbLi4ucHJldiwgLi4ubmV3QXR0YWNobWVudHNdKTtcbiAgfTtcbiAgXG4gIGNvbnN0IGhhbmRsZUF0dGFjaG1lbnRSZW1vdmUgPSAoaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIHNldEF0dGFjaG1lbnRzKHByZXYgPT4gcHJldi5maWx0ZXIoKF8sIGkpID0+IGkgIT09IGluZGV4KSk7XG4gIH07XG4gIFxuICAvLyBIYW5kbGUgc2VuZGluZyBlbWFpbFxuICBjb25zdCBoYW5kbGVTZW5kID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmICghdG8pIHtcbiAgICAgIGFsZXJ0KCdQbGVhc2Ugc3BlY2lmeSBhdCBsZWFzdCBvbmUgcmVjaXBpZW50Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIHNldFNlbmRpbmcodHJ1ZSk7XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG9uU2VuZCh7XG4gICAgICAgIHRvLFxuICAgICAgICBjYzogY2MgfHwgdW5kZWZpbmVkLFxuICAgICAgICBiY2M6IGJjYyB8fCB1bmRlZmluZWQsXG4gICAgICAgIHN1YmplY3QsXG4gICAgICAgIGJvZHk6IGVtYWlsQ29udGVudCxcbiAgICAgICAgZnJvbUFjY291bnQ6IHNlbGVjdGVkQWNjb3VudD8uaWQsXG4gICAgICAgIGF0dGFjaG1lbnRzXG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgLy8gUmVzZXQgZm9ybSBhbmQgY2xvc2VcbiAgICAgIG9uQ2xvc2UoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc2VuZGluZyBlbWFpbDonLCBlcnJvcik7XG4gICAgICBhbGVydCgnRmFpbGVkIHRvIHNlbmQgZW1haWwuIFBsZWFzZSB0cnkgYWdhaW4uJyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldFNlbmRpbmcoZmFsc2UpO1xuICAgIH1cbiAgfTtcbiAgXG4gIC8vIEdldCBjb21wb3NlIHRpdGxlIGJhc2VkIG9uIHR5cGVcbiAgY29uc3QgZ2V0Q29tcG9zZVRpdGxlID0gKCkgPT4ge1xuICAgIHN3aXRjaCh0eXBlKSB7XG4gICAgICBjYXNlICdyZXBseSc6IHJldHVybiAnUmVwbHknO1xuICAgICAgY2FzZSAncmVwbHktYWxsJzogcmV0dXJuICdSZXBseSBBbGwnO1xuICAgICAgY2FzZSAnZm9yd2FyZCc6IHJldHVybiAnRm9yd2FyZCc7XG4gICAgICBkZWZhdWx0OiByZXR1cm4gJ05ldyBNZXNzYWdlJztcbiAgICB9XG4gIH07XG4gIFxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBoLWZ1bGwgbWF4LWgtWzgwdmhdIGJnLXdoaXRlIGJvcmRlciByb3VuZGVkLW1kIHNoYWRvdy1tZFwiPlxuICAgICAgey8qIEhlYWRlciAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtMyBib3JkZXItYiBiZy1ncmF5LTUwXCI+XG4gICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtbWVkaXVtIHRleHQtZ3JheS04MDBcIj57Z2V0Q29tcG9zZVRpdGxlKCl9PC9oMj5cbiAgICAgICAgPEJ1dHRvbiB2YXJpYW50PVwiZ2hvc3RcIiBzaXplPVwiaWNvblwiIG9uQ2xpY2s9e29uQ2xvc2V9PlxuICAgICAgICAgIDxYIGNsYXNzTmFtZT1cImgtNSB3LTVcIiAvPlxuICAgICAgICA8L0J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICB7LyogRW1haWwgRm9ybSAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIG92ZXJmbG93LXktYXV0byBiZy13aGl0ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtMiBzcGFjZS15LTJcIj5cbiAgICAgICAgICB7LyogRnJvbSAqL31cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJvcmRlci1iIHBiLTFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidy0xNiB0ZXh0LWdyYXktNzAwIHRleHQtc20gZm9udC1tZWRpdW1cIj5Gcm9tOjwvc3Bhbj5cbiAgICAgICAgICAgICAgPERyb3Bkb3duTWVudT5cbiAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51VHJpZ2dlciBhc0NoaWxkPlxuICAgICAgICAgICAgICAgICAgPEJ1dHRvbiBcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cIm91dGxpbmVcIiBcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBoLTggcHgtMiBweS0xIHRleHQtbGVmdCBmb250LW5vcm1hbCBiZy13aGl0ZSB0ZXh0LWdyYXktODAwIGJvcmRlci1ncmF5LTIwMFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3NlbGVjdGVkQWNjb3VudCA/IFxuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQWNjb3VudC5kaXNwbGF5X25hbWUgPyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7c2VsZWN0ZWRBY2NvdW50LmRpc3BsYXlfbmFtZX0gPCR7c2VsZWN0ZWRBY2NvdW50LmVtYWlsfT5gIDogXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkQWNjb3VudC5lbWFpbCkgOiBcbiAgICAgICAgICAgICAgICAgICAgICAgICdTZWxlY3QgYWNjb3VudCd9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPENoZXZyb25Eb3duIGNsYXNzTmFtZT1cImgtNCB3LTQgb3BhY2l0eS01MFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudVRyaWdnZXI+XG4gICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUNvbnRlbnQgYWxpZ249XCJzdGFydFwiIGNsYXNzTmFtZT1cInctWzI0MHB4XVwiPlxuICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUxhYmVsPlNlbGVjdCBhY2NvdW50PC9Ecm9wZG93bk1lbnVMYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxEcm9wZG93bk1lbnVTZXBhcmF0b3IgLz5cbiAgICAgICAgICAgICAgICAgIHthY2NvdW50cy5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgICAgICAgICBhY2NvdW50cy5tYXAoYWNjb3VudCA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUl0ZW0gXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2FjY291bnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTZWxlY3RlZEFjY291bnQoYWNjb3VudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjdXJzb3ItcG9pbnRlciBob3ZlcjpiZy1ibHVlLTUwIGZvY3VzOmJnLWJsdWUtNTBcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHthY2NvdW50LmRpc3BsYXlfbmFtZSA/IFxuICAgICAgICAgICAgICAgICAgICAgICAgICBgJHthY2NvdW50LmRpc3BsYXlfbmFtZX0gPCR7YWNjb3VudC5lbWFpbH0+YCA6IFxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50LmVtYWlsfVxuICAgICAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd25NZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxEcm9wZG93bk1lbnVJdGVtIGRpc2FibGVkPk5vIGFjY291bnRzIGF2YWlsYWJsZTwvRHJvcGRvd25NZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9Ecm9wZG93bk1lbnVDb250ZW50PlxuICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIHsvKiBSZWNpcGllbnRzICovfVxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm9yZGVyLWIgcGItMVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ3LTE2IHRleHQtZ3JheS03MDAgdGV4dC1zbSBmb250LW1lZGl1bVwiPlRvOjwvc3Bhbj5cbiAgICAgICAgICAgICAgPElucHV0IFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICB2YWx1ZT17dG99XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRUbyhlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJyZWNpcGllbnRAZXhhbXBsZS5jb21cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMSBib3JkZXItMCBzaGFkb3ctbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMCBweC0wIGgtOCBiZy13aGl0ZSB0ZXh0LWdyYXktODAwXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgICB7c2hvd0NjICYmIChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInctMTYgdGV4dC1ncmF5LTcwMCB0ZXh0LXNtIGZvbnQtbWVkaXVtXCI+Q2M6PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxJbnB1dCBcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtjY31cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Q2MoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJjY0BleGFtcGxlLmNvbVwiXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4LTEgYm9yZGVyLTAgc2hhZG93LW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTAgcHgtMCBoLTggYmctd2hpdGUgdGV4dC1ncmF5LTgwMFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICB7c2hvd0JjYyAmJiAoXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ3LTE2IHRleHQtZ3JheS03MDAgdGV4dC1zbSBmb250LW1lZGl1bVwiPkJjYzo8L3NwYW4+XG4gICAgICAgICAgICAgICAgPElucHV0IFxuICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2JjY31cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0QmNjKGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiYmNjQGV4YW1wbGUuY29tXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMSBib3JkZXItMCBzaGFkb3ctbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMCBweC0wIGgtOCBiZy13aGl0ZSB0ZXh0LWdyYXktODAwXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHsvKiBDQy9CQ0MgVG9nZ2xlIExpbmtzICovfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGdhcC0zIG1sLTE2XCI+XG4gICAgICAgICAgICAgIHshc2hvd0NjICYmIChcbiAgICAgICAgICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1ibHVlLTYwMCB0ZXh0LXNtIGhvdmVyOnVuZGVybGluZVwiXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaG93Q2ModHJ1ZSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQWRkIENjXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICB7IXNob3dCY2MgJiYgKFxuICAgICAgICAgICAgICAgIDxidXR0b24gXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWJsdWUtNjAwIHRleHQtc20gaG92ZXI6dW5kZXJsaW5lXCJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNob3dCY2ModHJ1ZSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQWRkIEJjY1xuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXG4gICAgICAgICAgey8qIFN1YmplY3QgKi99XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJib3JkZXItYiBwYi0xXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInctMTYgdGV4dC1ncmF5LTcwMCB0ZXh0LXNtIGZvbnQtbWVkaXVtXCI+U3ViamVjdDo8L3NwYW4+XG4gICAgICAgICAgICAgIDxJbnB1dCBcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgdmFsdWU9e3N1YmplY3R9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRTdWJqZWN0KGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlN1YmplY3RcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMSBib3JkZXItMCBzaGFkb3ctbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMCBweC0wIGgtOCBiZy13aGl0ZSB0ZXh0LWdyYXktODAwXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIHsvKiBNZXNzYWdlIEJvZHkgKi99XG4gICAgICAgICAgPFJpY2hFbWFpbEVkaXRvclxuICAgICAgICAgICAgaW5pdGlhbENvbnRlbnQ9e2VtYWlsQ29udGVudH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoaHRtbCkgPT4ge1xuICAgICAgICAgICAgICBzZXRFbWFpbENvbnRlbnQoaHRtbCk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJXcml0ZSB5b3VyIG1lc3NhZ2UgaGVyZS4uLlwiXG4gICAgICAgICAgICBtaW5IZWlnaHQ9XCIzMjBweFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICBcbiAgICAgICAgICB7LyogQXR0YWNobWVudHMgKi99XG4gICAgICAgICAge2F0dGFjaG1lbnRzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTIgYm9yZGVyIHJvdW5kZWQtbWQgYmctZ3JheS01MFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW0gbWItMSB0ZXh0LWdyYXktNzAwXCI+QXR0YWNobWVudHM6PC9kaXY+XG4gICAgICAgICAgICAgIHthdHRhY2htZW50cy5tYXAoKGZpbGUsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gdGV4dC1zbSBweS0xXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0cnVuY2F0ZSBtci0yIHRleHQtZ3JheS04MDBcIj57ZmlsZS5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxCdXR0b24gXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUF0dGFjaG1lbnRSZW1vdmUoaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTYgdy02IHAtMFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxYIGNsYXNzTmFtZT1cImgtNCB3LTRcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIFxuICAgICAgey8qIEZvb3RlciAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm9yZGVyLXQgcC0zIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBiZy1ncmF5LTUwXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICB7LyogRmlsZSBJbnB1dCBmb3IgQXR0YWNobWVudHMgLSBzaW1wbGVyIHZlcnNpb24gKi99XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICBpZD1cImZpbGUtYXR0YWNobWVudFwiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoZS50YXJnZXQuZmlsZXMgJiYgZS50YXJnZXQuZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGhhbmRsZUF0dGFjaG1lbnRBZGQoZS50YXJnZXQuZmlsZXMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJmaWxlLWF0dGFjaG1lbnRcIiBjbGFzc05hbWU9XCJjdXJzb3ItcG9pbnRlclwiPlxuICAgICAgICAgICAgPEJ1dHRvbiBcbiAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCIgXG4gICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInAtMSB0ZXh0LWdyYXktNzAwIGhvdmVyOmJnLWdyYXktMTAwXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJBdHRhY2ggZmlsZXNcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8UGFwZXJjbGlwIGNsYXNzTmFtZT1cImgtNSB3LTVcIiAvPlxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgPEJ1dHRvbiBcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2xvc2V9XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1yZWQtNjAwIGhvdmVyOmJnLXJlZC03MDAgdGV4dC13aGl0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgdmFyaWFudD1cImRlZmF1bHRcIlxuICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtzZW5kaW5nfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctYmx1ZS02MDAgaG92ZXI6YmctYmx1ZS03MDAgdGV4dC13aGl0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlbmRpbmcgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPExvYWRlcjIgY2xhc3NOYW1lPVwibXItMiBoLTQgdy00IGFuaW1hdGUtc3BpblwiIC8+XG4gICAgICAgICAgICAgICAgU2VuZGluZ1xuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPFNlbmRIb3Jpem9udGFsIGNsYXNzTmFtZT1cIm1yLTIgaC00IHctNFwiIC8+XG4gICAgICAgICAgICAgICAgU2VuZFxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIHsvKiBTdHlsZXMgZm9yIGVtYWlsIGNvbnRlbnQgKi99XG4gICAgICA8c3R5bGUganN4IGdsb2JhbD57YFxuICAgICAgICBbY29udGVudGVkaXRhYmxlXSB7XG4gICAgICAgICAgLXdlYmtpdC11c2VyLW1vZGlmeTogcmVhZC13cml0ZS1wbGFpbnRleHQtb25seTtcbiAgICAgICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgICAgICAgIC13ZWJraXQtbGluZS1icmVhazogYWZ0ZXItd2hpdGUtc3BhY2U7XG4gICAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDtcbiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgICAgY29sb3I6ICMzMzM7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgW2NvbnRlbnRlZGl0YWJsZV06Zm9jdXMge1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIFtjb250ZW50ZWRpdGFibGVdIGJsb2NrcXVvdGUge1xuICAgICAgICAgIG1hcmdpbjogMTBweCAwO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICAgICAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICNkZGQ7XG4gICAgICAgICAgY29sb3I6ICM2NjY7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIFtjb250ZW50ZWRpdGFibGVdIGltZyB7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgW2NvbnRlbnRlZGl0YWJsZV0gdGFibGUge1xuICAgICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIFtjb250ZW50ZWRpdGFibGVdIHRoLFxuICAgICAgICBbY29udGVudGVkaXRhYmxlXSB0ZCB7XG4gICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIFtjb250ZW50ZWRpdGFibGVdIHRoIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLyogRm9yd2FyZGVkIG1lc3NhZ2Ugc3R5bGVzICovXG4gICAgICAgIC5lbWFpbC1vcmlnaW5hbC1jb250ZW50IHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICAgIGNvbG9yOiAjNTA1MDUwO1xuICAgICAgICB9XG4gICAgICBgfTwvc3R5bGU+XG4gICAgPC9kaXY+XG4gICk7XG59ICJdLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZVJlZiIsInVzZUVmZmVjdCIsIlgiLCJQYXBlcmNsaXAiLCJTZW5kSG9yaXpvbnRhbCIsIkxvYWRlcjIiLCJDaGV2cm9uRG93biIsIkJ1dHRvbiIsIklucHV0IiwiRHJvcGRvd25NZW51IiwiRHJvcGRvd25NZW51Q29udGVudCIsIkRyb3Bkb3duTWVudUl0ZW0iLCJEcm9wZG93bk1lbnVMYWJlbCIsIkRyb3Bkb3duTWVudVNlcGFyYXRvciIsIkRyb3Bkb3duTWVudVRyaWdnZXIiLCJSaWNoRW1haWxFZGl0b3IiLCJmb3JtYXRSZXBseUVtYWlsIiwiZm9ybWF0Rm9yd2FyZGVkRW1haWwiLCJDb21wb3NlRW1haWwiLCJwcm9wcyIsImluaXRpYWxFbWFpbCIsInR5cGUiLCJvbkNsb3NlIiwib25TZW5kIiwiYWNjb3VudHMiLCJzZWxlY3RlZEFjY291bnQiLCJzZXRTZWxlY3RlZEFjY291bnQiLCJ0byIsInNldFRvIiwiY2MiLCJzZXRDYyIsImJjYyIsInNldEJjYyIsInN1YmplY3QiLCJzZXRTdWJqZWN0IiwiZW1haWxDb250ZW50Iiwic2V0RW1haWxDb250ZW50Iiwic2hvd0NjIiwic2V0U2hvd0NjIiwic2hvd0JjYyIsInNldFNob3dCY2MiLCJzZW5kaW5nIiwic2V0U2VuZGluZyIsImF0dGFjaG1lbnRzIiwic2V0QXR0YWNobWVudHMiLCJlZGl0b3JSZWYiLCJnZXRGb3JtYXR0ZWRJbmZvRm9yRW1haWwiLCJlbWFpbCIsImRhdGVTdHIiLCJkYXRlIiwiRGF0ZSIsInRvTG9jYWxlU3RyaW5nIiwiZnJvbVN0ciIsIkFycmF5IiwiaXNBcnJheSIsImZyb20iLCJtYXAiLCJhZGRyIiwibmFtZSIsImFkZHJlc3MiLCJqb2luIiwidG9TdHIiLCJjY1N0ciIsImNvbnNvbGUiLCJsb2ciLCJpZCIsImhhc0NvbnRlbnQiLCJjb250ZW50IiwiY29udGVudFR5cGUiLCJlbWFpbEFueSIsImFjY291bnRJZCIsImxlbmd0aCIsImFjY291bnQiLCJmaW5kIiwiYSIsImZvcm1hdHRlZCIsImh0bWwiLCJ0ZXh0Iiwid2FybiIsImZhbGxiYWNrQ29udGVudCIsImlzSHRtbCIsInN0YXJ0c1dpdGhIdG1sIiwidHJpbSIsInN0YXJ0c1dpdGgiLCJmb3JtYXR0ZWRBdHRhY2htZW50cyIsImF0dCIsImZpbGVuYW1lIiwib3JpZ1N1YmplY3QiLCJlcnJvciIsImN1cnJlbnQiLCJzZXRUaW1lb3V0IiwiZm9jdXMiLCJzY3JvbGxUb3AiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwiY2xhc3NMaXN0IiwiY29udGFpbnMiLCJoYW5kbGVBdHRhY2htZW50QWRkIiwiZmlsZXMiLCJuZXdBdHRhY2htZW50cyIsImZpbGUiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJwcmV2IiwiaGFuZGxlQXR0YWNobWVudFJlbW92ZSIsImluZGV4IiwiZmlsdGVyIiwiXyIsImkiLCJoYW5kbGVTZW5kIiwiYWxlcnQiLCJ1bmRlZmluZWQiLCJib2R5IiwiZnJvbUFjY291bnQiLCJnZXRDb21wb3NlVGl0bGUiLCJkaXYiLCJoMiIsInZhcmlhbnQiLCJzaXplIiwib25DbGljayIsImNsYXNzTmFtZSIsInNwYW4iLCJhc0NoaWxkIiwiZGlzcGxheV9uYW1lIiwiYWxpZ24iLCJkaXNhYmxlZCIsInZhbHVlIiwib25DaGFuZ2UiLCJlIiwidGFyZ2V0IiwicGxhY2Vob2xkZXIiLCJidXR0b24iLCJpbml0aWFsQ29udGVudCIsIm1pbkhlaWdodCIsImlucHV0IiwibXVsdGlwbGUiLCJsYWJlbCIsImh0bWxGb3IiLCJ0aXRsZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/email/ComposeEmail.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/email/EmailDetailView.tsx": /*!**********************************************!*\ !*** ./components/email/EmailDetailView.tsx ***! \**********************************************/ /***/ ((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\": () => (/* binding */ EmailDetailView)\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 _barrel_optimize_names_ChevronLeft_Forward_Reply_ReplyAll_Star_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronLeft,Forward,Reply,ReplyAll,Star!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-left.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronLeft_Forward_Reply_ReplyAll_Star_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronLeft,Forward,Reply,ReplyAll,Star!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/reply.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronLeft_Forward_Reply_ReplyAll_Star_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronLeft,Forward,Reply,ReplyAll,Star!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/reply-all.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronLeft_Forward_Reply_ReplyAll_Star_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronLeft,Forward,Reply,ReplyAll,Star!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/forward.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronLeft_Forward_Reply_ReplyAll_Star_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronLeft,Forward,Reply,ReplyAll,Star!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/star.js\");\n/* harmony import */ var _components_ui_scroll_area__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/scroll-area */ \"(app-pages-browser)/./components/ui/scroll-area.tsx\");\n/* harmony import */ var _components_ui_avatar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ui/avatar */ \"(app-pages-browser)/./components/ui/avatar.tsx\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n\n\n\n\n\n\n\nfunction EmailDetailView(param) {\n let { email, onBack, onReply, onReplyAll, onForward, onToggleStar } = param;\n var _email_from_, _email_from, _email_from_1, _email_from1, _email_from_2, _email_from2, _email_from_3, _email_from3, _email_to_, _email_to;\n // Format date for display\n const formatDate = (dateString)=>{\n // Convert to Date object if string\n const date = typeof dateString === 'string' ? new Date(dateString) : dateString;\n const now = new Date();\n if (date.toDateString() === now.toDateString()) {\n return date.toLocaleTimeString([], {\n hour: '2-digit',\n minute: '2-digit'\n });\n } else {\n return date.toLocaleDateString([], {\n month: 'short',\n day: 'numeric'\n });\n }\n };\n // Render email content based on the email body\n const renderEmailContent = ()=>{\n try {\n console.log('EmailDetailView renderEmailContent', {\n hasContent: !!email.content,\n contentType: typeof email.content,\n hasHtml: !!email.html,\n hasText: !!email.text\n });\n // Determine what content to use and how to handle it\n let contentToUse = '';\n if (email.content) {\n // If content is a string, use it directly\n if (typeof email.content === 'string') {\n contentToUse = email.content;\n } else if (typeof email.content === 'object') {\n contentToUse = email.content.html || email.content.text || '';\n }\n } else if (email.html) {\n contentToUse = email.html;\n } else if (email.text) {\n // Convert plain text to HTML with line breaks\n contentToUse = email.text.replace(/&/g, '&').replace(//g, '>').replace(/\\n/g, '
');\n }\n // Return content or fallback message\n return contentToUse ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n dangerouslySetInnerHTML: {\n __html: contentToUse\n }\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 83,\n columnNumber: 9\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-500\",\n children: \"No content available\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 84,\n columnNumber: 9\n }, this);\n } catch (e) {\n console.error('Error rendering email:', e);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-500\",\n children: \"Failed to render email content\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 87,\n columnNumber: 14\n }, this);\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"flex flex-col h-full overflow-hidden\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"flex-none px-4 py-3 border-b border-gray-100\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"flex items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"flex items-center gap-2 min-w-0 flex-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_5__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n onClick: onBack,\n className: \"md:hidden flex-shrink-0\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronLeft_Forward_Reply_ReplyAll_Star_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 103,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 97,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"min-w-0 max-w-[500px]\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"text-lg font-semibold text-gray-900 truncate\",\n children: email.subject\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 106,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 105,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 96,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"flex items-center gap-1 flex-shrink-0 ml-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"flex items-center border-l border-gray-200 pl-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_5__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"text-gray-400 hover:text-gray-900 h-9 w-9\",\n onClick: onReply,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronLeft_Forward_Reply_ReplyAll_Star_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 119,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 113,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_5__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"text-gray-400 hover:text-gray-900 h-9 w-9\",\n onClick: onReplyAll,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronLeft_Forward_Reply_ReplyAll_Star_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 127,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 121,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_5__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"text-gray-400 hover:text-gray-900 h-9 w-9\",\n onClick: onForward,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronLeft_Forward_Reply_ReplyAll_Star_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 135,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 129,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_5__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"text-gray-400 hover:text-gray-900 h-9 w-9\",\n onClick: onToggleStar,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronLeft_Forward_Reply_ReplyAll_Star_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"h-4 w-4 \".concat(email.starred ? 'fill-yellow-400 text-yellow-400' : '')\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 143,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 137,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 112,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 111,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 95,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 94,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_scroll_area__WEBPACK_IMPORTED_MODULE_3__.ScrollArea, {\n className: \"flex-1 overflow-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"flex items-center gap-4 mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_avatar__WEBPACK_IMPORTED_MODULE_4__.Avatar, {\n className: \"h-10 w-10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_avatar__WEBPACK_IMPORTED_MODULE_4__.AvatarFallback, {\n children: (((_email_from = email.from) === null || _email_from === void 0 ? void 0 : (_email_from_ = _email_from[0]) === null || _email_from_ === void 0 ? void 0 : _email_from_.name) || '').charAt(0) || (((_email_from1 = email.from) === null || _email_from1 === void 0 ? void 0 : (_email_from_1 = _email_from1[0]) === null || _email_from_1 === void 0 ? void 0 : _email_from_1.address) || '').charAt(0) || '?'\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 156,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 155,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"flex-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"font-medium text-gray-900\",\n children: [\n ((_email_from2 = email.from) === null || _email_from2 === void 0 ? void 0 : (_email_from_2 = _email_from2[0]) === null || _email_from_2 === void 0 ? void 0 : _email_from_2.name) || '',\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"text-gray-500\",\n children: [\n \"<\",\n ((_email_from3 = email.from) === null || _email_from3 === void 0 ? void 0 : (_email_from_3 = _email_from3[0]) === null || _email_from_3 === void 0 ? void 0 : _email_from_3.address) || '',\n \">\"\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 162,\n columnNumber: 47\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 161,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"text-sm text-gray-500\",\n children: [\n \"to \",\n ((_email_to = email.to) === null || _email_to === void 0 ? void 0 : (_email_to_ = _email_to[0]) === null || _email_to_ === void 0 ? void 0 : _email_to_.address) || ''\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 164,\n columnNumber: 15\n }, this),\n email.cc && email.cc.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"text-sm text-gray-500\",\n children: [\n \"cc \",\n email.cc.map((c)=>c.address).join(', ')\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 168,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 160,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"text-sm text-gray-500 whitespace-nowrap\",\n children: formatDate(email.date)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 173,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 154,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"prose prose-sm max-w-none email-content-wrapper\",\n children: renderEmailContent()\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 179,\n columnNumber: 11\n }, this),\n email.hasAttachments && email.attachments && email.attachments.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"mt-6 border-t border-gray-100 pt-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"text-sm font-medium text-gray-900 mb-2\",\n children: \"Attachments\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 186,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"grid grid-cols-1 sm:grid-cols-2 gap-2\",\n children: email.attachments.map((attachment, idx)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"flex items-center gap-2 p-2 border border-gray-200 rounded-md\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"flex-1 min-w-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"text-sm font-medium text-gray-700 truncate\",\n children: attachment.filename\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 194,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"text-xs text-gray-500\",\n children: [\n (attachment.size / 1024).toFixed(1),\n \" KB\"\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 195,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 193,\n columnNumber: 21\n }, this)\n }, idx, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 189,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 187,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 185,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 152,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 151,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default()), {\n id: \"a4b854e4f3e043c7\",\n children: \".email-content-wrapper{width:100%;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word}.email-content-wrapper img{max-width:100%;height:auto}.email-content-wrapper table{max-width:100%;overflow-x:auto;display:block}@media(max-width:640px){.email-content-wrapper{font-size:14px}}\"\n }, void 0, false, void 0, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 92,\n columnNumber: 5\n }, this);\n}\n_c = EmailDetailView;\nvar _c;\n$RefreshReg$(_c, \"EmailDetailView\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZW1haWwvRW1haWxEZXRhaWxWaWV3LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTBCO0FBR0o7QUFDbUM7QUFDTztBQUNoQjtBQWdCakMsU0FBU1UsZ0JBQWdCLEtBT2pCO1FBUGlCLEVBQ3RDQyxLQUFLLEVBQ0xDLE1BQU0sRUFDTkMsT0FBTyxFQUNQQyxVQUFVLEVBQ1ZDLFNBQVMsRUFDVEMsWUFBWSxFQUNTLEdBUGlCO1FBc0l0QkwsY0FBQUEsYUFBMkNBLGVBQUFBLGNBSzVDQSxlQUFBQSxjQUFrRUEsZUFBQUEsY0FHL0RBLFlBQUFBO0lBcklsQiwwQkFBMEI7SUFDMUIsTUFBTU0sYUFBYSxDQUFDQztRQUNsQixtQ0FBbUM7UUFDbkMsTUFBTUMsT0FBTyxPQUFPRCxlQUFlLFdBQVcsSUFBSUUsS0FBS0YsY0FBY0E7UUFDckUsTUFBTUcsTUFBTSxJQUFJRDtRQUVoQixJQUFJRCxLQUFLRyxZQUFZLE9BQU9ELElBQUlDLFlBQVksSUFBSTtZQUM5QyxPQUFPSCxLQUFLSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUU7Z0JBQUVDLE1BQU07Z0JBQVdDLFFBQVE7WUFBVTtRQUMxRSxPQUFPO1lBQ0wsT0FBT04sS0FBS08sa0JBQWtCLENBQUMsRUFBRSxFQUFFO2dCQUFFQyxPQUFPO2dCQUFTQyxLQUFLO1lBQVU7UUFDdEU7SUFDRjtJQUVBLCtDQUErQztJQUMvQyxNQUFNQyxxQkFBcUI7UUFDekIsSUFBSTtZQUNGQyxRQUFRQyxHQUFHLENBQUMsc0NBQXNDO2dCQUNoREMsWUFBWSxDQUFDLENBQUNyQixNQUFNc0IsT0FBTztnQkFDM0JDLGFBQWEsT0FBT3ZCLE1BQU1zQixPQUFPO2dCQUNqQ0UsU0FBUyxDQUFDLENBQUN4QixNQUFNeUIsSUFBSTtnQkFDckJDLFNBQVMsQ0FBQyxDQUFDMUIsTUFBTTJCLElBQUk7WUFDdkI7WUFFQSxxREFBcUQ7WUFDckQsSUFBSUMsZUFBZTtZQUVuQixJ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REFBQzBCOzhFQUFhOzhDQUF5Qzs7Ozs7OzhDQUN2RCw4REFBQzFCOzhFQUFjOzhDQUNaOUIsTUFBTXVELFdBQVcsQ0FBQ0osR0FBRyxDQUFDLENBQUNNLFlBQVlDLG9CQUNsQyw4REFBQzVCO3NGQUVXO3NEQUVWLDRFQUFDQTswRkFBYzs7a0VBQ2IsOERBQUNnQjtrR0FBWTtrRUFBOENXLFdBQVdFLFFBQVE7Ozs7OztrRUFDOUUsOERBQUNiO2tHQUFZOzs0REFBMEJXLENBQUFBLFdBQVdwQixJQUFJLEdBQUcsSUFBRyxFQUFHdUIsT0FBTyxDQUFDOzREQUFHOzs7Ozs7Ozs7Ozs7OzJDQUx2RUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEyQ3pCO0tBbE53QjNEIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2NvbXBvbmVudHMvZW1haWwvRW1haWxEZXRhaWxWaWV3LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgXG4gIENoZXZyb25MZWZ0LCBSZXBseSwgUmVwbHlBbGwsIEZvcndhcmQsIFN0YXIsIE1vcmVIb3Jpem9udGFsXG59IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQgeyBTY3JvbGxBcmVhIH0gZnJvbSAnQC9jb21wb25lbnRzL3VpL3Njcm9sbC1hcmVhJztcbmltcG9ydCB7IEF2YXRhciwgQXZhdGFyRmFsbGJhY2sgfSBmcm9tICdAL2NvbXBvbmVudHMvdWkvYXZhdGFyJztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9idXR0b24nO1xuaW1wb3J0IHsgRW1haWwgfSBmcm9tICdAL2hvb2tzL3VzZS1jb3Vycmllcic7XG5cbmludGVyZmFjZSBFbWFpbERldGFpbFZpZXdQcm9wcyB7XG4gIGVtYWlsOiBFbWFpbCAmIHsgXG4gICAgaHRtbD86IHN0cmluZzsgXG4gICAgdGV4dD86IHN0cmluZztcbiAgICBzdGFycmVkPzogYm9vbGVhbjsgLy8gQWRkIHN0YXJyZWQgcHJvcGVydHkgdG8gaW50ZXJmYWNlXG4gIH07XG4gIG9uQmFjazogKCkgPT4gdm9pZDtcbiAgb25SZXBseTogKCkgPT4gdm9pZDtcbiAgb25SZXBseUFsbDogKCkgPT4gdm9pZDtcbiAgb25Gb3J3YXJkOiAoKSA9PiB2b2lkO1xuICBvblRvZ2dsZVN0YXI6ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEVtYWlsRGV0YWlsVmlldyh7XG4gIGVtYWlsLFxuICBvbkJhY2ssXG4gIG9uUmVwbHksXG4gIG9uUmVwbHlBbGwsXG4gIG9uRm9yd2FyZCxcbiAgb25Ub2dnbGVTdGFyXG59OiBFbWFpbERldGFpbFZpZXdQcm9wcykge1xuICBcbiAgLy8gRm9ybWF0IGRhdGUgZm9yIGRpc3BsYXlcbiAgY29uc3QgZm9ybWF0RGF0ZSA9IChkYXRlU3RyaW5nOiBzdHJpbmcgfCBEYXRlKSA9PiB7XG4gICAgLy8gQ29udmVydCB0byBEYXRlIG9iamVjdCBpZiBzdHJpbmdcbiAgICBjb25zdCBkYXRlID0gdHlwZW9mIGRhdGVTdHJpbmcgPT09ICdzdHJpbmcnID8gbmV3IERhdGUoZGF0ZVN0cmluZykgOiBkYXRlU3RyaW5nO1xuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgXG4gICAgaWYgKGRhdGUudG9EYXRlU3RyaW5nKCkgPT09IG5vdy50b0RhdGVTdHJpbmcoKSkge1xuICAgICAgcmV0dXJuIGRhdGUudG9Mb2NhbGVUaW1lU3RyaW5nKFtdLCB7IGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhbXSwgeyBtb250aDogJ3Nob3J0JywgZGF5OiAnbnVtZXJpYycgfSk7XG4gICAgfVxuICB9O1xuICBcbiAgLy8gUmVuZGVyIGVtYWlsIGNvbnRlbnQgYmFzZWQgb24gdGhlIGVtYWlsIGJvZHlcbiAgY29uc3QgcmVuZGVyRW1haWxDb250ZW50ID0gKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zb2xlLmxvZygnRW1haWxEZXRhaWxWaWV3IHJlbmRlckVtYWlsQ29udGVudCcsIHtcbiAgICAgICAgaGFzQ29udGVudDogISFlbWFpbC5jb250ZW50LFxuICAgICAgICBjb250ZW50VHlwZTogdHlwZW9mIGVtYWlsLmNvbnRlbnQsXG4gICAgICAgIGhhc0h0bWw6ICEhZW1haWwuaHRtbCxcbiAgICAgICAgaGFzVGV4dDogISFlbWFpbC50ZXh0XG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgLy8gRGV0ZXJtaW5lIHdoYXQgY29udGVudCB0byB1c2UgYW5kIGhvdyB0byBoYW5kbGUgaXRcbiAgICAgIGxldCBjb250ZW50VG9Vc2UgPSAnJztcbiAgICAgIFxuICAgICAgaWYgKGVtYWlsLmNvbnRlbnQpIHtcbiAgICAgICAgLy8gSWYgY29udGVudCBpcyBhIHN0cmluZywgdXNlIGl0IGRpcmVjdGx5XG4gICAgICAgIGlmICh0eXBlb2YgZW1haWwuY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBjb250ZW50VG9Vc2UgPSBlbWFpbC5jb250ZW50O1xuICAgICAgICB9IFxuICAgICAgICAvLyBJZiBjb250ZW50IGlzIGFuIG9iamVjdCB3aXRoIGh0bWwvdGV4dCBwcm9wZXJ0aWVzXG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBlbWFpbC5jb250ZW50ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIGNvbnRlbnRUb1VzZSA9IGVtYWlsLmNvbnRlbnQuaHRtbCB8fCBlbWFpbC5jb250ZW50LnRleHQgfHwgJyc7XG4gICAgICAgIH1cbiAgICAgIH0gXG4gICAgICAvLyBGYWxsIGJhY2sgdG8gaHRtbCBvciB0ZXh0IHByb3BlcnRpZXMgaWYgY29udGVudCBpcyBub3QgYXZhaWxhYmxlXG4gICAgICBlbHNlIGlmIChlbWFpbC5odG1sKSB7XG4gICAgICAgIGNvbnRlbnRUb1VzZSA9IGVtYWlsLmh0bWw7XG4gICAgICB9IFxuICAgICAgZWxzZSBpZiAoZW1haWwudGV4dCkge1xuICAgICAgICAvLyBDb252ZXJ0IHBsYWluIHRleHQgdG8gSFRNTCB3aXRoIGxpbmUgYnJlYWtzXG4gICAgICAgIGNvbnRlbnRUb1VzZSA9IGVtYWlsLnRleHRcbiAgICAgICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxuICAgICAgICAgIC5yZXBsYWNlKC88L2csICcmbHQ7JylcbiAgICAgICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpXG4gICAgICAgICAgLnJlcGxhY2UoL1xcbi9nLCAnPGJyPicpO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBSZXR1cm4gY29udGVudCBvciBmYWxsYmFjayBtZXNzYWdlXG4gICAgICByZXR1cm4gY29udGVudFRvVXNlID8gXG4gICAgICAgIDxkaXYgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3sgX19odG1sOiBjb250ZW50VG9Vc2UgfX0gLz4gOiBcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNTAwXCI+Tm8gY29udGVudCBhdmFpbGFibGU8L2Rpdj47XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcmVuZGVyaW5nIGVtYWlsOicsIGUpO1xuICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTUwMFwiPkZhaWxlZCB0byByZW5kZXIgZW1haWwgY29udGVudDwvZGl2PjtcbiAgICB9XG4gIH07XG4gIFxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBoLWZ1bGwgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICB7LyogRW1haWwgYWN0aW9ucyBoZWFkZXIgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtbm9uZSBweC00IHB5LTMgYm9yZGVyLWIgYm9yZGVyLWdyYXktMTAwXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIG1pbi13LTAgZmxleC0xXCI+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgIHNpemU9XCJpY29uXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25CYWNrfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtZDpoaWRkZW4gZmxleC1zaHJpbmstMFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxDaGV2cm9uTGVmdCBjbGFzc05hbWU9XCJoLTUgdy01XCIgLz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtaW4tdy0wIG1heC13LVs1MDBweF1cIj5cbiAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktOTAwIHRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAge2VtYWlsLnN1YmplY3R9XG4gICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xIGZsZXgtc2hyaW5rLTAgbWwtYXV0b1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBib3JkZXItbCBib3JkZXItZ3JheS0yMDAgcGwtNFwiPlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICBzaXplPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LWdyYXktOTAwIGgtOSB3LTlcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUmVwbHl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVwbHkgY2xhc3NOYW1lPVwiaC00IHctNFwiIC8+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICBzaXplPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LWdyYXktOTAwIGgtOSB3LTlcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUmVwbHlBbGx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVwbHlBbGwgY2xhc3NOYW1lPVwiaC00IHctNFwiIC8+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICBzaXplPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LWdyYXktOTAwIGgtOSB3LTlcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uRm9yd2FyZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxGb3J3YXJkIGNsYXNzTmFtZT1cImgtNCB3LTRcIiAvPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cImljb25cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC1ncmF5LTkwMCBoLTkgdy05XCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblRvZ2dsZVN0YXJ9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3RhciBjbGFzc05hbWU9e2BoLTQgdy00ICR7ZW1haWwuc3RhcnJlZCA/ICdmaWxsLXllbGxvdy00MDAgdGV4dC15ZWxsb3ctNDAwJyA6ICcnfWB9IC8+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIHsvKiBTY3JvbGxhYmxlIGNvbnRlbnQgYXJlYSAtIGVuaGFuY2VkIGZvciBiZXR0ZXIgc2Nyb2xsaW5nICovfVxuICAgICAgPFNjcm9sbEFyZWEgY2xhc3NOYW1lPVwiZmxleC0xIG92ZXJmbG93LWF1dG9cIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTZcIj5cbiAgICAgICAgICB7LyogRW1haWwgaGVhZGVyIGluZm8gKi99XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNCBtYi02XCI+XG4gICAgICAgICAgICA8QXZhdGFyIGNsYXNzTmFtZT1cImgtMTAgdy0xMFwiPlxuICAgICAgICAgICAgICA8QXZhdGFyRmFsbGJhY2s+XG4gICAgICAgICAgICAgICAgeyhlbWFpbC5mcm9tPy5bMF0/Lm5hbWUgfHwgJycpLmNoYXJBdCgwKSB8fCAoZW1haWwuZnJvbT8uWzBdPy5hZGRyZXNzIHx8ICcnKS5jaGFyQXQoMCkgfHwgJz8nfVxuICAgICAgICAgICAgICA8L0F2YXRhckZhbGxiYWNrPlxuICAgICAgICAgICAgPC9BdmF0YXI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMVwiPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwXCI+XG4gICAgICAgICAgICAgICAge2VtYWlsLmZyb20/LlswXT8ubmFtZSB8fCAnJ30gPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1ncmF5LTUwMFwiPiZsdDt7ZW1haWwuZnJvbT8uWzBdPy5hZGRyZXNzIHx8ICcnfSZndDs8L3NwYW4+XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNTAwXCI+XG4gICAgICAgICAgICAgICAgdG8ge2VtYWlsLnRvPy5bMF0/LmFkZHJlc3MgfHwgJyd9XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAge2VtYWlsLmNjICYmIGVtYWlsLmNjLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTUwMFwiPlxuICAgICAgICAgICAgICAgICAgY2Mge2VtYWlsLmNjLm1hcChjID0+IGMuYWRkcmVzcykuam9pbignLCAnKX1cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNTAwIHdoaXRlc3BhY2Utbm93cmFwXCI+XG4gICAgICAgICAgICAgIHtmb3JtYXREYXRlKGVtYWlsLmRhdGUpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXG4gICAgICAgICAgey8qIEVtYWlsIGNvbnRlbnQgd2l0aCBpbXByb3ZlZCBzY3JvbGxpbmcgKi99XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwcm9zZSBwcm9zZS1zbSBtYXgtdy1ub25lIGVtYWlsLWNvbnRlbnQtd3JhcHBlclwiPlxuICAgICAgICAgICAge3JlbmRlckVtYWlsQ29udGVudCgpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIHsvKiBBdHRhY2htZW50cyAoaWYgYW55KSAqL31cbiAgICAgICAgICB7ZW1haWwuaGFzQXR0YWNobWVudHMgJiYgZW1haWwuYXR0YWNobWVudHMgJiYgZW1haWwuYXR0YWNobWVudHMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTYgYm9yZGVyLXQgYm9yZGVyLWdyYXktMTAwIHB0LTRcIj5cbiAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBtYi0yXCI+QXR0YWNobWVudHM8L2gzPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgc206Z3JpZC1jb2xzLTIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICB7ZW1haWwuYXR0YWNobWVudHMubWFwKChhdHRhY2htZW50LCBpZHgpID0+IChcbiAgICAgICAgICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICAgICAgICAgIGtleT17aWR4fVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBwLTIgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLW1kXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgbWluLXctMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMCB0cnVuY2F0ZVwiPnthdHRhY2htZW50LmZpbGVuYW1lfTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtZ3JheS01MDBcIj57KGF0dGFjaG1lbnQuc2l6ZSAvIDEwMjQpLnRvRml4ZWQoMSl9IEtCPC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9TY3JvbGxBcmVhPlxuXG4gICAgICB7LyogQWRkIENTUyBmb3IgYmV0dGVyIGVtYWlsIGNvbnRlbnQgZGlzcGxheSAqL31cbiAgICAgIDxzdHlsZSBqc3ggZ2xvYmFsPntgXG4gICAgICAgIC5lbWFpbC1jb250ZW50LXdyYXBwZXIge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5lbWFpbC1jb250ZW50LXdyYXBwZXIgaW1nIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuZW1haWwtY29udGVudC13cmFwcGVyIHRhYmxlIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgICAgICAgLmVtYWlsLWNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBgfTwvc3R5bGU+XG4gICAgPC9kaXY+XG4gICk7XG59ICJdLCJuYW1lcyI6WyJSZWFjdCIsIkNoZXZyb25MZWZ0IiwiUmVwbHkiLCJSZXBseUFsbCIsIkZvcndhcmQiLCJTdGFyIiwiU2Nyb2xsQXJlYSIsIkF2YXRhciIsIkF2YXRhckZhbGxiYWNrIiwiQnV0dG9uIiwiRW1haWxEZXRhaWxWaWV3IiwiZW1haWwiLCJvbkJhY2siLCJvblJlcGx5Iiwib25SZXBseUFsbCIsIm9uRm9yd2FyZCIsIm9uVG9nZ2xlU3RhciIsImZvcm1hdERhdGUiLCJkYXRlU3RyaW5nIiwiZGF0ZSIsIkRhdGUiLCJub3ciLCJ0b0RhdGVTdHJpbmciLCJ0b0xvY2FsZVRpbWVTdHJpbmciLCJob3VyIiwibWludXRlIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwibW9udGgiLCJkYXkiLCJyZW5kZXJFbWFpbENvbnRlbnQiLCJjb25zb2xlIiwibG9nIiwiaGFzQ29udGVudCIsImNvbnRlbnQiLCJjb250ZW50VHlwZSIsImhhc0h0bWwiLCJodG1sIiwiaGFzVGV4dCIsInRleHQiLCJjb250ZW50VG9Vc2UiLCJyZXBsYWNlIiwiZGl2IiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJfX2h0bWwiLCJjbGFzc05hbWUiLCJlIiwiZXJyb3IiLCJ2YXJpYW50Iiwic2l6ZSIsIm9uQ2xpY2siLCJoMiIsInN1YmplY3QiLCJzdGFycmVkIiwiZnJvbSIsIm5hbWUiLCJjaGFyQXQiLCJhZGRyZXNzIiwicCIsInNwYW4iLCJ0byIsImNjIiwibGVuZ3RoIiwibWFwIiwiYyIsImpvaW4iLCJoYXNBdHRhY2htZW50cyIsImF0dGFjaG1lbnRzIiwiaDMiLCJhdHRhY2htZW50IiwiaWR4IiwiZmlsZW5hbWUiLCJ0b0ZpeGVkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/email/EmailDetailView.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/email/EmailDialogs.tsx": /*!*******************************************!*\ !*** ./components/email/EmailDialogs.tsx ***! \*******************************************/ /***/ ((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 */ DeleteConfirmDialog: () => (/* binding */ DeleteConfirmDialog),\n/* harmony export */ LoginNeededAlert: () => (/* binding */ LoginNeededAlert)\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_AlertCircle_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-alert.js\");\n/* harmony import */ var _components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/alert-dialog */ \"(app-pages-browser)/./components/ui/alert-dialog.tsx\");\n/* harmony import */ var _components_ui_alert__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/alert */ \"(app-pages-browser)/./components/ui/alert.tsx\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n\n\n\n\n\n\nfunction DeleteConfirmDialog(param) {\n let { show, selectedCount, onConfirm, onCancel } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_2__.AlertDialog, {\n open: show,\n onOpenChange: (open)=>!open && onCancel(),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_2__.AlertDialogContent, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_2__.AlertDialogHeader, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_2__.AlertDialogTitle, {\n children: [\n \"Delete \",\n selectedCount,\n \" email\",\n selectedCount !== 1 ? 's' : '',\n \"?\"\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 33,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_2__.AlertDialogDescription, {\n children: [\n \"This will move the selected email\",\n selectedCount !== 1 ? 's' : '',\n \" to the trash folder. You can restore them later from the trash folder if needed.\"\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 34,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 32,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_2__.AlertDialogFooter, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_2__.AlertDialogCancel, {\n onClick: onCancel,\n children: \"Cancel\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 40,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_2__.AlertDialogAction, {\n onClick: onConfirm,\n children: \"Delete\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 41,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 39,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 31,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 30,\n columnNumber: 5\n }, this);\n}\n_c = DeleteConfirmDialog;\nfunction LoginNeededAlert(param) {\n let { show, onLogin, onClose } = param;\n if (!show) return null;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert__WEBPACK_IMPORTED_MODULE_3__.Alert, {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 63,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert__WEBPACK_IMPORTED_MODULE_3__.AlertTitle, {\n children: \"Please log in to your email account\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 64,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert__WEBPACK_IMPORTED_MODULE_3__.AlertDescription, {\n children: \"You need to connect your email account before you can access your emails.\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 65,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-2 flex gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_4__.Button, {\n size: \"sm\",\n onClick: onLogin,\n children: \"Go to Login\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 69,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_4__.Button, {\n size: \"sm\",\n variant: \"outline\",\n onClick: onClose,\n children: \"Dismiss\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 70,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 68,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 62,\n columnNumber: 5\n }, this);\n}\n_c1 = LoginNeededAlert;\nvar _c, _c1;\n$RefreshReg$(_c, \"DeleteConfirmDialog\");\n$RefreshReg$(_c1, \"LoginNeededAlert\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZW1haWwvRW1haWxEaWFsb2dzLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQTBCO0FBQ2lCO0FBVUw7QUFDc0M7QUFDNUI7QUFTekMsU0FBU2Msb0JBQW9CLEtBS1Q7UUFMUyxFQUNsQ0MsSUFBSSxFQUNKQyxhQUFhLEVBQ2JDLFNBQVMsRUFDVEMsUUFBUSxFQUNpQixHQUxTO0lBTWxDLHFCQUNFLDhEQUFDaEIsb0VBQVdBO1FBQUNpQixNQUFNSjtRQUFNSyxjQUFjLENBQUNELE9BQVMsQ0FBQ0EsUUFBUUQ7a0JBQ3hELDRFQUFDYiwyRUFBa0JBOzs4QkFDakIsOERBQUNHLDBFQUFpQkE7O3NDQUNoQiw4REFBQ0MseUVBQWdCQTs7Z0NBQUM7Z0NBQVFPO2dDQUFjO2dDQUFPQSxrQkFBa0IsSUFBSSxNQUFNO2dDQUFHOzs7Ozs7O3NDQUM5RSw4REFBQ1YsK0VBQXNCQTs7Z0NBQUM7Z0NBQ1lVLGtCQUFrQixJQUFJLE1BQU07Z0NBQUc7Ozs7Ozs7Ozs7Ozs7OEJBSXJFLDhEQUFDVCwwRUFBaUJBOztzQ0FDaEIsOERBQUNILDBFQUFpQkE7NEJBQUNpQixTQUFTSDtzQ0FBVTs7Ozs7O3NDQUN0Qyw4REFBQ2YsMEVBQWlCQTs0QkFBQ2tCLFNBQVNKO3NDQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUtqRDtLQXZCZ0JIO0FBK0JULFNBQVNRLGlCQUFpQixLQUlUO1FBSlMsRUFDL0JQLElBQUksRUFDSlEsT0FBTyxFQUNQQyxPQUFPLEVBQ2UsR0FKUztJQUsvQixJQUFJLENBQUNULE1BQU0sT0FBTztJQUVsQixxQkFDRSw4REFBQ0wsdURBQUtBO1FBQUNlLFdBQVU7OzBCQUNmLDhEQUFDeEIsdUZBQVdBO2dCQUFDd0IsV0FBVTs7Ozs7OzBCQUN2Qiw4REFBQ2IsNERBQVVBOzBCQUFDOzs7Ozs7MEJBQ1osOERBQUNELGtFQUFnQkE7MEJBQUM7Ozs7OzswQkFHbEIsOERBQUNlO2dCQUFJRCxXQUFVOztrQ0FDYiw4REFBQ1oseURBQU1BO3dCQUFDYyxNQUFLO3dCQUFLTixTQUFTRTtrQ0FBUzs7Ozs7O2tDQUNwQyw4REFBQ1YseURBQU1BO3dCQUFDYyxNQUFLO3dCQUFLQyxTQUFRO3dCQUFVUCxTQUFTRztrQ0FBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSTlEO01BcEJnQkYiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvY29tcG9uZW50cy9lbWFpbC9FbWFpbERpYWxvZ3MudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBBbGVydENpcmNsZSB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQge1xuICBBbGVydERpYWxvZyxcbiAgQWxlcnREaWFsb2dBY3Rpb24sXG4gIEFsZXJ0RGlhbG9nQ2FuY2VsLFxuICBBbGVydERpYWxvZ0NvbnRlbnQsXG4gIEFsZXJ0RGlhbG9nRGVzY3JpcHRpb24sXG4gIEFsZXJ0RGlhbG9nRm9vdGVyLFxuICBBbGVydERpYWxvZ0hlYWRlcixcbiAgQWxlcnREaWFsb2dUaXRsZSxcbn0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9hbGVydC1kaWFsb2dcIjtcbmltcG9ydCB7IEFsZXJ0LCBBbGVydERlc2NyaXB0aW9uLCBBbGVydFRpdGxlIH0gZnJvbSAnQC9jb21wb25lbnRzL3VpL2FsZXJ0JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9idXR0b24nO1xuXG5pbnRlcmZhY2UgRGVsZXRlQ29uZmlybURpYWxvZ1Byb3BzIHtcbiAgc2hvdzogYm9vbGVhbjtcbiAgc2VsZWN0ZWRDb3VudDogbnVtYmVyO1xuICBvbkNvbmZpcm06ICgpID0+IFByb21pc2U8dm9pZD47XG4gIG9uQ2FuY2VsOiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRGVsZXRlQ29uZmlybURpYWxvZyh7XG4gIHNob3csXG4gIHNlbGVjdGVkQ291bnQsXG4gIG9uQ29uZmlybSxcbiAgb25DYW5jZWxcbn06IERlbGV0ZUNvbmZpcm1EaWFsb2dQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxBbGVydERpYWxvZyBvcGVuPXtzaG93fSBvbk9wZW5DaGFuZ2U9eyhvcGVuKSA9PiAhb3BlbiAmJiBvbkNhbmNlbCgpfT5cbiAgICAgIDxBbGVydERpYWxvZ0NvbnRlbnQ+XG4gICAgICAgIDxBbGVydERpYWxvZ0hlYWRlcj5cbiAgICAgICAgICA8QWxlcnREaWFsb2dUaXRsZT5EZWxldGUge3NlbGVjdGVkQ291bnR9IGVtYWlse3NlbGVjdGVkQ291bnQgIT09IDEgPyAncycgOiAnJ30/PC9BbGVydERpYWxvZ1RpdGxlPlxuICAgICAgICAgIDxBbGVydERpYWxvZ0Rlc2NyaXB0aW9uPlxuICAgICAgICAgICAgVGhpcyB3aWxsIG1vdmUgdGhlIHNlbGVjdGVkIGVtYWlse3NlbGVjdGVkQ291bnQgIT09IDEgPyAncycgOiAnJ30gdG8gdGhlIHRyYXNoIGZvbGRlci5cbiAgICAgICAgICAgIFlvdSBjYW4gcmVzdG9yZSB0aGVtIGxhdGVyIGZyb20gdGhlIHRyYXNoIGZvbGRlciBpZiBuZWVkZWQuXG4gICAgICAgICAgPC9BbGVydERpYWxvZ0Rlc2NyaXB0aW9uPlxuICAgICAgICA8L0FsZXJ0RGlhbG9nSGVhZGVyPlxuICAgICAgICA8QWxlcnREaWFsb2dGb290ZXI+XG4gICAgICAgICAgPEFsZXJ0RGlhbG9nQ2FuY2VsIG9uQ2xpY2s9e29uQ2FuY2VsfT5DYW5jZWw8L0FsZXJ0RGlhbG9nQ2FuY2VsPlxuICAgICAgICAgIDxBbGVydERpYWxvZ0FjdGlvbiBvbkNsaWNrPXtvbkNvbmZpcm19PkRlbGV0ZTwvQWxlcnREaWFsb2dBY3Rpb24+XG4gICAgICAgIDwvQWxlcnREaWFsb2dGb290ZXI+XG4gICAgICA8L0FsZXJ0RGlhbG9nQ29udGVudD5cbiAgICA8L0FsZXJ0RGlhbG9nPlxuICApO1xufVxuXG5pbnRlcmZhY2UgTG9naW5OZWVkZWRBbGVydFByb3BzIHtcbiAgc2hvdzogYm9vbGVhbjtcbiAgb25Mb2dpbjogKCkgPT4gdm9pZDtcbiAgb25DbG9zZTogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIExvZ2luTmVlZGVkQWxlcnQoe1xuICBzaG93LFxuICBvbkxvZ2luLFxuICBvbkNsb3NlXG59OiBMb2dpbk5lZWRlZEFsZXJ0UHJvcHMpIHtcbiAgaWYgKCFzaG93KSByZXR1cm4gbnVsbDtcbiAgXG4gIHJldHVybiAoXG4gICAgPEFsZXJ0IGNsYXNzTmFtZT1cIm1iLTRcIj5cbiAgICAgIDxBbGVydENpcmNsZSBjbGFzc05hbWU9XCJoLTQgdy00XCIgLz5cbiAgICAgIDxBbGVydFRpdGxlPlBsZWFzZSBsb2cgaW4gdG8geW91ciBlbWFpbCBhY2NvdW50PC9BbGVydFRpdGxlPlxuICAgICAgPEFsZXJ0RGVzY3JpcHRpb24+XG4gICAgICAgIFlvdSBuZWVkIHRvIGNvbm5lY3QgeW91ciBlbWFpbCBhY2NvdW50IGJlZm9yZSB5b3UgY2FuIGFjY2VzcyB5b3VyIGVtYWlscy5cbiAgICAgIDwvQWxlcnREZXNjcmlwdGlvbj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMiBmbGV4IGdhcC0yXCI+XG4gICAgICAgIDxCdXR0b24gc2l6ZT1cInNtXCIgb25DbGljaz17b25Mb2dpbn0+R28gdG8gTG9naW48L0J1dHRvbj5cbiAgICAgICAgPEJ1dHRvbiBzaXplPVwic21cIiB2YXJpYW50PVwib3V0bGluZVwiIG9uQ2xpY2s9e29uQ2xvc2V9PkRpc21pc3M8L0J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvQWxlcnQ+XG4gICk7XG59ICJdLCJuYW1lcyI6WyJSZWFjdCIsIkFsZXJ0Q2lyY2xlIiwiQWxlcnREaWFsb2ciLCJBbGVydERpYWxvZ0FjdGlvbiIsIkFsZXJ0RGlhbG9nQ2FuY2VsIiwiQWxlcnREaWFsb2dDb250ZW50IiwiQWxlcnREaWFsb2dEZXNjcmlwdGlvbiIsIkFsZXJ0RGlhbG9nRm9vdGVyIiwiQWxlcnREaWFsb2dIZWFkZXIiLCJBbGVydERpYWxvZ1RpdGxlIiwiQWxlcnQiLCJBbGVydERlc2NyaXB0aW9uIiwiQWxlcnRUaXRsZSIsIkJ1dHRvbiIsIkRlbGV0ZUNvbmZpcm1EaWFsb2ciLCJzaG93Iiwic2VsZWN0ZWRDb3VudCIsIm9uQ29uZmlybSIsIm9uQ2FuY2VsIiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsIm9uQ2xpY2siLCJMb2dpbk5lZWRlZEFsZXJ0Iiwib25Mb2dpbiIsIm9uQ2xvc2UiLCJjbGFzc05hbWUiLCJkaXYiLCJzaXplIiwidmFyaWFudCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/email/EmailDialogs.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/email/EmailList.tsx": /*!****************************************!*\ !*** ./components/email/EmailList.tsx ***! \****************************************/ /***/ ((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\": () => (/* binding */ EmailList)\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_Mail_Search_X_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Mail,Search,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/mail.js\");\n/* harmony import */ var _barrel_optimize_names_Mail_Search_X_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=Mail,Search,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/search.js\");\n/* harmony import */ var _barrel_optimize_names_Mail_Search_X_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=Mail,Search,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/x.js\");\n/* harmony import */ var _EmailListItem__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./EmailListItem */ \"(app-pages-browser)/./components/email/EmailListItem.tsx\");\n/* harmony import */ var _EmailListHeader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./EmailListHeader */ \"(app-pages-browser)/./components/email/EmailListHeader.tsx\");\n/* harmony import */ var _BulkActionsToolbar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./BulkActionsToolbar */ \"(app-pages-browser)/./components/email/BulkActionsToolbar.tsx\");\n/* harmony import */ var _components_ui_input__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/ui/input */ \"(app-pages-browser)/./components/ui/input.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\nfunction EmailList(param) {\n let { emails, selectedEmailIds, selectedEmail, currentFolder, isLoading, totalEmails, hasMoreEmails, onSelectEmail, onToggleSelect, onToggleSelectAll, onBulkAction, onToggleStarred, onLoadMore, onSearch } = param;\n _s();\n const [scrollPosition, setScrollPosition] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);\n const [searchQuery, setSearchQuery] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('');\n // Handle scroll to detect when user reaches the bottom\n const handleScroll = (event)=>{\n const target = event.target;\n const { scrollTop, scrollHeight, clientHeight } = target;\n setScrollPosition(scrollTop);\n // Calculate how close to the bottom we are (in pixels)\n const distanceToBottom = scrollHeight - scrollTop - clientHeight;\n // DEBUG: Log scroll positions\n console.log(\"[DEBUG] Scroll metrics - Distance to bottom: \".concat(distanceToBottom, \"px, scrollHeight: \").concat(scrollHeight, \", scrollTop: \").concat(scrollTop, \", clientHeight: \").concat(clientHeight));\n // CRITICAL FIX: Much more aggressive threshold - load more when within 500px of bottom\n // Also add double-check with percentage to handle all screen sizes\n const scrollPercentage = (scrollTop + clientHeight) / scrollHeight;\n // DEBUG: Log scroll percentage and conditions\n console.log(\"[DEBUG] Scroll percentage: \".concat(Math.round(scrollPercentage * 100), \"%, hasMoreEmails: \").concat(hasMoreEmails, \", isLoading: \").concat(isLoading));\n // Trigger loading when within 500px OR at 80% of the scroll distance\n if ((distanceToBottom < 500 || scrollPercentage > 0.8) && hasMoreEmails && !isLoading) {\n console.log(\"[DEBUG-TRIGGER] Loading more emails - distance: \".concat(distanceToBottom, \"px, percentage: \").concat(Math.round(scrollPercentage * 100), \"%\"));\n onLoadMore();\n } else if ((distanceToBottom < 500 || scrollPercentage > 0.8) && hasMoreEmails && isLoading) {\n console.log(\"[DEBUG-BLOCKED] Not loading more emails because isLoading is true\");\n } else if ((distanceToBottom < 500 || scrollPercentage > 0.8) && !hasMoreEmails) {\n console.log(\"[DEBUG-BLOCKED] Not loading more emails because hasMoreEmails is false\");\n }\n };\n // Handle search\n const handleSearch = (e)=>{\n e.preventDefault();\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchQuery);\n };\n const clearSearch = ()=>{\n setSearchQuery('');\n onSearch === null || onSearch === void 0 ? void 0 : onSearch('');\n };\n // Render loading state\n if (isLoading && emails.length === 0) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-center items-center h-full p-8 bg-white/95 backdrop-blur-sm\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-spin rounded-full h-8 w-8 border-t-2 border-b-2 border-blue-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 93,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 92,\n columnNumber: 7\n }, this);\n }\n // Render empty state\n if (emails.length === 0) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col justify-center items-center h-64 p-8 text-center bg-white/95 backdrop-blur-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_Search_X_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-8 w-8 text-gray-400 mb-2\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 102,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-500 text-sm\",\n children: searchQuery ? 'No emails match your search' : currentFolder === 'INBOX' ? \"Your inbox is empty. You're all caught up!\" : 'No emails in this folder'\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 103,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 101,\n columnNumber: 7\n }, this);\n }\n // Are all emails selected\n const allSelected = selectedEmailIds.length === emails.length && emails.length > 0;\n // Are some (but not all) emails selected\n const someSelected = selectedEmailIds.length > 0 && selectedEmailIds.length < emails.length;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-[320px] bg-white/95 backdrop-blur-sm border-r border-gray-100 flex flex-col\",\n children: [\n selectedEmailIds.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"sticky top-0 z-10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_BulkActionsToolbar__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n selectedCount: selectedEmailIds.length,\n onBulkAction: onBulkAction\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 125,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 124,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border-b border-gray-100\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"px-4 py-2\",\n children: /*#__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_Mail_Search_X_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"absolute left-2 top-2.5 h-4 w-4 text-gray-400\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 136,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: handleSearch,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_5__.Input, {\n type: \"search\",\n placeholder: \"Search in folder...\",\n className: \"pl-8 h-9 bg-gray-50\",\n value: searchQuery,\n onChange: (e)=>setSearchQuery(e.target.value)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 138,\n columnNumber: 15\n }, this),\n searchQuery && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: clearSearch,\n className: \"absolute right-2 top-1/2 transform -translate-y-1/2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_Search_X_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-4 w-4 text-gray-400\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 151,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 146,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 137,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 135,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 134,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_EmailListHeader__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n allSelected: allSelected,\n someSelected: someSelected,\n onToggleSelectAll: onToggleSelectAll,\n currentFolder: currentFolder,\n totalEmails: totalEmails\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 157,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 133,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-y-auto\",\n onScroll: handleScroll,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"divide-y divide-gray-100\",\n children: [\n emails.map((email)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_EmailListItem__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n email: email,\n isSelected: selectedEmailIds.includes(email.id),\n isActive: (selectedEmail === null || selectedEmail === void 0 ? void 0 : selectedEmail.id) === email.id,\n onSelect: ()=>onSelectEmail(email.id, email.accountId || '', email.folder || ''),\n onToggleSelect: (e)=>{\n e.stopPropagation();\n onToggleSelect(email.id);\n },\n onToggleStarred: (e)=>{\n e.stopPropagation();\n onToggleStarred(email.id);\n }\n }, email.id, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 172,\n columnNumber: 13\n }, this)),\n isLoading && emails.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-center p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-spin rounded-full h-4 w-4 border-t-2 border-b-2 border-blue-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 191,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 190,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 170,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 166,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 121,\n columnNumber: 5\n }, this);\n}\n_s(EmailList, \"GvZU3IeD7wibiJyZa3LdMal4y7g=\");\n_c = EmailList;\nvar _c;\n$RefreshReg$(_c, \"EmailList\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZW1haWwvRW1haWxMaXN0LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBRXdDO0FBQ2dCO0FBRVo7QUFDSTtBQUNNO0FBQ1I7QUFtQi9CLFNBQVNTLFVBQVUsS0FlakI7UUFmaUIsRUFDaENDLE1BQU0sRUFDTkMsZ0JBQWdCLEVBQ2hCQyxhQUFhLEVBQ2JDLGFBQWEsRUFDYkMsU0FBUyxFQUNUQyxXQUFXLEVBQ1hDLGFBQWEsRUFDYkMsYUFBYSxFQUNiQyxjQUFjLEVBQ2RDLGlCQUFpQixFQUNqQkMsWUFBWSxFQUNaQyxlQUFlLEVBQ2ZDLFVBQVUsRUFDVkMsUUFBUSxFQUNPLEdBZmlCOztJQWdCaEMsTUFBTSxDQUFDQyxnQkFBZ0JDLGtCQUFrQixHQUFHeEIsK0NBQVFBLENBQUM7SUFDckQsTUFBTSxDQUFDeUIsYUFBYUMsZUFBZSxHQUFHMUIsK0NBQVFBLENBQUM7SUFFL0MsdURBQXVEO0lBQ3ZELE1BQU0yQixlQUFlLENBQUNDO1FBQ3BCLE1BQU1DLFNBQVNELE1BQU1DLE1BQU07UUFDM0IsTUFBTSxFQUFFQyxTQUFTLEVBQUVDLFlBQVksRUFBRUMsWUFBWSxFQUFFLEdBQUdIO1FBRWxETCxrQkFBa0JNO1FBRWxCLHVEQUF1RDtRQUN2RCxNQUFNRyxtQkFBbUJGLGVBQWVELFlBQVlFO1FBRXBELDhCQUE4QjtRQUM5QkUsUUFBUUMsR0FBRyxDQUFDLGdEQUFxRkosT0FBckNFLGtCQUFpQixzQkFBZ0RILE9BQTVCQyxjQUFhLGlCQUEyQ0MsT0FBNUJGLFdBQVUsb0JBQStCLE9BQWJFO1FBRXpKLHVGQUF1RjtRQUN2RixtRUFBbUU7UUFDbkUsTUFBTUksbUJBQW1CLENBQUNOLFlBQVlFLFlBQVcsSUFBS0Q7UUFFdEQsOENBQThDO1FBQzlDRyxRQUFRQyxHQUFHLENBQUMsOEJBQXFGcEIsT0FBdkRzQixLQUFLQyxLQUFLLENBQUNGLG1CQUFtQixNQUFLLHNCQUFpRHZCLE9BQTdCRSxlQUFj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REFBYUE7Z0NBRVp3RCxPQUFPQTtnQ0FDUEMsWUFBWW5ELGlCQUFpQm9ELFFBQVEsQ0FBQ0YsTUFBTUcsRUFBRTtnQ0FDOUNDLFVBQVVyRCxDQUFBQSwwQkFBQUEsb0NBQUFBLGNBQWVvRCxFQUFFLE1BQUtILE1BQU1HLEVBQUU7Z0NBQ3hDRSxVQUFVLElBQU1qRCxjQUFjNEMsTUFBTUcsRUFBRSxFQUFFSCxNQUFNTSxTQUFTLElBQUksSUFBSU4sTUFBTU8sTUFBTSxJQUFJO2dDQUMvRWxELGdCQUFnQixDQUFDdUI7b0NBQ2ZBLEVBQUU0QixlQUFlO29DQUNqQm5ELGVBQWUyQyxNQUFNRyxFQUFFO2dDQUN6QjtnQ0FDQTNDLGlCQUFpQixDQUFDb0I7b0NBQ2hCQSxFQUFFNEIsZUFBZTtvQ0FDakJoRCxnQkFBZ0J3QyxNQUFNRyxFQUFFO2dDQUMxQjsrQkFaS0gsTUFBTUcsRUFBRTs7Ozs7d0JBZ0JoQmxELGFBQWFKLE9BQU9rQyxNQUFNLEdBQUcsbUJBQzVCLDhEQUFDQzs0QkFBSUMsV0FBVTtzQ0FDYiw0RUFBQ0Q7Z0NBQUlDLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPN0I7R0ExS3dCckM7S0FBQUEiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvY29tcG9uZW50cy9lbWFpbC9FbWFpbExpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTG9hZGVyMiwgTWFpbCwgU2VhcmNoLCBYIH0gZnJvbSAnbHVjaWRlLXJlYWN0JztcbmltcG9ydCB7IEVtYWlsIH0gZnJvbSAnQC9ob29rcy91c2UtY291cnJpZXInO1xuaW1wb3J0IEVtYWlsTGlzdEl0ZW0gZnJvbSAnLi9FbWFpbExpc3RJdGVtJztcbmltcG9ydCBFbWFpbExpc3RIZWFkZXIgZnJvbSAnLi9FbWFpbExpc3RIZWFkZXInO1xuaW1wb3J0IEJ1bGtBY3Rpb25zVG9vbGJhciBmcm9tICcuL0J1bGtBY3Rpb25zVG9vbGJhcic7XG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9pbnB1dCc7XG5cbmludGVyZmFjZSBFbWFpbExpc3RQcm9wcyB7XG4gIGVtYWlsczogRW1haWxbXTtcbiAgc2VsZWN0ZWRFbWFpbElkczogc3RyaW5nW107XG4gIHNlbGVjdGVkRW1haWw6IEVtYWlsIHwgbnVsbDtcbiAgY3VycmVudEZvbGRlcjogc3RyaW5nO1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gIHRvdGFsRW1haWxzOiBudW1iZXI7XG4gIGhhc01vcmVFbWFpbHM6IGJvb2xlYW47XG4gIG9uU2VsZWN0RW1haWw6IChlbWFpbElkOiBzdHJpbmcsIGFjY291bnRJZDogc3RyaW5nLCBmb2xkZXI6IHN0cmluZykgPT4gdm9pZDtcbiAgb25Ub2dnbGVTZWxlY3Q6IChlbWFpbElkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uVG9nZ2xlU2VsZWN0QWxsOiAoKSA9PiB2b2lkO1xuICBvbkJ1bGtBY3Rpb246IChhY3Rpb246ICdkZWxldGUnIHwgJ21hcmstcmVhZCcgfCAnbWFyay11bnJlYWQnIHwgJ2FyY2hpdmUnKSA9PiB2b2lkO1xuICBvblRvZ2dsZVN0YXJyZWQ6IChlbWFpbElkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uTG9hZE1vcmU6ICgpID0+IHZvaWQ7XG4gIG9uU2VhcmNoPzogKHF1ZXJ5OiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEVtYWlsTGlzdCh7XG4gIGVtYWlscyxcbiAgc2VsZWN0ZWRFbWFpbElkcyxcbiAgc2VsZWN0ZWRFbWFpbCxcbiAgY3VycmVudEZvbGRlcixcbiAgaXNMb2FkaW5nLFxuICB0b3RhbEVtYWlscyxcbiAgaGFzTW9yZUVtYWlscyxcbiAgb25TZWxlY3RFbWFpbCxcbiAgb25Ub2dnbGVTZWxlY3QsXG4gIG9uVG9nZ2xlU2VsZWN0QWxsLFxuICBvbkJ1bGtBY3Rpb24sXG4gIG9uVG9nZ2xlU3RhcnJlZCxcbiAgb25Mb2FkTW9yZSxcbiAgb25TZWFyY2hcbn06IEVtYWlsTGlzdFByb3BzKSB7XG4gIGNvbnN0IFtzY3JvbGxQb3NpdGlvbiwgc2V0U2Nyb2xsUG9zaXRpb25dID0gdXNlU3RhdGUoMCk7XG4gIGNvbnN0IFtzZWFyY2hRdWVyeSwgc2V0U2VhcmNoUXVlcnldID0gdXNlU3RhdGUoJycpO1xuXG4gIC8vIEhhbmRsZSBzY3JvbGwgdG8gZGV0ZWN0IHdoZW4gdXNlciByZWFjaGVzIHRoZSBib3R0b21cbiAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKGV2ZW50OiBSZWFjdC5VSUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgfSA9IHRhcmdldDtcbiAgICBcbiAgICBzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxUb3ApO1xuICAgIFxuICAgIC8vIENhbGN1bGF0ZSBob3cgY2xvc2UgdG8gdGhlIGJvdHRvbSB3ZSBhcmUgKGluIHBpeGVscylcbiAgICBjb25zdCBkaXN0YW5jZVRvQm90dG9tID0gc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsVG9wIC0gY2xpZW50SGVpZ2h0O1xuICAgIFxuICAgIC8vIERFQlVHOiBMb2cgc2Nyb2xsIHBvc2l0aW9uc1xuICAgIGNvbnNvbGUubG9nKGBbREVCVUddIFNjcm9sbCBtZXRyaWNzIC0gRGlzdGFuY2UgdG8gYm90dG9tOiAke2Rpc3RhbmNlVG9Cb3R0b219cHgsIHNjcm9sbEhlaWdodDogJHtzY3JvbGxIZWlnaHR9LCBzY3JvbGxUb3A6ICR7c2Nyb2xsVG9wfSwgY2xpZW50SGVpZ2h0OiAke2NsaWVudEhlaWdodH1gKTtcbiAgICBcbiAgICAvLyBDUklUSUNBTCBGSVg6IE11Y2ggbW9yZSBhZ2dyZXNzaXZlIHRocmVzaG9sZCAtIGxvYWQgbW9yZSB3aGVuIHdpdGhpbiA1MDBweCBvZiBib3R0b21cbiAgICAvLyBBbHNvIGFkZCBkb3VibGUtY2hlY2sgd2l0aCBwZXJjZW50YWdlIHRvIGhhbmRsZSBhbGwgc2NyZWVuIHNpemVzXG4gICAgY29uc3Qgc2Nyb2xsUGVyY2VudGFnZSA9IChzY3JvbGxUb3AgKyBjbGllbnRIZWlnaHQpIC8gc2Nyb2xsSGVpZ2h0O1xuICAgIFxuICAgIC8vIERFQlVHOiBMb2cgc2Nyb2xsIHBlcmNlbnRhZ2UgYW5kIGNvbmRpdGlvbnNcbiAgICBjb25zb2xlLmxvZyhgW0RFQlVHXSBTY3JvbGwgcGVyY2VudGFnZTogJHtNYXRoLnJvdW5kKHNjcm9sbFBlcmNlbnRhZ2UgKiAxMDApfSUsIGhhc01vcmVFbWFpbHM6ICR7aGFzTW9yZUVtYWlsc30sIGlzTG9hZGluZzogJHtpc0xvYWRpbmd9YCk7XG4gICAgXG4gICAgLy8gVHJpZ2dlciBsb2FkaW5nIHdoZW4gd2l0aGluIDUwMHB4IE9SIGF0IDgwJSBvZiB0aGUgc2Nyb2xsIGRpc3RhbmNlXG4gICAgaWYgKChkaXN0YW5jZVRvQm90dG9tIDwgNTAwIHx8IHNjcm9sbFBlcmNlbnRhZ2UgPiAwLjgpICYmIGhhc01vcmVFbWFpbHMgJiYgIWlzTG9hZGluZykge1xuICAgICAgY29uc29sZS5sb2coYFtERUJVRy1UUklHR0VSXSBMb2FkaW5nIG1vcmUgZW1haWxzIC0gZGlzdGFuY2U6ICR7ZGlzdGFuY2VUb0JvdHRvbX1weCwgcGVyY2VudGFnZTogJHtNYXRoLnJvdW5kKHNjcm9sbFBlcmNlbnRhZ2UgKiAxMDApfSVgKTtcbiAgICAgIG9uTG9hZE1vcmUoKTtcbiAgICB9IGVsc2UgaWYgKChkaXN0YW5jZVRvQm90dG9tIDwgNTAwIHx8IHNjcm9sbFBlcmNlbnRhZ2UgPiAwLjgpICYmIGhhc01vcmVFbWFpbHMgJiYgaXNMb2FkaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLUJMT0NLRURdIE5vdCBsb2FkaW5nIG1vcmUgZW1haWxzIGJlY2F1c2UgaXNMb2FkaW5nIGlzIHRydWVgKTtcbiAgICB9IGVsc2UgaWYgKChkaXN0YW5jZVRvQm90dG9tIDwgNTAwIHx8IHNjcm9sbFBlcmNlbnRhZ2UgPiAwLjgpICYmICFoYXNNb3JlRW1haWxzKSB7XG4gICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLUJMT0NLRURdIE5vdCBsb2FkaW5nIG1vcmUgZW1haWxzIGJlY2F1c2UgaGFzTW9yZUVtYWlscyBpcyBmYWxzZWApO1xuICAgIH1cbiAgfTtcblxuICAvLyBIYW5kbGUgc2VhcmNoXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9IChlOiBSZWFjdC5Gb3JtRXZlbnQpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgb25TZWFyY2g/LihzZWFyY2hRdWVyeSk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJTZWFyY2ggPSAoKSA9PiB7XG4gICAgc2V0U2VhcmNoUXVlcnkoJycpO1xuICAgIG9uU2VhcmNoPy4oJycpO1xuICB9O1xuXG4gIC8vIFJlbmRlciBsb2FkaW5nIHN0YXRlXG4gIGlmIChpc0xvYWRpbmcgJiYgZW1haWxzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIGgtZnVsbCBwLTggYmctd2hpdGUvOTUgYmFja2Ryb3AtYmx1ci1zbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFuaW1hdGUtc3BpbiByb3VuZGVkLWZ1bGwgaC04IHctOCBib3JkZXItdC0yIGJvcmRlci1iLTIgYm9yZGVyLWJsdWUtNTAwXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgLy8gUmVuZGVyIGVtcHR5IHN0YXRlXG4gIGlmIChlbWFpbHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgaC02NCBwLTggdGV4dC1jZW50ZXIgYmctd2hpdGUvOTUgYmFja2Ryb3AtYmx1ci1zbVwiPlxuICAgICAgICA8TWFpbCBjbGFzc05hbWU9XCJoLTggdy04IHRleHQtZ3JheS00MDAgbWItMlwiIC8+XG4gICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtZ3JheS01MDAgdGV4dC1zbVwiPlxuICAgICAgICAgIHtzZWFyY2hRdWVyeSBcbiAgICAgICAgICAgID8gJ05vIGVtYWlscyBtYXRjaCB5b3VyIHNlYXJjaCdcbiAgICAgICAgICAgIDogY3VycmVudEZvbGRlciA9PT0gJ0lOQk9YJyBcbiAgICAgICAgICAgICAgPyBcIllvdXIgaW5ib3ggaXMgZW1wdHkuIFlvdSdyZSBhbGwgY2F1Z2h0IHVwIVwiIFxuICAgICAgICAgICAgICA6ICdObyBlbWFpbHMgaW4gdGhpcyBmb2xkZXInfVxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgLy8gQXJlIGFsbCBlbWFpbHMgc2VsZWN0ZWRcbiAgY29uc3QgYWxsU2VsZWN0ZWQgPSBzZWxlY3RlZEVtYWlsSWRzLmxlbmd0aCA9PT0gZW1haWxzLmxlbmd0aCAmJiBlbWFpbHMubGVuZ3RoID4gMDtcbiAgXG4gIC8vIEFyZSBzb21lIChidXQgbm90IGFsbCkgZW1haWxzIHNlbGVjdGVkXG4gIGNvbnN0IHNvbWVTZWxlY3RlZCA9IHNlbGVjdGVkRW1haWxJZHMubGVuZ3RoID4gMCAmJiBzZWxlY3RlZEVtYWlsSWRzLmxlbmd0aCA8IGVtYWlscy5sZW5ndGg7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInctWzMyMHB4XSBiZy13aGl0ZS85NSBiYWNrZHJvcC1ibHVyLXNtIGJvcmRlci1yIGJvcmRlci1ncmF5LTEwMCBmbGV4IGZsZXgtY29sXCI+XG4gICAgICB7LyogU3RpY2t5IHRvb2xiYXIgLSBhbHdheXMgdmlzaWJsZSBhdCB0aGUgdG9wIHdoZW4gZW1haWxzIGFyZSBzZWxlY3RlZCAqL31cbiAgICAgIHtzZWxlY3RlZEVtYWlsSWRzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN0aWNreSB0b3AtMCB6LTEwXCI+XG4gICAgICAgICAgPEJ1bGtBY3Rpb25zVG9vbGJhciBcbiAgICAgICAgICAgIHNlbGVjdGVkQ291bnQ9e3NlbGVjdGVkRW1haWxJZHMubGVuZ3RofVxuICAgICAgICAgICAgb25CdWxrQWN0aW9uPXtvbkJ1bGtBY3Rpb259XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgICAgXG4gICAgICB7LyogU2VhcmNoIGhlYWRlciAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm9yZGVyLWIgYm9yZGVyLWdyYXktMTAwXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicHgtNCBweS0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgICAgPFNlYXJjaCBjbGFzc05hbWU9XCJhYnNvbHV0ZSBsZWZ0LTIgdG9wLTIuNSBoLTQgdy00IHRleHQtZ3JheS00MDBcIiAvPlxuICAgICAgICAgICAgPGZvcm0gb25TdWJtaXQ9e2hhbmRsZVNlYXJjaH0+XG4gICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGluIGZvbGRlci4uLlwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicGwtOCBoLTkgYmctZ3JheS01MFwiXG4gICAgICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFF1ZXJ5fVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoUXVlcnkoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICB7c2VhcmNoUXVlcnkgJiYgKFxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJTZWFyY2h9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSByaWdodC0yIHRvcC0xLzIgdHJhbnNmb3JtIC10cmFuc2xhdGUteS0xLzJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxYIGNsYXNzTmFtZT1cImgtNCB3LTQgdGV4dC1ncmF5LTQwMFwiIC8+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8RW1haWxMaXN0SGVhZGVyIFxuICAgICAgICAgIGFsbFNlbGVjdGVkPXthbGxTZWxlY3RlZH1cbiAgICAgICAgICBzb21lU2VsZWN0ZWQ9e3NvbWVTZWxlY3RlZH1cbiAgICAgICAgICBvblRvZ2dsZVNlbGVjdEFsbD17b25Ub2dnbGVTZWxlY3RBbGx9XG4gICAgICAgICAgY3VycmVudEZvbGRlcj17Y3VycmVudEZvbGRlcn1cbiAgICAgICAgICB0b3RhbEVtYWlscz17dG90YWxFbWFpbHN9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIFxuICAgICAgPGRpdiBcbiAgICAgICAgY2xhc3NOYW1lPVwiZmxleC0xIG92ZXJmbG93LXktYXV0b1wiXG4gICAgICAgIG9uU2Nyb2xsPXtoYW5kbGVTY3JvbGx9XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGl2aWRlLXkgZGl2aWRlLWdyYXktMTAwXCI+XG4gICAgICAgICAge2VtYWlscy5tYXAoKGVtYWlsKSA9PiAoXG4gICAgICAgICAgICA8RW1haWxMaXN0SXRlbVxuICAgICAgICAgICAgICBrZXk9e2VtYWlsLmlkfVxuICAgICAgICAgICAgICBlbWFpbD17ZW1haWx9XG4gICAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e3NlbGVjdGVkRW1haWxJZHMuaW5jbHVkZXMoZW1haWwuaWQpfVxuICAgICAgICAgICAgICBpc0FjdGl2ZT17c2VsZWN0ZWRFbWFpbD8uaWQgPT09IGVtYWlsLmlkfVxuICAgICAgICAgICAgICBvblNlbGVjdD17KCkgPT4gb25TZWxlY3RFbWFpbChlbWFpbC5pZCwgZW1haWwuYWNjb3VudElkIHx8ICcnLCBlbWFpbC5mb2xkZXIgfHwgJycpfVxuICAgICAgICAgICAgICBvblRvZ2dsZVNlbGVjdD17KGU6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIG9uVG9nZ2xlU2VsZWN0KGVtYWlsLmlkKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgb25Ub2dnbGVTdGFycmVkPXsoZTogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgb25Ub2dnbGVTdGFycmVkKGVtYWlsLmlkKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgICAgXG4gICAgICAgICAge2lzTG9hZGluZyAmJiBlbWFpbHMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHAtNFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFuaW1hdGUtc3BpbiByb3VuZGVkLWZ1bGwgaC00IHctNCBib3JkZXItdC0yIGJvcmRlci1iLTIgYm9yZGVyLWJsdWUtNTAwXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufSAiXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VTdGF0ZSIsIk1haWwiLCJTZWFyY2giLCJYIiwiRW1haWxMaXN0SXRlbSIsIkVtYWlsTGlzdEhlYWRlciIsIkJ1bGtBY3Rpb25zVG9vbGJhciIsIklucHV0IiwiRW1haWxMaXN0IiwiZW1haWxzIiwic2VsZWN0ZWRFbWFpbElkcyIsInNlbGVjdGVkRW1haWwiLCJjdXJyZW50Rm9sZGVyIiwiaXNMb2FkaW5nIiwidG90YWxFbWFpbHMiLCJoYXNNb3JlRW1haWxzIiwib25TZWxlY3RFbWFpbCIsIm9uVG9nZ2xlU2VsZWN0Iiwib25Ub2dnbGVTZWxlY3RBbGwiLCJvbkJ1bGtBY3Rpb24iLCJvblRvZ2dsZVN0YXJyZWQiLCJvbkxvYWRNb3JlIiwib25TZWFyY2giLCJzY3JvbGxQb3NpdGlvbiIsInNldFNjcm9sbFBvc2l0aW9uIiwic2VhcmNoUXVlcnkiLCJzZXRTZWFyY2hRdWVyeSIsImhhbmRsZVNjcm9sbCIsImV2ZW50IiwidGFyZ2V0Iiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiZGlzdGFuY2VUb0JvdHRvbSIsImNvbnNvbGUiLCJsb2ciLCJzY3JvbGxQZXJjZW50YWdlIiwiTWF0aCIsInJvdW5kIiwiaGFuZGxlU2VhcmNoIiwiZSIsInByZXZlbnREZWZhdWx0IiwiY2xlYXJTZWFyY2giLCJsZW5ndGgiLCJkaXYiLCJjbGFzc05hbWUiLCJwIiwiYWxsU2VsZWN0ZWQiLCJzb21lU2VsZWN0ZWQiLCJzZWxlY3RlZENvdW50IiwiZm9ybSIsIm9uU3VibWl0IiwidHlwZSIsInBsYWNlaG9sZGVyIiwidmFsdWUiLCJvbkNoYW5nZSIsImJ1dHRvbiIsIm9uQ2xpY2siLCJvblNjcm9sbCIsIm1hcCIsImVtYWlsIiwiaXNTZWxlY3RlZCIsImluY2x1ZGVzIiwiaWQiLCJpc0FjdGl2ZSIsIm9uU2VsZWN0IiwiYWNjb3VudElkIiwiZm9sZGVyIiwic3RvcFByb3BhZ2F0aW9uIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/email/EmailList.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/email/EmailListHeader.tsx": /*!**********************************************!*\ !*** ./components/email/EmailListHeader.tsx ***! \**********************************************/ /***/ ((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\": () => (/* binding */ EmailListHeader)\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 _components_ui_checkbox__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/checkbox */ \"(app-pages-browser)/./components/ui/checkbox.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\nfunction EmailListHeader(param) {\n let { allSelected, someSelected, onToggleSelectAll, currentFolder = 'Inbox', totalEmails = 0 } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between px-4 h-14\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_checkbox__WEBPACK_IMPORTED_MODULE_2__.Checkbox, {\n checked: allSelected,\n ref: (input)=>{\n if (input) {\n input.indeterminate = someSelected && !allSelected;\n }\n },\n onCheckedChange: onToggleSelectAll,\n className: \"mt-0.5\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListHeader.tsx\",\n lineNumber: 25,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-base font-semibold text-gray-900 capitalize\",\n children: \"Messages\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListHeader.tsx\",\n lineNumber: 35,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListHeader.tsx\",\n lineNumber: 24,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm text-gray-600\",\n children: [\n totalEmails,\n \" \",\n totalEmails === 1 ? 'email' : 'emails'\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListHeader.tsx\",\n lineNumber: 38,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListHeader.tsx\",\n lineNumber: 23,\n columnNumber: 5\n }, this);\n}\n_c = EmailListHeader;\nvar _c;\n$RefreshReg$(_c, \"EmailListHeader\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZW1haWwvRW1haWxMaXN0SGVhZGVyLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFMEI7QUFFMEI7QUFVckMsU0FBU0UsZ0JBQWdCLEtBTWpCO1FBTmlCLEVBQ3RDQyxXQUFXLEVBQ1hDLFlBQVksRUFDWkMsaUJBQWlCLEVBQ2pCQyxnQkFBZ0IsT0FBTyxFQUN2QkMsY0FBYyxDQUFDLEVBQ00sR0FOaUI7SUFPdEMscUJBQ0UsOERBQUNDO1FBQUlDLFdBQVU7OzBCQUNiLDhEQUFDRDtnQkFBSUMsV0FBVTs7a0NBQ2IsOERBQUNSLDZEQUFRQTt3QkFDUFMsU0FBU1A7d0JBQ1RRLEtBQUssQ0FBQ0M7NEJBQ0osSUFBSUEsT0FBTztnQ0FDUkEsTUFBc0NDLGFBQWEsR0FBR1QsZ0JBQWdCLENBQUNEOzRCQUMxRTt3QkFDRjt3QkFDQVcsaUJBQWlCVDt3QkFDakJJLFdBQVU7Ozs7OztrQ0FFWiw4REFBQ007d0JBQUdOLFdBQVU7a0NBQW1EOzs7Ozs7Ozs7Ozs7MEJBR25FLDhEQUFDTztnQkFBS1AsV0FBVTs7b0JBQ2JGO29CQUFZO29CQUFFQSxnQkFBZ0IsSUFBSSxVQUFVOzs7Ozs7Ozs7Ozs7O0FBSXJEO0tBNUJ3QkwiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvY29tcG9uZW50cy9lbWFpbC9FbWFpbExpc3RIZWFkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENoZXZyb25Eb3duLCBJbmJveCB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQgeyBDaGVja2JveCB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9jaGVja2JveCc7XG5cbmludGVyZmFjZSBFbWFpbExpc3RIZWFkZXJQcm9wcyB7XG4gIGFsbFNlbGVjdGVkOiBib29sZWFuO1xuICBzb21lU2VsZWN0ZWQ6IGJvb2xlYW47XG4gIG9uVG9nZ2xlU2VsZWN0QWxsOiAoKSA9PiB2b2lkO1xuICBjdXJyZW50Rm9sZGVyPzogc3RyaW5nO1xuICB0b3RhbEVtYWlscz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRW1haWxMaXN0SGVhZGVyKHtcbiAgYWxsU2VsZWN0ZWQsXG4gIHNvbWVTZWxlY3RlZCxcbiAgb25Ub2dnbGVTZWxlY3RBbGwsXG4gIGN1cnJlbnRGb2xkZXIgPSAnSW5ib3gnLFxuICB0b3RhbEVtYWlscyA9IDBcbn06IEVtYWlsTGlzdEhlYWRlclByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcHgtNCBoLTE0XCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICAgIDxDaGVja2JveCBcbiAgICAgICAgICBjaGVja2VkPXthbGxTZWxlY3RlZH1cbiAgICAgICAgICByZWY9eyhpbnB1dCkgPT4ge1xuICAgICAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgICAgIChpbnB1dCBhcyB1bmtub3duIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmluZGV0ZXJtaW5hdGUgPSBzb21lU2VsZWN0ZWQgJiYgIWFsbFNlbGVjdGVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH19XG4gICAgICAgICAgb25DaGVja2VkQ2hhbmdlPXtvblRvZ2dsZVNlbGVjdEFsbH1cbiAgICAgICAgICBjbGFzc05hbWU9XCJtdC0wLjVcIlxuICAgICAgICAvPlxuICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC1iYXNlIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMCBjYXBpdGFsaXplXCI+TWVzc2FnZXM8L2gyPlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTYwMFwiPlxuICAgICAgICB7dG90YWxFbWFpbHN9IHt0b3RhbEVtYWlscyA9PT0gMSA/ICdlbWFpbCcgOiAnZW1haWxzJ31cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn0gIl0sIm5hbWVzIjpbIlJlYWN0IiwiQ2hlY2tib3giLCJFbWFpbExpc3RIZWFkZXIiLCJhbGxTZWxlY3RlZCIsInNvbWVTZWxlY3RlZCIsIm9uVG9nZ2xlU2VsZWN0QWxsIiwiY3VycmVudEZvbGRlciIsInRvdGFsRW1haWxzIiwiZGl2IiwiY2xhc3NOYW1lIiwiY2hlY2tlZCIsInJlZiIsImlucHV0IiwiaW5kZXRlcm1pbmF0ZSIsIm9uQ2hlY2tlZENoYW5nZSIsImgyIiwic3BhbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/email/EmailListHeader.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/email/EmailListItem.tsx": /*!********************************************!*\ !*** ./components/email/EmailListItem.tsx ***! \********************************************/ /***/ ((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\": () => (/* binding */ EmailListItem)\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_Star_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Star!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/star.js\");\n/* harmony import */ var _components_ui_checkbox__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/checkbox */ \"(app-pages-browser)/./components/ui/checkbox.tsx\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\nconst PREVIEW_LENGTH = 70;\nfunction EmailListItem(param) {\n let { email, isSelected, isActive, onSelect, onToggleSelect, onToggleStarred } = param;\n var _email_flags, _email_flags1, _email_flags2;\n // Format the date in a readable way\n const formatDate = (dateString)=>{\n const date = new Date(dateString);\n const now = new Date();\n const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n const yesterday = new Date(today);\n yesterday.setDate(yesterday.getDate() - 1);\n // Check if date is today\n if (date >= today) {\n return date.toLocaleTimeString([], {\n hour: '2-digit',\n minute: '2-digit'\n });\n }\n // Check if date is yesterday\n if (date >= yesterday) {\n return 'Yesterday';\n }\n // Check if date is this year\n if (date.getFullYear() === now.getFullYear()) {\n return date.toLocaleDateString([], {\n month: 'short',\n day: 'numeric'\n });\n }\n // Date is from a previous year\n return date.toLocaleDateString([], {\n year: 'numeric',\n month: 'short',\n day: 'numeric'\n });\n };\n // Get the first letter of the sender's name or email for the avatar\n const getSenderInitial = ()=>{\n if (!email.from || email.from.length === 0) return '?';\n const sender = email.from[0];\n if (sender.name && sender.name.trim()) {\n return sender.name.trim()[0].toUpperCase();\n }\n if (sender.address && sender.address.trim()) {\n return sender.address.trim()[0].toUpperCase();\n }\n return '?';\n };\n // Get sender name or email\n const getSenderName = ()=>{\n if (!email.from || email.from.length === 0) return 'Unknown';\n const sender = email.from[0];\n if (sender.name && sender.name.trim()) {\n return sender.name.trim();\n }\n return sender.address || 'Unknown';\n };\n // Generate a stable color based on the sender's email\n const getAvatarColor = ()=>{\n if (!email.from || email.from.length === 0) return 'hsl(0, 0%, 50%)';\n const address = email.from[0].address || '';\n let hash = 0;\n for(let i = 0; i < address.length; i++){\n hash = address.charCodeAt(i) + ((hash << 5) - hash);\n }\n const h = hash % 360;\n return \"hsl(\".concat(h, \", 70%, 80%)\");\n };\n // Get preview text from email content\n const getPreviewText = (content)=>{\n let text = '';\n if (typeof content === 'string') {\n text = content;\n } else {\n // Prefer text content if available, fall back to HTML\n text = content.text || content.html;\n }\n // Strip HTML tags if present\n text = text.replace(/<[^>]+>/g, ' ');\n // Clean up whitespace\n text = text.replace(/\\s+/g, ' ').trim();\n // Truncate to preview length\n return text.length > PREVIEW_LENGTH ? text.substring(0, PREVIEW_LENGTH) + '...' : text;\n };\n // Handle email selection without affecting checkbox\n const handleEmailSelect = (e)=>{\n // Make sure we're not clicking on or near the checkbox\n const target = e.target;\n const checkboxArea = target.closest('.checkbox-area');\n if (!checkboxArea) {\n onSelect();\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)('flex items-center gap-3 px-4 py-2 hover:bg-gray-50/80 cursor-pointer', isActive ? 'bg-blue-50/50' : '', !((_email_flags = email.flags) === null || _email_flags === void 0 ? void 0 : _email_flags.seen) ? 'bg-blue-50/20' : ''),\n onClick: handleEmailSelect,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-shrink-0 pr-2 checkbox-area\",\n onClick: (e)=>{\n e.stopPropagation();\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_checkbox__WEBPACK_IMPORTED_MODULE_2__.Checkbox, {\n checked: isSelected,\n onCheckedChange: (checked)=>{\n // Only trigger toggle if the checkbox state actually changed\n if (checked !== isSelected) {\n // Create a dummy event object with just stopPropagation\n const dummyEvent = {\n stopPropagation: ()=>{}\n };\n onToggleSelect(dummyEvent);\n }\n },\n onClick: (e)=>{\n e.stopPropagation();\n // Don't call onToggleSelect here - let onCheckedChange handle it\n },\n className: \"mt-0.5\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 148,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 142,\n columnNumber: 7\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: \"flex items-center justify-between gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 min-w-0\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm truncate \".concat(!((_email_flags1 = email.flags) === null || _email_flags1 === void 0 ? void 0 : _email_flags1.seen) ? 'font-semibold text-gray-900' : 'text-gray-600'),\n children: getSenderName()\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 171,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 170,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 flex-shrink-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs text-gray-500 whitespace-nowrap\",\n children: formatDate(email.date.toString())\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 176,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"h-6 w-6 text-gray-400 hover:text-yellow-400\",\n onClick: (e)=>{\n e.stopPropagation();\n onToggleStarred(e);\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Star_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-4 w-4 \".concat(((_email_flags2 = email.flags) === null || _email_flags2 === void 0 ? void 0 : _email_flags2.flagged) ? 'fill-yellow-400 text-yellow-400' : '')\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 186,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 179,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 175,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 169,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-sm text-gray-900 truncate\",\n children: email.subject || '(No subject)'\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 191,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-500 truncate\",\n children: getPreviewText(email.content)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 195,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 168,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 134,\n columnNumber: 5\n }, this);\n}\n_c = EmailListItem;\nvar _c;\n$RefreshReg$(_c, \"EmailListItem\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZW1haWwvRW1haWxMaXN0SXRlbS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFMEI7QUFDMEI7QUFDQTtBQUNuQjtBQWNqQyxNQUFNSSxpQkFBaUI7QUFFUixTQUFTQyxjQUFjLEtBT2pCO1FBUGlCLEVBQ3BDQyxLQUFLLEVBQ0xDLFVBQVUsRUFDVkMsUUFBUSxFQUNSQyxRQUFRLEVBQ1JDLGNBQWMsRUFDZEMsZUFBZSxFQUNJLEdBUGlCO1FBb0g3QkwsY0FpQ3lDQSxlQWVSQTtJQTVKeEMsb0NBQW9DO0lBQ3BDLE1BQU1NLGFBQWEsQ0FBQ0M7UUFDbEIsTUFBTUMsT0FBTyxJQUFJQyxLQUFLRjtRQUN0QixNQUFNRyxNQUFNLElBQUlEO1FBQ2hCLE1BQU1FLFFBQVEsSUFBSUYsS0FBS0MsSUFBSUUsV0FBVyxJQUFJRixJQUFJRyxRQUFRLElBQUlILElBQUlJLE9BQU87UUFDckUsTUFBTUMsWUFBWSxJQUFJTixLQUFLRTtRQUMzQkksVUFBVUMsT0FBTyxDQUFDRCxVQUFVRCxPQUFPLEtBQUs7UUFFeEMseUJBQXlCO1FBQ3pCLElBQUlOLFFBQVFHLE9BQU87WUFDakIsT0FBT0gsS0FBS1Msa0JBQWtCLENBQUMsRUFBRSxFQUFFO2dCQUFFQyxNQUFNO2dCQUFXQyxRQUFRO1lBQVU7UUFDMUU7UUFFQSw2QkFBNkI7UUFDN0IsSUFBSVgsUUFBUU8sV0FBVztZQUNyQixPQUFPO1FBQ1Q7UUFFQSw2QkFBNkI7UUFDN0IsSUFBSVAsS0FBS0ksV0FBVyxPQUFPRixJQUFJRSxXQUFXLElBQUk7WUFDNUMsT0FBT0osS0FBS1ksa0JBQWtCLENBQUMsRUFBRSxFQUFFO2dCQUFFQyxPQUFPO2dCQUFTQyxLQUFLO1lBQVU7UUFDdEU7UUFFQSwrQkFBK0I7UUFDL0IsT0FBT2QsS0FBS1ksa0JBQWtCLENBQUMsRUFBRSxFQUFFO1lBQUVHLE1BQU07WUFBV0YsT0FBTztZQUFTQyxLQUFLO1FBQVU7SUFDdkY7SUFFQSxv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bi9OZWFoLW1haWwvY29tcG9uZW50cy9lbWFpbC9FbWFpbExpc3RJdGVtLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTdGFyLCBNYWlsLCBNYWlsT3BlbiB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQgeyBDaGVja2JveCB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9jaGVja2JveCc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJ0AvbGliL3V0aWxzJztcbmltcG9ydCB7IEVtYWlsIH0gZnJvbSAnQC9ob29rcy91c2UtY291cnJpZXInO1xuaW1wb3J0IHsgQmFkZ2UgfSBmcm9tICdAL2NvbXBvbmVudHMvdWkvYmFkZ2UnO1xuaW1wb3J0IHsgQXZhdGFyLCBBdmF0YXJGYWxsYmFjayB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9hdmF0YXInO1xuXG5pbnRlcmZhY2UgRW1haWxMaXN0SXRlbVByb3BzIHtcbiAgZW1haWw6IEVtYWlsO1xuICBpc1NlbGVjdGVkOiBib29sZWFuO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgb25TZWxlY3Q6ICgpID0+IHZvaWQ7XG4gIG9uVG9nZ2xlU2VsZWN0OiAoZTogUmVhY3QuTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgb25Ub2dnbGVTdGFycmVkOiAoZTogUmVhY3QuTW91c2VFdmVudCkgPT4gdm9pZDtcbn1cblxuY29uc3QgUFJFVklFV19MRU5HVEggPSA3MDtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRW1haWxMaXN0SXRlbSh7XG4gIGVtYWlsLFxuICBpc1NlbGVjdGVkLFxuICBpc0FjdGl2ZSxcbiAgb25TZWxlY3QsXG4gIG9uVG9nZ2xlU2VsZWN0LFxuICBvblRvZ2dsZVN0YXJyZWRcbn06IEVtYWlsTGlzdEl0ZW1Qcm9wcykge1xuICAvLyBGb3JtYXQgdGhlIGRhdGUgaW4gYSByZWFkYWJsZSB3YXlcbiAgY29uc3QgZm9ybWF0RGF0ZSA9IChkYXRlU3RyaW5nOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoZGF0ZVN0cmluZyk7XG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKG5vdy5nZXRGdWxsWWVhcigpLCBub3cuZ2V0TW9udGgoKSwgbm93LmdldERhdGUoKSk7XG4gICAgY29uc3QgeWVzdGVyZGF5ID0gbmV3IERhdGUodG9kYXkpO1xuICAgIHllc3RlcmRheS5zZXREYXRlKHllc3RlcmRheS5nZXREYXRlKCkgLSAxKTtcbiAgICBcbiAgICAvLyBDaGVjayBpZiBkYXRlIGlzIHRvZGF5XG4gICAgaWYgKGRhdGUgPj0gdG9kYXkpIHtcbiAgICAgIHJldHVybiBkYXRlLnRvTG9jYWxlVGltZVN0cmluZyhbXSwgeyBob3VyOiAnMi1kaWdpdCcsIG1pbnV0ZTogJzItZGlnaXQnIH0pO1xuICAgIH1cbiAgICBcbiAgICAvLyBDaGVjayBpZiBkYXRlIGlzIHllc3RlcmRheVxuICAgIGlmIChkYXRlID49IHllc3RlcmRheSkge1xuICAgICAgcmV0dXJuICdZZXN0ZXJkYXknO1xuICAgIH1cbiAgICBcbiAgICAvLyBDaGVjayBpZiBkYXRlIGlzIHRoaXMgeWVhclxuICAgIGlmIChkYXRlLmdldEZ1bGxZZWFyKCkgPT09IG5vdy5nZXRGdWxsWWVhcigpKSB7XG4gICAgICByZXR1cm4gZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoW10sIHsgbW9udGg6ICdzaG9ydCcsIGRheTogJ251bWVyaWMnIH0pO1xuICAgIH1cbiAgICBcbiAgICAvLyBEYXRlIGlzIGZyb20gYSBwcmV2aW91cyB5ZWFyXG4gICAgcmV0dXJuIGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKFtdLCB7IHllYXI6ICdudW1lcmljJywgbW9udGg6ICdzaG9ydCcsIGRheTogJ251bWVyaWMnIH0pO1xuICB9O1xuXG4gIC8vIEdldCB0aGUgZmlyc3QgbGV0dGVyIG9mIHRoZSBzZW5kZXIncyBuYW1lIG9yIGVtYWlsIGZvciB0aGUgYXZhdGFyXG4gIGNvbnN0IGdldFNlbmRlckluaXRpYWwgPSAoKSA9PiB7XG4gICAgaWYgKCFlbWFpbC5mcm9tIHx8IGVtYWlsLmZyb20ubGVuZ3RoID09PSAwKSByZXR1cm4gJz8nO1xuICAgIFxuICAgIGNvbnN0IHNlbmRlciA9IGVtYWlsLmZyb21bMF07XG4gICAgaWYgKHNlbmRlci5uYW1lICYmIHNlbmRlci5uYW1lLnRyaW0oKSkge1xuICAgICAgcmV0dXJuIHNlbmRlci5uYW1lLnRyaW0oKVswXS50b1VwcGVyQ2FzZSgpO1xuICAgIH1cbiAgICBcbiAgICBpZiAoc2VuZGVyLmFkZHJlc3MgJiYgc2VuZGVyLmFkZHJlc3MudHJpbSgpKSB7XG4gICAgICByZXR1cm4gc2VuZGVyLmFkZHJlc3MudHJpbSgpWzBdLnRvVXBwZXJDYXNlKCk7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiAnPyc7XG4gIH07XG5cbiAgLy8gR2V0IHNlbmRlciBuYW1lIG9yIGVtYWlsXG4gIGNvbnN0IGdldFNlbmRlck5hbWUgPSAoKSA9PiB7XG4gICAgaWYgKCFlbWFpbC5mcm9tIHx8IGVtYWlsLmZyb20ubGVuZ3RoID09PSAwKSByZXR1cm4gJ1Vua25vd24nO1xuICAgIFxuICAgIGNvbnN0IHNlbmRlciA9IGVtYWlsLmZyb21bMF07XG4gICAgaWYgKHNlbmRlci5uYW1lICYmIHNlbmRlci5uYW1lLnRyaW0oKSkge1xuICAgICAgcmV0dXJuIHNlbmRlci5uYW1lLnRyaW0oKTtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIHNlbmRlci5hZGRyZXNzIHx8ICdVbmtub3duJztcbiAgfTtcblxuICAvLyBHZW5lcmF0ZSBhIHN0YWJsZSBjb2xvciBiYXNlZCBvbiB0aGUgc2VuZGVyJ3MgZW1haWxcbiAgY29uc3QgZ2V0QXZhdGFyQ29sb3IgPSAoKSA9PiB7XG4gICAgaWYgKCFlbWFpbC5mcm9tIHx8IGVtYWlsLmZyb20ubGVuZ3RoID09PSAwKSByZXR1cm4gJ2hzbCgwLCAwJSwgNTAlKSc7XG4gICAgXG4gICAgY29uc3QgYWRkcmVzcyA9IGVtYWlsLmZyb21bMF0uYWRkcmVzcyB8fCAnJztcbiAgICBsZXQgaGFzaCA9IDA7XG4gICAgXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhZGRyZXNzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBoYXNoID0gYWRkcmVzcy5jaGFyQ29kZUF0KGkpICsgKChoYXNoIDw8IDUpIC0gaGFzaCk7XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IGggPSBoYXNoICUgMzYwO1xuICAgIHJldHVybiBgaHNsKCR7aH0sIDcwJSwgODAlKWA7XG4gIH07XG5cbiAgLy8gR2V0IHByZXZpZXcgdGV4dCBmcm9tIGVtYWlsIGNvbnRlbnRcbiAgY29uc3QgZ2V0UHJldmlld1RleHQgPSAoY29udGVudDogeyB0ZXh0OiBzdHJpbmc7IGh0bWw6IHN0cmluZyB9IHwgc3RyaW5nKSA9PiB7XG4gICAgbGV0IHRleHQgPSAnJztcbiAgICBcbiAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0ZXh0ID0gY29udGVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUHJlZmVyIHRleHQgY29udGVudCBpZiBhdmFpbGFibGUsIGZhbGwgYmFjayB0byBIVE1MXG4gICAgICB0ZXh0ID0gY29udGVudC50ZXh0IHx8IGNvbnRlbnQuaHRtbDtcbiAgICB9XG4gICAgXG4gICAgLy8gU3RyaXAgSFRNTCB0YWdzIGlmIHByZXNlbnRcbiAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKC88W14+XSs+L2csICcgJyk7XG4gICAgXG4gICAgLy8gQ2xlYW4gdXAgd2hpdGVzcGFjZVxuICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoL1xccysvZywgJyAnKS50cmltKCk7XG4gICAgXG4gICAgLy8gVHJ1bmNhdGUgdG8gcHJldmlldyBsZW5ndGhcbiAgICByZXR1cm4gdGV4dC5sZW5ndGggPiBQUkVWSUVXX0xFTkdUSCBcbiAgICAgID8gdGV4dC5zdWJzdHJpbmcoMCwgUFJFVklFV19MRU5HVEgpICsgJy4uLidcbiAgICAgIDogdGV4dDtcbiAgfTtcblxuICAvLyBIYW5kbGUgZW1haWwgc2VsZWN0aW9uIHdpdGhvdXQgYWZmZWN0aW5nIGNoZWNrYm94XG4gIGNvbnN0IGhhbmRsZUVtYWlsU2VsZWN0ID0gKGU6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICAvLyBNYWtlIHN1cmUgd2UncmUgbm90IGNsaWNraW5nIG9uIG9yIG5lYXIgdGhlIGNoZWNrYm94XG4gICAgY29uc3QgdGFyZ2V0ID0gZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgY2hlY2tib3hBcmVhID0gdGFyZ2V0LmNsb3Nlc3QoJy5jaGVja2JveC1hcmVhJyk7XG4gICAgaWYgKCFjaGVja2JveEFyZWEpIHtcbiAgICAgIG9uU2VsZWN0KCk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBcbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICdmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBweC00IHB5LTIgaG92ZXI6YmctZ3JheS01MC84MCBjdXJzb3ItcG9pbnRlcicsXG4gICAgICAgIGlzQWN0aXZlID8gJ2JnLWJsdWUtNTAvNTAnIDogJycsXG4gICAgICAgICFlbWFpbC5mbGFncz8uc2VlbiA/ICdiZy1ibHVlLTUwLzIwJyA6ICcnXG4gICAgICApfVxuICAgICAgb25DbGljaz17aGFuZGxlRW1haWxTZWxlY3R9XG4gICAgPlxuICAgICAgPGRpdiBcbiAgICAgICAgY2xhc3NOYW1lPVwiZmxleC1zaHJpbmstMCBwci0yIGNoZWNrYm94LWFyZWFcIiBcbiAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8Q2hlY2tib3ggXG4gICAgICAgICAgY2hlY2tlZD17aXNTZWxlY3RlZH1cbiAgICAgICAgICBvbkNoZWNrZWRDaGFuZ2U9eyhjaGVja2VkKSA9PiB7XG4gICAgICAgICAgICAvLyBPbmx5IHRyaWdnZXIgdG9nZ2xlIGlmIHRoZSBjaGVja2JveCBzdGF0ZSBhY3R1YWxseSBjaGFuZ2VkXG4gICAgICAgICAgICBpZiAoY2hlY2tlZCAhPT0gaXNTZWxlY3RlZCkge1xuICAgICAgICAgICAgICAvLyBDcmVhdGUgYSBkdW1teSBldmVudCBvYmplY3Qgd2l0aCBqdXN0IHN0b3BQcm9wYWdhdGlvblxuICAgICAgICAgICAgICBjb25zdCBkdW1teUV2ZW50ID0geyBcbiAgICAgICAgICAgICAgICBzdG9wUHJvcGFnYXRpb246ICgpID0+IHt9IFxuICAgICAgICAgICAgICB9IGFzIFJlYWN0Lk1vdXNlRXZlbnQ7XG4gICAgICAgICAgICAgIG9uVG9nZ2xlU2VsZWN0KGR1bW15RXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH19XG4gICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAvLyBEb24ndCBjYWxsIG9uVG9nZ2xlU2VsZWN0IGhlcmUgLSBsZXQgb25DaGVja2VkQ2hhbmdlIGhhbmRsZSBpdFxuICAgICAgICAgIH19XG4gICAgICAgICAgY2xhc3NOYW1lPVwibXQtMC41XCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMSBtaW4tdy0wXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBtaW4tdy0wXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2B0ZXh0LXNtIHRydW5jYXRlICR7IWVtYWlsLmZsYWdzPy5zZWVuID8gJ2ZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMCcgOiAndGV4dC1ncmF5LTYwMCd9YH0+XG4gICAgICAgICAgICAgIHtnZXRTZW5kZXJOYW1lKCl9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBmbGV4LXNocmluay0wXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtZ3JheS01MDAgd2hpdGVzcGFjZS1ub3dyYXBcIj5cbiAgICAgICAgICAgICAge2Zvcm1hdERhdGUoZW1haWwuZGF0ZS50b1N0cmluZygpKX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC02IHctNiB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQteWVsbG93LTQwMFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBvblRvZ2dsZVN0YXJyZWQoZSk7XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFyIGNsYXNzTmFtZT17YGgtNCB3LTQgJHtlbWFpbC5mbGFncz8uZmxhZ2dlZCA/ICdmaWxsLXllbGxvdy00MDAgdGV4dC15ZWxsb3ctNDAwJyA6ICcnfWB9IC8+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktOTAwIHRydW5jYXRlXCI+XG4gICAgICAgICAge2VtYWlsLnN1YmplY3QgfHwgJyhObyBzdWJqZWN0KSd9XG4gICAgICAgIDwvaDM+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1ncmF5LTUwMCB0cnVuY2F0ZVwiPlxuICAgICAgICAgIHtnZXRQcmV2aWV3VGV4dChlbWFpbC5jb250ZW50KX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn0gIl0sIm5hbWVzIjpbIlJlYWN0IiwiU3RhciIsIkNoZWNrYm94IiwiY24iLCJQUkVWSUVXX0xFTkdUSCIsIkVtYWlsTGlzdEl0ZW0iLCJlbWFpbCIsImlzU2VsZWN0ZWQiLCJpc0FjdGl2ZSIsIm9uU2VsZWN0Iiwib25Ub2dnbGVTZWxlY3QiLCJvblRvZ2dsZVN0YXJyZWQiLCJmb3JtYXREYXRlIiwiZGF0ZVN0cmluZyIsImRhdGUiLCJEYXRlIiwibm93IiwidG9kYXkiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsInllc3RlcmRheSIsInNldERhdGUiLCJ0b0xvY2FsZVRpbWVTdHJpbmciLCJob3VyIiwibWludXRlIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwibW9udGgiLCJkYXkiLCJ5ZWFyIiwiZ2V0U2VuZGVySW5pdGlhbCIsImZyb20iLCJsZW5ndGgiLCJzZW5kZXIiLCJuYW1lIiwidHJpbSIsInRvVXBwZXJDYXNlIiwiYWRkcmVzcyIsImdldFNlbmRlck5hbWUiLCJnZXRBdmF0YXJDb2xvciIsImhhc2giLCJpIiwiY2hhckNvZGVBdCIsImgiLCJnZXRQcmV2aWV3VGV4dCIsImNvbnRlbnQiLCJ0ZXh0IiwiaHRtbCIsInJlcGxhY2UiLCJzdWJzdHJpbmciLCJoYW5kbGVFbWFpbFNlbGVjdCIsImUiLCJ0YXJnZXQiLCJjaGVja2JveEFyZWEiLCJjbG9zZXN0IiwiZGl2IiwiY2xhc3NOYW1lIiwiZmxhZ3MiLCJzZWVuIiwib25DbGljayIsInN0b3BQcm9wYWdhdGlvbiIsImNoZWNrZWQiLCJvbkNoZWNrZWRDaGFuZ2UiLCJkdW1teUV2ZW50Iiwic3BhbiIsInRvU3RyaW5nIiwiYnV0dG9uIiwiZmxhZ2dlZCIsImgzIiwic3ViamVjdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/email/EmailListItem.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/email/EmailSidebar.tsx": /*!*******************************************!*\ !*** ./components/email/EmailSidebar.tsx ***! \*******************************************/ /***/ ((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\": () => (/* binding */ EmailSidebar)\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_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/inbox.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/send.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trash.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/archive.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/square-pen.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/octagon-alert.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/message-square.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/mail.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/plus.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/refresh-cw.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-up.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-down.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/loader-circle.js\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/dropdown-menu */ \"(app-pages-browser)/./components/ui/dropdown-menu.tsx\");\n/* harmony import */ var _components_ui_tabs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ui/tabs */ \"(app-pages-browser)/./components/ui/tabs.tsx\");\n/* harmony import */ var _components_ui_input__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/ui/input */ \"(app-pages-browser)/./components/ui/input.tsx\");\n/* harmony import */ var _components_ui_checkbox__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/ui/checkbox */ \"(app-pages-browser)/./components/ui/checkbox.tsx\");\n/* harmony import */ var _components_ui_label__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/components/ui/label */ \"(app-pages-browser)/./components/ui/label.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\n\nfunction EmailSidebar(param) {\n let { accounts, selectedAccount, selectedFolders, currentFolder, loading, unreadCount, showAddAccountForm, showFolders = true, onFolderChange, onRefresh, onComposeNew, onAccountSelect, onShowAddAccountForm, onAddAccount, onEditAccount, onDeleteAccount, onSelectEmail, onShowFoldersToggle } = param;\n _s();\n const [isSaving, setIsSaving] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [formData, setFormData] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n email: '',\n password: '',\n displayName: '',\n host: '',\n port: '993',\n useSSL: true,\n smtpHost: '',\n smtpPort: '587',\n smtpUseSSL: false\n });\n const [activeTab, setActiveTab] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('imap');\n // Handle form submission\n const handleSubmit = async (e)=>{\n e.preventDefault();\n setIsSaving(true);\n try {\n await onAddAccount(formData);\n setFormData({\n email: '',\n password: '',\n displayName: '',\n host: '',\n port: '993',\n useSSL: true,\n smtpHost: '',\n smtpPort: '587',\n smtpUseSSL: false\n });\n onShowAddAccountForm(false);\n } catch (err) {\n console.error('Failed to add account:', err);\n } finally{\n setIsSaving(false);\n }\n };\n // Handle input changes\n const handleChange = (e)=>{\n const { name, value, type, checked } = e.target;\n setFormData((prev)=>({\n ...prev,\n [name]: type === 'checkbox' ? checked : value\n }));\n };\n // Get the appropriate icon for a folder\n const getFolderIcon = (folder)=>{\n const folderLower = folder.toLowerCase();\n if (folderLower.includes('inbox')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 122,\n columnNumber: 14\n }, this);\n } else if (folderLower.includes('sent')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 124,\n columnNumber: 14\n }, this);\n } else if (folderLower.includes('trash')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 126,\n columnNumber: 14\n }, this);\n } else if (folderLower.includes('archive')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 128,\n columnNumber: 14\n }, this);\n } else if (folderLower.includes('draft')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 130,\n columnNumber: 14\n }, this);\n } else if (folderLower.includes('spam') || folderLower.includes('junk')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 132,\n columnNumber: 14\n }, this);\n } else {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 134,\n columnNumber: 14\n }, this);\n }\n };\n // Format folder names\n const formatFolderName = (folder)=>{\n return folder.charAt(0).toUpperCase() + folder.slice(1).toLowerCase();\n };\n // Improve the renderFolderButton function to ensure consistent handling\n const renderFolderButton = (folder, accountId)=>{\n var _selectedFolders_accountId;\n // Ensure folder has a consistent format\n let prefixedFolder = folder;\n let baseFolderName = folder;\n let folderAccountId = accountId;\n // Extract parts if the folder has a prefix\n if (folder.includes(':')) {\n const parts = folder.split(':');\n folderAccountId = parts[0];\n baseFolderName = parts[1];\n } else {\n // Add account prefix if missing\n prefixedFolder = \"\".concat(accountId, \":\").concat(folder);\n }\n // Only show folders that belong to this account\n if (folderAccountId !== accountId) {\n return null;\n }\n // Check if this folder is selected for this account\n // Must handle both prefixed and non-prefixed versions in the selected map\n const isSelected = selectedFolders[accountId] === prefixedFolder || selectedFolders[accountId] === baseFolderName || ((_selectedFolders_accountId = selectedFolders[accountId]) === null || _selectedFolders_accountId === void 0 ? void 0 : _selectedFolders_accountId.split(':')[1]) === baseFolderName;\n // Get unread count - check all possible formats\n let folderUnreadCount = 0;\n // Check if this is an inbox folder (only show unread counts for inbox folders)\n // Use exact matching instead of includes() to avoid matching substrings in folder names\n const folderLower = baseFolderName.toLowerCase();\n const isInboxFolder = folderLower === 'inbox';\n // Only calculate unread count for inbox folders\n if (isInboxFolder && unreadCount && unreadCount[accountId]) {\n // Try the base folder name first\n if (typeof unreadCount[accountId][baseFolderName] === 'number') {\n folderUnreadCount = unreadCount[accountId][baseFolderName];\n } else if (typeof unreadCount[accountId][prefixedFolder] === 'number') {\n folderUnreadCount = unreadCount[accountId][prefixedFolder];\n } else {\n // Check for case-insensitive match\n const folderMap = unreadCount[accountId];\n for(const key in folderMap){\n if (key.toLowerCase() === baseFolderName.toLowerCase() || key.toLowerCase() === prefixedFolder.toLowerCase()) {\n folderUnreadCount = folderMap[key];\n break;\n }\n }\n }\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n variant: \"ghost\",\n className: \"w-full justify-start text-xs py-1 h-7 \".concat(isSelected ? 'bg-gray-100' : ''),\n onClick: ()=>{\n // Always ensure the folder name includes the account ID prefix\n const fullyPrefixedFolder = folder.includes(':') ? folder : \"\".concat(accountId, \":\").concat(folder);\n // Make sure we pass the EXACT accountId parameter here, not the folder's extracted account ID\n onFolderChange(fullyPrefixedFolder, accountId);\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center w-full\",\n children: [\n getFolderIcon(baseFolderName),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"ml-2 truncate text-gray-700\",\n children: formatFolderName(baseFolderName)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 219,\n columnNumber: 11\n }, this),\n isInboxFolder && folderUnreadCount > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"ml-auto bg-blue-500 text-white text-[10px] px-1.5 rounded-full\",\n children: folderUnreadCount\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 221,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 217,\n columnNumber: 9\n }, this)\n }, prefixedFolder, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 205,\n columnNumber: 7\n }, this);\n };\n // Add Microsoft button logic\n const handleConnectMicrosoft = async ()=>{\n try {\n const response = await fetch('/api/courrier/microsoft');\n const data = await response.json();\n if (response.ok && data.authUrl) {\n // Redirect to Microsoft's authorization page\n window.location.href = data.authUrl;\n } else {\n console.error('Failed to initiate Microsoft authentication:', data.error);\n }\n } catch (error) {\n console.error('Error connecting Microsoft account:', error);\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-60 bg-white/95 backdrop-blur-sm border-r border-gray-100 flex flex-col md:flex\",\n style: {\n display: \"flex !important\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-3 border-b border-gray-100\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n className: \"h-6 w-6 text-gray-600\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 252,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xl font-semibold text-gray-900\",\n children: \"COURRIER\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 253,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 251,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 250,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-2 border-b border-gray-100 flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n className: \"flex-1 bg-blue-600 text-white rounded-lg hover:bg-blue-700 flex items-center justify-center transition-all py-1.5 text-sm\",\n onClick: onComposeNew,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n className: \"h-3.5 w-3.5\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 264,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"Compose\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 265,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 263,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 259,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"h-9 w-9 text-gray-400 hover:text-gray-600\",\n onClick: onRefresh,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n className: \"h-4 w-4 \".concat(loading ? 'animate-spin' : '')\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 274,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 268,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 258,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-y-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-3 border-b border-gray-100\",\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-500\",\n children: \"Accounts\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 283,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n variant: \"ghost\",\n size: \"sm\",\n className: \"h-7 w-7 p-0 text-gray-400 hover:text-gray-600\",\n onClick: ()=>onShowFoldersToggle === null || onShowFoldersToggle === void 0 ? void 0 : onShowFoldersToggle(showFolders ? false : true),\n children: showFolders ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 292,\n columnNumber: 19\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 294,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 285,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n variant: \"ghost\",\n size: \"sm\",\n className: \"h-7 w-7 p-0 text-gray-400 hover:text-gray-600\",\n onClick: ()=>onShowAddAccountForm(!showAddAccountForm),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 303,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 297,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 284,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 282,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-1\",\n children: [\n showAddAccountForm && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-2 p-2 border border-gray-200 rounded-md bg-white\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-xs font-medium mb-0.5 text-gray-700\",\n children: \"Add IMAP Account\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 313,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: handleSubmit,\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)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_4__.Tabs, {\n defaultValue: \"imap\",\n className: \"w-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_4__.TabsList, {\n className: \"grid w-full grid-cols-2 h-6 mb-0.5 bg-gray-100\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_4__.TabsTrigger, {\n value: \"imap\",\n className: \"text-xs h-5 data-[state=active]:bg-blue-500 data-[state=active]:text-white\",\n children: \"IMAP\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 318,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_4__.TabsTrigger, {\n value: \"smtp\",\n className: \"text-xs h-5 data-[state=active]:bg-blue-500 data-[state=active]:text-white\",\n children: \"SMTP\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 319,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 317,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_4__.TabsContent, {\n value: \"imap\",\n className: \"mt-0.5 space-y-0.5\",\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)(_components_ui_input__WEBPACK_IMPORTED_MODULE_5__.Input, {\n id: \"email\",\n name: \"email\",\n placeholder: \"email@example.com\",\n className: \"h-7 text-xs bg-white border-gray-300 mb-0.5 text-gray-900\",\n required: true,\n value: formData.email,\n onChange: handleChange\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 324,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 323,\n columnNumber: 25\n }, this),\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)(_components_ui_input__WEBPACK_IMPORTED_MODULE_5__.Input, {\n id: \"password\",\n name: \"password\",\n type: \"password\",\n placeholder: \"•••••••••\",\n className: \"h-7 text-xs bg-white border-gray-300 mb-0.5 text-gray-900\",\n required: true,\n value: formData.password,\n onChange: handleChange\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 335,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 334,\n columnNumber: 25\n }, this),\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)(_components_ui_input__WEBPACK_IMPORTED_MODULE_5__.Input, {\n id: \"display_name\",\n name: \"displayName\",\n placeholder: \"John Doe\",\n className: \"h-7 text-xs bg-white border-gray-300 mb-0.5 text-gray-900\",\n value: formData.displayName,\n onChange: handleChange\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 347,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 346,\n columnNumber: 25\n }, this),\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)(_components_ui_input__WEBPACK_IMPORTED_MODULE_5__.Input, {\n id: \"host\",\n name: \"host\",\n placeholder: \"imap.example.com\",\n className: \"h-7 text-xs bg-white border-gray-300 mb-0.5 text-gray-900\",\n required: true,\n value: formData.host,\n onChange: handleChange\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 357,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 356,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_5__.Input, {\n id: \"port\",\n name: \"port\",\n placeholder: \"993\",\n className: \"h-7 text-xs bg-white border-gray-300 text-gray-900\",\n value: formData.port,\n onChange: handleChange\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 369,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 368,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center pl-1\",\n children: /*#__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)(_components_ui_checkbox__WEBPACK_IMPORTED_MODULE_6__.Checkbox, {\n id: \"useSSL\",\n name: \"useSSL\",\n checked: formData.useSSL,\n onCheckedChange: (checked)=>{\n setFormData((prev)=>({\n ...prev,\n useSSL: checked === true\n }));\n }\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 380,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_label__WEBPACK_IMPORTED_MODULE_7__.Label, {\n htmlFor: \"useSSL\",\n className: \"text-xs\",\n children: \"SSL\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 391,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 379,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 378,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 367,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 322,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_4__.TabsContent, {\n value: \"smtp\",\n className: \"mt-0.5 space-y-0.5\",\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)(_components_ui_input__WEBPACK_IMPORTED_MODULE_5__.Input, {\n id: \"smtp_host\",\n name: \"smtpHost\",\n placeholder: \"smtp.example.com\",\n className: \"h-7 text-xs bg-white border-gray-300 mb-0.5 text-gray-900\",\n value: formData.smtpHost,\n onChange: handleChange\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 399,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 398,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_5__.Input, {\n id: \"smtp_port\",\n name: \"smtpPort\",\n placeholder: \"587\",\n className: \"h-7 text-xs bg-white border-gray-300 text-gray-900\",\n value: formData.smtpPort,\n onChange: handleChange\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 410,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 409,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center pl-1\",\n children: /*#__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)(_components_ui_checkbox__WEBPACK_IMPORTED_MODULE_6__.Checkbox, {\n id: \"smtp_secure\",\n name: \"smtpUseSSL\",\n checked: formData.smtpUseSSL,\n onCheckedChange: (checked)=>{\n setFormData((prev)=>({\n ...prev,\n smtpUseSSL: checked === true\n }));\n }\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 421,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_label__WEBPACK_IMPORTED_MODULE_7__.Label, {\n htmlFor: \"smtp_secure\",\n className: \"text-xs\",\n children: \"SSL\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 432,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 420,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 419,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 408,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-500 italic\",\n children: \"Note: SMTP settings needed for sending emails\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 436,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 397,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 316,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-1 mt-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n type: \"submit\",\n className: \"flex-1 h-6 text-xs bg-blue-500 hover:bg-blue-600 text-white rounded-md px-2 py-0\",\n disabled: isSaving,\n children: [\n isSaving ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n className: \"h-3 w-3 animate-spin mr-1\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 448,\n columnNumber: 37\n }, this) : null,\n \"Test & Add\"\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 443,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n type: \"button\",\n className: \"h-6 text-xs bg-gray-200 text-gray-800 hover:bg-gray-300 rounded-md px-2 py-0\",\n onClick: ()=>onShowAddAccountForm(false),\n children: \"Cancel\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 451,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 442,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 315,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 314,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-2 pt-2 border-t border-gray-100\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: handleConnectMicrosoft,\n className: \"w-full flex items-center justify-center gap-2 h-7 text-xs bg-[#0078D4] hover:bg-[#106EBE] text-white rounded-md px-2 py-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 23 23\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n fill: \"#f3f3f3\",\n d: \"M0 0h23v23H0z\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 470,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n fill: \"#f35325\",\n d: \"M1 1h10v10H1z\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 471,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n fill: \"#81bc06\",\n d: \"M12 1h10v10H12z\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 472,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n fill: \"#05a6f0\",\n d: \"M1 12h10v10H1z\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 473,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n fill: \"#ffba08\",\n d: \"M12 12h10v10H12z\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 474,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 469,\n columnNumber: 21\n }, this),\n \"Connect Microsoft Account\"\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 464,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 463,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 312,\n columnNumber: 15\n }, this),\n accounts.map((account)=>{\n var _account_color;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center w-full px-1 py-1 rounded-md cursor-pointer \".concat((selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.id) === account.id ? 'bg-gray-100' : ''),\n onClick: ()=>onAccountSelect(account),\n tabIndex: 0,\n role: \"button\",\n onKeyDown: (e)=>{\n if (e.key === 'Enter' || e.key === ' ') onAccountSelect(account);\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-3 h-3 rounded-full \".concat(((_account_color = account.color) === null || _account_color === void 0 ? void 0 : _account_color.startsWith('#')) ? 'bg-blue-500' : account.color || 'bg-blue-500', \" mr-2\")\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 490,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"truncate text-gray-700 flex-1\",\n children: account.name\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 491,\n columnNumber: 19\n }, this),\n account.id !== 'loading-account' && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenu, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n className: \"ml-1 text-gray-400 hover:text-gray-600 cursor-pointer flex items-center justify-center h-5 w-5\",\n tabIndex: -1,\n onClick: (e)=>e.stopPropagation(),\n \"aria-label\": \"Account options\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n style: {\n fontSize: '18px',\n lineHeight: 1\n },\n children: \"⋮\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 503,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 496,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 495,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuContent, {\n align: \"end\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuItem, {\n onClick: (e)=>{\n e.stopPropagation();\n onEditAccount(account);\n },\n children: \"Edit\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 507,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuItem, {\n onClick: (e)=>{\n e.stopPropagation();\n onDeleteAccount(account);\n },\n children: \"Delete\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 510,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 506,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 494,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 484,\n columnNumber: 17\n }, this),\n (selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.id) === account.id && showFolders && account.folders && account.folders.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"pl-4\",\n children: account.folders.map((folder)=>renderFolderButton(folder, account.id.toString()))\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 519,\n columnNumber: 19\n }, this)\n ]\n }, account.id, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 483,\n columnNumber: 15\n }, this);\n })\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 309,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 281,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 279,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 248,\n columnNumber: 5\n }, this);\n}\n_s(EmailSidebar, \"atPsgTSSvQU+A16vq8IkkLQ0/Qg=\");\n_c = EmailSidebar;\nvar _c;\n$RefreshReg$(_c, \"EmailSidebar\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZW1haWwvRW1haWxTaWRlYmFyLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXdDO0FBTWxCO0FBQzBCO0FBSXlFO0FBQ3pDO0FBQ2xDO0FBQ007QUFDTjtBQStCL0IsU0FBUzRCLGFBQWEsS0FtQmpCO1FBbkJpQixFQUNuQ0MsUUFBUSxFQUNSQyxlQUFlLEVBQ2ZDLGVBQWUsRUFDZkMsYUFBYSxFQUNiQyxPQUFPLEVBQ1BDLFdBQVcsRUFDWEMsa0JBQWtCLEVBQ2xCQyxjQUFjLElBQUksRUFDbEJDLGNBQWMsRUFDZEMsU0FBUyxFQUNUQyxZQUFZLEVBQ1pDLGVBQWUsRUFDZkMsb0JBQW9CLEVBQ3BCQyxZQUFZLEVBQ1pDLGFBQWEsRUFDYkMsZUFBZSxFQUNmQyxhQUFhLEVBQ2JDLG1CQUFtQixFQUNELEdBbkJpQjs7SUFvQm5DLE1BQU0sQ0FBQ0MsVUFBVUMsWUFBWSxHQUFHL0MsK0NBQVFBLENBQUM7SUFDekMsTUFBTSxDQUFDZ0QsVUFBVUMsWUFBWSxHQUFHakQsK0NBQVFBLENBQUM7UUFDdkNrRCxPQUFPO1FBQ1BDLFVBQVU7UUFDVkMsYUFBYTtRQUNiQyxNQUFNO1FBQ05DLE1BQU07UUFDTkMsUUFBUTtRQUNSQyxVQUFVO1FBQ1ZDLFVBQVU7UUFDVkMsWUFBWTtJQUNkO0lBQ0EsTUFBTSxDQUFDQyxXQUFXQyxhQUFhLEdBQUc1RCwrQ0FBUUEsQ0FBQztJQUUzQyx5QkFBeUI7SUFDekIsTUFBTTZELGVBQWUsT0FBT0M7UUFDMUJBLEVBQUVDLGNBQWM7UUFDaEJoQixZQUFZO1FBQ1osSUFBSTtZQUNGLE1BQU1OLGFBQWFPO1lBQ25CQyxZQUFZO2dCQUNWQyxPQUFPO2dCQUNQQyxVQUFVO2dCQUNWQyxhQUFhO2dCQUNiQyxNQUFNO2dCQUNOQyxNQUFNO2dCQUNOQyxRQUFRO2dCQUNSQyxVQUFVO2dCQUNWQyxVQUFVO2dCQUNWQyxZQUFZO1lBQ2Q7WUFDQWxCLHFC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REFBSXBCLFdBQVU7MERBQ1p3RCxRQUFRWSxPQUFPLENBQUNiLEdBQUcsQ0FBQyxDQUFDM0QsU0FBbUJTLG1CQUFtQlQsUUFBUTRELFFBQVFqQixFQUFFLENBQUMrQixRQUFROzs7Ozs7O3VDQXJDbkZkLFFBQVFqQixFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQStDbEM7R0FqZXdCM0Y7S0FBQUEiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvY29tcG9uZW50cy9lbWFpbC9FbWFpbFNpZGViYXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgXG4gIEluYm94LCBTZW5kLCBUcmFzaCwgQXJjaGl2ZSwgU3RhciwgXG4gIEZpbGUsIFJlZnJlc2hDdywgUGx1cyBhcyBQbHVzSWNvbiwgRWRpdCwgXG4gIENoZXZyb25Eb3duLCBDaGV2cm9uVXAsIE1haWwsIE1lbnUsXG4gIFNldHRpbmdzLCBMb2FkZXIyLCBBbGVydE9jdGFnb24sIE1lc3NhZ2VTcXVhcmVcbn0gZnJvbSAnbHVjaWRlLXJlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9idXR0b24nO1xuaW1wb3J0IHsgY24gfSBmcm9tICdAL2xpYi91dGlscyc7XG5pbXBvcnQgeyBTY3JvbGxBcmVhIH0gZnJvbSAnQC9jb21wb25lbnRzL3VpL3Njcm9sbC1hcmVhJztcbmltcG9ydCB7IEJhZGdlIH0gZnJvbSAnQC9jb21wb25lbnRzL3VpL2JhZGdlJztcbmltcG9ydCB7IERyb3Bkb3duTWVudSwgRHJvcGRvd25NZW51VHJpZ2dlciwgRHJvcGRvd25NZW51Q29udGVudCwgRHJvcGRvd25NZW51SXRlbSB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9kcm9wZG93bi1tZW51JztcbmltcG9ydCB7IFRhYnMsIFRhYnNMaXN0LCBUYWJzVHJpZ2dlciwgVGFic0NvbnRlbnQgfSBmcm9tICdAL2NvbXBvbmVudHMvdWkvdGFicyc7XG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9pbnB1dCc7XG5pbXBvcnQgeyBDaGVja2JveCB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9jaGVja2JveCc7XG5pbXBvcnQgeyBMYWJlbCB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9sYWJlbCc7XG5cbmludGVyZmFjZSBBY2NvdW50IHtcbiAgaWQ6IG51bWJlciB8IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBjb2xvcjogc3RyaW5nO1xuICBmb2xkZXJzPzogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBFbWFpbFNpZGViYXJQcm9wcyB7XG4gIGFjY291bnRzOiBBY2NvdW50W107XG4gIHNlbGVjdGVkQWNjb3VudDogQWNjb3VudCB8IG51bGw7XG4gIHNlbGVjdGVkRm9sZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgY3VycmVudEZvbGRlcjogc3RyaW5nO1xuICBsb2FkaW5nOiBib29sZWFuO1xuICB1bnJlYWRDb3VudDogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgbnVtYmVyPj47XG4gIHNob3dBZGRBY2NvdW50Rm9ybTogYm9vbGVhbjtcbiAgc2hvd0ZvbGRlcnM/OiBib29sZWFuO1xuICBvbkZvbGRlckNoYW5nZTogKGZvbGRlcjogc3RyaW5nLCBhY2NvdW50SWQ6IHN0cmluZykgPT4gdm9pZDtcbiAgb25SZWZyZXNoOiAoKSA9PiB2b2lkO1xuICBvbkNvbXBvc2VOZXc6ICgpID0+IHZvaWQ7XG4gIG9uQWNjb3VudFNlbGVjdDogKGFjY291bnQ6IEFjY291bnQpID0+IHZvaWQ7XG4gIG9uU2hvd0FkZEFjY291bnRGb3JtOiAoc2hvdzogYm9vbGVhbikgPT4gdm9pZDtcbiAgb25BZGRBY2NvdW50OiAoZm9ybURhdGE6IGFueSkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgb25FZGl0QWNjb3VudDogKGFjY291bnQ6IEFjY291bnQpID0+IHZvaWQ7XG4gIG9uRGVsZXRlQWNjb3VudDogKGFjY291bnQ6IEFjY291bnQpID0+IHZvaWQ7XG4gIG9uU2VsZWN0RW1haWw/OiAoZW1haWxJZDogc3RyaW5nLCBhY2NvdW50SWQ6IHN0cmluZywgZm9sZGVyOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uU2hvd0ZvbGRlcnNUb2dnbGU/OiAoc2hvdzogYm9vbGVhbikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRW1haWxTaWRlYmFyKHtcbiAgYWNjb3VudHMsXG4gIHNlbGVjdGVkQWNjb3VudCxcbiAgc2VsZWN0ZWRGb2xkZXJzLFxuICBjdXJyZW50Rm9sZGVyLFxuICBsb2FkaW5nLFxuICB1bnJlYWRDb3VudCxcbiAgc2hvd0FkZEFjY291bnRGb3JtLFxuICBzaG93Rm9sZGVycyA9IHRydWUsXG4gIG9uRm9sZGVyQ2hhbmdlLFxuICBvblJlZnJlc2gsXG4gIG9uQ29tcG9zZU5ldyxcbiAgb25BY2NvdW50U2VsZWN0LFxuICBvblNob3dBZGRBY2NvdW50Rm9ybSxcbiAgb25BZGRBY2NvdW50LFxuICBvbkVkaXRBY2NvdW50LFxuICBvbkRlbGV0ZUFjY291bnQsXG4gIG9uU2VsZWN0RW1haWwsXG4gIG9uU2hvd0ZvbGRlcnNUb2dnbGVcbn06IEVtYWlsU2lkZWJhclByb3BzKSB7XG4gIGNvbnN0IFtpc1NhdmluZywgc2V0SXNTYXZpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZm9ybURhdGEsIHNldEZvcm1EYXRhXSA9IHVzZVN0YXRlKHtcbiAgICBlbWFpbDogJycsXG4gICAgcGFzc3dvcmQ6ICcnLFxuICAgIGRpc3BsYXlOYW1lOiAnJyxcbiAgICBob3N0OiAnJyxcbiAgICBwb3J0OiAnOTkzJyxcbiAgICB1c2VTU0w6IHRydWUsXG4gICAgc210cEhvc3Q6ICcnLFxuICAgIHNtdHBQb3J0OiAnNTg3JyxcbiAgICBzbXRwVXNlU1NMOiBmYWxzZVxuICB9KTtcbiAgY29uc3QgW2FjdGl2ZVRhYiwgc2V0QWN0aXZlVGFiXSA9IHVzZVN0YXRlKCdpbWFwJyk7XG5cbiAgLy8gSGFuZGxlIGZvcm0gc3VibWlzc2lvblxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSBhc3luYyAoZTogUmVhY3QuRm9ybUV2ZW50KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHNldElzU2F2aW5nKHRydWUpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBvbkFkZEFjY291bnQoZm9ybURhdGEpO1xuICAgICAgc2V0Rm9ybURhdGEoe1xuICAgICAgICBlbWFpbDogJycsXG4gICAgICAgIHBhc3N3b3JkOiAnJyxcbiAgICAgICAgZGlzcGxheU5hbWU6ICcnLFxuICAgICAgICBob3N0OiAnJyxcbiAgICAgICAgcG9ydDogJzk5MycsXG4gICAgICAgIHVzZVNTTDogdHJ1ZSxcbiAgICAgICAgc210cEhvc3Q6ICcnLFxuICAgICAgICBzbXRwUG9ydDogJzU4NycsXG4gICAgICAgIHNtdHBVc2VTU0w6IGZhbHNlXG4gICAgICB9KTtcbiAgICAgIG9uU2hvd0FkZEFjY291bnRGb3JtKGZhbHNlKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBhZGQgYWNjb3VudDonLCBlcnIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRJc1NhdmluZyhmYWxzZSk7XG4gICAgfVxuICB9O1xuXG4gIC8vIEhhbmRsZSBpbnB1dCBjaGFuZ2VzXG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IChlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IHsgbmFtZSwgdmFsdWUsIHR5cGUsIGNoZWNrZWQgfSA9IGUudGFyZ2V0O1xuICAgIHNldEZvcm1EYXRhKHByZXYgPT4gKHtcbiAgICAgIC4uLnByZXYsXG4gICAgICBbbmFtZV06IHR5cGUgPT09ICdjaGVja2JveCcgPyBjaGVja2VkIDogdmFsdWVcbiAgICB9KSk7XG4gIH07XG5cbiAgLy8gR2V0IHRoZSBhcHByb3ByaWF0ZSBpY29uIGZvciBhIGZvbGRlclxuICBjb25zdCBnZXRGb2xkZXJJY29uID0gKGZvbGRlcjogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgZm9sZGVyTG93ZXIgPSBmb2xkZXIudG9Mb3dlckNhc2UoKTtcbiAgICBcbiAgICBpZiAoZm9sZGVyTG93ZXIuaW5jbHVkZXMoJ2luYm94JykpIHtcbiAgICAgIHJldHVybiA8SW5ib3ggY2xhc3NOYW1lPVwiaC00IHctNCB0ZXh0LWdyYXktNTAwXCIgLz47XG4gICAgfSBlbHNlIGlmIChmb2xkZXJMb3dlci5pbmNsdWRlcygnc2VudCcpKSB7XG4gICAgICByZXR1cm4gPFNlbmQgY2xhc3NOYW1lPVwiaC00IHctNCB0ZXh0LWdyYXktNTAwXCIgLz47XG4gICAgfSBlbHNlIGlmIChmb2xkZXJMb3dlci5pbmNsdWRlcygndHJhc2gnKSkge1xuICAgICAgcmV0dXJuIDxUcmFzaCBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtZ3JheS01MDBcIiAvPjtcbiAgICB9IGVsc2UgaWYgKGZvbGRlckxvd2VyLmluY2x1ZGVzKCdhcmNoaXZlJykpIHtcbiAgICAgIHJldHVybiA8QXJjaGl2ZSBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtZ3JheS01MDBcIiAvPjtcbiAgICB9IGVsc2UgaWYgKGZvbGRlckxvd2VyLmluY2x1ZGVzKCdkcmFmdCcpKSB7XG4gICAgICByZXR1cm4gPEVkaXQgY2xhc3NOYW1lPVwiaC00IHctNCB0ZXh0LWdyYXktNTAwXCIgLz47XG4gICAgfSBlbHNlIGlmIChmb2xkZXJMb3dlci5pbmNsdWRlcygnc3BhbScpIHx8IGZvbGRlckxvd2VyLmluY2x1ZGVzKCdqdW5rJykpIHtcbiAgICAgIHJldHVybiA8QWxlcnRPY3RhZ29uIGNsYXNzTmFtZT1cImgtNCB3LTQgdGV4dC1ncmF5LTUwMFwiIC8+O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gPE1lc3NhZ2VTcXVhcmUgY2xhc3NOYW1lPVwiaC00IHctNCB0ZXh0LWdyYXktNTAwXCIgLz47XG4gICAgfVxuICB9O1xuXG4gIC8vIEZvcm1hdCBmb2xkZXIgbmFtZXNcbiAgY29uc3QgZm9ybWF0Rm9sZGVyTmFtZSA9IChmb2xkZXI6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBmb2xkZXIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBmb2xkZXIuc2xpY2UoMSkudG9Mb3dlckNhc2UoKTtcbiAgfTtcblxuICAvLyBJbXByb3ZlIHRoZSByZW5kZXJGb2xkZXJCdXR0b24gZnVuY3Rpb24gdG8gZW5zdXJlIGNvbnNpc3RlbnQgaGFuZGxpbmdcbiAgY29uc3QgcmVuZGVyRm9sZGVyQnV0dG9uID0gKGZvbGRlcjogc3RyaW5nLCBhY2NvdW50SWQ6IHN0cmluZykgPT4ge1xuICAgIC8vIEVuc3VyZSBmb2xkZXIgaGFzIGEgY29uc2lzdGVudCBmb3JtYXRcbiAgICBsZXQgcHJlZml4ZWRGb2xkZXIgPSBmb2xkZXI7XG4gICAgbGV0IGJhc2VGb2xkZXJOYW1lID0gZm9sZGVyO1xuICAgIGxldCBmb2xkZXJBY2NvdW50SWQgPSBhY2NvdW50SWQ7XG4gICAgXG4gICAgLy8gRXh0cmFjdCBwYXJ0cyBpZiB0aGUgZm9sZGVyIGhhcyBhIHByZWZpeFxuICAgIGlmIChmb2xkZXIuaW5jbHVkZXMoJzonKSkge1xuICAgICAgY29uc3QgcGFydHMgPSBmb2xkZXIuc3BsaXQoJzonKTtcbiAgICAgIGZvbGRlckFjY291bnRJZCA9IHBhcnRzWzBdO1xuICAgICAgYmFzZUZvbGRlck5hbWUgPSBwYXJ0c1sxXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQWRkIGFjY291bnQgcHJlZml4IGlmIG1pc3NpbmdcbiAgICAgIHByZWZpeGVkRm9sZGVyID0gYCR7YWNjb3VudElkfToke2ZvbGRlcn1gO1xuICAgIH1cbiAgICBcbiAgICAvLyBPbmx5IHNob3cgZm9sZGVycyB0aGF0IGJlbG9uZyB0byB0aGlzIGFjY291bnRcbiAgICBpZiAoZm9sZGVyQWNjb3VudElkICE9PSBhY2NvdW50SWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBcbiAgICAvLyBDaGVjayBpZiB0aGlzIGZvbGRlciBpcyBzZWxlY3RlZCBmb3IgdGhpcyBhY2NvdW50XG4gICAgLy8gTXVzdCBoYW5kbGUgYm90aCBwcmVmaXhlZCBhbmQgbm9uLXByZWZpeGVkIHZlcnNpb25zIGluIHRoZSBzZWxlY3RlZCBtYXBcbiAgICBjb25zdCBpc1NlbGVjdGVkID0gXG4gICAgICAoc2VsZWN0ZWRGb2xkZXJzW2FjY291bnRJZF0gPT09IHByZWZpeGVkRm9sZGVyKSB8fCBcbiAgICAgIChzZWxlY3RlZEZvbGRlcnNbYWNjb3VudElkXSA9PT0gYmFzZUZvbGRlck5hbWUpIHx8XG4gICAgICAoc2VsZWN0ZWRGb2xkZXJzW2FjY291bnRJZF0/LnNwbGl0KCc6JylbMV0gPT09IGJhc2VGb2xkZXJOYW1lKTtcbiAgICBcbiAgICAvLyBHZXQgdW5yZWFkIGNvdW50IC0gY2hlY2sgYWxsIHBvc3NpYmxlIGZvcm1hdHNcbiAgICBsZXQgZm9sZGVyVW5yZWFkQ291bnQgPSAwO1xuICAgIFxuICAgIC8vIENoZWNrIGlmIHRoaXMgaXMgYW4gaW5ib3ggZm9sZGVyIChvbmx5IHNob3cgdW5yZWFkIGNvdW50cyBmb3IgaW5ib3ggZm9sZGVycylcbiAgICAvLyBVc2UgZXhhY3QgbWF0Y2hpbmcgaW5zdGVhZCBvZiBpbmNsdWRlcygpIHRvIGF2b2lkIG1hdGNoaW5nIHN1YnN0cmluZ3MgaW4gZm9sZGVyIG5hbWVzXG4gICAgY29uc3QgZm9sZGVyTG93ZXIgPSBiYXNlRm9sZGVyTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IGlzSW5ib3hGb2xkZXIgPSBmb2xkZXJMb3dlciA9PT0gJ2luYm94JztcbiAgICBcbiAgICAvLyBPbmx5IGNhbGN1bGF0ZSB1bnJlYWQgY291bnQgZm9yIGluYm94IGZvbGRlcnNcbiAgICBpZiAoaXNJbmJveEZvbGRlciAmJiB1bnJlYWRDb3VudCAmJiB1bnJlYWRDb3VudFthY2NvdW50SWRdKSB7XG4gICAgICAvLyBUcnkgdGhlIGJhc2UgZm9sZGVyIG5hbWUgZmlyc3RcbiAgICAgIGlmICh0eXBlb2YgdW5yZWFkQ291bnRbYWNjb3VudElkXVtiYXNlRm9sZGVyTmFtZV0gPT09ICdudW1iZXInKSB7XG4gICAgICAgIGZvbGRlclVucmVhZENvdW50ID0gdW5yZWFkQ291bnRbYWNjb3VudElkXVtiYXNlRm9sZGVyTmFtZV07XG4gICAgICB9XG4gICAgICAvLyBUaGVuIHRyeSB0aGUgcHJlZml4ZWQgZm9sZGVyIG5hbWVcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiB1bnJlYWRDb3VudFthY2NvdW50SWRdW3ByZWZpeGVkRm9sZGVyXSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgZm9sZGVyVW5yZWFkQ291bnQgPSB1bnJlYWRDb3VudFthY2NvdW50SWRdW3ByZWZpeGVkRm9sZGVyXTtcbiAgICAgIH1cbiAgICAgIC8vIEZpbmFsbHkgdHJ5IHdpdGggdXBwZXJjYXNlL2xvd2VyY2FzZSB2YXJpYXRpb25zXG4gICAgICBlbHNlIHtcbiAgICAgICAgLy8gQ2hlY2sgZm9yIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2hcbiAgICAgICAgY29uc3QgZm9sZGVyTWFwID0gdW5yZWFkQ291bnRbYWNjb3VudElkXTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZm9sZGVyTWFwKSB7XG4gICAgICAgICAgaWYgKGtleS50b0xvd2VyQ2FzZSgpID09PSBiYXNlRm9sZGVyTmFtZS50b0xvd2VyQ2FzZSgpIHx8IFxuICAgICAgICAgICAgICBrZXkudG9Mb3dlckNhc2UoKSA9PT0gcHJlZml4ZWRGb2xkZXIudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgICAgZm9sZGVyVW5yZWFkQ291bnQgPSBmb2xkZXJNYXBba2V5XTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICByZXR1cm4gKFxuICAgICAgPEJ1dHRvblxuICAgICAgICBrZXk9e3ByZWZpeGVkRm9sZGVyfVxuICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICBjbGFzc05hbWU9e2B3LWZ1bGwganVzdGlmeS1zdGFydCB0ZXh0LXhzIHB5LTEgaC03ICR7aXNTZWxlY3RlZCA/ICdiZy1ncmF5LTEwMCcgOiAnJ31gfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgLy8gQWx3YXlzIGVuc3VyZSB0aGUgZm9sZGVyIG5hbWUgaW5jbHVkZXMgdGhlIGFjY291bnQgSUQgcHJlZml4XG4gICAgICAgICAgY29uc3QgZnVsbHlQcmVmaXhlZEZvbGRlciA9IGZvbGRlci5pbmNsdWRlcygnOicpID8gZm9sZGVyIDogYCR7YWNjb3VudElkfToke2ZvbGRlcn1gO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBwYXNzIHRoZSBFWEFDVCBhY2NvdW50SWQgcGFyYW1ldGVyIGhlcmUsIG5vdCB0aGUgZm9sZGVyJ3MgZXh0cmFjdGVkIGFjY291bnQgSURcbiAgICAgICAgICBvbkZvbGRlckNoYW5nZShmdWxseVByZWZpeGVkRm9sZGVyLCBhY2NvdW50SWQpO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHctZnVsbFwiPlxuICAgICAgICAgIHtnZXRGb2xkZXJJY29uKGJhc2VGb2xkZXJOYW1lKX1cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtbC0yIHRydW5jYXRlIHRleHQtZ3JheS03MDBcIj57Zm9ybWF0Rm9sZGVyTmFtZShiYXNlRm9sZGVyTmFtZSl9PC9zcGFuPlxuICAgICAgICAgIHtpc0luYm94Rm9sZGVyICYmIGZvbGRlclVucmVhZENvdW50ID4gMCAmJiAoXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtbC1hdXRvIGJnLWJsdWUtNTAwIHRleHQtd2hpdGUgdGV4dC1bMTBweF0gcHgtMS41IHJvdW5kZWQtZnVsbFwiPlxuICAgICAgICAgICAgICB7Zm9sZGVyVW5yZWFkQ291bnR9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0J1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIC8vIEFkZCBNaWNyb3NvZnQgYnV0dG9uIGxvZ2ljXG4gIGNvbnN0IGhhbmRsZUNvbm5lY3RNaWNyb3NvZnQgPSBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy9hcGkvY291cnJpZXIvbWljcm9zb2Z0Jyk7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgXG4gICAgICBpZiAocmVzcG9uc2Uub2sgJiYgZGF0YS5hdXRoVXJsKSB7XG4gICAgICAgIC8vIFJlZGlyZWN0IHRvIE1pY3Jvc29mdCdzIGF1dGhvcml6YXRpb24gcGFnZVxuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGRhdGEuYXV0aFVybDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBpbml0aWF0ZSBNaWNyb3NvZnQgYXV0aGVudGljYXRpb246JywgZGF0YS5lcnJvcik7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNvbm5lY3RpbmcgTWljcm9zb2Z0IGFjY291bnQ6JywgZXJyb3IpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwidy02MCBiZy13aGl0ZS85NSBiYWNrZHJvcC1ibHVyLXNtIGJvcmRlci1yIGJvcmRlci1ncmF5LTEwMCBmbGV4IGZsZXgtY29sIG1kOmZsZXhcIiBzdHlsZT17e2Rpc3BsYXk6IFwiZmxleCAhaW1wb3J0YW50XCJ9fT5cbiAgICAgIHsvKiBDb3VycmllciBUaXRsZSAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC0zIGJvcmRlci1iIGJvcmRlci1ncmF5LTEwMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgPE1haWwgY2xhc3NOYW1lPVwiaC02IHctNiB0ZXh0LWdyYXktNjAwXCIgLz5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMFwiPkNPVVJSSUVSPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogQ29tcG9zZSBidXR0b24gYW5kIHJlZnJlc2ggYnV0dG9uICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTIgYm9yZGVyLWIgYm9yZGVyLWdyYXktMTAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgIDxCdXR0b24gXG4gICAgICAgICAgY2xhc3NOYW1lPVwiZmxleC0xIGJnLWJsdWUtNjAwIHRleHQtd2hpdGUgcm91bmRlZC1sZyBob3ZlcjpiZy1ibHVlLTcwMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0cmFuc2l0aW9uLWFsbCBweS0xLjUgdGV4dC1zbVwiXG4gICAgICAgICAgb25DbGljaz17b25Db21wb3NlTmV3fVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgPFBsdXNJY29uIGNsYXNzTmFtZT1cImgtMy41IHctMy41XCIgLz5cbiAgICAgICAgICAgIDxzcGFuPkNvbXBvc2U8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvQnV0dG9uPlxuICAgICAgICA8QnV0dG9uIFxuICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiIFxuICAgICAgICAgIHNpemU9XCJpY29uXCJcbiAgICAgICAgICBjbGFzc05hbWU9XCJoLTkgdy05IHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC1ncmF5LTYwMFwiXG4gICAgICAgICAgb25DbGljaz17b25SZWZyZXNofVxuICAgICAgICA+XG4gICAgICAgICAgPFJlZnJlc2hDdyBjbGFzc05hbWU9e2BoLTQgdy00ICR7bG9hZGluZyA/ICdhbmltYXRlLXNwaW4nIDogJyd9YH0gLz5cbiAgICAgICAgPC9CdXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgey8qIFNjcm9sbGFibGUgYXJlYSBmb3IgYWNjb3VudHMgYW5kIGZvbGRlcnMgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMSBvdmVyZmxvdy15LWF1dG9cIj5cbiAgICAgICAgey8qIEFjY291bnRzIFNlY3Rpb24gKi99XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC0zIGJvcmRlci1iIGJvcmRlci1ncmF5LTEwMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTUwMFwiPkFjY291bnRzPC9zcGFuPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMVwiPlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtNyB3LTcgcC0wIHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC1ncmF5LTYwMFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25TaG93Rm9sZGVyc1RvZ2dsZT8uKHNob3dGb2xkZXJzID8gZmFsc2UgOiB0cnVlKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtzaG93Rm9sZGVycyA/IChcbiAgICAgICAgICAgICAgICAgIDxDaGV2cm9uVXAgY2xhc3NOYW1lPVwiaC00IHctNFwiIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxDaGV2cm9uRG93biBjbGFzc05hbWU9XCJoLTQgdy00XCIgLz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTcgdy03IHAtMCB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtZ3JheS02MDBcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uU2hvd0FkZEFjY291bnRGb3JtKCFzaG93QWRkQWNjb3VudEZvcm0pfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBsdXNJY29uIGNsYXNzTmFtZT1cImgtNCB3LTRcIiAvPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIHsvKiBEaXNwbGF5IGFsbCBhY2NvdW50cyAqL31cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTFcIj5cbiAgICAgICAgICAgIHsvKiBGb3JtIGZvciBhZGRpbmcgYSBuZXcgYWNjb3VudCAtIENvbnRlbnQgaXMgaWRlbnRpY2FsIHRvIGNvdXJyaWVyIHBhZ2UgKi99XG4gICAgICAgICAgICB7c2hvd0FkZEFjY291bnRGb3JtICYmIChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi0yIHAtMiBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQtbWQgYmctd2hpdGVcIj5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwidGV4dC14cyBmb250LW1lZGl1bSBtYi0wLjUgdGV4dC1ncmF5LTcwMFwiPkFkZCBJTUFQIEFjY291bnQ8L2g0PlxuICAgICAgICAgICAgICAgIDxmb3JtIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9PlxuICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPFRhYnMgZGVmYXVsdFZhbHVlPVwiaW1hcFwiIGNsYXNzTmFtZT1cInctZnVsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxUYWJzTGlzdCBjbGFzc05hbWU9XCJncmlkIHctZnVsbCBncmlkLWNvbHMtMiBoLTYgbWItMC41IGJnLWdyYXktMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8VGFic1RyaWdnZXIgdmFsdWU9XCJpbWFwXCIgY2xhc3NOYW1lPVwidGV4dC14cyBoLTUgZGF0YS1bc3RhdGU9YWN0aXZlXTpiZy1ibHVlLTUwMCBkYXRhLVtzdGF0ZT1hY3RpdmVdOnRleHQtd2hpdGVcIj5JTUFQPC9UYWJzVHJpZ2dlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxUYWJzVHJpZ2dlciB2YWx1ZT1cInNtdHBcIiBjbGFzc05hbWU9XCJ0ZXh0LXhzIGgtNSBkYXRhLVtzdGF0ZT1hY3RpdmVdOmJnLWJsdWUtNTAwIGRhdGEtW3N0YXRlPWFjdGl2ZV06dGV4dC13aGl0ZVwiPlNNVFA8L1RhYnNUcmlnZ2VyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvVGFic0xpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgPFRhYnNDb250ZW50IHZhbHVlPVwiaW1hcFwiIGNsYXNzTmFtZT1cIm10LTAuNSBzcGFjZS15LTAuNVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPElucHV0IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZW1haWxcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZW1haWxcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cImVtYWlsQGV4YW1wbGUuY29tXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC03IHRleHQteHMgYmctd2hpdGUgYm9yZGVyLWdyYXktMzAwIG1iLTAuNSB0ZXh0LWdyYXktOTAwXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2Zvcm1EYXRhLmVtYWlsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInBhc3N3b3JkXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInBhc3N3b3JkXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInBhc3N3b3JkXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLigKLigKLigKLigKLigKLigKLigKLigKLigKJcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTcgdGV4dC14cyBiZy13aGl0ZSBib3JkZXItZ3JheS0zMDAgbWItMC41IHRleHQtZ3JheS05MDBcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Zm9ybURhdGEucGFzc3dvcmR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPElucHV0IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZGlzcGxheV9uYW1lXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImRpc3BsYXlOYW1lXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJKb2huIERvZVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtNyB0ZXh0LXhzIGJnLXdoaXRlIGJvcmRlci1ncmF5LTMwMCBtYi0wLjUgdGV4dC1ncmF5LTkwMFwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtmb3JtRGF0YS5kaXNwbGF5TmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJob3N0XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImhvc3RcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cImltYXAuZXhhbXBsZS5jb21cIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTcgdGV4dC14cyBiZy13aGl0ZSBib3JkZXItZ3JheS0zMDAgbWItMC41IHRleHQtZ3JheS05MDBcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Zm9ybURhdGEuaG9zdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInBvcnRcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJwb3J0XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjk5M1wiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC03IHRleHQteHMgYmctd2hpdGUgYm9yZGVyLWdyYXktMzAwIHRleHQtZ3JheS05MDBcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtmb3JtRGF0YS5wb3J0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBwbC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGVja2JveCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ1c2VTU0xcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInVzZVNTTFwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtmb3JtRGF0YS51c2VTU0x9IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoZWNrZWRDaGFuZ2U9eyhjaGVja2VkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Rm9ybURhdGEocHJldiA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVNTTDogY2hlY2tlZCA9PT0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExhYmVsIGh0bWxGb3I9XCJ1c2VTU0xcIiBjbGFzc05hbWU9XCJ0ZXh0LXhzXCI+U1NMPC9MYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1RhYnNDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgIDxUYWJzQ29udGVudCB2YWx1ZT1cInNtdHBcIiBjbGFzc05hbWU9XCJtdC0wLjUgc3BhY2UteS0wLjVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInNtdHBfaG9zdFwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJzbXRwSG9zdFwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwic210cC5leGFtcGxlLmNvbVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtNyB0ZXh0LXhzIGJnLXdoaXRlIGJvcmRlci1ncmF5LTMwMCBtYi0wLjUgdGV4dC1ncmF5LTkwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2Zvcm1EYXRhLnNtdHBIb3N0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBnYXAtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwic210cF9wb3J0XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic210cFBvcnRcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiNTg3XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTcgdGV4dC14cyBiZy13aGl0ZSBib3JkZXItZ3JheS0zMDAgdGV4dC1ncmF5LTkwMFwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2Zvcm1EYXRhLnNtdHBQb3J0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBwbC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGVja2JveCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJzbXRwX3NlY3VyZVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic210cFVzZVNTTFwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtmb3JtRGF0YS5zbXRwVXNlU1NMfSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGVja2VkQ2hhbmdlPXsoY2hlY2tlZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEZvcm1EYXRhKHByZXYgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbXRwVXNlU1NMOiBjaGVja2VkID09PSB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGFiZWwgaHRtbEZvcj1cInNtdHBfc2VjdXJlXCIgY2xhc3NOYW1lPVwidGV4dC14c1wiPlNTTDwvTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1ncmF5LTUwMCBpdGFsaWNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgTm90ZTogU01UUCBzZXR0aW5ncyBuZWVkZWQgZm9yIHNlbmRpbmcgZW1haWxzXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1RhYnNDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L1RhYnM+XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLTEgbXQtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleC0xIGgtNiB0ZXh0LXhzIGJnLWJsdWUtNTAwIGhvdmVyOmJnLWJsdWUtNjAwIHRleHQtd2hpdGUgcm91bmRlZC1tZCBweC0yIHB5LTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzU2F2aW5nfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc1NhdmluZyA/IDxMb2FkZXIyIGNsYXNzTmFtZT1cImgtMyB3LTMgYW5pbWF0ZS1zcGluIG1yLTFcIiAvPiA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICBUZXN0ICYgQWRkXG4gICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTYgdGV4dC14cyBiZy1ncmF5LTIwMCB0ZXh0LWdyYXktODAwIGhvdmVyOmJnLWdyYXktMzAwIHJvdW5kZWQtbWQgcHgtMiBweS0wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uU2hvd0FkZEFjY291bnRGb3JtKGZhbHNlKX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgey8qIEFkZCBNaWNyb3NvZnQgb3B0aW9uICovfVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMiBwdC0yIGJvcmRlci10IGJvcmRlci1ncmF5LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlQ29ubmVjdE1pY3Jvc29mdH1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0yIGgtNyB0ZXh0LXhzIGJnLVsjMDA3OEQ0XSBob3ZlcjpiZy1bIzEwNkVCRV0gdGV4dC13aGl0ZSByb3VuZGVkLW1kIHB4LTIgcHktMFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMjMgMjNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwiI2YzZjNmM1wiIGQ9XCJNMCAwaDIzdjIzSDB6XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwiI2YzNTMyNVwiIGQ9XCJNMSAxaDEwdjEwSDF6XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwiIzgxYmMwNlwiIGQ9XCJNMTIgMWgxMHYxMEgxMnpcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCIjMDVhNmYwXCIgZD1cIk0xIDEyaDEwdjEwSDF6XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwiI2ZmYmEwOFwiIGQ9XCJNMTIgMTJoMTB2MTBIMTJ6XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIENvbm5lY3QgTWljcm9zb2Z0IEFjY291bnRcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHthY2NvdW50cy5tYXAoKGFjY291bnQpID0+IChcbiAgICAgICAgICAgICAgPGRpdiBrZXk9e2FjY291bnQuaWR9IGNsYXNzTmFtZT1cIm1iLTFcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YGZsZXggaXRlbXMtY2VudGVyIHctZnVsbCBweC0xIHB5LTEgcm91bmRlZC1tZCBjdXJzb3ItcG9pbnRlciAke3NlbGVjdGVkQWNjb3VudD8uaWQgPT09IGFjY291bnQuaWQgPyAnYmctZ3JheS0xMDAnIDogJyd9YH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQWNjb3VudFNlbGVjdChhY2NvdW50KX1cbiAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBvbktleURvd249e2UgPT4geyBpZiAoZS5rZXkgPT09ICdFbnRlcicgfHwgZS5rZXkgPT09ICcgJykgb25BY2NvdW50U2VsZWN0KGFjY291bnQpOyB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgdy0zIGgtMyByb3VuZGVkLWZ1bGwgJHthY2NvdW50LmNvbG9yPy5zdGFydHNXaXRoKCcjJykgPyAnYmctYmx1ZS01MDAnIDogYWNjb3VudC5jb2xvciB8fCAnYmctYmx1ZS01MDAnfSBtci0yYH0+PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0cnVuY2F0ZSB0ZXh0LWdyYXktNzAwIGZsZXgtMVwiPnthY2NvdW50Lm5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgey8qIE1vcmUgb3B0aW9ucyBidXR0b24gKOKLrikgKi99XG4gICAgICAgICAgICAgICAgICB7YWNjb3VudC5pZCAhPT0gJ2xvYWRpbmctYWNjb3VudCcgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51PlxuICAgICAgICAgICAgICAgICAgICAgIDxEcm9wZG93bk1lbnVUcmlnZ2VyIGFzQ2hpbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtbC0xIHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC1ncmF5LTYwMCBjdXJzb3ItcG9pbnRlciBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBoLTUgdy01XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJBY2NvdW50IG9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBmb250U2l6ZTogJzE4cHgnLCBsaW5lSGVpZ2h0OiAxIH19PuKLrjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd25NZW51VHJpZ2dlcj5cbiAgICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51Q29udGVudCBhbGlnbj1cImVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUl0ZW0gb25DbGljaz17ZSA9PiB7IGUuc3RvcFByb3BhZ2F0aW9uKCk7IG9uRWRpdEFjY291bnQoYWNjb3VudCk7IH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICBFZGl0XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51SXRlbSBvbkNsaWNrPXtlID0+IHsgZS5zdG9wUHJvcGFnYXRpb24oKTsgb25EZWxldGVBY2NvdW50KGFjY291bnQpOyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVsZXRlXG4gICAgICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgPC9Ecm9wZG93bk1lbnVDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudT5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgey8qIFNob3cgZm9sZGVycyBmb3IgZWFjaCBhY2NvdW50IHdoZW4gc2VsZWN0ZWQgYW5kIHdoZW4gZm9sZGVycyBhcmUgdmlzaWJsZSAqL31cbiAgICAgICAgICAgICAgICB7c2VsZWN0ZWRBY2NvdW50Py5pZCA9PT0gYWNjb3VudC5pZCAmJiBzaG93Rm9sZGVycyAmJiBhY2NvdW50LmZvbGRlcnMgJiYgYWNjb3VudC5mb2xkZXJzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwbC00XCI+XG4gICAgICAgICAgICAgICAgICAgIHthY2NvdW50LmZvbGRlcnMubWFwKChmb2xkZXI6IHN0cmluZykgPT4gcmVuZGVyRm9sZGVyQnV0dG9uKGZvbGRlciwgYWNjb3VudC5pZC50b1N0cmluZygpKSl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufSAiXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VTdGF0ZSIsIkluYm94IiwiU2VuZCIsIlRyYXNoIiwiQXJjaGl2ZSIsIlJlZnJlc2hDdyIsIlBsdXMiLCJQbHVzSWNvbiIsIkVkaXQiLCJDaGV2cm9uRG93biIsIkNoZXZyb25VcCIsIk1haWwiLCJMb2FkZXIyIiwiQWxlcnRPY3RhZ29uIiwiTWVzc2FnZVNxdWFyZSIsIkJ1dHRvbiIsIkRyb3Bkb3duTWVudSIsIkRyb3Bkb3duTWVudVRyaWdnZXIiLCJEcm9wZG93bk1lbnVDb250ZW50IiwiRHJvcGRvd25NZW51SXRlbSIsIlRhYnMiLCJUYWJzTGlzdCIsIlRhYnNUcmlnZ2VyIiwiVGFic0NvbnRlbnQiLCJJbnB1dCIsIkNoZWNrYm94IiwiTGFiZWwiLCJFbWFpbFNpZGViYXIiLCJhY2NvdW50cyIsInNlbGVjdGVkQWNjb3VudCIsInNlbGVjdGVkRm9sZGVycyIsImN1cnJlbnRGb2xkZXIiLCJsb2FkaW5nIiwidW5yZWFkQ291bnQiLCJzaG93QWRkQWNjb3VudEZvcm0iLCJzaG93Rm9sZGVycyIsIm9uRm9sZGVyQ2hhbmdlIiwib25SZWZyZXNoIiwib25Db21wb3NlTmV3Iiwib25BY2NvdW50U2VsZWN0Iiwib25TaG93QWRkQWNjb3VudEZvcm0iLCJvbkFkZEFjY291bnQiLCJvbkVkaXRBY2NvdW50Iiwib25EZWxldGVBY2NvdW50Iiwib25TZWxlY3RFbWFpbCIsIm9uU2hvd0ZvbGRlcnNUb2dnbGUiLCJpc1NhdmluZyIsInNldElzU2F2aW5nIiwiZm9ybURhdGEiLCJzZXRGb3JtRGF0YSIsImVtYWlsIiwicGFzc3dvcmQiLCJkaXNwbGF5TmFtZSIsImhvc3QiLCJwb3J0IiwidXNlU1NMIiwic210cEhvc3QiLCJzbXRwUG9ydCIsInNtdHBVc2VTU0wiLCJhY3RpdmVUYWIiLCJzZXRBY3RpdmVUYWIiLCJoYW5kbGVTdWJtaXQiLCJlIiwicHJldmVudERlZmF1bHQiLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJoYW5kbGVDaGFuZ2UiLCJuYW1lIiwidmFsdWUiLCJ0eXBlIiwiY2hlY2tlZCIsInRhcmdldCIsInByZXYiLCJnZXRGb2xkZXJJY29uIiwiZm9sZGVyIiwiZm9sZGVyTG93ZXIiLCJ0b0xvd2VyQ2FzZSIsImluY2x1ZGVzIiwiY2xhc3NOYW1lIiwiZm9ybWF0Rm9sZGVyTmFtZSIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJyZW5kZXJGb2xkZXJCdXR0b24iLCJhY2NvdW50SWQiLCJwcmVmaXhlZEZvbGRlciIsImJhc2VGb2xkZXJOYW1lIiwiZm9sZGVyQWNjb3VudElkIiwicGFydHMiLCJzcGxpdCIsImlzU2VsZWN0ZWQiLCJmb2xkZXJVbnJlYWRDb3VudCIsImlzSW5ib3hGb2xkZXIiLCJmb2xkZXJNYXAiLCJrZXkiLCJ2YXJpYW50Iiwib25DbGljayIsImZ1bGx5UHJlZml4ZWRGb2xkZXIiLCJkaXYiLCJzcGFuIiwiaGFuZGxlQ29ubmVjdE1pY3Jvc29mdCIsInJlc3BvbnNlIiwiZmV0Y2giLCJkYXRhIiwianNvbiIsIm9rIiwiYXV0aFVybCIsIndpbmRvdyIsImxvY2F0aW9uIiwiaHJlZiIsInN0eWxlIiwiZGlzcGxheSIsInNpemUiLCJoNCIsImZvcm0iLCJvblN1Ym1pdCIsImRlZmF1bHRWYWx1ZSIsImlkIiwicGxhY2Vob2xkZXIiLCJyZXF1aXJlZCIsIm9uQ2hhbmdlIiwib25DaGVja2VkQ2hhbmdlIiwiaHRtbEZvciIsImRpc2FibGVkIiwiYnV0dG9uIiwic3ZnIiwieG1sbnMiLCJ3aWR0aCIsImhlaWdodCIsInZpZXdCb3giLCJwYXRoIiwiZmlsbCIsImQiLCJtYXAiLCJhY2NvdW50IiwidGFiSW5kZXgiLCJyb2xlIiwib25LZXlEb3duIiwiY29sb3IiLCJzdGFydHNXaXRoIiwiYXNDaGlsZCIsInN0b3BQcm9wYWdhdGlvbiIsImFyaWEtbGFiZWwiLCJmb250U2l6ZSIsImxpbmVIZWlnaHQiLCJhbGlnbiIsImZvbGRlcnMiLCJsZW5ndGgiLCJ0b1N0cmluZyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/email/EmailSidebar.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/email/RichEmailEditor.tsx": /*!**********************************************!*\ !*** ./components/email/RichEmailEditor.tsx ***! \**********************************************/ /***/ ((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\": () => (__WEBPACK_DEFAULT_EXPORT__)\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 quill_dist_quill_snow_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! quill/dist/quill.snow.css */ \"(app-pages-browser)/./node_modules/quill/dist/quill.snow.css\");\n/* harmony import */ var _lib_utils_dom_purify_config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/lib/utils/dom-purify-config */ \"(app-pages-browser)/./lib/utils/dom-purify-config.ts\");\n/* harmony import */ var _lib_utils_text_direction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/lib/utils/text-direction */ \"(app-pages-browser)/./lib/utils/text-direction.ts\");\n/* harmony import */ var _lib_utils_email_content__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/lib/utils/email-content */ \"(app-pages-browser)/./lib/utils/email-content.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\nconst RichEmailEditor = (param)=>{\n let { initialContent, onChange, placeholder = 'Write your message here...', minHeight = '200px', maxHeight = 'calc(100vh - 400px)', preserveFormatting = false } = param;\n _s();\n const editorRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n const toolbarRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n const quillRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n const [isReady, setIsReady] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n // Initialize Quill editor when component mounts\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)({\n \"RichEmailEditor.useEffect\": ()=>{\n // Import Quill dynamically (client-side only)\n const initializeQuill = {\n \"RichEmailEditor.useEffect.initializeQuill\": async ()=>{\n if (!editorRef.current || !toolbarRef.current) return;\n const Quill = (await __webpack_require__.e(/*! import() */ \"_app-pages-browser_node_modules_quill_quill_js\").then(__webpack_require__.bind(__webpack_require__, /*! quill */ \"(app-pages-browser)/./node_modules/quill/quill.js\"))).default;\n // Import quill-better-table\n let tableModule = null;\n try {\n const QuillBetterTable = await __webpack_require__.e(/*! import() */ \"_app-pages-browser_node_modules_quill-better-table_dist_quill-better-table_js\").then(__webpack_require__.t.bind(__webpack_require__, /*! quill-better-table */ \"(app-pages-browser)/./node_modules/quill-better-table/dist/quill-better-table.js\", 23));\n // Register the table module if available\n if (QuillBetterTable && QuillBetterTable.default) {\n Quill.register({\n 'modules/better-table': QuillBetterTable.default\n }, true);\n tableModule = QuillBetterTable.default;\n console.log('Better Table module registered successfully');\n }\n } catch (err) {\n console.warn('Table module not available:', err);\n }\n // Define custom formats/modules with table support\n const emailToolbarOptions = [\n [\n 'bold',\n 'italic',\n 'underline',\n 'strike'\n ],\n [\n {\n 'color': []\n },\n {\n 'background': []\n }\n ],\n [\n {\n 'list': 'ordered'\n },\n {\n 'list': 'bullet'\n }\n ],\n [\n {\n 'indent': '-1'\n },\n {\n 'indent': '+1'\n }\n ],\n [\n {\n 'align': []\n }\n ],\n [\n {\n 'direction': 'rtl'\n }\n ],\n [\n 'link'\n ],\n [\n 'clean'\n ]\n ];\n // Create new Quill instance with the DOM element and custom toolbar\n const editorElement = editorRef.current;\n quillRef.current = new Quill(editorElement, {\n modules: {\n toolbar: {\n container: toolbarRef.current,\n handlers: {\n }\n },\n clipboard: {\n matchVisual: false // Disable clipboard matching for better HTML handling\n },\n // Don't initialize better-table yet - we'll do it after content is loaded\n 'better-table': false\n },\n placeholder: placeholder,\n theme: 'snow'\n });\n // Set initial content properly\n if (initialContent) {\n try {\n console.log('Setting initial content in editor', {\n length: initialContent.length,\n startsWithHtml: initialContent.trim().startsWith('<'),\n containsForwardedMessage: initialContent.includes('---------- Forwarded message ----------'),\n containsReplyIndicator: initialContent.includes('wrote:'),\n hasBlockquote: initialContent.includes('{\n if (el instanceof HTMLElement) {\n el.scrollTop = 0;\n }\n }\n }[\"RichEmailEditor.useEffect.initializeQuill\"]);\n }\n } catch (err) {\n console.error('Error setting initial content:', err);\n // Enhanced fallback mechanism for complex content\n try {\n // First try to extract text from HTML\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = initialContent;\n const textContent = tempDiv.textContent || tempDiv.innerText || '';\n if (textContent.trim()) {\n console.log('Using extracted text fallback, length:', textContent.length);\n quillRef.current.setText(textContent);\n } else {\n // If text extraction fails or returns empty, provide a message\n console.log('Using empty content fallback');\n quillRef.current.setText('Unable to load original content');\n }\n } catch (e) {\n console.error('All fallbacks failed:', e);\n quillRef.current.setText('Error loading content');\n }\n }\n }\n // Add change listener\n quillRef.current.on('text-change', {\n \"RichEmailEditor.useEffect.initializeQuill\": ()=>{\n const html = quillRef.current.root.innerHTML;\n onChange(html);\n }\n }[\"RichEmailEditor.useEffect.initializeQuill\"]);\n // Improve editor layout\n const editorContainer = editorElement.closest('.ql-container');\n if (editorContainer) {\n editorContainer.classList.add('email-editor-container');\n }\n setIsReady(true);\n }\n }[\"RichEmailEditor.useEffect.initializeQuill\"];\n initializeQuill().catch({\n \"RichEmailEditor.useEffect\": (err)=>{\n console.error('Failed to initialize Quill editor:', err);\n }\n }[\"RichEmailEditor.useEffect\"]);\n // Clean up on unmount\n return ({\n \"RichEmailEditor.useEffect\": ()=>{\n if (quillRef.current) {\n // Clean up any event listeners or resources\n quillRef.current.off('text-change');\n }\n }\n })[\"RichEmailEditor.useEffect\"];\n }\n }[\"RichEmailEditor.useEffect\"], []);\n // Update content from props if changed externally - using a simpler approach\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)({\n \"RichEmailEditor.useEffect\": ()=>{\n if (quillRef.current && isReady && initialContent) {\n const currentContent = quillRef.current.root.innerHTML;\n // Only update if content changed to avoid editor position reset\n if (initialContent !== currentContent) {\n try {\n console.log('Updating content in editor:', {\n contentLength: initialContent.length,\n startsWithHtml: initialContent.trim().startsWith('<'),\n containsForwardedMessage: initialContent.includes('---------- Forwarded message ----------'),\n containsQuoteHeader: initialContent.includes('wrote:'),\n hasBlockquote: initialContent.includes(' 0) {\n // Set the direction for the content\n quillRef.current.format('direction', direction);\n if (direction === 'rtl') {\n quillRef.current.format('align', 'right');\n }\n // Force update\n quillRef.current.update();\n // Set selection to beginning\n quillRef.current.setSelection(0, 0);\n } else {\n console.warn('Skipping format - either editor not ready or content empty');\n }\n } catch (formatError) {\n console.error('Error applying formatting:', formatError);\n // Continue without formatting if there's an error\n }\n }\n }\n } catch (err) {\n console.error('Error updating content:', err);\n // Safer fallback that avoids clipboard API\n try {\n // Extract basic text if everything else fails\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = initialContent;\n const textContent = tempDiv.textContent || tempDiv.innerText || '';\n if (quillRef.current) {\n quillRef.current.setText(textContent || 'Error loading content');\n }\n } catch (e) {\n console.error('All fallbacks failed:', e);\n // Last resort\n if (quillRef.current) {\n quillRef.current.setText('Error loading content');\n }\n }\n }\n }\n }\n }\n }[\"RichEmailEditor.useEffect\"], [\n initialContent,\n isReady\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"rich-email-editor-wrapper\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: toolbarRef,\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-toolbar ql-snow\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-formats\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-bold\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 357,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-italic\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 358,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-underline\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 359,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-strike\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 360,\n columnNumber: 11\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 356,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-formats\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-color\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 363,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-background\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 364,\n columnNumber: 11\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 362,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-formats\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n value: \"ordered\",\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-list\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 367,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n value: \"bullet\",\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-list\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 368,\n columnNumber: 11\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 366,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-formats\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n value: \"-1\",\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-indent\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 371,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n value: \"+1\",\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-indent\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 372,\n columnNumber: 11\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 370,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-formats\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-align\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 375,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 374,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-formats\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n value: \"rtl\",\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-direction\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 378,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 377,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-formats\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-link\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 381,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 380,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-formats\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-clean\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 384,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 383,\n columnNumber: 9\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 355,\n columnNumber: 7\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"rich-email-editor-container\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: editorRef,\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"quill-editor\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 390,\n columnNumber: 9\n }, undefined),\n !isReady && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"flex items-center justify-center py-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"h-6 w-6 animate-spin rounded-full border-2 border-primary border-t-transparent\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 398,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 397,\n columnNumber: 11\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 389,\n columnNumber: 7\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default()), {\n id: \"768df40fab0720e1\",\n dynamic: [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ],\n children: \".rich-email-editor-wrapper.__jsx-style-dynamic-selector{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%;height:100%;overflow:hidden;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;border:1px solid#e2e8f0}.rich-email-editor-container.__jsx-style-dynamic-selector{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%;height:100%;overflow:auto;-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;position:relative}.quill-editor.__jsx-style-dynamic-selector{width:100%;min-height:\".concat(minHeight, \";max-height:\").concat(maxHeight, \";overflow-y:auto;overflow-x:hidden}.quill-editor.__jsx-style-dynamic-selector \").concat(!isReady ? '{ display: none; }' : '', '.__jsx-style-dynamic-selector .ql-toolbar.ql-snow+.ql-toolbar.ql-snow{display:none!important}[dir=\"rtl\"] .ql-editor{text-align:right;direction:rtl}.ql-editor[dir=\"rtl\"]{text-align:right;direction:rtl}.ql-container{border:none!important;height:auto!important;min-height:').concat(minHeight, \";max-height:none!important;overflow:visible}.ql-editor{padding:12px;min-height:\").concat(minHeight, ';overflow-y:auto!important;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Arial,sans-serif;font-size:14px;line-height:1.5;color:#333!important}.ql-editor p,.ql-editor div,.ql-editor span,.ql-editor li{color:#333!important}.ql-editor.ql-blank::before{color:#aaa!important;font-style:italic!important}.ql-editor blockquote{border-left:2px solid#ddd!important;margin:0!important;padding:10px 0 10px 15px!important;color:#505050!important;background-color:#f9f9f9!important;-webkit-border-radius:4px!important;-moz-border-radius:4px!important;border-radius:4px!important;font-size:13px!important}.ql-editor[dir=\"rtl\"] blockquote,[dir=\"rtl\"] .ql-editor blockquote{border-left:none!important;border-right:2px solid#ddd!important;padding:10px 15px 10px 0!important}.ql-editor table{width:100%!important;border-collapse:collapse!important;table-layout:fixed!important;margin:10px 0!important;border:1px solid#ddd!important}.ql-editor td,.ql-editor th{border:1px solid#ddd!important;padding:6px 8px!important;word-wrap:break-word!important;overflow-wrap:break-word!important;word-break:break-word!important;min-width:30px!important;font-size:13px!important}.email-original-content{margin-top:20px!important;padding-top:10px!important;border-top:1px solid#ddd!important;color:#555!important;font-size:13px!important}.ql-editor blockquote p{margin-bottom:8px!important;margin-top:0!important}.ql-editor div[style*=\"font-weight: 400\"]{margin-top:20px!important;margin-bottom:8px!important;color:#555!important;font-size:13px!important}')\n }, void 0, false, void 0, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 353,\n columnNumber: 5\n }, undefined);\n};\n_s(RichEmailEditor, \"CJc+KPbBvimsb68LXgtBQksNois=\");\n_c = RichEmailEditor;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RichEmailEditor);\nvar _c;\n$RefreshReg$(_c, \"RichEmailEditor\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZW1haWwvUmljaEVtYWlsRWRpdG9yLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBRTJEO0FBQ3hCO0FBQzBCO0FBQ0k7QUFDRjtBQVcvRCxNQUFNTyxrQkFBa0Q7UUFBQyxFQUN2REMsY0FBYyxFQUNkQyxRQUFRLEVBQ1JDLGNBQWMsNEJBQTRCLEVBQzFDQyxZQUFZLE9BQU8sRUFDbkJDLFlBQVkscUJBQXFCLEVBQ2pDQyxxQkFBcUIsS0FBSyxFQUMzQjs7SUFDQyxNQUFNQyxZQUFZWiw2Q0FBTUEsQ0FBaUI7SUFDekMsTUFBTWEsYUFBYWIsNkNBQU1BLENBQWlCO0lBQzFDLE1BQU1jLFdBQVdkLDZDQUFNQSxDQUFNO0lBQzdCLE1BQU0sQ0FBQ2UsU0FBU0MsV0FBVyxHQUFHZiwrQ0FBUUEsQ0FBQztJQUV2QyxnREFBZ0Q7SUFDaERGLGdEQUFTQTtxQ0FBQztZQUNSLDhDQUE4QztZQUM5QyxNQUFNa0I7NkRBQWtCO29CQUN0QixJQUFJLENBQUNMLFVBQVVNLE9BQU8sSUFBSSxDQUFDTCxXQUFXSyxPQUFPLEVBQUU7b0JBRS9DLE1BQU1DLFFBQVEsQ0FBQyxNQUFNLDZNQUFjLEVBQUdDLE9BQU87b0JBRTdDLDRCQUE0QjtvQkFDNUIsSUFBSUMsY0FBYztvQkFDbEIsSUFBSTt3QkFDRixNQUFNQyxtQkFBbUIsTUFBTSw4UkFBNEI7d0JBRTNELHlDQUF5Qzt3QkFDekMsSUFBSUEsb0JBQW9CQSxpQkFBaUJGLE9BQU8sRUFBRTs0QkFDaERELE1BQU1JLFFBQVEsQ0FBQztnQ0FDYix3QkFBd0JELGlCQUFpQkYsT0FBTzs0QkFDbEQsR0FBRzs0QkFDSEMsY0FBY0MsaUJBQWlCRixPQUFPOzRCQUN0Q0ksUUFBUUMsR0FBRyxDQUFDO3dCQUNkO29CQUNGLEVBQUUsT0FBT0MsS0FBSzt3QkFDWkYsUUFBUUcsSUFBSSxDQUFDLCtCQUErQkQ7b0JBQzlDO29CQUVBLG1EQUFtRDtvQkFDbkQsTUFBTUUs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Q0FBQ00sVUFBVSx1QkFBdUIscVJBNEJsQ04sT0FQQUEscUdBT0FBOzs7Ozs7OztBQXFGeEI7R0FsaEJNSjtLQUFBQTtBQW9oQk4saUVBQWVBLGVBQWVBLEVBQUMiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvY29tcG9uZW50cy9lbWFpbC9SaWNoRW1haWxFZGl0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCAncXVpbGwvZGlzdC9xdWlsbC5zbm93LmNzcyc7XG5pbXBvcnQgeyBzYW5pdGl6ZUh0bWwgfSBmcm9tICdAL2xpYi91dGlscy9kb20tcHVyaWZ5LWNvbmZpZyc7XG5pbXBvcnQgeyBkZXRlY3RUZXh0RGlyZWN0aW9uIH0gZnJvbSAnQC9saWIvdXRpbHMvdGV4dC1kaXJlY3Rpb24nO1xuaW1wb3J0IHsgcHJvY2Vzc0h0bWxDb250ZW50IH0gZnJvbSAnQC9saWIvdXRpbHMvZW1haWwtY29udGVudCc7XG5cbmludGVyZmFjZSBSaWNoRW1haWxFZGl0b3JQcm9wcyB7XG4gIGluaXRpYWxDb250ZW50OiBzdHJpbmc7XG4gIG9uQ2hhbmdlOiAoY29udGVudDogc3RyaW5nKSA9PiB2b2lkO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgbWluSGVpZ2h0Pzogc3RyaW5nO1xuICBtYXhIZWlnaHQ/OiBzdHJpbmc7XG4gIHByZXNlcnZlRm9ybWF0dGluZz86IGJvb2xlYW47XG59XG5cbmNvbnN0IFJpY2hFbWFpbEVkaXRvcjogUmVhY3QuRkM8UmljaEVtYWlsRWRpdG9yUHJvcHM+ID0gKHtcbiAgaW5pdGlhbENvbnRlbnQsXG4gIG9uQ2hhbmdlLFxuICBwbGFjZWhvbGRlciA9ICdXcml0ZSB5b3VyIG1lc3NhZ2UgaGVyZS4uLicsXG4gIG1pbkhlaWdodCA9ICcyMDBweCcsXG4gIG1heEhlaWdodCA9ICdjYWxjKDEwMHZoIC0gNDAwcHgpJyxcbiAgcHJlc2VydmVGb3JtYXR0aW5nID0gZmFsc2UsXG59KSA9PiB7XG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHRvb2xiYXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBxdWlsbFJlZiA9IHVzZVJlZjxhbnk+KG51bGwpO1xuICBjb25zdCBbaXNSZWFkeSwgc2V0SXNSZWFkeV0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgLy8gSW5pdGlhbGl6ZSBRdWlsbCBlZGl0b3Igd2hlbiBjb21wb25lbnQgbW91bnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gSW1wb3J0IFF1aWxsIGR5bmFtaWNhbGx5IChjbGllbnQtc2lkZSBvbmx5KVxuICAgIGNvbnN0IGluaXRpYWxpemVRdWlsbCA9IGFzeW5jICgpID0+IHtcbiAgICAgIGlmICghZWRpdG9yUmVmLmN1cnJlbnQgfHwgIXRvb2xiYXJSZWYuY3VycmVudCkgcmV0dXJuO1xuICAgICAgXG4gICAgICBjb25zdCBRdWlsbCA9IChhd2FpdCBpbXBvcnQoJ3F1aWxsJykpLmRlZmF1bHQ7XG4gICAgICBcbiAgICAgIC8vIEltcG9ydCBxdWlsbC1iZXR0ZXItdGFibGVcbiAgICAgIGxldCB0YWJsZU1vZHVsZSA9IG51bGw7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBRdWlsbEJldHRlclRhYmxlID0gYXdhaXQgaW1wb3J0KCdxdWlsbC1iZXR0ZXItdGFibGUnKTtcbiAgICAgICAgXG4gICAgICAgIC8vIFJlZ2lzdGVyIHRoZSB0YWJsZSBtb2R1bGUgaWYgYXZhaWxhYmxlXG4gICAgICAgIGlmIChRdWlsbEJldHRlclRhYmxlICYmIFF1aWxsQmV0dGVyVGFibGUuZGVmYXVsdCkge1xuICAgICAgICAgIFF1aWxsLnJlZ2lzdGVyKHtcbiAgICAgICAgICAgICdtb2R1bGVzL2JldHRlci10YWJsZSc6IFF1aWxsQmV0dGVyVGFibGUuZGVmYXVsdFxuICAgICAgICAgIH0sIHRydWUpO1xuICAgICAgICAgIHRhYmxlTW9kdWxlID0gUXVpbGxCZXR0ZXJUYWJsZS5kZWZhdWx0O1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdCZXR0ZXIgVGFibGUgbW9kdWxlIHJlZ2lzdGVyZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1RhYmxlIG1vZHVsZSBub3QgYXZhaWxhYmxlOicsIGVycik7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIERlZmluZSBjdXN0b20gZm9ybWF0cy9tb2R1bGVzIHdpdGggdGFibGUgc3VwcG9ydFxuICAgICAgY29uc3QgZW1haWxUb29sYmFyT3B0aW9ucyA9IFtcbiAgICAgICAgWydib2xkJywgJ2l0YWxpYycsICd1bmRlcmxpbmUnLCAnc3RyaWtlJ10sXG4gICAgICAgIFt7ICdjb2xvcic6IFtdIH0sIHsgJ2JhY2tncm91bmQnOiBbXSB9XSxcbiAgICAgICAgW3sgJ2xpc3QnOiAnb3JkZXJlZCd9LCB7ICdsaXN0JzogJ2J1bGxldCcgfV0sXG4gICAgICAgIFt7ICdpbmRlbnQnOiAnLTEnfSwgeyAnaW5kZW50JzogJysxJyB9XSxcbiAgICAgICAgW3sgJ2FsaWduJzogW10gfV0sXG4gICAgICAgIFt7ICdkaXJlY3Rpb24nOiAncnRsJyB9XSwgLy8gQWRkIGRpcmVjdGlvbiB0byB0b29sYmFyXG4gICAgICAgIFsnbGluayddLFxuICAgICAgICBbJ2NsZWFuJ10sXG4gICAgICBdO1xuXG4gICAgICAvLyBDcmVhdGUgbmV3IFF1aWxsIGluc3RhbmNlIHdpdGggdGhlIERPTSBlbGVtZW50IGFuZCBjdXN0b20gdG9vbGJhclxuICAgICAgY29uc3QgZWRpdG9yRWxlbWVudCA9IGVkaXRvclJlZi5jdXJyZW50O1xuICAgICAgcXVpbGxSZWYuY3VycmVudCA9IG5ldyBRdWlsbChlZGl0b3JFbGVtZW50LCB7XG4gICAgICAgIG1vZHVsZXM6IHtcbiAgICAgICAgICB0b29sYmFyOiB7XG4gICAgICAgICAgICBjb250YWluZXI6IHRvb2xiYXJSZWYuY3VycmVudCxcbiAgICAgICAgICAgIGhhbmRsZXJzOiB7XG4gICAgICAgICAgICAgIC8vIEFkZCBhbnkgY3VzdG9tIHRvb2xiYXIgaGFuZGxlcnMgaGVyZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2xpcGJvYXJkOiB7XG4gICAgICAgICAgICBtYXRjaFZpc3VhbDogZmFsc2UgLy8gRGlzYWJsZSBjbGlwYm9hcmQgbWF0Y2hpbmcgZm9yIGJldHRlciBIVE1MIGhhbmRsaW5nXG4gICAgICAgICAgfSxcbiAgICAgICAgICAvLyBEb24ndCBpbml0aWFsaXplIGJldHRlci10YWJsZSB5ZXQgLSB3ZSdsbCBkbyBpdCBhZnRlciBjb250ZW50IGlzIGxvYWRlZFxuICAgICAgICAgICdiZXR0ZXItdGFibGUnOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLFxuICAgICAgICB0aGVtZTogJ3Nub3cnLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFNldCBpbml0aWFsIGNvbnRlbnQgcHJvcGVybHlcbiAgICAgIGlmIChpbml0aWFsQ29udGVudCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdTZXR0aW5nIGluaXRpYWwgY29udGVudCBpbiBlZGl0b3InLCB7IFxuICAgICAgICAgICAgbGVuZ3RoOiBpbml0aWFsQ29udGVudC5sZW5ndGgsXG4gICAgICAgICAgICBzdGFydHNXaXRoSHRtbDogaW5pdGlhbENvbnRlbnQudHJpbSgpLnN0YXJ0c1dpdGgoJzwnKSxcbiAgICAgICAgICAgIGNvbnRhaW5zRm9yd2FyZGVkTWVzc2FnZTogaW5pdGlhbENvbnRlbnQuaW5jbHVkZXMoJy0tLS0tLS0tLS0gRm9yd2FyZGVkIG1lc3NhZ2UgLS0tLS0tLS0tLScpLFxuICAgICAgICAgICAgY29udGFpbnNSZXBseUluZGljYXRvcjogaW5pdGlhbENvbnRlbnQuaW5jbHVkZXMoJ3dyb3RlOicpLFxuICAgICAgICAgICAgaGFzQmxvY2txdW90ZTogaW5pdGlhbENvbnRlbnQuaW5jbHVkZXMoJzxibG9ja3F1b3RlJylcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBEZXRlY3QgdGV4dCBkaXJlY3Rpb25cbiAgICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSBkZXRlY3RUZXh0RGlyZWN0aW9uKGluaXRpYWxDb250ZW50KTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBDaGVjayBpZiBjb250ZW50IGFscmVhZHkgYXBwZWFycyB0byBiZSBwcm9wZXJseSBmb3JtYXR0ZWQgYXMgYSByZXBseSBvciBmb3J3YXJkXG4gICAgICAgICAgY29uc3QgaXNQcmVGb3JtYXR0ZWRDb250ZW50ID0gKFxuICAgICAgICAgICAgKGluaXRpYWxDb250ZW50LmluY2x1ZGVzKCctLS0tLS0tLS0tIEZvcndhcmRlZCBtZXNzYWdlIC0tLS0tLS0tLS0nKSB8fCBcbiAgICAgICAgICAgICBpbml0aWFsQ29udGVudC5pbmNsdWRlcygnd3JvdGU6JykpICYmXG4gICAgICAgICAgICBpbml0aWFsQ29udGVudC5pbmNsdWRlcygnPGJsb2NrcXVvdGUnKVxuICAgICAgICAgICk7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gUHJvY2VzcyBIVE1MIGNvbnRlbnQgdXNpbmcgY2VudHJhbGl6ZWQgdXRpbGl0eSBvciB1c2UgYXMtaXMgaWYgcHJlLWZvcm1hdHRlZFxuICAgICAgICAgIGxldCBzYW5pdGl6ZWRDb250ZW50O1xuICAgICAgICAgIGlmIChpc1ByZUZvcm1hdHRlZENvbnRlbnQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDb250ZW50IGFwcGVhcnMgdG8gYmUgcHJlLWZvcm1hdHRlZCBhcyByZXBseS9mb3J3YXJkLCB1c2luZyBhcy1pcycpO1xuICAgICAgICAgICAgLy8gSnVzdCBkbyBiYXNpYyBzYW5pdGl6YXRpb24gd2l0aG91dCBhZGRpdGlvbmFsIHByb2Nlc3NpbmdcbiAgICAgICAgICAgIHNhbml0aXplZENvbnRlbnQgPSBzYW5pdGl6ZUh0bWwoaW5pdGlhbENvbnRlbnQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBGdWxsIHByb2Nlc3NpbmcgZm9yIHJlZ3VsYXIgY29udGVudFxuICAgICAgICAgICAgc2FuaXRpemVkQ29udGVudCA9IHByb2Nlc3NIdG1sQ29udGVudChpbml0aWFsQ29udGVudCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIC8vIExvZyBzYW5pdGl6ZWQgY29udGVudCBkZXRhaWxzIGZvciBkZWJ1Z2dpbmdcbiAgICAgICAgICBjb25zb2xlLmxvZygnU2FuaXRpemVkIGNvbnRlbnQgZGV0YWlsczonLCB7XG4gICAgICAgICAgICBsZW5ndGg6IHNhbml0aXplZENvbnRlbnQubGVuZ3RoLFxuICAgICAgICAgICAgaXNFbXB0eTogc2FuaXRpemVkQ29udGVudC50cmltKCkubGVuZ3RoID09PSAwLFxuICAgICAgICAgICAgc3RhcnRzV2l0aERpdjogc2FuaXRpemVkQ29udGVudC50cmltKCkuc3RhcnRzV2l0aCgnPGRpdicpLFxuICAgICAgICAgICAgY29udGFpbnNGb3J3YXJkZWRNZXNzYWdlOiBzYW5pdGl6ZWRDb250ZW50LmluY2x1ZGVzKCctLS0tLS0tLS0tIEZvcndhcmRlZCBtZXNzYWdlIC0tLS0tLS0tLS0nKSxcbiAgICAgICAgICAgIGNvbnRhaW5zUXVvdGVIZWFkZXI6IHNhbml0aXplZENvbnRlbnQuaW5jbHVkZXMoJ3dyb3RlOicpLFxuICAgICAgICAgICAgaGFzVGFibGU6IHNhbml0aXplZENvbnRlbnQuaW5jbHVkZXMoJzx0YWJsZScpLFxuICAgICAgICAgICAgaGFzQmxvY2txdW90ZTogc2FuaXRpemVkQ29udGVudC5pbmNsdWRlcygnPGJsb2NrcXVvdGUnKSxcbiAgICAgICAgICAgIGZpcnN0TkNoYXJzOiBzYW5pdGl6ZWRDb250ZW50LnN1YnN0cmluZygwLCAxMDApLnJlcGxhY2UoL1xcbi9nLCAnXFxcXG4nKVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIENoZWNrIGlmIHNhbml0aXplZCBjb250ZW50IGlzIHZhbGlkXG4gICAgICAgICAgaWYgKHNhbml0aXplZENvbnRlbnQudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdTYW5pdGl6ZWQgY29udGVudCBpcyBlbXB0eSBhZnRlciBwcm9jZXNzaW5nLCB1c2luZyBmYWxsYmFjayBhcHByb2FjaCcpO1xuICAgICAgICAgICAgLy8gVHJ5IHRvIGV4dHJhY3QgdGV4dCBjb250ZW50IGlmIEhUTUwgcHJvY2Vzc2luZyBmYWlsZWRcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IHRlbXBEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgICAgdGVtcERpdi5pbm5lckhUTUwgPSBpbml0aWFsQ29udGVudDtcbiAgICAgICAgICAgICAgY29uc3QgdGV4dENvbnRlbnQgPSB0ZW1wRGl2LnRleHRDb250ZW50IHx8IHRlbXBEaXYuaW5uZXJUZXh0IHx8ICdFbXB0eSBjb250ZW50JztcbiAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgIC8vIFNldCB0ZXh0IGRpcmVjdGx5IHRvIGVuc3VyZSBzb21ldGhpbmcgZGlzcGxheXNcbiAgICAgICAgICAgICAgcXVpbGxSZWYuY3VycmVudC5zZXRUZXh0KHRleHRDb250ZW50KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignVGV4dCBleHRyYWN0aW9uIGZhbGxiYWNrIGZhaWxlZDonLCBlKTtcbiAgICAgICAgICAgICAgcXVpbGxSZWYuY3VycmVudC5zZXRUZXh0KCdFcnJvciBsb2FkaW5nIGNvbnRlbnQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVXNlIGRpcmVjdCBpbm5lckhUTUwgc2V0dGluZyBmb3IgdGhlIGluaXRpYWwgY29udGVudFxuICAgICAgICAgICAgcXVpbGxSZWYuY3VycmVudC5yb290LmlubmVySFRNTCA9IHNhbml0aXplZENvbnRlbnQ7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIFNldCB0aGUgZGlyZWN0aW9uIGZvciB0aGUgY29udGVudFxuICAgICAgICAgICAgaWYgKHF1aWxsUmVmLmN1cnJlbnQgJiYgcXVpbGxSZWYuY3VycmVudC5mb3JtYXQpIHtcbiAgICAgICAgICAgICAgcXVpbGxSZWYuY3VycmVudC5mb3JtYXQoJ2RpcmVjdGlvbicsIGRpcmVjdGlvbik7XG4gICAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gPT09ICdydGwnKSB7XG4gICAgICAgICAgICAgICAgcXVpbGxSZWYuY3VycmVudC5mb3JtYXQoJ2FsaWduJywgJ3JpZ2h0Jyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybignQ2Fubm90IGZvcm1hdCBjb250ZW50OiBlZGl0b3Igbm90IGZ1bGx5IGluaXRpYWxpemVkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIC8vIFNldCBjdXJzb3IgYXQgdGhlIGJlZ2lubmluZ1xuICAgICAgICAgIHF1aWxsUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uKDAsIDApO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIEVuc3VyZSB0aGUgY3Vyc29yIGFuZCBzY3JvbGwgcG9zaXRpb24gaXMgYXQgdGhlIHRvcCBvZiB0aGUgZWRpdG9yXG4gICAgICAgICAgaWYgKGVkaXRvclJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBlZGl0b3JSZWYuY3VycmVudC5zY3JvbGxUb3AgPSAwO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBGaW5kIGFuZCBzY3JvbGwgcGFyZW50IGNvbnRhaW5lcnMgdGhhdCBtaWdodCBoYXZlIHNjcm9sbFxuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsYWJsZSA9IFtcbiAgICAgICAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQuY2xvc2VzdCgnLnFsLWNvbnRhaW5lcicpLFxuICAgICAgICAgICAgICBlZGl0b3JSZWYuY3VycmVudC5jbG9zZXN0KCcucmljaC1lbWFpbC1lZGl0b3ItY29udGFpbmVyJyksXG4gICAgICAgICAgICAgIGVkaXRvclJlZi5jdXJyZW50LmNsb3Nlc3QoJy5vdmVyZmxvdy15LWF1dG8nKSxcbiAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm92ZXJmbG93LXktYXV0bycpXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBzY3JvbGxhYmxlLmZvckVhY2goZWwgPT4ge1xuICAgICAgICAgICAgICBpZiAoZWwgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGVsLnNjcm9sbFRvcCA9IDA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc2V0dGluZyBpbml0aWFsIGNvbnRlbnQ6JywgZXJyKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBFbmhhbmNlZCBmYWxsYmFjayBtZWNoYW5pc20gZm9yIGNvbXBsZXggY29udGVudFxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBGaXJzdCB0cnkgdG8gZXh0cmFjdCB0ZXh0IGZyb20gSFRNTFxuICAgICAgICAgICAgY29uc3QgdGVtcERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgdGVtcERpdi5pbm5lckhUTUwgPSBpbml0aWFsQ29udGVudDtcbiAgICAgICAgICAgIGNvbnN0IHRleHRDb250ZW50ID0gdGVtcERpdi50ZXh0Q29udGVudCB8fCB0ZW1wRGl2LmlubmVyVGV4dCB8fCAnJztcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKHRleHRDb250ZW50LnRyaW0oKSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnVXNpbmcgZXh0cmFjdGVkIHRleHQgZmFsbGJhY2ssIGxlbmd0aDonLCB0ZXh0Q29udGVudC5sZW5ndGgpO1xuICAgICAgICAgICAgICBxdWlsbFJlZi5jdXJyZW50LnNldFRleHQodGV4dENvbnRlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gSWYgdGV4dCBleHRyYWN0aW9uIGZhaWxzIG9yIHJldHVybnMgZW1wdHksIHByb3ZpZGUgYSBtZXNzYWdlXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdVc2luZyBlbXB0eSBjb250ZW50IGZhbGxiYWNrJyk7XG4gICAgICAgICAgICAgIHF1aWxsUmVmLmN1cnJlbnQuc2V0VGV4dCgnVW5hYmxlIHRvIGxvYWQgb3JpZ2luYWwgY29udGVudCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0FsbCBmYWxsYmFja3MgZmFpbGVkOicsIGUpO1xuICAgICAgICAgICAgcXVpbGxSZWYuY3VycmVudC5zZXRUZXh0KCdFcnJvciBsb2FkaW5nIGNvbnRlbnQnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQWRkIGNoYW5nZSBsaXN0ZW5lclxuICAgICAgcXVpbGxSZWYuY3VycmVudC5vbigndGV4dC1jaGFuZ2UnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGh0bWwgPSBxdWlsbFJlZi5jdXJyZW50LnJvb3QuaW5uZXJIVE1MO1xuICAgICAgICBvbkNoYW5nZShodG1sKTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBJbXByb3ZlIGVkaXRvciBsYXlvdXRcbiAgICAgIGNvbnN0IGVkaXRvckNvbnRhaW5lciA9IGVkaXRvckVsZW1lbnQuY2xvc2VzdCgnLnFsLWNvbnRhaW5lcicpO1xuICAgICAgaWYgKGVkaXRvckNvbnRhaW5lcikge1xuICAgICAgICBlZGl0b3JDb250YWluZXIuY2xhc3NMaXN0LmFkZCgnZW1haWwtZWRpdG9yLWNvbnRhaW5lcicpO1xuICAgICAgfVxuXG4gICAgICBzZXRJc1JlYWR5KHRydWUpO1xuICAgIH07XG5cbiAgICBpbml0aWFsaXplUXVpbGwoKS5jYXRjaChlcnIgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGluaXRpYWxpemUgUXVpbGwgZWRpdG9yOicsIGVycik7XG4gICAgfSk7XG5cbiAgICAvLyBDbGVhbiB1cCBvbiB1bm1vdW50XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChxdWlsbFJlZi5jdXJyZW50KSB7XG4gICAgICAgIC8vIENsZWFuIHVwIGFueSBldmVudCBsaXN0ZW5lcnMgb3IgcmVzb3VyY2VzXG4gICAgICAgIHF1aWxsUmVmLmN1cnJlbnQub2ZmKCd0ZXh0LWNoYW5nZScpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtdKTtcblxuICAvLyBVcGRhdGUgY29udGVudCBmcm9tIHByb3BzIGlmIGNoYW5nZWQgZXh0ZXJuYWxseSAtIHVzaW5nIGEgc2ltcGxlciBhcHByb2FjaFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChxdWlsbFJlZi5jdXJyZW50ICYmIGlzUmVhZHkgJiYgaW5pdGlhbENvbnRlbnQpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRDb250ZW50ID0gcXVpbGxSZWYuY3VycmVudC5yb290LmlubmVySFRNTDtcbiAgICAgIFxuICAgICAgLy8gT25seSB1cGRhdGUgaWYgY29udGVudCBjaGFuZ2VkIHRvIGF2b2lkIGVkaXRvciBwb3NpdGlvbiByZXNldFxuICAgICAgaWYgKGluaXRpYWxDb250ZW50ICE9PSBjdXJyZW50Q29udGVudCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdVcGRhdGluZyBjb250ZW50IGluIGVkaXRvcjonLCB7IFxuICAgICAgICAgICAgY29udGVudExlbmd0aDogaW5pdGlhbENvbnRlbnQubGVuZ3RoLFxuICAgICAgICAgICAgc3RhcnRzV2l0aEh0bWw6IGluaXRpYWxDb250ZW50LnRyaW0oKS5zdGFydHNXaXRoKCc8JyksXG4gICAgICAgICAgICBjb250YWluc0ZvcndhcmRlZE1lc3NhZ2U6IGluaXRpYWxDb250ZW50LmluY2x1ZGVzKCctLS0tLS0tLS0tIEZvcndhcmRlZCBtZXNzYWdlIC0tLS0tLS0tLS0nKSxcbiAgICAgICAgICAgIGNvbnRhaW5zUXVvdGVIZWFkZXI6IGluaXRpYWxDb250ZW50LmluY2x1ZGVzKCd3cm90ZTonKSxcbiAgICAgICAgICAgIGhhc0Jsb2NrcXVvdGU6IGluaXRpYWxDb250ZW50LmluY2x1ZGVzKCc8YmxvY2txdW90ZScpLFxuICAgICAgICAgICAgaGFzVGFibGU6IGluaXRpYWxDb250ZW50LmluY2x1ZGVzKCc8dGFibGUnKSxcbiAgICAgICAgICAgIGZpcnN0TkNoYXJzOiBpbml0aWFsQ29udGVudC5zdWJzdHJpbmcoMCwgMTAwKS5yZXBsYWNlKC9cXG4vZywgJ1xcXFxuJylcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBEZXRlY3QgdGV4dCBkaXJlY3Rpb25cbiAgICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSBkZXRlY3RUZXh0RGlyZWN0aW9uKGluaXRpYWxDb250ZW50KTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBDaGVjayBpZiBjb250ZW50IGFscmVhZHkgYXBwZWFycyB0byBiZSBwcm9wZXJseSBmb3JtYXR0ZWQgYXMgYSByZXBseSBvciBmb3J3YXJkXG4gICAgICAgICAgY29uc3QgaXNQcmVGb3JtYXR0ZWRDb250ZW50ID0gKFxuICAgICAgICAgICAgKGluaXRpYWxDb250ZW50LmluY2x1ZGVzKCctLS0tLS0tLS0tIEZvcndhcmRlZCBtZXNzYWdlIC0tLS0tLS0tLS0nKSB8fCBcbiAgICAgICAgICAgICBpbml0aWFsQ29udGVudC5pbmNsdWRlcygnd3JvdGU6JykpICYmXG4gICAgICAgICAgICBpbml0aWFsQ29udGVudC5pbmNsdWRlcygnPGJsb2NrcXVvdGUnKVxuICAgICAgICAgICk7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gUHJvY2VzcyBIVE1MIGNvbnRlbnQgdXNpbmcgY2VudHJhbGl6ZWQgdXRpbGl0eSBvciB1c2UgYXMtaXMgaWYgcHJlLWZvcm1hdHRlZFxuICAgICAgICAgIGxldCBzYW5pdGl6ZWRDb250ZW50O1xuICAgICAgICAgIGlmIChpc1ByZUZvcm1hdHRlZENvbnRlbnQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDb250ZW50IGFwcGVhcnMgdG8gYmUgcHJlLWZvcm1hdHRlZCBhcyByZXBseS9mb3J3YXJkLCB1c2luZyBhcy1pcycpO1xuICAgICAgICAgICAgLy8gSnVzdCBkbyBiYXNpYyBzYW5pdGl6YXRpb24gd2l0aG91dCBhZGRpdGlvbmFsIHByb2Nlc3NpbmdcbiAgICAgICAgICAgIHNhbml0aXplZENvbnRlbnQgPSBzYW5pdGl6ZUh0bWwoaW5pdGlhbENvbnRlbnQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBGdWxsIHByb2Nlc3NpbmcgZm9yIHJlZ3VsYXIgY29udGVudFxuICAgICAgICAgICAgc2FuaXRpemVkQ29udGVudCA9IHByb2Nlc3NIdG1sQ29udGVudChpbml0aWFsQ29udGVudCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIC8vIExvZyBzYW5pdGl6ZWQgY29udGVudCBkZXRhaWxzIGZvciBkZWJ1Z2dpbmdcbiAgICAgICAgICBjb25zb2xlLmxvZygnU2FuaXRpemVkIGNvbnRlbnQgZGV0YWlsczonLCB7XG4gICAgICAgICAgICBsZW5ndGg6IHNhbml0aXplZENvbnRlbnQubGVuZ3RoLFxuICAgICAgICAgICAgaXNFbXB0eTogc2FuaXRpemVkQ29udGVudC50cmltKCkubGVuZ3RoID09PSAwLFxuICAgICAgICAgICAgc3RhcnRzV2l0aERpdjogc2FuaXRpemVkQ29udGVudC50cmltKCkuc3RhcnRzV2l0aCgnPGRpdicpLFxuICAgICAgICAgICAgY29udGFpbnNGb3J3YXJkZWRNZXNzYWdlOiBzYW5pdGl6ZWRDb250ZW50LmluY2x1ZGVzKCctLS0tLS0tLS0tIEZvcndhcmRlZCBtZXNzYWdlIC0tLS0tLS0tLS0nKSxcbiAgICAgICAgICAgIGNvbnRhaW5zUXVvdGVIZWFkZXI6IHNhbml0aXplZENvbnRlbnQuaW5jbHVkZXMoJ3dyb3RlOicpLFxuICAgICAgICAgICAgaGFzVGFibGU6IHNhbml0aXplZENvbnRlbnQuaW5jbHVkZXMoJzx0YWJsZScpLFxuICAgICAgICAgICAgaGFzQmxvY2txdW90ZTogc2FuaXRpemVkQ29udGVudC5pbmNsdWRlcygnPGJsb2NrcXVvdGUnKSxcbiAgICAgICAgICAgIGZpcnN0TkNoYXJzOiBzYW5pdGl6ZWRDb250ZW50LnN1YnN0cmluZygwLCAxMDApLnJlcGxhY2UoL1xcbi9nLCAnXFxcXG4nKVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIENoZWNrIGlmIGNvbnRlbnQgaXMgdmFsaWQgSFRNTFxuICAgICAgICAgIGlmIChzYW5pdGl6ZWRDb250ZW50LnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignU2FuaXRpemVkIGNvbnRlbnQgaXMgZW1wdHksIHVzaW5nIG9yaWdpbmFsIGNvbnRlbnQnKTtcbiAgICAgICAgICAgIC8vIElmIHNhbml0aXplZCBjb250ZW50IGlzIGVtcHR5LCB0cnkgdG8gZXh0cmFjdCB0ZXh0IGZyb20gb3JpZ2luYWxcbiAgICAgICAgICAgIGNvbnN0IHRlbXBEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIHRlbXBEaXYuaW5uZXJIVE1MID0gaW5pdGlhbENvbnRlbnQ7XG4gICAgICAgICAgICBjb25zdCB0ZXh0Q29udGVudCA9IHRlbXBEaXYudGV4dENvbnRlbnQgfHwgdGVtcERpdi5pbm5lclRleHQgfHwgJyc7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIENyZWF0ZSBzaW1wbGUgSFRNTCB3aXRoIHRleHQgY29udGVudFxuICAgICAgICAgICAgaWYgKHF1aWxsUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgcXVpbGxSZWYuY3VycmVudC5zZXRUZXh0KHRleHRDb250ZW50IHx8ICdObyBjb250ZW50IGF2YWlsYWJsZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBTSU1QTElGSUVEOiBTZXQgY29udGVudCBkaXJlY3RseSB0byB0aGUgcm9vdCBlbGVtZW50IHJhdGhlciB0aGFuIHVzaW5nIGNsaXBib2FyZFxuICAgICAgICAgICAgaWYgKHF1aWxsUmVmLmN1cnJlbnQgJiYgcXVpbGxSZWYuY3VycmVudC5yb290KSB7XG4gICAgICAgICAgICAgIC8vIEZpcnN0IHNldCB0aGUgY29udGVudFxuICAgICAgICAgICAgICBxdWlsbFJlZi5jdXJyZW50LnJvb3QuaW5uZXJIVE1MID0gc2FuaXRpemVkQ29udGVudDtcbiAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgIC8vIFRoZW4gc2FmZWx5IGFwcGx5IGZvcm1hdHRpbmcgb25seSBpZiBxdWlsbFJlZiBpcyB2YWxpZFxuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGlmIChxdWlsbFJlZi5jdXJyZW50ICYmIHF1aWxsUmVmLmN1cnJlbnQuZm9ybWF0ICYmIHF1aWxsUmVmLmN1cnJlbnQucm9vdC5pbm5lckhUTUwudHJpbSgpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgZGlyZWN0aW9uIGZvciB0aGUgY29udGVudFxuICAgICAgICAgICAgICAgICAgcXVpbGxSZWYuY3VycmVudC5mb3JtYXQoJ2RpcmVjdGlvbicsIGRpcmVjdGlvbik7XG4gICAgICAgICAgICAgICAgICBpZiAoZGlyZWN0aW9uID09PSAncnRsJykge1xuICAgICAgICAgICAgICAgICAgICBxdWlsbFJlZi5jdXJyZW50LmZvcm1hdCgnYWxpZ24nLCAncmlnaHQnKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgLy8gRm9yY2UgdXBkYXRlXG4gICAgICAgICAgICAgICAgICBxdWlsbFJlZi5jdXJyZW50LnVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAvLyBTZXQgc2VsZWN0aW9uIHRvIGJlZ2lubmluZ1xuICAgICAgICAgICAgICAgICAgcXVpbGxSZWYuY3VycmVudC5zZXRTZWxlY3Rpb24oMCwgMCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignU2tpcHBpbmcgZm9ybWF0IC0gZWl0aGVyIGVkaXRvciBub3QgcmVhZHkgb3IgY29udGVudCBlbXB0eScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBjYXRjaCAoZm9ybWF0RXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBhcHBseWluZyBmb3JtYXR0aW5nOicsIGZvcm1hdEVycm9yKTtcbiAgICAgICAgICAgICAgICAvLyBDb250aW51ZSB3aXRob3V0IGZvcm1hdHRpbmcgaWYgdGhlcmUncyBhbiBlcnJvclxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciB1cGRhdGluZyBjb250ZW50OicsIGVycik7XG4gICAgICAgICAgLy8gU2FmZXIgZmFsbGJhY2sgdGhhdCBhdm9pZHMgY2xpcGJvYXJkIEFQSVxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBFeHRyYWN0IGJhc2ljIHRleHQgaWYgZXZlcnl0aGluZyBlbHNlIGZhaWxzXG4gICAgICAgICAgICBjb25zdCB0ZW1wRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICB0ZW1wRGl2LmlubmVySFRNTCA9IGluaXRpYWxDb250ZW50O1xuICAgICAgICAgICAgY29uc3QgdGV4dENvbnRlbnQgPSB0ZW1wRGl2LnRleHRDb250ZW50IHx8IHRlbXBEaXYuaW5uZXJUZXh0IHx8ICcnO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAocXVpbGxSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICBxdWlsbFJlZi5jdXJyZW50LnNldFRleHQodGV4dENvbnRlbnQgfHwgJ0Vycm9yIGxvYWRpbmcgY29udGVudCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0FsbCBmYWxsYmFja3MgZmFpbGVkOicsIGUpO1xuICAgICAgICAgICAgLy8gTGFzdCByZXNvcnRcbiAgICAgICAgICAgIGlmIChxdWlsbFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgIHF1aWxsUmVmLmN1cnJlbnQuc2V0VGV4dCgnRXJyb3IgbG9hZGluZyBjb250ZW50Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LCBbaW5pdGlhbENvbnRlbnQsIGlzUmVhZHldKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwicmljaC1lbWFpbC1lZGl0b3Itd3JhcHBlclwiPlxuICAgICAgey8qIEN1c3RvbSB0b29sYmFyIGNvbnRhaW5lciAqL31cbiAgICAgIDxkaXYgcmVmPXt0b29sYmFyUmVmfSBjbGFzc05hbWU9XCJxbC10b29sYmFyIHFsLXNub3dcIj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwicWwtYm9sZFwiPjwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwicWwtaXRhbGljXCI+PC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJxbC11bmRlcmxpbmVcIj48L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cInFsLXN0cmlrZVwiPjwvYnV0dG9uPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICA8c2VsZWN0IGNsYXNzTmFtZT1cInFsLWNvbG9yXCI+PC9zZWxlY3Q+XG4gICAgICAgICAgPHNlbGVjdCBjbGFzc05hbWU9XCJxbC1iYWNrZ3JvdW5kXCI+PC9zZWxlY3Q+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwicWwtbGlzdFwiIHZhbHVlPVwib3JkZXJlZFwiPjwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwicWwtbGlzdFwiIHZhbHVlPVwiYnVsbGV0XCI+PC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwicWwtaW5kZW50XCIgdmFsdWU9XCItMVwiPjwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwicWwtaW5kZW50XCIgdmFsdWU9XCIrMVwiPjwvYnV0dG9uPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICA8c2VsZWN0IGNsYXNzTmFtZT1cInFsLWFsaWduXCI+PC9zZWxlY3Q+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwicWwtZGlyZWN0aW9uXCIgdmFsdWU9XCJydGxcIj48L2J1dHRvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJxbC1saW5rXCI+PC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwicWwtY2xlYW5cIj48L2J1dHRvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIHsvKiBFZGl0b3IgY29udGFpbmVyIHdpdGggaW1wcm92ZWQgc2Nyb2xsaW5nICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJyaWNoLWVtYWlsLWVkaXRvci1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBcbiAgICAgICAgICByZWY9e2VkaXRvclJlZn0gXG4gICAgICAgICAgY2xhc3NOYW1lPVwicXVpbGwtZWRpdG9yXCJcbiAgICAgICAgLz5cbiAgICAgICAgXG4gICAgICAgIHsvKiBMb2FkaW5nIGluZGljYXRvciAqL31cbiAgICAgICAgeyFpc1JlYWR5ICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB5LThcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaC02IHctNiBhbmltYXRlLXNwaW4gcm91bmRlZC1mdWxsIGJvcmRlci0yIGJvcmRlci1wcmltYXJ5IGJvcmRlci10LXRyYW5zcGFyZW50XCI+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIFxuICAgICAgey8qIEN1c3RvbSBzdHlsZXMgZm9yIGVtYWlsIGNvbnRleHQgKi99XG4gICAgICA8c3R5bGUganN4PntgXG4gICAgICAgIC5yaWNoLWVtYWlsLWVkaXRvci13cmFwcGVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLnJpY2gtZW1haWwtZWRpdG9yLWNvbnRhaW5lciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLnF1aWxsLWVkaXRvciB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWluLWhlaWdodDogJHttaW5IZWlnaHR9O1xuICAgICAgICAgIG1heC1oZWlnaHQ6ICR7bWF4SGVpZ2h0fTtcbiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLyogSGlkZSB0aGUgZWRpdG9yIHVudGlsIGl0J3MgcmVhZHkgKi9cbiAgICAgICAgLnF1aWxsLWVkaXRvciAkeyFpc1JlYWR5ID8gJ3sgZGlzcGxheTogbm9uZTsgfScgOiAnJ31cbiAgICAgICAgXG4gICAgICAgIC8qIEhpZGUgZHVwbGljYXRlIHRvb2xiYXIgKi9cbiAgICAgICAgOmdsb2JhbCgucWwtdG9vbGJhci5xbC1zbm93ICsgLnFsLXRvb2xiYXIucWwtc25vdykge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLyogQWRkIFJUTCBzdXBwb3J0IHN0eWxlcyAqL1xuICAgICAgICA6Z2xvYmFsKFtkaXI9XCJydGxcIl0gLnFsLWVkaXRvcikge1xuICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICA6Z2xvYmFsKC5xbC1lZGl0b3JbZGlyPVwicnRsXCJdKSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIDpnbG9iYWwoLnFsLWNvbnRhaW5lcikge1xuICAgICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgIG1pbi1oZWlnaHQ6ICR7bWluSGVpZ2h0fTtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIDpnbG9iYWwoLnFsLWVkaXRvcikge1xuICAgICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgICAgbWluLWhlaWdodDogJHttaW5IZWlnaHR9O1xuICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgICAgY29sb3I6ICMzMzMgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLyogRW5zdXJlIGFsbCB0ZXh0IGlzIHZpc2libGUgKi9cbiAgICAgICAgOmdsb2JhbCgucWwtZWRpdG9yIHApLFxuICAgICAgICA6Z2xvYmFsKC5xbC1lZGl0b3IgZGl2KSxcbiAgICAgICAgOmdsb2JhbCgucWwtZWRpdG9yIHNwYW4pLFxuICAgICAgICA6Z2xvYmFsKC5xbC1lZGl0b3IgbGkpIHtcbiAgICAgICAgICBjb2xvcjogIzMzMyAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvKiBFbnN1cmUgcGxhY2Vob2xkZXIgdGV4dCBpcyB2aXNpYmxlIGJ1dCBkaXN0aW5jdCAqL1xuICAgICAgICA6Z2xvYmFsKC5xbC1lZGl0b3IucWwtYmxhbms6OmJlZm9yZSkge1xuICAgICAgICAgIGNvbG9yOiAjYWFhICFpbXBvcnRhbnQ7XG4gICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8qIEZvcmNlIGJsb2NrcXVvdGUgc3R5bGluZyAqL1xuICAgICAgICA6Z2xvYmFsKC5xbC1lZGl0b3IgYmxvY2txdW90ZSkge1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2RkZCAhaW1wb3J0YW50O1xuICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIHBhZGRpbmc6IDEwcHggMCAxMHB4IDE1cHggIWltcG9ydGFudDtcbiAgICAgICAgICBjb2xvcjogIzUwNTA1MCAhaW1wb3J0YW50O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5ZjkgIWltcG9ydGFudDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDtcbiAgICAgICAgICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLyogUlRMIGJsb2NrcXVvdGUgc3R5bGluZyAqL1xuICAgICAgICA6Z2xvYmFsKC5xbC1lZGl0b3JbZGlyPVwicnRsXCJdIGJsb2NrcXVvdGUpLFxuICAgICAgICA6Z2xvYmFsKFtkaXI9XCJydGxcIl0gLnFsLWVkaXRvciBibG9ja3F1b3RlKSB7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjZGRkICFpbXBvcnRhbnQ7XG4gICAgICAgICAgcGFkZGluZzogMTBweCAxNXB4IDEwcHggMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvKiBGaXggdGFibGUgcmVuZGVyaW5nICovXG4gICAgICAgIDpnbG9iYWwoLnFsLWVkaXRvciB0YWJsZSkge1xuICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50O1xuICAgICAgICAgIHRhYmxlLWxheW91dDogZml4ZWQgIWltcG9ydGFudDtcbiAgICAgICAgICBtYXJnaW46IDEwcHggMCAhaW1wb3J0YW50O1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgOmdsb2JhbCgucWwtZWRpdG9yIHRkKSwgXG4gICAgICAgIDpnbG9iYWwoLnFsLWVkaXRvciB0aCkge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQgIWltcG9ydGFudDtcbiAgICAgICAgICBwYWRkaW5nOiA2cHggOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcbiAgICAgICAgICBtaW4td2lkdGg6IDMwcHggIWltcG9ydGFudDtcbiAgICAgICAgICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLyogRW1haWwgcXVvdGUgc3R5bGluZyAqL1xuICAgICAgICA6Z2xvYmFsKC5lbWFpbC1vcmlnaW5hbC1jb250ZW50KSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMjBweCAhaW1wb3J0YW50O1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQgIWltcG9ydGFudDtcbiAgICAgICAgICBjb2xvcjogIzU1NSAhaW1wb3J0YW50O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvKiBGaXggcXVvdGVkIHBhcmFncmFwaHMgKi9cbiAgICAgICAgOmdsb2JhbCgucWwtZWRpdG9yIGJsb2NrcXVvdGUgcCkge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweCAhaW1wb3J0YW50O1xuICAgICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLyogRml4IGZvciByZXBseSBoZWFkZXJzICovXG4gICAgICAgIDpnbG9iYWwoLnFsLWVkaXRvciBkaXZbc3R5bGUqPVwiZm9udC13ZWlnaHQ6IDQwMFwiXSkge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHggIWltcG9ydGFudDtcbiAgICAgICAgICBjb2xvcjogIzU1NSAhaW1wb3J0YW50O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICBgfTwvc3R5bGU+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBSaWNoRW1haWxFZGl0b3I7ICJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwic2FuaXRpemVIdG1sIiwiZGV0ZWN0VGV4dERpcmVjdGlvbiIsInByb2Nlc3NIdG1sQ29udGVudCIsIlJpY2hFbWFpbEVkaXRvciIsImluaXRpYWxDb250ZW50Iiwib25DaGFuZ2UiLCJwbGFjZWhvbGRlciIsIm1pbkhlaWdodCIsIm1heEhlaWdodCIsInByZXNlcnZlRm9ybWF0dGluZyIsImVkaXRvclJlZiIsInRvb2xiYXJSZWYiLCJxdWlsbFJlZiIsImlzUmVhZHkiLCJzZXRJc1JlYWR5IiwiaW5pdGlhbGl6ZVF1aWxsIiwiY3VycmVudCIsIlF1aWxsIiwiZGVmYXVsdCIsInRhYmxlTW9kdWxlIiwiUXVpbGxCZXR0ZXJUYWJsZSIsInJlZ2lzdGVyIiwiY29uc29sZSIsImxvZyIsImVyciIsIndhcm4iLCJlbWFpbFRvb2xiYXJPcHRpb25zIiwiZWRpdG9yRWxlbWVudCIsIm1vZHVsZXMiLCJ0b29sYmFyIiwiY29udGFpbmVyIiwiaGFuZGxlcnMiLCJjbGlwYm9hcmQiLCJtYXRjaFZpc3VhbCIsInRoZW1lIiwibGVuZ3RoIiwic3RhcnRzV2l0aEh0bWwiLCJ0cmltIiwic3RhcnRzV2l0aCIsImNvbnRhaW5zRm9yd2FyZGVkTWVzc2FnZSIsImluY2x1ZGVzIiwiY29udGFpbnNSZXBseUluZGljYXRvciIsImhhc0Jsb2NrcXVvdGUiLCJkaXJlY3Rpb24iLCJpc1ByZUZvcm1hdHRlZENvbnRlbnQiLCJzYW5pdGl6ZWRDb250ZW50IiwiaXNFbXB0eSIsInN0YXJ0c1dpdGhEaXYiLCJjb250YWluc1F1b3RlSGVhZGVyIiwiaGFzVGFibGUiLCJmaXJzdE5DaGFycyIsInN1YnN0cmluZyIsInJlcGxhY2UiLCJ0ZW1wRGl2IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiaW5uZXJIVE1MIiwidGV4dENvbnRlbnQiLCJpbm5lclRleHQiLCJzZXRUZXh0IiwiZSIsImVycm9yIiwicm9vdCIsImZvcm1hdCIsInNldFNlbGVjdGlvbiIsInNjcm9sbFRvcCIsInNjcm9sbGFibGUiLCJjbG9zZXN0IiwicXVlcnlTZWxlY3RvciIsImZvckVhY2giLCJlbCIsIkhUTUxFbGVtZW50Iiwib24iLCJodG1sIiwiZWRpdG9yQ29udGFpbmVyIiwiY2xhc3NMaXN0IiwiYWRkIiwiY2F0Y2giLCJvZmYiLCJjdXJyZW50Q29udGVudCIsImNvbnRlbnRMZW5ndGgiLCJ1cGRhdGUiLCJmb3JtYXRFcnJvciIsImRpdiIsInJlZiIsInNwYW4iLCJidXR0b24iLCJzZWxlY3QiLCJ2YWx1ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/email/RichEmailEditor.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/alert-dialog.tsx": /*!****************************************!*\ !*** ./components/ui/alert-dialog.tsx ***! \****************************************/ /***/ ((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 */ AlertDialog: () => (/* binding */ AlertDialog),\n/* harmony export */ AlertDialogAction: () => (/* binding */ AlertDialogAction),\n/* harmony export */ AlertDialogCancel: () => (/* binding */ AlertDialogCancel),\n/* harmony export */ AlertDialogContent: () => (/* binding */ AlertDialogContent),\n/* harmony export */ AlertDialogDescription: () => (/* binding */ AlertDialogDescription),\n/* harmony export */ AlertDialogFooter: () => (/* binding */ AlertDialogFooter),\n/* harmony export */ AlertDialogHeader: () => (/* binding */ AlertDialogHeader),\n/* harmony export */ AlertDialogOverlay: () => (/* binding */ AlertDialogOverlay),\n/* harmony export */ AlertDialogPortal: () => (/* binding */ AlertDialogPortal),\n/* harmony export */ AlertDialogTitle: () => (/* binding */ AlertDialogTitle),\n/* harmony export */ AlertDialogTrigger: () => (/* binding */ AlertDialogTrigger)\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 _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-alert-dialog */ \"(app-pages-browser)/./node_modules/@radix-ui/react-alert-dialog/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* __next_internal_client_entry_do_not_use__ AlertDialog,AlertDialogPortal,AlertDialogOverlay,AlertDialogTrigger,AlertDialogContent,AlertDialogHeader,AlertDialogFooter,AlertDialogTitle,AlertDialogDescription,AlertDialogAction,AlertDialogCancel auto */ \n\n\n\n\nconst AlertDialog = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Root;\nconst AlertDialogTrigger = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Trigger;\nconst AlertDialogPortal = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Portal;\nconst AlertDialogOverlay = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Overlay, {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\", className),\n ...props,\n ref: ref\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert-dialog.tsx\",\n lineNumber: 19,\n columnNumber: 3\n }, undefined);\n});\n_c = AlertDialogOverlay;\nAlertDialogOverlay.displayName = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Overlay.displayName;\nconst AlertDialogContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c1 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(AlertDialogPortal, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(AlertDialogOverlay, {}, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert-dialog.tsx\",\n lineNumber: 35,\n columnNumber: 5\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Content, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert-dialog.tsx\",\n lineNumber: 36,\n columnNumber: 5\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert-dialog.tsx\",\n lineNumber: 34,\n columnNumber: 3\n }, undefined);\n});\n_c2 = AlertDialogContent;\nAlertDialogContent.displayName = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Content.displayName;\nconst AlertDialogHeader = (param)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex flex-col space-y-2 text-center sm:text-left\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert-dialog.tsx\",\n lineNumber: 52,\n columnNumber: 3\n }, undefined);\n};\n_c3 = AlertDialogHeader;\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\nconst AlertDialogFooter = (param)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert-dialog.tsx\",\n lineNumber: 66,\n columnNumber: 3\n }, undefined);\n};\n_c4 = AlertDialogFooter;\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\nconst AlertDialogTitle = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c5 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Title, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"text-lg font-semibold\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert-dialog.tsx\",\n lineNumber: 80,\n columnNumber: 3\n }, undefined);\n});\n_c6 = AlertDialogTitle;\nAlertDialogTitle.displayName = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Title.displayName;\nconst AlertDialogDescription = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c7 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Description, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"text-sm text-muted-foreground\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert-dialog.tsx\",\n lineNumber: 92,\n columnNumber: 3\n }, undefined);\n});\n_c8 = AlertDialogDescription;\nAlertDialogDescription.displayName = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Description.displayName;\nconst AlertDialogAction = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c9 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Action, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)((0,_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.buttonVariants)(), className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert-dialog.tsx\",\n lineNumber: 105,\n columnNumber: 3\n }, undefined);\n});\n_c10 = AlertDialogAction;\nAlertDialogAction.displayName = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Action.displayName;\nconst AlertDialogCancel = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c11 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Cancel, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)((0,_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.buttonVariants)({\n variant: \"outline\"\n }), \"mt-2 sm:mt-0\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert-dialog.tsx\",\n lineNumber: 117,\n columnNumber: 3\n }, undefined);\n});\n_c12 = AlertDialogCancel;\nAlertDialogCancel.displayName = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Cancel.displayName;\n\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n$RefreshReg$(_c, \"AlertDialogOverlay\");\n$RefreshReg$(_c1, \"AlertDialogContent$React.forwardRef\");\n$RefreshReg$(_c2, \"AlertDialogContent\");\n$RefreshReg$(_c3, \"AlertDialogHeader\");\n$RefreshReg$(_c4, \"AlertDialogFooter\");\n$RefreshReg$(_c5, \"AlertDialogTitle$React.forwardRef\");\n$RefreshReg$(_c6, \"AlertDialogTitle\");\n$RefreshReg$(_c7, \"AlertDialogDescription$React.forwardRef\");\n$RefreshReg$(_c8, \"AlertDialogDescription\");\n$RefreshReg$(_c9, \"AlertDialogAction$React.forwardRef\");\n$RefreshReg$(_c10, \"AlertDialogAction\");\n$RefreshReg$(_c11, \"AlertDialogCancel$React.forwardRef\");\n$RefreshReg$(_c12, \"AlertDialogCancel\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvYWxlcnQtZGlhbG9nLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFOEI7QUFDc0M7QUFFcEM7QUFDdUI7QUFFdkQsTUFBTUksY0FBY0gsOERBQXlCO0FBRTdDLE1BQU1LLHFCQUFxQkwsaUVBQTRCO0FBRXZELE1BQU1PLG9CQUFvQlAsZ0VBQTJCO0FBRXJELE1BQU1TLG1DQUFxQlYsNkNBQWdCLENBR3pDLFFBQTBCWTtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNiLGlFQUE0QjtRQUMzQlksV0FBV1gsOENBQUVBLENBQ1gsMkpBQ0FXO1FBRUQsR0FBR0MsS0FBSztRQUNURixLQUFLQTs7Ozs7OztLQVZIRjtBQWFOQSxtQkFBbUJNLFdBQVcsR0FBR2YsaUVBQTRCLENBQUNlLFdBQVc7QUFFekUsTUFBTUMsbUNBQXFCakIsNkNBQWdCLE9BR3pDLFFBQTBCWTtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNOOzswQkFDQyw4REFBQ0U7Ozs7OzBCQUNELDhEQUFDVCxpRUFBNEI7Z0JBQzNCVyxLQUFLQTtnQkFDTEMsV0FBV1gsOENBQUVBLENBQ1gsK2ZBQ0FXO2dCQUVELEdBQUdDLEtBQUs7Ozs7Ozs7Ozs7Ozs7O0FBSWZHLG1CQUFtQkQsV0FBVyxHQUFHZixpRUFBNEIsQ0FBQ2UsV0FBVztBQUV6RSxNQUFNRyxvQkFBb0I7UUFBQyxFQUN6Qk4sU0FBUyxFQUNULEdBQUdDLE9BQ2tDO3lCQUNyQyw4REFBQ007UUFDQ1AsV0FBV1gsOENBQUVBLENBQ1gsb0RBQ0FXO1FBRUQsR0FBR0MsS0FBSzs7Ozs7OztNQVRQSztBQVlOQSxrQkFBa0JILFdBQVcsR0FBRztBQUVoQyxNQUFNSyxvQkFBb0I7UUFBQyxFQUN6QlIsU0FBUyxFQUNULEdBQUdDLE9BQ2tDO3lCQUNyQyw4REFBQ007UUFDQ1AsV0FBV1gsOENBQUVBLENBQ1gsaUVBQ0FXO1FBRUQsR0FBR0MsS0FBSzs7Ozs7OztNQVRQTztBQVlOQSxrQkFBa0JMLFdBQVcsR0FBRztBQUVoQyxNQUFNTSxpQ0FBbUJ0Qiw2Q0FBZ0IsT0FHdkMsUUFBMEJZO1FBQXpCLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxPQUFPO3lCQUN4Qiw4REFBQ2IsK0RBQTBCO1FBQ3pCVyxLQUFLQTtRQUNMQyxXQUFXWCw4Q0FBRUEsQ0FBQyx5QkFBeUJXO1FBQ3RDLEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JRLGlCQUFpQk4sV0FBVyxHQUFHZiwrREFBMEIsQ0FBQ2UsV0FBVztBQUVyRSxNQUFNUSx1Q0FBeUJ4Qiw2Q0FBZ0IsT0FHN0MsUUFBMEJZO1FBQXpCLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxPQUFPO3lCQUN4Qiw4REFBQ2IscUVBQWdDO1FBQy9CVyxLQUFLQTtRQUNMQyxXQUFXWCw4Q0FBRUEsQ0FBQyxpQ0FBaUNXO1FBQzlDLEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JVLHVCQUF1QlIsV0FBVyxHQUNoQ2YscUVBQWdDLENBQUNlLFdBQVc7QUFFOUMsTUFBTVUsa0NBQW9CMUIsNkNBQWdCLE9BR3hDLFFBQTBCWTtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNiLGdFQUEyQjtRQUMxQlcsS0FBS0E7UUFDTEMsV0FBV1gsOENBQUVBLENBQUNDLHFFQUFjQSxJQUFJVTtRQUMvQixHQUFHQyxLQUFLOzs7Ozs7OztBQUdiWSxrQkFBa0JWLFdBQVcsR0FBR2YsZ0VBQTJCLENBQUNlLFdBQVc7QUFFdkUsTUFBTVksa0NBQW9CNUIsNkNBQWdCLFFBR3hDLFFBQTBCWTtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNiLGdFQUEyQjtRQUMxQlcsS0FBS0E7UUFDTEMsV0FBV1gsOENBQUVBLENBQ1hDLHFFQUFjQSxDQUFDO1lBQUUyQixTQUFTO1FBQVUsSUFDcEMsZ0JBQ0FqQjtRQUVELEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JjLGtCQUFrQlosV0FBVyxHQUFHZixnRUFBMkIsQ0FBQ2UsV0FBVztBQWN0RSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9jb21wb25lbnRzL3VpL2FsZXJ0LWRpYWxvZy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCAqIGFzIEFsZXJ0RGlhbG9nUHJpbWl0aXZlIGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtYWxlcnQtZGlhbG9nXCJcblxuaW1wb3J0IHsgY24gfSBmcm9tIFwiQC9saWIvdXRpbHNcIlxuaW1wb3J0IHsgYnV0dG9uVmFyaWFudHMgfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2J1dHRvblwiXG5cbmNvbnN0IEFsZXJ0RGlhbG9nID0gQWxlcnREaWFsb2dQcmltaXRpdmUuUm9vdFxuXG5jb25zdCBBbGVydERpYWxvZ1RyaWdnZXIgPSBBbGVydERpYWxvZ1ByaW1pdGl2ZS5UcmlnZ2VyXG5cbmNvbnN0IEFsZXJ0RGlhbG9nUG9ydGFsID0gQWxlcnREaWFsb2dQcmltaXRpdmUuUG9ydGFsXG5cbmNvbnN0IEFsZXJ0RGlhbG9nT3ZlcmxheSA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIEFsZXJ0RGlhbG9nUHJpbWl0aXZlLk92ZXJsYXk+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEFsZXJ0RGlhbG9nUHJpbWl0aXZlLk92ZXJsYXk+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxBbGVydERpYWxvZ1ByaW1pdGl2ZS5PdmVybGF5XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwiZml4ZWQgaW5zZXQtMCB6LTUwIGJnLWJsYWNrLzgwICBkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluIGRhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpmYWRlLW91dC0wIGRhdGEtW3N0YXRlPW9wZW5dOmZhZGUtaW4tMFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gICAgcmVmPXtyZWZ9XG4gIC8+XG4pKVxuQWxlcnREaWFsb2dPdmVybGF5LmRpc3BsYXlOYW1lID0gQWxlcnREaWFsb2dQcmltaXRpdmUuT3ZlcmxheS5kaXNwbGF5TmFtZVxuXG5jb25zdCBBbGVydERpYWxvZ0NvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBBbGVydERpYWxvZ1ByaW1pdGl2ZS5Db250ZW50PixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBBbGVydERpYWxvZ1ByaW1pdGl2ZS5Db250ZW50PlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8QWxlcnREaWFsb2dQb3J0YWw+XG4gICAgPEFsZXJ0RGlhbG9nT3ZlcmxheSAvPlxuICAgIDxBbGVydERpYWxvZ1ByaW1pdGl2ZS5Db250ZW50XG4gICAgICByZWY9e3JlZn1cbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgIFwiZml4ZWQgbGVmdC1bNTAlXSB0b3AtWzUwJV0gei01MCBncmlkIHctZnVsbCBtYXgtdy1sZyB0cmFuc2xhdGUteC1bLTUwJV0gdHJhbnNsYXRlLXktWy01MCVdIGdhcC00IGJvcmRlciBiZy1iYWNrZ3JvdW5kIHAtNiBzaGFkb3ctbGcgZHVyYXRpb24tMjAwIGRhdGEtW3N0YXRlPW9wZW5dOmFuaW1hdGUtaW4gZGF0YS1bc3RhdGU9Y2xvc2VkXTphbmltYXRlLW91dCBkYXRhLVtzdGF0ZT1jbG9zZWRdOmZhZGUtb3V0LTAgZGF0YS1bc3RhdGU9b3Blbl06ZmFkZS1pbi0wIGRhdGEtW3N0YXRlPWNsb3NlZF06em9vbS1vdXQtOTUgZGF0YS1bc3RhdGU9b3Blbl06em9vbS1pbi05NSBkYXRhLVtzdGF0ZT1jbG9zZWRdOnNsaWRlLW91dC10by1sZWZ0LTEvMiBkYXRhLVtzdGF0ZT1jbG9zZWRdOnNsaWRlLW91dC10by10b3AtWzQ4JV0gZGF0YS1bc3RhdGU9b3Blbl06c2xpZGUtaW4tZnJvbS1sZWZ0LTEvMiBkYXRhLVtzdGF0ZT1vcGVuXTpzbGlkZS1pbi1mcm9tLXRvcC1bNDglXSBzbTpyb3VuZGVkLWxnXCIsXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICA8L0FsZXJ0RGlhbG9nUG9ydGFsPlxuKSlcbkFsZXJ0RGlhbG9nQ29udGVudC5kaXNwbGF5TmFtZSA9IEFsZXJ0RGlhbG9nUHJpbWl0aXZlLkNvbnRlbnQuZGlzcGxheU5hbWVcblxuY29uc3QgQWxlcnREaWFsb2dIZWFkZXIgPSAoe1xuICBjbGFzc05hbWUsXG4gIC4uLnByb3BzXG59OiBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4pID0+IChcbiAgPGRpdlxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcImZsZXggZmxleC1jb2wgc3BhY2UteS0yIHRleHQtY2VudGVyIHNtOnRleHQtbGVmdFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pXG5BbGVydERpYWxvZ0hlYWRlci5kaXNwbGF5TmFtZSA9IFwiQWxlcnREaWFsb2dIZWFkZXJcIlxuXG5jb25zdCBBbGVydERpYWxvZ0Zvb3RlciA9ICh7XG4gIGNsYXNzTmFtZSxcbiAgLi4ucHJvcHNcbn06IFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PikgPT4gKFxuICA8ZGl2XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwiZmxleCBmbGV4LWNvbC1yZXZlcnNlIHNtOmZsZXgtcm93IHNtOmp1c3RpZnktZW5kIHNtOnNwYWNlLXgtMlwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pXG5BbGVydERpYWxvZ0Zvb3Rlci5kaXNwbGF5TmFtZSA9IFwiQWxlcnREaWFsb2dGb290ZXJcIlxuXG5jb25zdCBBbGVydERpYWxvZ1RpdGxlID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgQWxlcnREaWFsb2dQcmltaXRpdmUuVGl0bGU+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEFsZXJ0RGlhbG9nUHJpbWl0aXZlLlRpdGxlPlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8QWxlcnREaWFsb2dQcmltaXRpdmUuVGl0bGVcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFwidGV4dC1sZyBmb250LXNlbWlib2xkXCIsIGNsYXNzTmFtZSl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkFsZXJ0RGlhbG9nVGl0bGUuZGlzcGxheU5hbWUgPSBBbGVydERpYWxvZ1ByaW1pdGl2ZS5UaXRsZS5kaXNwbGF5TmFtZVxuXG5jb25zdCBBbGVydERpYWxvZ0Rlc2NyaXB0aW9uID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgQWxlcnREaWFsb2dQcmltaXRpdmUuRGVzY3JpcHRpb24+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEFsZXJ0RGlhbG9nUHJpbWl0aXZlLkRlc2NyaXB0aW9uPlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8QWxlcnREaWFsb2dQcmltaXRpdmUuRGVzY3JpcHRpb25cbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFwidGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIiwgY2xhc3NOYW1lKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuQWxlcnREaWFsb2dEZXNjcmlwdGlvbi5kaXNwbGF5TmFtZSA9XG4gIEFsZXJ0RGlhbG9nUHJpbWl0aXZlLkRlc2NyaXB0aW9uLmRpc3BsYXlOYW1lXG5cbmNvbnN0IEFsZXJ0RGlhbG9nQWN0aW9uID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgQWxlcnREaWFsb2dQcmltaXRpdmUuQWN0aW9uPixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBBbGVydERpYWxvZ1ByaW1pdGl2ZS5BY3Rpb24+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxBbGVydERpYWxvZ1ByaW1pdGl2ZS5BY3Rpb25cbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKGJ1dHRvblZhcmlhbnRzKCksIGNsYXNzTmFtZSl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkFsZXJ0RGlhbG9nQWN0aW9uLmRpc3BsYXlOYW1lID0gQWxlcnREaWFsb2dQcmltaXRpdmUuQWN0aW9uLmRpc3BsYXlOYW1lXG5cbmNvbnN0IEFsZXJ0RGlhbG9nQ2FuY2VsID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgQWxlcnREaWFsb2dQcmltaXRpdmUuQ2FuY2VsPixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBBbGVydERpYWxvZ1ByaW1pdGl2ZS5DYW5jZWw+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxBbGVydERpYWxvZ1ByaW1pdGl2ZS5DYW5jZWxcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgYnV0dG9uVmFyaWFudHMoeyB2YXJpYW50OiBcIm91dGxpbmVcIiB9KSxcbiAgICAgIFwibXQtMiBzbTptdC0wXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5BbGVydERpYWxvZ0NhbmNlbC5kaXNwbGF5TmFtZSA9IEFsZXJ0RGlhbG9nUHJpbWl0aXZlLkNhbmNlbC5kaXNwbGF5TmFtZVxuXG5leHBvcnQge1xuICBBbGVydERpYWxvZyxcbiAgQWxlcnREaWFsb2dQb3J0YWwsXG4gIEFsZXJ0RGlhbG9nT3ZlcmxheSxcbiAgQWxlcnREaWFsb2dUcmlnZ2VyLFxuICBBbGVydERpYWxvZ0NvbnRlbnQsXG4gIEFsZXJ0RGlhbG9nSGVhZGVyLFxuICBBbGVydERpYWxvZ0Zvb3RlcixcbiAgQWxlcnREaWFsb2dUaXRsZSxcbiAgQWxlcnREaWFsb2dEZXNjcmlwdGlvbixcbiAgQWxlcnREaWFsb2dBY3Rpb24sXG4gIEFsZXJ0RGlhbG9nQ2FuY2VsLFxufVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiQWxlcnREaWFsb2dQcmltaXRpdmUiLCJjbiIsImJ1dHRvblZhcmlhbnRzIiwiQWxlcnREaWFsb2ciLCJSb290IiwiQWxlcnREaWFsb2dUcmlnZ2VyIiwiVHJpZ2dlciIsIkFsZXJ0RGlhbG9nUG9ydGFsIiwiUG9ydGFsIiwiQWxlcnREaWFsb2dPdmVybGF5IiwiZm9yd2FyZFJlZiIsInJlZiIsImNsYXNzTmFtZSIsInByb3BzIiwiT3ZlcmxheSIsImRpc3BsYXlOYW1lIiwiQWxlcnREaWFsb2dDb250ZW50IiwiQ29udGVudCIsIkFsZXJ0RGlhbG9nSGVhZGVyIiwiZGl2IiwiQWxlcnREaWFsb2dGb290ZXIiLCJBbGVydERpYWxvZ1RpdGxlIiwiVGl0bGUiLCJBbGVydERpYWxvZ0Rlc2NyaXB0aW9uIiwiRGVzY3JpcHRpb24iLCJBbGVydERpYWxvZ0FjdGlvbiIsIkFjdGlvbiIsIkFsZXJ0RGlhbG9nQ2FuY2VsIiwiQ2FuY2VsIiwidmFyaWFudCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/alert-dialog.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/alert.tsx": /*!*********************************!*\ !*** ./components/ui/alert.tsx ***! \*********************************/ /***/ ((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 */ Alert: () => (/* binding */ Alert),\n/* harmony export */ AlertDescription: () => (/* binding */ AlertDescription),\n/* harmony export */ AlertTitle: () => (/* binding */ AlertTitle)\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 class_variance_authority__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! class-variance-authority */ \"(app-pages-browser)/./node_modules/class-variance-authority/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n\n\n\n\nconst alertVariants = (0,class_variance_authority__WEBPACK_IMPORTED_MODULE_2__.cva)(\"relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground\", {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive: \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\"\n }\n },\n defaultVariants: {\n variant: \"default\"\n }\n});\nconst Alert = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, variant, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: ref,\n role: \"alert\",\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)(alertVariants({\n variant\n }), className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert.tsx\",\n lineNumber: 26,\n columnNumber: 3\n }, undefined);\n});\n_c1 = Alert;\nAlert.displayName = \"Alert\";\nconst AlertTitle = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c2 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h5\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)(\"mb-1 font-medium leading-none tracking-tight\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert.tsx\",\n lineNumber: 39,\n columnNumber: 3\n }, undefined);\n});\n_c3 = AlertTitle;\nAlertTitle.displayName = \"AlertTitle\";\nconst AlertDescription = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c4 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)(\"text-sm [&_p]:leading-relaxed\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert.tsx\",\n lineNumber: 51,\n columnNumber: 3\n }, undefined);\n});\n_c5 = AlertDescription;\nAlertDescription.displayName = \"AlertDescription\";\n\nvar _c, _c1, _c2, _c3, _c4, _c5;\n$RefreshReg$(_c, \"Alert$React.forwardRef\");\n$RefreshReg$(_c1, \"Alert\");\n$RefreshReg$(_c2, \"AlertTitle$React.forwardRef\");\n$RefreshReg$(_c3, \"AlertTitle\");\n$RefreshReg$(_c4, \"AlertDescription$React.forwardRef\");\n$RefreshReg$(_c5, \"AlertDescription\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvYWxlcnQudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUE4QjtBQUNtQztBQUVqQztBQUVoQyxNQUFNRyxnQkFBZ0JGLDZEQUFHQSxDQUN2Qiw2SkFDQTtJQUNFRyxVQUFVO1FBQ1JDLFNBQVM7WUFDUEMsU0FBUztZQUNUQyxhQUNFO1FBQ0o7SUFDRjtJQUNBQyxpQkFBaUI7UUFDZkgsU0FBUztJQUNYO0FBQ0Y7QUFHRixNQUFNSSxzQkFBUVQsNkNBQWdCLE1BRzVCLFFBQW1DVztRQUFsQyxFQUFFQyxTQUFTLEVBQUVQLE9BQU8sRUFBRSxHQUFHUSxPQUFPO3lCQUNqQyw4REFBQ0M7UUFDQ0gsS0FBS0E7UUFDTEksTUFBSztRQUNMSCxXQUFXViw4Q0FBRUEsQ0FBQ0MsY0FBYztZQUFFRTtRQUFRLElBQUlPO1FBQ3pDLEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JKLE1BQU1PLFdBQVcsR0FBRztBQUVwQixNQUFNQywyQkFBYWpCLDZDQUFnQixPQUdqQyxRQUEwQlc7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDSztRQUNDUCxLQUFLQTtRQUNMQyxXQUFXViw4Q0FBRUEsQ0FBQyxnREFBZ0RVO1FBQzdELEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JJLFdBQVdELFdBQVcsR0FBRztBQUV6QixNQUFNRyxpQ0FBbUJuQiw2Q0FBZ0IsT0FHdkMsUUFBMEJXO1FBQXpCLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxPQUFPO3lCQUN4Qiw4REFBQ0M7UUFDQ0gsS0FBS0E7UUFDTEMsV0FBV1YsOENBQUVBLENBQUMsaUNBQWlDVTtRQUM5QyxHQUFHQyxLQUFLOzs7Ozs7OztBQUdiTSxpQkFBaUJILFdBQVcsR0FBRztBQUVlIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2NvbXBvbmVudHMvdWkvYWxlcnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBjdmEsIHR5cGUgVmFyaWFudFByb3BzIH0gZnJvbSBcImNsYXNzLXZhcmlhbmNlLWF1dGhvcml0eVwiXG5cbmltcG9ydCB7IGNuIH0gZnJvbSBcIkAvbGliL3V0aWxzXCJcblxuY29uc3QgYWxlcnRWYXJpYW50cyA9IGN2YShcbiAgXCJyZWxhdGl2ZSB3LWZ1bGwgcm91bmRlZC1sZyBib3JkZXIgcC00IFsmPnN2Z34qXTpwbC03IFsmPnN2ZytkaXZdOnRyYW5zbGF0ZS15LVstM3B4XSBbJj5zdmddOmFic29sdXRlIFsmPnN2Z106bGVmdC00IFsmPnN2Z106dG9wLTQgWyY+c3ZnXTp0ZXh0LWZvcmVncm91bmRcIixcbiAge1xuICAgIHZhcmlhbnRzOiB7XG4gICAgICB2YXJpYW50OiB7XG4gICAgICAgIGRlZmF1bHQ6IFwiYmctYmFja2dyb3VuZCB0ZXh0LWZvcmVncm91bmRcIixcbiAgICAgICAgZGVzdHJ1Y3RpdmU6XG4gICAgICAgICAgXCJib3JkZXItZGVzdHJ1Y3RpdmUvNTAgdGV4dC1kZXN0cnVjdGl2ZSBkYXJrOmJvcmRlci1kZXN0cnVjdGl2ZSBbJj5zdmddOnRleHQtZGVzdHJ1Y3RpdmVcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkZWZhdWx0VmFyaWFudHM6IHtcbiAgICAgIHZhcmlhbnQ6IFwiZGVmYXVsdFwiLFxuICAgIH0sXG4gIH1cbilcblxuY29uc3QgQWxlcnQgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBIVE1MRGl2RWxlbWVudCxcbiAgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+ICYgVmFyaWFudFByb3BzPHR5cGVvZiBhbGVydFZhcmlhbnRzPlxuPigoeyBjbGFzc05hbWUsIHZhcmlhbnQsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8ZGl2XG4gICAgcmVmPXtyZWZ9XG4gICAgcm9sZT1cImFsZXJ0XCJcbiAgICBjbGFzc05hbWU9e2NuKGFsZXJ0VmFyaWFudHMoeyB2YXJpYW50IH0pLCBjbGFzc05hbWUpfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5BbGVydC5kaXNwbGF5TmFtZSA9IFwiQWxlcnRcIlxuXG5jb25zdCBBbGVydFRpdGxlID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgSFRNTFBhcmFncmFwaEVsZW1lbnQsXG4gIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxIZWFkaW5nRWxlbWVudD5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPGg1XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcIm1iLTEgZm9udC1tZWRpdW0gbGVhZGluZy1ub25lIHRyYWNraW5nLXRpZ2h0XCIsIGNsYXNzTmFtZSl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkFsZXJ0VGl0bGUuZGlzcGxheU5hbWUgPSBcIkFsZXJ0VGl0bGVcIlxuXG5jb25zdCBBbGVydERlc2NyaXB0aW9uID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgSFRNTFBhcmFncmFwaEVsZW1lbnQsXG4gIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxQYXJhZ3JhcGhFbGVtZW50PlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8ZGl2XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcInRleHQtc20gWyZfcF06bGVhZGluZy1yZWxheGVkXCIsIGNsYXNzTmFtZSl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkFsZXJ0RGVzY3JpcHRpb24uZGlzcGxheU5hbWUgPSBcIkFsZXJ0RGVzY3JpcHRpb25cIlxuXG5leHBvcnQgeyBBbGVydCwgQWxlcnRUaXRsZSwgQWxlcnREZXNjcmlwdGlvbiB9XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJjdmEiLCJjbiIsImFsZXJ0VmFyaWFudHMiLCJ2YXJpYW50cyIsInZhcmlhbnQiLCJkZWZhdWx0IiwiZGVzdHJ1Y3RpdmUiLCJkZWZhdWx0VmFyaWFudHMiLCJBbGVydCIsImZvcndhcmRSZWYiLCJyZWYiLCJjbGFzc05hbWUiLCJwcm9wcyIsImRpdiIsInJvbGUiLCJkaXNwbGF5TmFtZSIsIkFsZXJ0VGl0bGUiLCJoNSIsIkFsZXJ0RGVzY3JpcHRpb24iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/alert.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/avatar.tsx": /*!**********************************!*\ !*** ./components/ui/avatar.tsx ***! \**********************************/ /***/ ((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 */ Avatar: () => (/* binding */ Avatar),\n/* harmony export */ AvatarFallback: () => (/* binding */ AvatarFallback),\n/* harmony export */ AvatarImage: () => (/* binding */ AvatarImage)\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 _radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-avatar */ \"(app-pages-browser)/./node_modules/@radix-ui/react-avatar/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Avatar,AvatarImage,AvatarFallback auto */ \n\n\n\nconst Avatar = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__.Root, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/avatar.tsx\",\n lineNumber: 12,\n columnNumber: 3\n }, undefined);\n});\n_c1 = Avatar;\nAvatar.displayName = _radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__.Root.displayName;\nconst AvatarImage = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c2 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__.Image, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"aspect-square h-full w-full\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/avatar.tsx\",\n lineNumber: 27,\n columnNumber: 3\n }, undefined);\n});\n_c3 = AvatarImage;\nAvatarImage.displayName = _radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__.Image.displayName;\nconst AvatarFallback = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c4 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__.Fallback, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex h-full w-full items-center justify-center rounded-full bg-muted\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/avatar.tsx\",\n lineNumber: 39,\n columnNumber: 3\n }, undefined);\n});\n_c5 = AvatarFallback;\nAvatarFallback.displayName = _radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__.Fallback.displayName;\n\nvar _c, _c1, _c2, _c3, _c4, _c5;\n$RefreshReg$(_c, \"Avatar$React.forwardRef\");\n$RefreshReg$(_c1, \"Avatar\");\n$RefreshReg$(_c2, \"AvatarImage$React.forwardRef\");\n$RefreshReg$(_c3, \"AvatarImage\");\n$RefreshReg$(_c4, \"AvatarFallback$React.forwardRef\");\n$RefreshReg$(_c5, \"AvatarFallback\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvYXZhdGFyLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFFOEI7QUFDMkI7QUFFekI7QUFFaEMsTUFBTUcsdUJBQVNILDZDQUFnQixNQUc3QixRQUEwQks7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDTix3REFBb0I7UUFDbkJJLEtBQUtBO1FBQ0xDLFdBQVdKLDhDQUFFQSxDQUNYLGlFQUNBSTtRQUVELEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JKLE9BQU9NLFdBQVcsR0FBR1Isd0RBQW9CLENBQUNRLFdBQVc7QUFFckQsTUFBTUMsNEJBQWNWLDZDQUFnQixPQUdsQyxRQUEwQks7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDTix5REFBcUI7UUFDcEJJLEtBQUtBO1FBQ0xDLFdBQVdKLDhDQUFFQSxDQUFDLCtCQUErQkk7UUFDNUMsR0FBR0MsS0FBSzs7Ozs7Ozs7QUFHYkcsWUFBWUQsV0FBVyxHQUFHUix5REFBcUIsQ0FBQ1EsV0FBVztBQUUzRCxNQUFNRywrQkFBaUJaLDZDQUFnQixPQUdyQyxRQUEwQks7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDTiw0REFBd0I7UUFDdkJJLEtBQUtBO1FBQ0xDLFdBQVdKLDhDQUFFQSxDQUNYLHdFQUNBSTtRQUVELEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JLLGVBQWVILFdBQVcsR0FBR1IsNERBQXdCLENBQUNRLFdBQVc7QUFFbkIiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvY29tcG9uZW50cy91aS9hdmF0YXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgKiBhcyBBdmF0YXJQcmltaXRpdmUgZnJvbSBcIkByYWRpeC11aS9yZWFjdC1hdmF0YXJcIlxuXG5pbXBvcnQgeyBjbiB9IGZyb20gXCJAL2xpYi91dGlsc1wiXG5cbmNvbnN0IEF2YXRhciA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIEF2YXRhclByaW1pdGl2ZS5Sb290PixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBBdmF0YXJQcmltaXRpdmUuUm9vdD5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPEF2YXRhclByaW1pdGl2ZS5Sb290XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwicmVsYXRpdmUgZmxleCBoLTEwIHctMTAgc2hyaW5rLTAgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtZnVsbFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuQXZhdGFyLmRpc3BsYXlOYW1lID0gQXZhdGFyUHJpbWl0aXZlLlJvb3QuZGlzcGxheU5hbWVcblxuY29uc3QgQXZhdGFySW1hZ2UgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBBdmF0YXJQcmltaXRpdmUuSW1hZ2U+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEF2YXRhclByaW1pdGl2ZS5JbWFnZT5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPEF2YXRhclByaW1pdGl2ZS5JbWFnZVxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXCJhc3BlY3Qtc3F1YXJlIGgtZnVsbCB3LWZ1bGxcIiwgY2xhc3NOYW1lKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuQXZhdGFySW1hZ2UuZGlzcGxheU5hbWUgPSBBdmF0YXJQcmltaXRpdmUuSW1hZ2UuZGlzcGxheU5hbWVcblxuY29uc3QgQXZhdGFyRmFsbGJhY2sgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBBdmF0YXJQcmltaXRpdmUuRmFsbGJhY2s+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEF2YXRhclByaW1pdGl2ZS5GYWxsYmFjaz5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPEF2YXRhclByaW1pdGl2ZS5GYWxsYmFja1xuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcImZsZXggaC1mdWxsIHctZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1mdWxsIGJnLW11dGVkXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5BdmF0YXJGYWxsYmFjay5kaXNwbGF5TmFtZSA9IEF2YXRhclByaW1pdGl2ZS5GYWxsYmFjay5kaXNwbGF5TmFtZVxuXG5leHBvcnQgeyBBdmF0YXIsIEF2YXRhckltYWdlLCBBdmF0YXJGYWxsYmFjayB9XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJBdmF0YXJQcmltaXRpdmUiLCJjbiIsIkF2YXRhciIsImZvcndhcmRSZWYiLCJyZWYiLCJjbGFzc05hbWUiLCJwcm9wcyIsIlJvb3QiLCJkaXNwbGF5TmFtZSIsIkF2YXRhckltYWdlIiwiSW1hZ2UiLCJBdmF0YXJGYWxsYmFjayIsIkZhbGxiYWNrIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/avatar.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/button.tsx": /*!**********************************!*\ !*** ./components/ui/button.tsx ***! \**********************************/ /***/ ((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 */ Button: () => (/* binding */ Button),\n/* harmony export */ buttonVariants: () => (/* binding */ buttonVariants)\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 _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var class_variance_authority__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! class-variance-authority */ \"(app-pages-browser)/./node_modules/class-variance-authority/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n\n\n\n\n\nconst buttonVariants = (0,class_variance_authority__WEBPACK_IMPORTED_MODULE_2__.cva)(\"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\", {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\"\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"h-10 w-10\"\n }\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\"\n }\n});\nconst Button = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, variant, size, asChild = false, ...props } = param;\n const Comp = asChild ? _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__.Slot : \"button\";\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Comp, {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)(buttonVariants({\n variant,\n size,\n className\n })),\n ref: ref,\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/button.tsx\",\n lineNumber: 46,\n columnNumber: 7\n }, undefined);\n});\n_c1 = Button;\nButton.displayName = \"Button\";\n\nvar _c, _c1;\n$RefreshReg$(_c, \"Button$React.forwardRef\");\n$RefreshReg$(_c1, \"Button\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvYnV0dG9uLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBOEI7QUFDYTtBQUNzQjtBQUVqQztBQUVoQyxNQUFNSSxpQkFBaUJGLDZEQUFHQSxDQUN4Qiw0VkFDQTtJQUNFRyxVQUFVO1FBQ1JDLFNBQVM7WUFDUEMsU0FBUztZQUNUQyxhQUNFO1lBQ0ZDLFNBQ0U7WUFDRkMsV0FDRTtZQUNGQyxPQUFPO1lBQ1BDLE1BQU07UUFDUjtRQUNBQyxNQUFNO1lBQ0pOLFNBQVM7WUFDVE8sSUFBSTtZQUNKQyxJQUFJO1lBQ0pDLE1BQU07UUFDUjtJQUNGO0lBQ0FDLGlCQUFpQjtRQUNmWCxTQUFTO1FBQ1RPLE1BQU07SUFDUjtBQUNGO0FBU0YsTUFBTUssdUJBQVNsQiw2Q0FBZ0IsTUFDN0IsUUFBMERvQjtRQUF6RCxFQUFFQyxTQUFTLEVBQUVmLE9BQU8sRUFBRU8sSUFBSSxFQUFFUyxVQUFVLEtBQUssRUFBRSxHQUFHQyxPQUFPO0lBQ3RELE1BQU1DLE9BQU9GLFVBQVVyQixzREFBSUEsR0FBRztJQUM5QixxQkFDRSw4REFBQ3VCO1FBQ0NILFdBQVdsQiw4Q0FBRUEsQ0FBQ0MsZUFBZTtZQUFFRTtZQUFTTztZQUFNUTtRQUFVO1FBQ3hERCxLQUFLQTtRQUNKLEdBQUdHLEtBQUs7Ozs7OztBQUdmOztBQUVGTCxPQUFPTyxXQUFXLEdBQUc7QUFFWSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9jb21wb25lbnRzL3VpL2J1dHRvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IFNsb3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXNsb3RcIlxuaW1wb3J0IHsgY3ZhLCB0eXBlIFZhcmlhbnRQcm9wcyB9IGZyb20gXCJjbGFzcy12YXJpYW5jZS1hdXRob3JpdHlcIlxuXG5pbXBvcnQgeyBjbiB9IGZyb20gXCJAL2xpYi91dGlsc1wiXG5cbmNvbnN0IGJ1dHRvblZhcmlhbnRzID0gY3ZhKFxuICBcImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtMiB3aGl0ZXNwYWNlLW5vd3JhcCByb3VuZGVkLW1kIHRleHQtc20gZm9udC1tZWRpdW0gcmluZy1vZmZzZXQtYmFja2dyb3VuZCB0cmFuc2l0aW9uLWNvbG9ycyBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZyBmb2N1cy12aXNpYmxlOnJpbmctb2Zmc2V0LTIgZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBkaXNhYmxlZDpvcGFjaXR5LTUwIFsmX3N2Z106cG9pbnRlci1ldmVudHMtbm9uZSBbJl9zdmddOnNpemUtNCBbJl9zdmddOnNocmluay0wXCIsXG4gIHtcbiAgICB2YXJpYW50czoge1xuICAgICAgdmFyaWFudDoge1xuICAgICAgICBkZWZhdWx0OiBcImJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWZvcmVncm91bmQgaG92ZXI6YmctcHJpbWFyeS85MFwiLFxuICAgICAgICBkZXN0cnVjdGl2ZTpcbiAgICAgICAgICBcImJnLWRlc3RydWN0aXZlIHRleHQtZGVzdHJ1Y3RpdmUtZm9yZWdyb3VuZCBob3ZlcjpiZy1kZXN0cnVjdGl2ZS85MFwiLFxuICAgICAgICBvdXRsaW5lOlxuICAgICAgICAgIFwiYm9yZGVyIGJvcmRlci1pbnB1dCBiZy1iYWNrZ3JvdW5kIGhvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kXCIsXG4gICAgICAgIHNlY29uZGFyeTpcbiAgICAgICAgICBcImJnLXNlY29uZGFyeSB0ZXh0LXNlY29uZGFyeS1mb3JlZ3JvdW5kIGhvdmVyOmJnLXNlY29uZGFyeS84MFwiLFxuICAgICAgICBnaG9zdDogXCJob3ZlcjpiZy1hY2NlbnQgaG92ZXI6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZFwiLFxuICAgICAgICBsaW5rOiBcInRleHQtcHJpbWFyeSB1bmRlcmxpbmUtb2Zmc2V0LTQgaG92ZXI6dW5kZXJsaW5lXCIsXG4gICAgICB9LFxuICAgICAgc2l6ZToge1xuICAgICAgICBkZWZhdWx0OiBcImgtMTAgcHgtNCBweS0yXCIsXG4gICAgICAgIHNtOiBcImgtOSByb3VuZGVkLW1kIHB4LTNcIixcbiAgICAgICAgbGc6IFwiaC0xMSByb3VuZGVkLW1kIHB4LThcIixcbiAgICAgICAgaWNvbjogXCJoLTEwIHctMTBcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkZWZhdWx0VmFyaWFudHM6IHtcbiAgICAgIHZhcmlhbnQ6IFwiZGVmYXVsdFwiLFxuICAgICAgc2l6ZTogXCJkZWZhdWx0XCIsXG4gICAgfSxcbiAgfVxuKVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1dHRvblByb3BzXG4gIGV4dGVuZHMgUmVhY3QuQnV0dG9uSFRNTEF0dHJpYnV0ZXM8SFRNTEJ1dHRvbkVsZW1lbnQ+LFxuICAgIFZhcmlhbnRQcm9wczx0eXBlb2YgYnV0dG9uVmFyaWFudHM+IHtcbiAgYXNDaGlsZD86IGJvb2xlYW5cbn1cblxuY29uc3QgQnV0dG9uID0gUmVhY3QuZm9yd2FyZFJlZjxIVE1MQnV0dG9uRWxlbWVudCwgQnV0dG9uUHJvcHM+KFxuICAoeyBjbGFzc05hbWUsIHZhcmlhbnQsIHNpemUsIGFzQ2hpbGQgPSBmYWxzZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiB7XG4gICAgY29uc3QgQ29tcCA9IGFzQ2hpbGQgPyBTbG90IDogXCJidXR0b25cIlxuICAgIHJldHVybiAoXG4gICAgICA8Q29tcFxuICAgICAgICBjbGFzc05hbWU9e2NuKGJ1dHRvblZhcmlhbnRzKHsgdmFyaWFudCwgc2l6ZSwgY2xhc3NOYW1lIH0pKX1cbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgIC8+XG4gICAgKVxuICB9XG4pXG5CdXR0b24uZGlzcGxheU5hbWUgPSBcIkJ1dHRvblwiXG5cbmV4cG9ydCB7IEJ1dHRvbiwgYnV0dG9uVmFyaWFudHMgfVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiU2xvdCIsImN2YSIsImNuIiwiYnV0dG9uVmFyaWFudHMiLCJ2YXJpYW50cyIsInZhcmlhbnQiLCJkZWZhdWx0IiwiZGVzdHJ1Y3RpdmUiLCJvdXRsaW5lIiwic2Vjb25kYXJ5IiwiZ2hvc3QiLCJsaW5rIiwic2l6ZSIsInNtIiwibGciLCJpY29uIiwiZGVmYXVsdFZhcmlhbnRzIiwiQnV0dG9uIiwiZm9yd2FyZFJlZiIsInJlZiIsImNsYXNzTmFtZSIsImFzQ2hpbGQiLCJwcm9wcyIsIkNvbXAiLCJkaXNwbGF5TmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/button.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/checkbox.tsx": /*!************************************!*\ !*** ./components/ui/checkbox.tsx ***! \************************************/ /***/ ((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 */ Checkbox: () => (/* binding */ Checkbox)\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 _radix_ui_react_checkbox__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-checkbox */ \"(app-pages-browser)/./node_modules/@radix-ui/react-checkbox/dist/index.mjs\");\n/* harmony import */ var _barrel_optimize_names_Check_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Check!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check.js\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Checkbox auto */ \n\n\n\n\nconst Checkbox = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_checkbox__WEBPACK_IMPORTED_MODULE_3__.Root, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\", className),\n ...props,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_checkbox__WEBPACK_IMPORTED_MODULE_3__.Indicator, {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex items-center justify-center text-current\"),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Check_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/checkbox.tsx\",\n lineNumber: 24,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/checkbox.tsx\",\n lineNumber: 21,\n columnNumber: 5\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/checkbox.tsx\",\n lineNumber: 13,\n columnNumber: 3\n }, undefined);\n});\n_c1 = Checkbox;\nCheckbox.displayName = _radix_ui_react_checkbox__WEBPACK_IMPORTED_MODULE_3__.Root.displayName;\n\nvar _c, _c1;\n$RefreshReg$(_c, \"Checkbox$React.forwardRef\");\n$RefreshReg$(_c1, \"Checkbox\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvY2hlY2tib3gudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBRThCO0FBQytCO0FBQ3pCO0FBRUo7QUFFaEMsTUFBTUkseUJBQVdKLDZDQUFnQixNQUcvQixRQUEwQk07UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDUCwwREFBc0I7UUFDckJLLEtBQUtBO1FBQ0xDLFdBQVdKLDhDQUFFQSxDQUNYLGtUQUNBSTtRQUVELEdBQUdDLEtBQUs7a0JBRVQsNEVBQUNQLCtEQUEyQjtZQUMxQk0sV0FBV0osOENBQUVBLENBQUM7c0JBRWQsNEVBQUNELGlGQUFLQTtnQkFBQ0ssV0FBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSXZCSCxTQUFTTyxXQUFXLEdBQUdWLDBEQUFzQixDQUFDVSxXQUFXO0FBRXRDIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2NvbXBvbmVudHMvdWkvY2hlY2tib3gudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgKiBhcyBDaGVja2JveFByaW1pdGl2ZSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNoZWNrYm94XCJcbmltcG9ydCB7IENoZWNrIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXG5cbmltcG9ydCB7IGNuIH0gZnJvbSBcIkAvbGliL3V0aWxzXCJcblxuY29uc3QgQ2hlY2tib3ggPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBDaGVja2JveFByaW1pdGl2ZS5Sb290PixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBDaGVja2JveFByaW1pdGl2ZS5Sb290PlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8Q2hlY2tib3hQcmltaXRpdmUuUm9vdFxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcInBlZXIgaC00IHctNCBzaHJpbmstMCByb3VuZGVkLXNtIGJvcmRlciBib3JkZXItcHJpbWFyeSByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtMiBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgZGlzYWJsZWQ6b3BhY2l0eS01MCBkYXRhLVtzdGF0ZT1jaGVja2VkXTpiZy1wcmltYXJ5IGRhdGEtW3N0YXRlPWNoZWNrZWRdOnRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgPlxuICAgIDxDaGVja2JveFByaW1pdGl2ZS5JbmRpY2F0b3JcbiAgICAgIGNsYXNzTmFtZT17Y24oXCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0ZXh0LWN1cnJlbnRcIil9XG4gICAgPlxuICAgICAgPENoZWNrIGNsYXNzTmFtZT1cImgtNCB3LTRcIiAvPlxuICAgIDwvQ2hlY2tib3hQcmltaXRpdmUuSW5kaWNhdG9yPlxuICA8L0NoZWNrYm94UHJpbWl0aXZlLlJvb3Q+XG4pKVxuQ2hlY2tib3guZGlzcGxheU5hbWUgPSBDaGVja2JveFByaW1pdGl2ZS5Sb290LmRpc3BsYXlOYW1lXG5cbmV4cG9ydCB7IENoZWNrYm94IH1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkNoZWNrYm94UHJpbWl0aXZlIiwiQ2hlY2siLCJjbiIsIkNoZWNrYm94IiwiZm9yd2FyZFJlZiIsInJlZiIsImNsYXNzTmFtZSIsInByb3BzIiwiUm9vdCIsIkluZGljYXRvciIsImRpc3BsYXlOYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/checkbox.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/dialog.tsx": /*!**********************************!*\ !*** ./components/ui/dialog.tsx ***! \**********************************/ /***/ ((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 */ Dialog: () => (/* binding */ Dialog),\n/* harmony export */ DialogClose: () => (/* binding */ DialogClose),\n/* harmony export */ DialogContent: () => (/* binding */ DialogContent),\n/* harmony export */ DialogDescription: () => (/* binding */ DialogDescription),\n/* harmony export */ DialogFooter: () => (/* binding */ DialogFooter),\n/* harmony export */ DialogHeader: () => (/* binding */ DialogHeader),\n/* harmony export */ DialogOverlay: () => (/* binding */ DialogOverlay),\n/* harmony export */ DialogPortal: () => (/* binding */ DialogPortal),\n/* harmony export */ DialogTitle: () => (/* binding */ DialogTitle),\n/* harmony export */ DialogTrigger: () => (/* binding */ DialogTrigger)\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 _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-dialog */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dialog/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Dialog,DialogPortal,DialogOverlay,DialogClose,DialogTrigger,DialogContent,DialogHeader,DialogFooter,DialogTitle,DialogDescription auto */ \n\n\n\nconst Dialog = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Root;\nconst DialogTrigger = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Trigger;\nconst DialogPortal = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Portal;\nconst DialogClose = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Close;\nconst DialogOverlay = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Overlay, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dialog.tsx\",\n lineNumber: 21,\n columnNumber: 3\n }, undefined);\n});\n_c = DialogOverlay;\nDialogOverlay.displayName = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Overlay.displayName;\nconst DialogContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c1 = (param, ref)=>{\n let { className, children, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(DialogPortal, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(DialogOverlay, {}, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dialog.tsx\",\n lineNumber: 37,\n columnNumber: 5\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Content, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-white p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\", className),\n ...props,\n children: children\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dialog.tsx\",\n lineNumber: 38,\n columnNumber: 5\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dialog.tsx\",\n lineNumber: 36,\n columnNumber: 3\n }, undefined);\n});\n_c2 = DialogContent;\nDialogContent.displayName = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Content.displayName;\nconst DialogHeader = (param)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex flex-col space-y-1.5 text-center sm:text-left\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dialog.tsx\",\n lineNumber: 56,\n columnNumber: 3\n }, undefined);\n};\n_c3 = DialogHeader;\nDialogHeader.displayName = \"DialogHeader\";\nconst DialogFooter = (param)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dialog.tsx\",\n lineNumber: 70,\n columnNumber: 3\n }, undefined);\n};\n_c4 = DialogFooter;\nDialogFooter.displayName = \"DialogFooter\";\nconst DialogTitle = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c5 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Title, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"text-lg font-semibold leading-none tracking-tight\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dialog.tsx\",\n lineNumber: 84,\n columnNumber: 3\n }, undefined);\n});\n_c6 = DialogTitle;\nDialogTitle.displayName = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Title.displayName;\nconst DialogDescription = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c7 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Description, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"text-sm text-muted-foreground\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dialog.tsx\",\n lineNumber: 99,\n columnNumber: 3\n }, undefined);\n});\n_c8 = DialogDescription;\nDialogDescription.displayName = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Description.displayName;\n\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8;\n$RefreshReg$(_c, \"DialogOverlay\");\n$RefreshReg$(_c1, \"DialogContent$React.forwardRef\");\n$RefreshReg$(_c2, \"DialogContent\");\n$RefreshReg$(_c3, \"DialogHeader\");\n$RefreshReg$(_c4, \"DialogFooter\");\n$RefreshReg$(_c5, \"DialogTitle$React.forwardRef\");\n$RefreshReg$(_c6, \"DialogTitle\");\n$RefreshReg$(_c7, \"DialogDescription$React.forwardRef\");\n$RefreshReg$(_c8, \"DialogDescription\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvZGlhbG9nLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRThCO0FBQzJCO0FBR3pCO0FBRWhDLE1BQU1HLFNBQVNGLHdEQUFvQjtBQUVuQyxNQUFNSSxnQkFBZ0JKLDJEQUF1QjtBQUU3QyxNQUFNTSxlQUFlTiwwREFBc0I7QUFFM0MsTUFBTVEsY0FBY1IseURBQXFCO0FBRXpDLE1BQU1VLDhCQUFnQlgsNkNBQWdCLENBR3BDLFFBQTBCYTtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNkLDJEQUF1QjtRQUN0QlksS0FBS0E7UUFDTEMsV0FBV1osOENBQUVBLENBQ1gsMkpBQ0FZO1FBRUQsR0FBR0MsS0FBSzs7Ozs7OztLQVZQSjtBQWFOQSxjQUFjTSxXQUFXLEdBQUdoQiwyREFBdUIsQ0FBQ2dCLFdBQVc7QUFFL0QsTUFBTUMsOEJBQWdCbEIsNkNBQWdCLE9BR3BDLFFBQW9DYTtRQUFuQyxFQUFFQyxTQUFTLEVBQUVLLFFBQVEsRUFBRSxHQUFHSixPQUFPO3lCQUNsQyw4REFBQ1I7OzBCQUNDLDhEQUFDSTs7Ozs7MEJBQ0QsOERBQUNWLDJEQUF1QjtnQkFDdEJZLEtBQUtBO2dCQUNMQyxXQUFXWiw4Q0FBRUEsQ0FDWCwwZkFDQVk7Z0JBRUQsR0FBR0MsS0FBSzswQkFFUkk7Ozs7Ozs7Ozs7Ozs7O0FBSVBELGNBQWNELFdBQVcsR0FBR2hCLDJEQUF1QixDQUFDZ0IsV0FBVztBQUUvRCxNQUFNSSxlQUFlO1FBQUMsRUFDcEJQLFNBQVMsRUFDVCxHQUFHQyxPQUNrQzt5QkFDckMsOERBQUNPO1FBQ0NSLFdBQVdaLDhDQUFFQSxDQUNYLHNEQUNBWTtRQUVELEdBQUdDLEtBQUs7Ozs7Ozs7TUFUUE07QUFZTkEsYUFBYUosV0FBVyxHQUFHO0FBRTNCLE1BQU1NLGVBQWU7UUFBQyxFQUNwQlQsU0FBUyxFQUNULEdBQUdDLE9BQ2tDO3lCQUNyQyw4REFBQ087UUFDQ1IsV0FBV1osOENBQUVBLENBQ1gsaUVBQ0FZO1FBRUQsR0FBR0MsS0FBSzs7Ozs7OztNQVRQUTtBQVlOQSxhQUFhTixXQUFXLEdBQUc7QUFFM0IsTUFBTU8sNEJBQWN4Qiw2Q0FBZ0IsT0FHbEMsUUFBMEJhO1FBQXpCLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxPQUFPO3lCQUN4Qiw4REFBQ2QseURBQXFCO1FBQ3BCWSxLQUFLQTtRQUNMQyxXQUFXWiw4Q0FBRUEsQ0FDWCxxREFDQVk7UUFFRCxHQUFHQyxLQUFLOzs7Ozs7OztBQUdiUyxZQUFZUCxXQUFXLEdBQUdoQix5REFBcUIsQ0FBQ2dCLFdBQVc7QUFFM0QsTUFBTVMsa0NBQW9CMUIsNkNBQWdCLE9BR3hDLFFBQTBCYTtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNkLCtEQUEyQjtRQUMxQlksS0FBS0E7UUFDTEMsV0FBV1osOENBQUVBLENBQUMsaUNBQWlDWTtRQUM5QyxHQUFHQyxLQUFLOzs7Ozs7OztBQUdiVyxrQkFBa0JULFdBQVcsR0FBR2hCLCtEQUEyQixDQUFDZ0IsV0FBVztBQWF0RSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9jb21wb25lbnRzL3VpL2RpYWxvZy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCAqIGFzIERpYWxvZ1ByaW1pdGl2ZSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWRpYWxvZ1wiXG5pbXBvcnQgeyBYIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXG5cbmltcG9ydCB7IGNuIH0gZnJvbSBcIkAvbGliL3V0aWxzXCJcblxuY29uc3QgRGlhbG9nID0gRGlhbG9nUHJpbWl0aXZlLlJvb3RcblxuY29uc3QgRGlhbG9nVHJpZ2dlciA9IERpYWxvZ1ByaW1pdGl2ZS5UcmlnZ2VyXG5cbmNvbnN0IERpYWxvZ1BvcnRhbCA9IERpYWxvZ1ByaW1pdGl2ZS5Qb3J0YWxcblxuY29uc3QgRGlhbG9nQ2xvc2UgPSBEaWFsb2dQcmltaXRpdmUuQ2xvc2VcblxuY29uc3QgRGlhbG9nT3ZlcmxheSA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5PdmVybGF5PixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuT3ZlcmxheT5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPERpYWxvZ1ByaW1pdGl2ZS5PdmVybGF5XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwiZml4ZWQgaW5zZXQtMCB6LTUwIGJnLWJsYWNrLzgwICBkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluIGRhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpmYWRlLW91dC0wIGRhdGEtW3N0YXRlPW9wZW5dOmZhZGUtaW4tMFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuRGlhbG9nT3ZlcmxheS5kaXNwbGF5TmFtZSA9IERpYWxvZ1ByaW1pdGl2ZS5PdmVybGF5LmRpc3BsYXlOYW1lXG5cbmNvbnN0IERpYWxvZ0NvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuQ29udGVudD4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLkNvbnRlbnQ+XG4+KCh7IGNsYXNzTmFtZSwgY2hpbGRyZW4sIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8RGlhbG9nUG9ydGFsPlxuICAgIDxEaWFsb2dPdmVybGF5IC8+XG4gICAgPERpYWxvZ1ByaW1pdGl2ZS5Db250ZW50XG4gICAgICByZWY9e3JlZn1cbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgIFwiZml4ZWQgbGVmdC1bNTAlXSB0b3AtWzUwJV0gei01MCBncmlkIHctZnVsbCBtYXgtdy1sZyB0cmFuc2xhdGUteC1bLTUwJV0gdHJhbnNsYXRlLXktWy01MCVdIGdhcC00IGJvcmRlciBiZy13aGl0ZSBwLTYgc2hhZG93LWxnIGR1cmF0aW9uLTIwMCBkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluIGRhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpmYWRlLW91dC0wIGRhdGEtW3N0YXRlPW9wZW5dOmZhZGUtaW4tMCBkYXRhLVtzdGF0ZT1jbG9zZWRdOnpvb20tb3V0LTk1IGRhdGEtW3N0YXRlPW9wZW5dOnpvb20taW4tOTUgZGF0YS1bc3RhdGU9Y2xvc2VkXTpzbGlkZS1vdXQtdG8tbGVmdC0xLzIgZGF0YS1bc3RhdGU9Y2xvc2VkXTpzbGlkZS1vdXQtdG8tdG9wLVs0OCVdIGRhdGEtW3N0YXRlPW9wZW5dOnNsaWRlLWluLWZyb20tbGVmdC0xLzIgZGF0YS1bc3RhdGU9b3Blbl06c2xpZGUtaW4tZnJvbS10b3AtWzQ4JV0gc206cm91bmRlZC1sZ1wiLFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvRGlhbG9nUHJpbWl0aXZlLkNvbnRlbnQ+XG4gIDwvRGlhbG9nUG9ydGFsPlxuKSlcbkRpYWxvZ0NvbnRlbnQuZGlzcGxheU5hbWUgPSBEaWFsb2dQcmltaXRpdmUuQ29udGVudC5kaXNwbGF5TmFtZVxuXG5jb25zdCBEaWFsb2dIZWFkZXIgPSAoe1xuICBjbGFzc05hbWUsXG4gIC4uLnByb3BzXG59OiBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4pID0+IChcbiAgPGRpdlxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcImZsZXggZmxleC1jb2wgc3BhY2UteS0xLjUgdGV4dC1jZW50ZXIgc206dGV4dC1sZWZ0XCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbilcbkRpYWxvZ0hlYWRlci5kaXNwbGF5TmFtZSA9IFwiRGlhbG9nSGVhZGVyXCJcblxuY29uc3QgRGlhbG9nRm9vdGVyID0gKHtcbiAgY2xhc3NOYW1lLFxuICAuLi5wcm9wc1xufTogUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+KSA9PiAoXG4gIDxkaXZcbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgXCJmbGV4IGZsZXgtY29sLXJldmVyc2Ugc206ZmxleC1yb3cgc206anVzdGlmeS1lbmQgc206c3BhY2UteC0yXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbilcbkRpYWxvZ0Zvb3Rlci5kaXNwbGF5TmFtZSA9IFwiRGlhbG9nRm9vdGVyXCJcblxuY29uc3QgRGlhbG9nVGl0bGUgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuVGl0bGU+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5UaXRsZT5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPERpYWxvZ1ByaW1pdGl2ZS5UaXRsZVxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcInRleHQtbGcgZm9udC1zZW1pYm9sZCBsZWFkaW5nLW5vbmUgdHJhY2tpbmctdGlnaHRcIixcbiAgICAgIGNsYXNzTmFtZVxuICAgICl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkRpYWxvZ1RpdGxlLmRpc3BsYXlOYW1lID0gRGlhbG9nUHJpbWl0aXZlLlRpdGxlLmRpc3BsYXlOYW1lXG5cbmNvbnN0IERpYWxvZ0Rlc2NyaXB0aW9uID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLkRlc2NyaXB0aW9uPixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuRGVzY3JpcHRpb24+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxEaWFsb2dQcmltaXRpdmUuRGVzY3JpcHRpb25cbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFwidGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIiwgY2xhc3NOYW1lKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuRGlhbG9nRGVzY3JpcHRpb24uZGlzcGxheU5hbWUgPSBEaWFsb2dQcmltaXRpdmUuRGVzY3JpcHRpb24uZGlzcGxheU5hbWVcblxuZXhwb3J0IHtcbiAgRGlhbG9nLFxuICBEaWFsb2dQb3J0YWwsXG4gIERpYWxvZ092ZXJsYXksXG4gIERpYWxvZ0Nsb3NlLFxuICBEaWFsb2dUcmlnZ2VyLFxuICBEaWFsb2dDb250ZW50LFxuICBEaWFsb2dIZWFkZXIsXG4gIERpYWxvZ0Zvb3RlcixcbiAgRGlhbG9nVGl0bGUsXG4gIERpYWxvZ0Rlc2NyaXB0aW9uLFxufVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiRGlhbG9nUHJpbWl0aXZlIiwiY24iLCJEaWFsb2ciLCJSb290IiwiRGlhbG9nVHJpZ2dlciIsIlRyaWdnZXIiLCJEaWFsb2dQb3J0YWwiLCJQb3J0YWwiLCJEaWFsb2dDbG9zZSIsIkNsb3NlIiwiRGlhbG9nT3ZlcmxheSIsImZvcndhcmRSZWYiLCJyZWYiLCJjbGFzc05hbWUiLCJwcm9wcyIsIk92ZXJsYXkiLCJkaXNwbGF5TmFtZSIsIkRpYWxvZ0NvbnRlbnQiLCJjaGlsZHJlbiIsIkNvbnRlbnQiLCJEaWFsb2dIZWFkZXIiLCJkaXYiLCJEaWFsb2dGb290ZXIiLCJEaWFsb2dUaXRsZSIsIlRpdGxlIiwiRGlhbG9nRGVzY3JpcHRpb24iLCJEZXNjcmlwdGlvbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/dialog.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/dropdown-menu.tsx": /*!*****************************************!*\ !*** ./components/ui/dropdown-menu.tsx ***! \*****************************************/ /***/ ((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 */ DropdownMenu: () => (/* binding */ DropdownMenu),\n/* harmony export */ DropdownMenuCheckboxItem: () => (/* binding */ DropdownMenuCheckboxItem),\n/* harmony export */ DropdownMenuContent: () => (/* binding */ DropdownMenuContent),\n/* harmony export */ DropdownMenuGroup: () => (/* binding */ DropdownMenuGroup),\n/* harmony export */ DropdownMenuItem: () => (/* binding */ DropdownMenuItem),\n/* harmony export */ DropdownMenuLabel: () => (/* binding */ DropdownMenuLabel),\n/* harmony export */ DropdownMenuPortal: () => (/* binding */ DropdownMenuPortal),\n/* harmony export */ DropdownMenuRadioGroup: () => (/* binding */ DropdownMenuRadioGroup),\n/* harmony export */ DropdownMenuRadioItem: () => (/* binding */ DropdownMenuRadioItem),\n/* harmony export */ DropdownMenuSeparator: () => (/* binding */ DropdownMenuSeparator),\n/* harmony export */ DropdownMenuShortcut: () => (/* binding */ DropdownMenuShortcut),\n/* harmony export */ DropdownMenuSub: () => (/* binding */ DropdownMenuSub),\n/* harmony export */ DropdownMenuSubContent: () => (/* binding */ DropdownMenuSubContent),\n/* harmony export */ DropdownMenuSubTrigger: () => (/* binding */ DropdownMenuSubTrigger),\n/* harmony export */ DropdownMenuTrigger: () => (/* binding */ DropdownMenuTrigger)\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 _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-dropdown-menu */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs\");\n/* harmony import */ var _barrel_optimize_names_Check_ChevronRight_Circle_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Check,ChevronRight,Circle!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-right.js\");\n/* harmony import */ var _barrel_optimize_names_Check_ChevronRight_Circle_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=Check,ChevronRight,Circle!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check.js\");\n/* harmony import */ var _barrel_optimize_names_Check_ChevronRight_Circle_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Check,ChevronRight,Circle!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle.js\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ DropdownMenu,DropdownMenuTrigger,DropdownMenuContent,DropdownMenuItem,DropdownMenuCheckboxItem,DropdownMenuRadioItem,DropdownMenuLabel,DropdownMenuSeparator,DropdownMenuShortcut,DropdownMenuGroup,DropdownMenuPortal,DropdownMenuSub,DropdownMenuSubContent,DropdownMenuSubTrigger,DropdownMenuRadioGroup auto */ \n\n\n\n\nconst DropdownMenu = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Root;\nconst DropdownMenuTrigger = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Trigger;\nconst DropdownMenuGroup = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Group;\nconst DropdownMenuPortal = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Portal;\nconst DropdownMenuSub = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Sub;\nconst DropdownMenuRadioGroup = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.RadioGroup;\nconst DropdownMenuSubTrigger = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, inset, children, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.SubTrigger, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\", inset && \"pl-8\", className),\n ...props,\n children: [\n children,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Check_ChevronRight_Circle_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"ml-auto\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 37,\n columnNumber: 5\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 27,\n columnNumber: 3\n }, undefined);\n});\n_c1 = DropdownMenuSubTrigger;\nDropdownMenuSubTrigger.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.SubTrigger.displayName;\nconst DropdownMenuSubContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c2 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.SubContent, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 47,\n columnNumber: 3\n }, undefined);\n});\n_c3 = DropdownMenuSubContent;\nDropdownMenuSubContent.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.SubContent.displayName;\nconst DropdownMenuContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c4 = (param, ref)=>{\n let { className, sideOffset = 4, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Portal, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Content, {\n ref: ref,\n sideOffset: sideOffset,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 64,\n columnNumber: 5\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 63,\n columnNumber: 3\n }, undefined);\n});\n_c5 = DropdownMenuContent;\nDropdownMenuContent.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Content.displayName;\nconst DropdownMenuItem = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c6 = (param, ref)=>{\n let { className, inset, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Item, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\", inset && \"pl-8\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 83,\n columnNumber: 3\n }, undefined);\n});\n_c7 = DropdownMenuItem;\nDropdownMenuItem.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Item.displayName;\nconst DropdownMenuCheckboxItem = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c8 = (param, ref)=>{\n let { className, children, checked, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.CheckboxItem, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\", className),\n checked: checked,\n ...props,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.ItemIndicator, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Check_ChevronRight_Circle_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 110,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 109,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 108,\n columnNumber: 5\n }, undefined),\n children\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 99,\n columnNumber: 3\n }, undefined);\n});\n_c9 = DropdownMenuCheckboxItem;\nDropdownMenuCheckboxItem.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.CheckboxItem.displayName;\nconst DropdownMenuRadioItem = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c10 = (param, ref)=>{\n let { className, children, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.RadioItem, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\", className),\n ...props,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.ItemIndicator, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Check_ChevronRight_Circle_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-2 w-2 fill-current\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 133,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 132,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 131,\n columnNumber: 5\n }, undefined),\n children\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 123,\n columnNumber: 3\n }, undefined);\n});\n_c11 = DropdownMenuRadioItem;\nDropdownMenuRadioItem.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.RadioItem.displayName;\nconst DropdownMenuLabel = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c12 = (param, ref)=>{\n let { className, inset, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Label, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"px-2 py-1.5 text-sm font-semibold\", inset && \"pl-8\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 147,\n columnNumber: 3\n }, undefined);\n});\n_c13 = DropdownMenuLabel;\nDropdownMenuLabel.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Label.displayName;\nconst DropdownMenuSeparator = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c14 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Separator, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"-mx-1 my-1 h-px bg-muted\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 163,\n columnNumber: 3\n }, undefined);\n});\n_c15 = DropdownMenuSeparator;\nDropdownMenuSeparator.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Separator.displayName;\nconst DropdownMenuShortcut = (param)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"ml-auto text-xs tracking-widest opacity-60\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 176,\n columnNumber: 5\n }, undefined);\n};\n_c16 = DropdownMenuShortcut;\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13, _c14, _c15, _c16;\n$RefreshReg$(_c, \"DropdownMenuSubTrigger$React.forwardRef\");\n$RefreshReg$(_c1, \"DropdownMenuSubTrigger\");\n$RefreshReg$(_c2, \"DropdownMenuSubContent$React.forwardRef\");\n$RefreshReg$(_c3, \"DropdownMenuSubContent\");\n$RefreshReg$(_c4, \"DropdownMenuContent$React.forwardRef\");\n$RefreshReg$(_c5, \"DropdownMenuContent\");\n$RefreshReg$(_c6, \"DropdownMenuItem$React.forwardRef\");\n$RefreshReg$(_c7, \"DropdownMenuItem\");\n$RefreshReg$(_c8, \"DropdownMenuCheckboxItem$React.forwardRef\");\n$RefreshReg$(_c9, \"DropdownMenuCheckboxItem\");\n$RefreshReg$(_c10, \"DropdownMenuRadioItem$React.forwardRef\");\n$RefreshReg$(_c11, \"DropdownMenuRadioItem\");\n$RefreshReg$(_c12, \"DropdownMenuLabel$React.forwardRef\");\n$RefreshReg$(_c13, \"DropdownMenuLabel\");\n$RefreshReg$(_c14, \"DropdownMenuSeparator$React.forwardRef\");\n$RefreshReg$(_c15, \"DropdownMenuSeparator\");\n$RefreshReg$(_c16, \"DropdownMenuShortcut\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvZHJvcGRvd24tbWVudS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRStCO0FBQ3dDO0FBQ1o7QUFFMUI7QUFFakMsTUFBTU0sZUFBZUwsK0RBQTBCO0FBRS9DLE1BQU1PLHNCQUFzQlAsa0VBQTZCO0FBRXpELE1BQU1TLG9CQUFvQlQsZ0VBQTJCO0FBRXJELE1BQU1XLHFCQUFxQlgsaUVBQTRCO0FBRXZELE1BQU1hLGtCQUFrQmIsOERBQXlCO0FBRWpELE1BQU1lLHlCQUF5QmYscUVBQWdDO0FBRS9ELE1BQU1pQix1Q0FBeUJsQiw2Q0FBZ0IsTUFLN0MsUUFBMkNvQjtRQUExQyxFQUFFQyxTQUFTLEVBQUVDLEtBQUssRUFBRUMsUUFBUSxFQUFFLEdBQUdDLE9BQU87eUJBQ3pDLDhEQUFDdkIscUVBQWdDO1FBQy9CbUIsS0FBS0E7UUFDTEMsV0FBV2hCLDhDQUFFQSxDQUNYLDBNQUNBaUIsU0FBUyxRQUNURDtRQUVELEdBQUdHLEtBQUs7O1lBRVJEOzBCQUNELDhEQUFDcEIscUdBQVlBO2dCQUFDa0IsV0FBVTs7Ozs7Ozs7Ozs7Ozs7QUFHNUJILHVCQUF1QlEsV0FBVyxHQUNoQ3pCLHFFQUFnQyxDQUFDeUIsV0FBVztBQUU5QyxNQUFNQyx1Q0FBeUIzQiw2Q0FBZ0IsT0FHN0MsUUFBMEJvQjtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0csT0FBTzt5QkFDeEIsOERBQUN2QixxRUFBZ0M7UUFDL0JtQixLQUFLQTtRQUNMQyxXQUFXaEIsOENBQUVBLENBQ1gseWJBQ0FnQjtRQUVELEdBQUdHLEtBQUs7Ozs7Ozs7O0FBR2JHLHVCQUF1QkQsV0FBVyxHQUNoQ3pCLHFFQUFnQyxDQUFDeUIsV0FBVztBQUU5QyxNQUFNRyxvQ0FBc0I3Qiw2Q0FBZ0IsT0FHMUMsUUFBMENvQjtRQUF6QyxFQUFFQyxTQUFTLEVBQUVTLGFBQWEsQ0FBQyxFQUFFLEdBQUdOLE9BQU87eUJBQ3hDLDhEQUFDdkIsaUVBQTRCO2tCQUMzQiw0RUFBQ0Esa0VBQTZCO1lBQzVCbUIsS0FBS0E7WUFDTFUsWUFBWUE7WUFDWlQsV0FBV2hCLDhDQUFFQSxDQUNYLHliQUNBZ0I7WUFFRCxHQUFHRyxLQUFLOzs7Ozs7Ozs7Ozs7O0FBSWZLLG9CQUFvQkgsV0FBVyxHQUFHekIsa0VBQTZCLENBQUN5QixXQUFXO0FBRTNFLE1BQU1NLGlDQUFtQmhDLDZDQUFnQixPQUt2QyxRQUFpQ29CO1FBQWhDLEVBQUVDLFNBQVMsRUFBRUMsS0FBSyxFQUFFLEdBQUdFLE9BQU87eUJBQy9CLDhEQUFDdkIsK0RBQTBCO1FBQ3pCbUIsS0FBS0E7UUFDTEMsV0FBV2hCLDhDQUFFQSxDQUNYLHFTQUNBaUIsU0FBUyxRQUNURDtRQUVELEdBQUdHLEtBQUs7Ozs7Ozs7O0FBR2JRLGlCQUFpQk4sV0FBVyxHQUFHekIsK0RBQTBCLENBQUN5QixXQUFXO0FBRXJFLE1BQU1RLHlDQUEyQmxDLDZDQUFnQixPQUcvQyxRQUE2Q29CO1FBQTVDLEVBQUVDLFNBQVMsRUFBRUUsUUFBUSxFQUFFWSxPQUFPLEVBQUUsR0FBR1gsT0FBTzt5QkFDM0MsOERBQUN2Qix1RUFBa0M7UUFDakNtQixLQUFLQTtRQUNMQyxXQUFXaEIsOENBQUVBLENBQ1gsd09BQ0FnQjtRQUVGYyxTQUFTQTtRQUNSLEdBQUdYLEtBQUs7OzBCQUVULDhEQUFDYTtnQkFBS2hCLFdBQVU7MEJBQ2QsNEVBQUNwQix3RUFBbUM7OEJBQ2xDLDRFQUFDQyxxR0FBS0E7d0JBQUNtQixXQUFVOzs7Ozs7Ozs7Ozs7Ozs7O1lBR3BCRTs7Ozs7Ozs7O0FBR0xXLHlCQUF5QlIsV0FBVyxHQUNsQ3pCLHVFQUFrQyxDQUFDeUIsV0FBVztBQUVoRCxNQUFNYSxzQ0FBd0J2Qyw2Q0FBZ0IsUUFHNUMsUUFBb0NvQjtRQUFuQyxFQUFFQyxTQUFTLEVBQUVFLFFBQVEsRUFBRSxHQUFHQyxPQUFPO3lCQUNsQyw4REFBQ3ZCLG9FQUErQjtRQUM5Qm1CLEtBQUtBO1FBQ0xDLFdBQVdoQiw4Q0FBRUEsQ0FDWCx3T0FDQWdCO1FBRUQsR0FBR0csS0FBSzs7MEJBRVQsOERBQUNhO2dCQUFLaEIsV0FBVTswQkFDZCw0RUFBQ3BCLHdFQUFtQzs4QkFDbEMsNEVBQUNHLHFHQUFNQTt3QkFBQ2lCLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7WUFHckJFOzs7Ozs7Ozs7QUFHTGdCLHNCQUFzQmIsV0FBVyxHQUFHekIsb0VBQStCLENBQUN5QixXQUFXO0FBRS9FLE1BQU1lLGtDQUFvQnpDLDZDQUFnQixRQUt4QyxRQUFpQ29CO1FBQWhDLEVBQUVDLFNBQVMsRUFBRUMsS0FBSyxFQUFFLEdBQUdFLE9BQU87eUJBQy9CLDhEQUFDdkIsZ0VBQTJCO1FBQzFCbUIsS0FBS0E7UUFDTEMsV0FBV2hCLDhDQUFFQSxDQUNYLHFDQUNBaUIsU0FBUyxRQUNURDtRQUVELEdBQUdHLEtBQUs7Ozs7Ozs7O0FBR2JpQixrQkFBa0JmLFdBQVcsR0FBR3pCLGdFQUEyQixDQUFDeUIsV0FBVztBQUV2RSxNQUFNaUIsc0NBQXdCM0MsNkNBQWdCLFFBRzVDLFFBQTBCb0I7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdHLE9BQU87eUJBQ3hCLDhEQUFDdkIsb0VBQStCO1FBQzlCbUIsS0FBS0E7UUFDTEMsV0FBV2hCLDhDQUFFQSxDQUFDLDRCQUE0QmdCO1FBQ3pDLEdBQUdHLEtBQUs7Ozs7Ozs7O0FBR2JtQixzQkFBc0JqQixXQUFXLEdBQUd6QixvRUFBK0IsQ0FBQ3lCLFdBQVc7QUFFL0UsTUFBTW1CLHVCQUF1QjtRQUFDLEVBQzVCeEIsU0FBUyxFQUNULEdBQUdHLE9BQ21DO0lBQ3RDLHFCQUNFLDhEQUFDYTtRQUNDaEIsV0FBV2hCLDhDQUFFQSxDQUFDLDhDQUE4Q2dCO1FBQzNELEdBQUdHLEtBQUs7Ozs7OztBQUdmO09BVk1xQjtBQVdOQSxxQkFBcUJuQixXQUFXLEdBQUc7QUFrQmpDIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2NvbXBvbmVudHMvdWkvZHJvcGRvd24tbWVudS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0ICogYXMgRHJvcGRvd25NZW51UHJpbWl0aXZlIGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtZHJvcGRvd24tbWVudVwiO1xuaW1wb3J0IHsgQ2hlY2ssIENoZXZyb25SaWdodCwgQ2lyY2xlIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuXG5pbXBvcnQgeyBjbiB9IGZyb20gXCJAL2xpYi91dGlsc1wiO1xuXG5jb25zdCBEcm9wZG93bk1lbnUgPSBEcm9wZG93bk1lbnVQcmltaXRpdmUuUm9vdDtcblxuY29uc3QgRHJvcGRvd25NZW51VHJpZ2dlciA9IERyb3Bkb3duTWVudVByaW1pdGl2ZS5UcmlnZ2VyO1xuXG5jb25zdCBEcm9wZG93bk1lbnVHcm91cCA9IERyb3Bkb3duTWVudVByaW1pdGl2ZS5Hcm91cDtcblxuY29uc3QgRHJvcGRvd25NZW51UG9ydGFsID0gRHJvcGRvd25NZW51UHJpbWl0aXZlLlBvcnRhbDtcblxuY29uc3QgRHJvcGRvd25NZW51U3ViID0gRHJvcGRvd25NZW51UHJpbWl0aXZlLlN1YjtcblxuY29uc3QgRHJvcGRvd25NZW51UmFkaW9Hcm91cCA9IERyb3Bkb3duTWVudVByaW1pdGl2ZS5SYWRpb0dyb3VwO1xuXG5jb25zdCBEcm9wZG93bk1lbnVTdWJUcmlnZ2VyID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRHJvcGRvd25NZW51UHJpbWl0aXZlLlN1YlRyaWdnZXI+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERyb3Bkb3duTWVudVByaW1pdGl2ZS5TdWJUcmlnZ2VyPiAmIHtcbiAgICBpbnNldD86IGJvb2xlYW47XG4gIH1cbj4oKHsgY2xhc3NOYW1lLCBpbnNldCwgY2hpbGRyZW4sIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8RHJvcGRvd25NZW51UHJpbWl0aXZlLlN1YlRyaWdnZXJcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgXCJmbGV4IGN1cnNvci1kZWZhdWx0IGdhcC0yIHNlbGVjdC1ub25lIGl0ZW1zLWNlbnRlciByb3VuZGVkLXNtIHB4LTIgcHktMS41IHRleHQtc20gb3V0bGluZS1ub25lIGZvY3VzOmJnLWFjY2VudCBkYXRhLVtzdGF0ZT1vcGVuXTpiZy1hY2NlbnQgWyZfc3ZnXTpwb2ludGVyLWV2ZW50cy1ub25lIFsmX3N2Z106c2l6ZS00IFsmX3N2Z106c2hyaW5rLTBcIixcbiAgICAgIGluc2V0ICYmIFwicGwtOFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gID5cbiAgICB7Y2hpbGRyZW59XG4gICAgPENoZXZyb25SaWdodCBjbGFzc05hbWU9J21sLWF1dG8nIC8+XG4gIDwvRHJvcGRvd25NZW51UHJpbWl0aXZlLlN1YlRyaWdnZXI+XG4pKTtcbkRyb3Bkb3duTWVudVN1YlRyaWdnZXIuZGlzcGxheU5hbWUgPVxuICBEcm9wZG93bk1lbnVQcmltaXRpdmUuU3ViVHJpZ2dlci5kaXNwbGF5TmFtZTtcblxuY29uc3QgRHJvcGRvd25NZW51U3ViQ29udGVudCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERyb3Bkb3duTWVudVByaW1pdGl2ZS5TdWJDb250ZW50PixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEcm9wZG93bk1lbnVQcmltaXRpdmUuU3ViQ29udGVudD5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPERyb3Bkb3duTWVudVByaW1pdGl2ZS5TdWJDb250ZW50XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwiei01MCBtaW4tdy1bOHJlbV0gb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtbWQgYm9yZGVyIGJnLXBvcG92ZXIgcC0xIHRleHQtcG9wb3Zlci1mb3JlZ3JvdW5kIHNoYWRvdy1sZyBkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluIGRhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpmYWRlLW91dC0wIGRhdGEtW3N0YXRlPW9wZW5dOmZhZGUtaW4tMCBkYXRhLVtzdGF0ZT1jbG9zZWRdOnpvb20tb3V0LTk1IGRhdGEtW3N0YXRlPW9wZW5dOnpvb20taW4tOTUgZGF0YS1bc2lkZT1ib3R0b21dOnNsaWRlLWluLWZyb20tdG9wLTIgZGF0YS1bc2lkZT1sZWZ0XTpzbGlkZS1pbi1mcm9tLXJpZ2h0LTIgZGF0YS1bc2lkZT1yaWdodF06c2xpZGUtaW4tZnJvbS1sZWZ0LTIgZGF0YS1bc2lkZT10b3BdOnNsaWRlLWluLWZyb20tYm90dG9tLTJcIixcbiAgICAgIGNsYXNzTmFtZVxuICAgICl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSk7XG5Ecm9wZG93bk1lbnVTdWJDb250ZW50LmRpc3BsYXlOYW1lID1cbiAgRHJvcGRvd25NZW51UHJpbWl0aXZlLlN1YkNvbnRlbnQuZGlzcGxheU5hbWU7XG5cbmNvbnN0IERyb3Bkb3duTWVudUNvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBEcm9wZG93bk1lbnVQcmltaXRpdmUuQ29udGVudD4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRHJvcGRvd25NZW51UHJpbWl0aXZlLkNvbnRlbnQ+XG4+KCh7IGNsYXNzTmFtZSwgc2lkZU9mZnNldCA9IDQsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8RHJvcGRvd25NZW51UHJpbWl0aXZlLlBvcnRhbD5cbiAgICA8RHJvcGRvd25NZW51UHJpbWl0aXZlLkNvbnRlbnRcbiAgICAgIHJlZj17cmVmfVxuICAgICAgc2lkZU9mZnNldD17c2lkZU9mZnNldH1cbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgIFwiei01MCBtaW4tdy1bOHJlbV0gb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtbWQgYm9yZGVyIGJnLXBvcG92ZXIgcC0xIHRleHQtcG9wb3Zlci1mb3JlZ3JvdW5kIHNoYWRvdy1tZCBkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluIGRhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpmYWRlLW91dC0wIGRhdGEtW3N0YXRlPW9wZW5dOmZhZGUtaW4tMCBkYXRhLVtzdGF0ZT1jbG9zZWRdOnpvb20tb3V0LTk1IGRhdGEtW3N0YXRlPW9wZW5dOnpvb20taW4tOTUgZGF0YS1bc2lkZT1ib3R0b21dOnNsaWRlLWluLWZyb20tdG9wLTIgZGF0YS1bc2lkZT1sZWZ0XTpzbGlkZS1pbi1mcm9tLXJpZ2h0LTIgZGF0YS1bc2lkZT1yaWdodF06c2xpZGUtaW4tZnJvbS1sZWZ0LTIgZGF0YS1bc2lkZT10b3BdOnNsaWRlLWluLWZyb20tYm90dG9tLTJcIixcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gIDwvRHJvcGRvd25NZW51UHJpbWl0aXZlLlBvcnRhbD5cbikpO1xuRHJvcGRvd25NZW51Q29udGVudC5kaXNwbGF5TmFtZSA9IERyb3Bkb3duTWVudVByaW1pdGl2ZS5Db250ZW50LmRpc3BsYXlOYW1lO1xuXG5jb25zdCBEcm9wZG93bk1lbnVJdGVtID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRHJvcGRvd25NZW51UHJpbWl0aXZlLkl0ZW0+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERyb3Bkb3duTWVudVByaW1pdGl2ZS5JdGVtPiAmIHtcbiAgICBpbnNldD86IGJvb2xlYW47XG4gIH1cbj4oKHsgY2xhc3NOYW1lLCBpbnNldCwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxEcm9wZG93bk1lbnVQcmltaXRpdmUuSXRlbVxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcInJlbGF0aXZlIGZsZXggY3Vyc29yLWRlZmF1bHQgc2VsZWN0LW5vbmUgaXRlbXMtY2VudGVyIGdhcC0yIHJvdW5kZWQtc20gcHgtMiBweS0xLjUgdGV4dC1zbSBvdXRsaW5lLW5vbmUgdHJhbnNpdGlvbi1jb2xvcnMgZm9jdXM6YmctYWNjZW50IGZvY3VzOnRleHQtYWNjZW50LWZvcmVncm91bmQgZGF0YS1bZGlzYWJsZWRdOnBvaW50ZXItZXZlbnRzLW5vbmUgZGF0YS1bZGlzYWJsZWRdOm9wYWNpdHktNTAgWyZfc3ZnXTpwb2ludGVyLWV2ZW50cy1ub25lIFsmX3N2Z106c2l6ZS00IFsmX3N2Z106c2hyaW5rLTBcIixcbiAgICAgIGluc2V0ICYmIFwicGwtOFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKTtcbkRyb3Bkb3duTWVudUl0ZW0uZGlzcGxheU5hbWUgPSBEcm9wZG93bk1lbnVQcmltaXRpdmUuSXRlbS5kaXNwbGF5TmFtZTtcblxuY29uc3QgRHJvcGRvd25NZW51Q2hlY2tib3hJdGVtID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRHJvcGRvd25NZW51UHJpbWl0aXZlLkNoZWNrYm94SXRlbT4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRHJvcGRvd25NZW51UHJpbWl0aXZlLkNoZWNrYm94SXRlbT5cbj4oKHsgY2xhc3NOYW1lLCBjaGlsZHJlbiwgY2hlY2tlZCwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxEcm9wZG93bk1lbnVQcmltaXRpdmUuQ2hlY2tib3hJdGVtXG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwicmVsYXRpdmUgZmxleCBjdXJzb3ItZGVmYXVsdCBzZWxlY3Qtbm9uZSBpdGVtcy1jZW50ZXIgcm91bmRlZC1zbSBweS0xLjUgcGwtOCBwci0yIHRleHQtc20gb3V0bGluZS1ub25lIHRyYW5zaXRpb24tY29sb3JzIGZvY3VzOmJnLWFjY2VudCBmb2N1czp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kIGRhdGEtW2Rpc2FibGVkXTpwb2ludGVyLWV2ZW50cy1ub25lIGRhdGEtW2Rpc2FibGVkXTpvcGFjaXR5LTUwXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIGNoZWNrZWQ9e2NoZWNrZWR9XG4gICAgey4uLnByb3BzfVxuICA+XG4gICAgPHNwYW4gY2xhc3NOYW1lPSdhYnNvbHV0ZSBsZWZ0LTIgZmxleCBoLTMuNSB3LTMuNSBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXInPlxuICAgICAgPERyb3Bkb3duTWVudVByaW1pdGl2ZS5JdGVtSW5kaWNhdG9yPlxuICAgICAgICA8Q2hlY2sgY2xhc3NOYW1lPSdoLTQgdy00JyAvPlxuICAgICAgPC9Ecm9wZG93bk1lbnVQcmltaXRpdmUuSXRlbUluZGljYXRvcj5cbiAgICA8L3NwYW4+XG4gICAge2NoaWxkcmVufVxuICA8L0Ryb3Bkb3duTWVudVByaW1pdGl2ZS5DaGVja2JveEl0ZW0+XG4pKTtcbkRyb3Bkb3duTWVudUNoZWNrYm94SXRlbS5kaXNwbGF5TmFtZSA9XG4gIERyb3Bkb3duTWVudVByaW1pdGl2ZS5DaGVja2JveEl0ZW0uZGlzcGxheU5hbWU7XG5cbmNvbnN0IERyb3Bkb3duTWVudVJhZGlvSXRlbSA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERyb3Bkb3duTWVudVByaW1pdGl2ZS5SYWRpb0l0ZW0+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERyb3Bkb3duTWVudVByaW1pdGl2ZS5SYWRpb0l0ZW0+XG4+KCh7IGNsYXNzTmFtZSwgY2hpbGRyZW4sIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8RHJvcGRvd25NZW51UHJpbWl0aXZlLlJhZGlvSXRlbVxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcInJlbGF0aXZlIGZsZXggY3Vyc29yLWRlZmF1bHQgc2VsZWN0LW5vbmUgaXRlbXMtY2VudGVyIHJvdW5kZWQtc20gcHktMS41IHBsLTggcHItMiB0ZXh0LXNtIG91dGxpbmUtbm9uZSB0cmFuc2l0aW9uLWNvbG9ycyBmb2N1czpiZy1hY2NlbnQgZm9jdXM6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCBkYXRhLVtkaXNhYmxlZF06cG9pbnRlci1ldmVudHMtbm9uZSBkYXRhLVtkaXNhYmxlZF06b3BhY2l0eS01MFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gID5cbiAgICA8c3BhbiBjbGFzc05hbWU9J2Fic29sdXRlIGxlZnQtMiBmbGV4IGgtMy41IHctMy41IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlcic+XG4gICAgICA8RHJvcGRvd25NZW51UHJpbWl0aXZlLkl0ZW1JbmRpY2F0b3I+XG4gICAgICAgIDxDaXJjbGUgY2xhc3NOYW1lPSdoLTIgdy0yIGZpbGwtY3VycmVudCcgLz5cbiAgICAgIDwvRHJvcGRvd25NZW51UHJpbWl0aXZlLkl0ZW1JbmRpY2F0b3I+XG4gICAgPC9zcGFuPlxuICAgIHtjaGlsZHJlbn1cbiAgPC9Ecm9wZG93bk1lbnVQcmltaXRpdmUuUmFkaW9JdGVtPlxuKSk7XG5Ecm9wZG93bk1lbnVSYWRpb0l0ZW0uZGlzcGxheU5hbWUgPSBEcm9wZG93bk1lbnVQcmltaXRpdmUuUmFkaW9JdGVtLmRpc3BsYXlOYW1lO1xuXG5jb25zdCBEcm9wZG93bk1lbnVMYWJlbCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERyb3Bkb3duTWVudVByaW1pdGl2ZS5MYWJlbD4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRHJvcGRvd25NZW51UHJpbWl0aXZlLkxhYmVsPiAmIHtcbiAgICBpbnNldD86IGJvb2xlYW47XG4gIH1cbj4oKHsgY2xhc3NOYW1lLCBpbnNldCwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxEcm9wZG93bk1lbnVQcmltaXRpdmUuTGFiZWxcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgXCJweC0yIHB5LTEuNSB0ZXh0LXNtIGZvbnQtc2VtaWJvbGRcIixcbiAgICAgIGluc2V0ICYmIFwicGwtOFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKTtcbkRyb3Bkb3duTWVudUxhYmVsLmRpc3BsYXlOYW1lID0gRHJvcGRvd25NZW51UHJpbWl0aXZlLkxhYmVsLmRpc3BsYXlOYW1lO1xuXG5jb25zdCBEcm9wZG93bk1lbnVTZXBhcmF0b3IgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBEcm9wZG93bk1lbnVQcmltaXRpdmUuU2VwYXJhdG9yPixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEcm9wZG93bk1lbnVQcmltaXRpdmUuU2VwYXJhdG9yPlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8RHJvcGRvd25NZW51UHJpbWl0aXZlLlNlcGFyYXRvclxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXCItbXgtMSBteS0xIGgtcHggYmctbXV0ZWRcIiwgY2xhc3NOYW1lKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKTtcbkRyb3Bkb3duTWVudVNlcGFyYXRvci5kaXNwbGF5TmFtZSA9IERyb3Bkb3duTWVudVByaW1pdGl2ZS5TZXBhcmF0b3IuZGlzcGxheU5hbWU7XG5cbmNvbnN0IERyb3Bkb3duTWVudVNob3J0Y3V0ID0gKHtcbiAgY2xhc3NOYW1lLFxuICAuLi5wcm9wc1xufTogUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTFNwYW5FbGVtZW50PikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxzcGFuXG4gICAgICBjbGFzc05hbWU9e2NuKFwibWwtYXV0byB0ZXh0LXhzIHRyYWNraW5nLXdpZGVzdCBvcGFjaXR5LTYwXCIsIGNsYXNzTmFtZSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKTtcbn07XG5Ecm9wZG93bk1lbnVTaG9ydGN1dC5kaXNwbGF5TmFtZSA9IFwiRHJvcGRvd25NZW51U2hvcnRjdXRcIjtcblxuZXhwb3J0IHtcbiAgRHJvcGRvd25NZW51LFxuICBEcm9wZG93bk1lbnVUcmlnZ2VyLFxuICBEcm9wZG93bk1lbnVDb250ZW50LFxuICBEcm9wZG93bk1lbnVJdGVtLFxuICBEcm9wZG93bk1lbnVDaGVja2JveEl0ZW0sXG4gIERyb3Bkb3duTWVudVJhZGlvSXRlbSxcbiAgRHJvcGRvd25NZW51TGFiZWwsXG4gIERyb3Bkb3duTWVudVNlcGFyYXRvcixcbiAgRHJvcGRvd25NZW51U2hvcnRjdXQsXG4gIERyb3Bkb3duTWVudUdyb3VwLFxuICBEcm9wZG93bk1lbnVQb3J0YWwsXG4gIERyb3Bkb3duTWVudVN1YixcbiAgRHJvcGRvd25NZW51U3ViQ29udGVudCxcbiAgRHJvcGRvd25NZW51U3ViVHJpZ2dlcixcbiAgRHJvcGRvd25NZW51UmFkaW9Hcm91cCxcbn07XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJEcm9wZG93bk1lbnVQcmltaXRpdmUiLCJDaGVjayIsIkNoZXZyb25SaWdodCIsIkNpcmNsZSIsImNuIiwiRHJvcGRvd25NZW51IiwiUm9vdCIsIkRyb3Bkb3duTWVudVRyaWdnZXIiLCJUcmlnZ2VyIiwiRHJvcGRvd25NZW51R3JvdXAiLCJHcm91cCIsIkRyb3Bkb3duTWVudVBvcnRhbCIsIlBvcnRhbCIsIkRyb3Bkb3duTWVudVN1YiIsIlN1YiIsIkRyb3Bkb3duTWVudVJhZGlvR3JvdXAiLCJSYWRpb0dyb3VwIiwiRHJvcGRvd25NZW51U3ViVHJpZ2dlciIsImZvcndhcmRSZWYiLCJyZWYiLCJjbGFzc05hbWUiLCJpbnNldCIsImNoaWxkcmVuIiwicHJvcHMiLCJTdWJUcmlnZ2VyIiwiZGlzcGxheU5hbWUiLCJEcm9wZG93bk1lbnVTdWJDb250ZW50IiwiU3ViQ29udGVudCIsIkRyb3Bkb3duTWVudUNvbnRlbnQiLCJzaWRlT2Zmc2V0IiwiQ29udGVudCIsIkRyb3Bkb3duTWVudUl0ZW0iLCJJdGVtIiwiRHJvcGRvd25NZW51Q2hlY2tib3hJdGVtIiwiY2hlY2tlZCIsIkNoZWNrYm94SXRlbSIsInNwYW4iLCJJdGVtSW5kaWNhdG9yIiwiRHJvcGRvd25NZW51UmFkaW9JdGVtIiwiUmFkaW9JdGVtIiwiRHJvcGRvd25NZW51TGFiZWwiLCJMYWJlbCIsIkRyb3Bkb3duTWVudVNlcGFyYXRvciIsIlNlcGFyYXRvciIsIkRyb3Bkb3duTWVudVNob3J0Y3V0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/dropdown-menu.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/input.tsx": /*!*********************************!*\ !*** ./components/ui/input.tsx ***! \*********************************/ /***/ ((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 */ Input: () => (/* binding */ Input)\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 _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n\n\n\nconst Input = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, type, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: type,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\", className),\n ref: ref,\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/input.tsx\",\n lineNumber: 8,\n columnNumber: 7\n }, undefined);\n});\n_c1 = Input;\nInput.displayName = \"Input\";\n\nvar _c, _c1;\n$RefreshReg$(_c, \"Input$React.forwardRef\");\n$RefreshReg$(_c1, \"Input\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvaW5wdXQudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUE4QjtBQUVFO0FBRWhDLE1BQU1FLHNCQUFRRiw2Q0FBZ0IsTUFDNUIsUUFBZ0NJO1FBQS9CLEVBQUVDLFNBQVMsRUFBRUMsSUFBSSxFQUFFLEdBQUdDLE9BQU87SUFDNUIscUJBQ0UsOERBQUNDO1FBQ0NGLE1BQU1BO1FBQ05ELFdBQVdKLDhDQUFFQSxDQUNYLGtZQUNBSTtRQUVGRCxLQUFLQTtRQUNKLEdBQUdHLEtBQUs7Ozs7OztBQUdmOztBQUVGTCxNQUFNTyxXQUFXLEdBQUc7QUFFSiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9jb21wb25lbnRzL3VpL2lucHV0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBjbiB9IGZyb20gXCJAL2xpYi91dGlsc1wiXG5cbmNvbnN0IElucHV0ID0gUmVhY3QuZm9yd2FyZFJlZjxIVE1MSW5wdXRFbGVtZW50LCBSZWFjdC5Db21wb25lbnRQcm9wczxcImlucHV0XCI+PihcbiAgKHsgY2xhc3NOYW1lLCB0eXBlLCAuLi5wcm9wcyB9LCByZWYpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9e3R5cGV9XG4gICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgXCJmbGV4IGgtMTAgdy1mdWxsIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1pbnB1dCBiZy1iYWNrZ3JvdW5kIHB4LTMgcHktMiB0ZXh0LWJhc2UgcmluZy1vZmZzZXQtYmFja2dyb3VuZCBmaWxlOmJvcmRlci0wIGZpbGU6YmctdHJhbnNwYXJlbnQgZmlsZTp0ZXh0LXNtIGZpbGU6Zm9udC1tZWRpdW0gZmlsZTp0ZXh0LWZvcmVncm91bmQgcGxhY2Vob2xkZXI6dGV4dC1tdXRlZC1mb3JlZ3JvdW5kIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtMiBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgZGlzYWJsZWQ6b3BhY2l0eS01MCBtZDp0ZXh0LXNtXCIsXG4gICAgICAgICAgY2xhc3NOYW1lXG4gICAgICAgICl9XG4gICAgICAgIHJlZj17cmVmfVxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAvPlxuICAgIClcbiAgfVxuKVxuSW5wdXQuZGlzcGxheU5hbWUgPSBcIklucHV0XCJcblxuZXhwb3J0IHsgSW5wdXQgfVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiY24iLCJJbnB1dCIsImZvcndhcmRSZWYiLCJyZWYiLCJjbGFzc05hbWUiLCJ0eXBlIiwicHJvcHMiLCJpbnB1dCIsImRpc3BsYXlOYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/input.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/label.tsx": /*!*********************************!*\ !*** ./components/ui/label.tsx ***! \*********************************/ /***/ ((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 */ Label: () => (/* binding */ Label)\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 _radix_ui_react_label__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-label */ \"(app-pages-browser)/./node_modules/@radix-ui/react-label/dist/index.mjs\");\n/* harmony import */ var class_variance_authority__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! class-variance-authority */ \"(app-pages-browser)/./node_modules/class-variance-authority/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Label auto */ \n\n\n\n\nconst labelVariants = (0,class_variance_authority__WEBPACK_IMPORTED_MODULE_2__.cva)(\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\");\nconst Label = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_label__WEBPACK_IMPORTED_MODULE_4__.Root, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)(labelVariants(), className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/label.tsx\",\n lineNumber: 18,\n columnNumber: 3\n }, undefined);\n});\n_c1 = Label;\nLabel.displayName = _radix_ui_react_label__WEBPACK_IMPORTED_MODULE_4__.Root.displayName;\n\nvar _c, _c1;\n$RefreshReg$(_c, \"Label$React.forwardRef\");\n$RefreshReg$(_c1, \"Label\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvbGFiZWwudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBRThCO0FBQ3lCO0FBQ1U7QUFFakM7QUFFaEMsTUFBTUksZ0JBQWdCRiw2REFBR0EsQ0FDdkI7QUFHRixNQUFNRyxzQkFBUUwsNkNBQWdCLE1BSTVCLFFBQTBCTztRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNSLHVEQUFtQjtRQUNsQk0sS0FBS0E7UUFDTEMsV0FBV0wsOENBQUVBLENBQUNDLGlCQUFpQkk7UUFDOUIsR0FBR0MsS0FBSzs7Ozs7Ozs7QUFHYkosTUFBTU0sV0FBVyxHQUFHVix1REFBbUIsQ0FBQ1UsV0FBVztBQUVuQyIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9jb21wb25lbnRzL3VpL2xhYmVsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0ICogYXMgTGFiZWxQcmltaXRpdmUgZnJvbSBcIkByYWRpeC11aS9yZWFjdC1sYWJlbFwiXG5pbXBvcnQgeyBjdmEsIHR5cGUgVmFyaWFudFByb3BzIH0gZnJvbSBcImNsYXNzLXZhcmlhbmNlLWF1dGhvcml0eVwiXG5cbmltcG9ydCB7IGNuIH0gZnJvbSBcIkAvbGliL3V0aWxzXCJcblxuY29uc3QgbGFiZWxWYXJpYW50cyA9IGN2YShcbiAgXCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIGxlYWRpbmctbm9uZSBwZWVyLWRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCBwZWVyLWRpc2FibGVkOm9wYWNpdHktNzBcIlxuKVxuXG5jb25zdCBMYWJlbCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIExhYmVsUHJpbWl0aXZlLlJvb3Q+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIExhYmVsUHJpbWl0aXZlLlJvb3Q+ICZcbiAgICBWYXJpYW50UHJvcHM8dHlwZW9mIGxhYmVsVmFyaWFudHM+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxMYWJlbFByaW1pdGl2ZS5Sb290XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihsYWJlbFZhcmlhbnRzKCksIGNsYXNzTmFtZSl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkxhYmVsLmRpc3BsYXlOYW1lID0gTGFiZWxQcmltaXRpdmUuUm9vdC5kaXNwbGF5TmFtZVxuXG5leHBvcnQgeyBMYWJlbCB9XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJMYWJlbFByaW1pdGl2ZSIsImN2YSIsImNuIiwibGFiZWxWYXJpYW50cyIsIkxhYmVsIiwiZm9yd2FyZFJlZiIsInJlZiIsImNsYXNzTmFtZSIsInByb3BzIiwiUm9vdCIsImRpc3BsYXlOYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/label.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/scroll-area.tsx": /*!***************************************!*\ !*** ./components/ui/scroll-area.tsx ***! \***************************************/ /***/ ((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 */ ScrollArea: () => (/* binding */ ScrollArea),\n/* harmony export */ ScrollBar: () => (/* binding */ ScrollBar)\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 _radix_ui_react_scroll_area__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-scroll-area */ \"(app-pages-browser)/./node_modules/@radix-ui/react-scroll-area/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ ScrollArea,ScrollBar auto */ \n\n\n\nconst ScrollArea = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, children, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_scroll_area__WEBPACK_IMPORTED_MODULE_3__.Root, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"relative overflow-hidden\", className),\n ...props,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_scroll_area__WEBPACK_IMPORTED_MODULE_3__.Viewport, {\n className: \"h-full w-full rounded-[inherit]\",\n children: children\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/scroll-area.tsx\",\n lineNumber: 17,\n columnNumber: 5\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(ScrollBar, {}, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/scroll-area.tsx\",\n lineNumber: 20,\n columnNumber: 5\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_scroll_area__WEBPACK_IMPORTED_MODULE_3__.Corner, {}, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/scroll-area.tsx\",\n lineNumber: 21,\n columnNumber: 5\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/scroll-area.tsx\",\n lineNumber: 12,\n columnNumber: 3\n }, undefined);\n});\n_c1 = ScrollArea;\nScrollArea.displayName = _radix_ui_react_scroll_area__WEBPACK_IMPORTED_MODULE_3__.Root.displayName;\nconst ScrollBar = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((param, ref)=>{\n let { className, orientation = \"vertical\", ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_scroll_area__WEBPACK_IMPORTED_MODULE_3__.ScrollAreaScrollbar, {\n ref: ref,\n orientation: orientation,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex touch-none select-none transition-colors\", orientation === \"vertical\" && \"h-full w-2.5 border-l border-l-transparent p-[1px]\", orientation === \"horizontal\" && \"h-2.5 flex-col border-t border-t-transparent p-[1px]\", className),\n ...props,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_scroll_area__WEBPACK_IMPORTED_MODULE_3__.ScrollAreaThumb, {\n className: \"relative flex-1 rounded-full bg-border\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/scroll-area.tsx\",\n lineNumber: 43,\n columnNumber: 5\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/scroll-area.tsx\",\n lineNumber: 30,\n columnNumber: 3\n }, undefined);\n});\n_c2 = ScrollBar;\nScrollBar.displayName = _radix_ui_react_scroll_area__WEBPACK_IMPORTED_MODULE_3__.ScrollAreaScrollbar.displayName;\n\nvar _c, _c1, _c2;\n$RefreshReg$(_c, \"ScrollArea$React.forwardRef\");\n$RefreshReg$(_c1, \"ScrollArea\");\n$RefreshReg$(_c2, \"ScrollBar\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvc2Nyb2xsLWFyZWEudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBRThCO0FBQ29DO0FBRWxDO0FBRWhDLE1BQU1HLDJCQUFhSCw2Q0FBZ0IsTUFHakMsUUFBb0NLO1FBQW5DLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxFQUFFLEdBQUdDLE9BQU87eUJBQ2xDLDhEQUFDUCw2REFBd0I7UUFDdkJJLEtBQUtBO1FBQ0xDLFdBQVdKLDhDQUFFQSxDQUFDLDRCQUE0Qkk7UUFDekMsR0FBR0UsS0FBSzs7MEJBRVQsOERBQUNQLGlFQUE0QjtnQkFBQ0ssV0FBVTswQkFDckNDOzs7Ozs7MEJBRUgsOERBQUNJOzs7OzswQkFDRCw4REFBQ1YsK0RBQTBCOzs7Ozs7Ozs7Ozs7O0FBRy9CRSxXQUFXVSxXQUFXLEdBQUdaLDZEQUF3QixDQUFDWSxXQUFXO0FBRTdELE1BQU1GLDBCQUFZWCw2Q0FBZ0IsQ0FHaEMsUUFBb0RLO1FBQW5ELEVBQUVDLFNBQVMsRUFBRVEsY0FBYyxVQUFVLEVBQUUsR0FBR04sT0FBTzt5QkFDbEQsOERBQUNQLDRFQUF1QztRQUN0Q0ksS0FBS0E7UUFDTFMsYUFBYUE7UUFDYlIsV0FBV0osOENBQUVBLENBQ1gsaURBQ0FZLGdCQUFnQixjQUNkLHNEQUNGQSxnQkFBZ0IsZ0JBQ2Qsd0RBQ0ZSO1FBRUQsR0FBR0UsS0FBSztrQkFFVCw0RUFBQ1Asd0VBQW1DO1lBQUNLLFdBQVU7Ozs7Ozs7Ozs7OztNQWpCN0NLO0FBb0JOQSxVQUFVRSxXQUFXLEdBQUdaLDRFQUF1QyxDQUFDWSxXQUFXO0FBRTNDIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2NvbXBvbmVudHMvdWkvc2Nyb2xsLWFyZWEudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgKiBhcyBTY3JvbGxBcmVhUHJpbWl0aXZlIGZyb20gXCJAcmFkaXgtdWkvcmVhY3Qtc2Nyb2xsLWFyZWFcIlxuXG5pbXBvcnQgeyBjbiB9IGZyb20gXCJAL2xpYi91dGlsc1wiXG5cbmNvbnN0IFNjcm9sbEFyZWEgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBTY3JvbGxBcmVhUHJpbWl0aXZlLlJvb3Q+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFNjcm9sbEFyZWFQcmltaXRpdmUuUm9vdD5cbj4oKHsgY2xhc3NOYW1lLCBjaGlsZHJlbiwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxTY3JvbGxBcmVhUHJpbWl0aXZlLlJvb3RcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFwicmVsYXRpdmUgb3ZlcmZsb3ctaGlkZGVuXCIsIGNsYXNzTmFtZSl9XG4gICAgey4uLnByb3BzfVxuICA+XG4gICAgPFNjcm9sbEFyZWFQcmltaXRpdmUuVmlld3BvcnQgY2xhc3NOYW1lPVwiaC1mdWxsIHctZnVsbCByb3VuZGVkLVtpbmhlcml0XVwiPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvU2Nyb2xsQXJlYVByaW1pdGl2ZS5WaWV3cG9ydD5cbiAgICA8U2Nyb2xsQmFyIC8+XG4gICAgPFNjcm9sbEFyZWFQcmltaXRpdmUuQ29ybmVyIC8+XG4gIDwvU2Nyb2xsQXJlYVByaW1pdGl2ZS5Sb290PlxuKSlcblNjcm9sbEFyZWEuZGlzcGxheU5hbWUgPSBTY3JvbGxBcmVhUHJpbWl0aXZlLlJvb3QuZGlzcGxheU5hbWVcblxuY29uc3QgU2Nyb2xsQmFyID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgU2Nyb2xsQXJlYVByaW1pdGl2ZS5TY3JvbGxBcmVhU2Nyb2xsYmFyPixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBTY3JvbGxBcmVhUHJpbWl0aXZlLlNjcm9sbEFyZWFTY3JvbGxiYXI+XG4+KCh7IGNsYXNzTmFtZSwgb3JpZW50YXRpb24gPSBcInZlcnRpY2FsXCIsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8U2Nyb2xsQXJlYVByaW1pdGl2ZS5TY3JvbGxBcmVhU2Nyb2xsYmFyXG4gICAgcmVmPXtyZWZ9XG4gICAgb3JpZW50YXRpb249e29yaWVudGF0aW9ufVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcImZsZXggdG91Y2gtbm9uZSBzZWxlY3Qtbm9uZSB0cmFuc2l0aW9uLWNvbG9yc1wiLFxuICAgICAgb3JpZW50YXRpb24gPT09IFwidmVydGljYWxcIiAmJlxuICAgICAgICBcImgtZnVsbCB3LTIuNSBib3JkZXItbCBib3JkZXItbC10cmFuc3BhcmVudCBwLVsxcHhdXCIsXG4gICAgICBvcmllbnRhdGlvbiA9PT0gXCJob3Jpem9udGFsXCIgJiZcbiAgICAgICAgXCJoLTIuNSBmbGV4LWNvbCBib3JkZXItdCBib3JkZXItdC10cmFuc3BhcmVudCBwLVsxcHhdXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgPlxuICAgIDxTY3JvbGxBcmVhUHJpbWl0aXZlLlNjcm9sbEFyZWFUaHVtYiBjbGFzc05hbWU9XCJyZWxhdGl2ZSBmbGV4LTEgcm91bmRlZC1mdWxsIGJnLWJvcmRlclwiIC8+XG4gIDwvU2Nyb2xsQXJlYVByaW1pdGl2ZS5TY3JvbGxBcmVhU2Nyb2xsYmFyPlxuKSlcblNjcm9sbEJhci5kaXNwbGF5TmFtZSA9IFNjcm9sbEFyZWFQcmltaXRpdmUuU2Nyb2xsQXJlYVNjcm9sbGJhci5kaXNwbGF5TmFtZVxuXG5leHBvcnQgeyBTY3JvbGxBcmVhLCBTY3JvbGxCYXIgfVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiU2Nyb2xsQXJlYVByaW1pdGl2ZSIsImNuIiwiU2Nyb2xsQXJlYSIsImZvcndhcmRSZWYiLCJyZWYiLCJjbGFzc05hbWUiLCJjaGlsZHJlbiIsInByb3BzIiwiUm9vdCIsIlZpZXdwb3J0IiwiU2Nyb2xsQmFyIiwiQ29ybmVyIiwiZGlzcGxheU5hbWUiLCJvcmllbnRhdGlvbiIsIlNjcm9sbEFyZWFTY3JvbGxiYXIiLCJTY3JvbGxBcmVhVGh1bWIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/scroll-area.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/tabs.tsx": /*!********************************!*\ !*** ./components/ui/tabs.tsx ***! \********************************/ /***/ ((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 */ Tabs: () => (/* binding */ Tabs),\n/* harmony export */ TabsContent: () => (/* binding */ TabsContent),\n/* harmony export */ TabsList: () => (/* binding */ TabsList),\n/* harmony export */ TabsTrigger: () => (/* binding */ TabsTrigger)\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 _radix_ui_react_tabs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-tabs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-tabs/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Tabs,TabsList,TabsTrigger,TabsContent auto */ \n\n\n\nconst Tabs = _radix_ui_react_tabs__WEBPACK_IMPORTED_MODULE_3__.Root;\nconst TabsList = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_tabs__WEBPACK_IMPORTED_MODULE_3__.List, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/tabs.tsx\",\n lineNumber: 14,\n columnNumber: 3\n }, undefined);\n});\n_c1 = TabsList;\nTabsList.displayName = _radix_ui_react_tabs__WEBPACK_IMPORTED_MODULE_3__.List.displayName;\nconst TabsTrigger = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c2 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_tabs__WEBPACK_IMPORTED_MODULE_3__.Trigger, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/tabs.tsx\",\n lineNumber: 29,\n columnNumber: 3\n }, undefined);\n});\n_c3 = TabsTrigger;\nTabsTrigger.displayName = _radix_ui_react_tabs__WEBPACK_IMPORTED_MODULE_3__.Trigger.displayName;\nconst TabsContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c4 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_tabs__WEBPACK_IMPORTED_MODULE_3__.Content, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/tabs.tsx\",\n lineNumber: 44,\n columnNumber: 3\n }, undefined);\n});\n_c5 = TabsContent;\nTabsContent.displayName = _radix_ui_react_tabs__WEBPACK_IMPORTED_MODULE_3__.Content.displayName;\n\nvar _c, _c1, _c2, _c3, _c4, _c5;\n$RefreshReg$(_c, \"TabsList$React.forwardRef\");\n$RefreshReg$(_c1, \"TabsList\");\n$RefreshReg$(_c2, \"TabsTrigger$React.forwardRef\");\n$RefreshReg$(_c3, \"TabsTrigger\");\n$RefreshReg$(_c4, \"TabsContent$React.forwardRef\");\n$RefreshReg$(_c5, \"TabsContent\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvdGFicy50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUU4QjtBQUN1QjtBQUVyQjtBQUVoQyxNQUFNRyxPQUFPRixzREFBa0I7QUFFL0IsTUFBTUkseUJBQVdMLDZDQUFnQixNQUcvQixRQUEwQk87UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDUixzREFBa0I7UUFDakJNLEtBQUtBO1FBQ0xDLFdBQVdOLDhDQUFFQSxDQUNYLDhGQUNBTTtRQUVELEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JKLFNBQVNNLFdBQVcsR0FBR1Ysc0RBQWtCLENBQUNVLFdBQVc7QUFFckQsTUFBTUMsNEJBQWNaLDZDQUFnQixPQUdsQyxRQUEwQk87UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDUix5REFBcUI7UUFDcEJNLEtBQUtBO1FBQ0xDLFdBQVdOLDhDQUFFQSxDQUNYLHVZQUNBTTtRQUVELEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JHLFlBQVlELFdBQVcsR0FBR1YseURBQXFCLENBQUNVLFdBQVc7QUFFM0QsTUFBTUcsNEJBQWNkLDZDQUFnQixPQUdsQyxRQUEwQk87UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDUix5REFBcUI7UUFDcEJNLEtBQUtBO1FBQ0xDLFdBQVdOLDhDQUFFQSxDQUNYLG1JQUNBTTtRQUVELEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JLLFlBQVlILFdBQVcsR0FBR1YseURBQXFCLENBQUNVLFdBQVc7QUFFUiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9jb21wb25lbnRzL3VpL3RhYnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgKiBhcyBUYWJzUHJpbWl0aXZlIGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdGFic1wiXG5cbmltcG9ydCB7IGNuIH0gZnJvbSBcIkAvbGliL3V0aWxzXCJcblxuY29uc3QgVGFicyA9IFRhYnNQcmltaXRpdmUuUm9vdFxuXG5jb25zdCBUYWJzTGlzdCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFRhYnNQcmltaXRpdmUuTGlzdD4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgVGFic1ByaW1pdGl2ZS5MaXN0PlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8VGFic1ByaW1pdGl2ZS5MaXN0XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwiaW5saW5lLWZsZXggaC0xMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1tZCBiZy1tdXRlZCBwLTEgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5UYWJzTGlzdC5kaXNwbGF5TmFtZSA9IFRhYnNQcmltaXRpdmUuTGlzdC5kaXNwbGF5TmFtZVxuXG5jb25zdCBUYWJzVHJpZ2dlciA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFRhYnNQcmltaXRpdmUuVHJpZ2dlcj4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgVGFic1ByaW1pdGl2ZS5UcmlnZ2VyPlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8VGFic1ByaW1pdGl2ZS5UcmlnZ2VyXG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHdoaXRlc3BhY2Utbm93cmFwIHJvdW5kZWQtc20gcHgtMyBweS0xLjUgdGV4dC1zbSBmb250LW1lZGl1bSByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIHRyYW5zaXRpb24tYWxsIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtMiBkaXNhYmxlZDpwb2ludGVyLWV2ZW50cy1ub25lIGRpc2FibGVkOm9wYWNpdHktNTAgZGF0YS1bc3RhdGU9YWN0aXZlXTpiZy1iYWNrZ3JvdW5kIGRhdGEtW3N0YXRlPWFjdGl2ZV06dGV4dC1mb3JlZ3JvdW5kIGRhdGEtW3N0YXRlPWFjdGl2ZV06c2hhZG93LXNtXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5UYWJzVHJpZ2dlci5kaXNwbGF5TmFtZSA9IFRhYnNQcmltaXRpdmUuVHJpZ2dlci5kaXNwbGF5TmFtZVxuXG5jb25zdCBUYWJzQ29udGVudCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFRhYnNQcmltaXRpdmUuQ29udGVudD4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgVGFic1ByaW1pdGl2ZS5Db250ZW50PlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8VGFic1ByaW1pdGl2ZS5Db250ZW50XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwibXQtMiByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtMlwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuVGFic0NvbnRlbnQuZGlzcGxheU5hbWUgPSBUYWJzUHJpbWl0aXZlLkNvbnRlbnQuZGlzcGxheU5hbWVcblxuZXhwb3J0IHsgVGFicywgVGFic0xpc3QsIFRhYnNUcmlnZ2VyLCBUYWJzQ29udGVudCB9XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJUYWJzUHJpbWl0aXZlIiwiY24iLCJUYWJzIiwiUm9vdCIsIlRhYnNMaXN0IiwiZm9yd2FyZFJlZiIsInJlZiIsImNsYXNzTmFtZSIsInByb3BzIiwiTGlzdCIsImRpc3BsYXlOYW1lIiwiVGFic1RyaWdnZXIiLCJUcmlnZ2VyIiwiVGFic0NvbnRlbnQiLCJDb250ZW50Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/tabs.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/tooltip.tsx": /*!***********************************!*\ !*** ./components/ui/tooltip.tsx ***! \***********************************/ /***/ ((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 */ Tooltip: () => (/* binding */ Tooltip),\n/* harmony export */ TooltipContent: () => (/* binding */ TooltipContent),\n/* harmony export */ TooltipProvider: () => (/* binding */ TooltipProvider),\n/* harmony export */ TooltipTrigger: () => (/* binding */ TooltipTrigger)\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 _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-tooltip */ \"(app-pages-browser)/./node_modules/@radix-ui/react-tooltip/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Tooltip,TooltipTrigger,TooltipContent,TooltipProvider auto */ \n\n\n\nconst TooltipProvider = _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_3__.Provider;\nconst Tooltip = _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_3__.Root;\nconst TooltipTrigger = _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_3__.Trigger;\nconst TooltipContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, sideOffset = 4, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_3__.Content, {\n ref: ref,\n sideOffset: sideOffset,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/tooltip.tsx\",\n lineNumber: 18,\n columnNumber: 3\n }, undefined);\n});\n_c1 = TooltipContent;\nTooltipContent.displayName = _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_3__.Content.displayName;\n\nvar _c, _c1;\n$RefreshReg$(_c, \"TooltipContent$React.forwardRef\");\n$RefreshReg$(_c1, \"TooltipContent\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvdG9vbHRpcC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUU4QjtBQUM2QjtBQUUzQjtBQUVoQyxNQUFNRyxrQkFBa0JGLDZEQUF5QjtBQUVqRCxNQUFNSSxVQUFVSix5REFBcUI7QUFFckMsTUFBTU0saUJBQWlCTiw0REFBd0I7QUFFL0MsTUFBTVEsK0JBQWlCVCw2Q0FBZ0IsTUFHckMsUUFBMENXO1FBQXpDLEVBQUVDLFNBQVMsRUFBRUMsYUFBYSxDQUFDLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEMsOERBQUNiLDREQUF3QjtRQUN2QlUsS0FBS0E7UUFDTEUsWUFBWUE7UUFDWkQsV0FBV1YsOENBQUVBLENBQ1gsc1lBQ0FVO1FBRUQsR0FBR0UsS0FBSzs7Ozs7Ozs7QUFHYkwsZUFBZU8sV0FBVyxHQUFHZiw0REFBd0IsQ0FBQ2UsV0FBVztBQUVFIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2NvbXBvbmVudHMvdWkvdG9vbHRpcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCAqIGFzIFRvb2x0aXBQcmltaXRpdmUgZnJvbSBcIkByYWRpeC11aS9yZWFjdC10b29sdGlwXCJcblxuaW1wb3J0IHsgY24gfSBmcm9tIFwiQC9saWIvdXRpbHNcIlxuXG5jb25zdCBUb29sdGlwUHJvdmlkZXIgPSBUb29sdGlwUHJpbWl0aXZlLlByb3ZpZGVyXG5cbmNvbnN0IFRvb2x0aXAgPSBUb29sdGlwUHJpbWl0aXZlLlJvb3RcblxuY29uc3QgVG9vbHRpcFRyaWdnZXIgPSBUb29sdGlwUHJpbWl0aXZlLlRyaWdnZXJcblxuY29uc3QgVG9vbHRpcENvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBUb29sdGlwUHJpbWl0aXZlLkNvbnRlbnQ+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFRvb2x0aXBQcmltaXRpdmUuQ29udGVudD5cbj4oKHsgY2xhc3NOYW1lLCBzaWRlT2Zmc2V0ID0gNCwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxUb29sdGlwUHJpbWl0aXZlLkNvbnRlbnRcbiAgICByZWY9e3JlZn1cbiAgICBzaWRlT2Zmc2V0PXtzaWRlT2Zmc2V0fVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcInotNTAgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtbWQgYm9yZGVyIGJnLXBvcG92ZXIgcHgtMyBweS0xLjUgdGV4dC1zbSB0ZXh0LXBvcG92ZXItZm9yZWdyb3VuZCBzaGFkb3ctbWQgYW5pbWF0ZS1pbiBmYWRlLWluLTAgem9vbS1pbi05NSBkYXRhLVtzdGF0ZT1jbG9zZWRdOmFuaW1hdGUtb3V0IGRhdGEtW3N0YXRlPWNsb3NlZF06ZmFkZS1vdXQtMCBkYXRhLVtzdGF0ZT1jbG9zZWRdOnpvb20tb3V0LTk1IGRhdGEtW3NpZGU9Ym90dG9tXTpzbGlkZS1pbi1mcm9tLXRvcC0yIGRhdGEtW3NpZGU9bGVmdF06c2xpZGUtaW4tZnJvbS1yaWdodC0yIGRhdGEtW3NpZGU9cmlnaHRdOnNsaWRlLWluLWZyb20tbGVmdC0yIGRhdGEtW3NpZGU9dG9wXTpzbGlkZS1pbi1mcm9tLWJvdHRvbS0yXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5Ub29sdGlwQ29udGVudC5kaXNwbGF5TmFtZSA9IFRvb2x0aXBQcmltaXRpdmUuQ29udGVudC5kaXNwbGF5TmFtZVxuXG5leHBvcnQgeyBUb29sdGlwLCBUb29sdGlwVHJpZ2dlciwgVG9vbHRpcENvbnRlbnQsIFRvb2x0aXBQcm92aWRlciB9XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJUb29sdGlwUHJpbWl0aXZlIiwiY24iLCJUb29sdGlwUHJvdmlkZXIiLCJQcm92aWRlciIsIlRvb2x0aXAiLCJSb290IiwiVG9vbHRpcFRyaWdnZXIiLCJUcmlnZ2VyIiwiVG9vbHRpcENvbnRlbnQiLCJmb3J3YXJkUmVmIiwicmVmIiwiY2xhc3NOYW1lIiwic2lkZU9mZnNldCIsInByb3BzIiwiQ29udGVudCIsImRpc3BsYXlOYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/tooltip.tsx\n")); /***/ }), /***/ "(app-pages-browser)/./components/ui/use-toast.ts": /*!************************************!*\ !*** ./components/ui/use-toast.ts ***! \************************************/ /***/ ((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 */ reducer: () => (/* binding */ reducer),\n/* harmony export */ toast: () => (/* binding */ toast),\n/* harmony export */ useToast: () => (/* binding */ useToast)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ reducer,useToast,toast auto */ // Inspired by react-hot-toast library\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\"\n};\nlet count = 0;\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\nconst toastTimeouts = new Map();\nconst addToRemoveQueue = (toastId)=>{\n if (toastTimeouts.has(toastId)) {\n return;\n }\n const timeout = setTimeout(()=>{\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId\n });\n }, TOAST_REMOVE_DELAY);\n toastTimeouts.set(toastId, timeout);\n};\nconst reducer = (state, action)=>{\n switch(action.type){\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [\n action.toast,\n ...state.toasts\n ].slice(0, TOAST_LIMIT)\n };\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t)=>t.id === action.toast.id ? {\n ...t,\n ...action.toast\n } : t)\n };\n case \"DISMISS_TOAST\":\n {\n const { toastId } = action;\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast)=>{\n addToRemoveQueue(toast.id);\n });\n }\n return {\n ...state,\n toasts: state.toasts.map((t)=>t.id === toastId || toastId === undefined ? {\n ...t,\n open: false\n } : t)\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: []\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t)=>t.id !== action.toastId)\n };\n }\n};\nconst listeners = [];\nlet memoryState = {\n toasts: []\n};\nfunction dispatch(action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener)=>{\n listener(memoryState);\n });\n}\nfunction toast(param) {\n let { ...props } = param;\n const id = genId();\n const update = (props)=>dispatch({\n type: \"UPDATE_TOAST\",\n toast: {\n ...props,\n id\n }\n });\n const dismiss = ()=>dispatch({\n type: \"DISMISS_TOAST\",\n toastId: id\n });\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open)=>{\n if (!open) dismiss();\n }\n }\n });\n return {\n id: id,\n dismiss,\n update\n };\n}\nfunction useToast() {\n const [state, setState] = react__WEBPACK_IMPORTED_MODULE_0__.useState(memoryState);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"useToast.useEffect\": ()=>{\n listeners.push(setState);\n return ({\n \"useToast.useEffect\": ()=>{\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n }\n })[\"useToast.useEffect\"];\n }\n }[\"useToast.useEffect\"], [\n state\n ]);\n return {\n ...state,\n toast,\n dismiss: (toastId)=>dispatch({\n type: \"DISMISS_TOAST\",\n toastId\n })\n };\n}\n\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvdXNlLXRvYXN0LnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OzRFQUVBLHNDQUFzQztBQUNSO0FBTzlCLE1BQU1DLGNBQWM7QUFDcEIsTUFBTUMscUJBQXFCO0FBUzNCLE1BQU1DLGNBQWM7SUFDbEJDLFdBQVc7SUFDWEMsY0FBYztJQUNkQyxlQUFlO0lBQ2ZDLGNBQWM7QUFDaEI7QUFFQSxJQUFJQyxRQUFRO0FBRVosU0FBU0M7SUFDUEQsUUFBUSxDQUFDQSxRQUFRLEtBQUtFLE9BQU9DLGdCQUFnQjtJQUM3QyxPQUFPSCxNQUFNSSxRQUFRO0FBQ3ZCO0FBMEJBLE1BQU1DLGdCQUFnQixJQUFJQztBQUUxQixNQUFNQyxtQkFBbUIsQ0FBQ0M7SUFDeEIsSUFBSUgsY0FBY0ksR0FBRyxDQUFDRCxVQUFVO1FBQzlCO0lBQ0Y7SUFFQSxNQUFNRSxVQUFVQyxXQUFXO1FBQ3pCTixjQUFjTyxNQUFNLENBQUNKO1FBQ3JCSyxTQUFTO1lBQ1BDLE1BQU07WUFDTk4sU0FBU0E7UUFDWDtJQUNGLEdBQUdkO0lBRUhXLGNBQWNVLEdBQUcsQ0FBQ1AsU0FBU0U7QUFDN0I7QUFFTyxNQUFNTSxVQUFVLENBQUNDLE9BQWNDO0lBQ3BDLE9BQVFBLE9BQU9KLElBQUk7UUFDakIsS0FBSztZQUNILE9BQU87Z0JBQ0wsR0FBR0csS0FBSztnQkFDUkUsUUFBUTtvQkFBQ0QsT0FBT0UsS0FBSzt1QkFBS0gsTUFBTUUsTUFBTTtpQkFBQyxDQUFDRSxLQUFLLENBQUMsR0FBRzVCO1lBQ25EO1FBRUYsS0FBSztZQUNILE9BQU87Z0JBQ0wsR0FBR3dCLEtBQUs7Z0JBQ1JFLFFBQVFGLE1BQU1FLE1BQU0sQ0FBQ0csR0FBRyxDQUFDLENBQUNDLElBQ3hCQSxFQUFFQyxFQUFFLEtBQUtOLE9BQU9FLEtBQUssQ0FBQ0ksRUFBRSxHQUFHO3dCQUFFLEdBQUdELENBQUM7d0JBQUUsR0FBR0wsT0FBT0UsS0FBSztvQkFBQyxJQUFJRztZQUUzRDtRQUVGLEtBQUs7WUFBaUI7Z0JBQ3BCLE1BQU0sRUFBRWYsT0FBTyxFQUFFLEdBQUdVO2dCQUVwQiwyRUFBMkU7Z0JBQzNFLHVDQUF1QztnQkFDdkMsSUFBSVYsU0FBUztvQkFDWEQsaUJBQWlCQztnQkFDbkIsT0FBTztvQkFDTFMsTUFBTUUsTUFBTSxDQUFDTSxPQUFPLENBQUMsQ0FBQ0w7d0JBQ3BCYixpQkFBaUJhLE1BQU1JLEVBQUU7b0JBQzNCO2dCQUNGO2dCQUVBLE9BQU87b0JBQ0wsR0FBR1AsS0FBSztvQkFDUkUsUUFBUUYsTUFBTUUsTUFBTSxDQUFDRyxHQUFHLENBQUMsQ0FBQ0MsSUFDeEJBLEVBQUVDLEVBQUUsS0FBS2hCLFdBQVdBLFlBQVlrQixZQUM1Qjs0QkFDRSxHQUFHSCxDQUFDOzRCQUNKSSxNQUFNO3dCQUNSLElBQ0FKO2dCQUVSO1lBQ0Y7UUFDQSxLQUFLO1lBQ0gsSUFBSUwsT0FBT1YsT0FBTyxLQUFLa0IsV0FBVztnQkFDaEMsT0FBTztvQkFDTCxHQUFHVCxLQUFLO29CQUNSRSxRQUFRLEVBQUU7Z0JBQ1o7WUFDRjtZQUNBLE9BQU87Z0JBQ0wsR0FBR0YsS0FBSztnQkFDUkUsUUFBUUYsTUFBTUUsTUFBTSxDQUFDUyxNQUFNLENBQUMsQ0FBQ0wsSUFBTUEsRUFBRUMsRUFBRSxLQUFLTixPQUFPVixPQUFPO1lBQzVEO0lBQ0o7QUFDRixFQUFDO0FBRUQsTUFBTXFCLFlBQTJDLEVBQUU7QUFFbkQsSUFBSUMsY0FBcUI7SUFBRVgsUUFBUSxFQUFFO0FBQUM7QUFFdEMsU0FBU04sU0FBU0ssTUFBYztJQUM5QlksY0FBY2QsUUFBUWMsYUFBYVo7SUFDbkNXLFVBQVVKLE9BQU8sQ0FBQyxDQUFDTTtRQUNqQkEsU0FBU0Q7SUFDWDtBQUNGO0FBSUEsU0FBU1YsTUFBTSxLQUFtQjtRQUFuQixFQUFFLEdBQUdZLE9BQWMsR0FBbkI7SUFDYixNQUFNUixLQUFLdkI7SUFFWCxNQUFNZ0MsU0FBUyxDQUFDRCxRQUNkbkIsU0FBUztZQUNQQyxNQUFNO1lBQ05NLE9BQU87Z0JBQUUsR0FBR1ksS0FBSztnQkFBRVI7WUFBRztRQUN4QjtJQUNGLE1BQU1VLFVBQVUsSUFBTXJCLFNBQVM7WUFBRUMsTUFBTTtZQUFpQk4sU0FBU2dCO1FBQUc7SUFFcEVYLFNBQVM7UUFDUEMsTUFBTTtRQUNOTSxPQUFPO1lBQ0wsR0FBR1ksS0FBSztZQUNSUjtZQUNBRyxNQUFNO1lBQ05RLGNBQWMsQ0FBQ1I7Z0JBQ2IsSUFBSSxDQUFDQSxNQUFNTztZQUNiO1FBQ0Y7SUFDRjtJQUVBLE9BQU87UUFDTFYsSUFBSUE7UUFDSlU7UUFDQUQ7SUFDRjtBQUNGO0FBRUEsU0FBU0c7SUFDUCxNQUFNLENBQUNuQixPQUFPb0IsU0FBUyxHQUFHN0MsMkNBQWMsQ0FBUXNDO0lBRWhEdEMsNENBQWU7OEJBQUM7WUFDZHFDLFVBQVVXLElBQUksQ0FBQ0g7WUFDZjtzQ0FBTztvQkFDTCxNQUFNSSxRQUFRWixVQUFVYSxPQUFPLENBQUNMO29CQUNoQyxJQUFJSSxRQUFRLENBQUMsR0FBRzt3QkFDZFosVUFBVWMsTUFBTSxDQUFDRixPQUFPO29CQUMxQjtnQkFDRjs7UUFDRjs2QkFBRztRQUFDeEI7S0FBTTtJQUVWLE9BQU87UUFDTCxHQUFHQSxLQUFLO1FBQ1JHO1FBQ0FjLFNBQVMsQ0FBQzFCLFVBQXFCSyxTQUFTO2dCQUFFQyxNQUFNO2dCQUFpQk47WUFBUTtJQUMzRTtBQUNGO0FBRTBCIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2NvbXBvbmVudHMvdWkvdXNlLXRvYXN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbi8vIEluc3BpcmVkIGJ5IHJlYWN0LWhvdC10b2FzdCBsaWJyYXJ5XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgdHlwZSB7XG4gIFRvYXN0QWN0aW9uRWxlbWVudCxcbiAgVG9hc3RQcm9wcyxcbn0gZnJvbSBcIkAvY29tcG9uZW50cy91aS90b2FzdFwiXG5cbmNvbnN0IFRPQVNUX0xJTUlUID0gMVxuY29uc3QgVE9BU1RfUkVNT1ZFX0RFTEFZID0gMTAwMDAwMFxuXG50eXBlIFRvYXN0ZXJUb2FzdCA9IFRvYXN0UHJvcHMgJiB7XG4gIGlkOiBzdHJpbmdcbiAgdGl0bGU/OiBSZWFjdC5SZWFjdE5vZGVcbiAgZGVzY3JpcHRpb24/OiBSZWFjdC5SZWFjdE5vZGVcbiAgYWN0aW9uPzogVG9hc3RBY3Rpb25FbGVtZW50XG59XG5cbmNvbnN0IGFjdGlvblR5cGVzID0ge1xuICBBRERfVE9BU1Q6IFwiQUREX1RPQVNUXCIsXG4gIFVQREFURV9UT0FTVDogXCJVUERBVEVfVE9BU1RcIixcbiAgRElTTUlTU19UT0FTVDogXCJESVNNSVNTX1RPQVNUXCIsXG4gIFJFTU9WRV9UT0FTVDogXCJSRU1PVkVfVE9BU1RcIixcbn0gYXMgY29uc3RcblxubGV0IGNvdW50ID0gMFxuXG5mdW5jdGlvbiBnZW5JZCgpIHtcbiAgY291bnQgPSAoY291bnQgKyAxKSAlIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSXG4gIHJldHVybiBjb3VudC50b1N0cmluZygpXG59XG5cbnR5cGUgQWN0aW9uVHlwZSA9IHR5cGVvZiBhY3Rpb25UeXBlc1xuXG50eXBlIEFjdGlvbiA9XG4gIHwge1xuICAgICAgdHlwZTogQWN0aW9uVHlwZVtcIkFERF9UT0FTVFwiXVxuICAgICAgdG9hc3Q6IFRvYXN0ZXJUb2FzdFxuICAgIH1cbiAgfCB7XG4gICAgICB0eXBlOiBBY3Rpb25UeXBlW1wiVVBEQVRFX1RPQVNUXCJdXG4gICAgICB0b2FzdDogUGFydGlhbDxUb2FzdGVyVG9hc3Q+XG4gICAgfVxuICB8IHtcbiAgICAgIHR5cGU6IEFjdGlvblR5cGVbXCJESVNNSVNTX1RPQVNUXCJdXG4gICAgICB0b2FzdElkPzogVG9hc3RlclRvYXN0W1wiaWRcIl1cbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogQWN0aW9uVHlwZVtcIlJFTU9WRV9UT0FTVFwiXVxuICAgICAgdG9hc3RJZD86IFRvYXN0ZXJUb2FzdFtcImlkXCJdXG4gICAgfVxuXG5pbnRlcmZhY2UgU3RhdGUge1xuICB0b2FzdHM6IFRvYXN0ZXJUb2FzdFtdXG59XG5cbmNvbnN0IHRvYXN0VGltZW91dHMgPSBuZXcgTWFwPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4+KClcblxuY29uc3QgYWRkVG9SZW1vdmVRdWV1ZSA9ICh0b2FzdElkOiBzdHJpbmcpID0+IHtcbiAgaWYgKHRvYXN0VGltZW91dHMuaGFzKHRvYXN0SWQpKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgdG9hc3RUaW1lb3V0cy5kZWxldGUodG9hc3RJZClcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBcIlJFTU9WRV9UT0FTVFwiLFxuICAgICAgdG9hc3RJZDogdG9hc3RJZCxcbiAgICB9KVxuICB9LCBUT0FTVF9SRU1PVkVfREVMQVkpXG5cbiAgdG9hc3RUaW1lb3V0cy5zZXQodG9hc3RJZCwgdGltZW91dClcbn1cblxuZXhwb3J0IGNvbnN0IHJlZHVjZXIgPSAoc3RhdGU6IFN0YXRlLCBhY3Rpb246IEFjdGlvbik6IFN0YXRlID0+IHtcbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgXCJBRERfVE9BU1RcIjpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICB0b2FzdHM6IFthY3Rpb24udG9hc3QsIC4uLnN0YXRlLnRvYXN0c10uc2xpY2UoMCwgVE9BU1RfTElNSVQpLFxuICAgICAgfVxuXG4gICAgY2FzZSBcIlVQREFURV9UT0FTVFwiOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHRvYXN0czogc3RhdGUudG9hc3RzLm1hcCgodCkgPT5cbiAgICAgICAgICB0LmlkID09PSBhY3Rpb24udG9hc3QuaWQgPyB7IC4uLnQsIC4uLmFjdGlvbi50b2FzdCB9IDogdFxuICAgICAgICApLFxuICAgICAgfVxuXG4gICAgY2FzZSBcIkRJU01JU1NfVE9BU1RcIjoge1xuICAgICAgY29uc3QgeyB0b2FzdElkIH0gPSBhY3Rpb25cblxuICAgICAgLy8gISBTaWRlIGVmZmVjdHMgISAtIFRoaXMgY291bGQgYmUgZXh0cmFjdGVkIGludG8gYSBkaXNtaXNzVG9hc3QoKSBhY3Rpb24sXG4gICAgICAvLyBidXQgSSdsbCBrZWVwIGl0IGhlcmUgZm9yIHNpbXBsaWNpdHlcbiAgICAgIGlmICh0b2FzdElkKSB7XG4gICAgICAgIGFkZFRvUmVtb3ZlUXVldWUodG9hc3RJZClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXRlLnRvYXN0cy5mb3JFYWNoKCh0b2FzdCkgPT4ge1xuICAgICAgICAgIGFkZFRvUmVtb3ZlUXVldWUodG9hc3QuaWQpXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICB0b2FzdHM6IHN0YXRlLnRvYXN0cy5tYXAoKHQpID0+XG4gICAgICAgICAgdC5pZCA9PT0gdG9hc3RJZCB8fCB0b2FzdElkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIC4uLnQsXG4gICAgICAgICAgICAgICAgb3BlbjogZmFsc2UsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogdFxuICAgICAgICApLFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIFwiUkVNT1ZFX1RPQVNUXCI6XG4gICAgICBpZiAoYWN0aW9uLnRvYXN0SWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIHRvYXN0czogW10sXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICB0b2FzdHM6IHN0YXRlLnRvYXN0cy5maWx0ZXIoKHQpID0+IHQuaWQgIT09IGFjdGlvbi50b2FzdElkKSxcbiAgICAgIH1cbiAgfVxufVxuXG5jb25zdCBsaXN0ZW5lcnM6IEFycmF5PChzdGF0ZTogU3RhdGUpID0+IHZvaWQ+ID0gW11cblxubGV0IG1lbW9yeVN0YXRlOiBTdGF0ZSA9IHsgdG9hc3RzOiBbXSB9XG5cbmZ1bmN0aW9uIGRpc3BhdGNoKGFjdGlvbjogQWN0aW9uKSB7XG4gIG1lbW9yeVN0YXRlID0gcmVkdWNlcihtZW1vcnlTdGF0ZSwgYWN0aW9uKVxuICBsaXN0ZW5lcnMuZm9yRWFjaCgobGlzdGVuZXIpID0+IHtcbiAgICBsaXN0ZW5lcihtZW1vcnlTdGF0ZSlcbiAgfSlcbn1cblxudHlwZSBUb2FzdCA9IE9taXQ8VG9hc3RlclRvYXN0LCBcImlkXCI+XG5cbmZ1bmN0aW9uIHRvYXN0KHsgLi4ucHJvcHMgfTogVG9hc3QpIHtcbiAgY29uc3QgaWQgPSBnZW5JZCgpXG5cbiAgY29uc3QgdXBkYXRlID0gKHByb3BzOiBUb2FzdGVyVG9hc3QpID0+XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogXCJVUERBVEVfVE9BU1RcIixcbiAgICAgIHRvYXN0OiB7IC4uLnByb3BzLCBpZCB9LFxuICAgIH0pXG4gIGNvbnN0IGRpc21pc3MgPSAoKSA9PiBkaXNwYXRjaCh7IHR5cGU6IFwiRElTTUlTU19UT0FTVFwiLCB0b2FzdElkOiBpZCB9KVxuXG4gIGRpc3BhdGNoKHtcbiAgICB0eXBlOiBcIkFERF9UT0FTVFwiLFxuICAgIHRvYXN0OiB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGlkLFxuICAgICAgb3BlbjogdHJ1ZSxcbiAgICAgIG9uT3BlbkNoYW5nZTogKG9wZW4pID0+IHtcbiAgICAgICAgaWYgKCFvcGVuKSBkaXNtaXNzKClcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcblxuICByZXR1cm4ge1xuICAgIGlkOiBpZCxcbiAgICBkaXNtaXNzLFxuICAgIHVwZGF0ZSxcbiAgfVxufVxuXG5mdW5jdGlvbiB1c2VUb2FzdCgpIHtcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV0gPSBSZWFjdC51c2VTdGF0ZTxTdGF0ZT4obWVtb3J5U3RhdGUpXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBsaXN0ZW5lcnMucHVzaChzZXRTdGF0ZSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBsaXN0ZW5lcnMuaW5kZXhPZihzZXRTdGF0ZSlcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgIGxpc3RlbmVycy5zcGxpY2UoaW5kZXgsIDEpXG4gICAgICB9XG4gICAgfVxuICB9LCBbc3RhdGVdKVxuXG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgdG9hc3QsXG4gICAgZGlzbWlzczogKHRvYXN0SWQ/OiBzdHJpbmcpID0+IGRpc3BhdGNoKHsgdHlwZTogXCJESVNNSVNTX1RPQVNUXCIsIHRvYXN0SWQgfSksXG4gIH1cbn1cblxuZXhwb3J0IHsgdXNlVG9hc3QsIHRvYXN0IH1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlRPQVNUX0xJTUlUIiwiVE9BU1RfUkVNT1ZFX0RFTEFZIiwiYWN0aW9uVHlwZXMiLCJBRERfVE9BU1QiLCJVUERBVEVfVE9BU1QiLCJESVNNSVNTX1RPQVNUIiwiUkVNT1ZFX1RPQVNUIiwiY291bnQiLCJnZW5JZCIsIk51bWJlciIsIk1BWF9TQUZFX0lOVEVHRVIiLCJ0b1N0cmluZyIsInRvYXN0VGltZW91dHMiLCJNYXAiLCJhZGRUb1JlbW92ZVF1ZXVlIiwidG9hc3RJZCIsImhhcyIsInRpbWVvdXQiLCJzZXRUaW1lb3V0IiwiZGVsZXRlIiwiZGlzcGF0Y2giLCJ0eXBlIiwic2V0IiwicmVkdWNlciIsInN0YXRlIiwiYWN0aW9uIiwidG9hc3RzIiwidG9hc3QiLCJzbGljZSIsIm1hcCIsInQiLCJpZCIsImZvckVhY2giLCJ1bmRlZmluZWQiLCJvcGVuIiwiZmlsdGVyIiwibGlzdGVuZXJzIiwibWVtb3J5U3RhdGUiLCJsaXN0ZW5lciIsInByb3BzIiwidXBkYXRlIiwiZGlzbWlzcyIsIm9uT3BlbkNoYW5nZSIsInVzZVRvYXN0Iiwic2V0U3RhdGUiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInB1c2giLCJpbmRleCIsImluZGV4T2YiLCJzcGxpY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/use-toast.ts\n")); /***/ }), /***/ "(app-pages-browser)/./hooks/use-email-state.ts": /*!**********************************!*\ !*** ./hooks/use-email-state.ts ***! \**********************************/ /***/ ((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 */ useEmailState: () => (/* binding */ useEmailState)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_auth_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next-auth/react */ \"(app-pages-browser)/./node_modules/next-auth/react/index.js\");\n/* harmony import */ var next_auth_react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_auth_react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _use_toast__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./use-toast */ \"(app-pages-browser)/./hooks/use-toast.ts\");\n/* harmony import */ var _lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/reducers/emailReducer */ \"(app-pages-browser)/./lib/reducers/emailReducer.ts\");\n/* harmony import */ var _lib_services_prefetch_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/lib/services/prefetch-service */ \"(app-pages-browser)/./lib/services/prefetch-service.ts\");\n/* harmony import */ var _lib_utils_email_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/lib/utils/email-utils */ \"(app-pages-browser)/./lib/utils/email-utils.ts\");\n\n\n\n\n\n\nconst useEmailState = ()=>{\n var _session_user, _session_user1, _session_user2, _session_user3, _session_user4;\n const [state, dispatch] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(_lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__.emailReducer, _lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__.initialState);\n const { data: session } = (0,next_auth_react__WEBPACK_IMPORTED_MODULE_1__.useSession)();\n const { toast } = (0,_use_toast__WEBPACK_IMPORTED_MODULE_2__.useToast)();\n // Refs to track state\n const updateUnreadTimerRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const lastEmailViewedRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const failedFetchCountRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n const lastFolderRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const lastPageLoadedRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n const prevFolderRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const loadMoreTriggerTimeRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n // Expose dispatch function to window for external components\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)({\n \"useEmailState.useEffect\": ()=>{\n // Make dispatch available globally for older code\n window.dispatchEmailAction = dispatch;\n window.__emailStateDispatch = dispatch;\n // Clean up on unmount\n return ({\n \"useEmailState.useEffect\": ()=>{\n window.dispatchEmailAction = undefined;\n window.__emailStateDispatch = undefined;\n }\n })[\"useEmailState.useEffect\"];\n }\n }[\"useEmailState.useEffect\"], [\n dispatch\n ]);\n // Helper function to log operations\n const logEmailOp = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[logEmailOp]\": (operation, details, data)=>{\n const timestamp = new Date().toISOString().split('T')[1].substring(0, 12);\n console.log(\"[\".concat(timestamp, \"][EMAIL-STATE][\").concat(operation, \"] \").concat(details));\n if (data) {\n console.log(\"[\".concat(timestamp, \"][EMAIL-STATE][DATA]\"), data);\n }\n }\n }[\"useEmailState.useCallback[logEmailOp]\"], []);\n // Load emails from the server\n const loadEmails = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[loadEmails]\": async function(page, perPage) {\n let isLoadMore = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;\n var _session_user;\n // CRITICAL FIX: Do important validation before setting loading state\n if (!(session === null || session === void 0 ? void 0 : (_session_user = session.user) === null || _session_user === void 0 ? void 0 : _session_user.id)) return;\n // CRITICAL FIX: Always log the isLoadMore parameter\n console.log(\"[DEBUG-LOAD_EMAILS] Called with isLoadMore=\".concat(isLoadMore, \", page=\").concat(page, \", currentEmails=\").concat(state.emails.length));\n // Set the current folder and account being loaded to detect changes\n const startFolder = state.currentFolder;\n const startAccount = state.selectedAccount ? state.selectedAccount.id : 'default';\n // CRITICAL FIX: Force loading state to true\n dispatch({\n type: 'SET_LOADING',\n payload: true\n });\n try {\n var _data_emails, _data_emails1;\n // Get normalized parameters using helper function with proper account ID handling\n const accountId = state.selectedAccount ? state.selectedAccount.id : undefined;\n const { normalizedFolder, effectiveAccountId, prefixedFolder } = (0,_lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__.normalizeFolderAndAccount)(state.currentFolder, accountId);\n logEmailOp('LOAD_EMAILS', \"Loading emails for \".concat(prefixedFolder, \" (account: \").concat(effectiveAccountId, \", isLoadMore: \").concat(isLoadMore, \", page: \").concat(page, \")\"));\n // Construct query parameters\n const queryParams = new URLSearchParams({\n folder: normalizedFolder,\n page: page.toString(),\n perPage: perPage.toString(),\n accountId: effectiveAccountId\n });\n // Debug log existing emails count\n if (isLoadMore) {\n console.log(\"[DEBUG-PAGINATION] Loading more emails. Current page: \".concat(page, \", existing emails: \").concat(state.emails.length));\n }\n // Try to get cached emails first\n logEmailOp('CACHE_CHECK', \"Checking cache for \".concat(prefixedFolder, \", page: \").concat(page));\n const cachedEmails = await (0,_lib_services_prefetch_service__WEBPACK_IMPORTED_MODULE_4__.getCachedEmailsWithTimeout)(session.user.id, prefixedFolder, page, perPage, 100, effectiveAccountId);\n if (cachedEmails) {\n var _cachedEmails_emails;\n logEmailOp('CACHE_HIT', \"Using cached data for \".concat(prefixedFolder, \", page: \").concat(page, \", emails: \").concat(((_cachedEmails_emails = cachedEmails.emails) === null || _cachedEmails_emails === void 0 ? void 0 : _cachedEmails_emails.length) || 0, \", isLoadMore: \").concat(isLoadMore));\n // Ensure cached data has emails array property\n if (Array.isArray(cachedEmails.emails)) {\n // CRITICAL FIX: Double check we're using the right action type based on isLoadMore param\n console.log(\"[DEBUG-CACHE_HIT] Dispatching \".concat(isLoadMore ? 'APPEND_EMAILS' : 'SET_EMAILS', \" with \").concat(cachedEmails.emails.length, \" emails\"));\n // Dispatch appropriate action based on if we're loading more - DO NOT OVERRIDE isLoadMore!\n dispatch({\n type: isLoadMore ? 'APPEND_EMAILS' : 'SET_EMAILS',\n payload: cachedEmails.emails\n });\n // Set pagination info from cache if available\n if (cachedEmails.totalEmails) {\n dispatch({\n type: 'SET_TOTAL_EMAILS',\n payload: cachedEmails.totalEmails\n });\n }\n if (cachedEmails.totalPages) {\n dispatch({\n type: 'SET_TOTAL_PAGES',\n payload: cachedEmails.totalPages\n });\n }\n // Update available mailboxes if provided\n if (cachedEmails.mailboxes && cachedEmails.mailboxes.length > 0) {\n dispatch({\n type: 'SET_MAILBOXES',\n payload: cachedEmails.mailboxes\n });\n }\n }\n // CRITICAL FIX: If this was a loadMore operation, check the result after the dispatch\n if (isLoadMore) {\n setTimeout({\n \"useEmailState.useCallback[loadEmails]\": ()=>{\n console.log(\"[DEBUG-CACHE_HIT_APPEND] After \".concat(isLoadMore ? 'APPEND' : 'SET', \", email count is now: \").concat(state.emails.length));\n }\n }[\"useEmailState.useCallback[loadEmails]\"], 0);\n }\n return;\n }\n // Fetch emails from API if no cache hit\n logEmailOp('API_FETCH', \"Fetching emails from API: \".concat(queryParams.toString(), \", isLoadMore: \").concat(isLoadMore));\n console.log(\"[DEBUG-API_FETCH] Fetching from /api/courrier/emails?\".concat(queryParams.toString()));\n const response = await fetch(\"/api/courrier/emails?\".concat(queryParams.toString()));\n if (!response.ok) {\n // CRITICAL FIX: Try to recover from fetch errors by retrying with different pagination\n if (isLoadMore && page > 1) {\n logEmailOp('ERROR_RECOVERY', \"Failed to fetch emails for page \".concat(page, \", attempting to recover by decrementing page\"));\n console.log(\"[DEBUG-ERROR] API returned \".concat(response.status, \" for page \").concat(page));\n // If we're loading more and there's an error, just decrement the page to avoid getting stuck\n dispatch({\n type: 'SET_PAGE',\n payload: page - 1\n });\n dispatch({\n type: 'SET_LOADING',\n payload: false\n });\n // Also reset total pages to try again\n dispatch({\n type: 'SET_TOTAL_PAGES',\n payload: page\n });\n return;\n }\n const errorData = await response.json();\n throw new Error(errorData.error || 'Failed to fetch emails');\n }\n const data = await response.json();\n console.log(\"[DEBUG-API_RESPONSE] Got response with \".concat(((_data_emails = data.emails) === null || _data_emails === void 0 ? void 0 : _data_emails.length) || 0, \" emails, totalPages: \").concat(data.totalPages, \", totalEmails: \").concat(data.totalEmails, \", isLoadMore: \").concat(isLoadMore));\n // CRITICAL FIX: Enhanced empty results handling\n if (!data.emails || data.emails.length === 0) {\n console.log(\"[DEBUG-EMPTY] No emails in response for page \".concat(page));\n // If we're at a page > 1 and got no results, the paging is off, so try again with page 1\n if (page > 1 && !isLoadMore) {\n logEmailOp('EMPTY_RESULTS', \"No emails returned for page \".concat(page, \", resetting to page 1\"));\n dispatch({\n type: 'SET_PAGE',\n payload: 1\n });\n dispatch({\n type: 'SET_LOADING',\n payload: false\n });\n return;\n }\n // If we're already at page 1, just update the state with no emails\n if (!isLoadMore) {\n logEmailOp('EMPTY_RESULTS', \"No emails found in \".concat(state.currentFolder));\n dispatch({\n type: 'SET_EMAILS',\n payload: []\n });\n dispatch({\n type: 'SET_TOTAL_EMAILS',\n payload: 0\n });\n dispatch({\n type: 'SET_TOTAL_PAGES',\n payload: 0\n });\n } else {\n // For load more, just set loading to false but keep existing emails\n dispatch({\n type: 'SET_LOADING',\n payload: false\n });\n }\n return;\n }\n // Ensure all emails have proper account ID and folder format\n if (Array.isArray(data.emails)) {\n // Log email dates for debugging\n if (data.emails.length > 0) {\n logEmailOp('EMAIL_DATES', \"First few email dates before processing:\", data.emails.slice(0, 5).map({\n \"useEmailState.useCallback[loadEmails]\": (e)=>{\n var _e_subject;\n return {\n id: e.id.substring(0, 8),\n subject: (_e_subject = e.subject) === null || _e_subject === void 0 ? void 0 : _e_subject.substring(0, 20),\n date: e.date,\n dateObj: new Date(e.date),\n timestamp: new Date(e.date).getTime()\n };\n }\n }[\"useEmailState.useCallback[loadEmails]\"]));\n }\n data.emails.forEach({\n \"useEmailState.useCallback[loadEmails]\": (email)=>{\n // If email doesn't have an accountId, set it to the effective one\n if (!email.accountId) {\n email.accountId = effectiveAccountId;\n }\n // Ensure folder has the proper prefix format\n if (email.folder && !email.folder.includes(':')) {\n email.folder = \"\".concat(email.accountId, \":\").concat(email.folder);\n }\n // Ensure date is a valid Date object (handle strings or timestamps)\n if (email.date && !(email.date instanceof Date)) {\n try {\n // Convert to a proper Date object if it's a string or number\n const dateObj = new Date(email.date);\n // Verify it's a valid date\n if (!isNaN(dateObj.getTime())) {\n email.date = dateObj;\n }\n } catch (err) {\n // If conversion fails, log and use current date as fallback\n console.error(\"Invalid date format for email \".concat(email.id, \": \").concat(email.date));\n email.date = new Date();\n }\n }\n }\n }[\"useEmailState.useCallback[loadEmails]\"]);\n }\n // CRITICAL FIX: Log what we're about to do\n console.log(\"[DEBUG-DISPATCH] About to dispatch \".concat(isLoadMore ? 'APPEND_EMAILS' : 'SET_EMAILS', \" with \").concat(((_data_emails1 = data.emails) === null || _data_emails1 === void 0 ? void 0 : _data_emails1.length) || 0, \" emails\"));\n // Update state with fetched data\n dispatch({\n type: isLoadMore ? 'APPEND_EMAILS' : 'SET_EMAILS',\n payload: Array.isArray(data.emails) ? data.emails : []\n });\n // Double-check that we've updated the email list correctly after dispatch\n setTimeout({\n \"useEmailState.useCallback[loadEmails]\": ()=>{\n var _data_emails;\n console.log(\"[DEBUG-AFTER-DISPATCH] Email count is now: \".concat(state.emails.length, \", should include the \").concat(((_data_emails = data.emails) === null || _data_emails === void 0 ? void 0 : _data_emails.length) || 0, \" new emails we just loaded\"));\n }\n }[\"useEmailState.useCallback[loadEmails]\"], 0);\n if (data.totalEmails) {\n dispatch({\n type: 'SET_TOTAL_EMAILS',\n payload: data.totalEmails\n });\n }\n if (data.totalPages) {\n dispatch({\n type: 'SET_TOTAL_PAGES',\n payload: data.totalPages\n });\n }\n // Update available mailboxes if provided\n if (data.mailboxes && data.mailboxes.length > 0) {\n dispatch({\n type: 'SET_MAILBOXES',\n payload: data.mailboxes\n });\n }\n } catch (err) {\n logEmailOp('ERROR', \"Failed to load emails: \".concat(err instanceof Error ? err.message : String(err)));\n dispatch({\n type: 'SET_ERROR',\n payload: err instanceof Error ? err.message : 'Failed to load emails'\n });\n toast({\n variant: \"destructive\",\n title: \"Error\",\n description: err instanceof Error ? err.message : 'Failed to load emails'\n });\n } finally{\n var _state_selectedAccount;\n // CRITICAL FIX: Only clear loading state if the folder/account hasn't changed\n if (startFolder === state.currentFolder && startAccount === (((_state_selectedAccount = state.selectedAccount) === null || _state_selectedAccount === void 0 ? void 0 : _state_selectedAccount.id) || 'default')) {\n // Safe to clear loading state\n dispatch({\n type: 'SET_LOADING',\n payload: false\n });\n } else {\n console.log(\"[DEBUG-LOAD_EMAILS] Folder/account changed during load, not clearing loading state\");\n }\n }\n }\n }[\"useEmailState.useCallback[loadEmails]\"], [\n session === null || session === void 0 ? void 0 : (_session_user = session.user) === null || _session_user === void 0 ? void 0 : _session_user.id,\n state.currentFolder,\n state.selectedAccount,\n state.page,\n state.perPage,\n state.emails.length,\n toast,\n logEmailOp\n ]);\n // Change folder\n const changeFolder = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[changeFolder]\": async (folder, accountId)=>{\n logEmailOp('CHANGE_FOLDER', \"Changing to folder \".concat(folder, \" with account \").concat(accountId || 'default'));\n try {\n // CRITICAL FIX: Reset pagination state immediately\n lastPageLoadedRef.current = 0;\n // Reset page to 1 directly to prevent any issues with page effects\n // This will be atomic with the CHANGE_FOLDER action\n dispatch({\n type: 'SET_PAGE',\n payload: 1\n });\n // Clear existing emails - don't show old emails during load\n dispatch({\n type: 'SET_EMAILS',\n payload: []\n });\n // Set loading state explicitly - this is critical\n dispatch({\n type: 'SET_LOADING',\n payload: true\n });\n // This will handle folder setting in a single atomic operation\n dispatch({\n type: 'CHANGE_FOLDER',\n payload: {\n folder,\n accountId: accountId || 'default'\n }\n });\n // CRITICAL: The email loading will be triggered by the folder effect\n // We don't need to call loadEmails directly here\n } catch (error) {\n logEmailOp('ERROR', \"Failed to change folder: \".concat(error instanceof Error ? error.message : String(error)));\n dispatch({\n type: 'SET_ERROR',\n payload: error instanceof Error ? error.message : 'Failed to change folder'\n });\n // Always ensure loading state is cleared on error\n dispatch({\n type: 'SET_LOADING',\n payload: false\n });\n }\n }\n }[\"useEmailState.useCallback[changeFolder]\"], [\n logEmailOp,\n dispatch\n ]);\n // Select account\n const selectAccount = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[selectAccount]\": (account)=>{\n logEmailOp('SELECT_ACCOUNT', \"Selecting account: \".concat(account.email, \" (\").concat(account.id, \")\"));\n // Handle the entire account selection in a single atomic operation\n dispatch({\n type: 'SELECT_ACCOUNT',\n payload: account\n });\n // The folder loading will be triggered by the useEffect watching for currentFolder changes\n }\n }[\"useEmailState.useCallback[selectAccount]\"], [\n logEmailOp\n ]);\n // Handle email selection\n const handleEmailSelect = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[handleEmailSelect]\": async (emailId, accountId, folder)=>{\n logEmailOp('SELECT_EMAIL', \"Selecting email \".concat(emailId, \" from account \").concat(accountId, \" in folder \").concat(folder));\n if (!emailId) {\n dispatch({\n type: 'SELECT_EMAIL',\n payload: {\n emailId: '',\n accountId: '',\n folder: '',\n email: null\n }\n });\n return;\n }\n try {\n // Find the email in the current list\n const existingEmail = state.emails.find({\n \"useEmailState.useCallback[handleEmailSelect].existingEmail\": (e)=>e.id === emailId\n }[\"useEmailState.useCallback[handleEmailSelect].existingEmail\"]);\n if (existingEmail && existingEmail.contentFetched) {\n // Use the existing email if it has content already\n dispatch({\n type: 'SELECT_EMAIL',\n payload: {\n emailId,\n accountId,\n folder,\n email: existingEmail\n }\n });\n // Mark as read if not already\n if (!existingEmail.flags.seen) {\n markEmailAsRead(emailId, true, accountId);\n }\n return;\n }\n // Need to fetch the email content\n dispatch({\n type: 'SET_LOADING',\n payload: true\n });\n // Extract account ID from folder name if present and none was explicitly provided\n const { normalizedFolder, effectiveAccountId } = (0,_lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__.normalizeFolderAndAccount)(folder, accountId);\n // Fetch email content from API\n const response = await fetch(\"/api/courrier/\".concat(emailId, \"?folder=\").concat(normalizedFolder, \"&accountId=\").concat(effectiveAccountId));\n if (!response.ok) {\n throw new Error(\"Failed to fetch email content: \".concat(response.status));\n }\n const emailData = await response.json();\n // Mark the email as read on the server\n markEmailAsRead(emailId, true, effectiveAccountId);\n // Select the email\n dispatch({\n type: 'SELECT_EMAIL',\n payload: {\n emailId,\n accountId: effectiveAccountId,\n folder,\n email: emailData\n }\n });\n } catch (error) {\n logEmailOp('ERROR', \"Failed to select email: \".concat(error instanceof Error ? error.message : String(error)));\n dispatch({\n type: 'SET_ERROR',\n payload: error instanceof Error ? error.message : 'Failed to select email'\n });\n } finally{\n dispatch({\n type: 'SET_LOADING',\n payload: false\n });\n }\n }\n }[\"useEmailState.useCallback[handleEmailSelect]\"], [\n state.emails,\n logEmailOp\n ]);\n // Toggle email selection for multi-select\n const toggleEmailSelection = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[toggleEmailSelection]\": (emailId)=>{\n dispatch({\n type: 'TOGGLE_EMAIL_SELECTION',\n payload: emailId\n });\n }\n }[\"useEmailState.useCallback[toggleEmailSelection]\"], []);\n // Toggle select all\n const toggleSelectAll = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[toggleSelectAll]\": ()=>{\n dispatch({\n type: 'TOGGLE_SELECT_ALL'\n });\n }\n }[\"useEmailState.useCallback[toggleSelectAll]\"], []);\n // Mark email as read/unread\n const markEmailAsRead = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[markEmailAsRead]\": async (emailId, isRead, accountId)=>{\n try {\n // Find the email to get its account ID if not provided\n const email = state.emails.find({\n \"useEmailState.useCallback[markEmailAsRead].email\": (e)=>e.id === emailId\n }[\"useEmailState.useCallback[markEmailAsRead].email\"]);\n const effectiveAccountId = accountId || (email === null || email === void 0 ? void 0 : email.accountId) || 'default';\n const folder = (email === null || email === void 0 ? void 0 : email.folder) || state.currentFolder;\n // Extract normalized folder\n const { normalizedFolder } = (0,_lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__.normalizeFolderAndAccount)(folder, effectiveAccountId);\n logEmailOp('MARK_READ', \"Marking email \".concat(emailId, \" as \").concat(isRead ? 'read' : 'unread', \" in \").concat(normalizedFolder));\n // Update UI state immediately (optimistic update)\n dispatch({\n type: 'MARK_EMAIL_AS_READ',\n payload: {\n emailId,\n isRead,\n accountId: effectiveAccountId\n }\n });\n // NOTE: Don't update unread counts here - that's now handled by the updateUnreadCounts function\n // which is triggered by the email update above via the useEffect\n // Make API call to update on server\n const response = await fetch(\"/api/courrier/\".concat(emailId, \"/mark-read\"), {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n isRead,\n folder: normalizedFolder,\n accountId: effectiveAccountId\n })\n });\n if (!response.ok) {\n throw new Error('Failed to mark email as read');\n }\n return true;\n } catch (error) {\n logEmailOp('ERROR', \"Failed to mark email as read: \".concat(error instanceof Error ? error.message : String(error)));\n toast({\n variant: \"destructive\",\n title: \"Error\",\n description: 'Failed to update email read status'\n });\n return false;\n }\n }\n }[\"useEmailState.useCallback[markEmailAsRead]\"], [\n state.emails,\n state.currentFolder,\n toast,\n logEmailOp\n ]);\n // Toggle starred status\n const toggleStarred = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[toggleStarred]\": async (emailId)=>{\n try {\n // Find the email in current list\n const email = state.emails.find({\n \"useEmailState.useCallback[toggleStarred].email\": (e)=>e.id === emailId\n }[\"useEmailState.useCallback[toggleStarred].email\"]);\n if (!email) {\n throw new Error('Email not found');\n }\n const newFlaggedStatus = !email.flags.flagged;\n logEmailOp('TOGGLE_STAR', \"Setting starred status to \".concat(newFlaggedStatus, \" for email \").concat(emailId));\n // TODO: Implement optimistic update\n // Make API call\n const response = await fetch(\"/api/courrier/\".concat(emailId, \"/flag\"), {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n flagged: newFlaggedStatus,\n folder: email.folder,\n accountId: email.accountId\n })\n });\n if (!response.ok) {\n throw new Error('Failed to update star status');\n }\n // Reload emails to get updated state\n loadEmails(state.page, state.perPage, true);\n return true;\n } catch (error) {\n logEmailOp('ERROR', \"Failed to toggle star: \".concat(error instanceof Error ? error.message : String(error)));\n toast({\n variant: \"destructive\",\n title: \"Error\",\n description: 'Failed to update star status'\n });\n return false;\n }\n }\n }[\"useEmailState.useCallback[toggleStarred]\"], [\n state.emails,\n toast,\n loadEmails,\n logEmailOp\n ]);\n // Function to check for new emails without disrupting the user\n const checkForNewEmails = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[checkForNewEmails]\": async ()=>{\n var _session_user;\n if (!(session === null || session === void 0 ? void 0 : (_session_user = session.user) === null || _session_user === void 0 ? void 0 : _session_user.id)) return;\n // Don't check if already loading emails\n if (state.isLoading) return;\n try {\n // Get normalized parameters using helper function\n const accountId = state.selectedAccount ? state.selectedAccount.id : undefined;\n const { normalizedFolder, effectiveAccountId, prefixedFolder } = (0,_lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__.normalizeFolderAndAccount)(state.currentFolder, accountId);\n logEmailOp('CHECK_NEW_EMAILS', \"Checking for new emails in \".concat(prefixedFolder));\n // Quietly check for new emails with a special parameter\n const queryParams = new URLSearchParams({\n folder: normalizedFolder,\n page: '1',\n perPage: '1',\n accountId: effectiveAccountId,\n checkOnly: 'true' // Special parameter to indicate this is just a check\n });\n const response = await fetch(\"/api/courrier/emails?\".concat(queryParams.toString()), {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n },\n cache: 'no-cache'\n });\n if (!response.ok) {\n throw new Error(\"Failed to check for new emails: \".concat(response.status));\n }\n const data = await response.json();\n // Store the latest email's ID for easier reference\n const lastKnownEmailId = state.emails.length > 0 ? parseInt(state.emails[0].id) : 0;\n // Use newestEmailId from API response (more reliable than checking emails array)\n if (data.newestEmailId && data.newestEmailId > lastKnownEmailId) {\n logEmailOp('NEW_EMAILS', \"Found new emails, newest ID: \".concat(data.newestEmailId, \" (current: \").concat(lastKnownEmailId, \")\"));\n // Show a toast notification with the new custom variant\n toast({\n variant: \"new-email\",\n title: \"New emails\",\n description: \"You have new emails in your inbox\",\n duration: 5000\n });\n // Full refresh just like the refresh button in sidebar\n // Reset to page 1 to ensure we get the newest emails\n dispatch({\n type: 'SET_PAGE',\n payload: 1\n });\n loadEmails(1, state.perPage, false);\n // Also update unread counts - this will be handled in the effect\n // The fetchUnreadCounts function will be available when this callback is called\n } else {\n logEmailOp('CHECK_NEW_EMAILS', 'No new emails found');\n }\n } catch (error) {\n console.error('Error checking for new emails:', error);\n }\n }\n }[\"useEmailState.useCallback[checkForNewEmails]\"], [\n session === null || session === void 0 ? void 0 : (_session_user1 = session.user) === null || _session_user1 === void 0 ? void 0 : _session_user1.id,\n state.currentFolder,\n state.isLoading,\n state.emails,\n state.perPage,\n toast,\n loadEmails,\n logEmailOp,\n dispatch\n ]);\n // Delete emails\n const deleteEmails = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[deleteEmails]\": async (emailIds)=>{\n if (emailIds.length === 0) return;\n dispatch({\n type: 'SET_LOADING',\n payload: true\n });\n try {\n logEmailOp('DELETE', \"Deleting \".concat(emailIds.length, \" emails\"));\n // Find the first email to get account ID and folder\n const firstEmail = state.emails.find({\n \"useEmailState.useCallback[deleteEmails].firstEmail\": (e)=>e.id === emailIds[0]\n }[\"useEmailState.useCallback[deleteEmails].firstEmail\"]);\n const accountId = (firstEmail === null || firstEmail === void 0 ? void 0 : firstEmail.accountId) || 'default';\n const folder = (firstEmail === null || firstEmail === void 0 ? void 0 : firstEmail.folder) || state.currentFolder;\n const { normalizedFolder } = (0,_lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__.normalizeFolderAndAccount)(folder, accountId);\n // Make API call to delete emails\n const response = await fetch('/api/courrier/delete', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n emailIds,\n folder: normalizedFolder,\n accountId\n })\n });\n if (!response.ok) {\n throw new Error('Failed to delete emails');\n }\n // Clear selections\n dispatch({\n type: 'CLEAR_SELECTED_EMAILS'\n });\n // Show toast notification\n toast({\n title: \"Emails Deleted\",\n description: \"\".concat(emailIds.length, \" email(s) moved to trash\")\n });\n // Full refresh just like the refresh button in sidebar\n // Reset to page 1 to ensure we get the updated email list\n dispatch({\n type: 'SET_PAGE',\n payload: 1\n });\n loadEmails(1, state.perPage, false);\n // Also update unread counts - this will be handled in the effect\n // The fetchUnreadCounts function will be available when this callback is called\n return true;\n } catch (error) {\n logEmailOp('ERROR', \"Failed to delete emails: \".concat(error instanceof Error ? error.message : String(error)));\n toast({\n variant: \"destructive\",\n title: \"Error\",\n description: 'Failed to delete emails'\n });\n return false;\n } finally{\n dispatch({\n type: 'SET_LOADING',\n payload: false\n });\n }\n }\n }[\"useEmailState.useCallback[deleteEmails]\"], [\n state.emails,\n state.currentFolder,\n state.perPage,\n toast,\n loadEmails,\n logEmailOp,\n dispatch\n ]);\n // Send email\n const sendEmail = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[sendEmail]\": async (emailData)=>{\n dispatch({\n type: 'SET_LOADING',\n payload: true\n });\n try {\n logEmailOp('SEND', \"Sending email to \".concat(emailData.to));\n // Make API call to send email\n const response = await fetch('/api/courrier/send', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(emailData)\n });\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.error || 'Failed to send email');\n }\n const result = await response.json();\n toast({\n title: \"Email Sent\",\n description: \"Your message has been sent successfully\"\n });\n // Wait a moment for the email to be available in the sent folder\n // (emails may need time to be stored on IMAP server)\n setTimeout({\n \"useEmailState.useCallback[sendEmail]\": ()=>{\n // Check for new emails and refresh mailbox\n checkForNewEmails();\n // Refresh emails to show the sent email in current view\n loadEmails(state.page, state.perPage, false);\n }\n }[\"useEmailState.useCallback[sendEmail]\"], 1500);\n return {\n success: true,\n ...result\n };\n } catch (error) {\n logEmailOp('ERROR', \"Failed to send email: \".concat(error instanceof Error ? error.message : String(error)));\n toast({\n variant: \"destructive\",\n title: \"Error\",\n description: error instanceof Error ? error.message : 'Failed to send email'\n });\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Failed to send email'\n };\n } finally{\n dispatch({\n type: 'SET_LOADING',\n payload: false\n });\n }\n }\n }[\"useEmailState.useCallback[sendEmail]\"], [\n toast,\n loadEmails,\n logEmailOp,\n checkForNewEmails\n ]);\n // Search emails\n const searchEmails = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[searchEmails]\": async (query)=>{\n // Set loading state\n dispatch({\n type: 'SET_LOADING',\n payload: true\n });\n try {\n var _session_user;\n if (!(session === null || session === void 0 ? void 0 : (_session_user = session.user) === null || _session_user === void 0 ? void 0 : _session_user.id)) return;\n logEmailOp('SEARCH', 'Searching for \"'.concat(query, '\" in ').concat(state.currentFolder));\n // Extract account ID from current folder\n const { normalizedFolder, effectiveAccountId } = (0,_lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__.normalizeFolderAndAccount)(state.currentFolder);\n // Construct query params for search\n const queryParams = new URLSearchParams({\n folder: normalizedFolder,\n search: query,\n accountId: effectiveAccountId\n });\n // Call API for search\n const response = await fetch(\"/api/courrier/search?\".concat(queryParams.toString()));\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.error || 'Failed to search emails');\n }\n const results = await response.json();\n // Update emails with search results\n dispatch({\n type: 'SET_EMAILS',\n payload: results.emails || []\n });\n if (results.totalEmails) {\n dispatch({\n type: 'SET_TOTAL_EMAILS',\n payload: results.totalEmails\n });\n }\n if (results.totalPages) {\n dispatch({\n type: 'SET_TOTAL_PAGES',\n payload: results.totalPages\n });\n }\n } catch (error) {\n logEmailOp('ERROR', \"Search failed: \".concat(error instanceof Error ? error.message : String(error)));\n dispatch({\n type: 'SET_ERROR',\n payload: error instanceof Error ? error.message : 'Failed to search emails'\n });\n toast({\n variant: \"destructive\",\n title: \"Error\",\n description: 'Failed to search emails'\n });\n } finally{\n dispatch({\n type: 'SET_LOADING',\n payload: false\n });\n }\n }\n }[\"useEmailState.useCallback[searchEmails]\"], [\n session === null || session === void 0 ? void 0 : (_session_user2 = session.user) === null || _session_user2 === void 0 ? void 0 : _session_user2.id,\n state.currentFolder,\n toast,\n logEmailOp\n ]);\n // Format email for reply, reply all, or forward\n const formatEmailForAction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[formatEmailForAction]\": (email, type)=>{\n return (0,_lib_utils_email_utils__WEBPACK_IMPORTED_MODULE_5__.formatEmailForReplyOrForward)(email, type);\n }\n }[\"useEmailState.useCallback[formatEmailForAction]\"], []);\n // Update page\n const setPage = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[setPage]\": (page)=>{\n dispatch({\n type: 'SET_PAGE',\n payload: page\n });\n }\n }[\"useEmailState.useCallback[setPage]\"], []);\n // Set emails directly\n const setEmails = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[setEmails]\": (emails)=>{\n dispatch({\n type: 'SET_EMAILS',\n payload: emails\n });\n }\n }[\"useEmailState.useCallback[setEmails]\"], []);\n // Handle loading more emails\n const handleLoadMore = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[handleLoadMore]\": ()=>{\n // Don't load more if already loading or if there are no more pages\n if (state.isLoading || state.page >= state.totalPages) {\n console.log(\"[LOAD_MORE] Skipping load more - already loading: \".concat(state.isLoading, \", page: \").concat(state.page, \", totalPages: \").concat(state.totalPages));\n return;\n }\n // Log the current state\n console.log(\"[LOAD_MORE] Loading more emails for \".concat(state.currentFolder, \", currentPage: \").concat(state.page, \", totalPages: \").concat(state.totalPages, \", current email count: \").concat(state.emails.length));\n // Set loading state immediately to prevent double-loading\n dispatch({\n type: 'SET_LOADING',\n payload: true\n });\n // Calculate next page\n const nextPage = state.page + 1;\n // Update the page state - fix type issue\n dispatch({\n type: 'SET_PAGE',\n payload: nextPage\n });\n // CRITICAL FIX: Update the lastLoadedPage ref to track pagination state\n lastPageLoadedRef.current = nextPage;\n // Load the next page\n loadEmails(nextPage, state.perPage, true).then({\n \"useEmailState.useCallback[handleLoadMore]\": ()=>{\n console.log(\"[LOAD_MORE] Completed loading more emails for page \".concat(nextPage));\n }\n }[\"useEmailState.useCallback[handleLoadMore]\"]);\n }\n }[\"useEmailState.useCallback[handleLoadMore]\"], [\n state.isLoading,\n state.page,\n state.totalPages,\n state.currentFolder,\n state.emails.length,\n state.perPage,\n dispatch,\n loadEmails\n ]);\n // Effect to load emails when folder changes\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)({\n \"useEmailState.useEffect\": ()=>{\n var _session_user;\n if ((session === null || session === void 0 ? void 0 : (_session_user = session.user) === null || _session_user === void 0 ? void 0 : _session_user.id) && state.currentFolder) {\n // CRITICAL FIX: REMOVE this check that's causing the problem\n // Instead, detect a real folder change and always load when that happens\n // Extract account ID for consistent loading\n const { effectiveAccountId } = (0,_lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__.normalizeFolderAndAccount)(state.currentFolder);\n // Track if the folder actually changed\n const folderChanged = prevFolderRef.current !== state.currentFolder;\n if (folderChanged) {\n console.log(\"[DEBUG-FOLDER_EFFECT] Folder changed from \".concat(prevFolderRef.current, \" to \").concat(state.currentFolder));\n prevFolderRef.current = state.currentFolder;\n // CRITICAL FIX: Always reset pagination state when folder actually changes\n console.log(\"[DEBUG-FOLDER_EFFECT] Folder changed - resetting pagination state\");\n // Reset page to 1 AND reset lastPageLoadedRef to ensure we load\n lastPageLoadedRef.current = 0;\n if (state.page !== 1) {\n console.log(\"[DEBUG-FOLDER_EFFECT] Resetting page to 1 because folder changed\");\n dispatch({\n type: 'SET_PAGE',\n payload: 1\n });\n }\n // CRITICAL FIX: Clear emails and set loading when folder changes\n dispatch({\n type: 'SET_EMAILS',\n payload: []\n });\n dispatch({\n type: 'SET_LOADING',\n payload: true\n });\n // CRITICAL FIX: Always load emails when folder changes, no matter what\n console.log(\"[DEBUG-FOLDER_EFFECT] Loading emails for new folder: \".concat(state.currentFolder));\n loadEmails(1, state.perPage, false);\n return; // Exit early after handling folder change\n }\n // If no folder change detected, only load if on page 1 and not already loaded\n if (state.page === 1 && lastPageLoadedRef.current === 0) {\n logEmailOp('FOLDER_LOAD', \"Loading initial emails for folder \".concat(state.currentFolder));\n loadEmails(state.page, state.perPage, false);\n }\n }\n }\n }[\"useEmailState.useEffect\"], [\n session === null || session === void 0 ? void 0 : (_session_user3 = session.user) === null || _session_user3 === void 0 ? void 0 : _session_user3.id,\n state.currentFolder,\n state.page,\n state.perPage,\n loadEmails,\n logEmailOp,\n dispatch\n ]);\n // Effect to load more emails when page changes\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)({\n \"useEmailState.useEffect\": ()=>{\n var _session_user;\n if (!(session === null || session === void 0 ? void 0 : (_session_user = session.user) === null || _session_user === void 0 ? void 0 : _session_user.id) || !state.currentFolder) return;\n // Make sure we're on at least page 1\n if (state.page < 1) {\n dispatch({\n type: 'SET_PAGE',\n payload: 1\n });\n return;\n }\n console.log(\"[DEBUG-PAGE_EFFECT] Page changed to \".concat(state.page));\n // CRITICAL FIX: Add a special case for page 1 loads - we should never skip loading the first page\n // This ensures that after a folder change, page 1 always loads even if loading state is true\n if (state.page === 1) {\n const currentFolder = state.currentFolder;\n const lastLoadedFolder = prevFolderRef.current;\n // Check if this is a fresh folder load (folder changed or first time loading)\n if (currentFolder !== lastLoadedFolder || lastPageLoadedRef.current === 0) {\n // Force loading page 1 for new folders, regardless of loading state\n console.log(\"[DEBUG-PAGE_EFFECT] Force loading page 1 for folder: \".concat(currentFolder));\n // Set the loading state explicitly (might already be true)\n dispatch({\n type: 'SET_LOADING',\n payload: true\n });\n // Update refs to track the current state\n prevFolderRef.current = currentFolder;\n lastPageLoadedRef.current = 1;\n // Call loadEmails to load the first page - never skip this!\n loadEmails(1, state.perPage, false);\n return;\n }\n }\n // For pages > 1 or already loaded folders, follow normal rules\n // Skip if already loading\n if (state.isLoading) {\n console.log(\"[DEBUG-PAGE_EFFECT] Skipping effect execution entirely - already loading\");\n return;\n }\n // Normalize folder and get account ID\n const { effectiveAccountId } = (0,_lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__.normalizeFolderAndAccount)(state.currentFolder);\n // Check if this is a duplicate page load\n if (state.page === lastPageLoadedRef.current) {\n console.log(\"[DEBUG-PAGE_EFFECT] Skipping - already loaded page \".concat(state.page));\n return;\n }\n // Skip loads for zero-based pages\n if (state.page === 0) {\n console.log(\"[DEBUG-PAGE_EFFECT] Skipping load for invalid page \".concat(state.page));\n return;\n }\n // Update our reference to prevent duplicate loads\n lastPageLoadedRef.current = state.page;\n // Always use isLoadMore=true when page > 1\n console.log(\"[DEBUG-PAGE_EFFECT] Calling loadEmails with isLoadMore=true for page \".concat(state.page));\n loadEmails(state.page, state.perPage, true);\n // Do NOT include state.emails.length here to prevent infinite loops\n }\n }[\"useEmailState.useEffect\"], [\n session === null || session === void 0 ? void 0 : (_session_user4 = session.user) === null || _session_user4 === void 0 ? void 0 : _session_user4.id,\n state.page,\n state.currentFolder,\n state.isLoading,\n state.perPage,\n loadEmails,\n logEmailOp,\n dispatch\n ]);\n // Fetch unread counts from API\n const fetchUnreadCounts = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[fetchUnreadCounts]\": async ()=>{\n var _window___unreadCountFailures;\n if (!(session === null || session === void 0 ? void 0 : session.user)) return;\n // Don't fetch if we're already fetching\n if (state.isLoadingUnreadCounts) return;\n // Skip fetching if an email was viewed recently (within last 5 seconds)\n const now = Date.now();\n // Initialize the ref to the current time if it's null\n if (lastEmailViewedRef.current === null) {\n lastEmailViewedRef.current = now;\n }\n // Now we can safely use it since we've initialized it\n if (now - lastEmailViewedRef.current < 5000) {\n console.log('Skipping unread count update - email viewed recently');\n return;\n }\n // Try to get from sessionStorage first for faster response\n try {\n const storageKey = \"unread_counts_\".concat(session.user.id);\n const storedData = sessionStorage.getItem(storageKey);\n if (storedData) {\n const { data, timestamp } = JSON.parse(storedData);\n // Use stored data if it's less than 30 seconds old\n if (now - timestamp < 30000) {\n logEmailOp('FETCH_UNREAD', 'Using sessionStorage data', {\n age: Math.round((now - timestamp) / 1000) + 's'\n });\n dispatch({\n type: 'SET_UNREAD_COUNTS',\n payload: data\n });\n return;\n }\n }\n } catch (err) {\n // Ignore storage errors\n }\n // Reset failure tracking if it's been more than 1 minute since last failure\n if (((_window___unreadCountFailures = window.__unreadCountFailures) === null || _window___unreadCountFailures === void 0 ? void 0 : _window___unreadCountFailures.lastFailureTime) && now - window.__unreadCountFailures.lastFailureTime > 60000) {\n window.__unreadCountFailures = {\n count: 0,\n lastFailureTime: 0\n };\n }\n // Exponential backoff for failures with proper tracking object\n if (!window.__unreadCountFailures) {\n window.__unreadCountFailures = {\n count: 0,\n lastFailureTime: 0\n };\n }\n if (window.__unreadCountFailures.count > 0) {\n const failures = window.__unreadCountFailures.count;\n const backoffMs = Math.min(30000, 1000 * Math.pow(2, failures - 1));\n if (now - window.__unreadCountFailures.lastFailureTime < backoffMs) {\n logEmailOp('BACKOFF', \"Skipping unread fetch, in backoff period (\".concat(backoffMs, \"ms)\"));\n return;\n }\n }\n try {\n dispatch({\n type: 'SET_LOADING_UNREAD_COUNTS',\n payload: true\n });\n const timeBeforeCall = performance.now();\n logEmailOp('FETCH_UNREAD', 'Fetching unread counts from API');\n const response = await fetch('/api/courrier/unread-counts', {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n },\n // Add cache control headers\n cache: 'no-cache',\n next: {\n revalidate: 0\n }\n });\n if (!response.ok) {\n // If request failed, track failures properly\n window.__unreadCountFailures.count = Math.min(window.__unreadCountFailures.count + 1, 10);\n window.__unreadCountFailures.lastFailureTime = now;\n const failures = window.__unreadCountFailures.count;\n if (failures > 3) {\n // After 3 failures, slow down requests with exponential backoff\n const backoffTime = Math.min(Math.pow(2, failures - 3) * 1000, 30000); // Max 30 seconds\n logEmailOp('FETCH_UNREAD', \"API failure #\".concat(failures, \", backing off for \").concat(backoffTime, \"ms\"));\n // Schedule next attempt with backoff\n if (window.__failureBackoffTimer) {\n clearTimeout(window.__failureBackoffTimer);\n }\n window.__failureBackoffTimer = setTimeout({\n \"useEmailState.useCallback[fetchUnreadCounts]\": ()=>{\n fetchUnreadCounts();\n }\n }[\"useEmailState.useCallback[fetchUnreadCounts]\"], backoffTime);\n throw new Error(\"Failed to fetch unread counts: \".concat(response.status));\n }\n } else {\n // Reset failure counter on success\n window.__unreadCountFailures = {\n count: 0,\n lastFailureTime: 0\n };\n const data = await response.json();\n const timeAfterCall = performance.now();\n // Skip if we got the \"pending_refresh\" status\n if (data._status === 'pending_refresh') {\n logEmailOp('FETCH_UNREAD', 'Server is refreshing counts, will try again soon');\n // Retry after a short delay\n setTimeout({\n \"useEmailState.useCallback[fetchUnreadCounts]\": ()=>{\n fetchUnreadCounts();\n }\n }[\"useEmailState.useCallback[fetchUnreadCounts]\"], 2000);\n return;\n }\n logEmailOp('FETCH_UNREAD', \"Received unread counts in \".concat((timeAfterCall - timeBeforeCall).toFixed(2), \"ms\"));\n if (data && typeof data === 'object') {\n dispatch({\n type: 'SET_UNREAD_COUNTS',\n payload: data\n });\n // Store in sessionStorage for faster future access\n try {\n sessionStorage.setItem(\"unread_counts_\".concat(session.user.id), JSON.stringify({\n data,\n timestamp: now\n }));\n } catch (err) {\n // Ignore storage errors\n }\n }\n }\n } catch (error) {\n console.error('Error fetching unread counts:', error);\n } finally{\n dispatch({\n type: 'SET_LOADING_UNREAD_COUNTS',\n payload: false\n });\n }\n }\n }[\"useEmailState.useCallback[fetchUnreadCounts]\"], [\n dispatch,\n session === null || session === void 0 ? void 0 : session.user,\n state.isLoadingUnreadCounts,\n logEmailOp\n ]);\n // Calculate and update unread counts\n const updateUnreadCounts = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[updateUnreadCounts]\": ()=>{\n // Skip if no emails or accounts\n if (state.emails.length === 0 || state.accounts.length === 0) return;\n // To avoid running this too frequently, check the timestamp of last update\n if (!window.__lastUnreadUpdate) {\n window.__lastUnreadUpdate = {\n timestamp: 0\n };\n }\n const now = Date.now();\n const lastUpdate = window.__lastUnreadUpdate;\n const MIN_UPDATE_INTERVAL = 10000; // 10 seconds minimum between updates (increased from 2s)\n if (now - lastUpdate.timestamp < MIN_UPDATE_INTERVAL) {\n return; // Skip if updated too recently\n }\n // Rather than calculating locally, fetch from the API\n fetchUnreadCounts();\n // Update timestamp of last update\n lastUpdate.timestamp = now;\n }\n }[\"useEmailState.useCallback[updateUnreadCounts]\"], [\n state.emails.length,\n state.accounts.length,\n fetchUnreadCounts\n ]);\n // Call updateUnreadCounts when relevant state changes\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)({\n \"useEmailState.useEffect\": ()=>{\n if (!state.emails || state.emails.length === 0) return;\n // Debounce unread count updates to prevent rapid multiple updates\n let updateTimeoutId;\n const debounceMs = 5000; // Increase debounce to 5 seconds (from 2s)\n // Function to call after debounce period\n const debouncedUpdate = {\n \"useEmailState.useEffect.debouncedUpdate\": ()=>{\n updateTimeoutId = setTimeout({\n \"useEmailState.useEffect.debouncedUpdate\": ()=>{\n updateUnreadCounts();\n }\n }[\"useEmailState.useEffect.debouncedUpdate\"], debounceMs);\n }\n }[\"useEmailState.useEffect.debouncedUpdate\"];\n // Clear any existing timeout and start a new one\n debouncedUpdate();\n // Also set up a periodic refresh every minute if the tab is active\n const periodicRefreshId = setInterval({\n \"useEmailState.useEffect.periodicRefreshId\": ()=>{\n if (document.visibilityState === 'visible') {\n updateUnreadCounts();\n }\n }\n }[\"useEmailState.useEffect.periodicRefreshId\"], 60000); // 1 minute\n // Cleanup timeout on unmount or state change\n return ({\n \"useEmailState.useEffect\": ()=>{\n clearTimeout(updateTimeoutId);\n clearInterval(periodicRefreshId);\n }\n })[\"useEmailState.useEffect\"];\n // Deliberately exclude unreadCountMap to prevent infinite loops\n }\n }[\"useEmailState.useEffect\"], [\n state.emails,\n updateUnreadCounts\n ]);\n // Set up periodic check for new emails\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)({\n \"useEmailState.useEffect\": ()=>{\n if (!state.emails || state.emails.length === 0) return;\n // Set up a periodic check for new emails at the same interval as unread counts\n const checkNewEmailsId = setInterval({\n \"useEmailState.useEffect.checkNewEmailsId\": ()=>{\n if (document.visibilityState === 'visible') {\n checkForNewEmails();\n }\n }\n }[\"useEmailState.useEffect.checkNewEmailsId\"], 60000); // 1 minute - same as unread count refresh\n // Cleanup interval on unmount or state change\n return ({\n \"useEmailState.useEffect\": ()=>{\n clearInterval(checkNewEmailsId);\n }\n })[\"useEmailState.useEffect\"];\n }\n }[\"useEmailState.useEffect\"], [\n state.emails,\n checkForNewEmails\n ]);\n // Tracking when an email is viewed to optimize unread count refreshes\n const lastViewedEmailRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const fetchFailuresRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n const lastFetchFailureRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n // Modify viewEmail to track when an email is viewed\n const viewEmail = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[viewEmail]\": (emailId, accountId, folder, email)=>{\n dispatch({\n type: 'SELECT_EMAIL',\n payload: {\n emailId,\n accountId,\n folder,\n email\n }\n });\n // Track when an email is viewed to delay unread count refresh\n if (email) {\n lastViewedEmailRef.current = Date.now();\n // If email is unread, mark it as read\n if (email.flags && !email.flags.seen) {\n dispatch({\n type: 'MARK_EMAIL_AS_READ',\n payload: {\n emailId,\n isRead: true,\n accountId\n }\n });\n }\n } else {\n // Email was deselected, schedule a refresh of unread counts after delay\n setTimeout({\n \"useEmailState.useCallback[viewEmail]\": ()=>{\n fetchUnreadCounts();\n }\n }[\"useEmailState.useCallback[viewEmail]\"], 2000);\n }\n }\n }[\"useEmailState.useCallback[viewEmail]\"], [\n dispatch,\n fetchUnreadCounts\n ]);\n // Set up a function to manually trigger checking for new emails\n const forceCheckForNewEmails = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[forceCheckForNewEmails]\": ()=>{\n // Don't check if we're already loading\n if (state.isLoading) return;\n // Log that we're manually checking\n logEmailOp('MANUAL_CHECK', 'Manually checking for new emails');\n // Reset to page 1 to ensure we get the newest emails\n dispatch({\n type: 'SET_PAGE',\n payload: 1\n });\n // Perform a complete refresh of emails\n loadEmails(1, state.perPage, false);\n // Also update unread counts\n fetchUnreadCounts();\n }\n }[\"useEmailState.useCallback[forceCheckForNewEmails]\"], [\n state.isLoading,\n state.perPage,\n loadEmails,\n logEmailOp,\n dispatch,\n fetchUnreadCounts\n ]);\n // Return all state values and actions\n return {\n // State values\n ...state,\n // Actions\n loadEmails,\n handleEmailSelect,\n toggleEmailSelection,\n toggleSelectAll,\n markEmailAsRead,\n toggleStarred,\n changeFolder,\n deleteEmails,\n sendEmail,\n searchEmails,\n formatEmailForAction,\n setPage,\n setEmails,\n selectAccount,\n handleLoadMore,\n fetchUnreadCounts,\n viewEmail,\n checkForNewEmails,\n forceCheckForNewEmails\n };\n};\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2hvb2tzL3VzZS1lbWFpbC1zdGF0ZS50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBbUU7QUFDdEI7QUFDTjtBQVFGO0FBSUk7QUFFOEI7QUFXaEUsTUFBTVcsZ0JBQWdCO1FBc1F2QkMsZUEwUkFBLGdCQXVLQUEsZ0JBK0ZBQSxnQkFxRUFBO0lBMTJCSixNQUFNLENBQUNDLE9BQU9DLFNBQVMsR0FBR2QsaURBQVVBLENBQUNNLG9FQUFZQSxFQUFFQyxvRUFBWUE7SUFDL0QsTUFBTSxFQUFFUSxNQUFNSCxPQUFPLEVBQUUsR0FBR1IsMkRBQVVBO0lBQ3BDLE1BQU0sRUFBRVksS0FBSyxFQUFFLEdBQUdYLG9EQUFRQTtJQUUxQixzQkFBc0I7SUFDdEIsTUFBTVksdUJBQXVCZCw2Q0FBTUEsQ0FBZ0I7SUFDbkQsTUFBTWUscUJBQXFCZiw2Q0FBTUEsQ0FBZ0I7SUFDakQsTUFBTWdCLHNCQUFzQmhCLDZDQUFNQSxDQUFTO0lBQzNDLE1BQU1pQixnQkFBZ0JqQiw2Q0FBTUEsQ0FBZ0I7SUFDNUMsTUFBTWtCLG9CQUFvQmxCLDZDQUFNQSxDQUFTO0lBQ3pDLE1BQU1tQixnQkFBZ0JuQiw2Q0FBTUEsQ0FBZ0I7SUFDNUMsTUFBTW9CLHlCQUF5QnBCLDZDQUFNQSxDQUFTO0lBRTlDLDZEQUE2RDtJQUM3REQsZ0RBQVNBO21DQUFDO1lBQ1Isa0RBQWtEO1lBQ2xEc0IsT0FBT0MsbUJBQW1CLEdBQUdYO1lBQzdCVSxPQUFPRSxvQkFBb0IsR0FBR1o7WUFFOUIsc0JBQXNCO1lBQ3RCOzJDQUFPO29CQUNMVSxPQUFPQyxtQkFBbUIsR0FBR0U7b0JBQzdCSCxPQUFPRSxvQkFBb0IsR0FBR0M7Z0JBQ2hDOztRQUNGO2tDQUFHO1FBQUNiO0tBQVM7SUFFYixvQ0FBb0M7SUFDcEMsTUFBTWMsYUFBYTNCLGtEQUFXQTtpREFBQyxDQUFDNEIsV0FBbUJDLFNBQWlCZjtZQUNsRSxNQUFNZ0IsWUFBWSxJQUFJQyxPQUFPQyxXQUFXLEdBQUdD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b0JBQ3BDeEYsU0FBUzt3QkFDUG9DLE1BQU07d0JBQ05DLFNBQVM7NEJBQUU4Qzs0QkFBU1UsUUFBUTs0QkFBTXZEO3dCQUFVO29CQUM5QztnQkFDRjtZQUNGLE9BQU87Z0JBQ0wsd0VBQXdFO2dCQUN4RWM7NERBQVc7d0JBQ1Q2RTtvQkFDRjsyREFBRztZQUNMO1FBQ0Y7K0NBQUc7UUFBQ2pJO1FBQVVpSTtLQUFrQjtJQUVoQyxnRUFBZ0U7SUFDaEUsTUFBTStDLHlCQUF5QjdMLGtEQUFXQTs2REFBQztZQUN6Qyx1Q0FBdUM7WUFDdkMsSUFBSVksTUFBTXdHLFNBQVMsRUFBRTtZQUVyQixtQ0FBbUM7WUFDbkN6RixXQUFXLGdCQUFnQjtZQUUzQixxREFBcUQ7WUFDckRkLFNBQVM7Z0JBQUVvQyxNQUFNO2dCQUFZQyxTQUFTO1lBQUU7WUFFeEMsdUNBQXVDO1lBQ3ZDYixXQUFXLEdBQUd6QixNQUFNMkIsT0FBTyxFQUFFO1lBRTdCLDRCQUE0QjtZQUM1QnVHO1FBQ0Y7NERBQUc7UUFBQ2xJLE1BQU13RyxTQUFTO1FBQUV4RyxNQUFNMkIsT0FBTztRQUFFRjtRQUFZVjtRQUFZZDtRQUFVaUk7S0FBa0I7SUFFeEYsc0NBQXNDO0lBQ3RDLE9BQU87UUFDTCxlQUFlO1FBQ2YsR0FBR2xJLEtBQUs7UUFFUixVQUFVO1FBQ1Z5QjtRQUNBMEQ7UUFDQVM7UUFDQUM7UUFDQUg7UUFDQVU7UUFDQXJCO1FBQ0FnQztRQUNBRztRQUNBSTtRQUNBSTtRQUNBQztRQUNBQztRQUNBM0M7UUFDQTRDO1FBQ0FLO1FBQ0E4QztRQUNBekU7UUFDQTBFO0lBQ0Y7QUFDRixFQUFFIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2hvb2tzL3VzZS1lbWFpbC1zdGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VSZWR1Y2VyLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VTZXNzaW9uIH0gZnJvbSAnbmV4dC1hdXRoL3JlYWN0JztcbmltcG9ydCB7IHVzZVRvYXN0IH0gZnJvbSAnLi91c2UtdG9hc3QnO1xuaW1wb3J0IHsgXG4gIGVtYWlsUmVkdWNlciwgXG4gIGluaXRpYWxTdGF0ZSwgXG4gIEVtYWlsU3RhdGUsIFxuICBFbWFpbEFjdGlvbixcbiAgbm9ybWFsaXplRm9sZGVyQW5kQWNjb3VudCxcbiAgQWNjb3VudFxufSBmcm9tICdAL2xpYi9yZWR1Y2Vycy9lbWFpbFJlZHVjZXInO1xuaW1wb3J0IHsgXG4gIGdldENhY2hlZEVtYWlsc1dpdGhUaW1lb3V0LCBcbiAgcmVmcmVzaEVtYWlsc0luQmFja2dyb3VuZCBcbn0gZnJvbSAnQC9saWIvc2VydmljZXMvcHJlZmV0Y2gtc2VydmljZSc7XG5pbXBvcnQgeyBFbWFpbCwgRW1haWxEYXRhIH0gZnJvbSAnLi91c2UtY291cnJpZXInO1xuaW1wb3J0IHsgZm9ybWF0RW1haWxGb3JSZXBseU9yRm9yd2FyZCB9IGZyb20gJ0AvbGliL3V0aWxzL2VtYWlsLXV0aWxzJztcblxuLy8gQWRkIGEgZ2xvYmFsIGRpc3BhdGNoZXIgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBvbGRlciBjb2RlXG4vLyBUaGlzIGlzIGEgdGVtcG9yYXJ5IHNvbHV0aW9uIHVudGlsIHdlIGZ1bGx5IG1pZ3JhdGUgdG8gdGhlIHJlZHVjZXIgcGF0dGVyblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICBkaXNwYXRjaEVtYWlsQWN0aW9uPzogKGFjdGlvbjogRW1haWxBY3Rpb24pID0+IHZvaWQ7XG4gICAgX19lbWFpbFN0YXRlRGlzcGF0Y2g/OiAoYWN0aW9uOiBFbWFpbEFjdGlvbikgPT4gdm9pZDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdXNlRW1haWxTdGF0ZSA9ICgpID0+IHtcbiAgY29uc3QgW3N0YXRlLCBkaXNwYXRjaF0gPSB1c2VSZWR1Y2VyKGVtYWlsUmVkdWNlciwgaW5pdGlhbFN0YXRlKTtcbiAgY29uc3QgeyBkYXRhOiBzZXNzaW9uIH0gPSB1c2VTZXNzaW9uKCk7XG4gIGNvbnN0IHsgdG9hc3QgfSA9IHVzZVRvYXN0KCk7XG5cbiAgLy8gUmVmcyB0byB0cmFjayBzdGF0ZVxuICBjb25zdCB1cGRhdGVVbnJlYWRUaW1lclJlZiA9IHVzZVJlZjxudW1iZXIgfCBudWxsPihudWxsKTtcbiAgY29uc3QgbGFzdEVtYWlsVmlld2VkUmVmID0gdXNlUmVmPG51bWJlciB8IG51bGw+KG51bGwpO1xuICBjb25zdCBmYWlsZWRGZXRjaENvdW50UmVmID0gdXNlUmVmPG51bWJlcj4oMCk7XG4gIGNvbnN0IGxhc3RGb2xkZXJSZWYgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGxhc3RQYWdlTG9hZGVkUmVmID0gdXNlUmVmPG51bWJlcj4oMCk7XG4gIGNvbnN0IHByZXZGb2xkZXJSZWYgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGxvYWRNb3JlVHJpZ2dlclRpbWVSZWYgPSB1c2VSZWY8bnVtYmVyPigwKTtcblxuICAvLyBFeHBvc2UgZGlzcGF0Y2ggZnVuY3Rpb24gdG8gd2luZG93IGZvciBleHRlcm5hbCBjb21wb25lbnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gTWFrZSBkaXNwYXRjaCBhdmFpbGFibGUgZ2xvYmFsbHkgZm9yIG9sZGVyIGNvZGVcbiAgICB3aW5kb3cuZGlzcGF0Y2hFbWFpbEFjdGlvbiA9IGRpc3BhdGNoO1xuICAgIHdpbmRvdy5fX2VtYWlsU3RhdGVEaXNwYXRjaCA9IGRpc3BhdGNoO1xuICAgIFxuICAgIC8vIENsZWFuIHVwIG9uIHVubW91bnRcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LmRpc3BhdGNoRW1haWxBY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgICB3aW5kb3cuX19lbWFpbFN0YXRlRGlzcGF0Y2ggPSB1bmRlZmluZWQ7XG4gICAgfTtcbiAgfSwgW2Rpc3BhdGNoXSk7XG5cbiAgLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGxvZyBvcGVyYXRpb25zXG4gIGNvbnN0IGxvZ0VtYWlsT3AgPSB1c2VDYWxsYmFjaygob3BlcmF0aW9uOiBzdHJpbmcsIGRldGFpbHM6IHN0cmluZywgZGF0YT86IGFueSkgPT4ge1xuICAgIGNvbnN0IHRpbWVzdGFtcCA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzFdLnN1YnN0cmluZygwLCAxMik7XG4gICAgY29uc29sZS5sb2coYFske3RpbWVzdGFtcH1dW0VNQUlMLVNUQVRFXVske29wZXJhdGlvbn1dICR7ZGV0YWlsc31gKTtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgY29uc29sZS5sb2coYFske3RpbWVzdGFtcH1dW0VNQUlMLVNUQVRFXVtEQVRBXWAsIGRhdGEpO1xuICAgIH1cbiAgfSwgW10pO1xuXG4gIC8vIExvYWQgZW1haWxzIGZyb20gdGhlIHNlcnZlclxuICBjb25zdCBsb2FkRW1haWxzID0gdXNlQ2FsbGJhY2soYXN5bmMgKHBhZ2U6IG51bWJlciwgcGVyUGFnZTogbnVtYmVyLCBpc0xvYWRNb3JlOiBib29sZWFuID0gZmFsc2UpID0+IHtcbiAgICAvLyBDUklUSUNBTCBGSVg6IERvIGltcG9ydGFudCB2YWxpZGF0aW9uIGJlZm9yZSBzZXR0aW5nIGxvYWRpbmcgc3RhdGVcbiAgICBpZiAoIXNlc3Npb24/LnVzZXI/LmlkKSByZXR1cm47XG4gICAgXG4gICAgLy8gQ1JJVElDQUwgRklYOiBBbHdheXMgbG9nIHRoZSBpc0xvYWRNb3JlIHBhcmFtZXRlclxuICAgIGNvbnNvbGUubG9nKGBbREVCVUctTE9BRF9FTUFJTFNdIENhbGxlZCB3aXRoIGlzTG9hZE1vcmU9JHtpc0xvYWRNb3JlfSwgcGFnZT0ke3BhZ2V9LCBjdXJyZW50RW1haWxzPSR7c3RhdGUuZW1haWxzLmxlbmd0aH1gKTtcbiAgICBcbiAgICAvLyBTZXQgdGhlIGN1cnJlbnQgZm9sZGVyIGFuZCBhY2NvdW50IGJlaW5nIGxvYWRlZCB0byBkZXRlY3QgY2hhbmdlc1xuICAgIGNvbnN0IHN0YXJ0Rm9sZGVyID0gc3RhdGUuY3VycmVudEZvbGRlcjtcbiAgICBjb25zdCBzdGFydEFjY291bnQgPSBzdGF0ZS5zZWxlY3RlZEFjY291bnQgPyBzdGF0ZS5zZWxlY3RlZEFjY291bnQuaWQgOiAnZGVmYXVsdCc7XG4gICAgXG4gICAgLy8gQ1JJVElDQUwgRklYOiBGb3JjZSBsb2FkaW5nIHN0YXRlIHRvIHRydWVcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfTE9BRElORycsIHBheWxvYWQ6IHRydWUgfSk7XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgIC8vIEdldCBub3JtYWxpemVkIHBhcmFtZXRlcnMgdXNpbmcgaGVscGVyIGZ1bmN0aW9uIHdpdGggcHJvcGVyIGFjY291bnQgSUQgaGFuZGxpbmdcbiAgICAgIGNvbnN0IGFjY291bnRJZCA9IHN0YXRlLnNlbGVjdGVkQWNjb3VudCA/IHN0YXRlLnNlbGVjdGVkQWNjb3VudC5pZCA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IHsgbm9ybWFsaXplZEZvbGRlciwgZWZmZWN0aXZlQWNjb3VudElkLCBwcmVmaXhlZEZvbGRlciB9ID0gXG4gICAgICAgIG5vcm1hbGl6ZUZvbGRlckFuZEFjY291bnQoc3RhdGUuY3VycmVudEZvbGRlciwgYWNjb3VudElkKTtcbiAgICAgIFxuICAgICAgbG9nRW1haWxPcCgnTE9BRF9FTUFJTFMnLCBgTG9hZGluZyBlbWFpbHMgZm9yICR7cHJlZml4ZWRGb2xkZXJ9IChhY2NvdW50OiAke2VmZmVjdGl2ZUFjY291bnRJZH0sIGlzTG9hZE1vcmU6ICR7aXNMb2FkTW9yZX0sIHBhZ2U6ICR7cGFnZX0pYCk7XG4gICAgICBcbiAgICAgIC8vIENvbnN0cnVjdCBxdWVyeSBwYXJhbWV0ZXJzXG4gICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICBmb2xkZXI6IG5vcm1hbGl6ZWRGb2xkZXIsXG4gICAgICAgIHBhZ2U6IHBhZ2UudG9TdHJpbmcoKSxcbiAgICAgICAgcGVyUGFnZTogcGVyUGFnZS50b1N0cmluZygpLFxuICAgICAgICBhY2NvdW50SWQ6IGVmZmVjdGl2ZUFjY291bnRJZFxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIC8vIERlYnVnIGxvZyBleGlzdGluZyBlbWFpbHMgY291bnRcbiAgICAgIGlmIChpc0xvYWRNb3JlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBbREVCVUctUEFHSU5BVElPTl0gTG9hZGluZyBtb3JlIGVtYWlscy4gQ3VycmVudCBwYWdlOiAke3BhZ2V9LCBleGlzdGluZyBlbWFpbHM6ICR7c3RhdGUuZW1haWxzLmxlbmd0aH1gKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gVHJ5IHRvIGdldCBjYWNoZWQgZW1haWxzIGZpcnN0XG4gICAgICBsb2dFbWFpbE9wKCdDQUNIRV9DSEVDSycsIGBDaGVja2luZyBjYWNoZSBmb3IgJHtwcmVmaXhlZEZvbGRlcn0sIHBhZ2U6ICR7cGFnZX1gKTtcbiAgICAgIGNvbnN0IGNhY2hlZEVtYWlscyA9IGF3YWl0IGdldENhY2hlZEVtYWlsc1dpdGhUaW1lb3V0KFxuICAgICAgICBzZXNzaW9uLnVzZXIuaWQsXG4gICAgICAgIHByZWZpeGVkRm9sZGVyLFxuICAgICAgICBwYWdlLFxuICAgICAgICBwZXJQYWdlLFxuICAgICAgICAxMDAsXG4gICAgICAgIGVmZmVjdGl2ZUFjY291bnRJZFxuICAgICAgKTtcbiAgICAgIFxuICAgICAgaWYgKGNhY2hlZEVtYWlscykge1xuICAgICAgICBsb2dFbWFpbE9wKCdDQUNIRV9ISVQnLCBgVXNpbmcgY2FjaGVkIGRhdGEgZm9yICR7cHJlZml4ZWRGb2xkZXJ9LCBwYWdlOiAke3BhZ2V9LCBlbWFpbHM6ICR7Y2FjaGVkRW1haWxzLmVtYWlscz8ubGVuZ3RoIHx8IDB9LCBpc0xvYWRNb3JlOiAke2lzTG9hZE1vcmV9YCk7XG4gICAgICAgIFxuICAgICAgICAvLyBFbnN1cmUgY2FjaGVkIGRhdGEgaGFzIGVtYWlscyBhcnJheSBwcm9wZXJ0eVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjYWNoZWRFbWFpbHMuZW1haWxzKSkge1xuICAgICAgICAgIC8vIENSSVRJQ0FMIEZJWDogRG91YmxlIGNoZWNrIHdlJ3JlIHVzaW5nIHRoZSByaWdodCBhY3Rpb24gdHlwZSBiYXNlZCBvbiBpc0xvYWRNb3JlIHBhcmFtXG4gICAgICAgICAgY29uc29sZS5sb2coYFtERUJVRy1DQUNIRV9ISVRdIERpc3BhdGNoaW5nICR7aXNMb2FkTW9yZSA/ICdBUFBFTkRfRU1BSUxTJyA6ICdTRVRfRU1BSUxTJ30gd2l0aCAke2NhY2hlZEVtYWlscy5lbWFpbHMubGVuZ3RofSBlbWFpbHNgKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBEaXNwYXRjaCBhcHByb3ByaWF0ZSBhY3Rpb24gYmFzZWQgb24gaWYgd2UncmUgbG9hZGluZyBtb3JlIC0gRE8gTk9UIE9WRVJSSURFIGlzTG9hZE1vcmUhXG4gICAgICAgICAgZGlzcGF0Y2goeyBcbiAgICAgICAgICAgIHR5cGU6IGlzTG9hZE1vcmUgPyAnQVBQRU5EX0VNQUlMUycgOiAnU0VUX0VNQUlMUycsIFxuICAgICAgICAgICAgcGF5bG9hZDogY2FjaGVkRW1haWxzLmVtYWlscyBcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBTZXQgcGFnaW5hdGlvbiBpbmZvIGZyb20gY2FjaGUgaWYgYXZhaWxhYmxlXG4gICAgICAgICAgaWYgKGNhY2hlZEVtYWlscy50b3RhbEVtYWlscykge1xuICAgICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX1RPVEFMX0VNQUlMUycsIHBheWxvYWQ6IGNhY2hlZEVtYWlscy50b3RhbEVtYWlscyB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgICAgaWYgKGNhY2hlZEVtYWlscy50b3RhbFBhZ2VzKSB7XG4gICAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfVE9UQUxfUEFHRVMnLCBwYXlsb2FkOiBjYWNoZWRFbWFpbHMudG90YWxQYWdlcyB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gVXBkYXRlIGF2YWlsYWJsZSBtYWlsYm94ZXMgaWYgcHJvdmlkZWRcbiAgICAgICAgICBpZiAoY2FjaGVkRW1haWxzLm1haWxib3hlcyAmJiBjYWNoZWRFbWFpbHMubWFpbGJveGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9NQUlMQk9YRVMnLCBwYXlsb2FkOiBjYWNoZWRFbWFpbHMubWFpbGJveGVzIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gQ1JJVElDQUwgRklYOiBJZiB0aGlzIHdhcyBhIGxvYWRNb3JlIG9wZXJhdGlvbiwgY2hlY2sgdGhlIHJlc3VsdCBhZnRlciB0aGUgZGlzcGF0Y2hcbiAgICAgICAgaWYgKGlzTG9hZE1vcmUpIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBbREVCVUctQ0FDSEVfSElUX0FQUEVORF0gQWZ0ZXIgJHtpc0xvYWRNb3JlID8gJ0FQUEVORCcgOiAnU0VUJ30sIGVtYWlsIGNvdW50IGlzIG5vdzogJHtzdGF0ZS5lbWFpbHMubGVuZ3RofWApO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIEZldGNoIGVtYWlscyBmcm9tIEFQSSBpZiBubyBjYWNoZSBoaXRcbiAgICAgIGxvZ0VtYWlsT3AoJ0FQSV9GRVRDSCcsIGBGZXRjaGluZyBlbWFpbHMgZnJvbSBBUEk6ICR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX0sIGlzTG9hZE1vcmU6ICR7aXNMb2FkTW9yZX1gKTtcbiAgICAgIGNvbnNvbGUubG9nKGBbREVCVUctQVBJX0ZFVENIXSBGZXRjaGluZyBmcm9tIC9hcGkvY291cnJpZXIvZW1haWxzPyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYC9hcGkvY291cnJpZXIvZW1haWxzPyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gKTtcbiAgICAgIFxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAvLyBDUklUSUNBTCBGSVg6IFRyeSB0byByZWNvdmVyIGZyb20gZmV0Y2ggZXJyb3JzIGJ5IHJldHJ5aW5nIHdpdGggZGlmZmVyZW50IHBhZ2luYXRpb25cbiAgICAgICAgaWYgKGlzTG9hZE1vcmUgJiYgcGFnZSA+IDEpIHtcbiAgICAgICAgICBsb2dFbWFpbE9wKCdFUlJPUl9SRUNPVkVSWScsIGBGYWlsZWQgdG8gZmV0Y2ggZW1haWxzIGZvciBwYWdlICR7cGFnZX0sIGF0dGVtcHRpbmcgdG8gcmVjb3ZlciBieSBkZWNyZW1lbnRpbmcgcGFnZWApO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBbREVCVUctRVJST1JdIEFQSSByZXR1cm5lZCAke3Jlc3BvbnNlLnN0YXR1c30gZm9yIHBhZ2UgJHtwYWdlfWApO1xuICAgICAgICAgIC8vIElmIHdlJ3JlIGxvYWRpbmcgbW9yZSBhbmQgdGhlcmUncyBhbiBlcnJvciwganVzdCBkZWNyZW1lbnQgdGhlIHBhZ2UgdG8gYXZvaWQgZ2V0dGluZyBzdHVja1xuICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9QQUdFJywgcGF5bG9hZDogcGFnZSAtIDEgfSk7XG4gICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0xPQURJTkcnLCBwYXlsb2FkOiBmYWxzZSB9KTtcbiAgICAgICAgICAvLyBBbHNvIHJlc2V0IHRvdGFsIHBhZ2VzIHRvIHRyeSBhZ2FpblxuICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9UT1RBTF9QQUdFUycsIHBheWxvYWQ6IHBhZ2UgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBjb25zdCBlcnJvckRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvckRhdGEuZXJyb3IgfHwgJ0ZhaWxlZCB0byBmZXRjaCBlbWFpbHMnKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgIGNvbnNvbGUubG9nKGBbREVCVUctQVBJX1JFU1BPTlNFXSBHb3QgcmVzcG9uc2Ugd2l0aCAke2RhdGEuZW1haWxzPy5sZW5ndGggfHwgMH0gZW1haWxzLCB0b3RhbFBhZ2VzOiAke2RhdGEudG90YWxQYWdlc30sIHRvdGFsRW1haWxzOiAke2RhdGEudG90YWxFbWFpbHN9LCBpc0xvYWRNb3JlOiAke2lzTG9hZE1vcmV9YCk7XG4gICAgICBcbiAgICAgIC8vIENSSVRJQ0FMIEZJWDogRW5oYW5jZWQgZW1wdHkgcmVzdWx0cyBoYW5kbGluZ1xuICAgICAgaWYgKCFkYXRhLmVtYWlscyB8fCBkYXRhLmVtYWlscy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgY29uc29sZS5sb2coYFtERUJVRy1FTVBUWV0gTm8gZW1haWxzIGluIHJlc3BvbnNlIGZvciBwYWdlICR7cGFnZX1gKTtcbiAgICAgICAgLy8gSWYgd2UncmUgYXQgYSBwYWdlID4gMSBhbmQgZ290IG5vIHJlc3VsdHMsIHRoZSBwYWdpbmcgaXMgb2ZmLCBzbyB0cnkgYWdhaW4gd2l0aCBwYWdlIDFcbiAgICAgICAgaWYgKHBhZ2UgPiAxICYmICFpc0xvYWRNb3JlKSB7XG4gICAgICAgICAgbG9nRW1haWxPcCgnRU1QVFlfUkVTVUxUUycsIGBObyBlbWFpbHMgcmV0dXJuZWQgZm9yIHBhZ2UgJHtwYWdlfSwgcmVzZXR0aW5nIHRvIHBhZ2UgMWApO1xuICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9QQUdFJywgcGF5bG9hZDogMSB9KTtcbiAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfTE9BRElORycsIHBheWxvYWQ6IGZhbHNlIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gSWYgd2UncmUgYWxyZWFkeSBhdCBwYWdlIDEsIGp1c3QgdXBkYXRlIHRoZSBzdGF0ZSB3aXRoIG5vIGVtYWlsc1xuICAgICAgICBpZiAoIWlzTG9hZE1vcmUpIHtcbiAgICAgICAgICBsb2dFbWFpbE9wKCdFTVBUWV9SRVNVTFRTJywgYE5vIGVtYWlscyBmb3VuZCBpbiAke3N0YXRlLmN1cnJlbnRGb2xkZXJ9YCk7XG4gICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0VNQUlMUycsIHBheWxvYWQ6IFtdIH0pO1xuICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9UT1RBTF9FTUFJTFMnLCBwYXlsb2FkOiAwIH0pO1xuICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9UT1RBTF9QQUdFUycsIHBheWxvYWQ6IDAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gRm9yIGxvYWQgbW9yZSwganVzdCBzZXQgbG9hZGluZyB0byBmYWxzZSBidXQga2VlcCBleGlzdGluZyBlbWFpbHNcbiAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfTE9BRElORycsIHBheWxvYWQ6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gRW5zdXJlIGFsbCBlbWFpbHMgaGF2ZSBwcm9wZXIgYWNjb3VudCBJRCBhbmQgZm9sZGVyIGZvcm1hdFxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YS5lbWFpbHMpKSB7XG4gICAgICAgIC8vIExvZyBlbWFpbCBkYXRlcyBmb3IgZGVidWdnaW5nXG4gICAgICAgIGlmIChkYXRhLmVtYWlscy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgbG9nRW1haWxPcCgnRU1BSUxfREFURVMnLCBgRmlyc3QgZmV3IGVtYWlsIGRhdGVzIGJlZm9yZSBwcm9jZXNzaW5nOmAsIFxuICAgICAgICAgICAgZGF0YS5lbWFpbHMuc2xpY2UoMCwgNSkubWFwKChlOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgIGlkOiBlLmlkLnN1YnN0cmluZygwLCA4KSxcbiAgICAgICAgICAgICAgc3ViamVjdDogZS5zdWJqZWN0Py5zdWJzdHJpbmcoMCwgMjApLFxuICAgICAgICAgICAgICBkYXRlOiBlLmRhdGUsXG4gICAgICAgICAgICAgIGRhdGVPYmo6IG5ldyBEYXRlKGUuZGF0ZSksXG4gICAgICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoZS5kYXRlKS5nZXRUaW1lKClcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGRhdGEuZW1haWxzLmZvckVhY2goKGVtYWlsOiBFbWFpbCkgPT4ge1xuICAgICAgICAgIC8vIElmIGVtYWlsIGRvZXNuJ3QgaGF2ZSBhbiBhY2NvdW50SWQsIHNldCBpdCB0byB0aGUgZWZmZWN0aXZlIG9uZVxuICAgICAgICAgIGlmICghZW1haWwuYWNjb3VudElkKSB7XG4gICAgICAgICAgICBlbWFpbC5hY2NvdW50SWQgPSBlZmZlY3RpdmVBY2NvdW50SWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIC8vIEVuc3VyZSBmb2xkZXIgaGFzIHRoZSBwcm9wZXIgcHJlZml4IGZvcm1hdFxuICAgICAgICAgIGlmIChlbWFpbC5mb2xkZXIgJiYgIWVtYWlsLmZvbGRlci5pbmNsdWRlcygnOicpKSB7XG4gICAgICAgICAgICBlbWFpbC5mb2xkZXIgPSBgJHtlbWFpbC5hY2NvdW50SWR9OiR7ZW1haWwuZm9sZGVyfWA7XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIC8vIEVuc3VyZSBkYXRlIGlzIGEgdmFsaWQgRGF0ZSBvYmplY3QgKGhhbmRsZSBzdHJpbmdzIG9yIHRpbWVzdGFtcHMpXG4gICAgICAgICAgaWYgKGVtYWlsLmRhdGUgJiYgIShlbWFpbC5kYXRlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIC8vIENvbnZlcnQgdG8gYSBwcm9wZXIgRGF0ZSBvYmplY3QgaWYgaXQncyBhIHN0cmluZyBvciBudW1iZXJcbiAgICAgICAgICAgICAgY29uc3QgZGF0ZU9iaiA9IG5ldyBEYXRlKGVtYWlsLmRhdGUpO1xuICAgICAgICAgICAgICAvLyBWZXJpZnkgaXQncyBhIHZhbGlkIGRhdGVcbiAgICAgICAgICAgICAgaWYgKCFpc05hTihkYXRlT2JqLmdldFRpbWUoKSkpIHtcbiAgICAgICAgICAgICAgICBlbWFpbC5kYXRlID0gZGF0ZU9iajtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgIC8vIElmIGNvbnZlcnNpb24gZmFpbHMsIGxvZyBhbmQgdXNlIGN1cnJlbnQgZGF0ZSBhcyBmYWxsYmFja1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBJbnZhbGlkIGRhdGUgZm9ybWF0IGZvciBlbWFpbCAke2VtYWlsLmlkfTogJHtlbWFpbC5kYXRlfWApO1xuICAgICAgICAgICAgICBlbWFpbC5kYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBDUklUSUNBTCBGSVg6IExvZyB3aGF0IHdlJ3JlIGFib3V0IHRvIGRvXG4gICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLURJU1BBVENIXSBBYm91dCB0byBkaXNwYXRjaCAke2lzTG9hZE1vcmUgPyAnQVBQRU5EX0VNQUlMUycgOiAnU0VUX0VNQUlMUyd9IHdpdGggJHtkYXRhLmVtYWlscz8ubGVuZ3RoIHx8IDB9IGVtYWlsc2ApO1xuICAgICAgXG4gICAgICAvLyBVcGRhdGUgc3RhdGUgd2l0aCBmZXRjaGVkIGRhdGFcbiAgICAgIGRpc3BhdGNoKHsgXG4gICAgICAgIHR5cGU6IGlzTG9hZE1vcmUgPyAnQVBQRU5EX0VNQUlMUycgOiAnU0VUX0VNQUlMUycsIFxuICAgICAgICBwYXlsb2FkOiBBcnJheS5pc0FycmF5KGRhdGEuZW1haWxzKSA/IGRhdGEuZW1haWxzIDogW10gXG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgLy8gRG91YmxlLWNoZWNrIHRoYXQgd2UndmUgdXBkYXRlZCB0aGUgZW1haWwgbGlzdCBjb3JyZWN0bHkgYWZ0ZXIgZGlzcGF0Y2hcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLUFGVEVSLURJU1BBVENIXSBFbWFpbCBjb3VudCBpcyBub3c6ICR7c3RhdGUuZW1haWxzLmxlbmd0aH0sIHNob3VsZCBpbmNsdWRlIHRoZSAke2RhdGEuZW1haWxzPy5sZW5ndGggfHwgMH0gbmV3IGVtYWlscyB3ZSBqdXN0IGxvYWRlZGApO1xuICAgICAgfSwgMCk7XG4gICAgICBcbiAgICAgIGlmIChkYXRhLnRvdGFsRW1haWxzKSB7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9UT1RBTF9FTUFJTFMnLCBwYXlsb2FkOiBkYXRhLnRvdGFsRW1haWxzIH0pO1xuICAgICAgfVxuICAgICAgXG4gICAgICBpZiAoZGF0YS50b3RhbFBhZ2VzKSB7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9UT1RBTF9QQUdFUycsIHBheWxvYWQ6IGRhdGEudG90YWxQYWdlcyB9KTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gVXBkYXRlIGF2YWlsYWJsZSBtYWlsYm94ZXMgaWYgcHJvdmlkZWRcbiAgICAgIGlmIChkYXRhLm1haWxib3hlcyAmJiBkYXRhLm1haWxib3hlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9NQUlMQk9YRVMnLCBwYXlsb2FkOiBkYXRhLm1haWxib3hlcyB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ0VtYWlsT3AoJ0VSUk9SJywgYEZhaWxlZCB0byBsb2FkIGVtYWlsczogJHtlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogU3RyaW5nKGVycil9YCk7XG4gICAgICBkaXNwYXRjaCh7IFxuICAgICAgICB0eXBlOiAnU0VUX0VSUk9SJywgXG4gICAgICAgIHBheWxvYWQ6IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnRmFpbGVkIHRvIGxvYWQgZW1haWxzJyBcbiAgICAgIH0pO1xuICAgICAgdG9hc3Qoe1xuICAgICAgICB2YXJpYW50OiBcImRlc3RydWN0aXZlXCIsXG4gICAgICAgIHRpdGxlOiBcIkVycm9yXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ0ZhaWxlZCB0byBsb2FkIGVtYWlscydcbiAgICAgIH0pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICAvLyBDUklUSUNBTCBGSVg6IE9ubHkgY2xlYXIgbG9hZGluZyBzdGF0ZSBpZiB0aGUgZm9sZGVyL2FjY291bnQgaGFzbid0IGNoYW5nZWRcbiAgICAgIGlmIChzdGFydEZvbGRlciA9PT0gc3RhdGUuY3VycmVudEZvbGRlciAmJiBcbiAgICAgICAgICAoc3RhcnRBY2NvdW50ID09PSAoc3RhdGUuc2VsZWN0ZWRBY2NvdW50Py5pZCB8fCAnZGVmYXVsdCcpKSkge1xuICAgICAgICAvLyBTYWZlIHRvIGNsZWFyIGxvYWRpbmcgc3RhdGVcbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0xPQURJTkcnLCBwYXlsb2FkOiBmYWxzZSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBbREVCVUctTE9BRF9FTUFJTFNdIEZvbGRlci9hY2NvdW50IGNoYW5nZWQgZHVyaW5nIGxvYWQsIG5vdCBjbGVhcmluZyBsb2FkaW5nIHN0YXRlYCk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbc2Vzc2lvbj8udXNlcj8uaWQsIHN0YXRlLmN1cnJlbnRGb2xkZXIsIHN0YXRlLnNlbGVjdGVkQWNjb3VudCwgc3RhdGUucGFnZSwgc3RhdGUucGVyUGFnZSwgc3RhdGUuZW1haWxzLmxlbmd0aCwgdG9hc3QsIGxvZ0VtYWlsT3BdKTtcblxuICAvLyBDaGFuZ2UgZm9sZGVyXG4gIGNvbnN0IGNoYW5nZUZvbGRlciA9IHVzZUNhbGxiYWNrKGFzeW5jIChmb2xkZXI6IHN0cmluZywgYWNjb3VudElkPzogc3RyaW5nKSA9PiB7XG4gICAgbG9nRW1haWxPcCgnQ0hBTkdFX0ZPTERFUicsIGBDaGFuZ2luZyB0byBmb2xkZXIgJHtmb2xkZXJ9IHdpdGggYWNjb3VudCAke2FjY291bnRJZCB8fCAnZGVmYXVsdCd9YCk7XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgIC8vIENSSVRJQ0FMIEZJWDogUmVzZXQgcGFnaW5hdGlvbiBzdGF0ZSBpbW1lZGlhdGVseVxuICAgICAgbGFzdFBhZ2VMb2FkZWRSZWYuY3VycmVudCA9IDA7XG4gICAgICBcbiAgICAgIC8vIFJlc2V0IHBhZ2UgdG8gMSBkaXJlY3RseSB0byBwcmV2ZW50IGFueSBpc3N1ZXMgd2l0aCBwYWdlIGVmZmVjdHNcbiAgICAgIC8vIFRoaXMgd2lsbCBiZSBhdG9taWMgd2l0aCB0aGUgQ0hBTkdFX0ZPTERFUiBhY3Rpb25cbiAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9QQUdFJywgcGF5bG9hZDogMSB9KTtcbiAgICAgIFxuICAgICAgLy8gQ2xlYXIgZXhpc3RpbmcgZW1haWxzIC0gZG9uJ3Qgc2hvdyBvbGQgZW1haWxzIGR1cmluZyBsb2FkXG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfRU1BSUxTJywgcGF5bG9hZDogW10gfSk7XG4gICAgICBcbiAgICAgIC8vIFNldCBsb2FkaW5nIHN0YXRlIGV4cGxpY2l0bHkgLSB0aGlzIGlzIGNyaXRpY2FsXG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfTE9BRElORycsIHBheWxvYWQ6IHRydWUgfSk7XG4gICAgICBcbiAgICAgIC8vIFRoaXMgd2lsbCBoYW5kbGUgZm9sZGVyIHNldHRpbmcgaW4gYSBzaW5nbGUgYXRvbWljIG9wZXJhdGlvblxuICAgICAgZGlzcGF0Y2goeyBcbiAgICAgICAgdHlwZTogJ0NIQU5HRV9GT0xERVInLCBcbiAgICAgICAgcGF5bG9hZDogeyBmb2xkZXIsIGFjY291bnRJZDogYWNjb3VudElkIHx8ICdkZWZhdWx0JyB9IFxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIC8vIENSSVRJQ0FMOiBUaGUgZW1haWwgbG9hZGluZyB3aWxsIGJlIHRyaWdnZXJlZCBieSB0aGUgZm9sZGVyIGVmZmVjdFxuICAgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBjYWxsIGxvYWRFbWFpbHMgZGlyZWN0bHkgaGVyZVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dFbWFpbE9wKCdFUlJPUicsIGBGYWlsZWQgdG8gY2hhbmdlIGZvbGRlcjogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9YCk7XG4gICAgICBkaXNwYXRjaCh7IFxuICAgICAgICB0eXBlOiAnU0VUX0VSUk9SJywgXG4gICAgICAgIHBheWxvYWQ6IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ0ZhaWxlZCB0byBjaGFuZ2UgZm9sZGVyJyBcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICAvLyBBbHdheXMgZW5zdXJlIGxvYWRpbmcgc3RhdGUgaXMgY2xlYXJlZCBvbiBlcnJvclxuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0xPQURJTkcnLCBwYXlsb2FkOiBmYWxzZSB9KTtcbiAgICB9XG4gIH0sIFtsb2dFbWFpbE9wLCBkaXNwYXRjaF0pO1xuXG4gIC8vIFNlbGVjdCBhY2NvdW50XG4gIGNvbnN0IHNlbGVjdEFjY291bnQgPSB1c2VDYWxsYmFjaygoYWNjb3VudDogQWNjb3VudCkgPT4ge1xuICAgIGxvZ0VtYWlsT3AoJ1NFTEVDVF9BQ0NPVU5UJywgYFNlbGVjdGluZyBhY2NvdW50OiAke2FjY291bnQuZW1haWx9ICgke2FjY291bnQuaWR9KWApO1xuICAgIFxuICAgIC8vIEhhbmRsZSB0aGUgZW50aXJlIGFjY291bnQgc2VsZWN0aW9uIGluIGEgc2luZ2xlIGF0b21pYyBvcGVyYXRpb25cbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRUxFQ1RfQUNDT1VOVCcsIHBheWxvYWQ6IGFjY291bnQgfSk7XG4gICAgXG4gICAgLy8gVGhlIGZvbGRlciBsb2FkaW5nIHdpbGwgYmUgdHJpZ2dlcmVkIGJ5IHRoZSB1c2VFZmZlY3Qgd2F0Y2hpbmcgZm9yIGN1cnJlbnRGb2xkZXIgY2hhbmdlc1xuICB9LCBbbG9nRW1haWxPcF0pO1xuXG4gIC8vIEhhbmRsZSBlbWFpbCBzZWxlY3Rpb25cbiAgY29uc3QgaGFuZGxlRW1haWxTZWxlY3QgPSB1c2VDYWxsYmFjayhhc3luYyAoZW1haWxJZDogc3RyaW5nLCBhY2NvdW50SWQ6IHN0cmluZywgZm9sZGVyOiBzdHJpbmcpID0+IHtcbiAgICBsb2dFbWFpbE9wKCdTRUxFQ1RfRU1BSUwnLCBgU2VsZWN0aW5nIGVtYWlsICR7ZW1haWxJZH0gZnJvbSBhY2NvdW50ICR7YWNjb3VudElkfSBpbiBmb2xkZXIgJHtmb2xkZXJ9YCk7XG4gICAgXG4gICAgaWYgKCFlbWFpbElkKSB7XG4gICAgICBkaXNwYXRjaCh7IFxuICAgICAgICB0eXBlOiAnU0VMRUNUX0VNQUlMJywgXG4gICAgICAgIHBheWxvYWQ6IHsgZW1haWxJZDogJycsIGFjY291bnRJZDogJycsIGZvbGRlcjogJycsIGVtYWlsOiBudWxsIH0gXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgIC8vIEZpbmQgdGhlIGVtYWlsIGluIHRoZSBjdXJyZW50IGxpc3RcbiAgICAgIGNvbnN0IGV4aXN0aW5nRW1haWwgPSBzdGF0ZS5lbWFpbHMuZmluZChlID0+IGUuaWQgPT09IGVtYWlsSWQpO1xuICAgICAgXG4gICAgICBpZiAoZXhpc3RpbmdFbWFpbCAmJiBleGlzdGluZ0VtYWlsLmNvbnRlbnRGZXRjaGVkKSB7XG4gICAgICAgIC8vIFVzZSB0aGUgZXhpc3RpbmcgZW1haWwgaWYgaXQgaGFzIGNvbnRlbnQgYWxyZWFkeVxuICAgICAgICBkaXNwYXRjaCh7IFxuICAgICAgICAgIHR5cGU6ICdTRUxFQ1RfRU1BSUwnLFxuICAgICAgICAgIHBheWxvYWQ6IHsgZW1haWxJZCwgYWNjb3VudElkLCBmb2xkZXIsIGVtYWlsOiBleGlzdGluZ0VtYWlsIH1cbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICAvLyBNYXJrIGFzIHJlYWQgaWYgbm90IGFscmVhZHlcbiAgICAgICAgaWYgKCFleGlzdGluZ0VtYWlsLmZsYWdzLnNlZW4pIHtcbiAgICAgICAgICBtYXJrRW1haWxBc1JlYWQoZW1haWxJZCwgdHJ1ZSwgYWNjb3VudElkKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBOZWVkIHRvIGZldGNoIHRoZSBlbWFpbCBjb250ZW50XG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfTE9BRElORycsIHBheWxvYWQ6IHRydWUgfSk7XG4gICAgICBcbiAgICAgIC8vIEV4dHJhY3QgYWNjb3VudCBJRCBmcm9tIGZvbGRlciBuYW1lIGlmIHByZXNlbnQgYW5kIG5vbmUgd2FzIGV4cGxpY2l0bHkgcHJvdmlkZWRcbiAgICAgIGNvbnN0IHsgbm9ybWFsaXplZEZvbGRlciwgZWZmZWN0aXZlQWNjb3VudElkIH0gPSBub3JtYWxpemVGb2xkZXJBbmRBY2NvdW50KGZvbGRlciwgYWNjb3VudElkKTtcbiAgICAgIFxuICAgICAgLy8gRmV0Y2ggZW1haWwgY29udGVudCBmcm9tIEFQSVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgL2FwaS9jb3Vycmllci8ke2VtYWlsSWR9P2ZvbGRlcj0ke25vcm1hbGl6ZWRGb2xkZXJ9JmFjY291bnRJZD0ke2VmZmVjdGl2ZUFjY291bnRJZH1gKTtcbiAgICAgIFxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBmZXRjaCBlbWFpbCBjb250ZW50OiAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgY29uc3QgZW1haWxEYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgXG4gICAgICAvLyBNYXJrIHRoZSBlbWFpbCBhcyByZWFkIG9uIHRoZSBzZXJ2ZXJcbiAgICAgIG1hcmtFbWFpbEFzUmVhZChlbWFpbElkLCB0cnVlLCBlZmZlY3RpdmVBY2NvdW50SWQpO1xuICAgICAgXG4gICAgICAvLyBTZWxlY3QgdGhlIGVtYWlsXG4gICAgICBkaXNwYXRjaCh7IFxuICAgICAgICB0eXBlOiAnU0VMRUNUX0VNQUlMJyxcbiAgICAgICAgcGF5bG9hZDogeyBlbWFpbElkLCBhY2NvdW50SWQ6IGVmZmVjdGl2ZUFjY291bnRJZCwgZm9sZGVyLCBlbWFpbDogZW1haWxEYXRhIH1cbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dFbWFpbE9wKCdFUlJPUicsIGBGYWlsZWQgdG8gc2VsZWN0IGVtYWlsOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gKTtcbiAgICAgIGRpc3BhdGNoKHsgXG4gICAgICAgIHR5cGU6ICdTRVRfRVJST1InLCBcbiAgICAgICAgcGF5bG9hZDogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnRmFpbGVkIHRvIHNlbGVjdCBlbWFpbCcgXG4gICAgICB9KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0xPQURJTkcnLCBwYXlsb2FkOiBmYWxzZSB9KTtcbiAgICB9XG4gIH0sIFtzdGF0ZS5lbWFpbHMsIGxvZ0VtYWlsT3BdKTtcblxuICAvLyBUb2dnbGUgZW1haWwgc2VsZWN0aW9uIGZvciBtdWx0aS1zZWxlY3RcbiAgY29uc3QgdG9nZ2xlRW1haWxTZWxlY3Rpb24gPSB1c2VDYWxsYmFjaygoZW1haWxJZDogc3RyaW5nKSA9PiB7XG4gICAgZGlzcGF0Y2goeyB0eXBlOiAnVE9HR0xFX0VNQUlMX1NFTEVDVElPTicsIHBheWxvYWQ6IGVtYWlsSWQgfSk7XG4gIH0sIFtdKTtcblxuICAvLyBUb2dnbGUgc2VsZWN0IGFsbFxuICBjb25zdCB0b2dnbGVTZWxlY3RBbGwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZGlzcGF0Y2goeyB0eXBlOiAnVE9HR0xFX1NFTEVDVF9BTEwnIH0pO1xuICB9LCBbXSk7XG5cbiAgLy8gTWFyayBlbWFpbCBhcyByZWFkL3VucmVhZFxuICBjb25zdCBtYXJrRW1haWxBc1JlYWQgPSB1c2VDYWxsYmFjayhhc3luYyAoZW1haWxJZDogc3RyaW5nLCBpc1JlYWQ6IGJvb2xlYW4sIGFjY291bnRJZD86IHN0cmluZykgPT4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBGaW5kIHRoZSBlbWFpbCB0byBnZXQgaXRzIGFjY291bnQgSUQgaWYgbm90IHByb3ZpZGVkXG4gICAgICBjb25zdCBlbWFpbCA9IHN0YXRlLmVtYWlscy5maW5kKGUgPT4gZS5pZCA9PT0gZW1haWxJZCk7XG4gICAgICBjb25zdCBlZmZlY3RpdmVBY2NvdW50SWQgPSBhY2NvdW50SWQgfHwgZW1haWw/LmFjY291bnRJZCB8fCAnZGVmYXVsdCc7XG4gICAgICBjb25zdCBmb2xkZXIgPSBlbWFpbD8uZm9sZGVyIHx8IHN0YXRlLmN1cnJlbnRGb2xkZXI7XG4gICAgICBcbiAgICAgIC8vIEV4dHJhY3Qgbm9ybWFsaXplZCBmb2xkZXJcbiAgICAgIGNvbnN0IHsgbm9ybWFsaXplZEZvbGRlciB9ID0gbm9ybWFsaXplRm9sZGVyQW5kQWNjb3VudChmb2xkZXIsIGVmZmVjdGl2ZUFjY291bnRJZCk7XG4gICAgICBcbiAgICAgIGxvZ0VtYWlsT3AoJ01BUktfUkVBRCcsIGBNYXJraW5nIGVtYWlsICR7ZW1haWxJZH0gYXMgJHtpc1JlYWQgPyAncmVhZCcgOiAndW5yZWFkJ30gaW4gJHtub3JtYWxpemVkRm9sZGVyfWApO1xuICAgICAgXG4gICAgICAvLyBVcGRhdGUgVUkgc3RhdGUgaW1tZWRpYXRlbHkgKG9wdGltaXN0aWMgdXBkYXRlKVxuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiAnTUFSS19FTUFJTF9BU19SRUFEJyxcbiAgICAgICAgcGF5bG9hZDogeyBlbWFpbElkLCBpc1JlYWQsIGFjY291bnRJZDogZWZmZWN0aXZlQWNjb3VudElkIH1cbiAgICAgIH0pO1xuICAgICAgXG4gICAgICAvLyBOT1RFOiBEb24ndCB1cGRhdGUgdW5yZWFkIGNvdW50cyBoZXJlIC0gdGhhdCdzIG5vdyBoYW5kbGVkIGJ5IHRoZSB1cGRhdGVVbnJlYWRDb3VudHMgZnVuY3Rpb25cbiAgICAgIC8vIHdoaWNoIGlzIHRyaWdnZXJlZCBieSB0aGUgZW1haWwgdXBkYXRlIGFib3ZlIHZpYSB0aGUgdXNlRWZmZWN0XG4gICAgICBcbiAgICAgIC8vIE1ha2UgQVBJIGNhbGwgdG8gdXBkYXRlIG9uIHNlcnZlclxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgL2FwaS9jb3Vycmllci8ke2VtYWlsSWR9L21hcmstcmVhZGAsIHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgaXNSZWFkLFxuICAgICAgICAgIGZvbGRlcjogbm9ybWFsaXplZEZvbGRlcixcbiAgICAgICAgICBhY2NvdW50SWQ6IGVmZmVjdGl2ZUFjY291bnRJZFxuICAgICAgICB9KVxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gbWFyayBlbWFpbCBhcyByZWFkJyk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dFbWFpbE9wKCdFUlJPUicsIGBGYWlsZWQgdG8gbWFyayBlbWFpbCBhcyByZWFkOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gKTtcbiAgICAgIHRvYXN0KHtcbiAgICAgICAgdmFyaWFudDogXCJkZXN0cnVjdGl2ZVwiLFxuICAgICAgICB0aXRsZTogXCJFcnJvclwiLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0ZhaWxlZCB0byB1cGRhdGUgZW1haWwgcmVhZCBzdGF0dXMnXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0sIFtzdGF0ZS5lbWFpbHMsIHN0YXRlLmN1cnJlbnRGb2xkZXIsIHRvYXN0LCBsb2dFbWFpbE9wXSk7XG5cbiAgLy8gVG9nZ2xlIHN0YXJyZWQgc3RhdHVzXG4gIGNvbnN0IHRvZ2dsZVN0YXJyZWQgPSB1c2VDYWxsYmFjayhhc3luYyAoZW1haWxJZDogc3RyaW5nKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIEZpbmQgdGhlIGVtYWlsIGluIGN1cnJlbnQgbGlzdFxuICAgICAgY29uc3QgZW1haWwgPSBzdGF0ZS5lbWFpbHMuZmluZChlID0+IGUuaWQgPT09IGVtYWlsSWQpO1xuICAgICAgaWYgKCFlbWFpbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VtYWlsIG5vdCBmb3VuZCcpO1xuICAgICAgfVxuICAgICAgXG4gICAgICBjb25zdCBuZXdGbGFnZ2VkU3RhdHVzID0gIWVtYWlsLmZsYWdzLmZsYWdnZWQ7XG4gICAgICBsb2dFbWFpbE9wKCdUT0dHTEVfU1RBUicsIGBTZXR0aW5nIHN0YXJyZWQgc3RhdHVzIHRvICR7bmV3RmxhZ2dlZFN0YXR1c30gZm9yIGVtYWlsICR7ZW1haWxJZH1gKTtcbiAgICAgIFxuICAgICAgLy8gVE9ETzogSW1wbGVtZW50IG9wdGltaXN0aWMgdXBkYXRlXG4gICAgICBcbiAgICAgIC8vIE1ha2UgQVBJIGNhbGxcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYC9hcGkvY291cnJpZXIvJHtlbWFpbElkfS9mbGFnYCwge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBmbGFnZ2VkOiBuZXdGbGFnZ2VkU3RhdHVzLFxuICAgICAgICAgIGZvbGRlcjogZW1haWwuZm9sZGVyLFxuICAgICAgICAgIGFjY291bnRJZDogZW1haWwuYWNjb3VudElkXG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byB1cGRhdGUgc3RhciBzdGF0dXMnKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gUmVsb2FkIGVtYWlscyB0byBnZXQgdXBkYXRlZCBzdGF0ZVxuICAgICAgbG9hZEVtYWlscyhzdGF0ZS5wYWdlLCBzdGF0ZS5wZXJQYWdlLCB0cnVlKTtcbiAgICAgIFxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ0VtYWlsT3AoJ0VSUk9SJywgYEZhaWxlZCB0byB0b2dnbGUgc3RhcjogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9YCk7XG4gICAgICB0b2FzdCh7XG4gICAgICAgIHZhcmlhbnQ6IFwiZGVzdHJ1Y3RpdmVcIixcbiAgICAgICAgdGl0bGU6IFwiRXJyb3JcIixcbiAgICAgICAgZGVzY3JpcHRpb246ICdGYWlsZWQgdG8gdXBkYXRlIHN0YXIgc3RhdHVzJ1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9LCBbc3RhdGUuZW1haWxzLCB0b2FzdCwgbG9hZEVtYWlscywgbG9nRW1haWxPcF0pO1xuXG4gIC8vIEZ1bmN0aW9uIHRvIGNoZWNrIGZvciBuZXcgZW1haWxzIHdpdGhvdXQgZGlzcnVwdGluZyB0aGUgdXNlclxuICBjb25zdCBjaGVja0Zvck5ld0VtYWlscyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBpZiAoIXNlc3Npb24/LnVzZXI/LmlkKSByZXR1cm47XG4gICAgXG4gICAgLy8gRG9uJ3QgY2hlY2sgaWYgYWxyZWFkeSBsb2FkaW5nIGVtYWlsc1xuICAgIGlmIChzdGF0ZS5pc0xvYWRpbmcpIHJldHVybjtcbiAgICBcbiAgICB0cnkge1xuICAgICAgLy8gR2V0IG5vcm1hbGl6ZWQgcGFyYW1ldGVycyB1c2luZyBoZWxwZXIgZnVuY3Rpb25cbiAgICAgIGNvbnN0IGFjY291bnRJZCA9IHN0YXRlLnNlbGVjdGVkQWNjb3VudCA/IHN0YXRlLnNlbGVjdGVkQWNjb3VudC5pZCA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IHsgbm9ybWFsaXplZEZvbGRlciwgZWZmZWN0aXZlQWNjb3VudElkLCBwcmVmaXhlZEZvbGRlciB9ID0gXG4gICAgICAgIG5vcm1hbGl6ZUZvbGRlckFuZEFjY291bnQoc3RhdGUuY3VycmVudEZvbGRlciwgYWNjb3VudElkKTtcbiAgICAgIFxuICAgICAgbG9nRW1haWxPcCgnQ0hFQ0tfTkVXX0VNQUlMUycsIGBDaGVja2luZyBmb3IgbmV3IGVtYWlscyBpbiAke3ByZWZpeGVkRm9sZGVyfWApO1xuICAgICAgXG4gICAgICAvLyBRdWlldGx5IGNoZWNrIGZvciBuZXcgZW1haWxzIHdpdGggYSBzcGVjaWFsIHBhcmFtZXRlclxuICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgICAgZm9sZGVyOiBub3JtYWxpemVkRm9sZGVyLFxuICAgICAgICBwYWdlOiAnMScsXG4gICAgICAgIHBlclBhZ2U6ICcxJywgLy8gV2Ugb25seSBuZWVkIHRvIGNoZWNrIHRoZSBuZXdlc3QgZW1haWxcbiAgICAgICAgYWNjb3VudElkOiBlZmZlY3RpdmVBY2NvdW50SWQsXG4gICAgICAgIGNoZWNrT25seTogJ3RydWUnIC8vIFNwZWNpYWwgcGFyYW1ldGVyIHRvIGluZGljYXRlIHRoaXMgaXMganVzdCBhIGNoZWNrXG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgL2FwaS9jb3Vycmllci9lbWFpbHM/JHtxdWVyeVBhcmFtcy50b1N0cmluZygpfWAsIHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAgIGNhY2hlOiAnbm8tY2FjaGUnXG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBjaGVjayBmb3IgbmV3IGVtYWlsczogJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICBcbiAgICAgIC8vIFN0b3JlIHRoZSBsYXRlc3QgZW1haWwncyBJRCBmb3IgZWFzaWVyIHJlZmVyZW5jZVxuICAgICAgY29uc3QgbGFzdEtub3duRW1haWxJZCA9IHN0YXRlLmVtYWlscy5sZW5ndGggPiAwID8gcGFyc2VJbnQoc3RhdGUuZW1haWxzWzBdLmlkKSA6IDA7XG4gICAgICBcbiAgICAgIC8vIFVzZSBuZXdlc3RFbWFpbElkIGZyb20gQVBJIHJlc3BvbnNlIChtb3JlIHJlbGlhYmxlIHRoYW4gY2hlY2tpbmcgZW1haWxzIGFycmF5KVxuICAgICAgaWYgKGRhdGEubmV3ZXN0RW1haWxJZCAmJiBkYXRhLm5ld2VzdEVtYWlsSWQgPiBsYXN0S25vd25FbWFpbElkKSB7XG4gICAgICAgIGxvZ0VtYWlsT3AoJ05FV19FTUFJTFMnLCBgRm91bmQgbmV3IGVtYWlscywgbmV3ZXN0IElEOiAke2RhdGEubmV3ZXN0RW1haWxJZH0gKGN1cnJlbnQ6ICR7bGFzdEtub3duRW1haWxJZH0pYCk7XG4gICAgICAgIFxuICAgICAgICAvLyBTaG93IGEgdG9hc3Qgbm90aWZpY2F0aW9uIHdpdGggdGhlIG5ldyBjdXN0b20gdmFyaWFudFxuICAgICAgICB0b2FzdCh7XG4gICAgICAgICAgdmFyaWFudDogXCJuZXctZW1haWxcIiwgLy8gVXNlIG91ciBuZXcgY3VzdG9tIHZhcmlhbnRcbiAgICAgICAgICB0aXRsZTogXCJOZXcgZW1haWxzXCIsXG4gICAgICAgICAgZGVzY3JpcHRpb246IFwiWW91IGhhdmUgbmV3IGVtYWlscyBpbiB5b3VyIGluYm94XCIsXG4gICAgICAgICAgZHVyYXRpb246IDUwMDBcbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICAvLyBGdWxsIHJlZnJlc2gganVzdCBsaWtlIHRoZSByZWZyZXNoIGJ1dHRvbiBpbiBzaWRlYmFyXG4gICAgICAgIC8vIFJlc2V0IHRvIHBhZ2UgMSB0byBlbnN1cmUgd2UgZ2V0IHRoZSBuZXdlc3QgZW1haWxzXG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9QQUdFJywgcGF5bG9hZDogMSB9KTtcbiAgICAgICAgbG9hZEVtYWlscygxLCBzdGF0ZS5wZXJQYWdlLCBmYWxzZSk7XG4gICAgICAgIFxuICAgICAgICAvLyBBbHNvIHVwZGF0ZSB1bnJlYWQgY291bnRzIC0gdGhpcyB3aWxsIGJlIGhhbmRsZWQgaW4gdGhlIGVmZmVjdFxuICAgICAgICAvLyBUaGUgZmV0Y2hVbnJlYWRDb3VudHMgZnVuY3Rpb24gd2lsbCBiZSBhdmFpbGFibGUgd2hlbiB0aGlzIGNhbGxiYWNrIGlzIGNhbGxlZFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nRW1haWxPcCgnQ0hFQ0tfTkVXX0VNQUlMUycsICdObyBuZXcgZW1haWxzIGZvdW5kJyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNoZWNraW5nIGZvciBuZXcgZW1haWxzOicsIGVycm9yKTtcbiAgICB9XG4gIH0sIFtzZXNzaW9uPy51c2VyPy5pZCwgc3RhdGUuY3VycmVudEZvbGRlciwgc3RhdGUuaXNMb2FkaW5nLCBzdGF0ZS5lbWFpbHMsIHN0YXRlLnBlclBhZ2UsIHRvYXN0LCBsb2FkRW1haWxzLCBsb2dFbWFpbE9wLCBkaXNwYXRjaF0pO1xuXG4gIC8vIERlbGV0ZSBlbWFpbHNcbiAgY29uc3QgZGVsZXRlRW1haWxzID0gdXNlQ2FsbGJhY2soYXN5bmMgKGVtYWlsSWRzOiBzdHJpbmdbXSkgPT4ge1xuICAgIGlmIChlbWFpbElkcy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfTE9BRElORycsIHBheWxvYWQ6IHRydWUgfSk7XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgIGxvZ0VtYWlsT3AoJ0RFTEVURScsIGBEZWxldGluZyAke2VtYWlsSWRzLmxlbmd0aH0gZW1haWxzYCk7XG4gICAgICBcbiAgICAgIC8vIEZpbmQgdGhlIGZpcnN0IGVtYWlsIHRvIGdldCBhY2NvdW50IElEIGFuZCBmb2xkZXJcbiAgICAgIGNvbnN0IGZpcnN0RW1haWwgPSBzdGF0ZS5lbWFpbHMuZmluZChlID0+IGUuaWQgPT09IGVtYWlsSWRzWzBdKTtcbiAgICAgIGNvbnN0IGFjY291bnRJZCA9IGZpcnN0RW1haWw/LmFjY291bnRJZCB8fCAnZGVmYXVsdCc7XG4gICAgICBjb25zdCBmb2xkZXIgPSBmaXJzdEVtYWlsPy5mb2xkZXIgfHwgc3RhdGUuY3VycmVudEZvbGRlcjtcbiAgICAgIGNvbnN0IHsgbm9ybWFsaXplZEZvbGRlciB9ID0gbm9ybWFsaXplRm9sZGVyQW5kQWNjb3VudChmb2xkZXIsIGFjY291bnRJZCk7XG4gICAgICBcbiAgICAgIC8vIE1ha2UgQVBJIGNhbGwgdG8gZGVsZXRlIGVtYWlsc1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL2FwaS9jb3Vycmllci9kZWxldGUnLCB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGVtYWlsSWRzLFxuICAgICAgICAgIGZvbGRlcjogbm9ybWFsaXplZEZvbGRlcixcbiAgICAgICAgICBhY2NvdW50SWRcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGRlbGV0ZSBlbWFpbHMnKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gQ2xlYXIgc2VsZWN0aW9uc1xuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnQ0xFQVJfU0VMRUNURURfRU1BSUxTJyB9KTtcbiAgICAgIFxuICAgICAgLy8gU2hvdyB0b2FzdCBub3RpZmljYXRpb25cbiAgICAgIHRvYXN0KHtcbiAgICAgICAgdGl0bGU6IFwiRW1haWxzIERlbGV0ZWRcIixcbiAgICAgICAgZGVzY3JpcHRpb246IGAke2VtYWlsSWRzLmxlbmd0aH0gZW1haWwocykgbW92ZWQgdG8gdHJhc2hgXG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgLy8gRnVsbCByZWZyZXNoIGp1c3QgbGlrZSB0aGUgcmVmcmVzaCBidXR0b24gaW4gc2lkZWJhclxuICAgICAgLy8gUmVzZXQgdG8gcGFnZSAxIHRvIGVuc3VyZSB3ZSBnZXQgdGhlIHVwZGF0ZWQgZW1haWwgbGlzdFxuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX1BBR0UnLCBwYXlsb2FkOiAxIH0pO1xuICAgICAgbG9hZEVtYWlscygxLCBzdGF0ZS5wZXJQYWdlLCBmYWxzZSk7XG4gICAgICBcbiAgICAgIC8vIEFsc28gdXBkYXRlIHVucmVhZCBjb3VudHMgLSB0aGlzIHdpbGwgYmUgaGFuZGxlZCBpbiB0aGUgZWZmZWN0XG4gICAgICAvLyBUaGUgZmV0Y2hVbnJlYWRDb3VudHMgZnVuY3Rpb24gd2lsbCBiZSBhdmFpbGFibGUgd2hlbiB0aGlzIGNhbGxiYWNrIGlzIGNhbGxlZFxuICAgICAgXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nRW1haWxPcCgnRVJST1InLCBgRmFpbGVkIHRvIGRlbGV0ZSBlbWFpbHM6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpfWApO1xuICAgICAgdG9hc3Qoe1xuICAgICAgICB2YXJpYW50OiBcImRlc3RydWN0aXZlXCIsXG4gICAgICAgIHRpdGxlOiBcIkVycm9yXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRmFpbGVkIHRvIGRlbGV0ZSBlbWFpbHMnXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0xPQURJTkcnLCBwYXlsb2FkOiBmYWxzZSB9KTtcbiAgICB9XG4gIH0sIFtzdGF0ZS5lbWFpbHMsIHN0YXRlLmN1cnJlbnRGb2xkZXIsIHN0YXRlLnBlclBhZ2UsIHRvYXN0LCBsb2FkRW1haWxzLCBsb2dFbWFpbE9wLCBkaXNwYXRjaF0pO1xuXG4gIC8vIFNlbmQgZW1haWxcbiAgY29uc3Qgc2VuZEVtYWlsID0gdXNlQ2FsbGJhY2soYXN5bmMgKGVtYWlsRGF0YTogRW1haWxEYXRhKSA9PiB7XG4gICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0xPQURJTkcnLCBwYXlsb2FkOiB0cnVlIH0pO1xuICAgIFxuICAgIHRyeSB7XG4gICAgICBsb2dFbWFpbE9wKCdTRU5EJywgYFNlbmRpbmcgZW1haWwgdG8gJHtlbWFpbERhdGEudG99YCk7XG4gICAgICBcbiAgICAgIC8vIE1ha2UgQVBJIGNhbGwgdG8gc2VuZCBlbWFpbFxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL2FwaS9jb3Vycmllci9zZW5kJywge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGVtYWlsRGF0YSlcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgIGNvbnN0IGVycm9yRGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yRGF0YS5lcnJvciB8fCAnRmFpbGVkIHRvIHNlbmQgZW1haWwnKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgXG4gICAgICB0b2FzdCh7XG4gICAgICAgIHRpdGxlOiBcIkVtYWlsIFNlbnRcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiWW91ciBtZXNzYWdlIGhhcyBiZWVuIHNlbnQgc3VjY2Vzc2Z1bGx5XCJcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICAvLyBXYWl0IGEgbW9tZW50IGZvciB0aGUgZW1haWwgdG8gYmUgYXZhaWxhYmxlIGluIHRoZSBzZW50IGZvbGRlclxuICAgICAgLy8gKGVtYWlscyBtYXkgbmVlZCB0aW1lIHRvIGJlIHN0b3JlZCBvbiBJTUFQIHNlcnZlcilcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAvLyBDaGVjayBmb3IgbmV3IGVtYWlscyBhbmQgcmVmcmVzaCBtYWlsYm94XG4gICAgICAgIGNoZWNrRm9yTmV3RW1haWxzKCk7XG4gICAgICAgIFxuICAgICAgICAvLyBSZWZyZXNoIGVtYWlscyB0byBzaG93IHRoZSBzZW50IGVtYWlsIGluIGN1cnJlbnQgdmlld1xuICAgICAgICBsb2FkRW1haWxzKHN0YXRlLnBhZ2UsIHN0YXRlLnBlclBhZ2UsIGZhbHNlKTtcbiAgICAgIH0sIDE1MDApO1xuICAgICAgXG4gICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlLCAuLi5yZXN1bHQgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nRW1haWxPcCgnRVJST1InLCBgRmFpbGVkIHRvIHNlbmQgZW1haWw6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpfWApO1xuICAgICAgdG9hc3Qoe1xuICAgICAgICB2YXJpYW50OiBcImRlc3RydWN0aXZlXCIsXG4gICAgICAgIHRpdGxlOiBcIkVycm9yXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdGYWlsZWQgdG8gc2VuZCBlbWFpbCdcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdGYWlsZWQgdG8gc2VuZCBlbWFpbCcgfTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0xPQURJTkcnLCBwYXlsb2FkOiBmYWxzZSB9KTtcbiAgICB9XG4gIH0sIFt0b2FzdCwgbG9hZEVtYWlscywgbG9nRW1haWxPcCwgY2hlY2tGb3JOZXdFbWFpbHNdKTtcbiAgXG4gIC8vIFNlYXJjaCBlbWFpbHNcbiAgY29uc3Qgc2VhcmNoRW1haWxzID0gdXNlQ2FsbGJhY2soYXN5bmMgKHF1ZXJ5OiBzdHJpbmcpID0+IHtcbiAgICAvLyBTZXQgbG9hZGluZyBzdGF0ZVxuICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9MT0FESU5HJywgcGF5bG9hZDogdHJ1ZSB9KTtcbiAgICBcbiAgICB0cnkge1xuICAgICAgaWYgKCFzZXNzaW9uPy51c2VyPy5pZCkgcmV0dXJuO1xuICAgICAgXG4gICAgICBsb2dFbWFpbE9wKCdTRUFSQ0gnLCBgU2VhcmNoaW5nIGZvciBcIiR7cXVlcnl9XCIgaW4gJHtzdGF0ZS5jdXJyZW50Rm9sZGVyfWApO1xuICAgICAgXG4gICAgICAvLyBFeHRyYWN0IGFjY291bnQgSUQgZnJvbSBjdXJyZW50IGZvbGRlclxuICAgICAgY29uc3QgeyBub3JtYWxpemVkRm9sZGVyLCBlZmZlY3RpdmVBY2NvdW50SWQgfSA9IG5vcm1hbGl6ZUZvbGRlckFuZEFjY291bnQoc3RhdGUuY3VycmVudEZvbGRlcik7XG4gICAgICBcbiAgICAgIC8vIENvbnN0cnVjdCBxdWVyeSBwYXJhbXMgZm9yIHNlYXJjaFxuICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgICAgZm9sZGVyOiBub3JtYWxpemVkRm9sZGVyLFxuICAgICAgICBzZWFyY2g6IHF1ZXJ5LFxuICAgICAgICBhY2NvdW50SWQ6IGVmZmVjdGl2ZUFjY291bnRJZFxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIC8vIENhbGwgQVBJIGZvciBzZWFyY2hcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYC9hcGkvY291cnJpZXIvc2VhcmNoPyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gKTtcbiAgICAgIFxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICBjb25zdCBlcnJvckRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvckRhdGEuZXJyb3IgfHwgJ0ZhaWxlZCB0byBzZWFyY2ggZW1haWxzJyk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICBcbiAgICAgIC8vIFVwZGF0ZSBlbWFpbHMgd2l0aCBzZWFyY2ggcmVzdWx0c1xuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0VNQUlMUycsIHBheWxvYWQ6IHJlc3VsdHMuZW1haWxzIHx8IFtdIH0pO1xuICAgICAgXG4gICAgICBpZiAocmVzdWx0cy50b3RhbEVtYWlscykge1xuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfVE9UQUxfRU1BSUxTJywgcGF5bG9hZDogcmVzdWx0cy50b3RhbEVtYWlscyB9KTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgaWYgKHJlc3VsdHMudG90YWxQYWdlcykge1xuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfVE9UQUxfUEFHRVMnLCBwYXlsb2FkOiByZXN1bHRzLnRvdGFsUGFnZXMgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ0VtYWlsT3AoJ0VSUk9SJywgYFNlYXJjaCBmYWlsZWQ6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpfWApO1xuICAgICAgZGlzcGF0Y2goeyBcbiAgICAgICAgdHlwZTogJ1NFVF9FUlJPUicsIFxuICAgICAgICBwYXlsb2FkOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdGYWlsZWQgdG8gc2VhcmNoIGVtYWlscycgXG4gICAgICB9KTtcbiAgICAgIHRvYXN0KHtcbiAgICAgICAgdmFyaWFudDogXCJkZXN0cnVjdGl2ZVwiLFxuICAgICAgICB0aXRsZTogXCJFcnJvclwiLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0ZhaWxlZCB0byBzZWFyY2ggZW1haWxzJ1xuICAgICAgfSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9MT0FESU5HJywgcGF5bG9hZDogZmFsc2UgfSk7XG4gICAgfVxuICB9LCBbc2Vzc2lvbj8udXNlcj8uaWQsIHN0YXRlLmN1cnJlbnRGb2xkZXIsIHRvYXN0LCBsb2dFbWFpbE9wXSk7XG4gIFxuICAvLyBGb3JtYXQgZW1haWwgZm9yIHJlcGx5LCByZXBseSBhbGwsIG9yIGZvcndhcmRcbiAgY29uc3QgZm9ybWF0RW1haWxGb3JBY3Rpb24gPSB1c2VDYWxsYmFjaygoZW1haWw6IGFueSwgdHlwZTogJ3JlcGx5JyB8ICdyZXBseS1hbGwnIHwgJ2ZvcndhcmQnKSA9PiB7XG4gICAgcmV0dXJuIGZvcm1hdEVtYWlsRm9yUmVwbHlPckZvcndhcmQoZW1haWwsIHR5cGUpO1xuICB9LCBbXSk7XG5cbiAgLy8gVXBkYXRlIHBhZ2VcbiAgY29uc3Qgc2V0UGFnZSA9IHVzZUNhbGxiYWNrKChwYWdlOiBudW1iZXIpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfUEFHRScsIHBheWxvYWQ6IHBhZ2UgfSk7XG4gIH0sIFtdKTtcblxuICAvLyBTZXQgZW1haWxzIGRpcmVjdGx5XG4gIGNvbnN0IHNldEVtYWlscyA9IHVzZUNhbGxiYWNrKChlbWFpbHM6IEVtYWlsW10pID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfRU1BSUxTJywgcGF5bG9hZDogZW1haWxzIH0pO1xuICB9LCBbXSk7XG5cbiAgLy8gSGFuZGxlIGxvYWRpbmcgbW9yZSBlbWFpbHNcbiAgY29uc3QgaGFuZGxlTG9hZE1vcmUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgLy8gRG9uJ3QgbG9hZCBtb3JlIGlmIGFscmVhZHkgbG9hZGluZyBvciBpZiB0aGVyZSBhcmUgbm8gbW9yZSBwYWdlc1xuICAgIGlmIChzdGF0ZS5pc0xvYWRpbmcgfHwgc3RhdGUucGFnZSA+PSBzdGF0ZS50b3RhbFBhZ2VzKSB7XG4gICAgICBjb25zb2xlLmxvZyhgW0xPQURfTU9SRV0gU2tpcHBpbmcgbG9hZCBtb3JlIC0gYWxyZWFkeSBsb2FkaW5nOiAke3N0YXRlLmlzTG9hZGluZ30sIHBhZ2U6ICR7c3RhdGUucGFnZX0sIHRvdGFsUGFnZXM6ICR7c3RhdGUudG90YWxQYWdlc31gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgLy8gTG9nIHRoZSBjdXJyZW50IHN0YXRlXG4gICAgY29uc29sZS5sb2coYFtMT0FEX01PUkVdIExvYWRpbmcgbW9yZSBlbWFpbHMgZm9yICR7c3RhdGUuY3VycmVudEZvbGRlcn0sIGN1cnJlbnRQYWdlOiAke3N0YXRlLnBhZ2V9LCB0b3RhbFBhZ2VzOiAke3N0YXRlLnRvdGFsUGFnZXN9LCBjdXJyZW50IGVtYWlsIGNvdW50OiAke3N0YXRlLmVtYWlscy5sZW5ndGh9YCk7XG4gICAgXG4gICAgLy8gU2V0IGxvYWRpbmcgc3RhdGUgaW1tZWRpYXRlbHkgdG8gcHJldmVudCBkb3VibGUtbG9hZGluZ1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6ICdTRVRfTE9BRElORycsXG4gICAgICBwYXlsb2FkOiB0cnVlXG4gICAgfSk7XG4gICAgXG4gICAgLy8gQ2FsY3VsYXRlIG5leHQgcGFnZVxuICAgIGNvbnN0IG5leHRQYWdlID0gc3RhdGUucGFnZSArIDE7XG4gICAgXG4gICAgLy8gVXBkYXRlIHRoZSBwYWdlIHN0YXRlIC0gZml4IHR5cGUgaXNzdWVcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX1BBR0UnLFxuICAgICAgcGF5bG9hZDogbmV4dFBhZ2VcbiAgICB9KTtcbiAgICBcbiAgICAvLyBDUklUSUNBTCBGSVg6IFVwZGF0ZSB0aGUgbGFzdExvYWRlZFBhZ2UgcmVmIHRvIHRyYWNrIHBhZ2luYXRpb24gc3RhdGVcbiAgICBsYXN0UGFnZUxvYWRlZFJlZi5jdXJyZW50ID0gbmV4dFBhZ2U7XG4gICAgXG4gICAgLy8gTG9hZCB0aGUgbmV4dCBwYWdlXG4gICAgbG9hZEVtYWlscyhuZXh0UGFnZSwgc3RhdGUucGVyUGFnZSwgdHJ1ZSkudGhlbigoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhgW0xPQURfTU9SRV0gQ29tcGxldGVkIGxvYWRpbmcgbW9yZSBlbWFpbHMgZm9yIHBhZ2UgJHtuZXh0UGFnZX1gKTtcbiAgICB9KTtcbiAgfSwgW3N0YXRlLmlzTG9hZGluZywgc3RhdGUucGFnZSwgc3RhdGUudG90YWxQYWdlcywgc3RhdGUuY3VycmVudEZvbGRlciwgc3RhdGUuZW1haWxzLmxlbmd0aCwgc3RhdGUucGVyUGFnZSwgZGlzcGF0Y2gsIGxvYWRFbWFpbHNdKTtcblxuICAvLyBFZmZlY3QgdG8gbG9hZCBlbWFpbHMgd2hlbiBmb2xkZXIgY2hhbmdlc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzZXNzaW9uPy51c2VyPy5pZCAmJiBzdGF0ZS5jdXJyZW50Rm9sZGVyKSB7XG4gICAgICAvLyBDUklUSUNBTCBGSVg6IFJFTU9WRSB0aGlzIGNoZWNrIHRoYXQncyBjYXVzaW5nIHRoZSBwcm9ibGVtXG4gICAgICAvLyBJbnN0ZWFkLCBkZXRlY3QgYSByZWFsIGZvbGRlciBjaGFuZ2UgYW5kIGFsd2F5cyBsb2FkIHdoZW4gdGhhdCBoYXBwZW5zXG4gICAgICBcbiAgICAgIC8vIEV4dHJhY3QgYWNjb3VudCBJRCBmb3IgY29uc2lzdGVudCBsb2FkaW5nXG4gICAgICBjb25zdCB7IGVmZmVjdGl2ZUFjY291bnRJZCB9ID0gbm9ybWFsaXplRm9sZGVyQW5kQWNjb3VudChzdGF0ZS5jdXJyZW50Rm9sZGVyKTtcbiAgICAgIFxuICAgICAgLy8gVHJhY2sgaWYgdGhlIGZvbGRlciBhY3R1YWxseSBjaGFuZ2VkXG4gICAgICBjb25zdCBmb2xkZXJDaGFuZ2VkID0gcHJldkZvbGRlclJlZi5jdXJyZW50ICE9PSBzdGF0ZS5jdXJyZW50Rm9sZGVyO1xuICAgICAgXG4gICAgICBpZiAoZm9sZGVyQ2hhbmdlZCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLUZPTERFUl9FRkZFQ1RdIEZvbGRlciBjaGFuZ2VkIGZyb20gJHtwcmV2Rm9sZGVyUmVmLmN1cnJlbnR9IHRvICR7c3RhdGUuY3VycmVudEZvbGRlcn1gKTtcbiAgICAgICAgcHJldkZvbGRlclJlZi5jdXJyZW50ID0gc3RhdGUuY3VycmVudEZvbGRlcjtcbiAgICAgICAgXG4gICAgICAgIC8vIENSSVRJQ0FMIEZJWDogQWx3YXlzIHJlc2V0IHBhZ2luYXRpb24gc3RhdGUgd2hlbiBmb2xkZXIgYWN0dWFsbHkgY2hhbmdlc1xuICAgICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLUZPTERFUl9FRkZFQ1RdIEZvbGRlciBjaGFuZ2VkIC0gcmVzZXR0aW5nIHBhZ2luYXRpb24gc3RhdGVgKTtcbiAgICAgICAgXG4gICAgICAgIC8vIFJlc2V0IHBhZ2UgdG8gMSBBTkQgcmVzZXQgbGFzdFBhZ2VMb2FkZWRSZWYgdG8gZW5zdXJlIHdlIGxvYWRcbiAgICAgICAgbGFzdFBhZ2VMb2FkZWRSZWYuY3VycmVudCA9IDA7XG4gICAgICAgIFxuICAgICAgICBpZiAoc3RhdGUucGFnZSAhPT0gMSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBbREVCVUctRk9MREVSX0VGRkVDVF0gUmVzZXR0aW5nIHBhZ2UgdG8gMSBiZWNhdXNlIGZvbGRlciBjaGFuZ2VkYCk7XG4gICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX1BBR0UnLCBwYXlsb2FkOiAxIH0pO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvLyBDUklUSUNBTCBGSVg6IENsZWFyIGVtYWlscyBhbmQgc2V0IGxvYWRpbmcgd2hlbiBmb2xkZXIgY2hhbmdlc1xuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfRU1BSUxTJywgcGF5bG9hZDogW10gfSk7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9MT0FESU5HJywgcGF5bG9hZDogdHJ1ZSB9KTtcbiAgICAgICAgXG4gICAgICAgIC8vIENSSVRJQ0FMIEZJWDogQWx3YXlzIGxvYWQgZW1haWxzIHdoZW4gZm9sZGVyIGNoYW5nZXMsIG5vIG1hdHRlciB3aGF0XG4gICAgICAgIGNvbnNvbGUubG9nKGBbREVCVUctRk9MREVSX0VGRkVDVF0gTG9hZGluZyBlbWFpbHMgZm9yIG5ldyBmb2xkZXI6ICR7c3RhdGUuY3VycmVudEZvbGRlcn1gKTtcbiAgICAgICAgbG9hZEVtYWlscygxLCBzdGF0ZS5wZXJQYWdlLCBmYWxzZSk7XG4gICAgICAgIHJldHVybjsgLy8gRXhpdCBlYXJseSBhZnRlciBoYW5kbGluZyBmb2xkZXIgY2hhbmdlXG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIElmIG5vIGZvbGRlciBjaGFuZ2UgZGV0ZWN0ZWQsIG9ubHkgbG9hZCBpZiBvbiBwYWdlIDEgYW5kIG5vdCBhbHJlYWR5IGxvYWRlZFxuICAgICAgaWYgKHN0YXRlLnBhZ2UgPT09IDEgJiYgbGFzdFBhZ2VMb2FkZWRSZWYuY3VycmVudCA9PT0gMCkge1xuICAgICAgICBsb2dFbWFpbE9wKCdGT0xERVJfTE9BRCcsIGBMb2FkaW5nIGluaXRpYWwgZW1haWxzIGZvciBmb2xkZXIgJHtzdGF0ZS5jdXJyZW50Rm9sZGVyfWApO1xuICAgICAgICBsb2FkRW1haWxzKHN0YXRlLnBhZ2UsIHN0YXRlLnBlclBhZ2UsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtzZXNzaW9uPy51c2VyPy5pZCwgc3RhdGUuY3VycmVudEZvbGRlciwgc3RhdGUucGFnZSwgc3RhdGUucGVyUGFnZSwgbG9hZEVtYWlscywgbG9nRW1haWxPcCwgZGlzcGF0Y2hdKTtcblxuICAvLyBFZmZlY3QgdG8gbG9hZCBtb3JlIGVtYWlscyB3aGVuIHBhZ2UgY2hhbmdlc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghc2Vzc2lvbj8udXNlcj8uaWQgfHwgIXN0YXRlLmN1cnJlbnRGb2xkZXIpIHJldHVybjtcbiAgICBcbiAgICAvLyBNYWtlIHN1cmUgd2UncmUgb24gYXQgbGVhc3QgcGFnZSAxXG4gICAgaWYgKHN0YXRlLnBhZ2UgPCAxKSB7XG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfUEFHRScsIHBheWxvYWQ6IDEgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIGNvbnNvbGUubG9nKGBbREVCVUctUEFHRV9FRkZFQ1RdIFBhZ2UgY2hhbmdlZCB0byAke3N0YXRlLnBhZ2V9YCk7XG4gICAgXG4gICAgLy8gQ1JJVElDQUwgRklYOiBBZGQgYSBzcGVjaWFsIGNhc2UgZm9yIHBhZ2UgMSBsb2FkcyAtIHdlIHNob3VsZCBuZXZlciBza2lwIGxvYWRpbmcgdGhlIGZpcnN0IHBhZ2VcbiAgICAvLyBUaGlzIGVuc3VyZXMgdGhhdCBhZnRlciBhIGZvbGRlciBjaGFuZ2UsIHBhZ2UgMSBhbHdheXMgbG9hZHMgZXZlbiBpZiBsb2FkaW5nIHN0YXRlIGlzIHRydWVcbiAgICBpZiAoc3RhdGUucGFnZSA9PT0gMSkge1xuICAgICAgY29uc3QgY3VycmVudEZvbGRlciA9IHN0YXRlLmN1cnJlbnRGb2xkZXI7XG4gICAgICBjb25zdCBsYXN0TG9hZGVkRm9sZGVyID0gcHJldkZvbGRlclJlZi5jdXJyZW50O1xuICAgICAgXG4gICAgICAvLyBDaGVjayBpZiB0aGlzIGlzIGEgZnJlc2ggZm9sZGVyIGxvYWQgKGZvbGRlciBjaGFuZ2VkIG9yIGZpcnN0IHRpbWUgbG9hZGluZylcbiAgICAgIGlmIChjdXJyZW50Rm9sZGVyICE9PSBsYXN0TG9hZGVkRm9sZGVyIHx8IGxhc3RQYWdlTG9hZGVkUmVmLmN1cnJlbnQgPT09IDApIHtcbiAgICAgICAgLy8gRm9yY2UgbG9hZGluZyBwYWdlIDEgZm9yIG5ldyBmb2xkZXJzLCByZWdhcmRsZXNzIG9mIGxvYWRpbmcgc3RhdGVcbiAgICAgICAgY29uc29sZS5sb2coYFtERUJVRy1QQUdFX0VGRkVDVF0gRm9yY2UgbG9hZGluZyBwYWdlIDEgZm9yIGZvbGRlcjogJHtjdXJyZW50Rm9sZGVyfWApO1xuICAgICAgICBcbiAgICAgICAgLy8gU2V0IHRoZSBsb2FkaW5nIHN0YXRlIGV4cGxpY2l0bHkgKG1pZ2h0IGFscmVhZHkgYmUgdHJ1ZSlcbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0xPQURJTkcnLCBwYXlsb2FkOiB0cnVlIH0pO1xuICAgICAgICBcbiAgICAgICAgLy8gVXBkYXRlIHJlZnMgdG8gdHJhY2sgdGhlIGN1cnJlbnQgc3RhdGVcbiAgICAgICAgcHJldkZvbGRlclJlZi5jdXJyZW50ID0gY3VycmVudEZvbGRlcjtcbiAgICAgICAgbGFzdFBhZ2VMb2FkZWRSZWYuY3VycmVudCA9IDE7XG4gICAgICAgIFxuICAgICAgICAvLyBDYWxsIGxvYWRFbWFpbHMgdG8gbG9hZCB0aGUgZmlyc3QgcGFnZSAtIG5ldmVyIHNraXAgdGhpcyFcbiAgICAgICAgbG9hZEVtYWlscygxLCBzdGF0ZS5wZXJQYWdlLCBmYWxzZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gRm9yIHBhZ2VzID4gMSBvciBhbHJlYWR5IGxvYWRlZCBmb2xkZXJzLCBmb2xsb3cgbm9ybWFsIHJ1bGVzXG4gICAgXG4gICAgLy8gU2tpcCBpZiBhbHJlYWR5IGxvYWRpbmdcbiAgICBpZiAoc3RhdGUuaXNMb2FkaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLVBBR0VfRUZGRUNUXSBTa2lwcGluZyBlZmZlY3QgZXhlY3V0aW9uIGVudGlyZWx5IC0gYWxyZWFkeSBsb2FkaW5nYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIE5vcm1hbGl6ZSBmb2xkZXIgYW5kIGdldCBhY2NvdW50IElEXG4gICAgY29uc3QgeyBlZmZlY3RpdmVBY2NvdW50SWQgfSA9IG5vcm1hbGl6ZUZvbGRlckFuZEFjY291bnQoc3RhdGUuY3VycmVudEZvbGRlcik7XG4gICAgXG4gICAgLy8gQ2hlY2sgaWYgdGhpcyBpcyBhIGR1cGxpY2F0ZSBwYWdlIGxvYWRcbiAgICBpZiAoc3RhdGUucGFnZSA9PT0gbGFzdFBhZ2VMb2FkZWRSZWYuY3VycmVudCkge1xuICAgICAgY29uc29sZS5sb2coYFtERUJVRy1QQUdFX0VGRkVDVF0gU2tpcHBpbmcgLSBhbHJlYWR5IGxvYWRlZCBwYWdlICR7c3RhdGUucGFnZX1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgLy8gU2tpcCBsb2FkcyBmb3IgemVyby1iYXNlZCBwYWdlc1xuICAgIGlmIChzdGF0ZS5wYWdlID09PSAwKSB7XG4gICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLVBBR0VfRUZGRUNUXSBTa2lwcGluZyBsb2FkIGZvciBpbnZhbGlkIHBhZ2UgJHtzdGF0ZS5wYWdlfWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICAvLyBVcGRhdGUgb3VyIHJlZmVyZW5jZSB0byBwcmV2ZW50IGR1cGxpY2F0ZSBsb2Fkc1xuICAgIGxhc3RQYWdlTG9hZGVkUmVmLmN1cnJlbnQgPSBzdGF0ZS5wYWdlO1xuICAgIFxuICAgIC8vIEFsd2F5cyB1c2UgaXNMb2FkTW9yZT10cnVlIHdoZW4gcGFnZSA+IDFcbiAgICBjb25zb2xlLmxvZyhgW0RFQlVHLVBBR0VfRUZGRUNUXSBDYWxsaW5nIGxvYWRFbWFpbHMgd2l0aCBpc0xvYWRNb3JlPXRydWUgZm9yIHBhZ2UgJHtzdGF0ZS5wYWdlfWApO1xuICAgIGxvYWRFbWFpbHMoc3RhdGUucGFnZSwgc3RhdGUucGVyUGFnZSwgdHJ1ZSk7XG4gICAgXG4gIC8vIERvIE5PVCBpbmNsdWRlIHN0YXRlLmVtYWlscy5sZW5ndGggaGVyZSB0byBwcmV2ZW50IGluZmluaXRlIGxvb3BzXG4gIH0sIFtzZXNzaW9uPy51c2VyPy5pZCwgc3RhdGUucGFnZSwgc3RhdGUuY3VycmVudEZvbGRlciwgc3RhdGUuaXNMb2FkaW5nLCBzdGF0ZS5wZXJQYWdlLCBsb2FkRW1haWxzLCBsb2dFbWFpbE9wLCBkaXNwYXRjaF0pO1xuXG4gIC8vIEZldGNoIHVucmVhZCBjb3VudHMgZnJvbSBBUElcbiAgY29uc3QgZmV0Y2hVbnJlYWRDb3VudHMgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgaWYgKCFzZXNzaW9uPy51c2VyKSByZXR1cm47XG4gICAgXG4gICAgLy8gRG9uJ3QgZmV0Y2ggaWYgd2UncmUgYWxyZWFkeSBmZXRjaGluZ1xuICAgIGlmIChzdGF0ZS5pc0xvYWRpbmdVbnJlYWRDb3VudHMpIHJldHVybjtcbiAgICBcbiAgICAvLyBTa2lwIGZldGNoaW5nIGlmIGFuIGVtYWlsIHdhcyB2aWV3ZWQgcmVjZW50bHkgKHdpdGhpbiBsYXN0IDUgc2Vjb25kcylcbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgIC8vIEluaXRpYWxpemUgdGhlIHJlZiB0byB0aGUgY3VycmVudCB0aW1lIGlmIGl0J3MgbnVsbFxuICAgIGlmIChsYXN0RW1haWxWaWV3ZWRSZWYuY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgbGFzdEVtYWlsVmlld2VkUmVmLmN1cnJlbnQgPSBub3c7XG4gICAgfVxuICAgIFxuICAgIC8vIE5vdyB3ZSBjYW4gc2FmZWx5IHVzZSBpdCBzaW5jZSB3ZSd2ZSBpbml0aWFsaXplZCBpdFxuICAgIGlmIChub3cgLSBsYXN0RW1haWxWaWV3ZWRSZWYuY3VycmVudCA8IDUwMDApIHtcbiAgICAgIGNvbnNvbGUubG9nKCdTa2lwcGluZyB1bnJlYWQgY291bnQgdXBkYXRlIC0gZW1haWwgdmlld2VkIHJlY2VudGx5Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIFRyeSB0byBnZXQgZnJvbSBzZXNzaW9uU3RvcmFnZSBmaXJzdCBmb3IgZmFzdGVyIHJlc3BvbnNlXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0b3JhZ2VLZXkgPSBgdW5yZWFkX2NvdW50c18ke3Nlc3Npb24udXNlci5pZH1gO1xuICAgICAgY29uc3Qgc3RvcmVkRGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oc3RvcmFnZUtleSk7XG4gICAgICBcbiAgICAgIGlmIChzdG9yZWREYXRhKSB7XG4gICAgICAgIGNvbnN0IHsgZGF0YSwgdGltZXN0YW1wIH0gPSBKU09OLnBhcnNlKHN0b3JlZERhdGEpO1xuICAgICAgICAvLyBVc2Ugc3RvcmVkIGRhdGEgaWYgaXQncyBsZXNzIHRoYW4gMzAgc2Vjb25kcyBvbGRcbiAgICAgICAgaWYgKG5vdyAtIHRpbWVzdGFtcCA8IDMwMDAwKSB7XG4gICAgICAgICAgbG9nRW1haWxPcCgnRkVUQ0hfVU5SRUFEJywgJ1VzaW5nIHNlc3Npb25TdG9yYWdlIGRhdGEnLCB7IGFnZTogTWF0aC5yb3VuZCgobm93IC0gdGltZXN0YW1wKS8xMDAwKSArICdzJyB9KTtcbiAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfVU5SRUFEX0NPVU5UUycsIHBheWxvYWQ6IGRhdGEgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyBJZ25vcmUgc3RvcmFnZSBlcnJvcnNcbiAgICB9XG4gICAgXG4gICAgLy8gUmVzZXQgZmFpbHVyZSB0cmFja2luZyBpZiBpdCdzIGJlZW4gbW9yZSB0aGFuIDEgbWludXRlIHNpbmNlIGxhc3QgZmFpbHVyZVxuICAgIGlmICgod2luZG93IGFzIGFueSkuX191bnJlYWRDb3VudEZhaWx1cmVzPy5sYXN0RmFpbHVyZVRpbWUgJiYgXG4gICAgICAgIG5vdyAtICh3aW5kb3cgYXMgYW55KS5fX3VucmVhZENvdW50RmFpbHVyZXMubGFzdEZhaWx1cmVUaW1lID4gNjAwMDApIHtcbiAgICAgICh3aW5kb3cgYXMgYW55KS5fX3VucmVhZENvdW50RmFpbHVyZXMgPSB7IGNvdW50OiAwLCBsYXN0RmFpbHVyZVRpbWU6IDAgfTtcbiAgICB9XG4gICAgXG4gICAgLy8gRXhwb25lbnRpYWwgYmFja29mZiBmb3IgZmFpbHVyZXMgd2l0aCBwcm9wZXIgdHJhY2tpbmcgb2JqZWN0XG4gICAgaWYgKCEod2luZG93IGFzIGFueSkuX191bnJlYWRDb3VudEZhaWx1cmVzKSB7XG4gICAgICAod2luZG93IGFzIGFueSkuX191bnJlYWRDb3VudEZhaWx1cmVzID0geyBjb3VudDogMCwgbGFzdEZhaWx1cmVUaW1lOiAwIH07XG4gICAgfVxuICAgIFxuICAgIGlmICgod2luZG93IGFzIGFueSkuX191bnJlYWRDb3VudEZhaWx1cmVzLmNvdW50ID4gMCkge1xuICAgICAgY29uc3QgZmFpbHVyZXMgPSAod2luZG93IGFzIGFueSkuX191bnJlYWRDb3VudEZhaWx1cmVzLmNvdW50O1xuICAgICAgY29uc3QgYmFja29mZk1zID0gTWF0aC5taW4oMzAwMDAsIDEwMDAgKiBNYXRoLnBvdygyLCBmYWlsdXJlcyAtIDEpKTtcbiAgICAgIGlmIChub3cgLSAod2luZG93IGFzIGFueSkuX191bnJlYWRDb3VudEZhaWx1cmVzLmxhc3RGYWlsdXJlVGltZSA8IGJhY2tvZmZNcykge1xuICAgICAgICBsb2dFbWFpbE9wKCdCQUNLT0ZGJywgYFNraXBwaW5nIHVucmVhZCBmZXRjaCwgaW4gYmFja29mZiBwZXJpb2QgKCR7YmFja29mZk1zfW1zKWApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIHRyeSB7XG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfTE9BRElOR19VTlJFQURfQ09VTlRTJywgcGF5bG9hZDogdHJ1ZSB9KTtcbiAgICAgIFxuICAgICAgY29uc3QgdGltZUJlZm9yZUNhbGwgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgIGxvZ0VtYWlsT3AoJ0ZFVENIX1VOUkVBRCcsICdGZXRjaGluZyB1bnJlYWQgY291bnRzIGZyb20gQVBJJyk7XG4gICAgICBcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy9hcGkvY291cnJpZXIvdW5yZWFkLWNvdW50cycsIHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAgIC8vIEFkZCBjYWNoZSBjb250cm9sIGhlYWRlcnNcbiAgICAgICAgY2FjaGU6ICduby1jYWNoZScsXG4gICAgICAgIG5leHQ6IHsgcmV2YWxpZGF0ZTogMCB9XG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAvLyBJZiByZXF1ZXN0IGZhaWxlZCwgdHJhY2sgZmFpbHVyZXMgcHJvcGVybHlcbiAgICAgICAgKHdpbmRvdyBhcyBhbnkpLl9fdW5yZWFkQ291bnRGYWlsdXJlcy5jb3VudCA9IFxuICAgICAgICAgIE1hdGgubWluKCh3aW5kb3cgYXMgYW55KS5fX3VucmVhZENvdW50RmFpbHVyZXMuY291bnQgKyAxLCAxMCk7XG4gICAgICAgICh3aW5kb3cgYXMgYW55KS5fX3VucmVhZENvdW50RmFpbHVyZXMubGFzdEZhaWx1cmVUaW1lID0gbm93O1xuICAgICAgICBcbiAgICAgICAgY29uc3QgZmFpbHVyZXMgPSAod2luZG93IGFzIGFueSkuX191bnJlYWRDb3VudEZhaWx1cmVzLmNvdW50O1xuICAgICAgICBcbiAgICAgICAgaWYgKGZhaWx1cmVzID4gMykge1xuICAgICAgICAgIC8vIEFmdGVyIDMgZmFpbHVyZXMsIHNsb3cgZG93biByZXF1ZXN0cyB3aXRoIGV4cG9uZW50aWFsIGJhY2tvZmZcbiAgICAgICAgICBjb25zdCBiYWNrb2ZmVGltZSA9IE1hdGgubWluKE1hdGgucG93KDIsIGZhaWx1cmVzIC0gMykgKiAxMDAwLCAzMDAwMCk7IC8vIE1heCAzMCBzZWNvbmRzXG4gICAgICAgICAgbG9nRW1haWxPcCgnRkVUQ0hfVU5SRUFEJywgYEFQSSBmYWlsdXJlICMke2ZhaWx1cmVzfSwgYmFja2luZyBvZmYgZm9yICR7YmFja29mZlRpbWV9bXNgKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBTY2hlZHVsZSBuZXh0IGF0dGVtcHQgd2l0aCBiYWNrb2ZmXG4gICAgICAgICAgaWYgKCh3aW5kb3cgYXMgYW55KS5fX2ZhaWx1cmVCYWNrb2ZmVGltZXIpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCgod2luZG93IGFzIGFueSkuX19mYWlsdXJlQmFja29mZlRpbWVyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgICAgKHdpbmRvdyBhcyBhbnkpLl9fZmFpbHVyZUJhY2tvZmZUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgZmV0Y2hVbnJlYWRDb3VudHMoKTtcbiAgICAgICAgICB9LCBiYWNrb2ZmVGltZSk7XG4gICAgICAgICAgXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggdW5yZWFkIGNvdW50czogJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFJlc2V0IGZhaWx1cmUgY291bnRlciBvbiBzdWNjZXNzXG4gICAgICAgICh3aW5kb3cgYXMgYW55KS5fX3VucmVhZENvdW50RmFpbHVyZXMgPSB7IGNvdW50OiAwLCBsYXN0RmFpbHVyZVRpbWU6IDAgfTtcbiAgICAgICAgXG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICAgIGNvbnN0IHRpbWVBZnRlckNhbGwgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgICAgXG4gICAgICAgIC8vIFNraXAgaWYgd2UgZ290IHRoZSBcInBlbmRpbmdfcmVmcmVzaFwiIHN0YXR1c1xuICAgICAgICBpZiAoZGF0YS5fc3RhdHVzID09PSAncGVuZGluZ19yZWZyZXNoJykge1xuICAgICAgICAgIGxvZ0VtYWlsT3AoJ0ZFVENIX1VOUkVBRCcsICdTZXJ2ZXIgaXMgcmVmcmVzaGluZyBjb3VudHMsIHdpbGwgdHJ5IGFnYWluIHNvb24nKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBSZXRyeSBhZnRlciBhIHNob3J0IGRlbGF5XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBmZXRjaFVucmVhZENvdW50cygpO1xuICAgICAgICAgIH0sIDIwMDApO1xuICAgICAgICAgIFxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgbG9nRW1haWxPcCgnRkVUQ0hfVU5SRUFEJywgYFJlY2VpdmVkIHVucmVhZCBjb3VudHMgaW4gJHsodGltZUFmdGVyQ2FsbCAtIHRpbWVCZWZvcmVDYWxsKS50b0ZpeGVkKDIpfW1zYCk7XG4gICAgICAgIFxuICAgICAgICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfVU5SRUFEX0NPVU5UUycsIHBheWxvYWQ6IGRhdGEgfSk7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gU3RvcmUgaW4gc2Vzc2lvblN0b3JhZ2UgZm9yIGZhc3RlciBmdXR1cmUgYWNjZXNzXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXG4gICAgICAgICAgICAgIGB1bnJlYWRfY291bnRzXyR7c2Vzc2lvbi51c2VyLmlkfWAsIFxuICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IG5vd1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIC8vIElnbm9yZSBzdG9yYWdlIGVycm9yc1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyB1bnJlYWQgY291bnRzOicsIGVycm9yKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0xPQURJTkdfVU5SRUFEX0NPVU5UUycsIHBheWxvYWQ6IGZhbHNlIH0pO1xuICAgIH1cbiAgfSwgW2Rpc3BhdGNoLCBzZXNzaW9uPy51c2VyLCBzdGF0ZS5pc0xvYWRpbmdVbnJlYWRDb3VudHMsIGxvZ0VtYWlsT3BdKTtcblxuICAvLyBDYWxjdWxhdGUgYW5kIHVwZGF0ZSB1bnJlYWQgY291bnRzXG4gIGNvbnN0IHVwZGF0ZVVucmVhZENvdW50cyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAvLyBTa2lwIGlmIG5vIGVtYWlscyBvciBhY2NvdW50c1xuICAgIGlmIChzdGF0ZS5lbWFpbHMubGVuZ3RoID09PSAwIHx8IHN0YXRlLmFjY291bnRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIFxuICAgIC8vIFRvIGF2b2lkIHJ1bm5pbmcgdGhpcyB0b28gZnJlcXVlbnRseSwgY2hlY2sgdGhlIHRpbWVzdGFtcCBvZiBsYXN0IHVwZGF0ZVxuICAgIGlmICghKHdpbmRvdyBhcyBhbnkpLl9fbGFzdFVucmVhZFVwZGF0ZSkge1xuICAgICAgKHdpbmRvdyBhcyBhbnkpLl9fbGFzdFVucmVhZFVwZGF0ZSA9IHsgdGltZXN0YW1wOiAwIH07XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgY29uc3QgbGFzdFVwZGF0ZSA9ICh3aW5kb3cgYXMgYW55KS5fX2xhc3RVbnJlYWRVcGRhdGU7XG4gICAgY29uc3QgTUlOX1VQREFURV9JTlRFUlZBTCA9IDEwMDAwOyAvLyAxMCBzZWNvbmRzIG1pbmltdW0gYmV0d2VlbiB1cGRhdGVzIChpbmNyZWFzZWQgZnJvbSAycylcbiAgICBcbiAgICBpZiAobm93IC0gbGFzdFVwZGF0ZS50aW1lc3RhbXAgPCBNSU5fVVBEQVRFX0lOVEVSVkFMKSB7XG4gICAgICByZXR1cm47IC8vIFNraXAgaWYgdXBkYXRlZCB0b28gcmVjZW50bHlcbiAgICB9XG4gICAgXG4gICAgLy8gUmF0aGVyIHRoYW4gY2FsY3VsYXRpbmcgbG9jYWxseSwgZmV0Y2ggZnJvbSB0aGUgQVBJXG4gICAgZmV0Y2hVbnJlYWRDb3VudHMoKTtcbiAgICBcbiAgICAvLyBVcGRhdGUgdGltZXN0YW1wIG9mIGxhc3QgdXBkYXRlXG4gICAgbGFzdFVwZGF0ZS50aW1lc3RhbXAgPSBub3c7XG4gIH0sIFtzdGF0ZS5lbWFpbHMubGVuZ3RoLCBzdGF0ZS5hY2NvdW50cy5sZW5ndGgsIGZldGNoVW5yZWFkQ291bnRzXSk7XG4gIFxuICAvLyBDYWxsIHVwZGF0ZVVucmVhZENvdW50cyB3aGVuIHJlbGV2YW50IHN0YXRlIGNoYW5nZXNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXN0YXRlLmVtYWlscyB8fCBzdGF0ZS5lbWFpbHMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgXG4gICAgLy8gRGVib3VuY2UgdW5yZWFkIGNvdW50IHVwZGF0ZXMgdG8gcHJldmVudCByYXBpZCBtdWx0aXBsZSB1cGRhdGVzXG4gICAgbGV0IHVwZGF0ZVRpbWVvdXRJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gICAgXG4gICAgY29uc3QgZGVib3VuY2VNcyA9IDUwMDA7IC8vIEluY3JlYXNlIGRlYm91bmNlIHRvIDUgc2Vjb25kcyAoZnJvbSAycylcbiAgICBcbiAgICAvLyBGdW5jdGlvbiB0byBjYWxsIGFmdGVyIGRlYm91bmNlIHBlcmlvZFxuICAgIGNvbnN0IGRlYm91bmNlZFVwZGF0ZSA9ICgpID0+IHtcbiAgICAgIHVwZGF0ZVRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB1cGRhdGVVbnJlYWRDb3VudHMoKTtcbiAgICAgIH0sIGRlYm91bmNlTXMpO1xuICAgIH07XG4gICAgXG4gICAgLy8gQ2xlYXIgYW55IGV4aXN0aW5nIHRpbWVvdXQgYW5kIHN0YXJ0IGEgbmV3IG9uZVxuICAgIGRlYm91bmNlZFVwZGF0ZSgpO1xuICAgIFxuICAgIC8vIEFsc28gc2V0IHVwIGEgcGVyaW9kaWMgcmVmcmVzaCBldmVyeSBtaW51dGUgaWYgdGhlIHRhYiBpcyBhY3RpdmVcbiAgICBjb25zdCBwZXJpb2RpY1JlZnJlc2hJZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09ICd2aXNpYmxlJykge1xuICAgICAgICB1cGRhdGVVbnJlYWRDb3VudHMoKTtcbiAgICAgIH1cbiAgICB9LCA2MDAwMCk7IC8vIDEgbWludXRlXG4gICAgXG4gICAgLy8gQ2xlYW51cCB0aW1lb3V0IG9uIHVubW91bnQgb3Igc3RhdGUgY2hhbmdlXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNsZWFyVGltZW91dCh1cGRhdGVUaW1lb3V0SWQpO1xuICAgICAgY2xlYXJJbnRlcnZhbChwZXJpb2RpY1JlZnJlc2hJZCk7XG4gICAgfTtcbiAgLy8gRGVsaWJlcmF0ZWx5IGV4Y2x1ZGUgdW5yZWFkQ291bnRNYXAgdG8gcHJldmVudCBpbmZpbml0ZSBsb29wc1xuICB9LCBbc3RhdGUuZW1haWxzLCB1cGRhdGVVbnJlYWRDb3VudHNdKTtcblxuICAvLyBTZXQgdXAgcGVyaW9kaWMgY2hlY2sgZm9yIG5ldyBlbWFpbHNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXN0YXRlLmVtYWlscyB8fCBzdGF0ZS5lbWFpbHMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgXG4gICAgLy8gU2V0IHVwIGEgcGVyaW9kaWMgY2hlY2sgZm9yIG5ldyBlbWFpbHMgYXQgdGhlIHNhbWUgaW50ZXJ2YWwgYXMgdW5yZWFkIGNvdW50c1xuICAgIGNvbnN0IGNoZWNrTmV3RW1haWxzSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSAndmlzaWJsZScpIHtcbiAgICAgICAgY2hlY2tGb3JOZXdFbWFpbHMoKTtcbiAgICAgIH1cbiAgICB9LCA2MDAwMCk7IC8vIDEgbWludXRlIC0gc2FtZSBhcyB1bnJlYWQgY291bnQgcmVmcmVzaFxuICAgIFxuICAgIC8vIENsZWFudXAgaW50ZXJ2YWwgb24gdW5tb3VudCBvciBzdGF0ZSBjaGFuZ2VcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2xlYXJJbnRlcnZhbChjaGVja05ld0VtYWlsc0lkKTtcbiAgICB9O1xuICB9LCBbc3RhdGUuZW1haWxzLCBjaGVja0Zvck5ld0VtYWlsc10pO1xuXG4gIC8vIFRyYWNraW5nIHdoZW4gYW4gZW1haWwgaXMgdmlld2VkIHRvIG9wdGltaXplIHVucmVhZCBjb3VudCByZWZyZXNoZXNcbiAgY29uc3QgbGFzdFZpZXdlZEVtYWlsUmVmID0gdXNlUmVmPG51bWJlciB8IG51bGw+KG51bGwpO1xuICBjb25zdCBmZXRjaEZhaWx1cmVzUmVmID0gdXNlUmVmPG51bWJlcj4oMCk7XG4gIGNvbnN0IGxhc3RGZXRjaEZhaWx1cmVSZWYgPSB1c2VSZWY8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgLy8gTW9kaWZ5IHZpZXdFbWFpbCB0byB0cmFjayB3aGVuIGFuIGVtYWlsIGlzIHZpZXdlZFxuICBjb25zdCB2aWV3RW1haWwgPSB1c2VDYWxsYmFjaygoZW1haWxJZDogc3RyaW5nLCBhY2NvdW50SWQ6IHN0cmluZywgZm9sZGVyOiBzdHJpbmcsIGVtYWlsOiBFbWFpbCB8IG51bGwpID0+IHtcbiAgICBkaXNwYXRjaCh7IFxuICAgICAgdHlwZTogJ1NFTEVDVF9FTUFJTCcsIFxuICAgICAgcGF5bG9hZDogeyBlbWFpbElkLCBhY2NvdW50SWQsIGZvbGRlciwgZW1haWwgfSBcbiAgICB9KTtcbiAgICBcbiAgICAvLyBUcmFjayB3aGVuIGFuIGVtYWlsIGlzIHZpZXdlZCB0byBkZWxheSB1bnJlYWQgY291bnQgcmVmcmVzaFxuICAgIGlmIChlbWFpbCkge1xuICAgICAgbGFzdFZpZXdlZEVtYWlsUmVmLmN1cnJlbnQgPSBEYXRlLm5vdygpO1xuICAgICAgXG4gICAgICAvLyBJZiBlbWFpbCBpcyB1bnJlYWQsIG1hcmsgaXQgYXMgcmVhZFxuICAgICAgaWYgKGVtYWlsLmZsYWdzICYmICFlbWFpbC5mbGFncy5zZWVuKSB7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiAnTUFSS19FTUFJTF9BU19SRUFEJyxcbiAgICAgICAgICBwYXlsb2FkOiB7IGVtYWlsSWQsIGlzUmVhZDogdHJ1ZSwgYWNjb3VudElkIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEVtYWlsIHdhcyBkZXNlbGVjdGVkLCBzY2hlZHVsZSBhIHJlZnJlc2ggb2YgdW5yZWFkIGNvdW50cyBhZnRlciBkZWxheVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGZldGNoVW5yZWFkQ291bnRzKCk7XG4gICAgICB9LCAyMDAwKTtcbiAgICB9XG4gIH0sIFtkaXNwYXRjaCwgZmV0Y2hVbnJlYWRDb3VudHNdKTtcblxuICAvLyBTZXQgdXAgYSBmdW5jdGlvbiB0byBtYW51YWxseSB0cmlnZ2VyIGNoZWNraW5nIGZvciBuZXcgZW1haWxzXG4gIGNvbnN0IGZvcmNlQ2hlY2tGb3JOZXdFbWFpbHMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgLy8gRG9uJ3QgY2hlY2sgaWYgd2UncmUgYWxyZWFkeSBsb2FkaW5nXG4gICAgaWYgKHN0YXRlLmlzTG9hZGluZykgcmV0dXJuO1xuICAgIFxuICAgIC8vIExvZyB0aGF0IHdlJ3JlIG1hbnVhbGx5IGNoZWNraW5nXG4gICAgbG9nRW1haWxPcCgnTUFOVUFMX0NIRUNLJywgJ01hbnVhbGx5IGNoZWNraW5nIGZvciBuZXcgZW1haWxzJyk7XG4gICAgXG4gICAgLy8gUmVzZXQgdG8gcGFnZSAxIHRvIGVuc3VyZSB3ZSBnZXQgdGhlIG5ld2VzdCBlbWFpbHNcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfUEFHRScsIHBheWxvYWQ6IDEgfSk7XG4gICAgXG4gICAgLy8gUGVyZm9ybSBhIGNvbXBsZXRlIHJlZnJlc2ggb2YgZW1haWxzXG4gICAgbG9hZEVtYWlscygxLCBzdGF0ZS5wZXJQYWdlLCBmYWxzZSk7XG4gICAgXG4gICAgLy8gQWxzbyB1cGRhdGUgdW5yZWFkIGNvdW50c1xuICAgIGZldGNoVW5yZWFkQ291bnRzKCk7XG4gIH0sIFtzdGF0ZS5pc0xvYWRpbmcsIHN0YXRlLnBlclBhZ2UsIGxvYWRFbWFpbHMsIGxvZ0VtYWlsT3AsIGRpc3BhdGNoLCBmZXRjaFVucmVhZENvdW50c10pO1xuXG4gIC8vIFJldHVybiBhbGwgc3RhdGUgdmFsdWVzIGFuZCBhY3Rpb25zXG4gIHJldHVybiB7XG4gICAgLy8gU3RhdGUgdmFsdWVzXG4gICAgLi4uc3RhdGUsXG4gICAgXG4gICAgLy8gQWN0aW9uc1xuICAgIGxvYWRFbWFpbHMsXG4gICAgaGFuZGxlRW1haWxTZWxlY3QsXG4gICAgdG9nZ2xlRW1haWxTZWxlY3Rpb24sXG4gICAgdG9nZ2xlU2VsZWN0QWxsLFxuICAgIG1hcmtFbWFpbEFzUmVhZCxcbiAgICB0b2dnbGVTdGFycmVkLFxuICAgIGNoYW5nZUZvbGRlcixcbiAgICBkZWxldGVFbWFpbHMsXG4gICAgc2VuZEVtYWlsLFxuICAgIHNlYXJjaEVtYWlscyxcbiAgICBmb3JtYXRFbWFpbEZvckFjdGlvbixcbiAgICBzZXRQYWdlLFxuICAgIHNldEVtYWlscyxcbiAgICBzZWxlY3RBY2NvdW50LFxuICAgIGhhbmRsZUxvYWRNb3JlLFxuICAgIGZldGNoVW5yZWFkQ291bnRzLFxuICAgIHZpZXdFbWFpbCxcbiAgICBjaGVja0Zvck5ld0VtYWlscyxcbiAgICBmb3JjZUNoZWNrRm9yTmV3RW1haWxzXG4gIH07XG59OyAiXSwibmFtZXMiOlsidXNlUmVkdWNlciIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlUmVmIiwidXNlU2Vzc2lvbiIsInVzZVRvYXN0IiwiZW1haWxSZWR1Y2VyIiwiaW5pdGlhbFN0YXRlIiwibm9ybWFsaXplRm9sZGVyQW5kQWNjb3VudCIsImdldENhY2hlZEVtYWlsc1dpdGhUaW1lb3V0IiwiZm9ybWF0RW1haWxGb3JSZXBseU9yRm9yd2FyZCIsInVzZUVtYWlsU3RhdGUiLCJzZXNzaW9uIiwic3RhdGUiLCJkaXNwYXRjaCIsImRhdGEiLCJ0b2FzdCIsInVwZGF0ZVVucmVhZFRpbWVyUmVmIiwibGFzdEVtYWlsVmlld2VkUmVmIiwiZmFpbGVkRmV0Y2hDb3VudFJlZiIsImxhc3RGb2xkZXJSZWYiLCJsYXN0UGFnZUxvYWRlZFJlZiIsInByZXZGb2xkZXJSZWYiLCJsb2FkTW9yZVRyaWdnZXJUaW1lUmVmIiwid2luZG93IiwiZGlzcGF0Y2hFbWFpbEFjdGlvbiIsIl9fZW1haWxTdGF0ZURpc3BhdGNoIiwidW5kZWZpbmVkIiwibG9nRW1haWxPcCIsIm9wZXJhdGlvbiIsImRldGFpbHMiLCJ0aW1lc3RhbXAiLCJEYXRlIiwidG9JU09TdHJpbmciLCJzcGxpdCIsInN1YnN0cmluZyIsImNvbnNvbGUiLCJsb2ciLCJsb2FkRW1haWxzIiwicGFnZSIsInBlclBhZ2UiLCJpc0xvYWRNb3JlIiwidXNlciIsImlkIiwiZW1haWxzIiwibGVuZ3RoIiwic3RhcnRGb2xkZXIiLCJjdXJyZW50Rm9sZGVyIiwic3RhcnRBY2NvdW50Iiwic2VsZWN0ZWRBY2NvdW50IiwidHlwZSIsInBheWxvYWQiLCJhY2NvdW50SWQiLCJub3JtYWxpemVkRm9sZGVyIiwiZWZmZWN0aXZlQWNjb3VudElkIiwicHJlZml4ZWRGb2xkZXIiLCJxdWVyeVBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImZvbGRlciIsInRvU3RyaW5nIiwiY2FjaGVkRW1haWxzIiwiQXJyYXkiLCJpc0FycmF5IiwidG90YWxFbWFpbHMiLCJ0b3RhbFBhZ2VzIiwibWFpbGJveGVzIiwic2V0VGltZW91dCIsInJlc3BvbnNlIiwiZmV0Y2giLCJvayIsInN0YXR1cyIsImVycm9yRGF0YSIsImpzb24iLCJFcnJvciIsImVycm9yIiwic2xpY2UiLCJtYXAiLCJlIiwic3ViamVjdCIsImRhdGUiLCJkYXRlT2JqIiwiZ2V0VGltZSIsImZvckVhY2giLCJlbWFpbCIsImluY2x1ZGVzIiwiaXNOYU4iLCJlcnIiLCJtZXNzYWdlIiwiU3RyaW5nIiwidmFyaWFudCIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJjaGFuZ2VGb2xkZXIiLCJjdXJyZW50Iiwic2VsZWN0QWNjb3VudCIsImFjY291bnQiLCJoYW5kbGVFbWFpbFNlbGVjdCIsImVtYWlsSWQiLCJleGlzdGluZ0VtYWlsIiwiZmluZCIsImNvbnRlbnRGZXRjaGVkIiwiZmxhZ3MiLCJzZWVuIiwibWFya0VtYWlsQXNSZWFkIiwiZW1haWxEYXRhIiwidG9nZ2xlRW1haWxTZWxlY3Rpb24iLCJ0b2dnbGVTZWxlY3RBbGwiLCJpc1JlYWQiLCJtZXRob2QiLCJoZWFkZXJzIiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0b2dnbGVTdGFycmVkIiwibmV3RmxhZ2dlZFN0YXR1cyIsImZsYWdnZWQiLCJjaGVja0Zvck5ld0VtYWlscyIsImlzTG9hZGluZyIsImNoZWNrT25seSIsImNhY2hlIiwibGFzdEtub3duRW1haWxJZCIsInBhcnNlSW50IiwibmV3ZXN0RW1haWxJZCIsImR1cmF0aW9uIiwiZGVsZXRlRW1haWxzIiwiZW1haWxJZHMiLCJmaXJzdEVtYWlsIiwic2VuZEVtYWlsIiwidG8iLCJyZXN1bHQiLCJzdWNjZXNzIiwic2VhcmNoRW1haWxzIiwicXVlcnkiLCJzZWFyY2giLCJyZXN1bHRzIiwiZm9ybWF0RW1haWxGb3JBY3Rpb24iLCJzZXRQYWdlIiwic2V0RW1haWxzIiwiaGFuZGxlTG9hZE1vcmUiLCJuZXh0UGFnZSIsInRoZW4iLCJmb2xkZXJDaGFuZ2VkIiwibGFzdExvYWRlZEZvbGRlciIsImZldGNoVW5yZWFkQ291bnRzIiwiaXNMb2FkaW5nVW5yZWFkQ291bnRzIiwibm93Iiwic3RvcmFnZUtleSIsInN0b3JlZERhdGEiLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJwYXJzZSIsImFnZSIsIk1hdGgiLCJyb3VuZCIsIl9fdW5yZWFkQ291bnRGYWlsdXJlcyIsImxhc3RGYWlsdXJlVGltZSIsImNvdW50IiwiZmFpbHVyZXMiLCJiYWNrb2ZmTXMiLCJtaW4iLCJwb3ciLCJ0aW1lQmVmb3JlQ2FsbCIsInBlcmZvcm1hbmNlIiwibmV4dCIsInJldmFsaWRhdGUiLCJiYWNrb2ZmVGltZSIsIl9fZmFpbHVyZUJhY2tvZmZUaW1lciIsImNsZWFyVGltZW91dCIsInRpbWVBZnRlckNhbGwiLCJfc3RhdHVzIiwidG9GaXhlZCIsInNldEl0ZW0iLCJ1cGRhdGVVbnJlYWRDb3VudHMiLCJhY2NvdW50cyIsIl9fbGFzdFVucmVhZFVwZGF0ZSIsImxhc3RVcGRhdGUiLCJNSU5fVVBEQVRFX0lOVEVSVkFMIiwidXBkYXRlVGltZW91dElkIiwiZGVib3VuY2VNcyIsImRlYm91bmNlZFVwZGF0ZSIsInBlcmlvZGljUmVmcmVzaElkIiwic2V0SW50ZXJ2YWwiLCJkb2N1bWVudCIsInZpc2liaWxpdHlTdGF0ZSIsImNsZWFySW50ZXJ2YWwiLCJjaGVja05ld0VtYWlsc0lkIiwibGFzdFZpZXdlZEVtYWlsUmVmIiwiZmV0Y2hGYWlsdXJlc1JlZiIsImxhc3RGZXRjaEZhaWx1cmVSZWYiLCJ2aWV3RW1haWwiLCJmb3JjZUNoZWNrRm9yTmV3RW1haWxzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./hooks/use-email-state.ts\n")); /***/ }), /***/ "(app-pages-browser)/./hooks/use-toast.ts": /*!****************************!*\ !*** ./hooks/use-toast.ts ***! \****************************/ /***/ ((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 */ reducer: () => (/* binding */ reducer),\n/* harmony export */ toast: () => (/* binding */ toast),\n/* harmony export */ useToast: () => (/* binding */ useToast)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ reducer,useToast,toast auto */ // Inspired by react-hot-toast library\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\"\n};\nlet count = 0;\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\nconst toastTimeouts = new Map();\nconst addToRemoveQueue = (toastId)=>{\n if (toastTimeouts.has(toastId)) {\n return;\n }\n const timeout = setTimeout(()=>{\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId\n });\n }, TOAST_REMOVE_DELAY);\n toastTimeouts.set(toastId, timeout);\n};\nconst reducer = (state, action)=>{\n switch(action.type){\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [\n action.toast,\n ...state.toasts\n ].slice(0, TOAST_LIMIT)\n };\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t)=>t.id === action.toast.id ? {\n ...t,\n ...action.toast\n } : t)\n };\n case \"DISMISS_TOAST\":\n {\n const { toastId } = action;\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast)=>{\n addToRemoveQueue(toast.id);\n });\n }\n return {\n ...state,\n toasts: state.toasts.map((t)=>t.id === toastId || toastId === undefined ? {\n ...t,\n open: false\n } : t)\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: []\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t)=>t.id !== action.toastId)\n };\n }\n};\nconst listeners = [];\nlet memoryState = {\n toasts: []\n};\nfunction dispatch(action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener)=>{\n listener(memoryState);\n });\n}\nfunction toast(param) {\n let { ...props } = param;\n const id = genId();\n const update = (props)=>dispatch({\n type: \"UPDATE_TOAST\",\n toast: {\n ...props,\n id\n }\n });\n const dismiss = ()=>dispatch({\n type: \"DISMISS_TOAST\",\n toastId: id\n });\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open)=>{\n if (!open) dismiss();\n }\n }\n });\n return {\n id: id,\n dismiss,\n update\n };\n}\nfunction useToast() {\n const [state, setState] = react__WEBPACK_IMPORTED_MODULE_0__.useState(memoryState);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"useToast.useEffect\": ()=>{\n listeners.push(setState);\n return ({\n \"useToast.useEffect\": ()=>{\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n }\n })[\"useToast.useEffect\"];\n }\n }[\"useToast.useEffect\"], [\n state\n ]);\n return {\n ...state,\n toast,\n dismiss: (toastId)=>dispatch({\n type: \"DISMISS_TOAST\",\n toastId\n })\n };\n}\n\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Z0JBQUVSO1lBQUc7UUFDeEI7SUFDRixNQUFNVSxVQUFVLElBQU1yQixTQUFTO1lBQUVDLE1BQU07WUFBaUJOLFNBQVNnQjtRQUFHO0lBRXBFWCxTQUFTO1FBQ1BDLE1BQU07UUFDTk0sT0FBTztZQUNMLEdBQUdZLEtBQUs7WUFDUlI7WUFDQUcsTUFBTTtZQUNOUSxjQUFjLENBQUNSO2dCQUNiLElBQUksQ0FBQ0EsTUFBTU87WUFDYjtRQUNGO0lBQ0Y7SUFFQSxPQUFPO1FBQ0xWLElBQUlBO1FBQ0pVO1FBQ0FEO0lBQ0Y7QUFDRjtBQUVBLFNBQVNHO0lBQ1AsTUFBTSxDQUFDbkIsT0FBT29CLFNBQVMsR0FBRzdDLDJDQUFjLENBQVFzQztJQUVoRHRDLDRDQUFlOzhCQUFDO1lBQ2RxQyxVQUFVVyxJQUFJLENBQUNIO1lBQ2Y7c0NBQU87b0JBQ0wsTUFBTUksUUFBUVosVUFBVWEsT0FBTyxDQUFDTDtvQkFDaEMsSUFBSUksUUFBUSxDQUFDLEdBQUc7d0JBQ2RaLFVBQVVjLE1BQU0sQ0FBQ0YsT0FBTztvQkFDMUI7Z0JBQ0Y7O1FBQ0Y7NkJBQUc7UUFBQ3hCO0tBQU07SUFFVixPQUFPO1FBQ0wsR0FBR0EsS0FBSztRQUNSRztRQUNBYyxTQUFTLENBQUMxQixVQUFxQkssU0FBUztnQkFBRUMsTUFBTTtnQkFBaUJOO1lBQVE7SUFDM0U7QUFDRjtBQUUwQiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ob29rcy91c2UtdG9hc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuLy8gSW5zcGlyZWQgYnkgcmVhY3QtaG90LXRvYXN0IGxpYnJhcnlcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB0eXBlIHtcbiAgVG9hc3RBY3Rpb25FbGVtZW50LFxuICBUb2FzdFByb3BzLFxufSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL3RvYXN0XCJcblxuY29uc3QgVE9BU1RfTElNSVQgPSAxXG5jb25zdCBUT0FTVF9SRU1PVkVfREVMQVkgPSAxMDAwMDAwXG5cbnR5cGUgVG9hc3RlclRvYXN0ID0gVG9hc3RQcm9wcyAmIHtcbiAgaWQ6IHN0cmluZ1xuICB0aXRsZT86IFJlYWN0LlJlYWN0Tm9kZVxuICBkZXNjcmlwdGlvbj86IFJlYWN0LlJlYWN0Tm9kZVxuICBhY3Rpb24/OiBUb2FzdEFjdGlvbkVsZW1lbnRcbn1cblxuY29uc3QgYWN0aW9uVHlwZXMgPSB7XG4gIEFERF9UT0FTVDogXCJBRERfVE9BU1RcIixcbiAgVVBEQVRFX1RPQVNUOiBcIlVQREFURV9UT0FTVFwiLFxuICBESVNNSVNTX1RPQVNUOiBcIkRJU01JU1NfVE9BU1RcIixcbiAgUkVNT1ZFX1RPQVNUOiBcIlJFTU9WRV9UT0FTVFwiLFxufSBhcyBjb25zdFxuXG5sZXQgY291bnQgPSAwXG5cbmZ1bmN0aW9uIGdlbklkKCkge1xuICBjb3VudCA9IChjb3VudCArIDEpICUgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJcbiAgcmV0dXJuIGNvdW50LnRvU3RyaW5nKClcbn1cblxudHlwZSBBY3Rpb25UeXBlID0gdHlwZW9mIGFjdGlvblR5cGVzXG5cbnR5cGUgQWN0aW9uID1cbiAgfCB7XG4gICAgICB0eXBlOiBBY3Rpb25UeXBlW1wiQUREX1RPQVNUXCJdXG4gICAgICB0b2FzdDogVG9hc3RlclRvYXN0XG4gICAgfVxuICB8IHtcbiAgICAgIHR5cGU6IEFjdGlvblR5cGVbXCJVUERBVEVfVE9BU1RcIl1cbiAgICAgIHRvYXN0OiBQYXJ0aWFsPFRvYXN0ZXJUb2FzdD5cbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogQWN0aW9uVHlwZVtcIkRJU01JU1NfVE9BU1RcIl1cbiAgICAgIHRvYXN0SWQ/OiBUb2FzdGVyVG9hc3RbXCJpZFwiXVxuICAgIH1cbiAgfCB7XG4gICAgICB0eXBlOiBBY3Rpb25UeXBlW1wiUkVNT1ZFX1RPQVNUXCJdXG4gICAgICB0b2FzdElkPzogVG9hc3RlclRvYXN0W1wiaWRcIl1cbiAgICB9XG5cbmludGVyZmFjZSBTdGF0ZSB7XG4gIHRvYXN0czogVG9hc3RlclRvYXN0W11cbn1cblxuY29uc3QgdG9hc3RUaW1lb3V0cyA9IG5ldyBNYXA8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4oKVxuXG5jb25zdCBhZGRUb1JlbW92ZVF1ZXVlID0gKHRvYXN0SWQ6IHN0cmluZykgPT4ge1xuICBpZiAodG9hc3RUaW1lb3V0cy5oYXModG9hc3RJZCkpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICB0b2FzdFRpbWVvdXRzLmRlbGV0ZSh0b2FzdElkKVxuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IFwiUkVNT1ZFX1RPQVNUXCIsXG4gICAgICB0b2FzdElkOiB0b2FzdElkLFxuICAgIH0pXG4gIH0sIFRPQVNUX1JFTU9WRV9ERUxBWSlcblxuICB0b2FzdFRpbWVvdXRzLnNldCh0b2FzdElkLCB0aW1lb3V0KVxufVxuXG5leHBvcnQgY29uc3QgcmVkdWNlciA9IChzdGF0ZTogU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogU3RhdGUgPT4ge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSBcIkFERF9UT0FTVFwiOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHRvYXN0czogW2FjdGlvbi50b2FzdCwgLi4uc3RhdGUudG9hc3RzXS5zbGljZSgwLCBUT0FTVF9MSU1JVCksXG4gICAgICB9XG5cbiAgICBjYXNlIFwiVVBEQVRFX1RPQVNUXCI6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgdG9hc3RzOiBzdGF0ZS50b2FzdHMubWFwKCh0KSA9PlxuICAgICAgICAgIHQuaWQgPT09IGFjdGlvbi50b2FzdC5pZCA/IHsgLi4udCwgLi4uYWN0aW9uLnRvYXN0IH0gOiB0XG4gICAgICAgICksXG4gICAgICB9XG5cbiAgICBjYXNlIFwiRElTTUlTU19UT0FTVFwiOiB7XG4gICAgICBjb25zdCB7IHRvYXN0SWQgfSA9IGFjdGlvblxuXG4gICAgICAvLyAhIFNpZGUgZWZmZWN0cyAhIC0gVGhpcyBjb3VsZCBiZSBleHRyYWN0ZWQgaW50byBhIGRpc21pc3NUb2FzdCgpIGFjdGlvbixcbiAgICAgIC8vIGJ1dCBJJ2xsIGtlZXAgaXQgaGVyZSBmb3Igc2ltcGxpY2l0eVxuICAgICAgaWYgKHRvYXN0SWQpIHtcbiAgICAgICAgYWRkVG9SZW1vdmVRdWV1ZSh0b2FzdElkKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhdGUudG9hc3RzLmZvckVhY2goKHRvYXN0KSA9PiB7XG4gICAgICAgICAgYWRkVG9SZW1vdmVRdWV1ZSh0b2FzdC5pZClcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHRvYXN0czogc3RhdGUudG9hc3RzLm1hcCgodCkgPT5cbiAgICAgICAgICB0LmlkID09PSB0b2FzdElkIHx8IHRvYXN0SWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgLi4udCxcbiAgICAgICAgICAgICAgICBvcGVuOiBmYWxzZSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB0XG4gICAgICAgICksXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgXCJSRU1PVkVfVE9BU1RcIjpcbiAgICAgIGlmIChhY3Rpb24udG9hc3RJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgdG9hc3RzOiBbXSxcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHRvYXN0czogc3RhdGUudG9hc3RzLmZpbHRlcigodCkgPT4gdC5pZCAhPT0gYWN0aW9uLnRvYXN0SWQpLFxuICAgICAgfVxuICB9XG59XG5cbmNvbnN0IGxpc3RlbmVyczogQXJyYXk8KHN0YXRlOiBTdGF0ZSkgPT4gdm9pZD4gPSBbXVxuXG5sZXQgbWVtb3J5U3RhdGU6IFN0YXRlID0geyB0b2FzdHM6IFtdIH1cblxuZnVuY3Rpb24gZGlzcGF0Y2goYWN0aW9uOiBBY3Rpb24pIHtcbiAgbWVtb3J5U3RhdGUgPSByZWR1Y2VyKG1lbW9yeVN0YXRlLCBhY3Rpb24pXG4gIGxpc3RlbmVycy5mb3JFYWNoKChsaXN0ZW5lcikgPT4ge1xuICAgIGxpc3RlbmVyKG1lbW9yeVN0YXRlKVxuICB9KVxufVxuXG50eXBlIFRvYXN0ID0gT21pdDxUb2FzdGVyVG9hc3QsIFwiaWRcIj5cblxuZnVuY3Rpb24gdG9hc3QoeyAuLi5wcm9wcyB9OiBUb2FzdCkge1xuICBjb25zdCBpZCA9IGdlbklkKClcblxuICBjb25zdCB1cGRhdGUgPSAocHJvcHM6IFRvYXN0ZXJUb2FzdCkgPT5cbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBcIlVQREFURV9UT0FTVFwiLFxuICAgICAgdG9hc3Q6IHsgLi4ucHJvcHMsIGlkIH0sXG4gICAgfSlcbiAgY29uc3QgZGlzbWlzcyA9ICgpID0+IGRpc3BhdGNoKHsgdHlwZTogXCJESVNNSVNTX1RPQVNUXCIsIHRvYXN0SWQ6IGlkIH0pXG5cbiAgZGlzcGF0Y2goe1xuICAgIHR5cGU6IFwiQUREX1RPQVNUXCIsXG4gICAgdG9hc3Q6IHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgaWQsXG4gICAgICBvcGVuOiB0cnVlLFxuICAgICAgb25PcGVuQ2hhbmdlOiAob3BlbikgPT4ge1xuICAgICAgICBpZiAoIW9wZW4pIGRpc21pc3MoKVxuICAgICAgfSxcbiAgICB9LFxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgaWQ6IGlkLFxuICAgIGRpc21pc3MsXG4gICAgdXBkYXRlLFxuICB9XG59XG5cbmZ1bmN0aW9uIHVzZVRvYXN0KCkge1xuICBjb25zdCBbc3RhdGUsIHNldFN0YXRlXSA9IFJlYWN0LnVzZVN0YXRlPFN0YXRlPihtZW1vcnlTdGF0ZSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxpc3RlbmVycy5wdXNoKHNldFN0YXRlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IGxpc3RlbmVycy5pbmRleE9mKHNldFN0YXRlKVxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgbGlzdGVuZXJzLnNwbGljZShpbmRleCwgMSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtzdGF0ZV0pXG5cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICB0b2FzdCxcbiAgICBkaXNtaXNzOiAodG9hc3RJZD86IHN0cmluZykgPT4gZGlzcGF0Y2goeyB0eXBlOiBcIkRJU01JU1NfVE9BU1RcIiwgdG9hc3RJZCB9KSxcbiAgfVxufVxuXG5leHBvcnQgeyB1c2VUb2FzdCwgdG9hc3QgfVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiVE9BU1RfTElNSVQiLCJUT0FTVF9SRU1PVkVfREVMQVkiLCJhY3Rpb25UeXBlcyIsIkFERF9UT0FTVCIsIlVQREFURV9UT0FTVCIsIkRJU01JU1NfVE9BU1QiLCJSRU1PVkVfVE9BU1QiLCJjb3VudCIsImdlbklkIiwiTnVtYmVyIiwiTUFYX1NBRkVfSU5URUdFUiIsInRvU3RyaW5nIiwidG9hc3RUaW1lb3V0cyIsIk1hcCIsImFkZFRvUmVtb3ZlUXVldWUiLCJ0b2FzdElkIiwiaGFzIiwidGltZW91dCIsInNldFRpbWVvdXQiLCJkZWxldGUiLCJkaXNwYXRjaCIsInR5cGUiLCJzZXQiLCJyZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJ0b2FzdHMiLCJ0b2FzdCIsInNsaWNlIiwibWFwIiwidCIsImlkIiwiZm9yRWFjaCIsInVuZGVmaW5lZCIsIm9wZW4iLCJmaWx0ZXIiLCJsaXN0ZW5lcnMiLCJtZW1vcnlTdGF0ZSIsImxpc3RlbmVyIiwicHJvcHMiLCJ1cGRhdGUiLCJkaXNtaXNzIiwib25PcGVuQ2hhbmdlIiwidXNlVG9hc3QiLCJzZXRTdGF0ZSIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwicHVzaCIsImluZGV4IiwiaW5kZXhPZiIsInNwbGljZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./hooks/use-toast.ts\n")); /***/ }), /***/ "(app-pages-browser)/./lib/reducers/emailReducer.ts": /*!**************************************!*\ !*** ./lib/reducers/emailReducer.ts ***! \**************************************/ /***/ ((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 */ emailReducer: () => (/* binding */ emailReducer),\n/* harmony export */ initialState: () => (/* binding */ initialState),\n/* harmony export */ normalizeFolderAndAccount: () => (/* binding */ normalizeFolderAndAccount)\n/* harmony export */ });\n// Initial state\nconst initialState = {\n accounts: [],\n selectedAccount: null,\n selectedFolders: {},\n currentFolder: 'INBOX',\n emails: [],\n selectedEmail: null,\n selectedEmailIds: [],\n isLoading: false,\n isLoadingUnreadCounts: false,\n error: null,\n page: 1,\n perPage: 20,\n totalPages: 0,\n totalEmails: 0,\n mailboxes: [],\n unreadCountMap: {},\n showFolders: false\n};\n// Helper functions for consistency\nconst normalizeFolderAndAccount = (folder, accountId)=>{\n let normalizedFolder;\n let effectiveAccountId = accountId || 'default';\n // First, handle the folder format\n if (folder.includes(':')) {\n // Extract parts if folder already has a prefix\n const parts = folder.split(':');\n const folderAccountId = parts[0];\n normalizedFolder = parts[1];\n // If explicit accountId is provided, it ALWAYS takes precedence\n if (accountId) {\n console.log(\"Using provided accountId (\".concat(accountId, \") over folder prefix (\").concat(folderAccountId, \")\"));\n effectiveAccountId = accountId;\n } else {\n effectiveAccountId = folderAccountId;\n }\n } else {\n // No folder prefix, use the folder name as is\n normalizedFolder = folder;\n }\n return {\n normalizedFolder,\n effectiveAccountId,\n prefixedFolder: \"\".concat(effectiveAccountId, \":\").concat(normalizedFolder)\n };\n};\n// Reducer function\nfunction emailReducer(state, action) {\n console.log(\"[EMAIL_REDUCER] Action: \".concat(action.type), action);\n switch(action.type){\n case 'SET_ACCOUNTS':\n return {\n ...state,\n accounts: action.payload\n };\n case 'SELECT_ACCOUNT':\n {\n // This is a critical action that needs special handling\n const account = action.payload;\n const inboxFolder = \"\".concat(account.id, \":INBOX\");\n console.log(\"[EMAIL_REDUCER] Selecting account: \".concat(account.email, \" (\").concat(account.id, \")\"));\n // Return a completely new state that's atomically consistent\n return {\n ...state,\n selectedAccount: account,\n currentFolder: inboxFolder,\n selectedFolders: {\n ...state.selectedFolders,\n [account.id]: inboxFolder\n },\n // Clear email selections as part of the atomic account switch\n selectedEmail: null,\n selectedEmailIds: [],\n emails: [],\n isLoading: true,\n showFolders: true,\n page: 1\n };\n }\n case 'CHANGE_FOLDER':\n {\n const { folder, accountId } = action.payload;\n // Use our helper to ensure consistent folder/account handling\n const { normalizedFolder, effectiveAccountId, prefixedFolder } = normalizeFolderAndAccount(folder, accountId);\n console.log(\"[EMAIL_REDUCER] Changing folder to: \".concat(prefixedFolder, \" (account: \").concat(effectiveAccountId, \")\"));\n // Return a new state with consistent folder and account info\n return {\n ...state,\n currentFolder: prefixedFolder,\n selectedFolders: {\n ...state.selectedFolders,\n [effectiveAccountId]: prefixedFolder\n },\n // Clear email-specific state when changing folders\n selectedEmail: null,\n selectedEmailIds: [],\n emails: [],\n isLoading: true,\n page: 1\n };\n }\n case 'SET_EMAILS':\n // Sort emails by date (newest first) to ensure consistent sorting\n // First make a copy to avoid mutating the input\n const unsortedEmails = [\n ...action.payload\n ];\n // For debugging - log a few emails before sorting\n if (unsortedEmails.length > 0) {\n console.log(\"[EMAIL_REDUCER] Sorting \".concat(unsortedEmails.length, \" emails\"));\n // Log a sample of emails before sorting\n console.log('[EMAIL_REDUCER] Sample emails before sorting:', unsortedEmails.slice(0, 3).map((e)=>{\n var _e_subject;\n return {\n id: e.id.substring(0, 8),\n subject: (_e_subject = e.subject) === null || _e_subject === void 0 ? void 0 : _e_subject.substring(0, 20),\n date: e.date,\n timestamp: new Date(e.date).getTime()\n };\n }));\n }\n // CRITICAL FIX: Enhanced sorting function that ensures proper date handling\n const sortedEmails = unsortedEmails.sort((a, b)=>{\n // Convert all dates to timestamps for comparison\n let dateA, dateB;\n try {\n dateA = a.date instanceof Date ? a.date.getTime() : new Date(a.date).getTime();\n } catch (e) {\n dateA = 0; // Default to oldest if invalid\n }\n try {\n dateB = b.date instanceof Date ? b.date.getTime() : new Date(b.date).getTime();\n } catch (e) {\n dateB = 0; // Default to oldest if invalid\n }\n // Handle invalid dates\n if (isNaN(dateA) && isNaN(dateB)) return 0;\n if (isNaN(dateA)) return 1; // Put invalid dates at the end\n if (isNaN(dateB)) return -1;\n // Sort newest first\n return dateB - dateA;\n });\n // For debugging - log a few emails after sorting\n if (sortedEmails.length > 0) {\n console.log('[EMAIL_REDUCER] Sample emails after sorting:', sortedEmails.slice(0, 3).map((e)=>{\n var _e_subject;\n return {\n id: e.id.substring(0, 8),\n subject: (_e_subject = e.subject) === null || _e_subject === void 0 ? void 0 : _e_subject.substring(0, 20),\n date: e.date,\n timestamp: new Date(e.date).getTime()\n };\n }));\n }\n return {\n ...state,\n emails: sortedEmails,\n isLoading: false\n };\n case 'APPEND_EMAILS':\n {\n // Create a set of existing email IDs to avoid duplicates\n const existingIds = new Set(state.emails.map((email)=>email.id));\n console.log(\"[DEBUG-REDUCER] APPEND_EMAILS - Got \".concat(action.payload.length, \" emails to append, current list has \").concat(state.emails.length));\n // Filter out any duplicates before appending\n const newEmails = action.payload.filter((email)=>!existingIds.has(email.id));\n // Log appending for debugging\n console.log(\"[DEBUG-REDUCER] Filtered to \".concat(newEmails.length, \" new non-duplicate emails\"));\n // CRITICAL FIX: If no new emails were found, set isLoading to false but don't change the email list\n if (newEmails.length === 0) {\n console.log('[DEBUG-REDUCER] No new emails to append, returning current state with isLoading=false');\n return {\n ...state,\n isLoading: false\n };\n }\n // Debug the dates to check sorting\n if (newEmails.length > 0) {\n console.log('[DEBUG-REDUCER] Sample new emails before combining:', newEmails.slice(0, 3).map((e)=>{\n var _e_subject;\n return {\n id: e.id.substring(0, 8),\n subject: (_e_subject = e.subject) === null || _e_subject === void 0 ? void 0 : _e_subject.substring(0, 20),\n date: e.date,\n timestamp: new Date(e.date).getTime()\n };\n }));\n }\n // FIXED: Properly combine existing and new emails\n // We need to ensure we keep ALL emails when appending\n const combinedEmails = [\n ...state.emails,\n ...newEmails\n ];\n // Sort combined emails by date (newest first)\n const sortedEmails = combinedEmails.sort((a, b)=>{\n // Convert all dates to timestamps for comparison\n let dateA, dateB;\n try {\n dateA = a.date instanceof Date ? a.date.getTime() : new Date(a.date).getTime();\n } catch (e) {\n dateA = 0; // Default to oldest if invalid\n }\n try {\n dateB = b.date instanceof Date ? b.date.getTime() : new Date(b.date).getTime();\n } catch (e) {\n dateB = 0; // Default to oldest if invalid\n }\n // Handle invalid dates\n if (isNaN(dateA) && isNaN(dateB)) return 0;\n if (isNaN(dateA)) return 1; // Put invalid dates at the end\n if (isNaN(dateB)) return -1;\n // Sort newest first\n return dateB - dateA;\n });\n console.log(\"[DEBUG-REDUCER] Final combined list has \".concat(sortedEmails.length, \" emails (\").concat(state.emails.length, \" old + \").concat(newEmails.length, \" new)\"));\n return {\n ...state,\n emails: sortedEmails,\n isLoading: false\n };\n }\n case 'SELECT_EMAIL':\n return {\n ...state,\n selectedEmail: action.payload.email\n };\n case 'TOGGLE_EMAIL_SELECTION':\n {\n const emailId = action.payload;\n const isSelected = state.selectedEmailIds.includes(emailId);\n return {\n ...state,\n selectedEmailIds: isSelected ? state.selectedEmailIds.filter((id)=>id !== emailId) : [\n ...state.selectedEmailIds,\n emailId\n ]\n };\n }\n case 'TOGGLE_SELECT_ALL':\n {\n // If all emails are already selected, clear the selection\n const allEmailIds = state.emails.map((email)=>email.id);\n const allSelected = allEmailIds.every((id)=>state.selectedEmailIds.includes(id));\n return {\n ...state,\n selectedEmailIds: allSelected ? [] : allEmailIds\n };\n }\n case 'CLEAR_SELECTED_EMAILS':\n return {\n ...state,\n selectedEmailIds: [],\n selectedEmail: null\n };\n case 'SET_LOADING':\n return {\n ...state,\n isLoading: action.payload\n };\n case 'SET_LOADING_UNREAD_COUNTS':\n return {\n ...state,\n isLoadingUnreadCounts: action.payload\n };\n case 'SET_ERROR':\n return {\n ...state,\n error: action.payload,\n isLoading: false\n };\n case 'SET_PAGE':\n return {\n ...state,\n page: action.payload\n };\n case 'INCREMENT_PAGE':\n return {\n ...state,\n page: state.page + 1\n };\n case 'SET_TOTAL_PAGES':\n return {\n ...state,\n totalPages: action.payload\n };\n case 'SET_TOTAL_EMAILS':\n return {\n ...state,\n totalEmails: action.payload\n };\n case 'SET_MAILBOXES':\n return {\n ...state,\n mailboxes: action.payload\n };\n case 'UPDATE_UNREAD_COUNT':\n {\n const { accountId, folder, count } = action.payload;\n return {\n ...state,\n unreadCountMap: {\n ...state.unreadCountMap,\n [accountId]: {\n ...state.unreadCountMap[accountId] || {},\n [folder]: count\n }\n }\n };\n }\n case 'SET_UNREAD_COUNTS':\n return {\n ...state,\n unreadCountMap: action.payload\n };\n case 'TOGGLE_SHOW_FOLDERS':\n return {\n ...state,\n showFolders: action.payload\n };\n case 'MARK_EMAIL_AS_READ':\n {\n const { emailId, isRead, accountId } = action.payload;\n // Update emails list\n const updatedEmails = state.emails.map((email)=>email.id === emailId && (!accountId || email.accountId === accountId) ? {\n ...email,\n flags: {\n ...email.flags,\n seen: isRead\n }\n } : email);\n // Update selected email if it matches\n const updatedSelectedEmail = state.selectedEmail && state.selectedEmail.id === emailId && (!accountId || state.selectedEmail.accountId === accountId) ? {\n ...state.selectedEmail,\n flags: {\n ...state.selectedEmail.flags,\n seen: isRead\n }\n } : state.selectedEmail;\n return {\n ...state,\n emails: updatedEmails,\n selectedEmail: updatedSelectedEmail\n };\n }\n default:\n return state;\n }\n}\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi9yZWR1Y2Vycy9lbWFpbFJlZHVjZXIudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBd0RBLGdCQUFnQjtBQUNULE1BQU1BLGVBQTJCO0lBQ3RDQyxVQUFVLEVBQUU7SUFDWkMsaUJBQWlCO0lBQ2pCQyxpQkFBaUIsQ0FBQztJQUNsQkMsZUFBZTtJQUNmQyxRQUFRLEVBQUU7SUFDVkMsZUFBZTtJQUNmQyxrQkFBa0IsRUFBRTtJQUNwQkMsV0FBVztJQUNYQyx1QkFBdUI7SUFDdkJDLE9BQU87SUFDUEMsTUFBTTtJQUNOQyxTQUFTO0lBQ1RDLFlBQVk7SUFDWkMsYUFBYTtJQUNiQyxXQUFXLEVBQUU7SUFDYkMsZ0JBQWdCLENBQUM7SUFDakJDLGFBQWE7QUFDZixFQUFFO0FBRUYsbUNBQW1DO0FBQzVCLE1BQU1DLDRCQUE0QixDQUFDQyxRQUFnQkM7SUFDeEQsSUFBSUM7SUFDSixJQUFJQyxxQkFBNkJGLGFBQWE7SUFFOUMsa0NBQWtDO0lBQ2xDLElBQUlELE9BQU9JLFFBQVEsQ0FBQyxNQUFNO1FBQ3hCLCtDQUErQztRQUMvQyxNQUFNQyxRQUFRTCxPQUFPTSxLQUFLLENBQUM7UUFDM0IsTUFBTUMsa0JBQWtCRixLQUFLLENBQUMsRUFBRTtRQUNoQ0gsbUJBQW1CRyxLQUFLLENBQUMsRUFBRTtRQUUzQixnRUFBZ0U7UUFDaEUsSUFBSUosV0FBVztZQUNiTyxRQUFRQyxHQUFHLENBQUMsNkJBQStERixPQUFsQ04sV0FBVSwwQkFBd0MsT0FBaEJNLGlCQUFnQjtZQUMzRkoscUJBQXFCRjtRQUN2QixPQUFPO1lBQ0xFLHFCQUFxQkk7UUFDdkI7SUFDRixPQUFPO1FBQ0wsOENBQThDO1FBQzlDTCxtQkFBbUJGO0lBQ3JCO0lBRUEsT0FBTztRQUNMRTtRQUNBQztRQUNBTyxnQkFBZ0IsR0FBeUJSLE9BQXRCQyxvQkFBbUIsS0FBb0IsT0FBakJEO0lBQzNDO0FBQ0YsRUFBRTtBQUVGLG1CQUFtQjtBQUNaLFNBQVNTLGFBQWFDLEtB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ekIsYUFBYSxJQUM5Q3lCLE1BQU16QixhQUFhLENBQUMrQixFQUFFLEtBQUswQixXQUMxQixFQUFDM0MsYUFBYVcsTUFBTXpCLGFBQWEsQ0FBQ2MsU0FBUyxLQUFLQSxTQUFRLElBQ3JEO29CQUFFLEdBQUdXLE1BQU16QixhQUFhO29CQUFFaUUsT0FBTzt3QkFBRSxHQUFHeEMsTUFBTXpCLGFBQWEsQ0FBQ2lFLEtBQUs7d0JBQUVDLE1BQU1IO29CQUFPO2dCQUFFLElBQ2hGdEMsTUFBTXpCLGFBQWE7Z0JBRXpCLE9BQU87b0JBQ0wsR0FBR3lCLEtBQUs7b0JBQ1IxQixRQUFRaUU7b0JBQ1JoRSxlQUFlbUU7Z0JBQ2pCO1lBQ0Y7UUFFQTtZQUNFLE9BQU8xQztJQUNYO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbGliL3JlZHVjZXJzL2VtYWlsUmVkdWNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbWFpbCB9IGZyb20gJ0AvaG9va3MvdXNlLWNvdXJyaWVyJztcblxuLy8gRGVmaW5lIGFsbCBwb3NzaWJsZSBzdGF0ZSB0eXBlc1xuZXhwb3J0IGludGVyZmFjZSBBY2NvdW50IHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBjb2xvcjogc3RyaW5nO1xuICBmb2xkZXJzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbWFpbFN0YXRlIHtcbiAgYWNjb3VudHM6IEFjY291bnRbXTtcbiAgc2VsZWN0ZWRBY2NvdW50OiBBY2NvdW50IHwgbnVsbDtcbiAgc2VsZWN0ZWRGb2xkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBjdXJyZW50Rm9sZGVyOiBzdHJpbmc7XG4gIGVtYWlsczogRW1haWxbXTtcbiAgc2VsZWN0ZWRFbWFpbDogRW1haWwgfCBudWxsO1xuICBzZWxlY3RlZEVtYWlsSWRzOiBzdHJpbmdbXTtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBpc0xvYWRpbmdVbnJlYWRDb3VudHM6IGJvb2xlYW47XG4gIGVycm9yOiBzdHJpbmcgfCBudWxsO1xuICBwYWdlOiBudW1iZXI7XG4gIHBlclBhZ2U6IG51bWJlcjtcbiAgdG90YWxQYWdlczogbnVtYmVyO1xuICB0b3RhbEVtYWlsczogbnVtYmVyO1xuICBtYWlsYm94ZXM6IHN0cmluZ1tdO1xuICB1bnJlYWRDb3VudE1hcDogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgbnVtYmVyPj47XG4gIHNob3dGb2xkZXJzOiBib29sZWFuO1xuICBjdXJyZW50QWNjb3VudElkPzogc3RyaW5nO1xufVxuXG4vLyBEZWZpbmUgYWxsIHBvc3NpYmxlIGFjdGlvbiB0eXBlc1xuZXhwb3J0IHR5cGUgRW1haWxBY3Rpb24gPSBcbiAgfCB7IHR5cGU6ICdTRVRfQUNDT1VOVFMnLCBwYXlsb2FkOiBBY2NvdW50W10gfVxuICB8IHsgdHlwZTogJ1NFTEVDVF9BQ0NPVU5UJywgcGF5bG9hZDogQWNjb3VudCB9XG4gIHwgeyB0eXBlOiAnQ0hBTkdFX0ZPTERFUicsIHBheWxvYWQ6IHsgZm9sZGVyOiBzdHJpbmcsIGFjY291bnRJZDogc3RyaW5nIH0gfVxuICB8IHsgdHlwZTogJ1NFVF9FTUFJTFMnLCBwYXlsb2FkOiBFbWFpbFtdIH1cbiAgfCB7IHR5cGU6ICdBUFBFTkRfRU1BSUxTJywgcGF5bG9hZDogRW1haWxbXSB9XG4gIHwgeyB0eXBlOiAnU0VMRUNUX0VNQUlMJywgcGF5bG9hZDogeyBlbWFpbElkOiBzdHJpbmcsIGFjY291bnRJZDogc3RyaW5nLCBmb2xkZXI6IHN0cmluZywgZW1haWw6IEVtYWlsIHwgbnVsbCB9IH1cbiAgfCB7IHR5cGU6ICdUT0dHTEVfRU1BSUxfU0VMRUNUSU9OJywgcGF5bG9hZDogc3RyaW5nIH1cbiAgfCB7IHR5cGU6ICdUT0dHTEVfU0VMRUNUX0FMTCcgfVxuICB8IHsgdHlwZTogJ0NMRUFSX1NFTEVDVEVEX0VNQUlMUycgfVxuICB8IHsgdHlwZTogJ1NFVF9MT0FESU5HJywgcGF5bG9hZDogYm9vbGVhbiB9XG4gIHwgeyB0eXBlOiAnU0VUX0xPQURJTkdfVU5SRUFEX0NPVU5UUycsIHBheWxvYWQ6IGJvb2xlYW4gfVxuICB8IHsgdHlwZTogJ1NFVF9FUlJPUicsIHBheWxvYWQ6IHN0cmluZyB8IG51bGwgfVxuICB8IHsgdHlwZTogJ1NFVF9QQUdFJywgcGF5bG9hZDogbnVtYmVyIH1cbiAgfCB7IHR5cGU6ICdJTkNSRU1FTlRfUEFHRScgfVxuICB8IHsgdHlwZTogJ1NFVF9UT1RBTF9QQUdFUycsIHBheWxvYWQ6IG51bWJlciB9XG4gIHwgeyB0eXBlOiAnU0VUX1RPVEFMX0VNQUlMUycsIHBheWxvYWQ6IG51bWJlciB9XG4gIHwgeyB0eXBlOiAnU0VUX01BSUxCT1hFUycsIHBheWxvYWQ6IHN0cmluZ1tdIH1cbiAgfCB7IHR5cGU6ICdVUERBVEVfVU5SRUFEX0NPVU5UJywgcGF5bG9hZDogeyBhY2NvdW50SWQ6IHN0cmluZywgZm9sZGVyOiBzdHJpbmcsIGNvdW50OiBudW1iZXIgfSB9XG4gIHwgeyB0eXBlOiAnU0VUX1VOUkVBRF9DT1VOVFMnLCBwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PiB9XG4gIHwgeyB0eXBlOiAnVE9HR0xFX1NIT1dfRk9MREVSUycsIHBheWxvYWQ6IGJvb2xlYW4gfVxuICB8IHsgdHlwZTogJ01BUktfRU1BSUxfQVNfUkVBRCcsIHBheWxvYWQ6IHsgZW1haWxJZDogc3RyaW5nLCBpc1JlYWQ6IGJvb2xlYW4sIGFjY291bnRJZD86IHN0cmluZyB9IH07XG5cbi8vIEluaXRpYWwgc3RhdGVcbmV4cG9ydCBjb25zdCBpbml0aWFsU3RhdGU6IEVtYWlsU3RhdGUgPSB7XG4gIGFjY291bnRzOiBbXSxcbiAgc2VsZWN0ZWRBY2NvdW50OiBudWxsLFxuICBzZWxlY3RlZEZvbGRlcnM6IHt9LFxuICBjdXJyZW50Rm9sZGVyOiAnSU5CT1gnLFxuICBlbWFpbHM6IFtdLFxuICBzZWxlY3RlZEVtYWlsOiBudWxsLFxuICBzZWxlY3RlZEVtYWlsSWRzOiBbXSxcbiAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgaXNMb2FkaW5nVW5yZWFkQ291bnRzOiBmYWxzZSxcbiAgZXJyb3I6IG51bGwsXG4gIHBhZ2U6IDEsXG4gIHBlclBhZ2U6IDIwLFxuICB0b3RhbFBhZ2VzOiAwLFxuICB0b3RhbEVtYWlsczogMCxcbiAgbWFpbGJveGVzOiBbXSxcbiAgdW5yZWFkQ291bnRNYXA6IHt9LFxuICBzaG93Rm9sZGVyczogZmFsc2Vcbn07XG5cbi8vIEhlbHBlciBmdW5jdGlvbnMgZm9yIGNvbnNpc3RlbmN5XG5leHBvcnQgY29uc3Qgbm9ybWFsaXplRm9sZGVyQW5kQWNjb3VudCA9IChmb2xkZXI6IHN0cmluZywgYWNjb3VudElkPzogc3RyaW5nKSA9PiB7XG4gIGxldCBub3JtYWxpemVkRm9sZGVyOiBzdHJpbmc7XG4gIGxldCBlZmZlY3RpdmVBY2NvdW50SWQ6IHN0cmluZyA9IGFjY291bnRJZCB8fCAnZGVmYXVsdCc7XG4gIFxuICAvLyBGaXJzdCwgaGFuZGxlIHRoZSBmb2xkZXIgZm9ybWF0XG4gIGlmIChmb2xkZXIuaW5jbHVkZXMoJzonKSkge1xuICAgIC8vIEV4dHJhY3QgcGFydHMgaWYgZm9sZGVyIGFscmVhZHkgaGFzIGEgcHJlZml4XG4gICAgY29uc3QgcGFydHMgPSBmb2xkZXIuc3BsaXQoJzonKTtcbiAgICBjb25zdCBmb2xkZXJBY2NvdW50SWQgPSBwYXJ0c1swXTtcbiAgICBub3JtYWxpemVkRm9sZGVyID0gcGFydHNbMV07XG4gICAgXG4gICAgLy8gSWYgZXhwbGljaXQgYWNjb3VudElkIGlzIHByb3ZpZGVkLCBpdCBBTFdBWVMgdGFrZXMgcHJlY2VkZW5jZVxuICAgIGlmIChhY2NvdW50SWQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBVc2luZyBwcm92aWRlZCBhY2NvdW50SWQgKCR7YWNjb3VudElkfSkgb3ZlciBmb2xkZXIgcHJlZml4ICgke2ZvbGRlckFjY291bnRJZH0pYCk7XG4gICAgICBlZmZlY3RpdmVBY2NvdW50SWQgPSBhY2NvdW50SWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVmZmVjdGl2ZUFjY291bnRJZCA9IGZvbGRlckFjY291bnRJZDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gTm8gZm9sZGVyIHByZWZpeCwgdXNlIHRoZSBmb2xkZXIgbmFtZSBhcyBpc1xuICAgIG5vcm1hbGl6ZWRGb2xkZXIgPSBmb2xkZXI7XG4gIH1cbiAgXG4gIHJldHVybiB7XG4gICAgbm9ybWFsaXplZEZvbGRlcixcbiAgICBlZmZlY3RpdmVBY2NvdW50SWQsXG4gICAgcHJlZml4ZWRGb2xkZXI6IGAke2VmZmVjdGl2ZUFjY291bnRJZH06JHtub3JtYWxpemVkRm9sZGVyfWBcbiAgfTtcbn07XG5cbi8vIFJlZHVjZXIgZnVuY3Rpb25cbmV4cG9ydCBmdW5jdGlvbiBlbWFpbFJlZHVjZXIoc3RhdGU6IEVtYWlsU3RhdGUsIGFjdGlvbjogRW1haWxBY3Rpb24pOiBFbWFpbFN0YXRlIHtcbiAgY29uc29sZS5sb2coYFtFTUFJTF9SRURVQ0VSXSBBY3Rpb246ICR7YWN0aW9uLnR5cGV9YCwgYWN0aW9uKTtcbiAgXG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICBjYXNlICdTRVRfQUNDT1VOVFMnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGFjY291bnRzOiBhY3Rpb24ucGF5bG9hZFxuICAgICAgfTtcbiAgICBcbiAgICBjYXNlICdTRUxFQ1RfQUNDT1VOVCc6IHtcbiAgICAgIC8vIFRoaXMgaXMgYSBjcml0aWNhbCBhY3Rpb24gdGhhdCBuZWVkcyBzcGVjaWFsIGhhbmRsaW5nXG4gICAgICBjb25zdCBhY2NvdW50ID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICBjb25zdCBpbmJveEZvbGRlciA9IGAke2FjY291bnQuaWR9OklOQk9YYDtcbiAgICAgIFxuICAgICAgY29uc29sZS5sb2coYFtFTUFJTF9SRURVQ0VSXSBTZWxlY3RpbmcgYWNjb3VudDogJHthY2NvdW50LmVtYWlsfSAoJHthY2NvdW50LmlkfSlgKTtcbiAgICAgIFxuICAgICAgLy8gUmV0dXJuIGEgY29tcGxldGVseSBuZXcgc3RhdGUgdGhhdCdzIGF0b21pY2FsbHkgY29uc2lzdGVudFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNlbGVjdGVkQWNjb3VudDogYWNjb3VudCxcbiAgICAgICAgY3VycmVudEZvbGRlcjogaW5ib3hGb2xkZXIsXG4gICAgICAgIHNlbGVjdGVkRm9sZGVyczoge1xuICAgICAgICAgIC4uLnN0YXRlLnNlbGVjdGVkRm9sZGVycyxcbiAgICAgICAgICBbYWNjb3VudC5pZF06IGluYm94Rm9sZGVyXG4gICAgICAgIH0sXG4gICAgICAgIC8vIENsZWFyIGVtYWlsIHNlbGVjdGlvbnMgYXMgcGFydCBvZiB0aGUgYXRvbWljIGFjY291bnQgc3dpdGNoXG4gICAgICAgIHNlbGVjdGVkRW1haWw6IG51bGwsXG4gICAgICAgIHNlbGVjdGVkRW1haWxJZHM6IFtdLFxuICAgICAgICBlbWFpbHM6IFtdLFxuICAgICAgICBpc0xvYWRpbmc6IHRydWUsXG4gICAgICAgIHNob3dGb2xkZXJzOiB0cnVlLFxuICAgICAgICBwYWdlOiAxXG4gICAgICB9O1xuICAgIH1cbiAgICBcbiAgICBjYXNlICdDSEFOR0VfRk9MREVSJzoge1xuICAgICAgY29uc3QgeyBmb2xkZXIsIGFjY291bnRJZCB9ID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICBcbiAgICAgIC8vIFVzZSBvdXIgaGVscGVyIHRvIGVuc3VyZSBjb25zaXN0ZW50IGZvbGRlci9hY2NvdW50IGhhbmRsaW5nXG4gICAgICBjb25zdCB7IG5vcm1hbGl6ZWRGb2xkZXIsIGVmZmVjdGl2ZUFjY291bnRJZCwgcHJlZml4ZWRGb2xkZXIgfSA9IFxuICAgICAgICBub3JtYWxpemVGb2xkZXJBbmRBY2NvdW50KGZvbGRlciwgYWNjb3VudElkKTtcbiAgICAgIFxuICAgICAgY29uc29sZS5sb2coYFtFTUFJTF9SRURVQ0VSXSBDaGFuZ2luZyBmb2xkZXIgdG86ICR7cHJlZml4ZWRGb2xkZXJ9IChhY2NvdW50OiAke2VmZmVjdGl2ZUFjY291bnRJZH0pYCk7XG4gICAgICBcbiAgICAgIC8vIFJldHVybiBhIG5ldyBzdGF0ZSB3aXRoIGNvbnNpc3RlbnQgZm9sZGVyIGFuZCBhY2NvdW50IGluZm9cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjdXJyZW50Rm9sZGVyOiBwcmVmaXhlZEZvbGRlcixcbiAgICAgICAgc2VsZWN0ZWRGb2xkZXJzOiB7XG4gICAgICAgICAgLi4uc3RhdGUuc2VsZWN0ZWRGb2xkZXJzLFxuICAgICAgICAgIFtlZmZlY3RpdmVBY2NvdW50SWRdOiBwcmVmaXhlZEZvbGRlclxuICAgICAgICB9LFxuICAgICAgICAvLyBDbGVhciBlbWFpbC1zcGVjaWZpYyBzdGF0ZSB3aGVuIGNoYW5naW5nIGZvbGRlcnNcbiAgICAgICAgc2VsZWN0ZWRFbWFpbDogbnVsbCxcbiAgICAgICAgc2VsZWN0ZWRFbWFpbElkczogW10sXG4gICAgICAgIGVtYWlsczogW10sXG4gICAgICAgIGlzTG9hZGluZzogdHJ1ZSxcbiAgICAgICAgcGFnZTogMVxuICAgICAgfTtcbiAgICB9XG4gICAgXG4gICAgY2FzZSAnU0VUX0VNQUlMUyc6XG4gICAgICAvLyBTb3J0IGVtYWlscyBieSBkYXRlIChuZXdlc3QgZmlyc3QpIHRvIGVuc3VyZSBjb25zaXN0ZW50IHNvcnRpbmdcbiAgICAgIC8vIEZpcnN0IG1ha2UgYSBjb3B5IHRvIGF2b2lkIG11dGF0aW5nIHRoZSBpbnB1dFxuICAgICAgY29uc3QgdW5zb3J0ZWRFbWFpbHMgPSBbLi4uYWN0aW9uLnBheWxvYWRdO1xuICAgICAgXG4gICAgICAvLyBGb3IgZGVidWdnaW5nIC0gbG9nIGEgZmV3IGVtYWlscyBiZWZvcmUgc29ydGluZ1xuICAgICAgaWYgKHVuc29ydGVkRW1haWxzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc29sZS5sb2coYFtFTUFJTF9SRURVQ0VSXSBTb3J0aW5nICR7dW5zb3J0ZWRFbWFpbHMubGVuZ3RofSBlbWFpbHNgKTtcbiAgICAgICAgXG4gICAgICAgIC8vIExvZyBhIHNhbXBsZSBvZiBlbWFpbHMgYmVmb3JlIHNvcnRpbmdcbiAgICAgICAgY29uc29sZS5sb2coJ1tFTUFJTF9SRURVQ0VSXSBTYW1wbGUgZW1haWxzIGJlZm9yZSBzb3J0aW5nOicsXG4gICAgICAgICAgdW5zb3J0ZWRFbWFpbHMuc2xpY2UoMCwgMykubWFwKGUgPT4gKHtcbiAgICAgICAgICAgIGlkOiBlLmlkLnN1YnN0cmluZygwLCA4KSxcbiAgICAgICAgICAgIHN1YmplY3Q6IGUuc3ViamVjdD8uc3Vic3RyaW5nKDAsIDIwKSxcbiAgICAgICAgICAgIGRhdGU6IGUuZGF0ZSxcbiAgICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoZS5kYXRlKS5nZXRUaW1lKClcbiAgICAgICAgICB9KSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gQ1JJVElDQUwgRklYOiBFbmhhbmNlZCBzb3J0aW5nIGZ1bmN0aW9uIHRoYXQgZW5zdXJlcyBwcm9wZXIgZGF0ZSBoYW5kbGluZ1xuICAgICAgY29uc3Qgc29ydGVkRW1haWxzID0gdW5zb3J0ZWRFbWFpbHMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAvLyBDb252ZXJ0IGFsbCBkYXRlcyB0byB0aW1lc3RhbXBzIGZvciBjb21wYXJpc29uXG4gICAgICAgIGxldCBkYXRlQTogbnVtYmVyLCBkYXRlQjogbnVtYmVyO1xuICAgICAgICBcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBkYXRlQSA9IGEuZGF0ZSBpbnN0YW5jZW9mIERhdGUgPyBhLmRhdGUuZ2V0VGltZSgpIDogbmV3IERhdGUoYS5kYXRlKS5nZXRUaW1lKCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBkYXRlQSA9IDA7IC8vIERlZmF1bHQgdG8gb2xkZXN0IGlmIGludmFsaWRcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBkYXRlQiA9IGIuZGF0ZSBpbnN0YW5jZW9mIERhdGUgPyBiLmRhdGUuZ2V0VGltZSgpIDogbmV3IERhdGUoYi5kYXRlKS5nZXRUaW1lKCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBkYXRlQiA9IDA7IC8vIERlZmF1bHQgdG8gb2xkZXN0IGlmIGludmFsaWRcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gSGFuZGxlIGludmFsaWQgZGF0ZXNcbiAgICAgICAgaWYgKGlzTmFOKGRhdGVBKSAmJiBpc05hTihkYXRlQikpIHJldHVybiAwO1xuICAgICAgICBpZiAoaXNOYU4oZGF0ZUEpKSByZXR1cm4gMTsgLy8gUHV0IGludmFsaWQgZGF0ZXMgYXQgdGhlIGVuZFxuICAgICAgICBpZiAoaXNOYU4oZGF0ZUIpKSByZXR1cm4gLTE7XG4gICAgICAgIFxuICAgICAgICAvLyBTb3J0IG5ld2VzdCBmaXJzdFxuICAgICAgICByZXR1cm4gZGF0ZUIgLSBkYXRlQTtcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICAvLyBGb3IgZGVidWdnaW5nIC0gbG9nIGEgZmV3IGVtYWlscyBhZnRlciBzb3J0aW5nXG4gICAgICBpZiAoc29ydGVkRW1haWxzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1tFTUFJTF9SRURVQ0VSXSBTYW1wbGUgZW1haWxzIGFmdGVyIHNvcnRpbmc6JyxcbiAgICAgICAgICBzb3J0ZWRFbWFpbHMuc2xpY2UoMCwgMykubWFwKGUgPT4gKHtcbiAgICAgICAgICAgIGlkOiBlLmlkLnN1YnN0cmluZygwLCA4KSxcbiAgICAgICAgICAgIHN1YmplY3Q6IGUuc3ViamVjdD8uc3Vic3RyaW5nKDAsIDIwKSxcbiAgICAgICAgICAgIGRhdGU6IGUuZGF0ZSxcbiAgICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoZS5kYXRlKS5nZXRUaW1lKClcbiAgICAgICAgICB9KSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGVtYWlsczogc29ydGVkRW1haWxzLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlXG4gICAgICB9O1xuICAgIFxuICAgIGNhc2UgJ0FQUEVORF9FTUFJTFMnOiB7XG4gICAgICAvLyBDcmVhdGUgYSBzZXQgb2YgZXhpc3RpbmcgZW1haWwgSURzIHRvIGF2b2lkIGR1cGxpY2F0ZXNcbiAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChzdGF0ZS5lbWFpbHMubWFwKGVtYWlsID0+IGVtYWlsLmlkKSk7XG4gICAgICBcbiAgICAgIGNvbnNvbGUubG9nKGBbREVCVUctUkVEVUNFUl0gQVBQRU5EX0VNQUlMUyAtIEdvdCAke2FjdGlvbi5wYXlsb2FkLmxlbmd0aH0gZW1haWxzIHRvIGFwcGVuZCwgY3VycmVudCBsaXN0IGhhcyAke3N0YXRlLmVtYWlscy5sZW5ndGh9YCk7XG4gICAgICBcbiAgICAgIC8vIEZpbHRlciBvdXQgYW55IGR1cGxpY2F0ZXMgYmVmb3JlIGFwcGVuZGluZ1xuICAgICAgY29uc3QgbmV3RW1haWxzID0gYWN0aW9uLnBheWxvYWQuZmlsdGVyKGVtYWlsID0+ICFleGlzdGluZ0lkcy5oYXMoZW1haWwuaWQpKTtcbiAgICAgIFxuICAgICAgLy8gTG9nIGFwcGVuZGluZyBmb3IgZGVidWdnaW5nXG4gICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLVJFRFVDRVJdIEZpbHRlcmVkIHRvICR7bmV3RW1haWxzLmxlbmd0aH0gbmV3IG5vbi1kdXBsaWNhdGUgZW1haWxzYCk7XG4gICAgICBcbiAgICAgIC8vIENSSVRJQ0FMIEZJWDogSWYgbm8gbmV3IGVtYWlscyB3ZXJlIGZvdW5kLCBzZXQgaXNMb2FkaW5nIHRvIGZhbHNlIGJ1dCBkb24ndCBjaGFuZ2UgdGhlIGVtYWlsIGxpc3RcbiAgICAgIGlmIChuZXdFbWFpbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdbREVCVUctUkVEVUNFUl0gTm8gbmV3IGVtYWlscyB0byBhcHBlbmQsIHJldHVybmluZyBjdXJyZW50IHN0YXRlIHdpdGggaXNMb2FkaW5nPWZhbHNlJyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBEZWJ1ZyB0aGUgZGF0ZXMgdG8gY2hlY2sgc29ydGluZ1xuICAgICAgaWYgKG5ld0VtYWlscy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdbREVCVUctUkVEVUNFUl0gU2FtcGxlIG5ldyBlbWFpbHMgYmVmb3JlIGNvbWJpbmluZzonLFxuICAgICAgICAgIG5ld0VtYWlscy5zbGljZSgwLCAzKS5tYXAoZSA9PiAoe1xuICAgICAgICAgICAgaWQ6IGUuaWQuc3Vic3RyaW5nKDAsIDgpLFxuICAgICAgICAgICAgc3ViamVjdDogZS5zdWJqZWN0Py5zdWJzdHJpbmcoMCwgMjApLFxuICAgICAgICAgICAgZGF0ZTogZS5kYXRlLFxuICAgICAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZShlLmRhdGUpLmdldFRpbWUoKVxuICAgICAgICAgIH0pKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBGSVhFRDogUHJvcGVybHkgY29tYmluZSBleGlzdGluZyBhbmQgbmV3IGVtYWlsc1xuICAgICAgLy8gV2UgbmVlZCB0byBlbnN1cmUgd2Uga2VlcCBBTEwgZW1haWxzIHdoZW4gYXBwZW5kaW5nXG4gICAgICBjb25zdCBjb21iaW5lZEVtYWlscyA9IFsuLi5zdGF0ZS5lbWFpbHMsIC4uLm5ld0VtYWlsc107XG4gICAgICBcbiAgICAgIC8vIFNvcnQgY29tYmluZWQgZW1haWxzIGJ5IGRhdGUgKG5ld2VzdCBmaXJzdClcbiAgICAgIGNvbnN0IHNvcnRlZEVtYWlscyA9IGNvbWJpbmVkRW1haWxzLnNvcnQoXG4gICAgICAgIChhLCBiKSA9PiB7XG4gICAgICAgICAgLy8gQ29udmVydCBhbGwgZGF0ZXMgdG8gdGltZXN0YW1wcyBmb3IgY29tcGFyaXNvblxuICAgICAgICAgIGxldCBkYXRlQTogbnVtYmVyLCBkYXRlQjogbnVtYmVyO1xuICAgICAgICAgIFxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkYXRlQSA9IGEuZGF0ZSBpbnN0YW5jZW9mIERhdGUgPyBhLmRhdGUuZ2V0VGltZSgpIDogbmV3IERhdGUoYS5kYXRlKS5nZXRUaW1lKCk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgZGF0ZUEgPSAwOyAvLyBEZWZhdWx0IHRvIG9sZGVzdCBpZiBpbnZhbGlkXG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkYXRlQiA9IGIuZGF0ZSBpbnN0YW5jZW9mIERhdGUgPyBiLmRhdGUuZ2V0VGltZSgpIDogbmV3IERhdGUoYi5kYXRlKS5nZXRUaW1lKCk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgZGF0ZUIgPSAwOyAvLyBEZWZhdWx0IHRvIG9sZGVzdCBpZiBpbnZhbGlkXG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIC8vIEhhbmRsZSBpbnZhbGlkIGRhdGVzXG4gICAgICAgICAgaWYgKGlzTmFOKGRhdGVBKSAmJiBpc05hTihkYXRlQikpIHJldHVybiAwO1xuICAgICAgICAgIGlmIChpc05hTihkYXRlQSkpIHJldHVybiAxOyAvLyBQdXQgaW52YWxpZCBkYXRlcyBhdCB0aGUgZW5kXG4gICAgICAgICAgaWYgKGlzTmFOKGRhdGVCKSkgcmV0dXJuIC0xO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIFNvcnQgbmV3ZXN0IGZpcnN0XG4gICAgICAgICAgcmV0dXJuIGRhdGVCIC0gZGF0ZUE7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBcbiAgICAgIGNvbnNvbGUubG9nKGBbREVCVUctUkVEVUNFUl0gRmluYWwgY29tYmluZWQgbGlzdCBoYXMgJHtzb3J0ZWRFbWFpbHMubGVuZ3RofSBlbWFpbHMgKCR7c3RhdGUuZW1haWxzLmxlbmd0aH0gb2xkICsgJHtuZXdFbWFpbHMubGVuZ3RofSBuZXcpYCk7XG4gICAgICBcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBlbWFpbHM6IHNvcnRlZEVtYWlscyxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZVxuICAgICAgfTtcbiAgICB9XG4gICAgXG4gICAgY2FzZSAnU0VMRUNUX0VNQUlMJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWxlY3RlZEVtYWlsOiBhY3Rpb24ucGF5bG9hZC5lbWFpbCxcbiAgICAgICAgLy8gRG9uJ3QgbW9kaWZ5IHNlbGVjdGVkRW1haWxJZHMgd2hlbiBqdXN0IHNlbGVjdGluZyBhbiBlbWFpbCBmb3IgcHJldmlld1xuICAgICAgfTtcbiAgICBcbiAgICBjYXNlICdUT0dHTEVfRU1BSUxfU0VMRUNUSU9OJzoge1xuICAgICAgY29uc3QgZW1haWxJZCA9IGFjdGlvbi5wYXlsb2FkO1xuICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IHN0YXRlLnNlbGVjdGVkRW1haWxJZHMuaW5jbHVkZXMoZW1haWxJZCk7XG4gICAgICBcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWxlY3RlZEVtYWlsSWRzOiBpc1NlbGVjdGVkXG4gICAgICAgICAgPyBzdGF0ZS5zZWxlY3RlZEVtYWlsSWRzLmZpbHRlcihpZCA9PiBpZCAhPT0gZW1haWxJZClcbiAgICAgICAgICA6IFsuLi5zdGF0ZS5zZWxlY3RlZEVtYWlsSWRzLCBlbWFpbElkXVxuICAgICAgfTtcbiAgICB9XG4gICAgXG4gICAgY2FzZSAnVE9HR0xFX1NFTEVDVF9BTEwnOiB7XG4gICAgICAvLyBJZiBhbGwgZW1haWxzIGFyZSBhbHJlYWR5IHNlbGVjdGVkLCBjbGVhciB0aGUgc2VsZWN0aW9uXG4gICAgICBjb25zdCBhbGxFbWFpbElkcyA9IHN0YXRlLmVtYWlscy5tYXAoZW1haWwgPT4gZW1haWwuaWQpO1xuICAgICAgY29uc3QgYWxsU2VsZWN0ZWQgPSBhbGxFbWFpbElkcy5ldmVyeShpZCA9PiBzdGF0ZS5zZWxlY3RlZEVtYWlsSWRzLmluY2x1ZGVzKGlkKSk7XG4gICAgICBcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWxlY3RlZEVtYWlsSWRzOiBhbGxTZWxlY3RlZCA/IFtdIDogYWxsRW1haWxJZHNcbiAgICAgIH07XG4gICAgfVxuICAgIFxuICAgIGNhc2UgJ0NMRUFSX1NFTEVDVEVEX0VNQUlMUyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2VsZWN0ZWRFbWFpbElkczogW10sXG4gICAgICAgIHNlbGVjdGVkRW1haWw6IG51bGxcbiAgICAgIH07XG4gICAgXG4gICAgY2FzZSAnU0VUX0xPQURJTkcnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGlzTG9hZGluZzogYWN0aW9uLnBheWxvYWRcbiAgICAgIH07XG4gICAgXG4gICAgY2FzZSAnU0VUX0xPQURJTkdfVU5SRUFEX0NPVU5UUyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgaXNMb2FkaW5nVW5yZWFkQ291bnRzOiBhY3Rpb24ucGF5bG9hZFxuICAgICAgfTtcbiAgICBcbiAgICBjYXNlICdTRVRfRVJST1InOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGVycm9yOiBhY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZVxuICAgICAgfTtcbiAgICBcbiAgICBjYXNlICdTRVRfUEFHRSc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcGFnZTogYWN0aW9uLnBheWxvYWRcbiAgICAgIH07XG4gICAgXG4gICAgY2FzZSAnSU5DUkVNRU5UX1BBR0UnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHBhZ2U6IHN0YXRlLnBhZ2UgKyAxXG4gICAgICB9O1xuICAgIFxuICAgIGNhc2UgJ1NFVF9UT1RBTF9QQUdFUyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgdG90YWxQYWdlczogYWN0aW9uLnBheWxvYWRcbiAgICAgIH07XG4gICAgXG4gICAgY2FzZSAnU0VUX1RPVEFMX0VNQUlMUyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgdG90YWxFbWFpbHM6IGFjdGlvbi5wYXlsb2FkXG4gICAgICB9O1xuICAgIFxuICAgIGNhc2UgJ1NFVF9NQUlMQk9YRVMnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIG1haWxib3hlczogYWN0aW9uLnBheWxvYWRcbiAgICAgIH07XG4gICAgXG4gICAgY2FzZSAnVVBEQVRFX1VOUkVBRF9DT1VOVCc6IHtcbiAgICAgIGNvbnN0IHsgYWNjb3VudElkLCBmb2xkZXIsIGNvdW50IH0gPSBhY3Rpb24ucGF5bG9hZDtcbiAgICAgIFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHVucmVhZENvdW50TWFwOiB7XG4gICAgICAgICAgLi4uc3RhdGUudW5yZWFkQ291bnRNYXAsXG4gICAgICAgICAgW2FjY291bnRJZF06IHtcbiAgICAgICAgICAgIC4uLihzdGF0ZS51bnJlYWRDb3VudE1hcFthY2NvdW50SWRdIHx8IHt9KSxcbiAgICAgICAgICAgIFtmb2xkZXJdOiBjb3VudFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gICAgXG4gICAgY2FzZSAnU0VUX1VOUkVBRF9DT1VOVFMnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHVucmVhZENvdW50TWFwOiBhY3Rpb24ucGF5bG9hZFxuICAgICAgfTtcbiAgICBcbiAgICBjYXNlICdUT0dHTEVfU0hPV19GT0xERVJTJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzaG93Rm9sZGVyczogYWN0aW9uLnBheWxvYWRcbiAgICAgIH07XG4gICAgXG4gICAgY2FzZSAnTUFSS19FTUFJTF9BU19SRUFEJzoge1xuICAgICAgY29uc3QgeyBlbWFpbElkLCBpc1JlYWQsIGFjY291bnRJZCB9ID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICBcbiAgICAgIC8vIFVwZGF0ZSBlbWFpbHMgbGlzdFxuICAgICAgY29uc3QgdXBkYXRlZEVtYWlscyA9IHN0YXRlLmVtYWlscy5tYXAoZW1haWwgPT4gXG4gICAgICAgIChlbWFpbC5pZCA9PT0gZW1haWxJZCAmJiAoIWFjY291bnRJZCB8fCBlbWFpbC5hY2NvdW50SWQgPT09IGFjY291bnRJZCkpXG4gICAgICAgICAgPyB7IC4uLmVtYWlsLCBmbGFnczogeyAuLi5lbWFpbC5mbGFncywgc2VlbjogaXNSZWFkIH0gfVxuICAgICAgICAgIDogZW1haWxcbiAgICAgICk7XG4gICAgICBcbiAgICAgIC8vIFVwZGF0ZSBzZWxlY3RlZCBlbWFpbCBpZiBpdCBtYXRjaGVzXG4gICAgICBjb25zdCB1cGRhdGVkU2VsZWN0ZWRFbWFpbCA9IHN0YXRlLnNlbGVjdGVkRW1haWwgJiYgXG4gICAgICAgIHN0YXRlLnNlbGVjdGVkRW1haWwuaWQgPT09IGVtYWlsSWQgJiYgXG4gICAgICAgICghYWNjb3VudElkIHx8IHN0YXRlLnNlbGVjdGVkRW1haWwuYWNjb3VudElkID09PSBhY2NvdW50SWQpXG4gICAgICAgICAgPyB7IC4uLnN0YXRlLnNlbGVjdGVkRW1haWwsIGZsYWdzOiB7IC4uLnN0YXRlLnNlbGVjdGVkRW1haWwuZmxhZ3MsIHNlZW46IGlzUmVhZCB9IH1cbiAgICAgICAgICA6IHN0YXRlLnNlbGVjdGVkRW1haWw7XG4gICAgICBcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBlbWFpbHM6IHVwZGF0ZWRFbWFpbHMsXG4gICAgICAgIHNlbGVjdGVkRW1haWw6IHVwZGF0ZWRTZWxlY3RlZEVtYWlsXG4gICAgICB9O1xuICAgIH1cbiAgICBcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXRlO1xuICB9XG59ICJdLCJuYW1lcyI6WyJpbml0aWFsU3RhdGUiLCJhY2NvdW50cyIsInNlbGVjdGVkQWNjb3VudCIsInNlbGVjdGVkRm9sZGVycyIsImN1cnJlbnRGb2xkZXIiLCJlbWFpbHMiLCJzZWxlY3RlZEVtYWlsIiwic2VsZWN0ZWRFbWFpbElkcyIsImlzTG9hZGluZyIsImlzTG9hZGluZ1VucmVhZENvdW50cyIsImVycm9yIiwicGFnZSIsInBlclBhZ2UiLCJ0b3RhbFBhZ2VzIiwidG90YWxFbWFpbHMiLCJtYWlsYm94ZXMiLCJ1bnJlYWRDb3VudE1hcCIsInNob3dGb2xkZXJzIiwibm9ybWFsaXplRm9sZGVyQW5kQWNjb3VudCIsImZvbGRlciIsImFjY291bnRJZCIsIm5vcm1hbGl6ZWRGb2xkZXIiLCJlZmZlY3RpdmVBY2NvdW50SWQiLCJpbmNsdWRlcyIsInBhcnRzIiwic3BsaXQiLCJmb2xkZXJBY2NvdW50SWQiLCJjb25zb2xlIiwibG9nIiwicHJlZml4ZWRGb2xkZXIiLCJlbWFpbFJlZHVjZXIiLCJzdGF0ZSIsImFjdGlvbiIsInR5cGUiLCJwYXlsb2FkIiwiYWNjb3VudCIsImluYm94Rm9sZGVyIiwiaWQiLCJlbWFpbCIsInVuc29ydGVkRW1haWxzIiwibGVuZ3RoIiwic2xpY2UiLCJtYXAiLCJlIiwic3Vic3RyaW5nIiwic3ViamVjdCIsImRhdGUiLCJ0aW1lc3RhbXAiLCJEYXRlIiwiZ2V0VGltZSIsInNvcnRlZEVtYWlscyIsInNvcnQiLCJhIiwiYiIsImRhdGVBIiwiZGF0ZUIiLCJpc05hTiIsImV4aXN0aW5nSWRzIiwiU2V0IiwibmV3RW1haWxzIiwiZmlsdGVyIiwiaGFzIiwiY29tYmluZWRFbWFpbHMiLCJlbWFpbElkIiwiaXNTZWxlY3RlZCIsImFsbEVtYWlsSWRzIiwiYWxsU2VsZWN0ZWQiLCJldmVyeSIsImNvdW50IiwiaXNSZWFkIiwidXBkYXRlZEVtYWlscyIsImZsYWdzIiwic2VlbiIsInVwZGF0ZWRTZWxlY3RlZEVtYWlsIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/reducers/emailReducer.ts\n")); /***/ }), /***/ "(app-pages-browser)/./lib/services/prefetch-service.ts": /*!******************************************!*\ !*** ./lib/services/prefetch-service.ts ***! \******************************************/ /***/ ((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 */ getCachedEmailsWithTimeout: () => (/* binding */ getCachedEmailsWithTimeout),\n/* harmony export */ prefetchFolderEmails: () => (/* binding */ prefetchFolderEmails),\n/* harmony export */ prefetchUserEmailData: () => (/* binding */ prefetchUserEmailData),\n/* harmony export */ refreshEmailsInBackground: () => (/* binding */ refreshEmailsInBackground)\n/* harmony export */ });\n/* harmony import */ var private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! private-next-rsc-action-client-wrapper */ \"(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-client-wrapper.js\");\n/* harmony import */ var private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_action_entry_do_not_use__ {\"40b6acbd16ee963a18ba6de32b5c63b379909103e9\":\"prefetchUserEmailData\",\"7cf3883d51675d568256e1b2498cf8fe78875b65ee\":\"refreshEmailsInBackground\",\"7cfa4fcce0a70a3d3b703a31abefda0e79d9e1097a\":\"prefetchFolderEmails\",\"7e95e703e87cb496134c69dc010f054d10451a2f57\":\"getCachedEmailsWithTimeout\"} */ \nvar getCachedEmailsWithTimeout = /*#__PURE__*/ (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.createServerReference)(\"7e95e703e87cb496134c69dc010f054d10451a2f57\", private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.callServer, void 0, private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.findSourceMapURL, \"getCachedEmailsWithTimeout\");\nvar refreshEmailsInBackground = /*#__PURE__*/ (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.createServerReference)(\"7cf3883d51675d568256e1b2498cf8fe78875b65ee\", private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.callServer, void 0, private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.findSourceMapURL, \"refreshEmailsInBackground\");\nvar prefetchUserEmailData = /*#__PURE__*/ (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.createServerReference)(\"40b6acbd16ee963a18ba6de32b5c63b379909103e9\", private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.callServer, void 0, private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.findSourceMapURL, \"prefetchUserEmailData\");\nvar prefetchFolderEmails = /*#__PURE__*/ (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.createServerReference)(\"7cfa4fcce0a70a3d3b703a31abefda0e79d9e1097a\", private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.callServer, void 0, private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.findSourceMapURL, \"prefetchFolderEmails\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi9zZXJ2aWNlcy9wcmVmZXRjaC1zZXJ2aWNlLnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7SUE0RHNCQSwyQ0FBQUEsNkZBQUFBLCtDQUFBQSw4RUFBQUEsVUFBQUEsb0ZBQUFBO0lBMEVBQywwQ0FBQUEsNkZBQUFBLCtDQUFBQSw4RUFBQUEsVUFBQUEsb0ZBQUFBO0lBK0NBQyxzQ0FBQUEsNkZBQUFBLCtDQUFBQSw4RUFBQUEsVUFBQUEsb0ZBQUFBO0lBb0ZBQyxxQ0FBQUEsNkZBQUFBLCtDQUFBQSw4RUFBQUEsVUFBQUEsb0ZBQUFBIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2xpYi9zZXJ2aWNlcy9wcmVmZXRjaC1zZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJztcblxuaW1wb3J0IHsgZ2V0SW1hcENvbm5lY3Rpb24sIGdldEVtYWlscywgZ2V0RW1haWxDb250ZW50IH0gZnJvbSAnLi9lbWFpbC1zZXJ2aWNlJztcbmltcG9ydCB7XG4gIGNhY2hlRW1haWxMaXN0LFxuICBjYWNoZUVtYWlsQ29udGVudCxcbiAgY2FjaGVJbWFwU2Vzc2lvbixcbiAgZ2V0Q2FjaGVkRW1haWxMaXN0LFxuICBnZXRSZWRpc0NsaWVudCxcbiAgd2FybXVwUmVkaXNDYWNoZVxufSBmcm9tICdAL2xpYi9yZWRpcyc7XG5cbi8vIEtlZXAgdHJhY2sgb2Ygb25nb2luZyBwcmVmZXRjaCBvcGVyYXRpb25zIHRvIHByZXZlbnQgZHVwbGljYXRlc1xuY29uc3QgcHJlZmV0Y2hJblByb2dyZXNzID0gbmV3IE1hcDxzdHJpbmcsIGJvb2xlYW4+KCk7XG5jb25zdCBsYXN0UHJlZmV0Y2hUaW1lID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcbmNvbnN0IFBSRUZFVENIX0NPT0xET1dOX01TID0gMzAwMDA7IC8vIDMwIHNlY29uZHMgYmV0d2VlbiBwcmVmZXRjaCBvcGVyYXRpb25zXG5cbi8vIFRyYWNrIHJlY2VudCByZWZyZXNoZXMgdG8gcHJldmVudCBpbmZpbml0ZSBsb29wc1xuY29uc3QgcmVjZW50UmVmcmVzaGVzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcbmNvbnN0IENPT0xET1dOX1BFUklPRCA9IDYwMDAwOyAvLyA2MCBzZWNvbmRzIGNvb2xkb3duIGJldHdlZW4gcmVmcmVzaGVzXG5cbi8qKlxuICogQ2hlY2sgaWYgd2Ugc2hvdWxkIHByZWZldGNoIGZvciBhIHVzZXIgYmFzZWQgb24gY29vbGRvd25cbiAqL1xuZnVuY3Rpb24gc2hvdWxkUHJlZmV0Y2godXNlcklkOiBzdHJpbmcsIGtleTogc3RyaW5nID0gJ2dlbmVyYWwnKTogYm9vbGVhbiB7XG4gIGNvbnN0IHByZWZldGNoS2V5ID0gYCR7dXNlcklkfToke2tleX1gO1xuICBcbiAgLy8gQ2hlY2sgaWYgcHJlZmV0Y2ggaXMgYWxyZWFkeSBpbiBwcm9ncmVzc1xuICBpZiAocHJlZmV0Y2hJblByb2dyZXNzLmdldChwcmVmZXRjaEtleSkpIHtcbiAgICBjb25zb2xlLmxvZyhgUHJlZmV0Y2ggYWxyZWFkeSBpbiBwcm9ncmVzcyBmb3IgJHtwcmVmZXRjaEtleX1gKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgXG4gIC8vIENoZWNrIGNvb2xkb3duXG4gIGNvbnN0IGxhc3RUaW1lID0gbGFzdFByZWZldGNoVGltZS5nZXQocHJlZmV0Y2hLZXkpIHx8IDA7XG4gIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gIFxuICBpZiAobm93IC0gbGFzdFRpbWUgPCBQUkVGRVRDSF9DT09MRE9XTl9NUykge1xuICAgIGNvbnNvbGUubG9nKGBQcmVmZXRjaCBjb29sZG93biBhY3RpdmUgZm9yICR7cHJlZmV0Y2hLZXl9LCBsYXN0IHdhcyAke01hdGgucm91bmQoKG5vdyAtIGxhc3RUaW1lKS8xMDAwKX1zIGFnb2ApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBcbiAgLy8gTWFyayBhcyBpbiBwcm9ncmVzcyBhbmQgdXBkYXRlIGxhc3QgdGltZVxuICBwcmVmZXRjaEluUHJvZ3Jlc3Muc2V0KHByZWZldGNoS2V5LCB0cnVlKTtcbiAgbGFzdFByZWZldGNoVGltZS5zZXQocHJlZmV0Y2hLZXksIG5vdyk7XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIE1hcmsgcHJlZmV0Y2ggYXMgY29tcGxldGVkXG4gKi9cbmZ1bmN0aW9uIG1hcmtQcmVmZXRjaENvbXBsZXRlZCh1c2VySWQ6IHN0cmluZywga2V5OiBzdHJpbmcgPSAnZ2VuZXJhbCcpOiB2b2lkIHtcbiAgY29uc3QgcHJlZmV0Y2hLZXkgPSBgJHt1c2VySWR9OiR7a2V5fWA7XG4gIHByZWZldGNoSW5Qcm9ncmVzcy5zZXQocHJlZmV0Y2hLZXksIGZhbHNlKTtcbn1cblxuLyoqXG4gKiBHZXQgY2FjaGVkIGVtYWlscyB3aXRoIHRpbWVvdXQgdG8gZW5zdXJlIGZhc3QgVUkgcmVzcG9uc2VcbiAqIElmIGNhY2hlIGFjY2VzcyB0YWtlcyBsb25nZXIgdGhhbiB0aW1lb3V0LCByZXR1cm4gbnVsbCB0byB1c2UgcmVndWxhciBJTUFQIGZldGNoXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDYWNoZWRFbWFpbHNXaXRoVGltZW91dChcbiAgdXNlcklkOiBzdHJpbmcsXG4gIGZvbGRlcjogc3RyaW5nLFxuICBwYWdlOiBudW1iZXIsXG4gIHBlclBhZ2U6IG51bWJlcixcbiAgdGltZW91dE1zOiBudW1iZXIgPSAxMDAsXG4gIGFjY291bnRJZD86IHN0cmluZ1xuKTogUHJvbWlzZTxhbnkgfCBudWxsPiB7XG4gIC8vIFNraXAgY2FjaGUgaWYgYWNjb3VudElkIGlzICdsb2FkaW5nLWFjY291bnQnXG4gIGlmIChhY2NvdW50SWQgPT09ICdsb2FkaW5nLWFjY291bnQnKSB7XG4gICAgY29uc29sZS5sb2coYFNraXBwaW5nIGNhY2hlIGZvciBsb2FkaW5nIGFjY291bnRgKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIENSSVRJQ0FMIEZJWDogUHJvcGVyIGZvbGRlciBhbmQgYWNjb3VudCBJRCBub3JtYWxpemF0aW9uXG4gIC8vIFRoaXMgaXMgY3JpdGljYWwgZm9yIGNvbnNpc3RlbnQgY2FjaGUga2V5c1xuICBsZXQgZWZmZWN0aXZlQWNjb3VudElkOiBzdHJpbmc7XG4gIGxldCBub3JtYWxpemVkRm9sZGVyOiBzdHJpbmc7XG5cbiAgLy8gRmlyc3QsIGhhbmRsZSB0aGUgZm9sZGVyIGZvcm1hdFxuICBpZiAoZm9sZGVyLmluY2x1ZGVzKCc6JykpIHtcbiAgICAvLyBFeHRyYWN0IHBhcnRzIGlmIGZvbGRlciBhbHJlYWR5IGhhcyBhIHByZWZpeFxuICAgIGNvbnN0IHBhcnRzID0gZm9sZGVyLnNwbGl0KCc6Jyk7XG4gICAgY29uc3QgZm9sZGVyQWNjb3VudElkID0gcGFydHNbMF07XG4gICAgbm9ybWFsaXplZEZvbGRlciA9IHBhcnRzWzFdO1xuICAgIFxuICAgIC8vIENSSVRJQ0FMIEZJWDogSWYgZXhwbGljaXQgYWNjb3VudElkIGlzIHByb3ZpZGVkLCBpdCBBTFdBWVMgdGFrZXMgcHJlY2VkZW5jZVxuICAgIC8vIFRoaXMgZW5zdXJlcyBhY2NvdW50IHN3aXRjaGluZyB3b3JrcyBjb3JyZWN0bHlcbiAgICBpZiAoYWNjb3VudElkKSB7XG4gICAgICBjb25zb2xlLmxvZyhgW2dldENhY2hlZEVtYWlsc1dpdGhUaW1lb3V0XSBVc2luZyBwcm92aWRlZCBhY2NvdW50SWQgKCR7YWNjb3VudElkfSkgb3ZlciBmb2xkZXIgcHJlZml4ICgke2ZvbGRlckFjY291bnRJZH0pYCk7XG4gICAgICBlZmZlY3RpdmVBY2NvdW50SWQgPSBhY2NvdW50SWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVmZmVjdGl2ZUFjY291bnRJZCA9IGZvbGRlckFjY291bnRJZDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gTm8gZm9sZGVyIHByZWZpeCwgdXNlIHRoZSBmb2xkZXIgbmFtZSBhcyBpc1xuICAgIG5vcm1hbGl6ZWRGb2xkZXIgPSBmb2xkZXI7XG4gICAgZWZmZWN0aXZlQWNjb3VudElkID0gYWNjb3VudElkIHx8ICdkZWZhdWx0JztcbiAgfVxuICBcbiAgLy8gTG9nIHRoZSBub3JtYWxpemF0aW9uIGZvciBkZWJ1Z2dpbmdcbiAgY29uc29sZS5sb2coYFtnZXRDYWNoZWRFbWFpbHNXaXRoVGltZW91dF0gTm9ybWFsaXplZDogZm9sZGVyPSR7bm9ybWFsaXplZEZvbGRlcn0sIGFjY291bnRJZD0ke2VmZmVjdGl2ZUFjY291bnRJZH0gKGZyb20gJHtmb2xkZXJ9KWApO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coYENhY2hlIGFjY2VzcyB0aW1lb3V0IGZvciAke3VzZXJJZH06JHtlZmZlY3RpdmVBY2NvdW50SWR9OiR7bm9ybWFsaXplZEZvbGRlcn06JHtwYWdlfToke3BlclBhZ2V9YCk7XG4gICAgICByZXNvbHZlKG51bGwpO1xuICAgIH0sIHRpbWVvdXRNcyk7XG5cbiAgICAvLyBDUklUSUNBTCBGSVg6IFVzZSB0aGUgbm9ybWFsaXplZCBwYXJhbWV0ZXJzIGNvbnNpc3RlbnRseVxuICAgIC8vIFRoaXMgZW5zdXJlcyB3ZSdyZSBsb29raW5nIHVwIHRoZSByaWdodCBjYWNoZSBlbnRyaWVzXG4gICAgZ2V0Q2FjaGVkRW1haWxMaXN0KHVzZXJJZCwgZWZmZWN0aXZlQWNjb3VudElkLCBub3JtYWxpemVkRm9sZGVyLCBwYWdlLCBwZXJQYWdlKVxuICAgICAgLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgW2dldENhY2hlZEVtYWlsc1dpdGhUaW1lb3V0XSBDYWNoZSBoaXQgZm9yICR7dXNlcklkfToke2VmZmVjdGl2ZUFjY291bnRJZH06JHtub3JtYWxpemVkRm9sZGVyfToke3BhZ2V9OiR7cGVyUGFnZX1gKTtcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYFtnZXRDYWNoZWRFbWFpbHNXaXRoVGltZW91dF0gQ2FjaGUgbWlzcyBmb3IgJHt1c2VySWR9OiR7ZWZmZWN0aXZlQWNjb3VudElkfToke25vcm1hbGl6ZWRGb2xkZXJ9OiR7cGFnZX06JHtwZXJQYWdlfWApO1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tnZXRDYWNoZWRFbWFpbHNXaXRoVGltZW91dF0gRXJyb3IgYWNjZXNzaW5nIGNhY2hlOicsIGVycik7XG4gICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICB9KTtcbiAgfSk7XG59XG5cbi8qKlxuICogUmVmcmVzaCBlbWFpbHMgaW4gYmFja2dyb3VuZCB3aXRob3V0IGJsb2NraW5nIFVJXG4gKiBUaGlzIGFsbG93cyB0aGUgVUkgdG8gc2hvdyBjYWNoZWQgZGF0YSBpbW1lZGlhdGVseSB3aGlsZSByZWZyZXNoaW5nIGluIGJhY2tncm91bmRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZnJlc2hFbWFpbHNJbkJhY2tncm91bmQoXG4gIHVzZXJJZDogc3RyaW5nLCBcbiAgZm9sZGVyOiBzdHJpbmcsXG4gIHBhZ2U6IG51bWJlcixcbiAgcGVyUGFnZTogbnVtYmVyLFxuICBhY2NvdW50SWQ/OiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICB0cnkge1xuICAgIC8vIEZpcnN0IGNoZWNrIGlmIGZvbGRlciBoYXMgdGhlIGFjY291bnRJZCBwcmVmaXhcbiAgICBjb25zb2xlLmxvZyhgW3JlZnJlc2hFbWFpbHNJbkJhY2tncm91bmRdIE5vcm1hbGl6ZWQ6IGZvbGRlcj0ke2ZvbGRlcn0sIGFjY291bnRJZD0ke2FjY291bnRJZH0gKGZyb20gJHtmb2xkZXJ9KWApO1xuICAgIFxuICAgIC8vIENyZWF0ZSBhIHVuaXF1ZSBrZXkgZm9yIHRoaXMgcmVmcmVzaCByZXF1ZXN0XG4gICAgY29uc3QgcmVmcmVzaEtleSA9IGAke3VzZXJJZH06cmVmcmVzaDoke2FjY291bnRJZCB8fCAnZGVmYXVsdCd9OiR7Zm9sZGVyfToke3BhZ2V9YDtcbiAgICBcbiAgICAvLyBDaGVjayBpZiB0aGlzIGV4YWN0IHJlZnJlc2ggd2FzIGRvbmUgcmVjZW50bHkgLSBQUkVWRU5UIElORklOSVRFIExPT1BTXG4gICAgY29uc3QgbGFzdFJlZnJlc2hlZCA9IHJlY2VudFJlZnJlc2hlcy5nZXQocmVmcmVzaEtleSk7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBcbiAgICBpZiAobGFzdFJlZnJlc2hlZCAmJiBub3cgLSBsYXN0UmVmcmVzaGVkIDwgQ09PTERPV05fUEVSSU9EKSB7XG4gICAgICBjb25zb2xlLmxvZyhgUHJlZmV0Y2ggY29vbGRvd24gYWN0aXZlIGZvciAke3JlZnJlc2hLZXl9LCBsYXN0IHdhcyAke01hdGguZmxvb3IoKG5vdyAtIGxhc3RSZWZyZXNoZWQpLzEwMDApfXMgYWdvYCk7XG4gICAgICByZXR1cm47IC8vIFNraXAgaWYgd2UgcmVmcmVzaGVkIHRoaXMgZXhhY3QgZGF0YSByZWNlbnRseVxuICAgIH1cbiAgICBcbiAgICAvLyBVcGRhdGUgdGhlIHJlZnJlc2ggdGltZXN0YW1wXG4gICAgcmVjZW50UmVmcmVzaGVzLnNldChyZWZyZXNoS2V5LCBub3cpO1xuICAgIFxuICAgIC8vIFBydW5lIG9sZCBlbnRyaWVzIGZyb20gdGhlIG1hcCAoa2VlcCBvbmx5IHJlY2VudCBvbmVzKVxuICAgIGZvciAoY29uc3QgW2tleSwgdGltZXN0YW1wXSBvZiByZWNlbnRSZWZyZXNoZXMuZW50cmllcygpKSB7XG4gICAgICBpZiAobm93IC0gdGltZXN0YW1wID4gQ09PTERPV05fUEVSSU9EKSB7XG4gICAgICAgIHJlY2VudFJlZnJlc2hlcy5kZWxldGUoa2V5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gQ1JJVElDQUwgRklYOiBQcmV2ZW50IGFueSBiYWNrZ3JvdW5kIHJlZnJlc2ggYnkgaW1tZWRpYXRlbHkgcmV0dXJuaW5nXG4gICAgY29uc29sZS5sb2coYFtyZWZyZXNoRW1haWxzSW5CYWNrZ3JvdW5kXSBESVNBQkxFRCB0byBwcmV2ZW50IGluZmluaXRlIGxvb3BzYCk7XG4gICAgcmV0dXJuO1xuICAgIFxuICAgIC8vIFJlYWwgaW1wbGVtZW50YXRpb24gb2YgcmVmcmVzaCB3b3VsZCBiZSBoZXJlXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gcmVmcmVzaEVtYWlsc0luQmFja2dyb3VuZDonLCBlcnJvcik7XG4gIH1cbn1cblxuLyoqXG4gKiBQcmVmZXRjaCBiYXNpYyBlbWFpbCBkYXRhIGZvciBmYXN0ZXIgaW5pdGlhbCBsb2FkaW5nXG4gKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgd2hlbiBhIHVzZXIgbG9ncyBpblxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJlZmV0Y2hVc2VyRW1haWxEYXRhKHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIFNraXAgaWYgYWxyZWFkeSBpbiBwcm9ncmVzcyBvciBpbiBjb29sZG93blxuICBpZiAoIXNob3VsZFByZWZldGNoKHVzZXJJZCkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgXG4gIGNvbnNvbGUubG9nKGBTdGFydGluZyBlbWFpbCBwcmVmZXRjaCBmb3IgdXNlciAke3VzZXJJZH1gKTtcbiAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcblxuICB0cnkge1xuICAgIC8vIENvbm5lY3QgdG8gSU1BUCBzZXJ2ZXJcbiAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBnZXRJbWFwQ29ubmVjdGlvbih1c2VySWQpO1xuICAgIFxuICAgIC8vIDEuIFByZWZldGNoIG1haWxib3ggbGlzdFxuICAgIGNvbnN0IG1haWxib3hlcyA9IGF3YWl0IGNsaWVudC5saXN0KCk7XG4gICAgY29uc3QgbWFpbGJveFBhdGhzID0gbWFpbGJveGVzLm1hcChtYWlsYm94ID0+IG1haWxib3gucGF0aCk7XG4gICAgXG4gICAgLy8gQ2FjaGUgbWFpbGJveCBsaXN0IGluIHNlc3Npb24gZGF0YVxuICAgIGF3YWl0IGNhY2hlSW1hcFNlc3Npb24odXNlcklkLCB7XG4gICAgICBsYXN0QWN0aXZlOiBEYXRlLm5vdygpLFxuICAgICAgbWFpbGJveGVzOiBtYWlsYm94UGF0aHNcbiAgICB9KTtcbiAgICBcbiAgICBjb25zb2xlLmxvZyhgUHJlZmV0Y2hlZCAke21haWxib3hQYXRocy5sZW5ndGh9IGZvbGRlcnMgZm9yIHVzZXIgJHt1c2VySWR9YCk7XG4gICAgXG4gICAgLy8gMi4gUHJlZmV0Y2ggZW1haWwgbGlzdHMgZm9yIGltcG9ydGFudCBmb2xkZXJzXG4gICAgY29uc3QgaW1wb3J0YW50Rm9sZGVycyA9IFtcbiAgICAgICdJTkJPWCcsXG4gICAgICBtYWlsYm94UGF0aHMuZmluZChwYXRoID0+IHBhdGgudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnc2VudCcpKSB8fCAnU2VudCcsXG4gICAgICBtYWlsYm94UGF0aHMuZmluZChwYXRoID0+IHBhdGgudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnZHJhZnQnKSkgfHwgJ0RyYWZ0cydcbiAgICBdLmZpbHRlcihCb29sZWFuKTtcbiAgICBcbiAgICAvLyBGZXRjaCBmaXJzdCBwYWdlIG9mIGVhY2ggaW1wb3J0YW50IGZvbGRlclxuICAgIGZvciAoY29uc3QgZm9sZGVyIG9mIGltcG9ydGFudEZvbGRlcnMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBQcmVmZXRjaGluZyBlbWFpbHMgZm9yICR7Zm9sZGVyfWApO1xuICAgICAgICBjb25zdCBlbWFpbExpc3QgPSBhd2FpdCBnZXRFbWFpbHModXNlcklkLCBmb2xkZXIsIDEsIDIwKTtcbiAgICAgICAgY29uc29sZS5sb2coYFByZWZldGNoZWQgJHtlbWFpbExpc3QuZW1haWxzLmxlbmd0aH0gZW1haWxzIGZvciAke2ZvbGRlcn1gKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIHByZWZldGNoaW5nIGVtYWlscyBmb3IgZm9sZGVyICR7Zm9sZGVyfTpgLCBlcnJvcik7XG4gICAgICAgIC8vIENvbnRpbnVlIHdpdGggb3RoZXIgZm9sZGVycyBldmVuIGlmIG9uZSBmYWlsc1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyAzLiBQcmVmZXRjaCBjb250ZW50IG9mIHJlY2VudCB1bnJlYWQgZW1haWxzIGluIElOQk9YXG4gICAgdHJ5IHtcbiAgICAgIC8vIEdldCB0aGUgbGlzdCBhZ2FpbiAoaXQncyBhbHJlYWR5IGNhY2hlZCBzbyB0aGlzIHdpbGwgYmUgZmFzdClcbiAgICAgIGNvbnN0IGluYm94TGlzdCA9IGF3YWl0IGdldEVtYWlscyh1c2VySWQsICdJTkJPWCcsIDEsIDIwKTtcbiAgICAgIFxuICAgICAgLy8gUHJlZmV0Y2ggY29udGVudCBmb3IgdXAgdG8gNSByZWNlbnQgdW5yZWFkIGVtYWlsc1xuICAgICAgY29uc3QgdW5yZWFkRW1haWxzID0gaW5ib3hMaXN0LmVtYWlsc1xuICAgICAgICAuZmlsdGVyKGVtYWlsID0+ICFlbWFpbC5mbGFncy5zZWVuKVxuICAgICAgICAuc2xpY2UoMCwgNSk7XG4gICAgICBcbiAgICAgIGlmICh1bnJlYWRFbWFpbHMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgUHJlZmV0Y2hpbmcgY29udGVudCBmb3IgJHt1bnJlYWRFbWFpbHMubGVuZ3RofSB1bnJlYWQgZW1haWxzYCk7XG4gICAgICAgIFxuICAgICAgICAvLyBGZXRjaCBjb250ZW50IGluIHBhcmFsbGVsIGZvciBzcGVlZFxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoXG4gICAgICAgICAgdW5yZWFkRW1haWxzLm1hcChlbWFpbCA9PiBcbiAgICAgICAgICAgIGdldEVtYWlsQ29udGVudCh1c2VySWQsIGVtYWlsLmlkLCAnSU5CT1gnKVxuICAgICAgICAgICAgICAuY2F0Y2goZXJyID0+IGNvbnNvbGUuZXJyb3IoYEVycm9yIHByZWZldGNoaW5nIGVtYWlsICR7ZW1haWwuaWR9OmAsIGVycikpXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICBcbiAgICAgICAgY29uc29sZS5sb2coYENvbXBsZXRlZCBwcmVmZXRjaGluZyBjb250ZW50IGZvciB1bnJlYWQgZW1haWxzYCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHByZWZldGNoaW5nIHVucmVhZCBlbWFpbCBjb250ZW50OicsIGVycm9yKTtcbiAgICB9XG4gICAgXG4gICAgY29uc3QgZHVyYXRpb24gPSAoRGF0ZS5ub3coKSAtIHN0YXJ0VGltZSkgLyAxMDAwO1xuICAgIGNvbnNvbGUubG9nKGBFbWFpbCBwcmVmZXRjaCBjb21wbGV0ZWQgZm9yIHVzZXIgJHt1c2VySWR9IGluICR7ZHVyYXRpb24udG9GaXhlZCgyKX1zYCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignRXJyb3IgZHVyaW5nIGVtYWlsIHByZWZldGNoOicsIGVycm9yKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBtYXJrUHJlZmV0Y2hDb21wbGV0ZWQodXNlcklkKTtcbiAgfVxufVxuXG4vKipcbiAqIFByZWZldGNoIGEgc3BlY2lmaWMgZm9sZGVyJ3MgZW1haWxzXG4gKiBUaGlzIGNhbiBiZSB1c2VkIHdoZW4gdGhlIHVzZXIgbmF2aWdhdGVzIHRvIGEgZm9sZGVyIHRvIHByZWxvYWQgbW9yZSBwYWdlc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJlZmV0Y2hGb2xkZXJFbWFpbHMoXG4gIHVzZXJJZDogc3RyaW5nLFxuICBmb2xkZXI6IHN0cmluZyxcbiAgcGFnZXM6IG51bWJlciA9IDMsXG4gIHN0YXJ0UGFnZTogbnVtYmVyID0gMSxcbiAgYWNjb3VudElkPzogc3RyaW5nXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gRXh0cmFjdCBhY2NvdW50IElEIGZyb20gZm9sZGVyIG5hbWUgaWYgcHJlc2VudCBhbmQgbm9uZSB3YXMgZXhwbGljaXRseSBwcm92aWRlZFxuICBjb25zdCBmb2xkZXJBY2NvdW50SWQgPSBmb2xkZXIuaW5jbHVkZXMoJzonKSA/IGZvbGRlci5zcGxpdCgnOicpWzBdIDogYWNjb3VudElkO1xuICBcbiAgLy8gVXNlIHRoZSBtb3N0IHNwZWNpZmljIGFjY291bnQgSUQgYXZhaWxhYmxlXG4gIGNvbnN0IGVmZmVjdGl2ZUFjY291bnRJZCA9IGZvbGRlckFjY291bnRJZCB8fCBhY2NvdW50SWQgfHwgJ2RlZmF1bHQnO1xuICBcbiAgLy8gTm9ybWFsaXplIGZvbGRlciBuYW1lIGJ5IHJlbW92aW5nIGFjY291bnQgcHJlZml4IGlmIHByZXNlbnRcbiAgY29uc3Qgbm9ybWFsaXplZEZvbGRlciA9IGZvbGRlci5pbmNsdWRlcygnOicpID8gZm9sZGVyLnNwbGl0KCc6JylbMV0gOiBmb2xkZXI7XG4gIFxuICBjb25zdCBwcmVmZXRjaEtleSA9IGBmb2xkZXI6JHtub3JtYWxpemVkRm9sZGVyfToke3N0YXJ0UGFnZX06JHtlZmZlY3RpdmVBY2NvdW50SWR9YDtcbiAgXG4gIC8vIFNraXAgaWYgYWxyZWFkeSBpbiBwcm9ncmVzcyBvciBpbiBjb29sZG93blxuICBpZiAoIXNob3VsZFByZWZldGNoKHVzZXJJZCwgcHJlZmV0Y2hLZXkpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIFxuICB0cnkge1xuICAgIGNvbnNvbGUubG9nKGBQcmVmZXRjaGluZyAke3BhZ2VzfSBwYWdlcyBvZiBlbWFpbHMgZm9yIGZvbGRlciAke25vcm1hbGl6ZWRGb2xkZXJ9IHN0YXJ0aW5nIGZyb20gcGFnZSAke3N0YXJ0UGFnZX0gZm9yIGFjY291bnQgJHtlZmZlY3RpdmVBY2NvdW50SWR9YCk7XG4gICAgXG4gICAgLy8gQ2FsY3VsYXRlIHRoZSByYW5nZSBvZiBwYWdlcyB0byBwcmVmZXRjaFxuICAgIGNvbnN0IHBhZ2VzVG9GZXRjaCA9IEFycmF5LmZyb20oXG4gICAgICB7IGxlbmd0aDogcGFnZXMgfSwgXG4gICAgICAoXywgaSkgPT4gc3RhcnRQYWdlICsgaVxuICAgICk7XG4gICAgXG4gICAgY29uc29sZS5sb2coYFdpbGwgcHJlZmV0Y2ggcGFnZXM6ICR7cGFnZXNUb0ZldGNoLmpvaW4oJywgJyl9YCk7XG4gICAgXG4gICAgLy8gRmV0Y2ggbXVsdGlwbGUgcGFnZXMgaW4gcGFyYWxsZWxcbiAgICBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoXG4gICAgICBwYWdlc1RvRmV0Y2gubWFwKHBhZ2UgPT5cbiAgICAgICAgZ2V0RW1haWxzKHVzZXJJZCwgbm9ybWFsaXplZEZvbGRlciwgcGFnZSwgMjAsIGVmZmVjdGl2ZUFjY291bnRJZClcbiAgICAgICAgICAudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYFN1Y2Nlc3NmdWxseSBwcmVmZXRjaGVkIGFuZCBjYWNoZWQgcGFnZSAke3BhZ2V9IG9mICR7bm9ybWFsaXplZEZvbGRlcn0gd2l0aCAke3Jlc3VsdC5lbWFpbHMubGVuZ3RofSBlbWFpbHMgZm9yIGFjY291bnQgJHtlZmZlY3RpdmVBY2NvdW50SWR9YCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBwcmVmZXRjaGluZyBwYWdlICR7cGFnZX0gb2YgJHtub3JtYWxpemVkRm9sZGVyfSBmb3IgYWNjb3VudCAke2VmZmVjdGl2ZUFjY291bnRJZH06YCwgZXJyKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcbiAgICBcbiAgICBjb25zb2xlLmxvZyhgQ29tcGxldGVkIHByZWZldGNoaW5nICR7cGFnZXN9IHBhZ2VzIGZvciAke25vcm1hbGl6ZWRGb2xkZXJ9IGluIGFjY291bnQgJHtlZmZlY3RpdmVBY2NvdW50SWR9YCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcihgRXJyb3IgZHVyaW5nIGZvbGRlciBwcmVmZXRjaDpgLCBlcnJvcik7XG4gIH0gZmluYWxseSB7XG4gICAgbWFya1ByZWZldGNoQ29tcGxldGVkKHVzZXJJZCwgcHJlZmV0Y2hLZXkpO1xuICB9XG59ICJdLCJuYW1lcyI6WyJnZXRDYWNoZWRFbWFpbHNXaXRoVGltZW91dCIsInJlZnJlc2hFbWFpbHNJbkJhY2tncm91bmQiLCJwcmVmZXRjaFVzZXJFbWFpbERhdGEiLCJwcmVmZXRjaEZvbGRlckVtYWlscyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/services/prefetch-service.ts\n")); /***/ }), /***/ "(app-pages-browser)/./lib/utils.ts": /*!**********************!*\ !*** ./lib/utils.ts ***! \**********************/ /***/ ((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 */ cn: () => (/* binding */ cn),\n/* harmony export */ formatDate: () => (/* binding */ formatDate)\n/* harmony export */ });\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! clsx */ \"(app-pages-browser)/./node_modules/clsx/dist/clsx.mjs\");\n/* harmony import */ var tailwind_merge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tailwind-merge */ \"(app-pages-browser)/./node_modules/tailwind-merge/dist/bundle-mjs.mjs\");\n\n\nfunction cn() {\n for(var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++){\n inputs[_key] = arguments[_key];\n }\n return (0,tailwind_merge__WEBPACK_IMPORTED_MODULE_1__.twMerge)((0,clsx__WEBPACK_IMPORTED_MODULE_0__.clsx)(inputs));\n}\nfunction formatDate(dateString) {\n try {\n const date = new Date(dateString);\n return new Intl.DateTimeFormat('en-US', {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric'\n }).format(date);\n } catch (e) {\n return '';\n }\n}\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi91dGlscy50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQTZDO0FBQ0o7QUFFbEMsU0FBU0U7SUFBRztRQUFHQyxPQUFILHVCQUF1Qjs7SUFDeEMsT0FBT0YsdURBQU9BLENBQUNELDBDQUFJQSxDQUFDRztBQUN0QjtBQUVPLFNBQVNDLFdBQVdDLFVBQWtCO0lBQzNDLElBQUk7UUFDRixNQUFNQyxPQUFPLElBQUlDLEtBQUtGO1FBQ3RCLE9BQU8sSUFBSUcsS0FBS0MsY0FBYyxDQUFDLFNBQVM7WUFDdENDLE9BQU87WUFDUEMsS0FBSztZQUNMQyxNQUFNO1FBQ1IsR0FBR0MsTUFBTSxDQUFDUDtJQUNaLEVBQUUsVUFBTTtRQUNOLE9BQU87SUFDVDtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2xpYi91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIENsYXNzVmFsdWUsIGNsc3ggfSBmcm9tIFwiY2xzeFwiO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gXCJ0YWlsd2luZC1tZXJnZVwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY24oLi4uaW5wdXRzOiBDbGFzc1ZhbHVlW10pIHtcbiAgcmV0dXJuIHR3TWVyZ2UoY2xzeChpbnB1dHMpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERhdGUoZGF0ZVN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoZGF0ZVN0cmluZyk7XG4gICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdlbi1VUycsIHtcbiAgICAgIG1vbnRoOiAnMi1kaWdpdCcsXG4gICAgICBkYXk6ICcyLWRpZ2l0JyxcbiAgICAgIHllYXI6ICdudW1lcmljJ1xuICAgIH0pLmZvcm1hdChkYXRlKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG5cbiJdLCJuYW1lcyI6WyJjbHN4IiwidHdNZXJnZSIsImNuIiwiaW5wdXRzIiwiZm9ybWF0RGF0ZSIsImRhdGVTdHJpbmciLCJkYXRlIiwiRGF0ZSIsIkludGwiLCJEYXRlVGltZUZvcm1hdCIsIm1vbnRoIiwiZGF5IiwieWVhciIsImZvcm1hdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/utils.ts\n")); /***/ }), /***/ "(app-pages-browser)/./lib/utils/dom-purify-config.ts": /*!****************************************!*\ !*** ./lib/utils/dom-purify-config.ts ***! \****************************************/ /***/ ((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 */ getDOMPurify: () => (/* binding */ getDOMPurify),\n/* harmony export */ sanitizeHtml: () => (/* binding */ sanitizeHtml)\n/* harmony export */ });\n/* harmony import */ var isomorphic_dompurify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! isomorphic-dompurify */ \"(app-pages-browser)/./node_modules/isomorphic-dompurify/browser.js\");\n/* harmony import */ var isomorphic_dompurify__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(isomorphic_dompurify__WEBPACK_IMPORTED_MODULE_0__);\n/**\n * CENTRALIZED DOMPURIFY CONFIGURATION\n * \n * This file provides a consistent, centralized configuration for DOMPurify\n * used throughout the application. All components that need to sanitize HTML\n * should import from this file instead of configuring DOMPurify directly.\n */ \n// Reset any existing hooks to start with a clean slate\nisomorphic_dompurify__WEBPACK_IMPORTED_MODULE_0___default().removeAllHooks();\n// Configure DOMPurify with settings appropriate for email content\nisomorphic_dompurify__WEBPACK_IMPORTED_MODULE_0___default().setConfig({\n ADD_TAGS: [\n 'html',\n 'head',\n 'body',\n 'style',\n 'link',\n 'meta',\n 'title',\n 'table',\n 'caption',\n 'col',\n 'colgroup',\n 'thead',\n 'tbody',\n 'tfoot',\n 'tr',\n 'td',\n 'th',\n 'div',\n 'span',\n 'img',\n 'br',\n 'hr',\n 'section',\n 'article',\n 'header',\n 'footer',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'p',\n 'blockquote',\n 'pre',\n 'code',\n 'ul',\n 'ol',\n 'li',\n 'dl',\n 'dt',\n 'dd',\n 'a',\n 'b',\n 'i',\n 'u',\n 'em',\n 'strong',\n 'del',\n 'ins',\n 'mark',\n 'small',\n 'sub',\n 'sup',\n 'q',\n 'abbr',\n 'font' // Allow legacy font tag often found in emails\n ],\n ADD_ATTR: [\n 'style',\n 'class',\n 'id',\n 'name',\n 'href',\n 'src',\n 'alt',\n 'title',\n 'width',\n 'height',\n 'border',\n 'cellspacing',\n 'cellpadding',\n 'bgcolor',\n 'background',\n 'color',\n 'align',\n 'valign',\n 'dir',\n 'lang',\n 'target',\n 'rel',\n 'charset',\n 'media',\n 'colspan',\n 'rowspan',\n 'scope',\n 'span',\n 'size',\n 'face',\n 'hspace',\n 'vspace',\n 'data-*',\n 'start',\n 'type',\n 'value',\n 'cite',\n 'datetime',\n 'wrap',\n 'summary'\n ],\n KEEP_CONTENT: true,\n WHOLE_DOCUMENT: false,\n ALLOW_DATA_ATTR: true,\n ALLOW_UNKNOWN_PROTOCOLS: true,\n FORBID_TAGS: [\n 'script',\n 'iframe',\n 'object',\n 'embed',\n 'form',\n 'input',\n 'button',\n 'select',\n 'textarea'\n ],\n FORBID_ATTR: [\n 'onerror',\n 'onload',\n 'onclick',\n 'onmouseover',\n 'onmouseout'\n ],\n FORCE_BODY: false,\n USE_PROFILES: {\n html: true\n } // Use HTML profile for more permissive sanitization for emails\n});\n/**\n * Sanitizes HTML content with the centralized DOMPurify configuration\n * @param html HTML content to sanitize\n * @returns Sanitized HTML\n */ function sanitizeHtml(html) {\n if (!html) return '';\n try {\n // Use DOMPurify with our central configuration\n const clean = isomorphic_dompurify__WEBPACK_IMPORTED_MODULE_0___default().sanitize(html, {\n ADD_ATTR: [\n 'style',\n 'class',\n 'id',\n 'align',\n 'valign',\n 'colspan',\n 'rowspan',\n 'cellspacing',\n 'cellpadding',\n 'bgcolor'\n ]\n });\n // Fix common email rendering issues\n const fixedHtml = clean// Fix for Outlook WebVML content\n .replace(/';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n}\nvar purify = createDOMPurify();\n\nmodule.exports = purify;\n//# sourceMappingURL=purify.cjs.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9kb21wdXJpZnkvZGlzdC9wdXJpZnkuY2pzLmpzIiwibWFwcGluZ3MiOiJBQUFBOztBQUVhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsVUFBVTtBQUNaO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyRkFBMkYsYUFBYTtBQUN4RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxlQUFlO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixzQkFBc0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNB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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQztBQUNsQyxxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWLFFBQVE7QUFDUjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsUUFBUTtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDO0FBQzFDLG9GQUFvRiw2REFBNkQ7QUFDako7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxVEFBcVQ7QUFDclQ7QUFDQTtBQUNBO0FBQ0EsTUFBTSx3Q0FBd0Msb0ZBQW9GLG9LQUFvSyxpSEFBaUg7QUFDdlo7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sb0NBQW9DO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUM7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL2RvbXB1cmlmeS9kaXN0L3B1cmlmeS5janMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyohIEBsaWNlbnNlIERPTVB1cmlmeSAzLjIuNSB8IChjKSBDdXJlNTMgYW5kIG90aGVyIGNvbnRyaWJ1dG9ycyB8IFJlbGVhc2VkIHVuZGVyIHRoZSBBcGFjaGUgbGljZW5zZSAyLjAgYW5kIE1vemlsbGEgUHVibGljIExpY2Vuc2UgMi4wIHwgZ2l0aHViLmNvbS9jdXJlNTMvRE9NUHVyaWZ5L2Jsb2IvMy4yLjUvTElDRU5TRSAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmNvbnN0IHtcbiAgZW50cmllcyxcbiAgc2V0UHJvdG90eXBlT2YsXG4gIGlzRnJvemVuLFxuICBnZXRQcm90b3R5cGVPZixcbiAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yXG59ID0gT2JqZWN0O1xubGV0IHtcbiAgZnJlZXplLFxuICBzZWFsLFxuICBjcmVhdGVcbn0gPSBPYmplY3Q7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgaW1wb3J0L25vLW11dGFibGUtZXhwb3J0c1xubGV0IHtcbiAgYXBwbHksXG4gIGNvbnN0cnVjdFxufSA9IHR5cGVvZiBSZWZsZWN0ICE9PSAndW5kZWZpbmVkJyAmJiBSZWZsZWN0O1xuaWYgKCFmcmVlemUpIHtcbiAgZnJlZXplID0gZnVuY3Rpb24gZnJlZXplKHgpIHtcbiAgICByZXR1cm4geDtcbiAgfTtcbn1cbmlmICghc2VhbCkge1xuICBzZWFsID0gZnVuY3Rpb24gc2VhbCh4KSB7XG4gICAgcmV0dXJuIHg7XG4gIH07XG59XG5pZiAoIWFwcGx5KSB7XG4gIGFwcGx5ID0gZnVuY3Rpb24gYXBwbHkoZnVuLCB0aGlzVmFsdWUsIGFyZ3MpIHtcbiAgICByZXR1cm4gZnVuLmFwcGx5KHRoaXNWYWx1ZSwgYXJncyk7XG4gIH07XG59XG5pZiAoIWNvbnN0cnVjdCkge1xuICBjb25zdHJ1Y3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3QoRnVuYywgYXJncykge1xuICAgIHJldHVybiBuZXcgRnVuYyguLi5hcmdzKTtcbiAgfTtcbn1cbmNvbnN0IGFycmF5Rm9yRWFjaCA9IHVuYXBwbHkoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpO1xuY29uc3QgYXJyYXlMYXN0SW5kZXhPZiA9IHVuYXBwbHkoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKTtcbmNvbnN0IGFycmF5UG9wID0gdW5hcHBseShBcnJheS5wcm90b3R5cGUucG9wKTtcbmNvbnN0IGFycmF5UHVzaCA9IHVuYXBwbHkoQXJyYXkucHJvdG90eXBlLnB1c2gpO1xuY29uc3QgYXJyYXlTcGxpY2UgPSB1bmFwcGx5KEFycmF5LnByb3RvdHlwZS5zcGxpY2UpO1xuY29uc3Qgc3RyaW5nVG9Mb3dlckNhc2UgPSB1bmFwcGx5KFN0cmluZy5wcm90b3R5cGUudG9Mb3dlckNhc2UpO1xuY29uc3Qgc3RyaW5nVG9TdHJpbmcgPSB1bmFwcGx5KFN0cmluZy5wcm90b3R5cGUudG9TdHJpbmcpO1xuY29uc3Qgc3RyaW5nTWF0Y2ggPSB1bmFwcGx5KFN0cmluZy5wcm90b3R5cGUubWF0Y2gpO1xuY29uc3Qgc3RyaW5nUmVwbGFjZSA9IHVuYXBwbHkoU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlKTtcbmNvbnN0IHN0cmluZ0luZGV4T2YgPSB1bmFwcGx5KFN0cmluZy5wcm90b3R5cGUuaW5kZXhPZik7XG5jb25zdCBzdHJpbmdUcmltID0gdW5hcHBseShTdHJpbmcucHJvdG90eXBlLnRyaW0pO1xuY29uc3Qgb2JqZWN0SGFzT3duUHJvcGVydHkgPSB1bmFwcGx5KE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpO1xuY29uc3QgcmVnRXhwVGVzdCA9IHVuYXBwbHkoUmVnRXhwLnByb3RvdHlwZS50ZXN0KTtcbmNvbnN0IHR5cGVFcnJvckNyZWF0ZSA9IHVuY29uc3RydWN0KFR5cGVFcnJvcik7XG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgZnVuY3Rpb24gdGhhdCBjYWxscyB0aGUgZ2l2ZW4gZnVuY3Rpb24gd2l0aCBhIHNwZWNpZmllZCB0aGlzQXJnIGFuZCBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGZ1bmMgLSBUaGUgZnVuY3Rpb24gdG8gYmUgd3JhcHBlZCBhbmQgY2FsbGVkLlxuICogQHJldHVybnMgQSBuZXcgZnVuY3Rpb24gdGhhdCBjYWxscyB0aGUgZ2l2ZW4gZnVuY3Rpb24gd2l0aCBhIHNwZWNpZmllZCB0aGlzQXJnIGFuZCBhcmd1bWVudHMuXG4gKi9cbmZ1bmN0aW9uIHVuYXBwbHkoZnVuYykge1xuICByZXR1cm4gZnVuY3Rpb24gKHRoaXNBcmcpIHtcbiAgICBpZiAodGhpc0FyZyBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgdGhpc0FyZy5sYXN0SW5kZXggPSAwO1xuICAgIH1cbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIGFwcGx5KGZ1bmMsIHRoaXNBcmcsIGFyZ3MpO1xuICB9O1xufVxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGZ1bmN0aW9uIHRoYXQgY29uc3RydWN0cyBhbiBpbnN0YW5jZSBvZiB0aGUgZ2l2ZW4gY29uc3RydWN0b3IgZnVuY3Rpb24gd2l0aCB0aGUgcHJvdmlkZWQgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBmdW5jIC0gVGhlIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIHRvIGJlIHdyYXBwZWQgYW5kIGNhbGxlZC5cbiAqIEByZXR1cm5zIEEgbmV3IGZ1bmN0aW9uIHRoYXQgY29uc3RydWN0cyBhbiBpbnN0YW5jZSBvZiB0aGUgZ2l2ZW4gY29uc3RydWN0b3IgZnVuY3Rpb24gd2l0aCB0aGUgcHJvdmlkZWQgYXJndW1lbnRzLlxuICovXG5mdW5jdGlvbiB1bmNvbnN0cnVjdChmdW5jKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yKSwgX2tleTIgPSAwOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICBhcmdzW19rZXkyXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgfVxuICAgIHJldHVybiBjb25zdHJ1Y3QoZnVuYywgYXJncyk7XG4gIH07XG59XG4vKipcbiAqIEFkZCBwcm9wZXJ0aWVzIHRvIGEgbG9va3VwIHRhYmxlXG4gKlxuICogQHBhcmFtIHNldCAtIFRoZSBzZXQgdG8gd2hpY2ggZWxlbWVudHMgd2lsbCBiZSBhZGRlZC5cbiAqIEBwYXJhbSBhcnJheSAtIFRoZSBhcnJheSBjb250YWluaW5nIGVsZW1lbnRzIHRvIGJlIGFkZGVkIHRvIHRoZSBzZXQuXG4gKiBAcGFyYW0gdHJhbnNmb3JtQ2FzZUZ1bmMgLSBBbiBvcHRpb25hbCBmdW5jdGlvbiB0byB0cmFuc2Zvcm0gdGhlIGNhc2Ugb2YgZWFjaCBlbGVtZW50IGJlZm9yZSBhZGRpbmcgdG8gdGhlIHNldC5cbiAqIEByZXR1cm5zIFRoZSBtb2RpZmllZCBzZXQgd2l0aCBhZGRlZCBlbGVtZW50cy5cbiAqL1xuZnVuY3Rpb24gYWRkVG9TZXQoc2V0LCBhcnJheSkge1xuICBsZXQgdHJhbnNmb3JtQ2FzZUZ1bmMgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IHN0cmluZ1RvTG93ZXJDYXNlO1xuICBpZiAoc2V0UHJvdG90eXBlT2YpIHtcbiAgICAvLyBNYWtlICdpbicgYW5kIHRydXRoeSBjaGVja3MgbGlrZSBCb29sZWFuKHNldC5jb25zdHJ1Y3RvcilcbiAgICAvLyBpbmRlcGVuZGVudCBvZiBhbnkgcHJvcGVydGllcyBkZWZpbmVkIG9uIE9iamVjdC5wcm90b3R5cGUuXG4gICAgLy8gUHJldmVudCBwcm90b3R5cGUgc2V0dGVycyBmcm9tIGludGVyY2VwdGluZyBzZXQgYXMgYSB0aGlzIHZhbHVlLlxuICAgIHNldFByb3RvdHlwZU9mKHNldCwgbnVsbCk7XG4gIH1cbiAgbGV0IGwgPSBhcnJheS5sZW5ndGg7XG4gIHdoaWxlIChsLS0pIHtcbiAgICBsZXQgZWxlbWVudCA9IGFycmF5W2xdO1xuICAgIGlmICh0eXBlb2YgZWxlbWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IGxjRWxlbWVudCA9IHRyYW5zZm9ybUNhc2VGdW5jKGVsZW1lbnQpO1xuICAgICAgaWYgKGxjRWxlbWVudCAhPT0gZWxlbWVudCkge1xuICAgICAgICAvLyBDb25maWcgcHJlc2V0cyAoZS5nLiB0YWdzLmpzLCBhdHRycy5qcykgYXJlIGltbXV0YWJsZS5cbiAgICAgICAgaWYgKCFpc0Zyb3plbihhcnJheSkpIHtcbiAgICAgICAgICBhcnJheVtsXSA9IGxjRWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBlbGVtZW50ID0gbGNFbGVtZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBzZXRbZWxlbWVudF0gPSB0cnVlO1xuICB9XG4gIHJldHVybiBzZXQ7XG59XG4vKipcbiAqIENsZWFuIHVwIGFuIGFycmF5IHRvIGhhcmRlbiBhZ2FpbnN0IENTUFBcbiAqXG4gKiBAcGFyYW0gYXJyYXkgLSBUaGUgYXJyYXkgdG8gYmUgY2xlYW5lZC5cbiAqIEByZXR1cm5zIFRoZSBjbGVhbmVkIHZlcnNpb24gb2YgdGhlIGFycmF5XG4gKi9cbmZ1bmN0aW9uIGNsZWFuQXJyYXkoYXJyYXkpIHtcbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgIGNvbnN0IGlzUHJvcGVydHlFeGlzdCA9IG9iamVjdEhhc093blByb3BlcnR5KGFycmF5LCBpbmRleCk7XG4gICAgaWYgKCFpc1Byb3BlcnR5RXhpc3QpIHtcbiAgICAgIGFycmF5W2luZGV4XSA9IG51bGw7XG4gICAgfVxuICB9XG4gIHJldHVybiBhcnJheTtcbn1cbi8qKlxuICogU2hhbGxvdyBjbG9uZSBhbiBvYmplY3RcbiAqXG4gKiBAcGFyYW0gb2JqZWN0IC0gVGhlIG9iamVjdCB0byBiZSBjbG9uZWQuXG4gKiBAcmV0dXJucyBBIG5ldyBvYmplY3QgdGhhdCBjb3BpZXMgdGhlIG9yaWdpbmFsLlxuICovXG5mdW5jdGlvbiBjbG9uZShvYmplY3QpIHtcbiAgY29uc3QgbmV3T2JqZWN0ID0gY3JlYXRlKG51bGwpO1xuICBmb3IgKGNvbnN0IFtwcm9wZXJ0eSwgdmFsdWVdIG9mIGVudHJpZXMob2JqZWN0KSkge1xuICAgIGNvbnN0IGlzUHJvcGVydHlFeGlzdCA9IG9iamVjdEhhc093blByb3BlcnR5KG9iamVjdCwgcHJvcGVydHkpO1xuICAgIGlmIChpc1Byb3BlcnR5RXhpc3QpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICBuZXdPYmplY3RbcHJvcGVydHldID0gY2xlYW5BcnJheSh2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUuY29uc3RydWN0b3IgPT09IE9iamVjdCkge1xuICAgICAgICBuZXdPYmplY3RbcHJvcGVydHldID0gY2xvbmUodmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3T2JqZWN0W3Byb3BlcnR5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gbmV3T2JqZWN0O1xufVxuLyoqXG4gKiBUaGlzIG1ldGhvZCBhdXRvbWF0aWNhbGx5IGNoZWNrcyBpZiB0aGUgcHJvcCBpcyBmdW5jdGlvbiBvciBnZXR0ZXIgYW5kIGJlaGF2ZXMgYWNjb3JkaW5nbHkuXG4gKlxuICogQHBhcmFtIG9iamVjdCAtIFRoZSBvYmplY3QgdG8gbG9vayB1cCB0aGUgZ2V0dGVyIGZ1bmN0aW9uIGluIGl0cyBwcm90b3R5cGUgY2hhaW4uXG4gKiBAcGFyYW0gcHJvcCAtIFRoZSBwcm9wZXJ0eSBuYW1lIGZvciB3aGljaCB0byBmaW5kIHRoZSBnZXR0ZXIgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBUaGUgZ2V0dGVyIGZ1bmN0aW9uIGZvdW5kIGluIHRoZSBwcm90b3R5cGUgY2hhaW4gb3IgYSBmYWxsYmFjayBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gbG9va3VwR2V0dGVyKG9iamVjdCwgcHJvcCkge1xuICB3aGlsZSAob2JqZWN0ICE9PSBudWxsKSB7XG4gICAgY29uc3QgZGVzYyA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHByb3ApO1xuICAgIGlmIChkZXNjKSB7XG4gICAgICBpZiAoZGVzYy5nZXQpIHtcbiAgICAgICAgcmV0dXJuIHVuYXBwbHkoZGVzYy5nZXQpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBkZXNjLnZhbHVlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB1bmFwcGx5KGRlc2MudmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBvYmplY3QgPSBnZXRQcm90b3R5cGVPZihvYmplY3QpO1xuICB9XG4gIGZ1bmN0aW9uIGZhbGxiYWNrVmFsdWUoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIGZhbGxiYWNrVmFsdWU7XG59XG5cbmNvbnN0IGh0bWwkMSA9IGZyZWV6ZShbJ2EnLCAnYWJicicsICdhY3JvbnltJywgJ2FkZHJlc3MnLCAnYXJlYScsICdhcnRpY2xlJywgJ2FzaWRlJywgJ2F1ZGlvJywgJ2InLCAnYmRpJywgJ2JkbycsICdiaWcnLCAnYmxpbmsnLCAnYmxvY2txdW90ZScsICdib2R5JywgJ2JyJywgJ2J1dHRvbicsICdjYW52YXMnLCAnY2FwdGlvbicsICdjZW50ZXInLCAnY2l0ZScsICdjb2RlJywgJ2NvbCcsICdjb2xncm91cCcsICdjb250ZW50JywgJ2RhdGEnLCAnZGF0YWxpc3QnLCAnZGQnLCAnZGVjb3JhdG9yJywgJ2RlbCcsICdkZXRhaWxzJywgJ2RmbicsICdkaWFsb2cnLCAnZGlyJywgJ2RpdicsICdkbCcsICdkdCcsICdlbGVtZW50JywgJ2VtJywgJ2ZpZWxkc2V0JywgJ2ZpZ2NhcHRpb24nLCAnZmlndXJlJywgJ2ZvbnQnLCAnZm9vdGVyJywgJ2Zvcm0nLCAnaDEnLCAnaDInLCAnaDMnLCAnaDQnLCAnaDUnLCAnaDYnLCAnaGVhZCcsICdoZWFkZXInLCAnaGdyb3VwJywgJ2hyJywgJ2h0bWwnLCAnaScsICdpbWcnLCAnaW5wdXQnLCAnaW5zJywgJ2tiZCcsICdsYWJlbCcsICdsZWdlbmQnLCAnbGknLCAnbWFpbicsICdtYXAnLCAnbWFyaycsICdtYXJxdWVlJywgJ21lbnUnLCAnbWVudWl0ZW0nLCAnbWV0ZXInLCAnbmF2JywgJ25vYnInLCAnb2wnLCAnb3B0Z3JvdXAnLCAnb3B0aW9uJywgJ291dHB1dCcsICdwJywgJ3BpY3R1cmUnLCAncHJlJywgJ3Byb2dyZXNzJywgJ3EnLCAncnAnLCAncnQnLCAncnVieScsICdzJywgJ3NhbXAnLCAnc2VjdGlvbicsICdzZWxlY3QnLCAnc2hhZG93JywgJ3NtYWxsJywgJ3NvdXJjZScsICdzcGFjZXInLCAnc3BhbicsICdzdHJpa2UnLCAnc3Ryb25nJywgJ3N0eWxlJywgJ3N1YicsICdzdW1tYXJ5JywgJ3N1cCcsICd0YWJsZScsICd0Ym9keScsICd0ZCcsICd0ZW1wbGF0ZScsICd0ZXh0YXJlYScsICd0Zm9vdCcsICd0aCcsICd0aGVhZCcsICd0aW1lJywgJ3RyJywgJ3RyYWNrJywgJ3R0JywgJ3UnLCAndWwnLCAndmFyJywgJ3ZpZGVvJywgJ3diciddKTtcbmNvbnN0IHN2ZyQxID0gZnJlZXplKFsnc3ZnJywgJ2EnLCAnYWx0Z2x5cGgnLCAnYWx0Z2x5cGhkZWYnLCAnYWx0Z2x5cGhpdGVtJywgJ2FuaW1hdGVjb2xvcicsICdhbmltYXRlbW90aW9uJywgJ2FuaW1hdGV0cmFuc2Zvcm0nLCAnY2lyY2xlJywgJ2NsaXBwYXRoJywgJ2RlZnMnLCAnZGVzYycsICdlbGxpcHNlJywgJ2ZpbHRlcicsICdmb250JywgJ2cnLCAnZ2x5cGgnLCAnZ2x5cGhyZWYnLCAnaGtlcm4nLCAnaW1hZ2UnLCAnbGluZScsICdsaW5lYXJncmFkaWVudCcsICdtYXJrZXInLCAnbWFzaycsICdtZXRhZGF0YScsICdtcGF0aCcsICdwYXRoJywgJ3BhdHRlcm4nLCAncG9seWdvbicsICdwb2x5bGluZScsICdyYWRpYWxncmFkaWVudCcsICdyZWN0JywgJ3N0b3AnLCAnc3R5bGUnLCAnc3dpdGNoJywgJ3N5bWJvbCcsICd0ZXh0JywgJ3RleHRwYXRoJywgJ3RpdGxlJywgJ3RyZWYnLCAndHNwYW4nLCAndmlldycsICd2a2VybiddKTtcbmNvbnN0IHN2Z0ZpbHRlcnMgPSBmcmVlemUoWydmZUJsZW5kJywgJ2ZlQ29sb3JNYXRyaXgnLCAnZmVDb21wb25lbnRUcmFuc2ZlcicsICdmZUNvbXBvc2l0ZScsICdmZUNvbnZvbHZlTWF0cml4JywgJ2ZlRGlmZnVzZUxpZ2h0aW5nJywgJ2ZlRGlzcGxhY2VtZW50TWFwJywgJ2ZlRGlzdGFudExpZ2h0JywgJ2ZlRHJvcFNoYWRvdycsICdmZUZsb29kJywgJ2ZlRnVuY0EnLCAnZmVGdW5jQicsICdmZUZ1bmNHJywgJ2ZlRnVuY1InLCAnZmVHYXVzc2lhbkJsdXInLCAnZmVJbWFnZScsICdmZU1lcmdlJywgJ2ZlTWVyZ2VOb2RlJywgJ2ZlTW9ycGhvbG9neScsICdmZU9mZnNldCcsICdmZVBvaW50TGlnaHQnLCAnZmVTcGVjdWxhckxpZ2h0aW5nJywgJ2ZlU3BvdExpZ2h0JywgJ2ZlVGlsZScsICdmZVR1cmJ1bGVuY2UnXSk7XG4vLyBMaXN0IG9mIFNWRyBlbGVtZW50cyB0aGF0IGFyZSBkaXNhbGxvd2VkIGJ5IGRlZmF1bHQuXG4vLyBXZSBzdGlsbCBuZWVkIHRvIGtub3cgdGhlbSBzbyB0aGF0IHdlIGNhbiBkbyBuYW1lc3BhY2Vcbi8vIGNoZWNrcyBwcm9wZXJseSBpbiBjYXNlIG9uZSB3YW50cyB0byBhZGQgdGhlbSB0b1xuLy8gYWxsb3ctbGlzdC5cbmNvbnN0IHN2Z0Rpc2FsbG93ZWQgPSBmcmVlemUoWydhbmltYXRlJywgJ2NvbG9yLXByb2ZpbGUnLCAnY3Vyc29yJywgJ2Rpc2NhcmQnLCAnZm9udC1mYWNlJywgJ2ZvbnQtZmFjZS1mb3JtYXQnLCAnZm9udC1mYWNlLW5hbWUnLCAnZm9udC1mYWNlLXNyYycsICdmb250LWZhY2UtdXJpJywgJ2ZvcmVpZ25vYmplY3QnLCAnaGF0Y2gnLCAnaGF0Y2hwYXRoJywgJ21lc2gnLCAnbWVzaGdyYWRpZW50JywgJ21lc2hwYXRjaCcsICdtZXNocm93JywgJ21pc3NpbmctZ2x5cGgnLCAnc2NyaXB0JywgJ3NldCcsICdzb2xpZGNvbG9yJywgJ3Vua25vd24nLCAndXNlJ10pO1xuY29uc3QgbWF0aE1sJDEgPSBmcmVlemUoWydtYXRoJywgJ21lbmNsb3NlJywgJ21lcnJvcicsICdtZmVuY2VkJywgJ21mcmFjJywgJ21nbHlwaCcsICdtaScsICdtbGFiZWxlZHRyJywgJ21tdWx0aXNjcmlwdHMnLCAnbW4nLCAnbW8nLCAnbW92ZXInLCAnbXBhZGRlZCcsICdtcGhhbnRvbScsICdtcm9vdCcsICdtcm93JywgJ21zJywgJ21zcGFjZScsICdtc3FydCcsICdtc3R5bGUnLCAnbXN1YicsICdtc3VwJywgJ21zdWJzdXAnLCAnbXRhYmxlJywgJ210ZCcsICdtdGV4dCcsICdtdHInLCAnbXVuZGVyJywgJ211bmRlcm92ZXInLCAnbXByZXNjcmlwdHMnXSk7XG4vLyBTaW1pbGFybHkgdG8gU1ZHLCB3ZSB3YW50IHRvIGtub3cgYWxsIE1hdGhNTCBlbGVtZW50cyxcbi8vIGV2ZW4gdGhvc2UgdGhhdCB3ZSBkaXNhbGxvdyBieSBkZWZhdWx0LlxuY29uc3QgbWF0aE1sRGlzYWxsb3dlZCA9IGZyZWV6ZShbJ21hY3Rpb24nLCAnbWFsaWduZ3JvdXAnLCAnbWFsaWdubWFyaycsICdtbG9uZ2RpdicsICdtc2NhcnJpZXMnLCAnbXNjYXJyeScsICdtc2dyb3VwJywgJ21zdGFjaycsICdtc2xpbmUnLCAnbXNyb3cnLCAnc2VtYW50aWNzJywgJ2Fubm90YXRpb24nLCAnYW5ub3RhdGlvbi14bWwnLCAnbXByZXNjcmlwdHMnLCAnbm9uZSddKTtcbmNvbnN0IHRleHQgPSBmcmVlemUoWycjdGV4dCddKTtcblxuY29uc3QgaHRtbCA9IGZyZWV6ZShbJ2FjY2VwdCcsICdhY3Rpb24nLCAnYWxpZ24nLCAnYWx0JywgJ2F1dG9jYXBpdGFsaXplJywgJ2F1dG9jb21wbGV0ZScsICdhdXRvcGljdHVyZWlucGljdHVyZScsICdhdXRvcGxheScsICdiYWNrZ3JvdW5kJywgJ2JnY29sb3InLCAnYm9yZGVyJywgJ2NhcHR1cmUnLCAnY2VsbHBhZGRpbmcnLCAnY2VsbHNwYWNpbmcnLCAnY2hlY2tlZCcsICdjaXRlJywgJ2NsYXNzJywgJ2NsZWFyJywgJ2NvbG9yJywgJ2NvbHMnLCAnY29sc3BhbicsICdjb250cm9scycsICdjb250cm9sc2xpc3QnLCAnY29vcmRzJywgJ2Nyb3Nzb3JpZ2luJywgJ2RhdGV0aW1lJywgJ2RlY29kaW5nJywgJ2RlZmF1bHQnLCAnZGlyJywgJ2Rpc2FibGVkJywgJ2Rpc2FibGVwaWN0dXJlaW5waWN0dXJlJywgJ2Rpc2FibGVyZW1vdGVwbGF5YmFjaycsICdkb3dubG9hZCcsICdkcmFnZ2FibGUnLCAnZW5jdHlwZScsICdlbnRlcmtleWhpbnQnLCAnZmFjZScsICdmb3InLCAnaGVhZGVycycsICdoZWlnaHQnLCAnaGlkZGVuJywgJ2hpZ2gnLCAnaHJlZicsICdocmVmbGFuZycsICdpZCcsICdpbnB1dG1vZGUnLCAnaW50ZWdyaXR5JywgJ2lzbWFwJywgJ2tpbmQnLCAnbGFiZWwnLCAnbGFuZycsICdsaXN0JywgJ2xvYWRpbmcnLCAnbG9vcCcsICdsb3cnLCAnbWF4JywgJ21heGxlbmd0aCcsICdtZWRpYScsICdtZXRob2QnLCAnbWluJywgJ21pbmxlbmd0aCcsICdtdWx0aXBsZScsICdtdXRlZCcsICduYW1lJywgJ25vbmNlJywgJ25vc2hhZGUnLCAnbm92YWxpZGF0ZScsICdub3dyYXAnLCAnb3BlbicsICdvcHRpbXVtJywgJ3BhdHRlcm4nLCAncGxhY2Vob2xkZXInLCAncGxheXNpbmxpbmUnLCAncG9wb3ZlcicsICdwb3BvdmVydGFyZ2V0JywgJ3BvcG92ZXJ0YXJnZXRhY3Rpb24nLCAncG9zdGVyJywgJ3ByZWxvYWQnLCAncHViZGF0ZScsICdyYWRpb2dyb3VwJywgJ3JlYWRvbmx5JywgJ3JlbCcsICdyZXF1aXJlZCcsICdyZXYnLCAncmV2ZXJzZWQnLCAncm9sZScsICdyb3dzJywgJ3Jvd3NwYW4nLCAnc3BlbGxjaGVjaycsICdzY29wZScsICdzZWxlY3RlZCcsICdzaGFwZScsICdzaXplJywgJ3NpemVzJywgJ3NwYW4nLCAnc3JjbGFuZycsICdzdGFydCcsICdzcmMnLCAnc3Jjc2V0JywgJ3N0ZXAnLCAnc3R5bGUnLCAnc3VtbWFyeScsICd0YWJpbmRleCcsICd0aXRsZScsICd0cmFuc2xhdGUnLCAndHlwZScsICd1c2VtYXAnLCAndmFsaWduJywgJ3ZhbHVlJywgJ3dpZHRoJywgJ3dyYXAnLCAneG1sbnMnLCAnc2xvdCddKTtcbmNvbnN0IHN2ZyA9IGZyZWV6ZShbJ2FjY2VudC1oZWlnaHQnLCAnYWNjdW11bGF0ZScsICdhZGRpdGl2ZScsICdhbGlnbm1lbnQtYmFzZWxpbmUnLCAnYW1wbGl0dWRlJywgJ2FzY2VudCcsICdhdHRyaWJ1dGVuYW1lJywgJ2F0dHJpYnV0ZXR5cGUnLCAnYXppbXV0aCcsICdiYXNlZnJlcXVlbmN5JywgJ2Jhc2VsaW5lLXNoaWZ0JywgJ2JlZ2luJywgJ2JpYXMnLCAnYnknLCAnY2xhc3MnLCAnY2xpcCcsICdjbGlwcGF0aHVuaXRzJywgJ2NsaXAtcGF0aCcsICdjbGlwLXJ1bGUnLCAnY29sb3InLCAnY29sb3ItaW50ZXJwb2xhdGlvbicsICdjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMnLCAnY29sb3ItcHJvZmlsZScsICdjb2xvci1yZW5kZXJpbmcnLCAnY3gnLCAnY3knLCAnZCcsICdkeCcsICdkeScsICdkaWZmdXNlY29uc3RhbnQnLCAnZGlyZWN0aW9uJywgJ2Rpc3BsYXknLCAnZGl2aXNvcicsICdkdXInLCAnZWRnZW1vZGUnLCAnZWxldmF0aW9uJywgJ2VuZCcsICdleHBvbmVudCcsICdmaWxsJywgJ2ZpbGwtb3BhY2l0eScsICdmaWxsLXJ1bGUnLCAnZmlsdGVyJywgJ2ZpbHRlcnVuaXRzJywgJ2Zsb29kLWNvbG9yJywgJ2Zsb29kLW9wYWNpdHknLCAnZm9udC1mYW1pbHknLCAnZm9udC1zaXplJywgJ2ZvbnQtc2l6ZS1hZGp1c3QnLCAnZm9udC1zdHJldGNoJywgJ2ZvbnQtc3R5bGUnLCAnZm9udC12YXJpYW50JywgJ2ZvbnQtd2VpZ2h0JywgJ2Z4JywgJ2Z5JywgJ2cxJywgJ2cyJywgJ2dseXBoLW5hbWUnLCAnZ2x5cGhyZWYnLCAnZ3JhZGllbnR1bml0cycsICdncmFkaWVudHRyYW5zZm9ybScsICdoZWlnaHQnLCAnaHJlZicsICdpZCcsICdpbWFnZS1yZW5kZXJpbmcnLCAnaW4nLCAnaW4yJywgJ2ludGVyY2VwdCcsICdrJywgJ2sxJywgJ2syJywgJ2szJywgJ2s0JywgJ2tlcm5pbmcnLCAna2V5cG9pbnRzJywgJ2tleXNwbGluZXMnLCAna2V5dGltZXMnLCAnbGFuZycsICdsZW5ndGhhZGp1c3QnLCAnbGV0dGVyLXNwYWNpbmcnLCAna2VybmVsbWF0cml4JywgJ2tlcm5lbHVuaXRsZW5ndGgnLCAnbGlnaHRpbmctY29sb3InLCAnbG9jYWwnLCAnbWFya2VyLWVuZCcsICdtYXJrZXItbWlkJywgJ21hcmtlci1zdGFydCcsICdtYXJrZXJoZWlnaHQnLCAnbWFya2VydW5pdHMnLCAnbWFya2Vyd2lkdGgnLCAnbWFza2NvbnRlbnR1bml0cycsICdtYXNrdW5pdHMnLCAnbWF4JywgJ21hc2snLCAnbWVkaWEnLCAnbWV0aG9kJywgJ21vZGUnLCAnbWluJywgJ25hbWUnLCAnbnVtb2N0YXZlcycsICdvZmZzZXQnLCAnb3BlcmF0b3InLCAnb3BhY2l0eScsICdvcmRlcicsICdvcmllbnQnLCAnb3JpZW50YXRpb24nLCAnb3JpZ2luJywgJ292ZXJmbG93JywgJ3BhaW50LW9yZGVyJywgJ3BhdGgnLCAncGF0aGxlbmd0aCcsICdwYXR0ZXJuY29udGVudHVuaXRzJywgJ3BhdHRlcm50cmFuc2Zvcm0nLCAncGF0dGVybnVuaXRzJywgJ3BvaW50cycsICdwcmVzZXJ2ZWFscGhhJywgJ3ByZXNlcnZlYXNwZWN0cmF0aW8nLCAncHJpbWl0aXZldW5pdHMnLCAncicsICdyeCcsICdyeScsICdyYWRpdXMnLCAncmVmeCcsICdyZWZ5JywgJ3JlcGVhdGNvdW50JywgJ3JlcGVhdGR1cicsICdyZXN0YXJ0JywgJ3Jlc3VsdCcsICdyb3RhdGUnLCAnc2NhbGUnLCAnc2VlZCcsICdzaGFwZS1yZW5kZXJpbmcnLCAnc2xvcGUnLCAnc3BlY3VsYXJjb25zdGFudCcsICdzcGVjdWxhcmV4cG9uZW50JywgJ3NwcmVhZG1ldGhvZCcsICdzdGFydG9mZnNldCcsICdzdGRkZXZpYXRpb24nLCAnc3RpdGNodGlsZXMnLCAnc3RvcC1jb2xvcicsICdzdG9wLW9wYWNpdHknLCAnc3Ryb2tlLWRhc2hhcnJheScsICdzdHJva2UtZGFzaG9mZnNldCcsICdzdHJva2UtbGluZWNhcCcsICdzdHJva2UtbGluZWpvaW4nLCAnc3Ryb2tlLW1pdGVybGltaXQnLCAnc3Ryb2tlLW9wYWNpdHknLCAnc3Ryb2tlJywgJ3N0cm9rZS13aWR0aCcsICdzdHlsZScsICdzdXJmYWNlc2NhbGUnLCAnc3lzdGVtbGFuZ3VhZ2UnLCAndGFiaW5kZXgnLCAndGFibGV2YWx1ZXMnLCAndGFyZ2V0eCcsICd0YXJnZXR5JywgJ3RyYW5zZm9ybScsICd0cmFuc2Zvcm0tb3JpZ2luJywgJ3RleHQtYW5jaG9yJywgJ3RleHQtZGVjb3JhdGlvbicsICd0ZXh0LXJlbmRlcmluZycsICd0ZXh0bGVuZ3RoJywgJ3R5cGUnLCAndTEnLCAndTInLCAndW5pY29kZScsICd2YWx1ZXMnLCAndmlld2JveCcsICd2aXNpYmlsaXR5JywgJ3ZlcnNpb24nLCAndmVydC1hZHYteScsICd2ZXJ0LW9yaWdpbi14JywgJ3ZlcnQtb3JpZ2luLXknLCAnd2lkdGgnLCAnd29yZC1zcGFjaW5nJywgJ3dyYXAnLCAnd3JpdGluZy1tb2RlJywgJ3hjaGFubmVsc2VsZWN0b3InLCAneWNoYW5uZWxzZWxlY3RvcicsICd4JywgJ3gxJywgJ3gyJywgJ3htbG5zJywgJ3knLCAneTEnLCAneTInLCAneicsICd6b29tYW5kcGFuJ10pO1xuY29uc3QgbWF0aE1sID0gZnJlZXplKFsnYWNjZW50JywgJ2FjY2VudHVuZGVyJywgJ2FsaWduJywgJ2JldmVsbGVkJywgJ2Nsb3NlJywgJ2NvbHVtbnNhbGlnbicsICdjb2x1bW5saW5lcycsICdjb2x1bW5zcGFuJywgJ2Rlbm9tYWxpZ24nLCAnZGVwdGgnLCAnZGlyJywgJ2Rpc3BsYXknLCAnZGlzcGxheXN0eWxlJywgJ2VuY29kaW5nJywgJ2ZlbmNlJywgJ2ZyYW1lJywgJ2hlaWdodCcsICdocmVmJywgJ2lkJywgJ2xhcmdlb3AnLCAnbGVuZ3RoJywgJ2xpbmV0aGlja25lc3MnLCAnbHNwYWNlJywgJ2xxdW90ZScsICdtYXRoYmFja2dyb3VuZCcsICdtYXRoY29sb3InLCAnbWF0aHNpemUnLCAnbWF0aHZhcmlhbnQnLCAnbWF4c2l6ZScsICdtaW5zaXplJywgJ21vdmFibGVsaW1pdHMnLCAnbm90YXRpb24nLCAnbnVtYWxpZ24nLCAnb3BlbicsICdyb3dhbGlnbicsICdyb3dsaW5lcycsICdyb3dzcGFjaW5nJywgJ3Jvd3NwYW4nLCAncnNwYWNlJywgJ3JxdW90ZScsICdzY3JpcHRsZXZlbCcsICdzY3JpcHRtaW5zaXplJywgJ3NjcmlwdHNpemVtdWx0aXBsaWVyJywgJ3NlbGVjdGlvbicsICdzZXBhcmF0b3InLCAnc2VwYXJhdG9ycycsICdzdHJldGNoeScsICdzdWJzY3JpcHRzaGlmdCcsICdzdXBzY3JpcHRzaGlmdCcsICdzeW1tZXRyaWMnLCAndm9mZnNldCcsICd3aWR0aCcsICd4bWxucyddKTtcbmNvbnN0IHhtbCA9IGZyZWV6ZShbJ3hsaW5rOmhyZWYnLCAneG1sOmlkJywgJ3hsaW5rOnRpdGxlJywgJ3htbDpzcGFjZScsICd4bWxuczp4bGluayddKTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vYmV0dGVyLXJlZ2V4XG5jb25zdCBNVVNUQUNIRV9FWFBSID0gc2VhbCgvXFx7XFx7W1xcd1xcV10qfFtcXHdcXFddKlxcfVxcfS9nbSk7IC8vIFNwZWNpZnkgdGVtcGxhdGUgZGV0ZWN0aW9uIHJlZ2V4IGZvciBTQUZFX0ZPUl9URU1QTEFURVMgbW9kZVxuY29uc3QgRVJCX0VYUFIgPSBzZWFsKC88JVtcXHdcXFddKnxbXFx3XFxXXSolPi9nbSk7XG5jb25zdCBUTVBMSVRfRVhQUiA9IHNlYWwoL1xcJFxce1tcXHdcXFddKi9nbSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgdW5pY29ybi9iZXR0ZXItcmVnZXhcbmNvbnN0IERBVEFfQVRUUiA9IHNlYWwoL15kYXRhLVtcXC1cXHcuXFx1MDBCNy1cXHVGRkZGXSskLyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdXNlbGVzcy1lc2NhcGVcbmNvbnN0IEFSSUFfQVRUUiA9IHNlYWwoL15hcmlhLVtcXC1cXHddKyQvKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11c2VsZXNzLWVzY2FwZVxuY29uc3QgSVNfQUxMT1dFRF9VUkkgPSBzZWFsKC9eKD86KD86KD86ZnxodCl0cHM/fG1haWx0b3x0ZWx8Y2FsbHRvfHNtc3xjaWR8eG1wcCk6fFteYS16XXxbYS16Ky5cXC1dKyg/OlteYS16Ky5cXC06XXwkKSkvaSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVzZWxlc3MtZXNjYXBlXG4pO1xuY29uc3QgSVNfU0NSSVBUX09SX0RBVEEgPSBzZWFsKC9eKD86XFx3K3NjcmlwdHxkYXRhKTovaSk7XG5jb25zdCBBVFRSX1dISVRFU1BBQ0UgPSBzZWFsKC9bXFx1MDAwMC1cXHUwMDIwXFx1MDBBMFxcdTE2ODBcXHUxODBFXFx1MjAwMC1cXHUyMDI5XFx1MjA1RlxcdTMwMDBdL2cgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb250cm9sLXJlZ2V4XG4pO1xuY29uc3QgRE9DVFlQRV9OQU1FID0gc2VhbCgvXmh0bWwkL2kpO1xuY29uc3QgQ1VTVE9NX0VMRU1FTlQgPSBzZWFsKC9eW2Etel1bLlxcd10qKC1bLlxcd10rKSskL2kpO1xuXG52YXIgRVhQUkVTU0lPTlMgPSAvKiNfX1BVUkVfXyovT2JqZWN0LmZyZWV6ZSh7XG4gIF9fcHJvdG9fXzogbnVsbCxcbiAgQVJJQV9BVFRSOiBBUklBX0FUVFIsXG4gIEFUVFJfV0hJVEVTUEFDRTogQVRUUl9XSElURVNQQUNFLFxuICBDVVNUT01fRUxFTUVOVDogQ1VTVE9NX0VMRU1FTlQsXG4gIERBVEFfQVRUUjogREFUQV9BVFRSLFxuICBET0NUWVBFX05BTUU6IERPQ1RZUEVfTkFNRSxcbiAgRVJCX0VYUFI6IEVSQl9FWFBSLFxuICBJU19BTExPV0VEX1VSSTogSVNfQUxMT1dFRF9VUkksXG4gIElTX1NDUklQVF9PUl9EQVRBOiBJU19TQ1JJUFRfT1JfREFUQSxcbiAgTVVTVEFDSEVfRVhQUjogTVVTVEFDSEVfRVhQUixcbiAgVE1QTElUX0VYUFI6IFRNUExJVF9FWFBSXG59KTtcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL05vZGUvbm9kZVR5cGVcbmNvbnN0IE5PREVfVFlQRSA9IHtcbiAgZWxlbWVudDogMSxcbiAgYXR0cmlidXRlOiAyLFxuICB0ZXh0OiAzLFxuICBjZGF0YVNlY3Rpb246IDQsXG4gIGVudGl0eVJlZmVyZW5jZTogNSxcbiAgLy8gRGVwcmVjYXRlZFxuICBlbnRpdHlOb2RlOiA2LFxuICAvLyBEZXByZWNhdGVkXG4gIHByb2dyZXNzaW5nSW5zdHJ1Y3Rpb246IDcsXG4gIGNvbW1lbnQ6IDgsXG4gIGRvY3VtZW50OiA5LFxuICBkb2N1bWVudFR5cGU6IDEwLFxuICBkb2N1bWVudEZyYWdtZW50OiAxMSxcbiAgbm90YXRpb246IDEyIC8vIERlcHJlY2F0ZWRcbn07XG5jb25zdCBnZXRHbG9iYWwgPSBmdW5jdGlvbiBnZXRHbG9iYWwoKSB7XG4gIHJldHVybiB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/IG51bGwgOiB3aW5kb3c7XG59O1xuLyoqXG4gKiBDcmVhdGVzIGEgbm8tb3AgcG9saWN5IGZvciBpbnRlcm5hbCB1c2Ugb25seS5cbiAqIERvbid0IGV4cG9ydCB0aGlzIGZ1bmN0aW9uIG91dHNpZGUgdGhpcyBtb2R1bGUhXG4gKiBAcGFyYW0gdHJ1c3RlZFR5cGVzIFRoZSBwb2xpY3kgZmFjdG9yeS5cbiAqIEBwYXJhbSBwdXJpZnlIb3N0RWxlbWVudCBUaGUgU2NyaXB0IGVsZW1lbnQgdXNlZCB0byBsb2FkIERPTVB1cmlmeSAodG8gZGV0ZXJtaW5lIHBvbGljeSBuYW1lIHN1ZmZpeCkuXG4gKiBAcmV0dXJuIFRoZSBwb2xpY3kgY3JlYXRlZCAob3IgbnVsbCwgaWYgVHJ1c3RlZCBUeXBlc1xuICogYXJlIG5vdCBzdXBwb3J0ZWQgb3IgY3JlYXRpbmcgdGhlIHBvbGljeSBmYWlsZWQpLlxuICovXG5jb25zdCBfY3JlYXRlVHJ1c3RlZFR5cGVzUG9saWN5ID0gZnVuY3Rpb24gX2NyZWF0ZVRydXN0ZWRUeXBlc1BvbGljeSh0cnVzdGVkVHlwZXMsIHB1cmlmeUhvc3RFbGVtZW50KSB7XG4gIGlmICh0eXBlb2YgdHJ1c3RlZFR5cGVzICE9PSAnb2JqZWN0JyB8fCB0eXBlb2YgdHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIC8vIEFsbG93IHRoZSBjYWxsZXJzIHRvIGNvbnRyb2wgdGhlIHVuaXF1ZSBwb2xpY3kgbmFtZVxuICAvLyBieSBhZGRpbmcgYSBkYXRhLXR0LXBvbGljeS1zdWZmaXggdG8gdGhlIHNjcmlwdCBlbGVtZW50IHdpdGggdGhlIERPTVB1cmlmeS5cbiAgLy8gUG9saWN5IGNyZWF0aW9uIHdpdGggZHVwbGljYXRlIG5hbWVzIHRocm93cyBpbiBUcnVzdGVkIFR5cGVzLlxuICBsZXQgc3VmZml4ID0gbnVsbDtcbiAgY29uc3QgQVRUUl9OQU1FID0gJ2RhdGEtdHQtcG9saWN5LXN1ZmZpeCc7XG4gIGlmIChwdXJpZnlIb3N0RWxlbWVudCAmJiBwdXJpZnlIb3N0RWxlbWVudC5oYXNBdHRyaWJ1dGUoQVRUUl9OQU1FKSkge1xuICAgIHN1ZmZpeCA9IHB1cmlmeUhvc3RFbGVtZW50LmdldEF0dHJpYnV0ZShBVFRSX05BTUUpO1xuICB9XG4gIGNvbnN0IHBvbGljeU5hbWUgPSAnZG9tcHVyaWZ5JyArIChzdWZmaXggPyAnIycgKyBzdWZmaXggOiAnJyk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHRydXN0ZWRUeXBlcy5jcmVhdGVQb2xpY3kocG9saWN5TmFtZSwge1xuICAgICAgY3JlYXRlSFRNTChodG1sKSB7XG4gICAgICAgIHJldHVybiBodG1sO1xuICAgICAgfSxcbiAgICAgIGNyZWF0ZVNjcmlwdFVSTChzY3JpcHRVcmwpIHtcbiAgICAgICAgcmV0dXJuIHNjcmlwdFVybDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSBjYXRjaCAoXykge1xuICAgIC8vIFBvbGljeSBjcmVhdGlvbiBmYWlsZWQgKG1vc3QgbGlrZWx5IGFub3RoZXIgRE9NUHVyaWZ5IHNjcmlwdCBoYXNcbiAgICAvLyBhbHJlYWR5IHJ1bikuIFNraXAgY3JlYXRpbmcgdGhlIHBvbGljeSwgYXMgdGhpcyB3aWxsIG9ubHkgY2F1c2UgZXJyb3JzXG4gICAgLy8gaWYgVFQgYXJlIGVuZm9yY2VkLlxuICAgIGNvbnNvbGUud2FybignVHJ1c3RlZFR5cGVzIHBvbGljeSAnICsgcG9saWN5TmFtZSArICcgY291bGQgbm90IGJlIGNyZWF0ZWQuJyk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn07XG5jb25zdCBfY3JlYXRlSG9va3NNYXAgPSBmdW5jdGlvbiBfY3JlYXRlSG9va3NNYXAoKSB7XG4gIHJldHVybiB7XG4gICAgYWZ0ZXJTYW5pdGl6ZUF0dHJpYnV0ZXM6IFtdLFxuICAgIGFmdGVyU2FuaXRpemVFbGVtZW50czogW10sXG4gICAgYWZ0ZXJTYW5pdGl6ZVNoYWRvd0RPTTogW10sXG4gICAgYmVmb3JlU2FuaXRpemVBdHRyaWJ1dGVzOiBbXSxcbiAgICBiZWZvcmVTYW5pdGl6ZUVsZW1lbnRzOiBbXSxcbiAgICBiZWZvcmVTYW5pdGl6ZVNoYWRvd0RPTTogW10sXG4gICAgdXBvblNhbml0aXplQXR0cmlidXRlOiBbXSxcbiAgICB1cG9uU2FuaXRpemVFbGVtZW50OiBbXSxcbiAgICB1cG9uU2FuaXRpemVTaGFkb3dOb2RlOiBbXVxuICB9O1xufTtcbmZ1bmN0aW9uIGNyZWF0ZURPTVB1cmlmeSgpIHtcbiAgbGV0IHdpbmRvdyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogZ2V0R2xvYmFsKCk7XG4gIGNvbnN0IERPTVB1cmlmeSA9IHJvb3QgPT4gY3JlYXRlRE9NUHVyaWZ5KHJvb3QpO1xuICBET01QdXJpZnkudmVyc2lvbiA9ICczLjIuNSc7XG4gIERPTVB1cmlmeS5yZW1vdmVkID0gW107XG4gIGlmICghd2luZG93IHx8ICF3aW5kb3cuZG9jdW1lbnQgfHwgd2luZG93LmRvY3VtZW50Lm5vZGVUeXBlICE9PSBOT0RFX1RZUEUuZG9jdW1lbnQgfHwgIXdpbmRvdy5FbGVtZW50KSB7XG4gICAgLy8gTm90IHJ1bm5pbmcgaW4gYSBicm93c2VyLCBwcm92aWRlIGEgZmFjdG9yeSBmdW5jdGlvblxuICAgIC8vIHNvIHRoYXQgeW91IGNhbiBwYXNzIHlvdXIgb3duIFdpbmRvd1xuICAgIERPTVB1cmlmeS5pc1N1cHBvcnRlZCA9IGZhbHNlO1xuICAgIHJldHVybiBET01QdXJpZnk7XG4gIH1cbiAgbGV0IHtcbiAgICBkb2N1bWVudFxuICB9ID0gd2luZG93O1xuICBjb25zdCBvcmlnaW5hbERvY3VtZW50ID0gZG9jdW1lbnQ7XG4gIGNvbnN0IGN1cnJlbnRTY3JpcHQgPSBvcmlnaW5hbERvY3VtZW50LmN1cnJlbnRTY3JpcHQ7XG4gIGNvbnN0IHtcbiAgICBEb2N1bWVudEZyYWdtZW50LFxuICAgIEhUTUxUZW1wbGF0ZUVsZW1lbnQsXG4gICAgTm9kZSxcbiAgICBFbGVtZW50LFxuICAgIE5vZGVGaWx0ZXIsXG4gICAgTmFtZWROb2RlTWFwID0gd2luZG93Lk5hbWVkTm9kZU1hcCB8fCB3aW5kb3cuTW96TmFtZWRBdHRyTWFwLFxuICAgIEhUTUxGb3JtRWxlbWVudCxcbiAgICBET01QYXJzZXIsXG4gICAgdHJ1c3RlZFR5cGVzXG4gIH0gPSB3aW5kb3c7XG4gIGNvbnN0IEVsZW1lbnRQcm90b3R5cGUgPSBFbGVtZW50LnByb3RvdHlwZTtcbiAgY29uc3QgY2xvbmVOb2RlID0gbG9va3VwR2V0dGVyKEVsZW1lbnRQcm90b3R5cGUsICdjbG9uZU5vZGUnKTtcbiAgY29uc3QgcmVtb3ZlID0gbG9va3VwR2V0dGVyKEVsZW1lbnRQcm90b3R5cGUsICdyZW1vdmUnKTtcbiAgY29uc3QgZ2V0TmV4dFNpYmxpbmcgPSBsb29rdXBHZXR0ZXIoRWxlbWVudFByb3RvdHlwZSwgJ25leHRTaWJsaW5nJyk7XG4gIGNvbnN0IGdldENoaWxkTm9kZXMgPSBsb29rdXBHZXR0ZXIoRWxlbWVudFByb3RvdHlwZSwgJ2NoaWxkTm9kZXMnKTtcbiAgY29uc3QgZ2V0UGFyZW50Tm9kZSA9IGxvb2t1cEdldHRlcihFbGVtZW50UHJvdG90eXBlLCAncGFyZW50Tm9kZScpO1xuICAvLyBBcyBwZXIgaXNzdWUgIzQ3LCB0aGUgd2ViLWNvbXBvbmVudHMgcmVnaXN0cnkgaXMgaW5oZXJpdGVkIGJ5IGFcbiAgLy8gbmV3IGRvY3VtZW50IGNyZWF0ZWQgdmlhIGNyZWF0ZUhUTUxEb2N1bWVudC4gQXMgcGVyIHRoZSBzcGVjXG4gIC8vIChodHRwOi8vdzNjLmdpdGh1Yi5pby93ZWJjb21wb25lbnRzL3NwZWMvY3VzdG9tLyNjcmVhdGluZy1hbmQtcGFzc2luZy1yZWdpc3RyaWVzKVxuICAvLyBhIG5ldyBlbXB0eSByZWdpc3RyeSBpcyB1c2VkIHdoZW4gY3JlYXRpbmcgYSB0ZW1wbGF0ZSBjb250ZW50cyBvd25lclxuICAvLyBkb2N1bWVudCwgc28gd2UgdXNlIHRoYXQgYXMgb3VyIHBhcmVudCBkb2N1bWVudCB0byBlbnN1cmUgbm90aGluZ1xuICAvLyBpcyBpbmhlcml0ZWQuXG4gIGlmICh0eXBlb2YgSFRNTFRlbXBsYXRlRWxlbWVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnN0IHRlbXBsYXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGVtcGxhdGUnKTtcbiAgICBpZiAodGVtcGxhdGUuY29udGVudCAmJiB0ZW1wbGF0ZS5jb250ZW50Lm93bmVyRG9jdW1lbnQpIHtcbiAgICAgIGRvY3VtZW50ID0gdGVtcGxhdGUuY29udGVudC5vd25lckRvY3VtZW50O1xuICAgIH1cbiAgfVxuICBsZXQgdHJ1c3RlZFR5cGVzUG9saWN5O1xuICBsZXQgZW1wdHlIVE1MID0gJyc7XG4gIGNvbnN0IHtcbiAgICBpbXBsZW1lbnRhdGlvbixcbiAgICBjcmVhdGVOb2RlSXRlcmF0b3IsXG4gICAgY3JlYXRlRG9jdW1lbnRGcmFnbWVudCxcbiAgICBnZXRFbGVtZW50c0J5VGFnTmFtZVxuICB9ID0gZG9jdW1lbnQ7XG4gIGNvbnN0IHtcbiAgICBpbXBvcnROb2RlXG4gIH0gPSBvcmlnaW5hbERvY3VtZW50O1xuICBsZXQgaG9va3MgPSBfY3JlYXRlSG9va3NNYXAoKTtcbiAgLyoqXG4gICAqIEV4cG9zZSB3aGV0aGVyIHRoaXMgYnJvd3NlciBzdXBwb3J0cyBydW5uaW5nIHRoZSBmdWxsIERPTVB1cmlmeS5cbiAgICovXG4gIERPTVB1cmlmeS5pc1N1cHBvcnRlZCA9IHR5cGVvZiBlbnRyaWVzID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBnZXRQYXJlbnROb2RlID09PSAnZnVuY3Rpb24nICYmIGltcGxlbWVudGF0aW9uICYmIGltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCAhPT0gdW5kZWZpbmVkO1xuICBjb25zdCB7XG4gICAgTVVTVEFDSEVfRVhQUixcbiAgICBFUkJfRVhQUixcbiAgICBUTVBMSVRfRVhQUixcbiAgICBEQVRBX0FUVFIsXG4gICAgQVJJQV9BVFRSLFxuICAgIElTX1NDUklQVF9PUl9EQVRBLFxuICAgIEFUVFJfV0hJVEVTUEFDRSxcbiAgICBDVVNUT01fRUxFTUVOVFxuICB9ID0gRVhQUkVTU0lPTlM7XG4gIGxldCB7XG4gICAgSVNfQUxMT1dFRF9VUkk6IElTX0FMTE9XRURfVVJJJDFcbiAgfSA9IEVYUFJFU1NJT05TO1xuICAvKipcbiAgICogV2UgY29uc2lkZXIgdGhlIGVsZW1lbnRzIGFuZCBhdHRyaWJ1dGVzIGJlbG93IHRvIGJlIHNhZmUuIElkZWFsbHlcbiAgICogZG9uJ3QgYWRkIGFueSBuZXcgb25lcyBidXQgZmVlbCBmcmVlIHRvIHJlbW92ZSB1bndhbnRlZCBvbmVzLlxuICAgKi9cbiAgLyogYWxsb3dlZCBlbGVtZW50IG5hbWVzICovXG4gIGxldCBBTExPV0VEX1RBR1MgPSBudWxsO1xuICBjb25zdCBERUZBVUxUX0FMTE9XRURfVEFHUyA9IGFkZFRvU2V0KHt9LCBbLi4uaHRtbCQxLCAuLi5zdmckMSwgLi4uc3ZnRmlsdGVycywgLi4ubWF0aE1sJDEsIC4uLnRleHRdKTtcbiAgLyogQWxsb3dlZCBhdHRyaWJ1dGUgbmFtZXMgKi9cbiAgbGV0IEFMTE9XRURfQVRUUiA9IG51bGw7XG4gIGNvbnN0IERFRkFVTFRfQUxMT1dFRF9BVFRSID0gYWRkVG9TZXQoe30sIFsuLi5odG1sLCAuLi5zdmcsIC4uLm1hdGhNbCwgLi4ueG1sXSk7XG4gIC8qXG4gICAqIENvbmZpZ3VyZSBob3cgRE9NUHVyaWZ5IHNob3VsZCBoYW5kbGUgY3VzdG9tIGVsZW1lbnRzIGFuZCB0aGVpciBhdHRyaWJ1dGVzIGFzIHdlbGwgYXMgY3VzdG9taXplZCBidWlsdC1pbiBlbGVtZW50cy5cbiAgICogQHByb3BlcnR5IHtSZWdFeHB8RnVuY3Rpb258bnVsbH0gdGFnTmFtZUNoZWNrIG9uZSBvZiBbbnVsbCwgcmVnZXhQYXR0ZXJuLCBwcmVkaWNhdGVdLiBEZWZhdWx0OiBgbnVsbGAgKGRpc2FsbG93IGFueSBjdXN0b20gZWxlbWVudHMpXG4gICAqIEBwcm9wZXJ0eSB7UmVnRXhwfEZ1bmN0aW9ufG51bGx9IGF0dHJpYnV0ZU5hbWVDaGVjayBvbmUgb2YgW251bGwsIHJlZ2V4UGF0dGVybiwgcHJlZGljYXRlXS4gRGVmYXVsdDogYG51bGxgIChkaXNhbGxvdyBhbnkgYXR0cmlidXRlcyBub3Qgb24gdGhlIGFsbG93IGxpc3QpXG4gICAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzIGFsbG93IGN1c3RvbSBlbGVtZW50cyBkZXJpdmVkIGZyb20gYnVpbHQtaW5zIGlmIHRoZXkgcGFzcyBDVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2suIERlZmF1bHQ6IGBmYWxzZWAuXG4gICAqL1xuICBsZXQgQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcgPSBPYmplY3Quc2VhbChjcmVhdGUobnVsbCwge1xuICAgIHRhZ05hbWVDaGVjazoge1xuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiBudWxsXG4gICAgfSxcbiAgICBhdHRyaWJ1dGVOYW1lQ2hlY2s6IHtcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICB2YWx1ZTogbnVsbFxuICAgIH0sXG4gICAgYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzOiB7XG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgdmFsdWU6IGZhbHNlXG4gICAgfVxuICB9KSk7XG4gIC8qIEV4cGxpY2l0bHkgZm9yYmlkZGVuIHRhZ3MgKG92ZXJyaWRlcyBBTExPV0VEX1RBR1MvQUREX1RBR1MpICovXG4gIGxldCBGT1JCSURfVEFHUyA9IG51bGw7XG4gIC8qIEV4cGxpY2l0bHkgZm9yYmlkZGVuIGF0dHJpYnV0ZXMgKG92ZXJyaWRlcyBBTExPV0VEX0FUVFIvQUREX0FUVFIpICovXG4gIGxldCBGT1JCSURfQVRUUiA9IG51bGw7XG4gIC8qIERlY2lkZSBpZiBBUklBIGF0dHJpYnV0ZXMgYXJlIG9rYXkgKi9cbiAgbGV0IEFMTE9XX0FSSUFfQVRUUiA9IHRydWU7XG4gIC8qIERlY2lkZSBpZiBjdXN0b20gZGF0YSBhdHRyaWJ1dGVzIGFyZSBva2F5ICovXG4gIGxldCBBTExPV19EQVRBX0FUVFIgPSB0cnVlO1xuICAvKiBEZWNpZGUgaWYgdW5rbm93biBwcm90b2NvbHMgYXJlIG9rYXkgKi9cbiAgbGV0IEFMTE9XX1VOS05PV05fUFJPVE9DT0xTID0gZmFsc2U7XG4gIC8qIERlY2lkZSBpZiBzZWxmLWNsb3NpbmcgdGFncyBpbiBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkLlxuICAgKiBVc3VhbGx5IHJlbW92ZWQgZHVlIHRvIGEgbVhTUyBpc3N1ZSBpbiBqUXVlcnkgMy4wICovXG4gIGxldCBBTExPV19TRUxGX0NMT1NFX0lOX0FUVFIgPSB0cnVlO1xuICAvKiBPdXRwdXQgc2hvdWxkIGJlIHNhZmUgZm9yIGNvbW1vbiB0ZW1wbGF0ZSBlbmdpbmVzLlxuICAgKiBUaGlzIG1lYW5zLCBET01QdXJpZnkgcmVtb3ZlcyBkYXRhIGF0dHJpYnV0ZXMsIG11c3RhY2hlcyBhbmQgRVJCXG4gICAqL1xuICBsZXQgU0FGRV9GT1JfVEVNUExBVEVTID0gZmFsc2U7XG4gIC8qIE91dHB1dCBzaG91bGQgYmUgc2FmZSBldmVuIGZvciBYTUwgdXNlZCB3aXRoaW4gSFRNTCBhbmQgYWxpa2UuXG4gICAqIFRoaXMgbWVhbnMsIERPTVB1cmlmeSByZW1vdmVzIGNvbW1lbnRzIHdoZW4gY29udGFpbmluZyByaXNreSBjb250ZW50LlxuICAgKi9cbiAgbGV0IFNBRkVfRk9SX1hNTCA9IHRydWU7XG4gIC8qIERlY2lkZSBpZiBkb2N1bWVudCB3aXRoIDxodG1sPi4uLiBzaG91bGQgYmUgcmV0dXJuZWQgKi9cbiAgbGV0IFdIT0xFX0RPQ1VNRU5UID0gZmFsc2U7XG4gIC8qIFRyYWNrIHdoZXRoZXIgY29uZmlnIGlzIGFscmVhZHkgc2V0IG9uIHRoaXMgaW5zdGFuY2Ugb2YgRE9NUHVyaWZ5LiAqL1xuICBsZXQgU0VUX0NPTkZJRyA9IGZhbHNlO1xuICAvKiBEZWNpZGUgaWYgYWxsIGVsZW1lbnRzIChlLmcuIHN0eWxlLCBzY3JpcHQpIG11c3QgYmUgY2hpbGRyZW4gb2ZcbiAgICogZG9jdW1lbnQuYm9keS4gQnkgZGVmYXVsdCwgYnJvd3NlcnMgbWlnaHQgbW92ZSB0aGVtIHRvIGRvY3VtZW50LmhlYWQgKi9cbiAgbGV0IEZPUkNFX0JPRFkgPSBmYWxzZTtcbiAgLyogRGVjaWRlIGlmIGEgRE9NIGBIVE1MQm9keUVsZW1lbnRgIHNob3VsZCBiZSByZXR1cm5lZCwgaW5zdGVhZCBvZiBhIGh0bWxcbiAgICogc3RyaW5nIChvciBhIFRydXN0ZWRIVE1MIG9iamVjdCBpZiBUcnVzdGVkIFR5cGVzIGFyZSBzdXBwb3J0ZWQpLlxuICAgKiBJZiBgV0hPTEVfRE9DVU1FTlRgIGlzIGVuYWJsZWQgYSBgSFRNTEh0bWxFbGVtZW50YCB3aWxsIGJlIHJldHVybmVkIGluc3RlYWRcbiAgICovXG4gIGxldCBSRVRVUk5fRE9NID0gZmFsc2U7XG4gIC8qIERlY2lkZSBpZiBhIERPTSBgRG9jdW1lbnRGcmFnbWVudGAgc2hvdWxkIGJlIHJldHVybmVkLCBpbnN0ZWFkIG9mIGEgaHRtbFxuICAgKiBzdHJpbmcgIChvciBhIFRydXN0ZWRIVE1MIG9iamVjdCBpZiBUcnVzdGVkIFR5cGVzIGFyZSBzdXBwb3J0ZWQpICovXG4gIGxldCBSRVRVUk5fRE9NX0ZSQUdNRU5UID0gZmFsc2U7XG4gIC8qIFRyeSB0byByZXR1cm4gYSBUcnVzdGVkIFR5cGUgb2JqZWN0IGluc3RlYWQgb2YgYSBzdHJpbmcsIHJldHVybiBhIHN0cmluZyBpblxuICAgKiBjYXNlIFRydXN0ZWQgVHlwZXMgYXJlIG5vdCBzdXBwb3J0ZWQgICovXG4gIGxldCBSRVRVUk5fVFJVU1RFRF9UWVBFID0gZmFsc2U7XG4gIC8qIE91dHB1dCBzaG91bGQgYmUgZnJlZSBmcm9tIERPTSBjbG9iYmVyaW5nIGF0dGFja3M/XG4gICAqIFRoaXMgc2FuaXRpemVzIG1hcmt1cHMgbmFtZWQgd2l0aCBjb2xsaWRpbmcsIGNsb2JiZXJhYmxlIGJ1aWx0LWluIERPTSBBUElzLlxuICAgKi9cbiAgbGV0IFNBTklUSVpFX0RPTSA9IHRydWU7XG4gIC8qIEFjaGlldmUgZnVsbCBET00gQ2xvYmJlcmluZyBwcm90ZWN0aW9uIGJ5IGlzb2xhdGluZyB0aGUgbmFtZXNwYWNlIG9mIG5hbWVkXG4gICAqIHByb3BlcnRpZXMgYW5kIEpTIHZhcmlhYmxlcywgbWl0aWdhdGluZyBhdHRhY2tzIHRoYXQgYWJ1c2UgdGhlIEhUTUwvRE9NIHNwZWMgcnVsZXMuXG4gICAqXG4gICAqIEhUTUwvRE9NIHNwZWMgcnVsZXMgdGhhdCBlbmFibGUgRE9NIENsb2JiZXJpbmc6XG4gICAqICAgLSBOYW1lZCBBY2Nlc3Mgb24gV2luZG93ICjCpzcuMy4zKVxuICAgKiAgIC0gRE9NIFRyZWUgQWNjZXNzb3JzICjCpzMuMS41KVxuICAgKiAgIC0gRm9ybSBFbGVtZW50IFBhcmVudC1DaGlsZCBSZWxhdGlvbnMgKMKnNC4xMC4zKVxuICAgKiAgIC0gSWZyYW1lIHNyY2RvYyAvIE5lc3RlZCBXaW5kb3dQcm94aWVzICjCpzQuOC41KVxuICAgKiAgIC0gSFRNTENvbGxlY3Rpb24gKMKnNC4yLjEwLjIpXG4gICAqXG4gICAqIE5hbWVzcGFjZSBpc29sYXRpb24gaXMgaW1wbGVtZW50ZWQgYnkgcHJlZml4aW5nIGBpZGAgYW5kIGBuYW1lYCBhdHRyaWJ1dGVzXG4gICAqIHdpdGggYSBjb25zdGFudCBzdHJpbmcsIGkuZS4sIGB1c2VyLWNvbnRlbnQtYFxuICAgKi9cbiAgbGV0IFNBTklUSVpFX05BTUVEX1BST1BTID0gZmFsc2U7XG4gIGNvbnN0IFNBTklUSVpFX05BTUVEX1BST1BTX1BSRUZJWCA9ICd1c2VyLWNvbnRlbnQtJztcbiAgLyogS2VlcCBlbGVtZW50IGNvbnRlbnQgd2hlbiByZW1vdmluZyBlbGVtZW50PyAqL1xuICBsZXQgS0VFUF9DT05URU5UID0gdHJ1ZTtcbiAgLyogSWYgYSBgTm9kZWAgaXMgcGFzc2VkIHRvIHNhbml0aXplKCksIHRoZW4gcGVyZm9ybXMgc2FuaXRpemF0aW9uIGluLXBsYWNlIGluc3RlYWRcbiAgICogb2YgaW1wb3J0aW5nIGl0IGludG8gYSBuZXcgRG9jdW1lbnQgYW5kIHJldHVybmluZyBhIHNhbml0aXplZCBjb3B5ICovXG4gIGxldCBJTl9QTEFDRSA9IGZhbHNlO1xuICAvKiBBbGxvdyB1c2FnZSBvZiBwcm9maWxlcyBsaWtlIGh0bWwsIHN2ZyBhbmQgbWF0aE1sICovXG4gIGxldCBVU0VfUFJPRklMRVMgPSB7fTtcbiAgLyogVGFncyB0byBpZ25vcmUgY29udGVudCBvZiB3aGVuIEtFRVBfQ09OVEVOVCBpcyB0cnVlICovXG4gIGxldCBGT1JCSURfQ09OVEVOVFMgPSBudWxsO1xuICBjb25zdCBERUZBVUxUX0ZPUkJJRF9DT05URU5UUyA9IGFkZFRvU2V0KHt9LCBbJ2Fubm90YXRpb24teG1sJywgJ2F1ZGlvJywgJ2NvbGdyb3VwJywgJ2Rlc2MnLCAnZm9yZWlnbm9iamVjdCcsICdoZWFkJywgJ2lmcmFtZScsICdtYXRoJywgJ21pJywgJ21uJywgJ21vJywgJ21zJywgJ210ZXh0JywgJ25vZW1iZWQnLCAnbm9mcmFtZXMnLCAnbm9zY3JpcHQnLCAncGxhaW50ZXh0JywgJ3NjcmlwdCcsICdzdHlsZScsICdzdmcnLCAndGVtcGxhdGUnLCAndGhlYWQnLCAndGl0bGUnLCAndmlkZW8nLCAneG1wJ10pO1xuICAvKiBUYWdzIHRoYXQgYXJlIHNhZmUgZm9yIGRhdGE6IFVSSXMgKi9cbiAgbGV0IERBVEFfVVJJX1RBR1MgPSBudWxsO1xuICBjb25zdCBERUZBVUxUX0RBVEFfVVJJX1RBR1MgPSBhZGRUb1NldCh7fSwgWydhdWRpbycsICd2aWRlbycsICdpbWcnLCAnc291cmNlJywgJ2ltYWdlJywgJ3RyYWNrJ10pO1xuICAvKiBBdHRyaWJ1dGVzIHNhZmUgZm9yIHZhbHVlcyBsaWtlIFwiamF2YXNjcmlwdDpcIiAqL1xuICBsZXQgVVJJX1NBRkVfQVRUUklCVVRFUyA9IG51bGw7XG4gIGNvbnN0IERFRkFVTFRfVVJJX1NBRkVfQVRUUklCVVRFUyA9IGFkZFRvU2V0KHt9LCBbJ2FsdCcsICdjbGFzcycsICdmb3InLCAnaWQnLCAnbGFiZWwnLCAnbmFtZScsICdwYXR0ZXJuJywgJ3BsYWNlaG9sZGVyJywgJ3JvbGUnLCAnc3VtbWFyeScsICd0aXRsZScsICd2YWx1ZScsICdzdHlsZScsICd4bWxucyddKTtcbiAgY29uc3QgTUFUSE1MX05BTUVTUEFDRSA9ICdodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MJztcbiAgY29uc3QgU1ZHX05BTUVTUEFDRSA9ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc7XG4gIGNvbnN0IEhUTUxfTkFNRVNQQUNFID0gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnO1xuICAvKiBEb2N1bWVudCBuYW1lc3BhY2UgKi9cbiAgbGV0IE5BTUVTUEFDRSA9IEhUTUxfTkFNRVNQQUNFO1xuICBsZXQgSVNfRU1QVFlfSU5QVVQgPSBmYWxzZTtcbiAgLyogQWxsb3dlZCBYSFRNTCtYTUwgbmFtZXNwYWNlcyAqL1xuICBsZXQgQUxMT1dFRF9OQU1FU1BBQ0VTID0gbnVsbDtcbiAgY29uc3QgREVGQVVMVF9BTExPV0VEX05BTUVTUEFDRVMgPSBhZGRUb1NldCh7fSwgW01BVEhNTF9OQU1FU1BBQ0UsIFNWR19OQU1FU1BBQ0UsIEhUTUxfTkFNRVNQQUNFXSwgc3RyaW5nVG9TdHJpbmcpO1xuICBsZXQgTUFUSE1MX1RFWFRfSU5URUdSQVRJT05fUE9JTlRTID0gYWRkVG9TZXQoe30sIFsnbWknLCAnbW8nLCAnbW4nLCAnbXMnLCAnbXRleHQnXSk7XG4gIGxldCBIVE1MX0lOVEVHUkFUSU9OX1BPSU5UUyA9IGFkZFRvU2V0KHt9LCBbJ2Fubm90YXRpb24teG1sJ10pO1xuICAvLyBDZXJ0YWluIGVsZW1lbnRzIGFyZSBhbGxvd2VkIGluIGJvdGggU1ZHIGFuZCBIVE1MXG4gIC8vIG5hbWVzcGFjZS4gV2UgbmVlZCB0byBzcGVjaWZ5IHRoZW0gZXhwbGljaXRseVxuICAvLyBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGVycm9uZW91c2x5IGRlbGV0ZWQgZnJvbVxuICAvLyBIVE1MIG5hbWVzcGFjZS5cbiAgY29uc3QgQ09NTU9OX1NWR19BTkRfSFRNTF9FTEVNRU5UUyA9IGFkZFRvU2V0KHt9LCBbJ3RpdGxlJywgJ3N0eWxlJywgJ2ZvbnQnLCAnYScsICdzY3JpcHQnXSk7XG4gIC8qIFBhcnNpbmcgb2Ygc3RyaWN0IFhIVE1MIGRvY3VtZW50cyAqL1xuICBsZXQgUEFSU0VSX01FRElBX1RZUEUgPSBudWxsO1xuICBjb25zdCBTVVBQT1JURURfUEFSU0VSX01FRElBX1RZUEVTID0gWydhcHBsaWNhdGlvbi94aHRtbCt4bWwnLCAndGV4dC9odG1sJ107XG4gIGNvbnN0IERFRkFVTFRfUEFSU0VSX01FRElBX1RZUEUgPSAndGV4dC9odG1sJztcbiAgbGV0IHRyYW5zZm9ybUNhc2VGdW5jID0gbnVsbDtcbiAgLyogS2VlcCBhIHJlZmVyZW5jZSB0byBjb25maWcgdG8gcGFzcyB0byBob29rcyAqL1xuICBsZXQgQ09ORklHID0gbnVsbDtcbiAgLyogSWRlYWxseSwgZG8gbm90IHRvdWNoIGFueXRoaW5nIGJlbG93IHRoaXMgbGluZSAqL1xuICAvKiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICovXG4gIGNvbnN0IGZvcm1FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpO1xuICBjb25zdCBpc1JlZ2V4T3JGdW5jdGlvbiA9IGZ1bmN0aW9uIGlzUmVnZXhPckZ1bmN0aW9uKHRlc3RWYWx1ZSkge1xuICAgIHJldHVybiB0ZXN0VmFsdWUgaW5zdGFuY2VvZiBSZWdFeHAgfHwgdGVzdFZhbHVlIGluc3RhbmNlb2YgRnVuY3Rpb247XG4gIH07XG4gIC8qKlxuICAgKiBfcGFyc2VDb25maWdcbiAgICpcbiAgICogQHBhcmFtIGNmZyBvcHRpb25hbCBjb25maWcgbGl0ZXJhbFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgY29uc3QgX3BhcnNlQ29uZmlnID0gZnVuY3Rpb24gX3BhcnNlQ29uZmlnKCkge1xuICAgIGxldCBjZmcgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICAgIGlmIChDT05GSUcgJiYgQ09ORklHID09PSBjZmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLyogU2hpZWxkIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZyb20gdGFtcGVyaW5nICovXG4gICAgaWYgKCFjZmcgfHwgdHlwZW9mIGNmZyAhPT0gJ29iamVjdCcpIHtcbiAgICAgIGNmZyA9IHt9O1xuICAgIH1cbiAgICAvKiBTaGllbGQgY29uZmlndXJhdGlvbiBvYmplY3QgZnJvbSBwcm90b3R5cGUgcG9sbHV0aW9uICovXG4gICAgY2ZnID0gY2xvbmUoY2ZnKTtcbiAgICBQQVJTRVJfTUVESUFfVFlQRSA9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vcHJlZmVyLWluY2x1ZGVzXG4gICAgU1VQUE9SVEVEX1BBUlNFUl9NRURJQV9UWVBFUy5pbmRleE9mKGNmZy5QQVJTRVJfTUVESUFfVFlQRSkgPT09IC0xID8gREVGQVVMVF9QQVJTRVJfTUVESUFfVFlQRSA6IGNmZy5QQVJTRVJfTUVESUFfVFlQRTtcbiAgICAvLyBIVE1MIHRhZ3MgYW5kIGF0dHJpYnV0ZXMgYXJlIG5vdCBjYXNlLXNlbnNpdGl2ZSwgY29udmVydGluZyB0byBsb3dlcmNhc2UuIEtlZXBpbmcgWEhUTUwgYXMgaXMuXG4gICAgdHJhbnNmb3JtQ2FzZUZ1bmMgPSBQQVJTRVJfTUVESUFfVFlQRSA9PT0gJ2FwcGxpY2F0aW9uL3hodG1sK3htbCcgPyBzdHJpbmdUb1N0cmluZyA6IHN0cmluZ1RvTG93ZXJDYXNlO1xuICAgIC8qIFNldCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgKi9cbiAgICBBTExPV0VEX1RBR1MgPSBvYmplY3RIYXNPd25Qcm9wZXJ0eShjZmcsICdBTExPV0VEX1RBR1MnKSA/IGFkZFRvU2V0KHt9LCBjZmcuQUxMT1dFRF9UQUdTLCB0cmFuc2Zvcm1DYXNlRnVuYykgOiBERUZBVUxUX0FMTE9XRURfVEFHUztcbiAgICBBTExPV0VEX0FUVFIgPSBvYmplY3RIYXNPd25Qcm9wZXJ0eShjZmcsICdBTExPV0VEX0FUVFInKSA/IGFkZFRvU2V0KHt9LCBjZmcuQUxMT1dFRF9BVFRSLCB0cmFuc2Zvcm1DYXNlRnVuYykgOiBERUZBVUxUX0FMTE9XRURfQVRUUjtcbiAgICBBTExPV0VEX05BTUVTUEFDRVMgPSBvYmplY3RIYXNPd25Qcm9wZXJ0eShjZmcsICdBTExPV0VEX05BTUVTUEFDRVMnKSA/IGFkZFRvU2V0KHt9LCBjZmcuQUxMT1dFRF9OQU1FU1BBQ0VTLCBzdHJpbmdUb1N0cmluZykgOiBERUZBVUxUX0FMTE9XRURfTkFNRVNQQUNFUztcbiAgICBVUklfU0FGRV9BVFRSSUJVVEVTID0gb2JqZWN0SGFzT3duUHJvcGVydHkoY2ZnLCAnQUREX1VSSV9TQUZFX0FUVFInKSA/IGFkZFRvU2V0KGNsb25lKERFRkFVTFRfVVJJX1NBRkVfQVRUUklCVVRFUyksIGNmZy5BRERfVVJJX1NBRkVfQVRUUiwgdHJhbnNmb3JtQ2FzZUZ1bmMpIDogREVGQVVMVF9VUklfU0FGRV9BVFRSSUJVVEVTO1xuICAgIERBVEFfVVJJX1RBR1MgPSBvYmplY3RIYXNPd25Qcm9wZXJ0eShjZmcsICdBRERfREFUQV9VUklfVEFHUycpID8gYWRkVG9TZXQoY2xvbmUoREVGQVVMVF9EQVRBX1VSSV9UQUdTKSwgY2ZnLkFERF9EQVRBX1VSSV9UQUdTLCB0cmFuc2Zvcm1DYXNlRnVuYykgOiBERUZBVUxUX0RBVEFfVVJJX1RBR1M7XG4gICAgRk9SQklEX0NPTlRFTlRTID0gb2JqZWN0SGFzT3duUHJvcGVydHkoY2ZnLCAnRk9SQklEX0NPTlRFTlRTJykgPyBhZGRUb1NldCh7fSwgY2ZnLkZPUkJJRF9DT05URU5UUywgdHJhbnNmb3JtQ2FzZUZ1bmMpIDogREVGQVVMVF9GT1JCSURfQ09OVEVOVFM7XG4gICAgRk9SQklEX1RBR1MgPSBvYmplY3RIYXNPd25Qcm9wZXJ0eShjZmcsICdGT1JCSURfVEFHUycpID8gYWRkVG9TZXQoe30sIGNmZy5GT1JCSURfVEFHUywgdHJhbnNmb3JtQ2FzZUZ1bmMpIDoge307XG4gICAgRk9SQklEX0FUVFIgPSBvYmplY3RIYXNPd25Qcm9wZXJ0eShjZmcsICdGT1JCSURfQVRUUicpID8gYWRkVG9TZXQoe30sIGNmZy5GT1JCSURfQVRUUiwgdHJhbnNmb3JtQ2FzZUZ1bmMpIDoge307XG4gICAgVVNFX1BST0ZJTEVTID0gb2JqZWN0SGFzT3duUHJvcGVydHkoY2ZnLCAnVVNFX1BST0ZJTEVTJykgPyBjZmcuVVNFX1BST0ZJTEVTIDogZmFsc2U7XG4gICAgQUxMT1dfQVJJQV9BVFRSID0gY2ZnLkFMTE9XX0FSSUFfQVRUUiAhPT0gZmFsc2U7IC8vIERlZmF1bHQgdHJ1ZVxuICAgIEFMTE9XX0RBVEFfQVRUUiA9IGNmZy5BTExPV19EQVRBX0FUVFIgIT09IGZhbHNlOyAvLyBEZWZhdWx0IHRydWVcbiAgICBBTExPV19VTktOT1dOX1BST1RPQ09MUyA9IGNmZy5BTExPV19VTktOT1dOX1BST1RPQ09MUyB8fCBmYWxzZTsgLy8gRGVmYXVsdCBmYWxzZVxuICAgIEFMTE9XX1NFTEZfQ0xPU0VfSU5fQVRUUiA9IGNmZy5BTExPV19TRUxGX0NMT1NFX0lOX0FUVFIgIT09IGZhbHNlOyAvLyBEZWZhdWx0IHRydWVcbiAgICBTQUZFX0ZPUl9URU1QTEFURVMgPSBjZmcuU0FGRV9GT1JfVEVNUExBVEVTIHx8IGZhbHNlOyAvLyBEZWZhdWx0IGZhbHNlXG4gICAgU0FGRV9GT1JfWE1MID0gY2ZnLlNBRkVfRk9SX1hNTCAhPT0gZmFsc2U7IC8vIERlZmF1bHQgdHJ1ZVxuICAgIFdIT0xFX0RPQ1VNRU5UID0gY2ZnLldIT0xFX0RPQ1VNRU5UIHx8IGZhbHNlOyAvLyBEZWZhdWx0IGZhbHNlXG4gICAgUkVUVVJOX0RPTSA9IGNmZy5SRVRVUk5fRE9NIHx8IGZhbHNlOyAvLyBEZWZhdWx0IGZhbHNlXG4gICAgUkVUVVJOX0RPTV9GUkFHTUVOVCA9IGNmZy5SRVRVUk5fRE9NX0ZSQUdNRU5UIHx8IGZhbHNlOyAvLyBEZWZhdWx0IGZhbHNlXG4gICAgUkVUVVJOX1RSVVNURURfVFlQRSA9IGNmZy5SRVRVUk5fVFJVU1RFRF9UWVBFIHx8IGZhbHNlOyAvLyBEZWZhdWx0IGZhbHNlXG4gICAgRk9SQ0VfQk9EWSA9IGNmZy5GT1JDRV9CT0RZIHx8IGZhbHNlOyAvLyBEZWZhdWx0IGZhbHNlXG4gICAgU0FOSVRJWkVfRE9NID0gY2ZnLlNBTklUSVpFX0RPTSAhPT0gZmFsc2U7IC8vIERlZmF1bHQgdHJ1ZVxuICAgIFNBTklUSVpFX05BTUVEX1BST1BTID0gY2ZnLlNBTklUSVpFX05BTUVEX1BST1BTIHx8IGZhbHNlOyAvLyBEZWZhdWx0IGZhbHNlXG4gICAgS0VFUF9DT05URU5UID0gY2ZnLktFRVBfQ09OVEVOVCAhPT0gZmFsc2U7IC8vIERlZmF1bHQgdHJ1ZVxuICAgIElOX1BMQUNFID0gY2ZnLklOX1BMQUNFIHx8IGZhbHNlOyAvLyBEZWZhdWx0IGZhbHNlXG4gICAgSVNfQUxMT1dFRF9VUkkkMSA9IGNmZy5BTExPV0VEX1VSSV9SRUdFWFAgfHwgSVNfQUxMT1dFRF9VUkk7XG4gICAgTkFNRVNQQUNFID0gY2ZnLk5BTUVTUEFDRSB8fCBIVE1MX05BTUVTUEFDRTtcbiAgICBNQVRITUxfVEVYVF9JTlRFR1JBVElPTl9QT0lOVFMgPSBjZmcuTUFUSE1MX1RFWFRfSU5URUdSQVRJT05fUE9JTlRTIHx8IE1BVEhNTF9URVhUX0lOVEVHUkFUSU9OX1BPSU5UUztcbiAgICBIVE1MX0lOVEVHUkFUSU9OX1BPSU5UUyA9IGNmZy5IVE1MX0lOVEVHUkFUSU9OX1BPSU5UUyB8fCBIVE1MX0lOVEVHUkFUSU9OX1BPSU5UUztcbiAgICBDVVNUT01fRUxFTUVOVF9IQU5ETElORyA9IGNmZy5DVVNUT01fRUxFTUVOVF9IQU5ETElORyB8fCB7fTtcbiAgICBpZiAoY2ZnLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HICYmIGlzUmVnZXhPckZ1bmN0aW9uKGNmZy5DVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2spKSB7XG4gICAgICBDVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2sgPSBjZmcuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrO1xuICAgIH1cbiAgICBpZiAoY2ZnLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HICYmIGlzUmVnZXhPckZ1bmN0aW9uKGNmZy5DVVNUT01fRUxFTUVOVF9IQU5ETElORy5hdHRyaWJ1dGVOYW1lQ2hlY2spKSB7XG4gICAgICBDVVNUT01fRUxFTUVOVF9IQU5ETElORy5hdHRyaWJ1dGVOYW1lQ2hlY2sgPSBjZmcuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcuYXR0cmlidXRlTmFtZUNoZWNrO1xuICAgIH1cbiAgICBpZiAoY2ZnLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HICYmIHR5cGVvZiBjZmcuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcuYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzID09PSAnYm9vbGVhbicpIHtcbiAgICAgIENVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmFsbG93Q3VzdG9taXplZEJ1aWx0SW5FbGVtZW50cyA9IGNmZy5DVVNUT01fRUxFTUVOVF9IQU5ETElORy5hbGxvd0N1c3RvbWl6ZWRCdWlsdEluRWxlbWVudHM7XG4gICAgfVxuICAgIGlmIChTQUZFX0ZPUl9URU1QTEFURVMpIHtcbiAgICAgIEFMTE9XX0RBVEFfQVRUUiA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoUkVUVVJOX0RPTV9GUkFHTUVOVCkge1xuICAgICAgUkVUVVJOX0RPTSA9IHRydWU7XG4gICAgfVxuICAgIC8qIFBhcnNlIHByb2ZpbGUgaW5mbyAqL1xuICAgIGlmIChVU0VfUFJPRklMRVMpIHtcbiAgICAgIEFMTE9XRURfVEFHUyA9IGFkZFRvU2V0KHt9LCB0ZXh0KTtcbiAgICAgIEFMTE9XRURfQVRUUiA9IFtdO1xuICAgICAgaWYgKFVTRV9QUk9GSUxFUy5odG1sID09PSB0cnVlKSB7XG4gICAgICAgIGFkZFRvU2V0KEFMTE9XRURfVEFHUywgaHRtbCQxKTtcbiAgICAgICAgYWRkVG9TZXQoQUxMT1dFRF9BVFRSLCBodG1sKTtcbiAgICAgIH1cbiAgICAgIGlmIChVU0VfUFJPRklMRVMuc3ZnID09PSB0cnVlKSB7XG4gICAgICAgIGFkZFRvU2V0KEFMTE9XRURfVEFHUywgc3ZnJDEpO1xuICAgICAgICBhZGRUb1NldChBTExPV0VEX0FUVFIsIHN2Zyk7XG4gICAgICAgIGFkZFRvU2V0KEFMTE9XRURfQVRUUiwgeG1sKTtcbiAgICAgIH1cbiAgICAgIGlmIChVU0VfUFJPRklMRVMuc3ZnRmlsdGVycyA9PT0gdHJ1ZSkge1xuICAgICAgICBhZGRUb1NldChBTExPV0VEX1RBR1MsIHN2Z0ZpbHRlcnMpO1xuICAgICAgICBhZGRUb1NldChBTExPV0VEX0FUVFIsIHN2Zyk7XG4gICAgICAgIGFkZFRvU2V0KEFMTE9XRURfQVRUUiwgeG1sKTtcbiAgICAgIH1cbiAgICAgIGlmIChVU0VfUFJPRklMRVMubWF0aE1sID09PSB0cnVlKSB7XG4gICAgICAgIGFkZFRvU2V0KEFMTE9XRURfVEFHUywgbWF0aE1sJDEpO1xuICAgICAgICBhZGRUb1NldChBTExPV0VEX0FUVFIsIG1hdGhNbCk7XG4gICAgICAgIGFkZFRvU2V0KEFMTE9XRURfQVRUUiwgeG1sKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLyogTWVyZ2UgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzICovXG4gICAgaWYgKGNmZy5BRERfVEFHUykge1xuICAgICAgaWYgKEFMTE9XRURfVEFHUyA9PT0gREVGQVVMVF9BTExPV0VEX1RBR1MpIHtcbiAgICAgICAgQUxMT1dFRF9UQUdTID0gY2xvbmUoQUxMT1dFRF9UQUdTKTtcbiAgICAgIH1cbiAgICAgIGFkZFRvU2V0KEFMTE9XRURfVEFHUywgY2ZnLkFERF9UQUdTLCB0cmFuc2Zvcm1DYXNlRnVuYyk7XG4gICAgfVxuICAgIGlmIChjZmcuQUREX0FUVFIpIHtcbiAgICAgIGlmIChBTExPV0VEX0FUVFIgPT09IERFRkFVTFRfQUxMT1dFRF9BVFRSKSB7XG4gICAgICAgIEFMTE9XRURfQVRUUiA9IGNsb25lKEFMTE9XRURfQVRUUik7XG4gICAgICB9XG4gICAgICBhZGRUb1NldChBTExPV0VEX0FUVFIsIGNmZy5BRERfQVRUUiwgdHJhbnNmb3JtQ2FzZUZ1bmMpO1xuICAgIH1cbiAgICBpZiAoY2ZnLkFERF9VUklfU0FGRV9BVFRSKSB7XG4gICAgICBhZGRUb1NldChVUklfU0FGRV9BVFRSSUJVVEVTLCBjZmcuQUREX1VSSV9TQUZFX0FUVFIsIHRyYW5zZm9ybUNhc2VGdW5jKTtcbiAgICB9XG4gICAgaWYgKGNmZy5GT1JCSURfQ09OVEVOVFMpIHtcbiAgICAgIGlmIChGT1JCSURfQ09OVEVOVFMgPT09IERFRkFVTFRfRk9SQklEX0NPTlRFTlRTKSB7XG4gICAgICAgIEZPUkJJRF9DT05URU5UUyA9IGNsb25lKEZPUkJJRF9DT05URU5UUyk7XG4gICAgICB9XG4gICAgICBhZGRUb1NldChGT1JCSURfQ09OVEVOVFMsIGNmZy5GT1JCSURfQ09OVEVOVFMsIHRyYW5zZm9ybUNhc2VGdW5jKTtcbiAgICB9XG4gICAgLyogQWRkICN0ZXh0IGluIGNhc2UgS0VFUF9DT05URU5UIGlzIHNldCB0byB0cnVlICovXG4gICAgaWYgKEtFRVBfQ09OVEVOVCkge1xuICAgICAgQUxMT1dFRF9UQUdTWycjdGV4dCddID0gdHJ1ZTtcbiAgICB9XG4gICAgLyogQWRkIGh0bWwsIGhlYWQgYW5kIGJvZHkgdG8gQUxMT1dFRF9UQUdTIGluIGNhc2UgV0hPTEVfRE9DVU1FTlQgaXMgdHJ1ZSAqL1xuICAgIGlmIChXSE9MRV9ET0NVTUVOVCkge1xuICAgICAgYWRkVG9TZXQoQUxMT1dFRF9UQUdTLCBbJ2h0bWwnLCAnaGVhZCcsICdib2R5J10pO1xuICAgIH1cbiAgICAvKiBBZGQgdGJvZHkgdG8gQUxMT1dFRF9UQUdTIGluIGNhc2UgdGFibGVzIGFyZSBwZXJtaXR0ZWQsIHNlZSAjMjg2LCAjMzY1ICovXG4gICAgaWYgKEFMTE9XRURfVEFHUy50YWJsZSkge1xuICAgICAgYWRkVG9TZXQoQUxMT1dFRF9UQUdTLCBbJ3Rib2R5J10pO1xuICAgICAgZGVsZXRlIEZPUkJJRF9UQUdTLnRib2R5O1xuICAgIH1cbiAgICBpZiAoY2ZnLlRSVVNURURfVFlQRVNfUE9MSUNZKSB7XG4gICAgICBpZiAodHlwZW9mIGNmZy5UUlVTVEVEX1RZUEVTX1BPTElDWS5jcmVhdGVIVE1MICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IHR5cGVFcnJvckNyZWF0ZSgnVFJVU1RFRF9UWVBFU19QT0xJQ1kgY29uZmlndXJhdGlvbiBvcHRpb24gbXVzdCBwcm92aWRlIGEgXCJjcmVhdGVIVE1MXCIgaG9vay4nKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgY2ZnLlRSVVNURURfVFlQRVNfUE9MSUNZLmNyZWF0ZVNjcmlwdFVSTCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyB0eXBlRXJyb3JDcmVhdGUoJ1RSVVNURURfVFlQRVNfUE9MSUNZIGNvbmZpZ3VyYXRpb24gb3B0aW9uIG11c3QgcHJvdmlkZSBhIFwiY3JlYXRlU2NyaXB0VVJMXCIgaG9vay4nKTtcbiAgICAgIH1cbiAgICAgIC8vIE92ZXJ3cml0ZSBleGlzdGluZyBUcnVzdGVkVHlwZXMgcG9saWN5LlxuICAgICAgdHJ1c3RlZFR5cGVzUG9saWN5ID0gY2ZnLlRSVVNURURfVFlQRVNfUE9MSUNZO1xuICAgICAgLy8gU2lnbiBsb2NhbCB2YXJpYWJsZXMgcmVxdWlyZWQgYnkgYHNhbml0aXplYC5cbiAgICAgIGVtcHR5SFRNTCA9IHRydXN0ZWRUeXBlc1BvbGljeS5jcmVhdGVIVE1MKCcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVW5pbml0aWFsaXplZCBwb2xpY3ksIGF0dGVtcHQgdG8gaW5pdGlhbGl6ZSB0aGUgaW50ZXJuYWwgZG9tcHVyaWZ5IHBvbGljeS5cbiAgICAgIGlmICh0cnVzdGVkVHlwZXNQb2xpY3kgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0cnVzdGVkVHlwZXNQb2xpY3kgPSBfY3JlYXRlVHJ1c3RlZFR5cGVzUG9saWN5KHRydXN0ZWRUeXBlcywgY3VycmVudFNjcmlwdCk7XG4gICAgICB9XG4gICAgICAvLyBJZiBjcmVhdGluZyB0aGUgaW50ZXJuYWwgcG9saWN5IHN1Y2NlZWRlZCBzaWduIGludGVybmFsIHZhcmlhYmxlcy5cbiAgICAgIGlmICh0cnVzdGVkVHlwZXNQb2xpY3kgIT09IG51bGwgJiYgdHlwZW9mIGVtcHR5SFRNTCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgZW1wdHlIVE1MID0gdHJ1c3RlZFR5cGVzUG9saWN5LmNyZWF0ZUhUTUwoJycpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBQcmV2ZW50IGZ1cnRoZXIgbWFuaXB1bGF0aW9uIG9mIGNvbmZpZ3VyYXRpb24uXG4gICAgLy8gTm90IGF2YWlsYWJsZSBpbiBJRTgsIFNhZmFyaSA1LCBldGMuXG4gICAgaWYgKGZyZWV6ZSkge1xuICAgICAgZnJlZXplKGNmZyk7XG4gICAgfVxuICAgIENPTkZJRyA9IGNmZztcbiAgfTtcbiAgLyogS2VlcCB0cmFjayBvZiBhbGwgcG9zc2libGUgU1ZHIGFuZCBNYXRoTUwgdGFnc1xuICAgKiBzbyB0aGF0IHdlIGNhbiBwZXJmb3JtIHRoZSBuYW1lc3BhY2UgY2hlY2tzXG4gICAqIGNvcnJlY3RseS4gKi9cbiAgY29uc3QgQUxMX1NWR19UQUdTID0gYWRkVG9TZXQoe30sIFsuLi5zdmckMSwgLi4uc3ZnRmlsdGVycywgLi4uc3ZnRGlzYWxsb3dlZF0pO1xuICBjb25zdCBBTExfTUFUSE1MX1RBR1MgPSBhZGRUb1NldCh7fSwgWy4uLm1hdGhNbCQxLCAuLi5tYXRoTWxEaXNhbGxvd2VkXSk7XG4gIC8qKlxuICAgKiBAcGFyYW0gZWxlbWVudCBhIERPTSBlbGVtZW50IHdob3NlIG5hbWVzcGFjZSBpcyBiZWluZyBjaGVja2VkXG4gICAqIEByZXR1cm5zIFJldHVybiBmYWxzZSBpZiB0aGUgZWxlbWVudCBoYXMgYVxuICAgKiAgbmFtZXNwYWNlIHRoYXQgYSBzcGVjLWNvbXBsaWFudCBwYXJzZXIgd291bGQgbmV2ZXJcbiAgICogIHJldHVybi4gUmV0dXJuIHRydWUgb3RoZXJ3aXNlLlxuICAgKi9cbiAgY29uc3QgX2NoZWNrVmFsaWROYW1lc3BhY2UgPSBmdW5jdGlvbiBfY2hlY2tWYWxpZE5hbWVzcGFjZShlbGVtZW50KSB7XG4gICAgbGV0IHBhcmVudCA9IGdldFBhcmVudE5vZGUoZWxlbWVudCk7XG4gICAgLy8gSW4gSlNET00sIGlmIHdlJ3JlIGluc2lkZSBzaGFkb3cgRE9NLCB0aGVuIHBhcmVudE5vZGVcbiAgICAvLyBjYW4gYmUgbnVsbC4gV2UganVzdCBzaW11bGF0ZSBwYXJlbnQgaW4gdGhpcyBjYXNlLlxuICAgIGlmICghcGFyZW50IHx8ICFwYXJlbnQudGFnTmFtZSkge1xuICAgICAgcGFyZW50ID0ge1xuICAgICAgICBuYW1lc3BhY2VVUkk6IE5BTUVTUEFDRSxcbiAgICAgICAgdGFnTmFtZTogJ3RlbXBsYXRlJ1xuICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgdGFnTmFtZSA9IHN0cmluZ1RvTG93ZXJDYXNlKGVsZW1lbnQudGFnTmFtZSk7XG4gICAgY29uc3QgcGFyZW50VGFnTmFtZSA9IHN0cmluZ1RvTG93ZXJDYXNlKHBhcmVudC50YWdOYW1lKTtcbiAgICBpZiAoIUFMTE9XRURfTkFNRVNQQUNFU1tlbGVtZW50Lm5hbWVzcGFjZVVSSV0pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGVsZW1lbnQubmFtZXNwYWNlVVJJID09PSBTVkdfTkFNRVNQQUNFKSB7XG4gICAgICAvLyBUaGUgb25seSB3YXkgdG8gc3dpdGNoIGZyb20gSFRNTCBuYW1lc3BhY2UgdG8gU1ZHXG4gICAgICAvLyBpcyB2aWEgPHN2Zz4uIElmIGl0IGhhcHBlbnMgdmlhIGFueSBvdGhlciB0YWcsIHRoZW5cbiAgICAgIC8vIGl0IHNob3VsZCBiZSBraWxsZWQuXG4gICAgICBpZiAocGFyZW50Lm5hbWVzcGFjZVVSSSA9PT0gSFRNTF9OQU1FU1BBQ0UpIHtcbiAgICAgICAgcmV0dXJuIHRhZ05hbWUgPT09ICdzdmcnO1xuICAgICAgfVxuICAgICAgLy8gVGhlIG9ubHkgd2F5IHRvIHN3aXRjaCBmcm9tIE1hdGhNTCB0byBTVkcgaXMgdmlhYFxuICAgICAgLy8gc3ZnIGlmIHBhcmVudCBpcyBlaXRoZXIgPGFubm90YXRpb24teG1sPiBvciBNYXRoTUxcbiAgICAgIC8vIHRleHQgaW50ZWdyYXRpb24gcG9pbnRzLlxuICAgICAgaWYgKHBhcmVudC5uYW1lc3BhY2VVUkkgPT09IE1BVEhNTF9OQU1FU1BBQ0UpIHtcbiAgICAgICAgcmV0dXJuIHRhZ05hbWUgPT09ICdzdmcnICYmIChwYXJlbnRUYWdOYW1lID09PSAnYW5ub3RhdGlvbi14bWwnIHx8IE1BVEhNTF9URVhUX0lOVEVHUkFUSU9OX1BPSU5UU1twYXJlbnRUYWdOYW1lXSk7XG4gICAgICB9XG4gICAgICAvLyBXZSBvbmx5IGFsbG93IGVsZW1lbnRzIHRoYXQgYXJlIGRlZmluZWQgaW4gU1ZHXG4gICAgICAvLyBzcGVjLiBBbGwgb3RoZXJzIGFyZSBkaXNhbGxvd2VkIGluIFNWRyBuYW1lc3BhY2UuXG4gICAgICByZXR1cm4gQm9vbGVhbihBTExfU1ZHX1RBR1NbdGFnTmFtZV0pO1xuICAgIH1cbiAgICBpZiAoZWxlbWVudC5uYW1lc3BhY2VVUkkgPT09IE1BVEhNTF9OQU1FU1BBQ0UpIHtcbiAgICAgIC8vIFRoZSBvbmx5IHdheSB0byBzd2l0Y2ggZnJvbSBIVE1MIG5hbWVzcGFjZSB0byBNYXRoTUxcbiAgICAgIC8vIGlzIHZpYSA8bWF0aD4uIElmIGl0IGhhcHBlbnMgdmlhIGFueSBvdGhlciB0YWcsIHRoZW5cbiAgICAgIC8vIGl0IHNob3VsZCBiZSBraWxsZWQuXG4gICAgICBpZiAocGFyZW50Lm5hbWVzcGFjZVVSSSA9PT0gSFRNTF9OQU1FU1BBQ0UpIHtcbiAgICAgICAgcmV0dXJuIHRhZ05hbWUgPT09ICdtYXRoJztcbiAgICAgIH1cbiAgICAgIC8vIFRoZSBvbmx5IHdheSB0byBzd2l0Y2ggZnJvbSBTVkcgdG8gTWF0aE1MIGlzIHZpYVxuICAgICAgLy8gPG1hdGg+IGFuZCBIVE1MIGludGVncmF0aW9uIHBvaW50c1xuICAgICAgaWYgKHBhcmVudC5uYW1lc3BhY2VVUkkgPT09IFNWR19OQU1FU1BBQ0UpIHtcbiAgICAgICAgcmV0dXJuIHRhZ05hbWUgPT09ICdtYXRoJyAmJiBIVE1MX0lOVEVHUkFUSU9OX1BPSU5UU1twYXJlbnRUYWdOYW1lXTtcbiAgICAgIH1cbiAgICAgIC8vIFdlIG9ubHkgYWxsb3cgZWxlbWVudHMgdGhhdCBhcmUgZGVmaW5lZCBpbiBNYXRoTUxcbiAgICAgIC8vIHNwZWMuIEFsbCBvdGhlcnMgYXJlIGRpc2FsbG93ZWQgaW4gTWF0aE1MIG5hbWVzcGFjZS5cbiAgICAgIHJldHVybiBCb29sZWFuKEFMTF9NQVRITUxfVEFHU1t0YWdOYW1lXSk7XG4gICAgfVxuICAgIGlmIChlbGVtZW50Lm5hbWVzcGFjZVVSSSA9PT0gSFRNTF9OQU1FU1BBQ0UpIHtcbiAgICAgIC8vIFRoZSBvbmx5IHdheSB0byBzd2l0Y2ggZnJvbSBTVkcgdG8gSFRNTCBpcyB2aWFcbiAgICAgIC8vIEhUTUwgaW50ZWdyYXRpb24gcG9pbnRzLCBhbmQgZnJvbSBNYXRoTUwgdG8gSFRNTFxuICAgICAgLy8gaXMgdmlhIE1hdGhNTCB0ZXh0IGludGVncmF0aW9uIHBvaW50c1xuICAgICAgaWYgKHBhcmVudC5uYW1lc3BhY2VVUkkgPT09IFNWR19OQU1FU1BBQ0UgJiYgIUhUTUxfSU5URUdSQVRJT05fUE9JTlRTW3BhcmVudFRhZ05hbWVdKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChwYXJlbnQubmFtZXNwYWNlVVJJID09PSBNQVRITUxfTkFNRVNQQUNFICYmICFNQVRITUxfVEVYVF9JTlRFR1JBVElPTl9QT0lOVFNbcGFyZW50VGFnTmFtZV0pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgLy8gV2UgZGlzYWxsb3cgdGFncyB0aGF0IGFyZSBzcGVjaWZpYyBmb3IgTWF0aE1MXG4gICAgICAvLyBvciBTVkcgYW5kIHNob3VsZCBuZXZlciBhcHBlYXIgaW4gSFRNTCBuYW1lc3BhY2VcbiAgICAgIHJldHVybiAhQUxMX01BVEhNTF9UQUdTW3RhZ05hbWVdICYmIChDT01NT05fU1ZHX0FORF9IVE1MX0VMRU1FTlRTW3RhZ05hbWVdIHx8ICFBTExfU1ZHX1RBR1NbdGFnTmFtZV0pO1xuICAgIH1cbiAgICAvLyBGb3IgWEhUTUwgYW5kIFhNTCBkb2N1bWVudHMgdGhhdCBzdXBwb3J0IGN1c3RvbSBuYW1lc3BhY2VzXG4gICAgaWYgKFBBUlNFUl9NRURJQV9UWVBFID09PSAnYXBwbGljYXRpb24veGh0bWwreG1sJyAmJiBBTExPV0VEX05BTUVTUEFDRVNbZWxlbWVudC5uYW1lc3BhY2VVUkldKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gVGhlIGNvZGUgc2hvdWxkIG5ldmVyIHJlYWNoIHRoaXMgcGxhY2UgKHRoaXMgbWVhbnNcbiAgICAvLyB0aGF0IHRoZSBlbGVtZW50IHNvbWVob3cgZ290IG5hbWVzcGFjZSB0aGF0IGlzIG5vdFxuICAgIC8vIEhUTUwsIFNWRywgTWF0aE1MIG9yIGFsbG93ZWQgdmlhIEFMTE9XRURfTkFNRVNQQUNFUykuXG4gICAgLy8gUmV0dXJuIGZhbHNlIGp1c3QgaW4gY2FzZS5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG4gIC8qKlxuICAgKiBfZm9yY2VSZW1vdmVcbiAgICpcbiAgICogQHBhcmFtIG5vZGUgYSBET00gbm9kZVxuICAgKi9cbiAgY29uc3QgX2ZvcmNlUmVtb3ZlID0gZnVuY3Rpb24gX2ZvcmNlUmVtb3ZlKG5vZGUpIHtcbiAgICBhcnJheVB1c2goRE9NUHVyaWZ5LnJlbW92ZWQsIHtcbiAgICAgIGVsZW1lbnQ6IG5vZGVcbiAgICB9KTtcbiAgICB0cnkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vcHJlZmVyLWRvbS1ub2RlLXJlbW92ZVxuICAgICAgZ2V0UGFyZW50Tm9kZShub2RlKS5yZW1vdmVDaGlsZChub2RlKTtcbiAgICB9IGNhdGNoIChfKSB7XG4gICAgICByZW1vdmUobm9kZSk7XG4gICAgfVxuICB9O1xuICAvKipcbiAgICogX3JlbW92ZUF0dHJpYnV0ZVxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBhbiBBdHRyaWJ1dGUgbmFtZVxuICAgKiBAcGFyYW0gZWxlbWVudCBhIERPTSBub2RlXG4gICAqL1xuICBjb25zdCBfcmVtb3ZlQXR0cmlidXRlID0gZnVuY3Rpb24gX3JlbW92ZUF0dHJpYnV0ZShuYW1lLCBlbGVtZW50KSB7XG4gICAgdHJ5IHtcbiAgICAgIGFycmF5UHVzaChET01QdXJpZnkucmVtb3ZlZCwge1xuICAgICAgICBhdHRyaWJ1dGU6IGVsZW1lbnQuZ2V0QXR0cmlidXRlTm9kZShuYW1lKSxcbiAgICAgICAgZnJvbTogZWxlbWVudFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoXykge1xuICAgICAgYXJyYXlQdXNoKERPTVB1cmlmeS5yZW1vdmVkLCB7XG4gICAgICAgIGF0dHJpYnV0ZTogbnVsbCxcbiAgICAgICAgZnJvbTogZWxlbWVudFxuICAgICAgfSk7XG4gICAgfVxuICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgIC8vIFdlIHZvaWQgYXR0cmlidXRlIHZhbHVlcyBmb3IgdW5yZW1vdmFibGUgXCJpc1wiIGF0dHJpYnV0ZXNcbiAgICBpZiAobmFtZSA9PT0gJ2lzJykge1xuICAgICAgaWYgKFJFVFVSTl9ET00gfHwgUkVUVVJOX0RPTV9GUkFHTUVOVCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIF9mb3JjZVJlbW92ZShlbGVtZW50KTtcbiAgICAgICAgfSBjYXRjaCAoXykge31cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUobmFtZSwgJycpO1xuICAgICAgICB9IGNhdGNoIChfKSB7fVxuICAgICAgfVxuICAgIH1cbiAgfTtcbiAgLyoqXG4gICAqIF9pbml0RG9jdW1lbnRcbiAgICpcbiAgICogQHBhcmFtIGRpcnR5IC0gYSBzdHJpbmcgb2YgZGlydHkgbWFya3VwXG4gICAqIEByZXR1cm4gYSBET00sIGZpbGxlZCB3aXRoIHRoZSBkaXJ0eSBtYXJrdXBcbiAgICovXG4gIGNvbnN0IF9pbml0RG9jdW1lbnQgPSBmdW5jdGlvbiBfaW5pdERvY3VtZW50KGRpcnR5KSB7XG4gICAgLyogQ3JlYXRlIGEgSFRNTCBkb2N1bWVudCAqL1xuICAgIGxldCBkb2MgPSBudWxsO1xuICAgIGxldCBsZWFkaW5nV2hpdGVzcGFjZSA9IG51bGw7XG4gICAgaWYgKEZPUkNFX0JPRFkpIHtcbiAgICAgIGRpcnR5ID0gJzxyZW1vdmU+PC9yZW1vdmU+JyArIGRpcnR5O1xuICAgIH0gZWxzZSB7XG4gICAgICAvKiBJZiBGT1JDRV9CT0RZIGlzbid0IHVzZWQsIGxlYWRpbmcgd2hpdGVzcGFjZSBuZWVkcyB0byBiZSBwcmVzZXJ2ZWQgbWFudWFsbHkgKi9cbiAgICAgIGNvbnN0IG1hdGNoZXMgPSBzdHJpbmdNYXRjaChkaXJ0eSwgL15bXFxyXFxuXFx0IF0rLyk7XG4gICAgICBsZWFkaW5nV2hpdGVzcGFjZSA9IG1hdGNoZXMgJiYgbWF0Y2hlc1swXTtcbiAgICB9XG4gICAgaWYgKFBBUlNFUl9NRURJQV9UWVBFID09PSAnYXBwbGljYXRpb24veGh0bWwreG1sJyAmJiBOQU1FU1BBQ0UgPT09IEhUTUxfTkFNRVNQQUNFKSB7XG4gICAgICAvLyBSb290IG9mIFhIVE1MIGRvYyBtdXN0IGNvbnRhaW4geG1sbnMgZGVjbGFyYXRpb24gKHNlZSBodHRwczovL3d3dy53My5vcmcvVFIveGh0bWwxL25vcm1hdGl2ZS5odG1sI3N0cmljdClcbiAgICAgIGRpcnR5ID0gJzxodG1sIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiPjxoZWFkPjwvaGVhZD48Ym9keT4nICsgZGlydHkgKyAnPC9ib2R5PjwvaHRtbD4nO1xuICAgIH1cbiAgICBjb25zdCBkaXJ0eVBheWxvYWQgPSB0cnVzdGVkVHlwZXNQb2xpY3kgPyB0cnVzdGVkVHlwZXNQb2xpY3kuY3JlYXRlSFRNTChkaXJ0eSkgOiBkaXJ0eTtcbiAgICAvKlxuICAgICAqIFVzZSB0aGUgRE9NUGFyc2VyIEFQSSBieSBkZWZhdWx0LCBmYWxsYmFjayBsYXRlciBpZiBuZWVkcyBiZVxuICAgICAqIERPTVBhcnNlciBub3Qgd29yayBmb3Igc3ZnIHdoZW4gaGFzIG11bHRpcGxlIHJvb3QgZWxlbWVudC5cbiAgICAgKi9cbiAgICBpZiAoTkFNRVNQQUNFID09PSBIVE1MX05BTUVTUEFDRSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZG9jID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhkaXJ0eVBheWxvYWQsIFBBUlNFUl9NRURJQV9UWVBFKTtcbiAgICAgIH0gY2F0Y2ggKF8pIHt9XG4gICAgfVxuICAgIC8qIFVzZSBjcmVhdGVIVE1MRG9jdW1lbnQgaW4gY2FzZSBET01QYXJzZXIgaXMgbm90IGF2YWlsYWJsZSAqL1xuICAgIGlmICghZG9jIHx8ICFkb2MuZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICBkb2MgPSBpbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChOQU1FU1BBQ0UsICd0ZW1wbGF0ZScsIG51bGwpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5pbm5lckhUTUwgPSBJU19FTVBUWV9JTlBVVCA/IGVtcHR5SFRNTCA6IGRpcnR5UGF5bG9hZDtcbiAgICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgLy8gU3ludGF4IGVycm9yIGlmIGRpcnR5UGF5bG9hZCBpcyBpbnZhbGlkIHhtbFxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBib2R5ID0gZG9jLmJvZHkgfHwgZG9jLmRvY3VtZW50RWxlbWVudDtcbiAgICBpZiAoZGlydHkgJiYgbGVhZGluZ1doaXRlc3BhY2UpIHtcbiAgICAgIGJvZHkuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGxlYWRpbmdXaGl0ZXNwYWNlKSwgYm9keS5jaGlsZE5vZGVzWzBdIHx8IG51bGwpO1xuICAgIH1cbiAgICAvKiBXb3JrIG9uIHdob2xlIGRvY3VtZW50IG9yIGp1c3QgaXRzIGJvZHkgKi9cbiAgICBpZiAoTkFNRVNQQUNFID09PSBIVE1MX05BTUVTUEFDRSkge1xuICAgICAgcmV0dXJuIGdldEVsZW1lbnRzQnlUYWdOYW1lLmNhbGwoZG9jLCBXSE9MRV9ET0NVTUVOVCA/ICdodG1sJyA6ICdib2R5JylbMF07XG4gICAgfVxuICAgIHJldHVybiBXSE9MRV9ET0NVTUVOVCA/IGRvYy5kb2N1bWVudEVsZW1lbnQgOiBib2R5O1xuICB9O1xuICAvKipcbiAgICogQ3JlYXRlcyBhIE5vZGVJdGVyYXRvciBvYmplY3QgdGhhdCB5b3UgY2FuIHVzZSB0byB0cmF2ZXJzZSBmaWx0ZXJlZCBsaXN0cyBvZiBub2RlcyBvciBlbGVtZW50cyBpbiBhIGRvY3VtZW50LlxuICAgKlxuICAgKiBAcGFyYW0gcm9vdCBUaGUgcm9vdCBlbGVtZW50IG9yIG5vZGUgdG8gc3RhcnQgdHJhdmVyc2luZyBvbi5cbiAgICogQHJldHVybiBUaGUgY3JlYXRlZCBOb2RlSXRlcmF0b3JcbiAgICovXG4gIGNvbnN0IF9jcmVhdGVOb2RlSXRlcmF0b3IgPSBmdW5jdGlvbiBfY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QpIHtcbiAgICByZXR1cm4gY3JlYXRlTm9kZUl0ZXJhdG9yLmNhbGwocm9vdC5vd25lckRvY3VtZW50IHx8IHJvb3QsIHJvb3QsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWJpdHdpc2VcbiAgICBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19DT01NRU5UIHwgTm9kZUZpbHRlci5TSE9XX1RFWFQgfCBOb2RlRmlsdGVyLlNIT1dfUFJPQ0VTU0lOR19JTlNUUlVDVElPTiB8IE5vZGVGaWx0ZXIuU0hPV19DREFUQV9TRUNUSU9OLCBudWxsKTtcbiAgfTtcbiAgLyoqXG4gICAqIF9pc0Nsb2JiZXJlZFxuICAgKlxuICAgKiBAcGFyYW0gZWxlbWVudCBlbGVtZW50IHRvIGNoZWNrIGZvciBjbG9iYmVyaW5nIGF0dGFja3NcbiAgICogQHJldHVybiB0cnVlIGlmIGNsb2JiZXJlZCwgZmFsc2UgaWYgc2FmZVxuICAgKi9cbiAgY29uc3QgX2lzQ2xvYmJlcmVkID0gZnVuY3Rpb24gX2lzQ2xvYmJlcmVkKGVsZW1lbnQpIHtcbiAgICByZXR1cm4gZWxlbWVudCBpbnN0YW5jZW9mIEhUTUxGb3JtRWxlbWVudCAmJiAodHlwZW9mIGVsZW1lbnQubm9kZU5hbWUgIT09ICdzdHJpbmcnIHx8IHR5cGVvZiBlbGVtZW50LnRleHRDb250ZW50ICE9PSAnc3RyaW5nJyB8fCB0eXBlb2YgZWxlbWVudC5yZW1vdmVDaGlsZCAhPT0gJ2Z1bmN0aW9uJyB8fCAhKGVsZW1lbnQuYXR0cmlidXRlcyBpbnN0YW5jZW9mIE5hbWVkTm9kZU1hcCkgfHwgdHlwZW9mIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlICE9PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBlbGVtZW50LnNldEF0dHJpYnV0ZSAhPT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgZWxlbWVudC5uYW1lc3BhY2VVUkkgIT09ICdzdHJpbmcnIHx8IHR5cGVvZiBlbGVtZW50Lmluc2VydEJlZm9yZSAhPT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgZWxlbWVudC5oYXNDaGlsZE5vZGVzICE9PSAnZnVuY3Rpb24nKTtcbiAgfTtcbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBET00gbm9kZS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIG9iamVjdCB0byBjaGVjayB3aGV0aGVyIGl0J3MgYSBET00gbm9kZVxuICAgKiBAcmV0dXJuIHRydWUgaXMgb2JqZWN0IGlzIGEgRE9NIG5vZGVcbiAgICovXG4gIGNvbnN0IF9pc05vZGUgPSBmdW5jdGlvbiBfaXNOb2RlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBOb2RlID09PSAnZnVuY3Rpb24nICYmIHZhbHVlIGluc3RhbmNlb2YgTm9kZTtcbiAgfTtcbiAgZnVuY3Rpb24gX2V4ZWN1dGVIb29rcyhob29rcywgY3VycmVudE5vZGUsIGRhdGEpIHtcbiAgICBhcnJheUZvckVhY2goaG9va3MsIGhvb2sgPT4ge1xuICAgICAgaG9vay5jYWxsKERPTVB1cmlmeSwgY3VycmVudE5vZGUsIGRhdGEsIENPTkZJRyk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIF9zYW5pdGl6ZUVsZW1lbnRzXG4gICAqXG4gICAqIEBwcm90ZWN0IG5vZGVOYW1lXG4gICAqIEBwcm90ZWN0IHRleHRDb250ZW50XG4gICAqIEBwcm90ZWN0IHJlbW92ZUNoaWxkXG4gICAqIEBwYXJhbSBjdXJyZW50Tm9kZSB0byBjaGVjayBmb3IgcGVybWlzc2lvbiB0byBleGlzdFxuICAgKiBAcmV0dXJuIHRydWUgaWYgbm9kZSB3YXMga2lsbGVkLCBmYWxzZSBpZiBsZWZ0IGFsaXZlXG4gICAqL1xuICBjb25zdCBfc2FuaXRpemVFbGVtZW50cyA9IGZ1bmN0aW9uIF9zYW5pdGl6ZUVsZW1lbnRzKGN1cnJlbnROb2RlKSB7XG4gICAgbGV0IGNvbnRlbnQgPSBudWxsO1xuICAgIC8qIEV4ZWN1dGUgYSBob29rIGlmIHByZXNlbnQgKi9cbiAgICBfZXhlY3V0ZUhvb2tzKGhvb2tzLmJlZm9yZVNhbml0aXplRWxlbWVudHMsIGN1cnJlbnROb2RlLCBudWxsKTtcbiAgICAvKiBDaGVjayBpZiBlbGVtZW50IGlzIGNsb2JiZXJlZCBvciBjYW4gY2xvYmJlciAqL1xuICAgIGlmIChfaXNDbG9iYmVyZWQoY3VycmVudE5vZGUpKSB7XG4gICAgICBfZm9yY2VSZW1vdmUoY3VycmVudE5vZGUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8qIE5vdyBsZXQncyBjaGVjayB0aGUgZWxlbWVudCdzIHR5cGUgYW5kIG5hbWUgKi9cbiAgICBjb25zdCB0YWdOYW1lID0gdHJhbnNmb3JtQ2FzZUZ1bmMoY3VycmVudE5vZGUubm9kZU5hbWUpO1xuICAgIC8qIEV4ZWN1dGUgYSBob29rIGlmIHByZXNlbnQgKi9cbiAgICBfZXhlY3V0ZUhvb2tzKGhvb2tzLnVwb25TYW5pdGl6ZUVsZW1lbnQsIGN1cnJlbnROb2RlLCB7XG4gICAgICB0YWdOYW1lLFxuICAgICAgYWxsb3dlZFRhZ3M6IEFMTE9XRURfVEFHU1xuICAgIH0pO1xuICAgIC8qIERldGVjdCBtWFNTIGF0dGVtcHRzIGFidXNpbmcgbmFtZXNwYWNlIGNvbmZ1c2lvbiAqL1xuICAgIGlmIChjdXJyZW50Tm9kZS5oYXNDaGlsZE5vZGVzKCkgJiYgIV9pc05vZGUoY3VycmVudE5vZGUuZmlyc3RFbGVtZW50Q2hpbGQpICYmIHJlZ0V4cFRlc3QoLzxbL1xcdyFdL2csIGN1cnJlbnROb2RlLmlubmVySFRNTCkgJiYgcmVnRXhwVGVzdCgvPFsvXFx3IV0vZywgY3VycmVudE5vZGUudGV4dENvbnRlbnQpKSB7XG4gICAgICBfZm9yY2VSZW1vdmUoY3VycmVudE5vZGUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8qIFJlbW92ZSBhbnkgb2NjdXJyZW5jZSBvZiBwcm9jZXNzaW5nIGluc3RydWN0aW9ucyAqL1xuICAgIGlmIChjdXJyZW50Tm9kZS5ub2RlVHlwZSA9PT0gTk9ERV9UWVBFLnByb2dyZXNzaW5nSW5zdHJ1Y3Rpb24pIHtcbiAgICAgIF9mb3JjZVJlbW92ZShjdXJyZW50Tm9kZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLyogUmVtb3ZlIGFueSBraW5kIG9mIHBvc3NpYmx5IGhhcm1mdWwgY29tbWVudHMgKi9cbiAgICBpZiAoU0FGRV9GT1JfWE1MICYmIGN1cnJlbnROb2RlLm5vZGVUeXBlID09PSBOT0RFX1RZUEUuY29tbWVudCAmJiByZWdFeHBUZXN0KC88Wy9cXHddL2csIGN1cnJlbnROb2RlLmRhdGEpKSB7XG4gICAgICBfZm9yY2VSZW1vdmUoY3VycmVudE5vZGUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8qIFJlbW92ZSBlbGVtZW50IGlmIGFueXRoaW5nIGZvcmJpZHMgaXRzIHByZXNlbmNlICovXG4gICAgaWYgKCFBTExPV0VEX1RBR1NbdGFnTmFtZV0gfHwgRk9SQklEX1RBR1NbdGFnTmFtZV0pIHtcbiAgICAgIC8qIENoZWNrIGlmIHdlIGhhdmUgYSBjdXN0b20gZWxlbWVudCB0byBoYW5kbGUgKi9cbiAgICAgIGlmICghRk9SQklEX1RBR1NbdGFnTmFtZV0gJiYgX2lzQmFzaWNDdXN0b21FbGVtZW50KHRhZ05hbWUpKSB7XG4gICAgICAgIGlmIChDVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2sgaW5zdGFuY2VvZiBSZWdFeHAgJiYgcmVnRXhwVGVzdChDVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2ssIHRhZ05hbWUpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChDVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2sgaW5zdGFuY2VvZiBGdW5jdGlvbiAmJiBDVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2sodGFnTmFtZSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8qIEtlZXAgY29udGVudCBleGNlcHQgZm9yIGJhZC1saXN0ZWQgZWxlbWVudHMgKi9cbiAgICAgIGlmIChLRUVQX0NPTlRFTlQgJiYgIUZPUkJJRF9DT05URU5UU1t0YWdOYW1lXSkge1xuICAgICAgICBjb25zdCBwYXJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShjdXJyZW50Tm9kZSkgfHwgY3VycmVudE5vZGUucGFyZW50Tm9kZTtcbiAgICAgICAgY29uc3QgY2hpbGROb2RlcyA9IGdldENoaWxkTm9kZXMoY3VycmVudE5vZGUpIHx8IGN1cnJlbnROb2RlLmNoaWxkTm9kZXM7XG4gICAgICAgIGlmIChjaGlsZE5vZGVzICYmIHBhcmVudE5vZGUpIHtcbiAgICAgICAgICBjb25zdCBjaGlsZENvdW50ID0gY2hpbGROb2Rlcy5sZW5ndGg7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IGNoaWxkQ291bnQgLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRDbG9uZSA9IGNsb25lTm9kZShjaGlsZE5vZGVzW2ldLCB0cnVlKTtcbiAgICAgICAgICAgIGNoaWxkQ2xvbmUuX19yZW1vdmFsQ291bnQgPSAoY3VycmVudE5vZGUuX19yZW1vdmFsQ291bnQgfHwgMCkgKyAxO1xuICAgICAgICAgICAgcGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoY2hpbGRDbG9uZSwgZ2V0TmV4dFNpYmxpbmcoY3VycmVudE5vZGUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIF9mb3JjZVJlbW92ZShjdXJyZW50Tm9kZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLyogQ2hlY2sgd2hldGhlciBlbGVtZW50IGhhcyBhIHZhbGlkIG5hbWVzcGFjZSAqL1xuICAgIGlmIChjdXJyZW50Tm9kZSBpbnN0YW5jZW9mIEVsZW1lbnQgJiYgIV9jaGVja1ZhbGlkTmFtZXNwYWNlKGN1cnJlbnROb2RlKSkge1xuICAgICAgX2ZvcmNlUmVtb3ZlKGN1cnJlbnROb2RlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvKiBNYWtlIHN1cmUgdGhhdCBvbGRlciBicm93c2VycyBkb24ndCBnZXQgZmFsbGJhY2stdGFnIG1YU1MgKi9cbiAgICBpZiAoKHRhZ05hbWUgPT09ICdub3NjcmlwdCcgfHwgdGFnTmFtZSA9PT0gJ25vZW1iZWQnIHx8IHRhZ05hbWUgPT09ICdub2ZyYW1lcycpICYmIHJlZ0V4cFRlc3QoLzxcXC9ubyhzY3JpcHR8ZW1iZWR8ZnJhbWVzKS9pLCBjdXJyZW50Tm9kZS5pbm5lckhUTUwpKSB7XG4gICAgICBfZm9yY2VSZW1vdmUoY3VycmVudE5vZGUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8qIFNhbml0aXplIGVsZW1lbnQgY29udGVudCB0byBiZSB0ZW1wbGF0ZS1zYWZlICovXG4gICAgaWYgKFNBRkVfRk9SX1RFTVBMQVRFUyAmJiBjdXJyZW50Tm9kZS5ub2RlVHlwZSA9PT0gTk9ERV9UWVBFLnRleHQpIHtcbiAgICAgIC8qIEdldCB0aGUgZWxlbWVudCdzIHRleHQgY29udGVudCAqL1xuICAgICAgY29udGVudCA9IGN1cnJlbnROb2RlLnRleHRDb250ZW50O1xuICAgICAgYXJyYXlGb3JFYWNoKFtNVVNUQUNIRV9FWFBSLCBFUkJfRVhQUiwgVE1QTElUX0VYUFJdLCBleHByID0+IHtcbiAgICAgICAgY29udGVudCA9IHN0cmluZ1JlcGxhY2UoY29udGVudCwgZXhwciwgJyAnKTtcbiAgICAgIH0pO1xuICAgICAgaWYgKGN1cnJlbnROb2RlLnRleHRDb250ZW50ICE9PSBjb250ZW50KSB7XG4gICAgICAgIGFycmF5UHVzaChET01QdXJpZnkucmVtb3ZlZCwge1xuICAgICAgICAgIGVsZW1lbnQ6IGN1cnJlbnROb2RlLmNsb25lTm9kZSgpXG4gICAgICAgIH0pO1xuICAgICAgICBjdXJyZW50Tm9kZS50ZXh0Q29udGVudCA9IGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIC8qIEV4ZWN1dGUgYSBob29rIGlmIHByZXNlbnQgKi9cbiAgICBfZXhlY3V0ZUhvb2tzKGhvb2tzLmFmdGVyU2FuaXRpemVFbGVtZW50cywgY3VycmVudE5vZGUsIG51bGwpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcbiAgLyoqXG4gICAqIF9pc1ZhbGlkQXR0cmlidXRlXG4gICAqXG4gICAqIEBwYXJhbSBsY1RhZyBMb3dlcmNhc2UgdGFnIG5hbWUgb2YgY29udGFpbmluZyBlbGVtZW50LlxuICAgKiBAcGFyYW0gbGNOYW1lIExvd2VyY2FzZSBhdHRyaWJ1dGUgbmFtZS5cbiAgICogQHBhcmFtIHZhbHVlIEF0dHJpYnV0ZSB2YWx1ZS5cbiAgICogQHJldHVybiBSZXR1cm5zIHRydWUgaWYgYHZhbHVlYCBpcyB2YWxpZCwgb3RoZXJ3aXNlIGZhbHNlLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgY29uc3QgX2lzVmFsaWRBdHRyaWJ1dGUgPSBmdW5jdGlvbiBfaXNWYWxpZEF0dHJpYnV0ZShsY1RhZywgbGNOYW1lLCB2YWx1ZSkge1xuICAgIC8qIE1ha2Ugc3VyZSBhdHRyaWJ1dGUgY2Fubm90IGNsb2JiZXIgKi9cbiAgICBpZiAoU0FOSVRJWkVfRE9NICYmIChsY05hbWUgPT09ICdpZCcgfHwgbGNOYW1lID09PSAnbmFtZScpICYmICh2YWx1ZSBpbiBkb2N1bWVudCB8fCB2YWx1ZSBpbiBmb3JtRWxlbWVudCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLyogQWxsb3cgdmFsaWQgZGF0YS0qIGF0dHJpYnV0ZXM6IEF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIgYWZ0ZXIgXCItXCJcbiAgICAgICAgKGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2RvbS5odG1sI2VtYmVkZGluZy1jdXN0b20tbm9uLXZpc2libGUtZGF0YS13aXRoLXRoZS1kYXRhLSotYXR0cmlidXRlcylcbiAgICAgICAgWE1MLWNvbXBhdGlibGUgKGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2luZnJhc3RydWN0dXJlLmh0bWwjeG1sLWNvbXBhdGlibGUgYW5kIGh0dHA6Ly93d3cudzMub3JnL1RSL3htbC8jZDBlODA0KVxuICAgICAgICBXZSBkb24ndCBuZWVkIHRvIGNoZWNrIHRoZSB2YWx1ZTsgaXQncyBhbHdheXMgVVJJIHNhZmUuICovXG4gICAgaWYgKEFMTE9XX0RBVEFfQVRUUiAmJiAhRk9SQklEX0FUVFJbbGNOYW1lXSAmJiByZWdFeHBUZXN0KERBVEFfQVRUUiwgbGNOYW1lKSkgOyBlbHNlIGlmIChBTExPV19BUklBX0FUVFIgJiYgcmVnRXhwVGVzdChBUklBX0FUVFIsIGxjTmFtZSkpIDsgZWxzZSBpZiAoIUFMTE9XRURfQVRUUltsY05hbWVdIHx8IEZPUkJJRF9BVFRSW2xjTmFtZV0pIHtcbiAgICAgIGlmIChcbiAgICAgIC8vIEZpcnN0IGNvbmRpdGlvbiBkb2VzIGEgdmVyeSBiYXNpYyBjaGVjayBpZiBhKSBpdCdzIGJhc2ljYWxseSBhIHZhbGlkIGN1c3RvbSBlbGVtZW50IHRhZ25hbWUgQU5EXG4gICAgICAvLyBiKSBpZiB0aGUgdGFnTmFtZSBwYXNzZXMgd2hhdGV2ZXIgdGhlIHVzZXIgaGFzIGNvbmZpZ3VyZWQgZm9yIENVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLnRhZ05hbWVDaGVja1xuICAgICAgLy8gYW5kIGMpIGlmIHRoZSBhdHRyaWJ1dGUgbmFtZSBwYXNzZXMgd2hhdGV2ZXIgdGhlIHVzZXIgaGFzIGNvbmZpZ3VyZWQgZm9yIENVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmF0dHJpYnV0ZU5hbWVDaGVja1xuICAgICAgX2lzQmFzaWNDdXN0b21FbGVtZW50KGxjVGFnKSAmJiAoQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgUmVnRXhwICYmIHJlZ0V4cFRlc3QoQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrLCBsY1RhZykgfHwgQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgRnVuY3Rpb24gJiYgQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrKGxjVGFnKSkgJiYgKENVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmF0dHJpYnV0ZU5hbWVDaGVjayBpbnN0YW5jZW9mIFJlZ0V4cCAmJiByZWdFeHBUZXN0KENVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmF0dHJpYnV0ZU5hbWVDaGVjaywgbGNOYW1lKSB8fCBDVVNUT01fRUxFTUVOVF9IQU5ETElORy5hdHRyaWJ1dGVOYW1lQ2hlY2sgaW5zdGFuY2VvZiBGdW5jdGlvbiAmJiBDVVNUT01fRUxFTUVOVF9IQU5ETElORy5hdHRyaWJ1dGVOYW1lQ2hlY2sobGNOYW1lKSkgfHxcbiAgICAgIC8vIEFsdGVybmF0aXZlLCBzZWNvbmQgY29uZGl0aW9uIGNoZWNrcyBpZiBpdCdzIGFuIGBpc2AtYXR0cmlidXRlLCBBTkRcbiAgICAgIC8vIHRoZSB2YWx1ZSBwYXNzZXMgd2hhdGV2ZXIgdGhlIHVzZXIgaGFzIGNvbmZpZ3VyZWQgZm9yIENVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLnRhZ05hbWVDaGVja1xuICAgICAgbGNOYW1lID09PSAnaXMnICYmIENVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmFsbG93Q3VzdG9taXplZEJ1aWx0SW5FbGVtZW50cyAmJiAoQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgUmVnRXhwICYmIHJlZ0V4cFRlc3QoQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrLCB2YWx1ZSkgfHwgQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgRnVuY3Rpb24gJiYgQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrKHZhbHVlKSkpIDsgZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIC8qIENoZWNrIHZhbHVlIGlzIHNhZmUuIEZpcnN0LCBpcyBhdHRyIGluZXJ0PyBJZiBzbywgaXMgc2FmZSAqL1xuICAgIH0gZWxzZSBpZiAoVVJJX1NBRkVfQVRUUklCVVRFU1tsY05hbWVdKSA7IGVsc2UgaWYgKHJlZ0V4cFRlc3QoSVNfQUxMT1dFRF9VUkkkMSwgc3RyaW5nUmVwbGFjZSh2YWx1ZSwgQVRUUl9XSElURVNQQUNFLCAnJykpKSA7IGVsc2UgaWYgKChsY05hbWUgPT09ICdzcmMnIHx8IGxjTmFtZSA9PT0gJ3hsaW5rOmhyZWYnIHx8IGxjTmFtZSA9PT0gJ2hyZWYnKSAmJiBsY1RhZyAhPT0gJ3NjcmlwdCcgJiYgc3RyaW5nSW5kZXhPZih2YWx1ZSwgJ2RhdGE6JykgPT09IDAgJiYgREFUQV9VUklfVEFHU1tsY1RhZ10pIDsgZWxzZSBpZiAoQUxMT1dfVU5LTk9XTl9QUk9UT0NPTFMgJiYgIXJlZ0V4cFRlc3QoSVNfU0NSSVBUX09SX0RBVEEsIHN0cmluZ1JlcGxhY2UodmFsdWUsIEFUVFJfV0hJVEVTUEFDRSwgJycpKSkgOyBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSA7XG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG4gIC8qKlxuICAgKiBfaXNCYXNpY0N1c3RvbUVsZW1lbnRcbiAgICogY2hlY2tzIGlmIGF0IGxlYXN0IG9uZSBkYXNoIGlzIGluY2x1ZGVkIGluIHRhZ05hbWUsIGFuZCBpdCdzIG5vdCB0aGUgZmlyc3QgY2hhclxuICAgKiBmb3IgbW9yZSBzb3BoaXN0aWNhdGVkIGNoZWNraW5nIHNlZSBodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL3ZhbGlkYXRlLWVsZW1lbnQtbmFtZVxuICAgKlxuICAgKiBAcGFyYW0gdGFnTmFtZSBuYW1lIG9mIHRoZSB0YWcgb2YgdGhlIG5vZGUgdG8gc2FuaXRpemVcbiAgICogQHJldHVybnMgUmV0dXJucyB0cnVlIGlmIHRoZSB0YWcgbmFtZSBtZWV0cyB0aGUgYmFzaWMgY3JpdGVyaWEgZm9yIGEgY3VzdG9tIGVsZW1lbnQsIG90aGVyd2lzZSBmYWxzZS5cbiAgICovXG4gIGNvbnN0IF9pc0Jhc2ljQ3VzdG9tRWxlbWVudCA9IGZ1bmN0aW9uIF9pc0Jhc2ljQ3VzdG9tRWxlbWVudCh0YWdOYW1lKSB7XG4gICAgcmV0dXJuIHRhZ05hbWUgIT09ICdhbm5vdGF0aW9uLXhtbCcgJiYgc3RyaW5nTWF0Y2godGFnTmFtZSwgQ1VTVE9NX0VMRU1FTlQpO1xuICB9O1xuICAvKipcbiAgICogX3Nhbml0aXplQXR0cmlidXRlc1xuICAgKlxuICAgKiBAcHJvdGVjdCBhdHRyaWJ1dGVzXG4gICAqIEBwcm90ZWN0IG5vZGVOYW1lXG4gICAqIEBwcm90ZWN0IHJlbW92ZUF0dHJpYnV0ZVxuICAgKiBAcHJvdGVjdCBzZXRBdHRyaWJ1dGVcbiAgICpcbiAgICogQHBhcmFtIGN1cnJlbnROb2RlIHRvIHNhbml0aXplXG4gICAqL1xuICBjb25zdCBfc2FuaXRpemVBdHRyaWJ1dGVzID0gZnVuY3Rpb24gX3Nhbml0aXplQXR0cmlidXRlcyhjdXJyZW50Tm9kZSkge1xuICAgIC8qIEV4ZWN1dGUgYSBob29rIGlmIHByZXNlbnQgKi9cbiAgICBfZXhlY3V0ZUhvb2tzKGhvb2tzLmJlZm9yZVNhbml0aXplQXR0cmlidXRlcywgY3VycmVudE5vZGUsIG51bGwpO1xuICAgIGNvbnN0IHtcbiAgICAgIGF0dHJpYnV0ZXNcbiAgICB9ID0gY3VycmVudE5vZGU7XG4gICAgLyogQ2hlY2sgaWYgd2UgaGF2ZSBhdHRyaWJ1dGVzOyBpZiBub3Qgd2UgbWlnaHQgaGF2ZSBhIHRleHQgbm9kZSAqL1xuICAgIGlmICghYXR0cmlidXRlcyB8fCBfaXNDbG9iYmVyZWQoY3VycmVudE5vZGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGhvb2tFdmVudCA9IHtcbiAgICAgIGF0dHJOYW1lOiAnJyxcbiAgICAgIGF0dHJWYWx1ZTogJycsXG4gICAgICBrZWVwQXR0cjogdHJ1ZSxcbiAgICAgIGFsbG93ZWRBdHRyaWJ1dGVzOiBBTExPV0VEX0FUVFIsXG4gICAgICBmb3JjZUtlZXBBdHRyOiB1bmRlZmluZWRcbiAgICB9O1xuICAgIGxldCBsID0gYXR0cmlidXRlcy5sZW5ndGg7XG4gICAgLyogR28gYmFja3dhcmRzIG92ZXIgYWxsIGF0dHJpYnV0ZXM7IHNhZmVseSByZW1vdmUgYmFkIG9uZXMgKi9cbiAgICB3aGlsZSAobC0tKSB7XG4gICAgICBjb25zdCBhdHRyID0gYXR0cmlidXRlc1tsXTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgbmFtZXNwYWNlVVJJLFxuICAgICAgICB2YWx1ZTogYXR0clZhbHVlXG4gICAgICB9ID0gYXR0cjtcbiAgICAgIGNvbnN0IGxjTmFtZSA9IHRyYW5zZm9ybUNhc2VGdW5jKG5hbWUpO1xuICAgICAgbGV0IHZhbHVlID0gbmFtZSA9PT0gJ3ZhbHVlJyA/IGF0dHJWYWx1ZSA6IHN0cmluZ1RyaW0oYXR0clZhbHVlKTtcbiAgICAgIC8qIEV4ZWN1dGUgYSBob29rIGlmIHByZXNlbnQgKi9cbiAgICAgIGhvb2tFdmVudC5hdHRyTmFtZSA9IGxjTmFtZTtcbiAgICAgIGhvb2tFdmVudC5hdHRyVmFsdWUgPSB2YWx1ZTtcbiAgICAgIGhvb2tFdmVudC5rZWVwQXR0ciA9IHRydWU7XG4gICAgICBob29rRXZlbnQuZm9yY2VLZWVwQXR0ciA9IHVuZGVmaW5lZDsgLy8gQWxsb3dzIGRldmVsb3BlcnMgdG8gc2VlIHRoaXMgaXMgYSBwcm9wZXJ0eSB0aGV5IGNhbiBzZXRcbiAgICAgIF9leGVjdXRlSG9va3MoaG9va3MudXBvblNhbml0aXplQXR0cmlidXRlLCBjdXJyZW50Tm9kZSwgaG9va0V2ZW50KTtcbiAgICAgIHZhbHVlID0gaG9va0V2ZW50LmF0dHJWYWx1ZTtcbiAgICAgIC8qIEZ1bGwgRE9NIENsb2JiZXJpbmcgcHJvdGVjdGlvbiB2aWEgbmFtZXNwYWNlIGlzb2xhdGlvbixcbiAgICAgICAqIFByZWZpeCBpZCBhbmQgbmFtZSBhdHRyaWJ1dGVzIHdpdGggYHVzZXItY29udGVudC1gXG4gICAgICAgKi9cbiAgICAgIGlmIChTQU5JVElaRV9OQU1FRF9QUk9QUyAmJiAobGNOYW1lID09PSAnaWQnIHx8IGxjTmFtZSA9PT0gJ25hbWUnKSkge1xuICAgICAgICAvLyBSZW1vdmUgdGhlIGF0dHJpYnV0ZSB3aXRoIHRoaXMgdmFsdWVcbiAgICAgICAgX3JlbW92ZUF0dHJpYnV0ZShuYW1lLCBjdXJyZW50Tm9kZSk7XG4gICAgICAgIC8vIFByZWZpeCB0aGUgdmFsdWUgYW5kIGxhdGVyIHJlLWNyZWF0ZSB0aGUgYXR0cmlidXRlIHdpdGggdGhlIHNhbml0aXplZCB2YWx1ZVxuICAgICAgICB2YWx1ZSA9IFNBTklUSVpFX05BTUVEX1BST1BTX1BSRUZJWCArIHZhbHVlO1xuICAgICAgfVxuICAgICAgLyogV29yayBhcm91bmQgYSBzZWN1cml0eSBpc3N1ZSB3aXRoIGNvbW1lbnRzIGluc2lkZSBhdHRyaWJ1dGVzICovXG4gICAgICBpZiAoU0FGRV9GT1JfWE1MICYmIHJlZ0V4cFRlc3QoLygoLS0hP3xdKT4pfDxcXC8oc3R5bGV8dGl0bGUpL2ksIHZhbHVlKSkge1xuICAgICAgICBfcmVtb3ZlQXR0cmlidXRlKG5hbWUsIGN1cnJlbnROb2RlKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICAvKiBEaWQgdGhlIGhvb2tzIGFwcHJvdmUgb2YgdGhlIGF0dHJpYnV0ZT8gKi9cbiAgICAgIGlmIChob29rRXZlbnQuZm9yY2VLZWVwQXR0cikge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIC8qIFJlbW92ZSBhdHRyaWJ1dGUgKi9cbiAgICAgIF9yZW1vdmVBdHRyaWJ1dGUobmFtZSwgY3VycmVudE5vZGUpO1xuICAgICAgLyogRGlkIHRoZSBob29rcyBhcHByb3ZlIG9mIHRoZSBhdHRyaWJ1dGU/ICovXG4gICAgICBpZiAoIWhvb2tFdmVudC5rZWVwQXR0cikge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIC8qIFdvcmsgYXJvdW5kIGEgc2VjdXJpdHkgaXNzdWUgaW4galF1ZXJ5IDMuMCAqL1xuICAgICAgaWYgKCFBTExPV19TRUxGX0NMT1NFX0lOX0FUVFIgJiYgcmVnRXhwVGVzdCgvXFwvPi9pLCB2YWx1ZSkpIHtcbiAgICAgICAgX3JlbW92ZUF0dHJpYnV0ZShuYW1lLCBjdXJyZW50Tm9kZSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgLyogU2FuaXRpemUgYXR0cmlidXRlIGNvbnRlbnQgdG8gYmUgdGVtcGxhdGUtc2FmZSAqL1xuICAgICAgaWYgKFNBRkVfRk9SX1RFTVBMQVRFUykge1xuICAgICAgICBhcnJheUZvckVhY2goW01VU1RBQ0hFX0VYUFIsIEVSQl9FWFBSLCBUTVBMSVRfRVhQUl0sIGV4cHIgPT4ge1xuICAgICAgICAgIHZhbHVlID0gc3RyaW5nUmVwbGFjZSh2YWx1ZSwgZXhwciwgJyAnKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICAvKiBJcyBgdmFsdWVgIHZhbGlkIGZvciB0aGlzIGF0dHJpYnV0ZT8gKi9cbiAgICAgIGNvbnN0IGxjVGFnID0gdHJhbnNmb3JtQ2FzZUZ1bmMoY3VycmVudE5vZGUubm9kZU5hbWUpO1xuICAgICAgaWYgKCFfaXNWYWxpZEF0dHJpYnV0ZShsY1RhZywgbGNOYW1lLCB2YWx1ZSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICAvKiBIYW5kbGUgYXR0cmlidXRlcyB0aGF0IHJlcXVpcmUgVHJ1c3RlZCBUeXBlcyAqL1xuICAgICAgaWYgKHRydXN0ZWRUeXBlc1BvbGljeSAmJiB0eXBlb2YgdHJ1c3RlZFR5cGVzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgdHJ1c3RlZFR5cGVzLmdldEF0dHJpYnV0ZVR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaWYgKG5hbWVzcGFjZVVSSSkgOyBlbHNlIHtcbiAgICAgICAgICBzd2l0Y2ggKHRydXN0ZWRUeXBlcy5nZXRBdHRyaWJ1dGVUeXBlKGxjVGFnLCBsY05hbWUpKSB7XG4gICAgICAgICAgICBjYXNlICdUcnVzdGVkSFRNTCc6XG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHRydXN0ZWRUeXBlc1BvbGljeS5jcmVhdGVIVE1MKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnVHJ1c3RlZFNjcmlwdFVSTCc6XG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHRydXN0ZWRUeXBlc1BvbGljeS5jcmVhdGVTY3JpcHRVUkwodmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvKiBIYW5kbGUgaW52YWxpZCBkYXRhLSogYXR0cmlidXRlIHNldCBieSB0cnktY2F0Y2hpbmcgaXQgKi9cbiAgICAgIHRyeSB7XG4gICAgICAgIGlmIChuYW1lc3BhY2VVUkkpIHtcbiAgICAgICAgICBjdXJyZW50Tm9kZS5zZXRBdHRyaWJ1dGVOUyhuYW1lc3BhY2VVUkksIG5hbWUsIHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvKiBGYWxsYmFjayB0byBzZXRBdHRyaWJ1dGUoKSBmb3IgYnJvd3Nlci11bnJlY29nbml6ZWQgbmFtZXNwYWNlcyBlLmcuIFwieC1zY2hlbWFcIi4gKi9cbiAgICAgICAgICBjdXJyZW50Tm9kZS5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChfaXNDbG9iYmVyZWQoY3VycmVudE5vZGUpKSB7XG4gICAgICAgICAgX2ZvcmNlUmVtb3ZlKGN1cnJlbnROb2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhcnJheVBvcChET01QdXJpZnkucmVtb3ZlZCk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKF8pIHt9XG4gICAgfVxuICAgIC8qIEV4ZWN1dGUgYSBob29rIGlmIHByZXNlbnQgKi9cbiAgICBfZXhlY3V0ZUhvb2tzKGhvb2tzLmFmdGVyU2FuaXRpemVBdHRyaWJ1dGVzLCBjdXJyZW50Tm9kZSwgbnVsbCk7XG4gIH07XG4gIC8qKlxuICAgKiBfc2FuaXRpemVTaGFkb3dET01cbiAgICpcbiAgICogQHBhcmFtIGZyYWdtZW50IHRvIGl0ZXJhdGUgb3ZlciByZWN1cnNpdmVseVxuICAgKi9cbiAgY29uc3QgX3Nhbml0aXplU2hhZG93RE9NID0gZnVuY3Rpb24gX3Nhbml0aXplU2hhZG93RE9NKGZyYWdtZW50KSB7XG4gICAgbGV0IHNoYWRvd05vZGUgPSBudWxsO1xuICAgIGNvbnN0IHNoYWRvd0l0ZXJhdG9yID0gX2NyZWF0ZU5vZGVJdGVyYXRvcihmcmFnbWVudCk7XG4gICAgLyogRXhlY3V0ZSBhIGhvb2sgaWYgcHJlc2VudCAqL1xuICAgIF9leGVjdXRlSG9va3MoaG9va3MuYmVmb3JlU2FuaXRpemVTaGFkb3dET00sIGZyYWdtZW50LCBudWxsKTtcbiAgICB3aGlsZSAoc2hhZG93Tm9kZSA9IHNoYWRvd0l0ZXJhdG9yLm5leHROb2RlKCkpIHtcbiAgICAgIC8qIEV4ZWN1dGUgYSBob29rIGlmIHByZXNlbnQgKi9cbiAgICAgIF9leGVjdXRlSG9va3MoaG9va3MudXBvblNhbml0aXplU2hhZG93Tm9kZSwgc2hhZG93Tm9kZSwgbnVsbCk7XG4gICAgICAvKiBTYW5pdGl6ZSB0YWdzIGFuZCBlbGVtZW50cyAqL1xuICAgICAgX3Nhbml0aXplRWxlbWVudHMoc2hhZG93Tm9kZSk7XG4gICAgICAvKiBDaGVjayBhdHRyaWJ1dGVzIG5leHQgKi9cbiAgICAgIF9zYW5pdGl6ZUF0dHJpYnV0ZXMoc2hhZG93Tm9kZSk7XG4gICAgICAvKiBEZWVwIHNoYWRvdyBET00gZGV0ZWN0ZWQgKi9cbiAgICAgIGlmIChzaGFkb3dOb2RlLmNvbnRlbnQgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KSB7XG4gICAgICAgIF9zYW5pdGl6ZVNoYWRvd0RPTShzaGFkb3dOb2RlLmNvbnRlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgICAvKiBFeGVjdXRlIGEgaG9vayBpZiBwcmVzZW50ICovXG4gICAgX2V4ZWN1dGVIb29rcyhob29rcy5hZnRlclNhbml0aXplU2hhZG93RE9NLCBmcmFnbWVudCwgbnVsbCk7XG4gIH07XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG4gIERPTVB1cmlmeS5zYW5pdGl6ZSA9IGZ1bmN0aW9uIChkaXJ0eSkge1xuICAgIGxldCBjZmcgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICAgIGxldCBib2R5ID0gbnVsbDtcbiAgICBsZXQgaW1wb3J0ZWROb2RlID0gbnVsbDtcbiAgICBsZXQgY3VycmVudE5vZGUgPSBudWxsO1xuICAgIGxldCByZXR1cm5Ob2RlID0gbnVsbDtcbiAgICAvKiBNYWtlIHN1cmUgd2UgaGF2ZSBhIHN0cmluZyB0byBzYW5pdGl6ZS5cbiAgICAgIERPIE5PVCByZXR1cm4gZWFybHksIGFzIHRoaXMgd2lsbCByZXR1cm4gdGhlIHdyb25nIHR5cGUgaWZcbiAgICAgIHRoZSB1c2VyIGhhcyByZXF1ZXN0ZWQgYSBET00gb2JqZWN0IHJhdGhlciB0aGFuIGEgc3RyaW5nICovXG4gICAgSVNfRU1QVFlfSU5QVVQgPSAhZGlydHk7XG4gICAgaWYgKElTX0VNUFRZX0lOUFVUKSB7XG4gICAgICBkaXJ0eSA9ICc8IS0tPic7XG4gICAgfVxuICAgIC8qIFN0cmluZ2lmeSwgaW4gY2FzZSBkaXJ0eSBpcyBhbiBvYmplY3QgKi9cbiAgICBpZiAodHlwZW9mIGRpcnR5ICE9PSAnc3RyaW5nJyAmJiAhX2lzTm9kZShkaXJ0eSkpIHtcbiAgICAgIGlmICh0eXBlb2YgZGlydHkudG9TdHJpbmcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZGlydHkgPSBkaXJ0eS50b1N0cmluZygpO1xuICAgICAgICBpZiAodHlwZW9mIGRpcnR5ICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgIHRocm93IHR5cGVFcnJvckNyZWF0ZSgnZGlydHkgaXMgbm90IGEgc3RyaW5nLCBhYm9ydGluZycpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyB0eXBlRXJyb3JDcmVhdGUoJ3RvU3RyaW5nIGlzIG5vdCBhIGZ1bmN0aW9uJyk7XG4gICAgICB9XG4gICAgfVxuICAgIC8qIFJldHVybiBkaXJ0eSBIVE1MIGlmIERPTVB1cmlmeSBjYW5ub3QgcnVuICovXG4gICAgaWYgKCFET01QdXJpZnkuaXNTdXBwb3J0ZWQpIHtcbiAgICAgIHJldHVybiBkaXJ0eTtcbiAgICB9XG4gICAgLyogQXNzaWduIGNvbmZpZyB2YXJzICovXG4gICAgaWYgKCFTRVRfQ09ORklHKSB7XG4gICAgICBfcGFyc2VDb25maWcoY2ZnKTtcbiAgICB9XG4gICAgLyogQ2xlYW4gdXAgcmVtb3ZlZCBlbGVtZW50cyAqL1xuICAgIERPTVB1cmlmeS5yZW1vdmVkID0gW107XG4gICAgLyogQ2hlY2sgaWYgZGlydHkgaXMgY29ycmVjdGx5IHR5cGVkIGZvciBJTl9QTEFDRSAqL1xuICAgIGlmICh0eXBlb2YgZGlydHkgPT09ICdzdHJpbmcnKSB7XG4gICAgICBJTl9QTEFDRSA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoSU5fUExBQ0UpIHtcbiAgICAgIC8qIERvIHNvbWUgZWFybHkgcHJlLXNhbml0aXphdGlvbiB0byBhdm9pZCB1bnNhZmUgcm9vdCBub2RlcyAqL1xuICAgICAgaWYgKGRpcnR5Lm5vZGVOYW1lKSB7XG4gICAgICAgIGNvbnN0IHRhZ05hbWUgPSB0cmFuc2Zvcm1DYXNlRnVuYyhkaXJ0eS5ub2RlTmFtZSk7XG4gICAgICAgIGlmICghQUxMT1dFRF9UQUdTW3RhZ05hbWVdIHx8IEZPUkJJRF9UQUdTW3RhZ05hbWVdKSB7XG4gICAgICAgICAgdGhyb3cgdHlwZUVycm9yQ3JlYXRlKCdyb290IG5vZGUgaXMgZm9yYmlkZGVuIGFuZCBjYW5ub3QgYmUgc2FuaXRpemVkIGluLXBsYWNlJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRpcnR5IGluc3RhbmNlb2YgTm9kZSkge1xuICAgICAgLyogSWYgZGlydHkgaXMgYSBET00gZWxlbWVudCwgYXBwZW5kIHRvIGFuIGVtcHR5IGRvY3VtZW50IHRvIGF2b2lkXG4gICAgICAgICBlbGVtZW50cyBiZWluZyBzdHJpcHBlZCBieSB0aGUgcGFyc2VyICovXG4gICAgICBib2R5ID0gX2luaXREb2N1bWVudCgnPCEtLS0tPicpO1xuICAgICAgaW1wb3J0ZWROb2RlID0gYm9keS5vd25lckRvY3VtZW50LmltcG9ydE5vZGUoZGlydHksIHRydWUpO1xuICAgICAgaWYgKGltcG9ydGVkTm9kZS5ub2RlVHlwZSA9PT0gTk9ERV9UWVBFLmVsZW1lbnQgJiYgaW1wb3J0ZWROb2RlLm5vZGVOYW1lID09PSAnQk9EWScpIHtcbiAgICAgICAgLyogTm9kZSBpcyBhbHJlYWR5IGEgYm9keSwgdXNlIGFzIGlzICovXG4gICAgICAgIGJvZHkgPSBpbXBvcnRlZE5vZGU7XG4gICAgICB9IGVsc2UgaWYgKGltcG9ydGVkTm9kZS5ub2RlTmFtZSA9PT0gJ0hUTUwnKSB7XG4gICAgICAgIGJvZHkgPSBpbXBvcnRlZE5vZGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9wcmVmZXItZG9tLW5vZGUtYXBwZW5kXG4gICAgICAgIGJvZHkuYXBwZW5kQ2hpbGQoaW1wb3J0ZWROb2RlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLyogRXhpdCBkaXJlY3RseSBpZiB3ZSBoYXZlIG5vdGhpbmcgdG8gZG8gKi9cbiAgICAgIGlmICghUkVUVVJOX0RPTSAmJiAhU0FGRV9GT1JfVEVNUExBVEVTICYmICFXSE9MRV9ET0NVTUVOVCAmJlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vcHJlZmVyLWluY2x1ZGVzXG4gICAgICBkaXJ0eS5pbmRleE9mKCc8JykgPT09IC0xKSB7XG4gICAgICAgIHJldHVybiB0cnVzdGVkVHlwZXNQb2xpY3kgJiYgUkVUVVJOX1RSVVNURURfVFlQRSA/IHRydXN0ZWRUeXBlc1BvbGljeS5jcmVhdGVIVE1MKGRpcnR5KSA6IGRpcnR5O1xuICAgICAgfVxuICAgICAgLyogSW5pdGlhbGl6ZSB0aGUgZG9jdW1lbnQgdG8gd29yayBvbiAqL1xuICAgICAgYm9keSA9IF9pbml0RG9jdW1lbnQoZGlydHkpO1xuICAgICAgLyogQ2hlY2sgd2UgaGF2ZSBhIERPTSBub2RlIGZyb20gdGhlIGRhdGEgKi9cbiAgICAgIGlmICghYm9keSkge1xuICAgICAgICByZXR1cm4gUkVUVVJOX0RPTSA/IG51bGwgOiBSRVRVUk5fVFJVU1RFRF9UWVBFID8gZW1wdHlIVE1MIDogJyc7XG4gICAgICB9XG4gICAgfVxuICAgIC8qIFJlbW92ZSBmaXJzdCBlbGVtZW50IG5vZGUgKG91cnMpIGlmIEZPUkNFX0JPRFkgaXMgc2V0ICovXG4gICAgaWYgKGJvZHkgJiYgRk9SQ0VfQk9EWSkge1xuICAgICAgX2ZvcmNlUmVtb3ZlKGJvZHkuZmlyc3RDaGlsZCk7XG4gICAgfVxuICAgIC8qIEdldCBub2RlIGl0ZXJhdG9yICovXG4gICAgY29uc3Qgbm9kZUl0ZXJhdG9yID0gX2NyZWF0ZU5vZGVJdGVyYXRvcihJTl9QTEFDRSA/IGRpcnR5IDogYm9keSk7XG4gICAgLyogTm93IHN0YXJ0IGl0ZXJhdGluZyBvdmVyIHRoZSBjcmVhdGVkIGRvY3VtZW50ICovXG4gICAgd2hpbGUgKGN1cnJlbnROb2RlID0gbm9kZUl0ZXJhdG9yLm5leHROb2RlKCkpIHtcbiAgICAgIC8qIFNhbml0aXplIHRhZ3MgYW5kIGVsZW1lbnRzICovXG4gICAgICBfc2FuaXRpemVFbGVtZW50cyhjdXJyZW50Tm9kZSk7XG4gICAgICAvKiBDaGVjayBhdHRyaWJ1dGVzIG5leHQgKi9cbiAgICAgIF9zYW5pdGl6ZUF0dHJpYnV0ZXMoY3VycmVudE5vZGUpO1xuICAgICAgLyogU2hhZG93IERPTSBkZXRlY3RlZCwgc2FuaXRpemUgaXQgKi9cbiAgICAgIGlmIChjdXJyZW50Tm9kZS5jb250ZW50IGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudCkge1xuICAgICAgICBfc2FuaXRpemVTaGFkb3dET00oY3VycmVudE5vZGUuY29udGVudCk7XG4gICAgICB9XG4gICAgfVxuICAgIC8qIElmIHdlIHNhbml0aXplZCBgZGlydHlgIGluLXBsYWNlLCByZXR1cm4gaXQuICovXG4gICAgaWYgKElOX1BMQUNFKSB7XG4gICAgICByZXR1cm4gZGlydHk7XG4gICAgfVxuICAgIC8qIFJldHVybiBzYW5pdGl6ZWQgc3RyaW5nIG9yIERPTSAqL1xuICAgIGlmIChSRVRVUk5fRE9NKSB7XG4gICAgICBpZiAoUkVUVVJOX0RPTV9GUkFHTUVOVCkge1xuICAgICAgICByZXR1cm5Ob2RlID0gY3JlYXRlRG9jdW1lbnRGcmFnbWVudC5jYWxsKGJvZHkub3duZXJEb2N1bWVudCk7XG4gICAgICAgIHdoaWxlIChib2R5LmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9wcmVmZXItZG9tLW5vZGUtYXBwZW5kXG4gICAgICAgICAgcmV0dXJuTm9kZS5hcHBlbmRDaGlsZChib2R5LmZpcnN0Q2hpbGQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm5Ob2RlID0gYm9keTtcbiAgICAgIH1cbiAgICAgIGlmIChBTExPV0VEX0FUVFIuc2hhZG93cm9vdCB8fCBBTExPV0VEX0FUVFIuc2hhZG93cm9vdG1vZGUpIHtcbiAgICAgICAgLypcbiAgICAgICAgICBBZG9wdE5vZGUoKSBpcyBub3QgdXNlZCBiZWNhdXNlIGludGVybmFsIHN0YXRlIGlzIG5vdCByZXNldFxuICAgICAgICAgIChlLmcuIHRoZSBwYXN0IG5hbWVzIG1hcCBvZiBhIEhUTUxGb3JtRWxlbWVudCksIHRoaXMgaXMgc2FmZVxuICAgICAgICAgIGluIHRoZW9yeSBidXQgd2Ugd291bGQgcmF0aGVyIG5vdCByaXNrIGFub3RoZXIgYXR0YWNrIHZlY3Rvci5cbiAgICAgICAgICBUaGUgc3RhdGUgdGhhdCBpcyBjbG9uZWQgYnkgaW1wb3J0Tm9kZSgpIGlzIGV4cGxpY2l0bHkgZGVmaW5lZFxuICAgICAgICAgIGJ5IHRoZSBzcGVjcy5cbiAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuTm9kZSA9IGltcG9ydE5vZGUuY2FsbChvcmlnaW5hbERvY3VtZW50LCByZXR1cm5Ob2RlLCB0cnVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXR1cm5Ob2RlO1xuICAgIH1cbiAgICBsZXQgc2VyaWFsaXplZEhUTUwgPSBXSE9MRV9ET0NVTUVOVCA/IGJvZHkub3V0ZXJIVE1MIDogYm9keS5pbm5lckhUTUw7XG4gICAgLyogU2VyaWFsaXplIGRvY3R5cGUgaWYgYWxsb3dlZCAqL1xuICAgIGlmIChXSE9MRV9ET0NVTUVOVCAmJiBBTExPV0VEX1RBR1NbJyFkb2N0eXBlJ10gJiYgYm9keS5vd25lckRvY3VtZW50ICYmIGJvZHkub3duZXJEb2N1bWVudC5kb2N0eXBlICYmIGJvZHkub3duZXJEb2N1bWVudC5kb2N0eXBlLm5hbWUgJiYgcmVnRXhwVGVzdChET0NUWVBFX05BTUUsIGJvZHkub3duZXJEb2N1bWVudC5kb2N0eXBlLm5hbWUpKSB7XG4gICAgICBzZXJpYWxpemVkSFRNTCA9ICc8IURPQ1RZUEUgJyArIGJvZHkub3duZXJEb2N1bWVudC5kb2N0eXBlLm5hbWUgKyAnPlxcbicgKyBzZXJpYWxpemVkSFRNTDtcbiAgICB9XG4gICAgLyogU2FuaXRpemUgZmluYWwgc3RyaW5nIHRlbXBsYXRlLXNhZmUgKi9cbiAgICBpZiAoU0FGRV9GT1JfVEVNUExBVEVTKSB7XG4gICAgICBhcnJheUZvckVhY2goW01VU1RBQ0hFX0VYUFIsIEVSQl9FWFBSLCBUTVBMSVRfRVhQUl0sIGV4cHIgPT4ge1xuICAgICAgICBzZXJpYWxpemVkSFRNTCA9IHN0cmluZ1JlcGxhY2Uoc2VyaWFsaXplZEhUTUwsIGV4cHIsICcgJyk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRydXN0ZWRUeXBlc1BvbGljeSAmJiBSRVRVUk5fVFJVU1RFRF9UWVBFID8gdHJ1c3RlZFR5cGVzUG9saWN5LmNyZWF0ZUhUTUwoc2VyaWFsaXplZEhUTUwpIDogc2VyaWFsaXplZEhUTUw7XG4gIH07XG4gIERPTVB1cmlmeS5zZXRDb25maWcgPSBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGNmZyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gICAgX3BhcnNlQ29uZmlnKGNmZyk7XG4gICAgU0VUX0NPTkZJRyA9IHRydWU7XG4gIH07XG4gIERPTVB1cmlmeS5jbGVhckNvbmZpZyA9IGZ1bmN0aW9uICgpIHtcbiAgICBDT05GSUcgPSBudWxsO1xuICAgIFNFVF9DT05GSUcgPSBmYWxzZTtcbiAgfTtcbiAgRE9NUHVyaWZ5LmlzVmFsaWRBdHRyaWJ1dGUgPSBmdW5jdGlvbiAodGFnLCBhdHRyLCB2YWx1ZSkge1xuICAgIC8qIEluaXRpYWxpemUgc2hhcmVkIGNvbmZpZyB2YXJzIGlmIG5lY2Vzc2FyeS4gKi9cbiAgICBpZiAoIUNPTkZJRykge1xuICAgICAgX3BhcnNlQ29uZmlnKHt9KTtcbiAgICB9XG4gICAgY29uc3QgbGNUYWcgPSB0cmFuc2Zvcm1DYXNlRnVuYyh0YWcpO1xuICAgIGNvbnN0IGxjTmFtZSA9IHRyYW5zZm9ybUNhc2VGdW5jKGF0dHIpO1xuICAgIHJldHVybiBfaXNWYWxpZEF0dHJpYnV0ZShsY1RhZywgbGNOYW1lLCB2YWx1ZSk7XG4gIH07XG4gIERPTVB1cmlmeS5hZGRIb29rID0gZnVuY3Rpb24gKGVudHJ5UG9pbnQsIGhvb2tGdW5jdGlvbikge1xuICAgIGlmICh0eXBlb2YgaG9va0Z1bmN0aW9uICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGFycmF5UHVzaChob29rc1tlbnRyeVBvaW50XSwgaG9va0Z1bmN0aW9uKTtcbiAgfTtcbiAgRE9NUHVyaWZ5LnJlbW92ZUhvb2sgPSBmdW5jdGlvbiAoZW50cnlQb2ludCwgaG9va0Z1bmN0aW9uKSB7XG4gICAgaWYgKGhvb2tGdW5jdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBpbmRleCA9IGFycmF5TGFzdEluZGV4T2YoaG9va3NbZW50cnlQb2ludF0sIGhvb2tGdW5jdGlvbik7XG4gICAgICByZXR1cm4gaW5kZXggPT09IC0xID8gdW5kZWZpbmVkIDogYXJyYXlTcGxpY2UoaG9va3NbZW50cnlQb2ludF0sIGluZGV4LCAxKVswXTtcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5UG9wKGhvb2tzW2VudHJ5UG9pbnRdKTtcbiAgfTtcbiAgRE9NUHVyaWZ5LnJlbW92ZUhvb2tzID0gZnVuY3Rpb24gKGVudHJ5UG9pbnQpIHtcbiAgICBob29rc1tlbnRyeVBvaW50XSA9IFtdO1xuICB9O1xuICBET01QdXJpZnkucmVtb3ZlQWxsSG9va3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgaG9va3MgPSBfY3JlYXRlSG9va3NNYXAoKTtcbiAgfTtcbiAgcmV0dXJuIERPTVB1cmlmeTtcbn1cbnZhciBwdXJpZnkgPSBjcmVhdGVET01QdXJpZnkoKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwdXJpZnk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1wdXJpZnkuY2pzLmpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/dompurify/dist/purify.cjs.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/get-nonce/dist/es2015/index.js": /*!*****************************************************!*\ !*** ./node_modules/get-nonce/dist/es2015/index.js ***! \*****************************************************/ /***/ ((__unused_webpack_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 */ getNonce: () => (/* binding */ getNonce),\n/* harmony export */ setNonce: () => (/* binding */ setNonce)\n/* harmony export */ });\nvar currentNonce;\nvar setNonce = function (nonce) {\n currentNonce = nonce;\n};\nvar getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (true) {\n return __webpack_require__.nc;\n }\n return undefined;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9nZXQtbm9uY2UvZGlzdC9lczIwMTUvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUF3QztBQUNoRCxlQUFlLHNCQUFpQjtBQUNoQztBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL2dldC1ub25jZS9kaXN0L2VzMjAxNS9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgY3VycmVudE5vbmNlO1xuZXhwb3J0IHZhciBzZXROb25jZSA9IGZ1bmN0aW9uIChub25jZSkge1xuICAgIGN1cnJlbnROb25jZSA9IG5vbmNlO1xufTtcbmV4cG9ydCB2YXIgZ2V0Tm9uY2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGN1cnJlbnROb25jZSkge1xuICAgICAgICByZXR1cm4gY3VycmVudE5vbmNlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIF9fd2VicGFja19ub25jZV9fICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gX193ZWJwYWNrX25vbmNlX187XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/get-nonce/dist/es2015/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/isomorphic-dompurify/browser.js": /*!******************************************************!*\ !*** ./node_modules/isomorphic-dompurify/browser.js ***! \******************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval(__webpack_require__.ts("module.exports = window.DOMPurify || (window.DOMPurify = (__webpack_require__(/*! dompurify */ \"(app-pages-browser)/./node_modules/dompurify/dist/purify.cjs.js\")[\"default\"]) || __webpack_require__(/*! dompurify */ \"(app-pages-browser)/./node_modules/dompurify/dist/purify.cjs.js\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pc29tb3JwaGljLWRvbXB1cmlmeS9icm93c2VyLmpzIiwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RCxvSEFBNEIsSUFBSSxtQkFBTyxDQUFDLGtGQUFXIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9pc29tb3JwaGljLWRvbXB1cmlmeS9icm93c2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gd2luZG93LkRPTVB1cmlmeSB8fCAod2luZG93LkRPTVB1cmlmeSA9IHJlcXVpcmUoJ2RvbXB1cmlmeScpLmRlZmF1bHQgfHwgcmVxdWlyZSgnZG9tcHVyaWZ5JykpO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/isomorphic-dompurify/browser.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/Icon.js": /*!****************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/Icon.js ***! \****************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ Icon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _defaultAttributes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultAttributes.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js\");\n/* harmony import */ var _shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared/src/utils.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \n\n\nconst Icon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(_c = (param, ref)=>{\n let { color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, className = \"\", children, iconNode, ...rest } = param;\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"svg\", {\n ref,\n ..._defaultAttributes_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: (0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.mergeClasses)(\"lucide\", className),\n ...rest\n }, [\n ...iconNode.map((param)=>{\n let [tag, attrs] = param;\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(tag, attrs);\n }),\n ...Array.isArray(children) ? children : [\n children\n ]\n ]);\n});\n_c1 = Icon;\n //# sourceMappingURL=Icon.js.map\nvar _c, _c1;\n$RefreshReg$(_c, \"Icon$forwardRef\");\n$RefreshReg$(_c1, \"Icon\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vSWNvbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBd0JBLENBQU0sU0FBTyx3RUFDWCxRQVdFLEdBQ0c7UUFYSCxFQUNFLEtBQVEsbUJBQ1IsSUFBTyxPQUNQLFdBQWMsTUFDZCxxQkFDQSxTQUFZLE9BQ1osVUFDQSxVQUNBLEdBQUc7SUFJRSwyRUFDTCxNQUNBO1FBQ0U7UUFDQSxHQUFHO1FBQ0gsS0FBTztRQUNQLE1BQVE7UUFDUixNQUFRO1FBQ1IsWUFBYSxxQkFBdUIsUUFBTyxFQUFXLFlBQUksSUFBTSxVQUFPLENBQUksSUFBSTtRQUMvRSxVQUFXLG1FQUFhLFdBQVUsU0FBUztRQUMzQyxHQUFHO0lBQ0wsR0FDQTtXQUNLLENBQVMsWUFBSTtnQkFBQyxDQUFDLENBQUssS0FBSyxLQUFNO2lDQUFBLHFEQUFjLEdBQUssT0FBSyxDQUFDOztXQUN2RCxLQUFNLFNBQVEsUUFBUSxDQUFJLGNBQVc7WUFBQyxRQUFRO1NBQUE7S0FDcEQ7QUFFSiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9zcmMvSWNvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVFbGVtZW50LCBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHsgSWNvbk5vZGUsIEx1Y2lkZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBtZXJnZUNsYXNzZXMgfSBmcm9tICdAbHVjaWRlL3NoYXJlZCc7XG5cbmludGVyZmFjZSBJY29uQ29tcG9uZW50UHJvcHMgZXh0ZW5kcyBMdWNpZGVQcm9wcyB7XG4gIGljb25Ob2RlOiBJY29uTm9kZTtcbn1cblxuLyoqXG4gKiBMdWNpZGUgaWNvbiBjb21wb25lbnRcbiAqXG4gKiBAY29tcG9uZW50IEljb25cbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICogQHBhcmFtIHtzdHJpbmd9IHByb3BzLmNvbG9yIC0gVGhlIGNvbG9yIG9mIHRoZSBpY29uXG4gKiBAcGFyYW0ge251bWJlcn0gcHJvcHMuc2l6ZSAtIFRoZSBzaXplIG9mIHRoZSBpY29uXG4gKiBAcGFyYW0ge251bWJlcn0gcHJvcHMuc3Ryb2tlV2lkdGggLSBUaGUgc3Ryb2tlIHdpZHRoIG9mIHRoZSBpY29uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHByb3BzLmFic29sdXRlU3Ryb2tlV2lkdGggLSBXaGV0aGVyIHRvIHVzZSBhYnNvbHV0ZSBzdHJva2Ugd2lkdGhcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wcy5jbGFzc05hbWUgLSBUaGUgY2xhc3MgbmFtZSBvZiB0aGUgaWNvblxuICogQHBhcmFtIHtJY29uTm9kZX0gcHJvcHMuY2hpbGRyZW4gLSBUaGUgY2hpbGRyZW4gb2YgdGhlIGljb25cbiAqIEBwYXJhbSB7SWNvbk5vZGV9IHByb3BzLmljb25Ob2RlIC0gVGhlIGljb24gbm9kZSBvZiB0aGUgaWNvblxuICpcbiAqIEByZXR1cm5zIHtGb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50fSBMdWNpZGVJY29uXG4gKi9cbmNvbnN0IEljb24gPSBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Db21wb25lbnRQcm9wcz4oXG4gIChcbiAgICB7XG4gICAgICBjb2xvciA9ICdjdXJyZW50Q29sb3InLFxuICAgICAgc2l6ZSA9IDI0LFxuICAgICAgc3Ryb2tlV2lkdGggPSAyLFxuICAgICAgYWJzb2x1dGVTdHJva2VXaWR0aCxcbiAgICAgIGNsYXNzTmFtZSA9ICcnLFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBpY29uTm9kZSxcbiAgICAgIC4uLnJlc3RcbiAgICB9LFxuICAgIHJlZixcbiAgKSA9PiB7XG4gICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoXG4gICAgICAnc3ZnJyxcbiAgICAgIHtcbiAgICAgICAgcmVmLFxuICAgICAgICAuLi5kZWZhdWx0QXR0cmlidXRlcyxcbiAgICAgICAgd2lkdGg6IHNpemUsXG4gICAgICAgIGhlaWdodDogc2l6ZSxcbiAgICAgICAgc3Ryb2tlOiBjb2xvcixcbiAgICAgICAgc3Ryb2tlV2lkdGg6IGFic29sdXRlU3Ryb2tlV2lkdGggPyAoTnVtYmVyKHN0cm9rZVdpZHRoKSAqIDI0KSAvIE51bWJlcihzaXplKSA6IHN0cm9rZVdpZHRoLFxuICAgICAgICBjbGFzc05hbWU6IG1lcmdlQ2xhc3NlcygnbHVjaWRlJywgY2xhc3NOYW1lKSxcbiAgICAgICAgLi4ucmVzdCxcbiAgICAgIH0sXG4gICAgICBbXG4gICAgICAgIC4uLmljb25Ob2RlLm1hcCgoW3RhZywgYXR0cnNdKSA9PiBjcmVhdGVFbGVtZW50KHRhZywgYXR0cnMpKSxcbiAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pID8gY2hpbGRyZW4gOiBbY2hpbGRyZW5dKSxcbiAgICAgIF0sXG4gICAgKTtcbiAgfSxcbik7XG5cbmV4cG9ydCBkZWZhdWx0IEljb247XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/Icon.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js": /*!****************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/createLucideIcon.js ***! \****************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ createLucideIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared/src/utils.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\");\n/* harmony import */ var _Icon_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Icon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/Icon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \n\n\nconst createLucideIcon = (iconName, iconNode)=>{\n const Component = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_Icon_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n ref,\n iconNode,\n className: (0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.mergeClasses)(\"lucide-\".concat((0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.toKebabCase)(iconName)), className),\n ...props\n });\n });\n Component.displayName = \"\".concat(iconName);\n return Component;\n};\n //# sourceMappingURL=createLucideIcon.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vY3JlYXRlTHVjaWRlSWNvbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBV00sdUJBQW1CLEdBQUMsVUFBa0IsUUFBdUI7SUFDakUsTUFBTSxDQUFZLG1GQUFpRTtZQUF6QixFQUFFLENBQVcsV0FBRyxRQUFTOzZCQUNqRixvREFBYSxDQUFDLGdEQUFNO1lBQ2xCO1lBQ0E7WUFDQSxXQUFXLGtFQUFhLFdBQStCLE9BQXJCLGlFQUFXLENBQUMsUUFBUSxDQUFDLEdBQUksU0FBUztZQUNwRSxHQUFHO1FBQUEsQ0FDSjs7SUFHTyx3QkFBYyxDQUFHLEVBQVEsT0FBUixRQUFRO0lBRTVCO0FBQ1QiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvc3JjL2NyZWF0ZUx1Y2lkZUljb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlRWxlbWVudCwgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IG1lcmdlQ2xhc3NlcywgdG9LZWJhYkNhc2UgfSBmcm9tICdAbHVjaWRlL3NoYXJlZCc7XG5pbXBvcnQgeyBJY29uTm9kZSwgTHVjaWRlUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCBJY29uIGZyb20gJy4vSWNvbic7XG5cbi8qKlxuICogQ3JlYXRlIGEgTHVjaWRlIGljb24gY29tcG9uZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gaWNvbk5hbWVcbiAqIEBwYXJhbSB7YXJyYXl9IGljb25Ob2RlXG4gKiBAcmV0dXJucyB7Rm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudH0gTHVjaWRlSWNvblxuICovXG5jb25zdCBjcmVhdGVMdWNpZGVJY29uID0gKGljb25OYW1lOiBzdHJpbmcsIGljb25Ob2RlOiBJY29uTm9kZSkgPT4ge1xuICBjb25zdCBDb21wb25lbnQgPSBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEx1Y2lkZVByb3BzPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT5cbiAgICBjcmVhdGVFbGVtZW50KEljb24sIHtcbiAgICAgIHJlZixcbiAgICAgIGljb25Ob2RlLFxuICAgICAgY2xhc3NOYW1lOiBtZXJnZUNsYXNzZXMoYGx1Y2lkZS0ke3RvS2ViYWJDYXNlKGljb25OYW1lKX1gLCBjbGFzc05hbWUpLFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSksXG4gICk7XG5cbiAgQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gYCR7aWNvbk5hbWV9YDtcblxuICByZXR1cm4gQ29tcG9uZW50O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlTHVjaWRlSWNvbjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js": /*!*****************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/defaultAttributes.js ***! \*****************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ defaultAttributes)\n/* harmony export */ });\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ var defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n //# sourceMappingURL=defaultAttributes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vZGVmYXVsdEF0dHJpYnV0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsQ0FBZTtJQUNiLEtBQU87SUFDUCxLQUFPO0lBQ1AsTUFBUTtJQUNSLE9BQVM7SUFDVCxJQUFNO0lBQ04sTUFBUTtJQUNSLFdBQWE7SUFDYixhQUFlO0lBQ2YsY0FBZ0I7QUFDbEIiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvc3JjL2RlZmF1bHRBdHRyaWJ1dGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcbiAgeG1sbnM6ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsXG4gIHdpZHRoOiAyNCxcbiAgaGVpZ2h0OiAyNCxcbiAgdmlld0JveDogJzAgMCAyNCAyNCcsXG4gIGZpbGw6ICdub25lJyxcbiAgc3Ryb2tlOiAnY3VycmVudENvbG9yJyxcbiAgc3Ryb2tlV2lkdGg6IDIsXG4gIHN0cm9rZUxpbmVjYXA6ICdyb3VuZCcsXG4gIHN0cm9rZUxpbmVqb2luOiAncm91bmQnLFxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/archive.js": /*!*************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/archive.js ***! \*************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ Archive)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Archive = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Archive\", [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"5\",\n x: \"2\",\n y: \"3\",\n rx: \"1\",\n key: \"1wp1u1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8\",\n key: \"1s80jp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 12h4\",\n key: \"a56b0p\"\n }\n ]\n]);\n //# sourceMappingURL=archive.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvYXJjaGl2ZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGdCQUFVLGdFQUFnQixDQUFDLFNBQVc7SUFDMUM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQU0sQ0FBUTtZQUFLLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0QztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzFDIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvYXJjaGl2ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFyY2hpdmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakFpSUdobGFXZG9kRDBpTlNJZ2VEMGlNaUlnZVQwaU15SWdjbmc5SWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ09IWXhNV0V5SURJZ01DQXdJREFnTWlBeWFERXlZVElnTWlBd0lEQWdNQ0F5TFRKV09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVEpvTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FyY2hpdmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBcmNoaXZlID0gY3JlYXRlTHVjaWRlSWNvbignQXJjaGl2ZScsIFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnNScsIHg6ICcyJywgeTogJzMnLCByeDogJzEnLCBrZXk6ICcxd3AxdTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCA4djExYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4Jywga2V5OiAnMXM4MGpwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEyaDQnLCBrZXk6ICdhNTZiMHAnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFyY2hpdmU7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/archive.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check.js": /*!***********************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/check.js ***! \***********************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ Check)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Check = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Check\", [\n [\n \"path\",\n {\n d: \"M20 6 9 17l-5-5\",\n key: \"1gmf2c\"\n }\n ]\n]);\n //# sourceMappingURL=check.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hlY2suanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFhQSxDQUFNLFVBQVEsb0VBQWlCLE9BQVM7SUFBQztRQUFDO1FBQVE7WUFBRSxHQUFHLGlCQUFtQjtZQUFBLEtBQUssQ0FBUztRQUFBLENBQUM7S0FBQztDQUFDIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvY2hlY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaGVja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ05pQTVJREUzYkMwMUxUVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoZWNrID0gY3JlYXRlTHVjaWRlSWNvbignQ2hlY2snLCBbWydwYXRoJywgeyBkOiAnTTIwIDYgOSAxN2wtNS01Jywga2V5OiAnMWdtZjJjJyB9XV0pO1xuXG5leHBvcnQgZGVmYXVsdCBDaGVjaztcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-down.js": /*!******************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/chevron-down.js ***! \******************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ ChevronDown)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst ChevronDown = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ChevronDown\", [\n [\n \"path\",\n {\n d: \"m6 9 6 6 6-6\",\n key: \"qrunsl\"\n }\n ]\n]);\n //# sourceMappingURL=chevron-down.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1kb3duLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sb0JBQWMsZ0VBQWdCLENBQUMsYUFBZTtJQUNsRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZ0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzlDIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvY2hldnJvbi1kb3duLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hldnJvbkRvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE5pQTVJRFlnTmlBMkxUWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGV2cm9uLWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGV2cm9uRG93biA9IGNyZWF0ZUx1Y2lkZUljb24oJ0NoZXZyb25Eb3duJywgW1xuICBbJ3BhdGgnLCB7IGQ6ICdtNiA5IDYgNiA2LTYnLCBrZXk6ICdxcnVuc2wnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoZXZyb25Eb3duO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-down.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-left.js": /*!******************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/chevron-left.js ***! \******************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ ChevronLeft)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst ChevronLeft = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ChevronLeft\", [\n [\n \"path\",\n {\n d: \"m15 18-6-6 6-6\",\n key: \"1wnfg3\"\n }\n ]\n]);\n //# sourceMappingURL=chevron-left.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1sZWZ0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sb0JBQWMsZ0VBQWdCLENBQUMsYUFBZTtJQUNsRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBa0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQ2hEIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvY2hldnJvbi1sZWZ0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hldnJvbkxlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UVWdNVGd0TmkwMklEWXROaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hldnJvbi1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2hldnJvbkxlZnQgPSBjcmVhdGVMdWNpZGVJY29uKCdDaGV2cm9uTGVmdCcsIFtcbiAgWydwYXRoJywgeyBkOiAnbTE1IDE4LTYtNiA2LTYnLCBrZXk6ICcxd25mZzMnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoZXZyb25MZWZ0O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-left.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-right.js": /*!*******************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/chevron-right.js ***! \*******************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ ChevronRight)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst ChevronRight = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ChevronRight\", [\n [\n \"path\",\n {\n d: \"m9 18 6-6-6-6\",\n key: \"mthhwq\"\n }\n ]\n]);\n //# sourceMappingURL=chevron-right.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1yaWdodC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLHFCQUFlLGdFQUFnQixDQUFDLGNBQWdCO0lBQ3BEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDL0MiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9pY29ucy9jaGV2cm9uLXJpZ2h0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hldnJvblJpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRPU0F4T0NBMkxUWXROaTAySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hldnJvbi1yaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoZXZyb25SaWdodCA9IGNyZWF0ZUx1Y2lkZUljb24oJ0NoZXZyb25SaWdodCcsIFtcbiAgWydwYXRoJywgeyBkOiAnbTkgMTggNi02LTYtNicsIGtleTogJ210aGh3cScgfV0sXG5dKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hldnJvblJpZ2h0O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-right.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-up.js": /*!****************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/chevron-up.js ***! \****************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ ChevronUp)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst ChevronUp = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ChevronUp\", [\n [\n \"path\",\n {\n d: \"m18 15-6-6-6 6\",\n key: \"153udz\"\n }\n ]\n]);\n //# sourceMappingURL=chevron-up.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hldnJvbi11cC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFBLENBQU0sY0FBWSxvRUFBaUIsV0FBYTtJQUFDO1FBQUM7UUFBUTtZQUFFLEdBQUcsZ0JBQWtCO1lBQUEsS0FBSyxDQUFTO1FBQUEsQ0FBQztLQUFDO0NBQUMiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9pY29ucy9jaGV2cm9uLXVwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hldnJvblVwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGdnTVRVdE5pMDJMVFlnTmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoZXZyb24tdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGV2cm9uVXAgPSBjcmVhdGVMdWNpZGVJY29uKCdDaGV2cm9uVXAnLCBbWydwYXRoJywgeyBkOiAnbTE4IDE1LTYtNi02IDYnLCBrZXk6ICcxNTN1ZHonIH1dXSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoZXZyb25VcDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-up.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-alert.js": /*!******************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/circle-alert.js ***! \******************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ CircleAlert)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst CircleAlert = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"CircleAlert\", [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"8\",\n y2: \"12\",\n key: \"1pkeuh\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12.01\",\n y1: \"16\",\n y2: \"16\",\n key: \"4dfq90\"\n }\n ]\n]);\n //# sourceMappingURL=circle-alert.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFsZXJ0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sb0JBQWMsZ0VBQWdCLENBQUMsYUFBZTtJQUNsRDtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQU0sR0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RDtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksQ0FBTTtZQUFBLEdBQUksSUFBSztZQUFBLEdBQUksS0FBTTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakU7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQU07WUFBQSxJQUFJLENBQVM7WUFBQSxHQUFJLEtBQU07WUFBQSxHQUFJLEtBQU07WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQ3RFIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvY2lyY2xlLWFsZXJ0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlQWxlcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1USWlJSGd5UFNJeE1pSWdlVEU5SWpnaUlIa3lQU0l4TWlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRJaUlIZ3lQU0l4TWk0d01TSWdlVEU5SWpFMklpQjVNajBpTVRZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1hbGVydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENpcmNsZUFsZXJ0ID0gY3JlYXRlTHVjaWRlSWNvbignQ2lyY2xlQWxlcnQnLCBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzgnLCB5MjogJzEyJywga2V5OiAnMXBrZXVoJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMi4wMScsIHkxOiAnMTYnLCB5MjogJzE2Jywga2V5OiAnNGRmcTkwJyB9XSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVBbGVydDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-alert.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle.js": /*!************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/circle.js ***! \************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ Circle)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Circle = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Circle\", [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n]);\n //# sourceMappingURL=circle.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2lyY2xlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sZUFBUyxnRUFBZ0IsQ0FBQyxRQUFVO0lBQ3hDO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksUUFBTTtZQUFBLENBQUc7WUFBTSxHQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzFEIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvY2lyY2xlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlID0gY3JlYXRlTHVjaWRlSWNvbignQ2lyY2xlJywgW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/eye-off.js": /*!*************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/eye-off.js ***! \*************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ EyeOff)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst EyeOff = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"EyeOff\", [\n [\n \"path\",\n {\n d: \"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\",\n key: \"ct8e1f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.084 14.158a3 3 0 0 1-4.242-4.242\",\n key: \"151rxh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\",\n key: \"13bj9a\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ]\n]);\n //# sourceMappingURL=eye-off.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvZXllLW9mZi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGVBQVMsZ0VBQWdCLENBQUMsUUFBVTtJQUN4QztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUNQO0tBQ0Y7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBd0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3JFO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQ1A7S0FDRjtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUM1QyIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2ljb25zL2V5ZS1vZmYudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBFeWVPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVOek16SURVdU1EYzJZVEV3TGpjME5DQXhNQzQzTkRRZ01DQXdJREVnTVRFdU1qQTFJRFl1TlRjMUlERWdNU0F3SURBZ01TQXdJQzQyT1RZZ01UQXVOelEzSURFd0xqYzBOeUF3SURBZ01TMHhMalEwTkNBeUxqUTVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQzR3T0RRZ01UUXVNVFU0WVRNZ015QXdJREFnTVMwMExqSTBNaTAwTGpJME1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY3VORGM1SURFM0xqUTVPV0V4TUM0M05TQXhNQzQzTlNBd0lEQWdNUzB4TlM0ME1UY3ROUzR4TlRFZ01TQXhJREFnTUNBeElEQXRMalk1TmlBeE1DNDNOU0F4TUM0M05TQXdJREFnTVNBMExqUTBOaTAxTGpFME15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXlJREl3SURJd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2V5ZS1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBFeWVPZmYgPSBjcmVhdGVMdWNpZGVJY29uKCdFeWVPZmYnLCBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMC43MzMgNS4wNzZhMTAuNzQ0IDEwLjc0NCAwIDAgMSAxMS4yMDUgNi41NzUgMSAxIDAgMCAxIDAgLjY5NiAxMC43NDcgMTAuNzQ3IDAgMCAxLTEuNDQ0IDIuNDknLFxuICAgICAga2V5OiAnY3Q4ZTFmJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQuMDg0IDE0LjE1OGEzIDMgMCAwIDEtNC4yNDItNC4yNDInLCBrZXk6ICcxNTFyeGgnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTcuNDc5IDE3LjQ5OWExMC43NSAxMC43NSAwIDAgMS0xNS40MTctNS4xNTEgMSAxIDAgMCAxIDAtLjY5NiAxMC43NSAxMC43NSAwIDAgMSA0LjQ0Ni01LjE0MycsXG4gICAgICBrZXk6ICcxM2JqOWEnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IEV5ZU9mZjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/eye-off.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/folder.js": /*!************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/folder.js ***! \************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ Folder)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Folder = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Folder\", [\n [\n \"path\",\n {\n d: \"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\",\n key: \"1kt360\"\n }\n ]\n]);\n //# sourceMappingURL=folder.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvZm9sZGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sZUFBUyxnRUFBZ0IsQ0FBQyxRQUFVO0lBQ3hDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQ1A7S0FDRjtDQUNEIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvZm9sZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRm9sZGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTWpCaE1pQXlJREFnTUNBd0lESXRNbFk0WVRJZ01pQXdJREFnTUMweUxUSm9MVGN1T1dFeUlESWdNQ0F3SURFdE1TNDJPUzB1T1V3NUxqWWdNeTQ1UVRJZ01pQXdJREFnTUNBM0xqa3pJRE5JTkdFeUlESWdNQ0F3SURBdE1pQXlkakV6WVRJZ01pQXdJREFnTUNBeUlESmFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGb2xkZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdGb2xkZXInLCBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMlonLFxuICAgICAga2V5OiAnMWt0MzYwJyxcbiAgICB9LFxuICBdLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlcjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/folder.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/forward.js": /*!*************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/forward.js ***! \*************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ Forward)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Forward = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Forward\", [\n [\n \"polyline\",\n {\n points: \"15 17 20 12 15 7\",\n key: \"1w3sku\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 18v-2a4 4 0 0 1 4-4h12\",\n key: \"jmiej9\"\n }\n ]\n]);\n //# sourceMappingURL=forward.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvZm9yd2FyZC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGdCQUFVLGdFQUFnQixDQUFDLFNBQVc7SUFDMUM7UUFBQyxVQUFZO1FBQUE7WUFBRSxRQUFRLENBQW9CO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzNEIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvZm9yd2FyZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZvcndhcmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHOXNlV3hwYm1VZ2NHOXBiblJ6UFNJeE5TQXhOeUF5TUNBeE1pQXhOU0EzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURFNGRpMHlZVFFnTkNBd0lEQWdNU0EwTFRSb01USWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb3J3YXJkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRm9yd2FyZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ0ZvcndhcmQnLCBbXG4gIFsncG9seWxpbmUnLCB7IHBvaW50czogJzE1IDE3IDIwIDEyIDE1IDcnLCBrZXk6ICcxdzNza3UnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxOHYtMmE0IDQgMCAwIDEgNC00aDEyJywga2V5OiAnam1pZWo5JyB9XSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBGb3J3YXJkO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/forward.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/inbox.js": /*!***********************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/inbox.js ***! \***********************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ Inbox)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Inbox = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Inbox\", [\n [\n \"polyline\",\n {\n points: \"22 12 16 12 14 15 10 15 8 12 2 12\",\n key: \"o97t9d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\",\n key: \"oot6mr\"\n }\n ]\n]);\n //# sourceMappingURL=inbox.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvaW5ib3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFhTSxjQUFRLGdFQUFnQixDQUFDLE9BQVM7SUFDdEM7UUFBQyxVQUFZO1FBQUE7WUFBRSxRQUFRLENBQXFDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzRTtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUNQO0tBQ0Y7Q0FDRCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2ljb25zL2luYm94LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSW5ib3hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHOXNlV3hwYm1VZ2NHOXBiblJ6UFNJeU1pQXhNaUF4TmlBeE1pQXhOQ0F4TlNBeE1DQXhOU0E0SURFeUlESWdNVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFV1TkRVZ05TNHhNU0F5SURFeWRqWmhNaUF5SURBZ01DQXdJRElnTW1neE5tRXlJRElnTUNBd0lEQWdNaTB5ZGkwMmJDMHpMalExTFRZdU9EbEJNaUF5SURBZ01DQXdJREUyTGpjMklEUklOeTR5TkdFeUlESWdNQ0F3SURBdE1TNDNPU0F4TGpFeGVpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pbmJveFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEluYm94ID0gY3JlYXRlTHVjaWRlSWNvbignSW5ib3gnLCBbXG4gIFsncG9seWxpbmUnLCB7IHBvaW50czogJzIyIDEyIDE2IDEyIDE0IDE1IDEwIDE1IDggMTIgMiAxMicsIGtleTogJ285N3Q5ZCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ001LjQ1IDUuMTEgMiAxMnY2YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNmwtMy40NS02Ljg5QTIgMiAwIDAgMCAxNi43NiA0SDcuMjRhMiAyIDAgMCAwLTEuNzkgMS4xMXonLFxuICAgICAga2V5OiAnb290Nm1yJyxcbiAgICB9LFxuICBdLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IEluYm94O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/inbox.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/loader-circle.js": /*!*******************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/loader-circle.js ***! \*******************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ LoaderCircle)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst LoaderCircle = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"LoaderCircle\", [\n [\n \"path\",\n {\n d: \"M21 12a9 9 0 1 1-6.219-8.56\",\n key: \"13zald\"\n }\n ]\n]);\n //# sourceMappingURL=loader-circle.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbG9hZGVyLWNpcmNsZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLHFCQUFlLGdFQUFnQixDQUFDLGNBQWdCO0lBQ3BEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUErQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDN0QiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9pY29ucy9sb2FkZXItY2lyY2xlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTG9hZGVyQ2lyY2xlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRKaE9TQTVJREFnTVNBeExUWXVNakU1TFRndU5UWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sb2FkZXItY2lyY2xlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTG9hZGVyQ2lyY2xlID0gY3JlYXRlTHVjaWRlSWNvbignTG9hZGVyQ2lyY2xlJywgW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTYnLCBrZXk6ICcxM3phbGQnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IExvYWRlckNpcmNsZTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/loader-circle.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/mail.js": /*!**********************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/mail.js ***! \**********************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ Mail)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Mail = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Mail\", [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"16\",\n x: \"2\",\n y: \"4\",\n rx: \"2\",\n key: \"18n3k1\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\",\n key: \"1ocrg3\"\n }\n ]\n]);\n //# sourceMappingURL=mail.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbWFpbC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGFBQU8sZ0VBQWdCLENBQUMsTUFBUTtJQUNwQztRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBTSxDQUFRO1lBQU0sQ0FBRztZQUFLLEdBQUcsQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTZDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUMzRSIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2ljb25zL21haWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNYWlsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU1UWWlJSGc5SWpJaUlIazlJalFpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNaUEzTFRndU9UY2dOUzQzWVRFdU9UUWdNUzQ1TkNBd0lEQWdNUzB5TGpBMklEQk1NaUEzSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFpbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1haWwgPSBjcmVhdGVMdWNpZGVJY29uKCdNYWlsJywgW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNicsIHg6ICcyJywgeTogJzQnLCByeDogJzInLCBrZXk6ICcxOG4zazEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNycsIGtleTogJzFvY3JnMycgfV0sXG5dKTtcblxuZXhwb3J0IGRlZmF1bHQgTWFpbDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/mail.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/menu.js": /*!**********************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/menu.js ***! \**********************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ Menu)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Menu = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Menu\", [\n [\n \"line\",\n {\n x1: \"4\",\n x2: \"20\",\n y1: \"12\",\n y2: \"12\",\n key: \"1e0a9i\"\n }\n ],\n [\n \"line\",\n {\n x1: \"4\",\n x2: \"20\",\n y1: \"6\",\n y2: \"6\",\n key: \"1owob3\"\n }\n ],\n [\n \"line\",\n {\n x1: \"4\",\n x2: \"20\",\n y1: \"18\",\n y2: \"18\",\n key: \"yk5zj1\"\n }\n ]\n]);\n //# sourceMappingURL=menu.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbWVudS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGFBQU8sZ0VBQWdCLENBQUMsTUFBUTtJQUNwQztRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBSztZQUFBLElBQUksQ0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakU7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQUs7WUFBQSxJQUFJLENBQU07WUFBQSxHQUFJLElBQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQy9EO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFLO1lBQUEsSUFBSSxDQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUNsRSIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2ljb25zL21lbnUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNZW51XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlOQ0lnZURJOUlqSXdJaUI1TVQwaU1USWlJSGt5UFNJeE1pSWdMejRLSUNBOGJHbHVaU0I0TVQwaU5DSWdlREk5SWpJd0lpQjVNVDBpTmlJZ2VUSTlJallpSUM4K0NpQWdQR3hwYm1VZ2VERTlJalFpSUhneVBTSXlNQ0lnZVRFOUlqRTRJaUI1TWowaU1UZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZW51XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWVudSA9IGNyZWF0ZUx1Y2lkZUljb24oJ01lbnUnLCBbXG4gIFsnbGluZScsIHsgeDE6ICc0JywgeDI6ICcyMCcsIHkxOiAnMTInLCB5MjogJzEyJywga2V5OiAnMWUwYTlpJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzQnLCB4MjogJzIwJywgeTE6ICc2JywgeTI6ICc2Jywga2V5OiAnMW93b2IzJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzQnLCB4MjogJzIwJywgeTE6ICcxOCcsIHkyOiAnMTgnLCBrZXk6ICd5azV6ajEnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1lbnU7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/menu.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/message-square.js": /*!********************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/message-square.js ***! \********************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ MessageSquare)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst MessageSquare = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"MessageSquare\", [\n [\n \"path\",\n {\n d: \"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\",\n key: \"1lielz\"\n }\n ]\n]);\n //# sourceMappingURL=message-square.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFhTSxzQkFBZ0IsZ0VBQWdCLENBQUMsZUFBaUI7SUFDdEQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlFO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUMvRiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2ljb25zL21lc3NhZ2Utc3F1YXJlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWVzc2FnZVNxdWFyZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UVmhNaUF5SURBZ01DQXhMVElnTWtnM2JDMDBJRFJXTldFeUlESWdNQ0F3SURFZ01pMHlhREUwWVRJZ01pQXdJREFnTVNBeUlESjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZXNzYWdlLXNxdWFyZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VTcXVhcmUgPSBjcmVhdGVMdWNpZGVJY29uKCdNZXNzYWdlU3F1YXJlJywgW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTVhMiAyIDAgMCAxLTIgMkg3bC00IDRWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ6Jywga2V5OiAnMWxpZWx6JyB9XSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBNZXNzYWdlU3F1YXJlO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/message-square.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/octagon-alert.js": /*!*******************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/octagon-alert.js ***! \*******************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ OctagonAlert)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst OctagonAlert = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"OctagonAlert\", [\n [\n \"path\",\n {\n d: \"M12 16h.01\",\n key: \"1drbdi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8v4\",\n key: \"1got3b\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.312 2a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z\",\n key: \"1fd625\"\n }\n ]\n]);\n //# sourceMappingURL=octagon-alert.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvb2N0YWdvbi1hbGVydC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLHFCQUFlLGdFQUFnQixDQUFDLGNBQWdCO0lBQ3BEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFDUDtLQUNGO0NBQ0QiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9pY29ucy9vY3RhZ29uLWFsZXJ0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgT2N0YWdvbkFsZXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRab0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUE0ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUxqTXhNaUF5WVRJZ01pQXdJREFnTVNBeExqUXhOQzQxT0Rac05DNDJPRGdnTkM0Mk9EaEJNaUF5SURBZ01DQXhJREl5SURndU5qZzRkall1TmpJMFlUSWdNaUF3SURBZ01TMHVOVGcySURFdU5ERTBiQzAwTGpZNE9DQTBMalk0T0dFeUlESWdNQ0F3SURFdE1TNDBNVFF1TlRnMlNEZ3VOamc0WVRJZ01pQXdJREFnTVMweExqUXhOQzB1TlRnMmJDMDBMalk0T0MwMExqWTRPRUV5SURJZ01DQXdJREVnTWlBeE5TNHpNVEpXT0M0Mk9EaGhNaUF5SURBZ01DQXhJQzQxT0RZdE1TNDBNVFJzTkM0Mk9EZ3ROQzQyT0RoQk1pQXlJREFnTUNBeElEZ3VOamc0SURKNklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL29jdGFnb24tYWxlcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBPY3RhZ29uQWxlcnQgPSBjcmVhdGVMdWNpZGVJY29uKCdPY3RhZ29uQWxlcnQnLCBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNmguMDEnLCBrZXk6ICcxZHJiZGknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOHY0Jywga2V5OiAnMWdvdDNiJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE1LjMxMiAyYTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2bC00LjY4OC00LjY4OEEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJ6JyxcbiAgICAgIGtleTogJzFmZDYyNScsXG4gICAgfSxcbiAgXSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBPY3RhZ29uQWxlcnQ7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/octagon-alert.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/paperclip.js": /*!***************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/paperclip.js ***! \***************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ Paperclip)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Paperclip = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Paperclip\", [\n [\n \"path\",\n {\n d: \"m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48\",\n key: \"1u3ebp\"\n }\n ]\n]);\n //# sourceMappingURL=paperclip.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvcGFwZXJjbGlwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sa0JBQVksZ0VBQWdCLENBQUMsV0FBYTtJQUM5QztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUNQO0tBQ0Y7Q0FDRCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2ljb25zL3BhcGVyY2xpcC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBhcGVyY2xpcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWpFdU5EUWdNVEV1TURVdE9TNHhPU0E1TGpFNVlUWWdOaUF3SURBZ01TMDRMalE1TFRndU5EbHNPQzQxTnkwNExqVTNRVFFnTkNBd0lERWdNU0F4T0NBNExqZzBiQzA0TGpVNUlEZ3VOVGRoTWlBeUlEQWdNQ0F4TFRJdU9ETXRNaTQ0TTJ3NExqUTVMVGd1TkRnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhcGVyY2xpcFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBhcGVyY2xpcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ1BhcGVyY2xpcCcsIFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTIxLjQ0IDExLjA1LTkuMTkgOS4xOWE2IDYgMCAwIDEtOC40OS04LjQ5bDguNTctOC41N0E0IDQgMCAxIDEgMTggOC44NGwtOC41OSA4LjU3YTIgMiAwIDAgMS0yLjgzLTIuODNsOC40OS04LjQ4JyxcbiAgICAgIGtleTogJzF1M2VicCcsXG4gICAgfSxcbiAgXSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBQYXBlcmNsaXA7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/paperclip.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/plus.js": /*!**********************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/plus.js ***! \**********************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ Plus)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Plus = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Plus\", [\n [\n \"path\",\n {\n d: \"M5 12h14\",\n key: \"1ays0h\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 5v14\",\n key: \"s699le\"\n }\n ]\n]);\n //# sourceMappingURL=plus.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvcGx1cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGFBQU8sZ0VBQWdCLENBQUMsTUFBUTtJQUNwQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzFDIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvcGx1cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQXhNbWd4TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05YWXhOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBsdXMgPSBjcmVhdGVMdWNpZGVJY29uKCdQbHVzJywgW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxMmgxNCcsIGtleTogJzFheXMwaCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA1djE0Jywga2V5OiAnczY5OWxlJyB9XSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBQbHVzO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/plus.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/refresh-cw.js": /*!****************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/refresh-cw.js ***! \****************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ RefreshCw)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst RefreshCw = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"RefreshCw\", [\n [\n \"path\",\n {\n d: \"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\",\n key: \"v9h5vc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 3v5h-5\",\n key: \"1q7to0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\",\n key: \"3uifl3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 16H3v5\",\n key: \"1cv678\"\n }\n ]\n]);\n //# sourceMappingURL=refresh-cw.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvcmVmcmVzaC1jdy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGtCQUFZLGdFQUFnQixDQUFDLFdBQWE7SUFDOUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXNEO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNuRjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXVEO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNwRjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDM0MiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9pY29ucy9yZWZyZXNoLWN3LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmVmcmVzaEN3XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUF4TW1FNUlEa2dNQ0F3SURFZ09TMDVJRGt1TnpVZ09TNDNOU0F3SURBZ01TQTJMamMwSURJdU56Uk1NakVnT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ00zWTFhQzAxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE1tRTVJRGtnTUNBd0lERXRPU0E1SURrdU56VWdPUzQzTlNBd0lEQWdNUzAyTGpjMExUSXVOelJNTXlBeE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhOa2d6ZGpVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlZnJlc2gtY3dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSZWZyZXNoQ3cgPSBjcmVhdGVMdWNpZGVJY29uKCdSZWZyZXNoQ3cnLCBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDEyYTkgOSAwIDAgMSA5LTkgOS43NSA5Ljc1IDAgMCAxIDYuNzQgMi43NEwyMSA4Jywga2V5OiAndjloNXZjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDN2NWgtNScsIGtleTogJzFxN3RvMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxMmE5IDkgMCAwIDEtOSA5IDkuNzUgOS43NSAwIDAgMS02Ljc0LTIuNzRMMyAxNicsIGtleTogJzN1aWZsMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE2SDN2NScsIGtleTogJzFjdjY3OCcgfV0sXG5dKTtcblxuZXhwb3J0IGRlZmF1bHQgUmVmcmVzaEN3O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/refresh-cw.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/reply-all.js": /*!***************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/reply-all.js ***! \***************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ ReplyAll)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst ReplyAll = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ReplyAll\", [\n [\n \"polyline\",\n {\n points: \"7 17 2 12 7 7\",\n key: \"t83bqg\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"12 17 7 12 12 7\",\n key: \"1g4ajm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 18v-2a4 4 0 0 0-4-4H7\",\n key: \"1fcyog\"\n }\n ]\n]);\n //# sourceMappingURL=reply-all.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvcmVwbHktYWxsLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0saUJBQVcsZ0VBQWdCLENBQUMsVUFBWTtJQUM1QztRQUFDLFVBQVk7UUFBQTtZQUFFLFFBQVEsQ0FBaUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZEO1FBQUMsVUFBWTtRQUFBO1lBQUUsUUFBUSxDQUFtQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTZCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUMzRCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2ljb25zL3JlcGx5LWFsbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJlcGx5QWxsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjRzlzZVd4cGJtVWdjRzlwYm5SelBTSTNJREUzSURJZ01USWdOeUEzSWlBdlBnb2dJRHh3YjJ4NWJHbHVaU0J3YjJsdWRITTlJakV5SURFM0lEY2dNVElnTVRJZ055SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVGgyTFRKaE5DQTBJREFnTUNBd0xUUXRORWczSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVwbHktYWxsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUmVwbHlBbGwgPSBjcmVhdGVMdWNpZGVJY29uKCdSZXBseUFsbCcsIFtcbiAgWydwb2x5bGluZScsIHsgcG9pbnRzOiAnNyAxNyAyIDEyIDcgNycsIGtleTogJ3Q4M2JxZycgfV0sXG4gIFsncG9seWxpbmUnLCB7IHBvaW50czogJzEyIDE3IDcgMTIgMTIgNycsIGtleTogJzFnNGFqbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxOHYtMmE0IDQgMCAwIDAtNC00SDcnLCBrZXk6ICcxZmN5b2cnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJlcGx5QWxsO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/reply-all.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/reply.js": /*!***********************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/reply.js ***! \***********************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ Reply)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Reply = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Reply\", [\n [\n \"polyline\",\n {\n points: \"9 17 4 12 9 7\",\n key: \"hvgpf2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 18v-2a4 4 0 0 0-4-4H4\",\n key: \"5vmcpk\"\n }\n ]\n]);\n //# sourceMappingURL=reply.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvcmVwbHkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFhTSxjQUFRLGdFQUFnQixDQUFDLE9BQVM7SUFDdEM7UUFBQyxVQUFZO1FBQUE7WUFBRSxRQUFRLENBQWlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzNEIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvcmVwbHkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSZXBseVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0c5c2VXeHBibVVnY0c5cGJuUnpQU0k1SURFM0lEUWdNVElnT1NBM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXhPSFl0TW1FMElEUWdNQ0F3SURBdE5DMDBTRFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVwbHlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSZXBseSA9IGNyZWF0ZUx1Y2lkZUljb24oJ1JlcGx5JywgW1xuICBbJ3BvbHlsaW5lJywgeyBwb2ludHM6ICc5IDE3IDQgMTIgOSA3Jywga2V5OiAnaHZncGYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE4di0yYTQgNCAwIDAgMC00LTRINCcsIGtleTogJzV2bWNwaycgfV0sXG5dKTtcblxuZXhwb3J0IGRlZmF1bHQgUmVwbHk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/reply.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/search.js": /*!************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/search.js ***! \************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ Search)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Search = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Search\", [\n [\n \"circle\",\n {\n cx: \"11\",\n cy: \"11\",\n r: \"8\",\n key: \"4ej97u\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 21-4.3-4.3\",\n key: \"1qie3q\"\n }\n ]\n]);\n //# sourceMappingURL=search.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvc2VhcmNoLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sZUFBUyxnRUFBZ0IsQ0FBQyxRQUFVO0lBQ3hDO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksUUFBTTtZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDaEQiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9pY29ucy9zZWFyY2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTZWFyY2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNU0lnWTNrOUlqRXhJaUJ5UFNJNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1TQXlNUzAwTGpNdE5DNHpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zZWFyY2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTZWFyY2ggPSBjcmVhdGVMdWNpZGVJY29uKCdTZWFyY2gnLCBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzExJywgY3k6ICcxMScsIHI6ICc4Jywga2V5OiAnNGVqOTd1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIxIDIxLTQuMy00LjMnLCBrZXk6ICcxcWllM3EnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNlYXJjaDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/search.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/send-horizontal.js": /*!*********************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/send-horizontal.js ***! \*********************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ SendHorizontal)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst SendHorizontal = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"SendHorizontal\", [\n [\n \"path\",\n {\n d: \"M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z\",\n key: \"117uat\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 12h16\",\n key: \"s4cdu5\"\n }\n ]\n]);\n //# sourceMappingURL=send-horizontal.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvc2VuZC1ob3Jpem9udGFsLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sdUJBQWlCLGdFQUFnQixDQUFDLGdCQUFrQjtJQUN4RDtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUNQO0tBQ0Y7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDMUMiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9pY29ucy9zZW5kLWhvcml6b250YWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTZW5kSG9yaXpvbnRhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXk0M01UUWdNeTR3TkRoaExqUTVPQzQwT1RnZ01DQXdJREF0TGpZNE15NDJNamRzTWk0NE5ETWdOeTQyTWpkaE1pQXlJREFnTUNBeElEQWdNUzR6T1Rac0xUSXVPRFF5SURjdU5qSTNZUzQwT1RndU5EazRJREFnTUNBd0lDNDJPREl1TmpJM2JERTRMVGd1TldFdU5TNDFJREFnTUNBd0lEQXRMamt3TkhvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ01USm9NVFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2VuZC1ob3Jpem9udGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2VuZEhvcml6b250YWwgPSBjcmVhdGVMdWNpZGVJY29uKCdTZW5kSG9yaXpvbnRhbCcsIFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMuNzE0IDMuMDQ4YS40OTguNDk4IDAgMCAwLS42ODMuNjI3bDIuODQzIDcuNjI3YTIgMiAwIDAgMSAwIDEuMzk2bC0yLjg0MiA3LjYyN2EuNDk4LjQ5OCAwIDAgMCAuNjgyLjYyN2wxOC04LjVhLjUuNSAwIDAgMCAwLS45MDR6JyxcbiAgICAgIGtleTogJzExN3VhdCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTJoMTYnLCBrZXk6ICdzNGNkdTUnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNlbmRIb3Jpem9udGFsO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/send-horizontal.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/send.js": /*!**********************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/send.js ***! \**********************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ Send)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Send = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Send\", [\n [\n \"path\",\n {\n d: \"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z\",\n key: \"1ffxy3\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21.854 2.147-10.94 10.939\",\n key: \"12cjpa\"\n }\n ]\n]);\n //# sourceMappingURL=send.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvc2VuZC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGFBQU8sZ0VBQWdCLENBQUMsTUFBUTtJQUNwQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUNQO0tBQ0Y7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBOEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzVEIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvc2VuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNlbmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUXVOVE0ySURJeExqWTRObUV1TlM0MUlEQWdNQ0F3SUM0NU16Y3RMakF5Tkd3MkxqVXRNVGxoTGpRNU5pNDBPVFlnTUNBd0lEQXRMall6TlMwdU5qTTFiQzB4T1NBMkxqVmhMalV1TlNBd0lEQWdNQzB1TURJMExqa3pOMnczTGpreklETXVNVGhoTWlBeUlEQWdNQ0F4SURFdU1URXlJREV1TVRGNklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1TNDROVFFnTWk0eE5EY3RNVEF1T1RRZ01UQXVPVE01SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2VuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNlbmQgPSBjcmVhdGVMdWNpZGVJY29uKCdTZW5kJywgW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTQuNTM2IDIxLjY4NmEuNS41IDAgMCAwIC45MzctLjAyNGw2LjUtMTlhLjQ5Ni40OTYgMCAwIDAtLjYzNS0uNjM1bC0xOSA2LjVhLjUuNSAwIDAgMC0uMDI0LjkzN2w3LjkzIDMuMThhMiAyIDAgMCAxIDEuMTEyIDEuMTF6JyxcbiAgICAgIGtleTogJzFmZnh5MycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTIxLjg1NCAyLjE0Ny0xMC45NCAxMC45MzknLCBrZXk6ICcxMmNqcGEnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNlbmQ7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/send.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/square-pen.js": /*!****************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/square-pen.js ***! \****************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ SquarePen)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst SquarePen = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"SquarePen\", [\n [\n \"path\",\n {\n d: \"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\",\n key: \"1m0v6g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z\",\n key: \"ohrbg2\"\n }\n ]\n]);\n //# sourceMappingURL=square-pen.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBlbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGtCQUFZLGdFQUFnQixDQUFDLFdBQWE7SUFDOUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQThEO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzRjtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUNQO0tBQ0Y7Q0FDRCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2ljb25zL3NxdWFyZS1wZW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVQZW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNMGcxWVRJZ01pQXdJREFnTUMweUlESjJNVFJoTWlBeUlEQWdNQ0F3SURJZ01tZ3hOR0V5SURJZ01DQXdJREFnTWkweWRpMDNJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQzR6TnpVZ01pNDJNalZoTVNBeElEQWdNQ0F4SURNZ00yd3RPUzR3TVRNZ09TNHdNVFJoTWlBeUlEQWdNQ0F4TFM0NE5UTXVOVEExYkMweUxqZzNNeTQ0TkdFdU5TNDFJREFnTUNBeExTNDJNaTB1TmpKc0xqZzBMVEl1T0RjellUSWdNaUF3SURBZ01TQXVOVEEyTFM0NE5USjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtcGVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1YXJlUGVuID0gY3JlYXRlTHVjaWRlSWNvbignU3F1YXJlUGVuJywgW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi03Jywga2V5OiAnMW0wdjZnJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE4LjM3NSAyLjYyNWExIDEgMCAwIDEgMyAzbC05LjAxMyA5LjAxNGEyIDIgMCAwIDEtLjg1My41MDVsLTIuODczLjg0YS41LjUgMCAwIDEtLjYyLS42MmwuODQtMi44NzNhMiAyIDAgMCAxIC41MDYtLjg1MnonLFxuICAgICAga2V5OiAnb2hyYmcyJyxcbiAgICB9LFxuICBdLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVBlbjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/square-pen.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/star.js": /*!**********************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/star.js ***! \**********************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ Star)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Star = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Star\", [\n [\n \"path\",\n {\n d: \"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z\",\n key: \"r04s7s\"\n }\n ]\n]);\n //# sourceMappingURL=star.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvc3Rhci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGFBQU8sZ0VBQWdCLENBQUMsTUFBUTtJQUNwQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUNQO0tBQ0Y7Q0FDRCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2ljb25zL3N0YXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTdGFyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEV1TlRJMUlESXVNamsxWVM0MU15NDFNeUF3SURBZ01TQXVPVFVnTUd3eUxqTXhJRFF1TmpjNVlUSXVNVEl6SURJdU1USXpJREFnTUNBd0lERXVOVGsxSURFdU1UWnNOUzR4TmpZdU56VTJZUzQxTXk0MU15QXdJREFnTVNBdU1qazBMamt3Tkd3dE15NDNNellnTXk0Mk16aGhNaTR4TWpNZ01pNHhNak1nTUNBd0lEQXRMall4TVNBeExqZzNPR3d1T0RneUlEVXVNVFJoTGpVekxqVXpJREFnTUNBeExTNDNOekV1TlRac0xUUXVOakU0TFRJdU5ESTRZVEl1TVRJeUlESXVNVEl5SURBZ01DQXdMVEV1T1RjeklEQk1OaTR6T1RZZ01qRXVNREZoTGpVekxqVXpJREFnTUNBeExTNDNOeTB1TlRac0xqZzRNUzAxTGpFek9XRXlMakV5TWlBeUxqRXlNaUF3SURBZ01DMHVOakV4TFRFdU9EYzVUREl1TVRZZ09TNDNPVFZoTGpVekxqVXpJREFnTUNBeElDNHlPVFF0TGprd05tdzFMakUyTlMwdU56VTFZVEl1TVRJeUlESXVNVEl5SURBZ01DQXdJREV1TlRrM0xURXVNVFo2SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3RhclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFN0YXIgPSBjcmVhdGVMdWNpZGVJY29uKCdTdGFyJywgW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTEuNTI1IDIuMjk1YS41My41MyAwIDAgMSAuOTUgMGwyLjMxIDQuNjc5YTIuMTIzIDIuMTIzIDAgMCAwIDEuNTk1IDEuMTZsNS4xNjYuNzU2YS41My41MyAwIDAgMSAuMjk0LjkwNGwtMy43MzYgMy42MzhhMi4xMjMgMi4xMjMgMCAwIDAtLjYxMSAxLjg3OGwuODgyIDUuMTRhLjUzLjUzIDAgMCAxLS43NzEuNTZsLTQuNjE4LTIuNDI4YTIuMTIyIDIuMTIyIDAgMCAwLTEuOTczIDBMNi4zOTYgMjEuMDFhLjUzLjUzIDAgMCAxLS43Ny0uNTZsLjg4MS01LjEzOWEyLjEyMiAyLjEyMiAwIDAgMC0uNjExLTEuODc5TDIuMTYgOS43OTVhLjUzLjUzIDAgMCAxIC4yOTQtLjkwNmw1LjE2NS0uNzU1YTIuMTIyIDIuMTIyIDAgMCAwIDEuNTk3LTEuMTZ6JyxcbiAgICAgIGtleTogJ3IwNHM3cycsXG4gICAgfSxcbiAgXSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBTdGFyO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/star.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trash-2.js": /*!*************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/trash-2.js ***! \*************************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ Trash2)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Trash2 = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Trash2\", [\n [\n \"path\",\n {\n d: \"M3 6h18\",\n key: \"d0wm0j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\",\n key: \"4alrt4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\",\n key: \"v07s0e\"\n }\n ],\n [\n \"line\",\n {\n x1: \"10\",\n x2: \"10\",\n y1: \"11\",\n y2: \"17\",\n key: \"1uufr5\"\n }\n ],\n [\n \"line\",\n {\n x1: \"14\",\n x2: \"14\",\n y1: \"11\",\n y2: \"17\",\n key: \"xtxkd\"\n }\n ]\n]);\n //# sourceMappingURL=trash-2.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvdHJhc2gtMi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGVBQVMsZ0VBQWdCLENBQUMsUUFBVTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXlDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN0RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBc0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ25FO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFNO1lBQUEsSUFBSSxDQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNsRTtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksQ0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEtBQUs7UUFBQSxDQUFTO0tBQUE7Q0FDbEUiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9pY29ucy90cmFzaC0yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVHJhc2gyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUEyYURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TQTJkakUwWXpBZ01TMHhJREl0TWlBeVNEZGpMVEVnTUMweUxURXRNaTB5VmpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ05sWTBZekF0TVNBeExUSWdNaTB5YURSak1TQXdJRElnTVNBeUlESjJNaUlnTHo0S0lDQThiR2x1WlNCNE1UMGlNVEFpSUhneVBTSXhNQ0lnZVRFOUlqRXhJaUI1TWowaU1UY2lJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRTBJaUI0TWowaU1UUWlJSGt4UFNJeE1TSWdlVEk5SWpFM0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RyYXNoLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUcmFzaDIgPSBjcmVhdGVMdWNpZGVJY29uKCdUcmFzaDInLCBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDZoMTgnLCBrZXk6ICdkMHdtMGonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgNnYxNGMwIDEtMSAyLTIgMkg3Yy0xIDAtMi0xLTItMlY2Jywga2V5OiAnNGFscnQ0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggNlY0YzAtMSAxLTIgMi0yaDRjMSAwIDIgMSAyIDJ2MicsIGtleTogJ3YwN3MwZScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMCcsIHgyOiAnMTAnLCB5MTogJzExJywgeTI6ICcxNycsIGtleTogJzF1dWZyNScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNCcsIHgyOiAnMTQnLCB5MTogJzExJywgeTI6ICcxNycsIGtleTogJ3h0eGtkJyB9XSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBUcmFzaDI7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trash-2.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trash.js": /*!***********************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/trash.js ***! \***********************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ Trash)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Trash = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Trash\", [\n [\n \"path\",\n {\n d: \"M3 6h18\",\n key: \"d0wm0j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\",\n key: \"4alrt4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\",\n key: \"v07s0e\"\n }\n ]\n]);\n //# sourceMappingURL=trash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvdHJhc2guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFhTSxjQUFRLGdFQUFnQixDQUFDLE9BQVM7SUFDdEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF5QztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdEU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXNDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUNwRSIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2ljb25zL3RyYXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVHJhc2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QTJhREU0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T1NBMmRqRTBZekFnTVMweElESXRNaUF5U0RkakxURWdNQzB5TFRFdE1pMHlWallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTmxZMFl6QXRNU0F4TFRJZ01pMHlhRFJqTVNBd0lESWdNU0F5SURKMk1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cmFzaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRyYXNoID0gY3JlYXRlTHVjaWRlSWNvbignVHJhc2gnLCBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDZoMTgnLCBrZXk6ICdkMHdtMGonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgNnYxNGMwIDEtMSAyLTIgMkg3Yy0xIDAtMi0xLTItMlY2Jywga2V5OiAnNGFscnQ0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggNlY0YzAtMSAxLTIgMi0yaDRjMSAwIDIgMSAyIDJ2MicsIGtleTogJ3YwN3MwZScgfV0sXG5dKTtcblxuZXhwb3J0IGRlZmF1bHQgVHJhc2g7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trash.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/x.js": /*!*******************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/icons/x.js ***! \*******************************************************/ /***/ ((__unused_webpack_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\": () => (/* binding */ X)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst X = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"X\", [\n [\n \"path\",\n {\n d: \"M18 6 6 18\",\n key: \"1bl5f8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6 6 12 12\",\n key: \"d8bk6v\"\n }\n ]\n]);\n //# sourceMappingURL=x.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMveC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLFVBQUksZ0VBQWdCLENBQUMsR0FBSztJQUM5QjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzVDIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMveC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dOaUEySURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0wMklEWWdNVElnTVRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBYID0gY3JlYXRlTHVjaWRlSWNvbignWCcsIFtcbiAgWydwYXRoJywgeyBkOiAnTTE4IDYgNiAxOCcsIGtleTogJzFibDVmOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202IDYgMTIgMTInLCBrZXk6ICdkOGJrNnYnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IFg7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/x.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js": /*!****************************************************************!*\ !*** ./node_modules/lucide-react/dist/esm/shared/src/utils.js ***! \****************************************************************/ /***/ ((__unused_webpack_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 */ mergeClasses: () => (/* binding */ mergeClasses),\n/* harmony export */ toKebabCase: () => (/* binding */ toKebabCase)\n/* harmony export */ });\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ const toKebabCase = (string)=>string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst mergeClasses = function() {\n for(var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++){\n classes[_key] = arguments[_key];\n }\n return classes.filter((className, index, array)=>{\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n }).join(\" \").trim();\n};\n //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vc2hhcmVkL3NyYy91dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0lBUWEsb0JBQWMsQ0FBQyxNQUMxQixVQUFPLFFBQVEsb0JBQXNCLFNBQU8sRUFBRSxXQUFZO0FBK0IvQyxtQkFBZSxJQUEyQzs7UUFBQSxPQUNyRTs7V0FBQSxRQUNHLE9BQU8sQ0FBQyxXQUFXLE9BQU8sS0FBVTtRQUVqQyxlQUFRLFNBQVMsRUFDaEIsWUFBcUIsWUFBVyxDQUNqQyxXQUFNLE9BQVEsRUFBUyxTQUFNO0lBRWpDLENBQUMsQ0FDQSxNQUFLLENBQUcsSUFDUixDQUFLIiwic291cmNlcyI6WyIvc2hhcmVkL3NyYy91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYW1lbFRvUGFzY2FsIH0gZnJvbSAnLi91dGlsaXR5LXR5cGVzJztcblxuLyoqXG4gKiBDb252ZXJ0cyBzdHJpbmcgdG8ga2ViYWIgY2FzZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdcbiAqIEByZXR1cm5zIHtzdHJpbmd9IEEga2ViYWJpemVkIHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgdG9LZWJhYkNhc2UgPSAoc3RyaW5nOiBzdHJpbmcpID0+XG4gIHN0cmluZy5yZXBsYWNlKC8oW2EtejAtOV0pKFtBLVpdKS9nLCAnJDEtJDInKS50b0xvd2VyQ2FzZSgpO1xuXG4vKipcbiAqIENvbnZlcnRzIHN0cmluZyB0byBjYW1lbCBjYXNlXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gQSBjYW1lbGl6ZWQgc3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCB0b0NhbWVsQ2FzZSA9IDxUIGV4dGVuZHMgc3RyaW5nPihzdHJpbmc6IFQpID0+XG4gIHN0cmluZy5yZXBsYWNlKC9eKFtBLVpdKXxbXFxzLV9dKyhcXHcpL2csIChtYXRjaCwgcDEsIHAyKSA9PlxuICAgIHAyID8gcDIudG9VcHBlckNhc2UoKSA6IHAxLnRvTG93ZXJDYXNlKCksXG4gICk7XG5cbi8qKlxuICogQ29udmVydHMgc3RyaW5nIHRvIHBhc2NhbCBjYXNlXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gQSBwYXNjYWxpemVkIHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgdG9QYXNjYWxDYXNlID0gPFQgZXh0ZW5kcyBzdHJpbmc+KHN0cmluZzogVCk6IENhbWVsVG9QYXNjYWw8VD4gPT4ge1xuICBjb25zdCBjYW1lbENhc2UgPSB0b0NhbWVsQ2FzZShzdHJpbmcpO1xuXG4gIHJldHVybiAoY2FtZWxDYXNlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY2FtZWxDYXNlLnNsaWNlKDEpKSBhcyBDYW1lbFRvUGFzY2FsPFQ+O1xufTtcblxuLyoqXG4gKiBNZXJnZXMgY2xhc3NlcyBpbnRvIGEgc2luZ2xlIHN0cmluZ1xuICpcbiAqIEBwYXJhbSB7YXJyYXl9IGNsYXNzZXNcbiAqIEByZXR1cm5zIHtzdHJpbmd9IEEgc3RyaW5nIG9mIGNsYXNzZXNcbiAqL1xuZXhwb3J0IGNvbnN0IG1lcmdlQ2xhc3NlcyA9IDxDbGFzc1R5cGUgPSBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsPiguLi5jbGFzc2VzOiBDbGFzc1R5cGVbXSkgPT5cbiAgY2xhc3Nlc1xuICAgIC5maWx0ZXIoKGNsYXNzTmFtZSwgaW5kZXgsIGFycmF5KSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBCb29sZWFuKGNsYXNzTmFtZSkgJiZcbiAgICAgICAgKGNsYXNzTmFtZSBhcyBzdHJpbmcpLnRyaW0oKSAhPT0gJycgJiZcbiAgICAgICAgYXJyYXkuaW5kZXhPZihjbGFzc05hbWUpID09PSBpbmRleFxuICAgICAgKTtcbiAgICB9KVxuICAgIC5qb2luKCcgJylcbiAgICAudHJpbSgpO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next-auth/client/_utils.js": /*!*************************************************!*\ !*** ./node_modules/next-auth/client/_utils.js ***! \*************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.BroadcastChannel = BroadcastChannel;\nexports.apiBaseUrl = apiBaseUrl;\nexports.fetchData = fetchData;\nexports.now = now;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"(app-pages-browser)/./node_modules/@babel/runtime/regenerator/index.js\"));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction fetchData(_x, _x2, _x3) {\n return _fetchData.apply(this, arguments);\n}\nfunction _fetchData() {\n _fetchData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(path, __NEXTAUTH, logger) {\n var _ref,\n ctx,\n _ref$req,\n req,\n url,\n _req$headers,\n options,\n res,\n data,\n _args = arguments;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _ref = _args.length > 3 && _args[3] !== undefined ? _args[3] : {}, ctx = _ref.ctx, _ref$req = _ref.req, req = _ref$req === void 0 ? ctx === null || ctx === void 0 ? void 0 : ctx.req : _ref$req;\n url = \"\".concat(apiBaseUrl(__NEXTAUTH), \"/\").concat(path);\n _context.prev = 2;\n options = {\n headers: _objectSpread({\n \"Content-Type\": \"application/json\"\n }, req !== null && req !== void 0 && (_req$headers = req.headers) !== null && _req$headers !== void 0 && _req$headers.cookie ? {\n cookie: req.headers.cookie\n } : {})\n };\n if (req !== null && req !== void 0 && req.body) {\n options.body = JSON.stringify(req.body);\n options.method = \"POST\";\n }\n _context.next = 7;\n return fetch(url, options);\n case 7:\n res = _context.sent;\n _context.next = 10;\n return res.json();\n case 10:\n data = _context.sent;\n if (res.ok) {\n _context.next = 13;\n break;\n }\n throw data;\n case 13:\n return _context.abrupt(\"return\", Object.keys(data).length > 0 ? data : null);\n case 16:\n _context.prev = 16;\n _context.t0 = _context[\"catch\"](2);\n logger.error(\"CLIENT_FETCH_ERROR\", {\n error: _context.t0,\n url: url\n });\n return _context.abrupt(\"return\", null);\n case 20:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[2, 16]]);\n }));\n return _fetchData.apply(this, arguments);\n}\nfunction apiBaseUrl(__NEXTAUTH) {\n if (typeof window === \"undefined\") {\n return \"\".concat(__NEXTAUTH.baseUrlServer).concat(__NEXTAUTH.basePathServer);\n }\n return __NEXTAUTH.basePath;\n}\nfunction now() {\n return Math.floor(Date.now() / 1000);\n}\nfunction BroadcastChannel() {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"nextauth.message\";\n return {\n receive: function receive(onReceive) {\n var handler = function handler(event) {\n var _event$newValue;\n if (event.key !== name) return;\n var message = JSON.parse((_event$newValue = event.newValue) !== null && _event$newValue !== void 0 ? _event$newValue : \"{}\");\n if ((message === null || message === void 0 ? void 0 : message.event) !== \"session\" || !(message !== null && message !== void 0 && message.data)) return;\n onReceive(message);\n };\n window.addEventListener(\"storage\", handler);\n return function () {\n return window.removeEventListener(\"storage\", handler);\n };\n },\n post: function post(message) {\n if (typeof window === \"undefined\") return;\n try {\n localStorage.setItem(name, JSON.stringify(_objectSpread(_objectSpread({}, message), {}, {\n timestamp: now()\n })));\n } catch (_unused) {}\n }\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvY2xpZW50L191dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw2QkFBNkIsbUJBQU8sQ0FBQyx3SUFBOEM7QUFDbkYsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysd0JBQXdCO0FBQ3hCLGtCQUFrQjtBQUNsQixpQkFBaUI7QUFDakIsV0FBVztBQUNYLDBDQUEwQyxtQkFBTyxDQUFDLDBHQUE0QjtBQUM5RSw4Q0FBOEMsbUJBQU8sQ0FBQywwSEFBdUM7QUFDN0YsZ0RBQWdELG1CQUFPLENBQUMsOEhBQXlDO0FBQ2pHLHlCQUF5Qix3QkFBd0Isb0NBQW9DLHlDQUF5QyxrQ0FBa0MsMERBQTBELDBCQUEwQjtBQUNwUCw0QkFBNEIsZ0JBQWdCLHNCQUFzQixPQUFPLGtEQUFrRCxzREFBc0QsNENBQTRDLG1KQUFtSixxRUFBcUUsS0FBSztBQUMxYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyRUFBMkU7QUFDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLGNBQWMsSUFBSTtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtJQUFrSTtBQUNsSTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxnRkFBZ0YsY0FBYztBQUM5RjtBQUNBLFNBQVM7QUFDVCxRQUFRO0FBQ1I7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvY2xpZW50L191dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5Ccm9hZGNhc3RDaGFubmVsID0gQnJvYWRjYXN0Q2hhbm5lbDtcbmV4cG9ydHMuYXBpQmFzZVVybCA9IGFwaUJhc2VVcmw7XG5leHBvcnRzLmZldGNoRGF0YSA9IGZldGNoRGF0YTtcbmV4cG9ydHMubm93ID0gbm93O1xudmFyIF9yZWdlbmVyYXRvciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL3JlZ2VuZXJhdG9yXCIpKTtcbnZhciBfZGVmaW5lUHJvcGVydHkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eVwiKSk7XG52YXIgX2FzeW5jVG9HZW5lcmF0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3luY1RvR2VuZXJhdG9yXCIpKTtcbmZ1bmN0aW9uIG93bktleXMoZSwgcikgeyB2YXIgdCA9IE9iamVjdC5rZXlzKGUpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgbyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7IHIgJiYgKG8gPSBvLmZpbHRlcihmdW5jdGlvbiAocikgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLCByKS5lbnVtZXJhYmxlOyB9KSksIHQucHVzaC5hcHBseSh0LCBvKTsgfSByZXR1cm4gdDsgfVxuZnVuY3Rpb24gX29iamVjdFNwcmVhZChlKSB7IGZvciAodmFyIHIgPSAxOyByIDwgYXJndW1lbnRzLmxlbmd0aDsgcisrKSB7IHZhciB0ID0gbnVsbCAhPSBhcmd1bWVudHNbcl0gPyBhcmd1bWVudHNbcl0gOiB7fTsgciAlIDIgPyBvd25LZXlzKE9iamVjdCh0KSwgITApLmZvckVhY2goZnVuY3Rpb24gKHIpIHsgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoZSwgciwgdFtyXSk7IH0pIDogT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMgPyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSkgOiBvd25LZXlzKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbiAocikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgciwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LCByKSk7IH0pOyB9IHJldHVybiBlOyB9XG5mdW5jdGlvbiBmZXRjaERhdGEoX3gsIF94MiwgX3gzKSB7XG4gIHJldHVybiBfZmV0Y2hEYXRhLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5mdW5jdGlvbiBfZmV0Y2hEYXRhKCkge1xuICBfZmV0Y2hEYXRhID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMi5kZWZhdWx0KShfcmVnZW5lcmF0b3IuZGVmYXVsdC5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUocGF0aCwgX19ORVhUQVVUSCwgbG9nZ2VyKSB7XG4gICAgdmFyIF9yZWYsXG4gICAgICBjdHgsXG4gICAgICBfcmVmJHJlcSxcbiAgICAgIHJlcSxcbiAgICAgIHVybCxcbiAgICAgIF9yZXEkaGVhZGVycyxcbiAgICAgIG9wdGlvbnMsXG4gICAgICByZXMsXG4gICAgICBkYXRhLFxuICAgICAgX2FyZ3MgPSBhcmd1bWVudHM7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvci5kZWZhdWx0LndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHtcbiAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICBfcmVmID0gX2FyZ3MubGVuZ3RoID4gMyAmJiBfYXJnc1szXSAhPT0gdW5kZWZpbmVkID8gX2FyZ3NbM10gOiB7fSwgY3R4ID0gX3JlZi5jdHgsIF9yZWYkcmVxID0gX3JlZi5yZXEsIHJlcSA9IF9yZWYkcmVxID09PSB2b2lkIDAgPyBjdHggPT09IG51bGwgfHwgY3R4ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjdHgucmVxIDogX3JlZiRyZXE7XG4gICAgICAgICAgdXJsID0gXCJcIi5jb25jYXQoYXBpQmFzZVVybChfX05FWFRBVVRIKSwgXCIvXCIpLmNvbmNhdChwYXRoKTtcbiAgICAgICAgICBfY29udGV4dC5wcmV2ID0gMjtcbiAgICAgICAgICBvcHRpb25zID0ge1xuICAgICAgICAgICAgaGVhZGVyczogX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiXG4gICAgICAgICAgICB9LCByZXEgIT09IG51bGwgJiYgcmVxICE9PSB2b2lkIDAgJiYgKF9yZXEkaGVhZGVycyA9IHJlcS5oZWFkZXJzKSAhPT0gbnVsbCAmJiBfcmVxJGhlYWRlcnMgIT09IHZvaWQgMCAmJiBfcmVxJGhlYWRlcnMuY29va2llID8ge1xuICAgICAgICAgICAgICBjb29raWU6IHJlcS5oZWFkZXJzLmNvb2tpZVxuICAgICAgICAgICAgfSA6IHt9KVxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKHJlcSAhPT0gbnVsbCAmJiByZXEgIT09IHZvaWQgMCAmJiByZXEuYm9keSkge1xuICAgICAgICAgICAgb3B0aW9ucy5ib2R5ID0gSlNPTi5zdHJpbmdpZnkocmVxLmJvZHkpO1xuICAgICAgICAgICAgb3B0aW9ucy5tZXRob2QgPSBcIlBPU1RcIjtcbiAgICAgICAgICB9XG4gICAgICAgICAgX2NvbnRleHQubmV4dCA9IDc7XG4gICAgICAgICAgcmV0dXJuIGZldGNoKHVybCwgb3B0aW9ucyk7XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICByZXMgPSBfY29udGV4dC5zZW50O1xuICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAxMDtcbiAgICAgICAgICByZXR1cm4gcmVzLmpzb24oKTtcbiAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICBkYXRhID0gX2NvbnRleHQuc2VudDtcbiAgICAgICAgICBpZiAocmVzLm9rKSB7XG4gICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMTM7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZGF0YTtcbiAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICByZXR1cm4gX2NvbnRleHQuYWJydXB0KFwicmV0dXJuXCIsIE9iamVjdC5rZXlzKGRhdGEpLmxlbmd0aCA+IDAgPyBkYXRhIDogbnVsbCk7XG4gICAgICAgIGNhc2UgMTY6XG4gICAgICAgICAgX2NvbnRleHQucHJldiA9IDE2O1xuICAgICAgICAgIF9jb250ZXh0LnQwID0gX2NvbnRleHRbXCJjYXRjaFwiXSgyKTtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoXCJDTElFTlRfRkVUQ0hfRVJST1JcIiwge1xuICAgICAgICAgICAgZXJyb3I6IF9jb250ZXh0LnQwLFxuICAgICAgICAgICAgdXJsOiB1cmxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gX2NvbnRleHQuYWJydXB0KFwicmV0dXJuXCIsIG51bGwpO1xuICAgICAgICBjYXNlIDIwOlxuICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTtcbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlLCBudWxsLCBbWzIsIDE2XV0pO1xuICB9KSk7XG4gIHJldHVybiBfZmV0Y2hEYXRhLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5mdW5jdGlvbiBhcGlCYXNlVXJsKF9fTkVYVEFVVEgpIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICByZXR1cm4gXCJcIi5jb25jYXQoX19ORVhUQVVUSC5iYXNlVXJsU2VydmVyKS5jb25jYXQoX19ORVhUQVVUSC5iYXNlUGF0aFNlcnZlcik7XG4gIH1cbiAgcmV0dXJuIF9fTkVYVEFVVEguYmFzZVBhdGg7XG59XG5mdW5jdGlvbiBub3coKSB7XG4gIHJldHVybiBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcbn1cbmZ1bmN0aW9uIEJyb2FkY2FzdENoYW5uZWwoKSB7XG4gIHZhciBuYW1lID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiBcIm5leHRhdXRoLm1lc3NhZ2VcIjtcbiAgcmV0dXJuIHtcbiAgICByZWNlaXZlOiBmdW5jdGlvbiByZWNlaXZlKG9uUmVjZWl2ZSkge1xuICAgICAgdmFyIGhhbmRsZXIgPSBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50KSB7XG4gICAgICAgIHZhciBfZXZlbnQkbmV3VmFsdWU7XG4gICAgICAgIGlmIChldmVudC5rZXkgIT09IG5hbWUpIHJldHVybjtcbiAgICAgICAgdmFyIG1lc3NhZ2UgPSBKU09OLnBhcnNlKChfZXZlbnQkbmV3VmFsdWUgPSBldmVudC5uZXdWYWx1ZSkgIT09IG51bGwgJiYgX2V2ZW50JG5ld1ZhbHVlICE9PSB2b2lkIDAgPyBfZXZlbnQkbmV3VmFsdWUgOiBcInt9XCIpO1xuICAgICAgICBpZiAoKG1lc3NhZ2UgPT09IG51bGwgfHwgbWVzc2FnZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogbWVzc2FnZS5ldmVudCkgIT09IFwic2Vzc2lvblwiIHx8ICEobWVzc2FnZSAhPT0gbnVsbCAmJiBtZXNzYWdlICE9PSB2b2lkIDAgJiYgbWVzc2FnZS5kYXRhKSkgcmV0dXJuO1xuICAgICAgICBvblJlY2VpdmUobWVzc2FnZSk7XG4gICAgICB9O1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzdG9yYWdlXCIsIGhhbmRsZXIpO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic3RvcmFnZVwiLCBoYW5kbGVyKTtcbiAgICAgIH07XG4gICAgfSxcbiAgICBwb3N0OiBmdW5jdGlvbiBwb3N0KG1lc3NhZ2UpIHtcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm47XG4gICAgICB0cnkge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShuYW1lLCBKU09OLnN0cmluZ2lmeShfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG1lc3NhZ2UpLCB7fSwge1xuICAgICAgICAgIHRpbWVzdGFtcDogbm93KClcbiAgICAgICAgfSkpKTtcbiAgICAgIH0gY2F0Y2ggKF91bnVzZWQpIHt9XG4gICAgfVxuICB9O1xufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next-auth/client/_utils.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next-auth/core/errors.js": /*!***********************************************!*\ !*** ./node_modules/next-auth/core/errors.js ***! \***********************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.UnsupportedStrategy = exports.UnknownError = exports.OAuthCallbackError = exports.MissingSecret = exports.MissingAuthorize = exports.MissingAdapterMethods = exports.MissingAdapter = exports.MissingAPIRoute = exports.InvalidCallbackUrl = exports.AccountNotLinkedError = void 0;\nexports.adapterErrorHandler = adapterErrorHandler;\nexports.capitalize = capitalize;\nexports.eventsErrorHandler = eventsErrorHandler;\nexports.upperSnake = upperSnake;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"(app-pages-browser)/./node_modules/@babel/runtime/regenerator/index.js\"));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/classCallCheck.js\"));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/createClass.js\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\"));\nvar _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/getPrototypeOf.js\"));\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/inherits.js\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/wrapNativeSuper */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js\"));\nfunction _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nvar UnknownError = exports.UnknownError = function (_Error) {\n function UnknownError(error) {\n var _message;\n var _this;\n (0, _classCallCheck2.default)(this, UnknownError);\n _this = _callSuper(this, UnknownError, [(_message = error === null || error === void 0 ? void 0 : error.message) !== null && _message !== void 0 ? _message : error]);\n _this.name = \"UnknownError\";\n _this.code = error.code;\n if (error instanceof Error) {\n _this.stack = error.stack;\n }\n return _this;\n }\n (0, _inherits2.default)(UnknownError, _Error);\n return (0, _createClass2.default)(UnknownError, [{\n key: \"toJSON\",\n value: function toJSON() {\n return {\n name: this.name,\n message: this.message,\n stack: this.stack\n };\n }\n }]);\n}((0, _wrapNativeSuper2.default)(Error));\nvar OAuthCallbackError = exports.OAuthCallbackError = function (_UnknownError) {\n function OAuthCallbackError() {\n var _this2;\n (0, _classCallCheck2.default)(this, OAuthCallbackError);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this2 = _callSuper(this, OAuthCallbackError, [].concat(args));\n (0, _defineProperty2.default)(_this2, \"name\", \"OAuthCallbackError\");\n return _this2;\n }\n (0, _inherits2.default)(OAuthCallbackError, _UnknownError);\n return (0, _createClass2.default)(OAuthCallbackError);\n}(UnknownError);\nvar AccountNotLinkedError = exports.AccountNotLinkedError = function (_UnknownError2) {\n function AccountNotLinkedError() {\n var _this3;\n (0, _classCallCheck2.default)(this, AccountNotLinkedError);\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n _this3 = _callSuper(this, AccountNotLinkedError, [].concat(args));\n (0, _defineProperty2.default)(_this3, \"name\", \"AccountNotLinkedError\");\n return _this3;\n }\n (0, _inherits2.default)(AccountNotLinkedError, _UnknownError2);\n return (0, _createClass2.default)(AccountNotLinkedError);\n}(UnknownError);\nvar MissingAPIRoute = exports.MissingAPIRoute = function (_UnknownError3) {\n function MissingAPIRoute() {\n var _this4;\n (0, _classCallCheck2.default)(this, MissingAPIRoute);\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n _this4 = _callSuper(this, MissingAPIRoute, [].concat(args));\n (0, _defineProperty2.default)(_this4, \"name\", \"MissingAPIRouteError\");\n (0, _defineProperty2.default)(_this4, \"code\", \"MISSING_NEXTAUTH_API_ROUTE_ERROR\");\n return _this4;\n }\n (0, _inherits2.default)(MissingAPIRoute, _UnknownError3);\n return (0, _createClass2.default)(MissingAPIRoute);\n}(UnknownError);\nvar MissingSecret = exports.MissingSecret = function (_UnknownError4) {\n function MissingSecret() {\n var _this5;\n (0, _classCallCheck2.default)(this, MissingSecret);\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n _this5 = _callSuper(this, MissingSecret, [].concat(args));\n (0, _defineProperty2.default)(_this5, \"name\", \"MissingSecretError\");\n (0, _defineProperty2.default)(_this5, \"code\", \"NO_SECRET\");\n return _this5;\n }\n (0, _inherits2.default)(MissingSecret, _UnknownError4);\n return (0, _createClass2.default)(MissingSecret);\n}(UnknownError);\nvar MissingAuthorize = exports.MissingAuthorize = function (_UnknownError5) {\n function MissingAuthorize() {\n var _this6;\n (0, _classCallCheck2.default)(this, MissingAuthorize);\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n _this6 = _callSuper(this, MissingAuthorize, [].concat(args));\n (0, _defineProperty2.default)(_this6, \"name\", \"MissingAuthorizeError\");\n (0, _defineProperty2.default)(_this6, \"code\", \"CALLBACK_CREDENTIALS_HANDLER_ERROR\");\n return _this6;\n }\n (0, _inherits2.default)(MissingAuthorize, _UnknownError5);\n return (0, _createClass2.default)(MissingAuthorize);\n}(UnknownError);\nvar MissingAdapter = exports.MissingAdapter = function (_UnknownError6) {\n function MissingAdapter() {\n var _this7;\n (0, _classCallCheck2.default)(this, MissingAdapter);\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n _this7 = _callSuper(this, MissingAdapter, [].concat(args));\n (0, _defineProperty2.default)(_this7, \"name\", \"MissingAdapterError\");\n (0, _defineProperty2.default)(_this7, \"code\", \"EMAIL_REQUIRES_ADAPTER_ERROR\");\n return _this7;\n }\n (0, _inherits2.default)(MissingAdapter, _UnknownError6);\n return (0, _createClass2.default)(MissingAdapter);\n}(UnknownError);\nvar MissingAdapterMethods = exports.MissingAdapterMethods = function (_UnknownError7) {\n function MissingAdapterMethods() {\n var _this8;\n (0, _classCallCheck2.default)(this, MissingAdapterMethods);\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n _this8 = _callSuper(this, MissingAdapterMethods, [].concat(args));\n (0, _defineProperty2.default)(_this8, \"name\", \"MissingAdapterMethodsError\");\n (0, _defineProperty2.default)(_this8, \"code\", \"MISSING_ADAPTER_METHODS_ERROR\");\n return _this8;\n }\n (0, _inherits2.default)(MissingAdapterMethods, _UnknownError7);\n return (0, _createClass2.default)(MissingAdapterMethods);\n}(UnknownError);\nvar UnsupportedStrategy = exports.UnsupportedStrategy = function (_UnknownError8) {\n function UnsupportedStrategy() {\n var _this9;\n (0, _classCallCheck2.default)(this, UnsupportedStrategy);\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n _this9 = _callSuper(this, UnsupportedStrategy, [].concat(args));\n (0, _defineProperty2.default)(_this9, \"name\", \"UnsupportedStrategyError\");\n (0, _defineProperty2.default)(_this9, \"code\", \"CALLBACK_CREDENTIALS_JWT_ERROR\");\n return _this9;\n }\n (0, _inherits2.default)(UnsupportedStrategy, _UnknownError8);\n return (0, _createClass2.default)(UnsupportedStrategy);\n}(UnknownError);\nvar InvalidCallbackUrl = exports.InvalidCallbackUrl = function (_UnknownError9) {\n function InvalidCallbackUrl() {\n var _this10;\n (0, _classCallCheck2.default)(this, InvalidCallbackUrl);\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n _this10 = _callSuper(this, InvalidCallbackUrl, [].concat(args));\n (0, _defineProperty2.default)(_this10, \"name\", \"InvalidCallbackUrl\");\n (0, _defineProperty2.default)(_this10, \"code\", \"INVALID_CALLBACK_URL_ERROR\");\n return _this10;\n }\n (0, _inherits2.default)(InvalidCallbackUrl, _UnknownError9);\n return (0, _createClass2.default)(InvalidCallbackUrl);\n}(UnknownError);\nfunction upperSnake(s) {\n return s.replace(/([A-Z])/g, \"_$1\").toUpperCase();\n}\nfunction capitalize(s) {\n return \"\".concat(s[0].toUpperCase()).concat(s.slice(1));\n}\nfunction eventsErrorHandler(methods, logger) {\n return Object.keys(methods).reduce(function (acc, name) {\n acc[name] = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {\n var method,\n _args = arguments;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n method = methods[name];\n _context.next = 4;\n return method.apply(void 0, _args);\n case 4:\n return _context.abrupt(\"return\", _context.sent);\n case 7:\n _context.prev = 7;\n _context.t0 = _context[\"catch\"](0);\n logger.error(\"\".concat(upperSnake(name), \"_EVENT_ERROR\"), _context.t0);\n case 10:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 7]]);\n }));\n return acc;\n }, {});\n}\nfunction adapterErrorHandler(adapter, logger) {\n if (!adapter) return;\n return Object.keys(adapter).reduce(function (acc, name) {\n acc[name] = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2() {\n var _len10,\n args,\n _key10,\n method,\n e,\n _args2 = arguments;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n for (_len10 = _args2.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n args[_key10] = _args2[_key10];\n }\n logger.debug(\"adapter_\".concat(name), {\n args: args\n });\n method = adapter[name];\n _context2.next = 6;\n return method.apply(void 0, args);\n case 6:\n return _context2.abrupt(\"return\", _context2.sent);\n case 9:\n _context2.prev = 9;\n _context2.t0 = _context2[\"catch\"](0);\n logger.error(\"adapter_error_\".concat(name), _context2.t0);\n e = new UnknownError(_context2.t0);\n e.name = \"\".concat(capitalize(name), \"Error\");\n throw e;\n case 15:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 9]]);\n }));\n return acc;\n }, {});\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvY29yZS9lcnJvcnMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsNkJBQTZCLG1CQUFPLENBQUMsd0lBQThDO0FBQ25GLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDJCQUEyQixHQUFHLG9CQUFvQixHQUFHLDBCQUEwQixHQUFHLHFCQUFxQixHQUFHLHdCQUF3QixHQUFHLDZCQUE2QixHQUFHLHNCQUFzQixHQUFHLHVCQUF1QixHQUFHLDBCQUEwQixHQUFHLDZCQUE2QjtBQUNsUiwyQkFBMkI7QUFDM0Isa0JBQWtCO0FBQ2xCLDBCQUEwQjtBQUMxQixrQkFBa0I7QUFDbEIsMENBQTBDLG1CQUFPLENBQUMsMEdBQTRCO0FBQzlFLGdEQUFnRCxtQkFBTyxDQUFDLDhIQUF5QztBQUNqRyw4Q0FBOEMsbUJBQU8sQ0FBQywwSEFBdUM7QUFDN0YsOENBQThDLG1CQUFPLENBQUMsMEhBQXVDO0FBQzdGLDJDQUEyQyxtQkFBTyxDQUFDLG9IQUFvQztBQUN2Rix5REFBeUQsbUJBQU8sQ0FBQyxnSkFBa0Q7QUFDbkgsOENBQThDLG1CQUFPLENBQUMsMEhBQXVDO0FBQzdGLHdDQUF3QyxtQkFBTyxDQUFDLDhHQUFpQztBQUNqRiwrQ0FBK0MsbUJBQU8sQ0FBQyw0SEFBd0M7QUFDL0YsK0JBQStCO0FBQy9CLHVDQUF1QyxNQUFNLHFGQUFxRixNQUFNLGFBQWEsMkVBQTJFLGFBQWE7QUFDN08sbUJBQW1CLG9CQUFvQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxDQUFDO0FBQ0QseUJBQXlCLDBCQUEwQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQSx3RUFBd0UsYUFBYTtBQUNyRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDRCQUE0Qiw2QkFBNkI7QUFDekQ7QUFDQTtBQUNBO0FBQ0EsMkVBQTJFLGVBQWU7QUFDMUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxzQkFBc0IsdUJBQXVCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxlQUFlO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxvQkFBb0IscUJBQXFCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxlQUFlO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx1QkFBdUIsd0JBQXdCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxlQUFlO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxxQkFBcUIsc0JBQXNCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxlQUFlO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCw0QkFBNEIsNkJBQTZCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxlQUFlO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCwwQkFBMEIsMkJBQTJCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxlQUFlO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx5QkFBeUIsMEJBQTBCO0FBQ25EO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxlQUFlO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQSxHQUFHLElBQUk7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrRUFBK0UsaUJBQWlCO0FBQ2hHO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBLEdBQUcsSUFBSTtBQUNQIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvY29yZS9lcnJvcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuVW5zdXBwb3J0ZWRTdHJhdGVneSA9IGV4cG9ydHMuVW5rbm93bkVycm9yID0gZXhwb3J0cy5PQXV0aENhbGxiYWNrRXJyb3IgPSBleHBvcnRzLk1pc3NpbmdTZWNyZXQgPSBleHBvcnRzLk1pc3NpbmdBdXRob3JpemUgPSBleHBvcnRzLk1pc3NpbmdBZGFwdGVyTWV0aG9kcyA9IGV4cG9ydHMuTWlzc2luZ0FkYXB0ZXIgPSBleHBvcnRzLk1pc3NpbmdBUElSb3V0ZSA9IGV4cG9ydHMuSW52YWxpZENhbGxiYWNrVXJsID0gZXhwb3J0cy5BY2NvdW50Tm90TGlua2VkRXJyb3IgPSB2b2lkIDA7XG5leHBvcnRzLmFkYXB0ZXJFcnJvckhhbmRsZXIgPSBhZGFwdGVyRXJyb3JIYW5kbGVyO1xuZXhwb3J0cy5jYXBpdGFsaXplID0gY2FwaXRhbGl6ZTtcbmV4cG9ydHMuZXZlbnRzRXJyb3JIYW5kbGVyID0gZXZlbnRzRXJyb3JIYW5kbGVyO1xuZXhwb3J0cy51cHBlclNuYWtlID0gdXBwZXJTbmFrZTtcbnZhciBfcmVnZW5lcmF0b3IgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9yZWdlbmVyYXRvclwiKSk7XG52YXIgX2FzeW5jVG9HZW5lcmF0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3luY1RvR2VuZXJhdG9yXCIpKTtcbnZhciBfZGVmaW5lUHJvcGVydHkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eVwiKSk7XG52YXIgX2NsYXNzQ2FsbENoZWNrMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2tcIikpO1xudmFyIF9jcmVhdGVDbGFzczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzXCIpKTtcbnZhciBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm5cIikpO1xudmFyIF9nZXRQcm90b3R5cGVPZjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2dldFByb3RvdHlwZU9mXCIpKTtcbnZhciBfaW5oZXJpdHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbmhlcml0c1wiKSk7XG52YXIgX3dyYXBOYXRpdmVTdXBlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3dyYXBOYXRpdmVTdXBlclwiKSk7XG5mdW5jdGlvbiBfY2FsbFN1cGVyKHQsIG8sIGUpIHsgcmV0dXJuIG8gPSAoMCwgX2dldFByb3RvdHlwZU9mMi5kZWZhdWx0KShvKSwgKDAsIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMi5kZWZhdWx0KSh0LCBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgPyBSZWZsZWN0LmNvbnN0cnVjdChvLCBlIHx8IFtdLCAoMCwgX2dldFByb3RvdHlwZU9mMi5kZWZhdWx0KSh0KS5jb25zdHJ1Y3RvcikgOiBvLmFwcGx5KHQsIGUpKTsgfVxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgdHJ5IHsgdmFyIHQgPSAhQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyB9IGNhdGNoICh0KSB7fSByZXR1cm4gKF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBmdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyByZXR1cm4gISF0OyB9KSgpOyB9XG52YXIgVW5rbm93bkVycm9yID0gZXhwb3J0cy5Vbmtub3duRXJyb3IgPSBmdW5jdGlvbiAoX0Vycm9yKSB7XG4gIGZ1bmN0aW9uIFVua25vd25FcnJvcihlcnJvcikge1xuICAgIHZhciBfbWVzc2FnZTtcbiAgICB2YXIgX3RoaXM7XG4gICAgKDAsIF9jbGFzc0NhbGxDaGVjazIuZGVmYXVsdCkodGhpcywgVW5rbm93bkVycm9yKTtcbiAgICBfdGhpcyA9IF9jYWxsU3VwZXIodGhpcywgVW5rbm93bkVycm9yLCBbKF9tZXNzYWdlID0gZXJyb3IgPT09IG51bGwgfHwgZXJyb3IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVycm9yLm1lc3NhZ2UpICE9PSBudWxsICYmIF9tZXNzYWdlICE9PSB2b2lkIDAgPyBfbWVzc2FnZSA6IGVycm9yXSk7XG4gICAgX3RoaXMubmFtZSA9IFwiVW5rbm93bkVycm9yXCI7XG4gICAgX3RoaXMuY29kZSA9IGVycm9yLmNvZGU7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIF90aGlzLnN0YWNrID0gZXJyb3Iuc3RhY2s7XG4gICAgfVxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuICAoMCwgX2luaGVyaXRzMi5kZWZhdWx0KShVbmtub3duRXJyb3IsIF9FcnJvcik7XG4gIHJldHVybiAoMCwgX2NyZWF0ZUNsYXNzMi5kZWZhdWx0KShVbmtub3duRXJyb3IsIFt7XG4gICAga2V5OiBcInRvSlNPTlwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB0b0pTT04oKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZSxcbiAgICAgICAgc3RhY2s6IHRoaXMuc3RhY2tcbiAgICAgIH07XG4gICAgfVxuICB9XSk7XG59KCgwLCBfd3JhcE5hdGl2ZVN1cGVyMi5kZWZhdWx0KShFcnJvcikpO1xudmFyIE9BdXRoQ2FsbGJhY2tFcnJvciA9IGV4cG9ydHMuT0F1dGhDYWxsYmFja0Vycm9yID0gZnVuY3Rpb24gKF9Vbmtub3duRXJyb3IpIHtcbiAgZnVuY3Rpb24gT0F1dGhDYWxsYmFja0Vycm9yKCkge1xuICAgIHZhciBfdGhpczI7XG4gICAgKDAsIF9jbGFzc0NhbGxDaGVjazIuZGVmYXVsdCkodGhpcywgT0F1dGhDYWxsYmFja0Vycm9yKTtcbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuICAgIF90aGlzMiA9IF9jYWxsU3VwZXIodGhpcywgT0F1dGhDYWxsYmFja0Vycm9yLCBbXS5jb25jYXQoYXJncykpO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF90aGlzMiwgXCJuYW1lXCIsIFwiT0F1dGhDYWxsYmFja0Vycm9yXCIpO1xuICAgIHJldHVybiBfdGhpczI7XG4gIH1cbiAgKDAsIF9pbmhlcml0czIuZGVmYXVsdCkoT0F1dGhDYWxsYmFja0Vycm9yLCBfVW5rbm93bkVycm9yKTtcbiAgcmV0dXJuICgwLCBfY3JlYXRlQ2xhc3MyLmRlZmF1bHQpKE9BdXRoQ2FsbGJhY2tFcnJvcik7XG59KFVua25vd25FcnJvcik7XG52YXIgQWNjb3VudE5vdExpbmtlZEVycm9yID0gZXhwb3J0cy5BY2NvdW50Tm90TGlua2VkRXJyb3IgPSBmdW5jdGlvbiAoX1Vua25vd25FcnJvcjIpIHtcbiAgZnVuY3Rpb24gQWNjb3VudE5vdExpbmtlZEVycm9yKCkge1xuICAgIHZhciBfdGhpczM7XG4gICAgKDAsIF9jbGFzc0NhbGxDaGVjazIuZGVmYXVsdCkodGhpcywgQWNjb3VudE5vdExpbmtlZEVycm9yKTtcbiAgICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjIpLCBfa2V5MiA9IDA7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgIGFyZ3NbX2tleTJdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICB9XG4gICAgX3RoaXMzID0gX2NhbGxTdXBlcih0aGlzLCBBY2NvdW50Tm90TGlua2VkRXJyb3IsIFtdLmNvbmNhdChhcmdzKSk7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXMzLCBcIm5hbWVcIiwgXCJBY2NvdW50Tm90TGlua2VkRXJyb3JcIik7XG4gICAgcmV0dXJuIF90aGlzMztcbiAgfVxuICAoMCwgX2luaGVyaXRzMi5kZWZhdWx0KShBY2NvdW50Tm90TGlua2VkRXJyb3IsIF9Vbmtub3duRXJyb3IyKTtcbiAgcmV0dXJuICgwLCBfY3JlYXRlQ2xhc3MyLmRlZmF1bHQpKEFjY291bnROb3RMaW5rZWRFcnJvcik7XG59KFVua25vd25FcnJvcik7XG52YXIgTWlzc2luZ0FQSVJvdXRlID0gZXhwb3J0cy5NaXNzaW5nQVBJUm91dGUgPSBmdW5jdGlvbiAoX1Vua25vd25FcnJvcjMpIHtcbiAgZnVuY3Rpb24gTWlzc2luZ0FQSVJvdXRlKCkge1xuICAgIHZhciBfdGhpczQ7XG4gICAgKDAsIF9jbGFzc0NhbGxDaGVjazIuZGVmYXVsdCkodGhpcywgTWlzc2luZ0FQSVJvdXRlKTtcbiAgICBmb3IgKHZhciBfbGVuMyA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjMpLCBfa2V5MyA9IDA7IF9rZXkzIDwgX2xlbjM7IF9rZXkzKyspIHtcbiAgICAgIGFyZ3NbX2tleTNdID0gYXJndW1lbnRzW19rZXkzXTtcbiAgICB9XG4gICAgX3RoaXM0ID0gX2NhbGxTdXBlcih0aGlzLCBNaXNzaW5nQVBJUm91dGUsIFtdLmNvbmNhdChhcmdzKSk7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXM0LCBcIm5hbWVcIiwgXCJNaXNzaW5nQVBJUm91dGVFcnJvclwiKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczQsIFwiY29kZVwiLCBcIk1JU1NJTkdfTkVYVEFVVEhfQVBJX1JPVVRFX0VSUk9SXCIpO1xuICAgIHJldHVybiBfdGhpczQ7XG4gIH1cbiAgKDAsIF9pbmhlcml0czIuZGVmYXVsdCkoTWlzc2luZ0FQSVJvdXRlLCBfVW5rbm93bkVycm9yMyk7XG4gIHJldHVybiAoMCwgX2NyZWF0ZUNsYXNzMi5kZWZhdWx0KShNaXNzaW5nQVBJUm91dGUpO1xufShVbmtub3duRXJyb3IpO1xudmFyIE1pc3NpbmdTZWNyZXQgPSBleHBvcnRzLk1pc3NpbmdTZWNyZXQgPSBmdW5jdGlvbiAoX1Vua25vd25FcnJvcjQpIHtcbiAgZnVuY3Rpb24gTWlzc2luZ1NlY3JldCgpIHtcbiAgICB2YXIgX3RoaXM1O1xuICAgICgwLCBfY2xhc3NDYWxsQ2hlY2syLmRlZmF1bHQpKHRoaXMsIE1pc3NpbmdTZWNyZXQpO1xuICAgIGZvciAodmFyIF9sZW40ID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuNCksIF9rZXk0ID0gMDsgX2tleTQgPCBfbGVuNDsgX2tleTQrKykge1xuICAgICAgYXJnc1tfa2V5NF0gPSBhcmd1bWVudHNbX2tleTRdO1xuICAgIH1cbiAgICBfdGhpczUgPSBfY2FsbFN1cGVyKHRoaXMsIE1pc3NpbmdTZWNyZXQsIFtdLmNvbmNhdChhcmdzKSk7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXM1LCBcIm5hbWVcIiwgXCJNaXNzaW5nU2VjcmV0RXJyb3JcIik7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXM1LCBcImNvZGVcIiwgXCJOT19TRUNSRVRcIik7XG4gICAgcmV0dXJuIF90aGlzNTtcbiAgfVxuICAoMCwgX2luaGVyaXRzMi5kZWZhdWx0KShNaXNzaW5nU2VjcmV0LCBfVW5rbm93bkVycm9yNCk7XG4gIHJldHVybiAoMCwgX2NyZWF0ZUNsYXNzMi5kZWZhdWx0KShNaXNzaW5nU2VjcmV0KTtcbn0oVW5rbm93bkVycm9yKTtcbnZhciBNaXNzaW5nQXV0aG9yaXplID0gZXhwb3J0cy5NaXNzaW5nQXV0aG9yaXplID0gZnVuY3Rpb24gKF9Vbmtub3duRXJyb3I1KSB7XG4gIGZ1bmN0aW9uIE1pc3NpbmdBdXRob3JpemUoKSB7XG4gICAgdmFyIF90aGlzNjtcbiAgICAoMCwgX2NsYXNzQ2FsbENoZWNrMi5kZWZhdWx0KSh0aGlzLCBNaXNzaW5nQXV0aG9yaXplKTtcbiAgICBmb3IgKHZhciBfbGVuNSA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjUpLCBfa2V5NSA9IDA7IF9rZXk1IDwgX2xlbjU7IF9rZXk1KyspIHtcbiAgICAgIGFyZ3NbX2tleTVdID0gYXJndW1lbnRzW19rZXk1XTtcbiAgICB9XG4gICAgX3RoaXM2ID0gX2NhbGxTdXBlcih0aGlzLCBNaXNzaW5nQXV0aG9yaXplLCBbXS5jb25jYXQoYXJncykpO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF90aGlzNiwgXCJuYW1lXCIsIFwiTWlzc2luZ0F1dGhvcml6ZUVycm9yXCIpO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF90aGlzNiwgXCJjb2RlXCIsIFwiQ0FMTEJBQ0tfQ1JFREVOVElBTFNfSEFORExFUl9FUlJPUlwiKTtcbiAgICByZXR1cm4gX3RoaXM2O1xuICB9XG4gICgwLCBfaW5oZXJpdHMyLmRlZmF1bHQpKE1pc3NpbmdBdXRob3JpemUsIF9Vbmtub3duRXJyb3I1KTtcbiAgcmV0dXJuICgwLCBfY3JlYXRlQ2xhc3MyLmRlZmF1bHQpKE1pc3NpbmdBdXRob3JpemUpO1xufShVbmtub3duRXJyb3IpO1xudmFyIE1pc3NpbmdBZGFwdGVyID0gZXhwb3J0cy5NaXNzaW5nQWRhcHRlciA9IGZ1bmN0aW9uIChfVW5rbm93bkVycm9yNikge1xuICBmdW5jdGlvbiBNaXNzaW5nQWRhcHRlcigpIHtcbiAgICB2YXIgX3RoaXM3O1xuICAgICgwLCBfY2xhc3NDYWxsQ2hlY2syLmRlZmF1bHQpKHRoaXMsIE1pc3NpbmdBZGFwdGVyKTtcbiAgICBmb3IgKHZhciBfbGVuNiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjYpLCBfa2V5NiA9IDA7IF9rZXk2IDwgX2xlbjY7IF9rZXk2KyspIHtcbiAgICAgIGFyZ3NbX2tleTZdID0gYXJndW1lbnRzW19rZXk2XTtcbiAgICB9XG4gICAgX3RoaXM3ID0gX2NhbGxTdXBlcih0aGlzLCBNaXNzaW5nQWRhcHRlciwgW10uY29uY2F0KGFyZ3MpKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczcsIFwibmFtZVwiLCBcIk1pc3NpbmdBZGFwdGVyRXJyb3JcIik7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXM3LCBcImNvZGVcIiwgXCJFTUFJTF9SRVFVSVJFU19BREFQVEVSX0VSUk9SXCIpO1xuICAgIHJldHVybiBfdGhpczc7XG4gIH1cbiAgKDAsIF9pbmhlcml0czIuZGVmYXVsdCkoTWlzc2luZ0FkYXB0ZXIsIF9Vbmtub3duRXJyb3I2KTtcbiAgcmV0dXJuICgwLCBfY3JlYXRlQ2xhc3MyLmRlZmF1bHQpKE1pc3NpbmdBZGFwdGVyKTtcbn0oVW5rbm93bkVycm9yKTtcbnZhciBNaXNzaW5nQWRhcHRlck1ldGhvZHMgPSBleHBvcnRzLk1pc3NpbmdBZGFwdGVyTWV0aG9kcyA9IGZ1bmN0aW9uIChfVW5rbm93bkVycm9yNykge1xuICBmdW5jdGlvbiBNaXNzaW5nQWRhcHRlck1ldGhvZHMoKSB7XG4gICAgdmFyIF90aGlzODtcbiAgICAoMCwgX2NsYXNzQ2FsbENoZWNrMi5kZWZhdWx0KSh0aGlzLCBNaXNzaW5nQWRhcHRlck1ldGhvZHMpO1xuICAgIGZvciAodmFyIF9sZW43ID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuNyksIF9rZXk3ID0gMDsgX2tleTcgPCBfbGVuNzsgX2tleTcrKykge1xuICAgICAgYXJnc1tfa2V5N10gPSBhcmd1bWVudHNbX2tleTddO1xuICAgIH1cbiAgICBfdGhpczggPSBfY2FsbFN1cGVyKHRoaXMsIE1pc3NpbmdBZGFwdGVyTWV0aG9kcywgW10uY29uY2F0KGFyZ3MpKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczgsIFwibmFtZVwiLCBcIk1pc3NpbmdBZGFwdGVyTWV0aG9kc0Vycm9yXCIpO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF90aGlzOCwgXCJjb2RlXCIsIFwiTUlTU0lOR19BREFQVEVSX01FVEhPRFNfRVJST1JcIik7XG4gICAgcmV0dXJuIF90aGlzODtcbiAgfVxuICAoMCwgX2luaGVyaXRzMi5kZWZhdWx0KShNaXNzaW5nQWRhcHRlck1ldGhvZHMsIF9Vbmtub3duRXJyb3I3KTtcbiAgcmV0dXJuICgwLCBfY3JlYXRlQ2xhc3MyLmRlZmF1bHQpKE1pc3NpbmdBZGFwdGVyTWV0aG9kcyk7XG59KFVua25vd25FcnJvcik7XG52YXIgVW5zdXBwb3J0ZWRTdHJhdGVneSA9IGV4cG9ydHMuVW5zdXBwb3J0ZWRTdHJhdGVneSA9IGZ1bmN0aW9uIChfVW5rbm93bkVycm9yOCkge1xuICBmdW5jdGlvbiBVbnN1cHBvcnRlZFN0cmF0ZWd5KCkge1xuICAgIHZhciBfdGhpczk7XG4gICAgKDAsIF9jbGFzc0NhbGxDaGVjazIuZGVmYXVsdCkodGhpcywgVW5zdXBwb3J0ZWRTdHJhdGVneSk7XG4gICAgZm9yICh2YXIgX2xlbjggPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW44KSwgX2tleTggPSAwOyBfa2V5OCA8IF9sZW44OyBfa2V5OCsrKSB7XG4gICAgICBhcmdzW19rZXk4XSA9IGFyZ3VtZW50c1tfa2V5OF07XG4gICAgfVxuICAgIF90aGlzOSA9IF9jYWxsU3VwZXIodGhpcywgVW5zdXBwb3J0ZWRTdHJhdGVneSwgW10uY29uY2F0KGFyZ3MpKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczksIFwibmFtZVwiLCBcIlVuc3VwcG9ydGVkU3RyYXRlZ3lFcnJvclwiKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczksIFwiY29kZVwiLCBcIkNBTExCQUNLX0NSRURFTlRJQUxTX0pXVF9FUlJPUlwiKTtcbiAgICByZXR1cm4gX3RoaXM5O1xuICB9XG4gICgwLCBfaW5oZXJpdHMyLmRlZmF1bHQpKFVuc3VwcG9ydGVkU3RyYXRlZ3ksIF9Vbmtub3duRXJyb3I4KTtcbiAgcmV0dXJuICgwLCBfY3JlYXRlQ2xhc3MyLmRlZmF1bHQpKFVuc3VwcG9ydGVkU3RyYXRlZ3kpO1xufShVbmtub3duRXJyb3IpO1xudmFyIEludmFsaWRDYWxsYmFja1VybCA9IGV4cG9ydHMuSW52YWxpZENhbGxiYWNrVXJsID0gZnVuY3Rpb24gKF9Vbmtub3duRXJyb3I5KSB7XG4gIGZ1bmN0aW9uIEludmFsaWRDYWxsYmFja1VybCgpIHtcbiAgICB2YXIgX3RoaXMxMDtcbiAgICAoMCwgX2NsYXNzQ2FsbENoZWNrMi5kZWZhdWx0KSh0aGlzLCBJbnZhbGlkQ2FsbGJhY2tVcmwpO1xuICAgIGZvciAodmFyIF9sZW45ID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuOSksIF9rZXk5ID0gMDsgX2tleTkgPCBfbGVuOTsgX2tleTkrKykge1xuICAgICAgYXJnc1tfa2V5OV0gPSBhcmd1bWVudHNbX2tleTldO1xuICAgIH1cbiAgICBfdGhpczEwID0gX2NhbGxTdXBlcih0aGlzLCBJbnZhbGlkQ2FsbGJhY2tVcmwsIFtdLmNvbmNhdChhcmdzKSk7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXMxMCwgXCJuYW1lXCIsIFwiSW52YWxpZENhbGxiYWNrVXJsXCIpO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF90aGlzMTAsIFwiY29kZVwiLCBcIklOVkFMSURfQ0FMTEJBQ0tfVVJMX0VSUk9SXCIpO1xuICAgIHJldHVybiBfdGhpczEwO1xuICB9XG4gICgwLCBfaW5oZXJpdHMyLmRlZmF1bHQpKEludmFsaWRDYWxsYmFja1VybCwgX1Vua25vd25FcnJvcjkpO1xuICByZXR1cm4gKDAsIF9jcmVhdGVDbGFzczIuZGVmYXVsdCkoSW52YWxpZENhbGxiYWNrVXJsKTtcbn0oVW5rbm93bkVycm9yKTtcbmZ1bmN0aW9uIHVwcGVyU25ha2Uocykge1xuICByZXR1cm4gcy5yZXBsYWNlKC8oW0EtWl0pL2csIFwiXyQxXCIpLnRvVXBwZXJDYXNlKCk7XG59XG5mdW5jdGlvbiBjYXBpdGFsaXplKHMpIHtcbiAgcmV0dXJuIFwiXCIuY29uY2F0KHNbMF0udG9VcHBlckNhc2UoKSkuY29uY2F0KHMuc2xpY2UoMSkpO1xufVxuZnVuY3Rpb24gZXZlbnRzRXJyb3JIYW5kbGVyKG1ldGhvZHMsIGxvZ2dlcikge1xuICByZXR1cm4gT2JqZWN0LmtleXMobWV0aG9kcykucmVkdWNlKGZ1bmN0aW9uIChhY2MsIG5hbWUpIHtcbiAgICBhY2NbbmFtZV0gPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyLmRlZmF1bHQpKF9yZWdlbmVyYXRvci5kZWZhdWx0Lm1hcmsoZnVuY3Rpb24gX2NhbGxlZSgpIHtcbiAgICAgIHZhciBtZXRob2QsXG4gICAgICAgIF9hcmdzID0gYXJndW1lbnRzO1xuICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvci5kZWZhdWx0LndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHtcbiAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dC5wcmV2ID0gMDtcbiAgICAgICAgICAgIG1ldGhvZCA9IG1ldGhvZHNbbmFtZV07XG4gICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gNDtcbiAgICAgICAgICAgIHJldHVybiBtZXRob2QuYXBwbHkodm9pZCAwLCBfYXJncyk7XG4gICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LmFicnVwdChcInJldHVyblwiLCBfY29udGV4dC5zZW50KTtcbiAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICBfY29udGV4dC5wcmV2ID0gNztcbiAgICAgICAgICAgIF9jb250ZXh0LnQwID0gX2NvbnRleHRbXCJjYXRjaFwiXSgwKTtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcIlwiLmNvbmNhdCh1cHBlclNuYWtlKG5hbWUpLCBcIl9FVkVOVF9FUlJPUlwiKSwgX2NvbnRleHQudDApO1xuICAgICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgfSwgX2NhbGxlZSwgbnVsbCwgW1swLCA3XV0pO1xuICAgIH0pKTtcbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG59XG5mdW5jdGlvbiBhZGFwdGVyRXJyb3JIYW5kbGVyKGFkYXB0ZXIsIGxvZ2dlcikge1xuICBpZiAoIWFkYXB0ZXIpIHJldHVybjtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKGFkYXB0ZXIpLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBuYW1lKSB7XG4gICAgYWNjW25hbWVdID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMi5kZWZhdWx0KShfcmVnZW5lcmF0b3IuZGVmYXVsdC5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUyKCkge1xuICAgICAgdmFyIF9sZW4xMCxcbiAgICAgICAgYXJncyxcbiAgICAgICAgX2tleTEwLFxuICAgICAgICBtZXRob2QsXG4gICAgICAgIGUsXG4gICAgICAgIF9hcmdzMiA9IGFyZ3VtZW50cztcbiAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IuZGVmYXVsdC53cmFwKGZ1bmN0aW9uIF9jYWxsZWUyJChfY29udGV4dDIpIHtcbiAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQyLnByZXYgPSBfY29udGV4dDIubmV4dCkge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIF9jb250ZXh0Mi5wcmV2ID0gMDtcbiAgICAgICAgICAgIGZvciAoX2xlbjEwID0gX2FyZ3MyLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMTApLCBfa2V5MTAgPSAwOyBfa2V5MTAgPCBfbGVuMTA7IF9rZXkxMCsrKSB7XG4gICAgICAgICAgICAgIGFyZ3NbX2tleTEwXSA9IF9hcmdzMltfa2V5MTBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKFwiYWRhcHRlcl9cIi5jb25jYXQobmFtZSksIHtcbiAgICAgICAgICAgICAgYXJnczogYXJnc1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBtZXRob2QgPSBhZGFwdGVyW25hbWVdO1xuICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSA2O1xuICAgICAgICAgICAgcmV0dXJuIG1ldGhvZC5hcHBseSh2b2lkIDAsIGFyZ3MpO1xuICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0Mi5zZW50KTtcbiAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICBfY29udGV4dDIucHJldiA9IDk7XG4gICAgICAgICAgICBfY29udGV4dDIudDAgPSBfY29udGV4dDJbXCJjYXRjaFwiXSgwKTtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcImFkYXB0ZXJfZXJyb3JfXCIuY29uY2F0KG5hbWUpLCBfY29udGV4dDIudDApO1xuICAgICAgICAgICAgZSA9IG5ldyBVbmtub3duRXJyb3IoX2NvbnRleHQyLnQwKTtcbiAgICAgICAgICAgIGUubmFtZSA9IFwiXCIuY29uY2F0KGNhcGl0YWxpemUobmFtZSksIFwiRXJyb3JcIik7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH0sIF9jYWxsZWUyLCBudWxsLCBbWzAsIDldXSk7XG4gICAgfSkpO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn0iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next-auth/core/errors.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next-auth/react/index.js": /*!***********************************************!*\ !*** ./node_modules/next-auth/react/index.js ***! \***********************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("/* provided dependency */ var process = __webpack_require__(/*! process */ \"(app-pages-browser)/./node_modules/next/dist/build/polyfills/process.js\");\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/typeof.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar _exportNames = {\n SessionContext: true,\n useSession: true,\n getSession: true,\n getCsrfToken: true,\n getProviders: true,\n signIn: true,\n signOut: true,\n SessionProvider: true\n};\nexports.SessionContext = void 0;\nexports.SessionProvider = SessionProvider;\nexports.getCsrfToken = getCsrfToken;\nexports.getProviders = getProviders;\nexports.getSession = getSession;\nexports.signIn = signIn;\nexports.signOut = signOut;\nexports.useSession = useSession;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"(app-pages-browser)/./node_modules/@babel/runtime/regenerator/index.js\"));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\nvar _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/slicedToArray.js\"));\nvar React = _interopRequireWildcard(__webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\"));\nvar _logger2 = _interopRequireWildcard(__webpack_require__(/*! ../utils/logger */ \"(app-pages-browser)/./node_modules/next-auth/utils/logger.js\"));\nvar _parseUrl = _interopRequireDefault(__webpack_require__(/*! ../utils/parse-url */ \"(app-pages-browser)/./node_modules/next-auth/utils/parse-url.js\"));\nvar _utils = __webpack_require__(/*! ../client/_utils */ \"(app-pages-browser)/./node_modules/next-auth/client/_utils.js\");\nvar _jsxRuntime = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\nvar _types = __webpack_require__(/*! ./types */ \"(app-pages-browser)/./node_modules/next-auth/react/types.js\");\nObject.keys(_types).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _types[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _types[key];\n }\n });\n});\nvar _process$env$NEXTAUTH, _ref, _process$env$NEXTAUTH2, _process$env$NEXTAUTH3, _React$createContext;\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar __NEXTAUTH = {\n baseUrl: (0, _parseUrl.default)((_process$env$NEXTAUTH = process.env.NEXTAUTH_URL) !== null && _process$env$NEXTAUTH !== void 0 ? _process$env$NEXTAUTH : process.env.VERCEL_URL).origin,\n basePath: (0, _parseUrl.default)(process.env.NEXTAUTH_URL).path,\n baseUrlServer: (0, _parseUrl.default)((_ref = (_process$env$NEXTAUTH2 = process.env.NEXTAUTH_URL_INTERNAL) !== null && _process$env$NEXTAUTH2 !== void 0 ? _process$env$NEXTAUTH2 : process.env.NEXTAUTH_URL) !== null && _ref !== void 0 ? _ref : process.env.VERCEL_URL).origin,\n basePathServer: (0, _parseUrl.default)((_process$env$NEXTAUTH3 = process.env.NEXTAUTH_URL_INTERNAL) !== null && _process$env$NEXTAUTH3 !== void 0 ? _process$env$NEXTAUTH3 : process.env.NEXTAUTH_URL).path,\n _lastSync: 0,\n _session: undefined,\n _getSession: function _getSession() {}\n};\nvar broadcast = (0, _utils.BroadcastChannel)();\nvar logger = (0, _logger2.proxyLogger)(_logger2.default, __NEXTAUTH.basePath);\nfunction useOnline() {\n var _React$useState = React.useState(typeof navigator !== \"undefined\" ? navigator.onLine : false),\n _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),\n isOnline = _React$useState2[0],\n setIsOnline = _React$useState2[1];\n var setOnline = function setOnline() {\n return setIsOnline(true);\n };\n var setOffline = function setOffline() {\n return setIsOnline(false);\n };\n React.useEffect(function () {\n window.addEventListener(\"online\", setOnline);\n window.addEventListener(\"offline\", setOffline);\n return function () {\n window.removeEventListener(\"online\", setOnline);\n window.removeEventListener(\"offline\", setOffline);\n };\n }, []);\n return isOnline;\n}\nvar SessionContext = exports.SessionContext = (_React$createContext = React.createContext) === null || _React$createContext === void 0 ? void 0 : _React$createContext.call(React, undefined);\nfunction useSession(options) {\n if (!SessionContext) {\n throw new Error(\"React Context is unavailable in Server Components\");\n }\n var value = React.useContext(SessionContext);\n if (!value && \"development\" !== \"production\") {\n throw new Error(\"[next-auth]: `useSession` must be wrapped in a \");\n }\n var _ref2 = options !== null && options !== void 0 ? options : {},\n required = _ref2.required,\n onUnauthenticated = _ref2.onUnauthenticated;\n var requiredAndNotLoading = required && value.status === \"unauthenticated\";\n React.useEffect(function () {\n if (requiredAndNotLoading) {\n var url = \"/api/auth/signin?\".concat(new URLSearchParams({\n error: \"SessionRequired\",\n callbackUrl: window.location.href\n }));\n if (onUnauthenticated) onUnauthenticated();else window.location.href = url;\n }\n }, [requiredAndNotLoading, onUnauthenticated]);\n if (requiredAndNotLoading) {\n return {\n data: value.data,\n update: value.update,\n status: \"loading\"\n };\n }\n return value;\n}\nfunction getSession(_x) {\n return _getSession2.apply(this, arguments);\n}\nfunction _getSession2() {\n _getSession2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(params) {\n var _params$broadcast;\n var session;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return (0, _utils.fetchData)(\"session\", __NEXTAUTH, logger, params);\n case 2:\n session = _context3.sent;\n if ((_params$broadcast = params === null || params === void 0 ? void 0 : params.broadcast) !== null && _params$broadcast !== void 0 ? _params$broadcast : true) {\n broadcast.post({\n event: \"session\",\n data: {\n trigger: \"getSession\"\n }\n });\n }\n return _context3.abrupt(\"return\", session);\n case 5:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return _getSession2.apply(this, arguments);\n}\nfunction getCsrfToken(_x2) {\n return _getCsrfToken.apply(this, arguments);\n}\nfunction _getCsrfToken() {\n _getCsrfToken = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(params) {\n var response;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return (0, _utils.fetchData)(\"csrf\", __NEXTAUTH, logger, params);\n case 2:\n response = _context4.sent;\n return _context4.abrupt(\"return\", response === null || response === void 0 ? void 0 : response.csrfToken);\n case 4:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return _getCsrfToken.apply(this, arguments);\n}\nfunction getProviders() {\n return _getProviders.apply(this, arguments);\n}\nfunction _getProviders() {\n _getProviders = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5() {\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return (0, _utils.fetchData)(\"providers\", __NEXTAUTH, logger);\n case 2:\n return _context5.abrupt(\"return\", _context5.sent);\n case 3:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n return _getProviders.apply(this, arguments);\n}\nfunction signIn(_x3, _x4, _x5) {\n return _signIn.apply(this, arguments);\n}\nfunction _signIn() {\n _signIn = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(provider, options, authorizationParams) {\n var _ref5, _ref5$callbackUrl, callbackUrl, _ref5$redirect, redirect, baseUrl, providers, isCredentials, isEmail, isSupportingReturn, signInUrl, _signInUrl, res, data, _data$url, url, error;\n return _regenerator.default.wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _ref5 = options !== null && options !== void 0 ? options : {}, _ref5$callbackUrl = _ref5.callbackUrl, callbackUrl = _ref5$callbackUrl === void 0 ? window.location.href : _ref5$callbackUrl, _ref5$redirect = _ref5.redirect, redirect = _ref5$redirect === void 0 ? true : _ref5$redirect;\n baseUrl = (0, _utils.apiBaseUrl)(__NEXTAUTH);\n _context6.next = 4;\n return getProviders();\n case 4:\n providers = _context6.sent;\n if (providers) {\n _context6.next = 8;\n break;\n }\n window.location.href = \"\".concat(baseUrl, \"/error\");\n return _context6.abrupt(\"return\");\n case 8:\n if (!(!provider || !(provider in providers))) {\n _context6.next = 11;\n break;\n }\n window.location.href = \"\".concat(baseUrl, \"/signin?\").concat(new URLSearchParams({\n callbackUrl: callbackUrl\n }));\n return _context6.abrupt(\"return\");\n case 11:\n isCredentials = providers[provider].type === \"credentials\";\n isEmail = providers[provider].type === \"email\";\n isSupportingReturn = isCredentials || isEmail;\n signInUrl = \"\".concat(baseUrl, \"/\").concat(isCredentials ? \"callback\" : \"signin\", \"/\").concat(provider);\n _signInUrl = \"\".concat(signInUrl).concat(authorizationParams ? \"?\".concat(new URLSearchParams(authorizationParams)) : \"\");\n _context6.t0 = fetch;\n _context6.t1 = _signInUrl;\n _context6.t2 = {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n };\n _context6.t3 = URLSearchParams;\n _context6.t4 = _objectSpread;\n _context6.t5 = _objectSpread({}, options);\n _context6.t6 = {};\n _context6.next = 25;\n return getCsrfToken();\n case 25:\n _context6.t7 = _context6.sent;\n _context6.t8 = callbackUrl;\n _context6.t9 = {\n csrfToken: _context6.t7,\n callbackUrl: _context6.t8,\n json: true\n };\n _context6.t10 = (0, _context6.t4)(_context6.t5, _context6.t6, _context6.t9);\n _context6.t11 = new _context6.t3(_context6.t10);\n _context6.t12 = {\n method: \"post\",\n headers: _context6.t2,\n body: _context6.t11\n };\n _context6.next = 33;\n return (0, _context6.t0)(_context6.t1, _context6.t12);\n case 33:\n res = _context6.sent;\n _context6.next = 36;\n return res.json();\n case 36:\n data = _context6.sent;\n if (!(redirect || !isSupportingReturn)) {\n _context6.next = 42;\n break;\n }\n url = (_data$url = data.url) !== null && _data$url !== void 0 ? _data$url : callbackUrl;\n window.location.href = url;\n if (url.includes(\"#\")) window.location.reload();\n return _context6.abrupt(\"return\");\n case 42:\n error = new URL(data.url).searchParams.get(\"error\");\n if (!res.ok) {\n _context6.next = 46;\n break;\n }\n _context6.next = 46;\n return __NEXTAUTH._getSession({\n event: \"storage\"\n });\n case 46:\n return _context6.abrupt(\"return\", {\n error: error,\n status: res.status,\n ok: res.ok,\n url: error ? null : data.url\n });\n case 47:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n return _signIn.apply(this, arguments);\n}\nfunction signOut(_x6) {\n return _signOut.apply(this, arguments);\n}\nfunction _signOut() {\n _signOut = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee7(options) {\n var _options$redirect;\n var _ref6, _ref6$callbackUrl, callbackUrl, baseUrl, fetchOptions, res, data, _data$url2, url;\n return _regenerator.default.wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _ref6 = options !== null && options !== void 0 ? options : {}, _ref6$callbackUrl = _ref6.callbackUrl, callbackUrl = _ref6$callbackUrl === void 0 ? window.location.href : _ref6$callbackUrl;\n baseUrl = (0, _utils.apiBaseUrl)(__NEXTAUTH);\n _context7.t0 = {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n };\n _context7.t1 = URLSearchParams;\n _context7.next = 6;\n return getCsrfToken();\n case 6:\n _context7.t2 = _context7.sent;\n _context7.t3 = callbackUrl;\n _context7.t4 = {\n csrfToken: _context7.t2,\n callbackUrl: _context7.t3,\n json: true\n };\n _context7.t5 = new _context7.t1(_context7.t4);\n fetchOptions = {\n method: \"post\",\n headers: _context7.t0,\n body: _context7.t5\n };\n _context7.next = 13;\n return fetch(\"\".concat(baseUrl, \"/signout\"), fetchOptions);\n case 13:\n res = _context7.sent;\n _context7.next = 16;\n return res.json();\n case 16:\n data = _context7.sent;\n broadcast.post({\n event: \"session\",\n data: {\n trigger: \"signout\"\n }\n });\n if (!((_options$redirect = options === null || options === void 0 ? void 0 : options.redirect) !== null && _options$redirect !== void 0 ? _options$redirect : true)) {\n _context7.next = 23;\n break;\n }\n url = (_data$url2 = data.url) !== null && _data$url2 !== void 0 ? _data$url2 : callbackUrl;\n window.location.href = url;\n if (url.includes(\"#\")) window.location.reload();\n return _context7.abrupt(\"return\");\n case 23:\n _context7.next = 25;\n return __NEXTAUTH._getSession({\n event: \"storage\"\n });\n case 25:\n return _context7.abrupt(\"return\", data);\n case 26:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n return _signOut.apply(this, arguments);\n}\nfunction SessionProvider(props) {\n if (!SessionContext) {\n throw new Error(\"React Context is unavailable in Server Components\");\n }\n var children = props.children,\n basePath = props.basePath,\n refetchInterval = props.refetchInterval,\n refetchWhenOffline = props.refetchWhenOffline;\n if (basePath) __NEXTAUTH.basePath = basePath;\n var hasInitialSession = props.session !== undefined;\n __NEXTAUTH._lastSync = hasInitialSession ? (0, _utils.now)() : 0;\n var _React$useState3 = React.useState(function () {\n if (hasInitialSession) __NEXTAUTH._session = props.session;\n return props.session;\n }),\n _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),\n session = _React$useState4[0],\n setSession = _React$useState4[1];\n var _React$useState5 = React.useState(!hasInitialSession),\n _React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),\n loading = _React$useState6[0],\n setLoading = _React$useState6[1];\n React.useEffect(function () {\n __NEXTAUTH._getSession = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {\n var _ref4,\n event,\n storageEvent,\n _args = arguments;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _ref4 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, event = _ref4.event;\n _context.prev = 1;\n storageEvent = event === \"storage\";\n if (!(storageEvent || __NEXTAUTH._session === undefined)) {\n _context.next = 10;\n break;\n }\n __NEXTAUTH._lastSync = (0, _utils.now)();\n _context.next = 7;\n return getSession({\n broadcast: !storageEvent\n });\n case 7:\n __NEXTAUTH._session = _context.sent;\n setSession(__NEXTAUTH._session);\n return _context.abrupt(\"return\");\n case 10:\n if (!(!event || __NEXTAUTH._session === null || (0, _utils.now)() < __NEXTAUTH._lastSync)) {\n _context.next = 12;\n break;\n }\n return _context.abrupt(\"return\");\n case 12:\n __NEXTAUTH._lastSync = (0, _utils.now)();\n _context.next = 15;\n return getSession();\n case 15:\n __NEXTAUTH._session = _context.sent;\n setSession(__NEXTAUTH._session);\n _context.next = 22;\n break;\n case 19:\n _context.prev = 19;\n _context.t0 = _context[\"catch\"](1);\n logger.error(\"CLIENT_SESSION_ERROR\", _context.t0);\n case 22:\n _context.prev = 22;\n setLoading(false);\n return _context.finish(22);\n case 25:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[1, 19, 22, 25]]);\n }));\n __NEXTAUTH._getSession();\n return function () {\n __NEXTAUTH._lastSync = 0;\n __NEXTAUTH._session = undefined;\n __NEXTAUTH._getSession = function () {};\n };\n }, []);\n React.useEffect(function () {\n var unsubscribe = broadcast.receive(function () {\n return __NEXTAUTH._getSession({\n event: \"storage\"\n });\n });\n return function () {\n return unsubscribe();\n };\n }, []);\n React.useEffect(function () {\n var _props$refetchOnWindo = props.refetchOnWindowFocus,\n refetchOnWindowFocus = _props$refetchOnWindo === void 0 ? true : _props$refetchOnWindo;\n var visibilityHandler = function visibilityHandler() {\n if (refetchOnWindowFocus && document.visibilityState === \"visible\") __NEXTAUTH._getSession({\n event: \"visibilitychange\"\n });\n };\n document.addEventListener(\"visibilitychange\", visibilityHandler, false);\n return function () {\n return document.removeEventListener(\"visibilitychange\", visibilityHandler, false);\n };\n }, [props.refetchOnWindowFocus]);\n var isOnline = useOnline();\n var shouldRefetch = refetchWhenOffline !== false || isOnline;\n React.useEffect(function () {\n if (refetchInterval && shouldRefetch) {\n var refetchIntervalTimer = setInterval(function () {\n if (__NEXTAUTH._session) {\n __NEXTAUTH._getSession({\n event: \"poll\"\n });\n }\n }, refetchInterval * 1000);\n return function () {\n return clearInterval(refetchIntervalTimer);\n };\n }\n }, [refetchInterval, shouldRefetch]);\n var value = React.useMemo(function () {\n return {\n data: session,\n status: loading ? \"loading\" : session ? \"authenticated\" : \"unauthenticated\",\n update: function update(data) {\n return (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2() {\n var newSession;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n if (!(loading || !session)) {\n _context2.next = 2;\n break;\n }\n return _context2.abrupt(\"return\");\n case 2:\n setLoading(true);\n _context2.t0 = _utils.fetchData;\n _context2.t1 = __NEXTAUTH;\n _context2.t2 = logger;\n _context2.next = 8;\n return getCsrfToken();\n case 8:\n _context2.t3 = _context2.sent;\n _context2.t4 = data;\n _context2.t5 = {\n csrfToken: _context2.t3,\n data: _context2.t4\n };\n _context2.t6 = {\n body: _context2.t5\n };\n _context2.t7 = {\n req: _context2.t6\n };\n _context2.next = 15;\n return (0, _context2.t0)(\"session\", _context2.t1, _context2.t2, _context2.t7);\n case 15:\n newSession = _context2.sent;\n setLoading(false);\n if (newSession) {\n setSession(newSession);\n broadcast.post({\n event: \"session\",\n data: {\n trigger: \"getSession\"\n }\n });\n }\n return _context2.abrupt(\"return\", newSession);\n case 19:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }))();\n }\n };\n }, [session, loading]);\n return (0, _jsxRuntime.jsx)(SessionContext.Provider, {\n value: value,\n children: children\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvcmVhY3QvaW5kZXguanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUViLDZCQUE2QixtQkFBTyxDQUFDLHdJQUE4QztBQUNuRixjQUFjLG1CQUFPLENBQUMsMEdBQStCO0FBQ3JELDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCLHVCQUF1QjtBQUN2QixvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCLGtCQUFrQjtBQUNsQixjQUFjO0FBQ2QsZUFBZTtBQUNmLGtCQUFrQjtBQUNsQiwwQ0FBMEMsbUJBQU8sQ0FBQywwR0FBNEI7QUFDOUUsOENBQThDLG1CQUFPLENBQUMsMEhBQXVDO0FBQzdGLGdEQUFnRCxtQkFBTyxDQUFDLDhIQUF5QztBQUNqRyw2Q0FBNkMsbUJBQU8sQ0FBQyx3SEFBc0M7QUFDM0Ysb0NBQW9DLG1CQUFPLENBQUMsbUZBQU87QUFDbkQsdUNBQXVDLG1CQUFPLENBQUMscUZBQWlCO0FBQ2hFLHVDQUF1QyxtQkFBTyxDQUFDLDJGQUFvQjtBQUNuRSxhQUFhLG1CQUFPLENBQUMsdUZBQWtCO0FBQ3ZDLGtCQUFrQixtQkFBTyxDQUFDLHFHQUFtQjtBQUM3QyxhQUFhLG1CQUFPLENBQUMsNEVBQVM7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILENBQUM7QUFDRDtBQUNBLHVDQUF1QywrQ0FBK0MsMENBQTBDLDBFQUEwRSxtQkFBbUI7QUFDN04seUNBQXlDLHVDQUF1Qyw2RUFBNkUsY0FBYyxxQ0FBcUMsb0NBQW9DLFVBQVUsaUJBQWlCLGdFQUFnRSwwQ0FBMEMsOEJBQThCLDBEQUEwRCx3RUFBd0U7QUFDemhCLHlCQUF5Qix3QkFBd0Isb0NBQW9DLHlDQUF5QyxrQ0FBa0MsMERBQTBELDBCQUEwQjtBQUNwUCw0QkFBNEIsZ0JBQWdCLHNCQUFzQixPQUFPLGtEQUFrRCxzREFBc0QsNENBQTRDLG1KQUFtSixxRUFBcUUsS0FBSztBQUMxYjtBQUNBLDJEQUEyRCxPQUFPLDBGQUEwRixPQUFPO0FBQ25LLG1DQUFtQyxPQUFPO0FBQzFDLDBFQUEwRSxPQUFPLHFHQUFxRyxPQUFPLHdEQUF3RCxPQUFPO0FBQzVQLG1FQUFtRSxPQUFPLHFHQUFxRyxPQUFPO0FBQ3RMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EscUJBQXFCLHNCQUFzQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGFBQW9CO0FBQ3BDO0FBQ0E7QUFDQSxtRUFBbUU7QUFDbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxpREFBaUQ7QUFDakQ7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVFQUF1RTtBQUN2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVFQUF1RTtBQUN2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhFQUE4RTtBQUM5RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWCxTQUFTO0FBQ1Q7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL25leHQtYXV0aC9yZWFjdC9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG52YXIgX3R5cGVvZiA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZlwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG52YXIgX2V4cG9ydE5hbWVzID0ge1xuICBTZXNzaW9uQ29udGV4dDogdHJ1ZSxcbiAgdXNlU2Vzc2lvbjogdHJ1ZSxcbiAgZ2V0U2Vzc2lvbjogdHJ1ZSxcbiAgZ2V0Q3NyZlRva2VuOiB0cnVlLFxuICBnZXRQcm92aWRlcnM6IHRydWUsXG4gIHNpZ25JbjogdHJ1ZSxcbiAgc2lnbk91dDogdHJ1ZSxcbiAgU2Vzc2lvblByb3ZpZGVyOiB0cnVlXG59O1xuZXhwb3J0cy5TZXNzaW9uQ29udGV4dCA9IHZvaWQgMDtcbmV4cG9ydHMuU2Vzc2lvblByb3ZpZGVyID0gU2Vzc2lvblByb3ZpZGVyO1xuZXhwb3J0cy5nZXRDc3JmVG9rZW4gPSBnZXRDc3JmVG9rZW47XG5leHBvcnRzLmdldFByb3ZpZGVycyA9IGdldFByb3ZpZGVycztcbmV4cG9ydHMuZ2V0U2Vzc2lvbiA9IGdldFNlc3Npb247XG5leHBvcnRzLnNpZ25JbiA9IHNpZ25JbjtcbmV4cG9ydHMuc2lnbk91dCA9IHNpZ25PdXQ7XG5leHBvcnRzLnVzZVNlc3Npb24gPSB1c2VTZXNzaW9uO1xudmFyIF9yZWdlbmVyYXRvciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL3JlZ2VuZXJhdG9yXCIpKTtcbnZhciBfZGVmaW5lUHJvcGVydHkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eVwiKSk7XG52YXIgX2FzeW5jVG9HZW5lcmF0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3luY1RvR2VuZXJhdG9yXCIpKTtcbnZhciBfc2xpY2VkVG9BcnJheTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3NsaWNlZFRvQXJyYXlcIikpO1xudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfbG9nZ2VyMiA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCIuLi91dGlscy9sb2dnZXJcIikpO1xudmFyIF9wYXJzZVVybCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL3V0aWxzL3BhcnNlLXVybFwiKSk7XG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4uL2NsaWVudC9fdXRpbHNcIik7XG52YXIgX2pzeFJ1bnRpbWUgPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7XG52YXIgX3R5cGVzID0gcmVxdWlyZShcIi4vdHlwZXNcIik7XG5PYmplY3Qua2V5cyhfdHlwZXMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICBpZiAoa2V5ID09PSBcImRlZmF1bHRcIiB8fCBrZXkgPT09IFwiX19lc01vZHVsZVwiKSByZXR1cm47XG4gIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoX2V4cG9ydE5hbWVzLCBrZXkpKSByZXR1cm47XG4gIGlmIChrZXkgaW4gZXhwb3J0cyAmJiBleHBvcnRzW2tleV0gPT09IF90eXBlc1trZXldKSByZXR1cm47XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgICAgcmV0dXJuIF90eXBlc1trZXldO1xuICAgIH1cbiAgfSk7XG59KTtcbnZhciBfcHJvY2VzcyRlbnYkTkVYVEFVVEgsIF9yZWYsIF9wcm9jZXNzJGVudiRORVhUQVVUSDIsIF9wcm9jZXNzJGVudiRORVhUQVVUSDMsIF9SZWFjdCRjcmVhdGVDb250ZXh0O1xuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKGUpIHsgaWYgKFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgV2Vha01hcCkgcmV0dXJuIG51bGw7IHZhciByID0gbmV3IFdlYWtNYXAoKSwgdCA9IG5ldyBXZWFrTWFwKCk7IHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKGUpIHsgcmV0dXJuIGUgPyB0IDogcjsgfSkoZSk7IH1cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKGUsIHIpIHsgaWYgKCFyICYmIGUgJiYgZS5fX2VzTW9kdWxlKSByZXR1cm4gZTsgaWYgKG51bGwgPT09IGUgfHwgXCJvYmplY3RcIiAhPSBfdHlwZW9mKGUpICYmIFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgZSkgcmV0dXJuIHsgZGVmYXVsdDogZSB9OyB2YXIgdCA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShyKTsgaWYgKHQgJiYgdC5oYXMoZSkpIHJldHVybiB0LmdldChlKTsgdmFyIG4gPSB7IF9fcHJvdG9fXzogbnVsbCB9LCBhID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIHUgaW4gZSkgaWYgKFwiZGVmYXVsdFwiICE9PSB1ICYmIHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSwgdSkpIHsgdmFyIGkgPSBhID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLCB1KSA6IG51bGw7IGkgJiYgKGkuZ2V0IHx8IGkuc2V0KSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCB1LCBpKSA6IG5bdV0gPSBlW3VdOyB9IHJldHVybiBuLmRlZmF1bHQgPSBlLCB0ICYmIHQuc2V0KGUsIG4pLCBuOyB9XG5mdW5jdGlvbiBvd25LZXlzKGUsIHIpIHsgdmFyIHQgPSBPYmplY3Qua2V5cyhlKTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIG8gPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpOyByICYmIChvID0gby5maWx0ZXIoZnVuY3Rpb24gKHIpIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSwgcikuZW51bWVyYWJsZTsgfSkpLCB0LnB1c2guYXBwbHkodCwgbyk7IH0gcmV0dXJuIHQ7IH1cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQoZSkgeyBmb3IgKHZhciByID0gMTsgciA8IGFyZ3VtZW50cy5sZW5ndGg7IHIrKykgeyB2YXIgdCA9IG51bGwgIT0gYXJndW1lbnRzW3JdID8gYXJndW1lbnRzW3JdIDoge307IHIgJSAyID8gb3duS2V5cyhPYmplY3QodCksICEwKS5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7ICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKGUsIHIsIHRbcl0pOyB9KSA6IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpIDogb3duS2V5cyhPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24gKHIpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHIsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCwgcikpOyB9KTsgfSByZXR1cm4gZTsgfVxudmFyIF9fTkVYVEFVVEggPSB7XG4gIGJhc2VVcmw6ICgwLCBfcGFyc2VVcmwuZGVmYXVsdCkoKF9wcm9jZXNzJGVudiRORVhUQVVUSCA9IHByb2Nlc3MuZW52Lk5FWFRBVVRIX1VSTCkgIT09IG51bGwgJiYgX3Byb2Nlc3MkZW52JE5FWFRBVVRIICE9PSB2b2lkIDAgPyBfcHJvY2VzcyRlbnYkTkVYVEFVVEggOiBwcm9jZXNzLmVudi5WRVJDRUxfVVJMKS5vcmlnaW4sXG4gIGJhc2VQYXRoOiAoMCwgX3BhcnNlVXJsLmRlZmF1bHQpKHByb2Nlc3MuZW52Lk5FWFRBVVRIX1VSTCkucGF0aCxcbiAgYmFzZVVybFNlcnZlcjogKDAsIF9wYXJzZVVybC5kZWZhdWx0KSgoX3JlZiA9IChfcHJvY2VzcyRlbnYkTkVYVEFVVEgyID0gcHJvY2Vzcy5lbnYuTkVYVEFVVEhfVVJMX0lOVEVSTkFMKSAhPT0gbnVsbCAmJiBfcHJvY2VzcyRlbnYkTkVYVEFVVEgyICE9PSB2b2lkIDAgPyBfcHJvY2VzcyRlbnYkTkVYVEFVVEgyIDogcHJvY2Vzcy5lbnYuTkVYVEFVVEhfVVJMKSAhPT0gbnVsbCAmJiBfcmVmICE9PSB2b2lkIDAgPyBfcmVmIDogcHJvY2Vzcy5lbnYuVkVSQ0VMX1VSTCkub3JpZ2luLFxuICBiYXNlUGF0aFNlcnZlcjogKDAsIF9wYXJzZVVybC5kZWZhdWx0KSgoX3Byb2Nlc3MkZW52JE5FWFRBVVRIMyA9IHByb2Nlc3MuZW52Lk5FWFRBVVRIX1VSTF9JTlRFUk5BTCkgIT09IG51bGwgJiYgX3Byb2Nlc3MkZW52JE5FWFRBVVRIMyAhPT0gdm9pZCAwID8gX3Byb2Nlc3MkZW52JE5FWFRBVVRIMyA6IHByb2Nlc3MuZW52Lk5FWFRBVVRIX1VSTCkucGF0aCxcbiAgX2xhc3RTeW5jOiAwLFxuICBfc2Vzc2lvbjogdW5kZWZpbmVkLFxuICBfZ2V0U2Vzc2lvbjogZnVuY3Rpb24gX2dldFNlc3Npb24oKSB7fVxufTtcbnZhciBicm9hZGNhc3QgPSAoMCwgX3V0aWxzLkJyb2FkY2FzdENoYW5uZWwpKCk7XG52YXIgbG9nZ2VyID0gKDAsIF9sb2dnZXIyLnByb3h5TG9nZ2VyKShfbG9nZ2VyMi5kZWZhdWx0LCBfX05FWFRBVVRILmJhc2VQYXRoKTtcbmZ1bmN0aW9uIHVzZU9ubGluZSgpIHtcbiAgdmFyIF9SZWFjdCR1c2VTdGF0ZSA9IFJlYWN0LnVzZVN0YXRlKHR5cGVvZiBuYXZpZ2F0b3IgIT09IFwidW5kZWZpbmVkXCIgPyBuYXZpZ2F0b3Iub25MaW5lIDogZmFsc2UpLFxuICAgIF9SZWFjdCR1c2VTdGF0ZTIgPSAoMCwgX3NsaWNlZFRvQXJyYXkyLmRlZmF1bHQpKF9SZWFjdCR1c2VTdGF0ZSwgMiksXG4gICAgaXNPbmxpbmUgPSBfUmVhY3QkdXNlU3RhdGUyWzBdLFxuICAgIHNldElzT25saW5lID0gX1JlYWN0JHVzZVN0YXRlMlsxXTtcbiAgdmFyIHNldE9ubGluZSA9IGZ1bmN0aW9uIHNldE9ubGluZSgpIHtcbiAgICByZXR1cm4gc2V0SXNPbmxpbmUodHJ1ZSk7XG4gIH07XG4gIHZhciBzZXRPZmZsaW5lID0gZnVuY3Rpb24gc2V0T2ZmbGluZSgpIHtcbiAgICByZXR1cm4gc2V0SXNPbmxpbmUoZmFsc2UpO1xuICB9O1xuICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwib25saW5lXCIsIHNldE9ubGluZSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJvZmZsaW5lXCIsIHNldE9mZmxpbmUpO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm9ubGluZVwiLCBzZXRPbmxpbmUpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJvZmZsaW5lXCIsIHNldE9mZmxpbmUpO1xuICAgIH07XG4gIH0sIFtdKTtcbiAgcmV0dXJuIGlzT25saW5lO1xufVxudmFyIFNlc3Npb25Db250ZXh0ID0gZXhwb3J0cy5TZXNzaW9uQ29udGV4dCA9IChfUmVhY3QkY3JlYXRlQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQpID09PSBudWxsIHx8IF9SZWFjdCRjcmVhdGVDb250ZXh0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfUmVhY3QkY3JlYXRlQ29udGV4dC5jYWxsKFJlYWN0LCB1bmRlZmluZWQpO1xuZnVuY3Rpb24gdXNlU2Vzc2lvbihvcHRpb25zKSB7XG4gIGlmICghU2Vzc2lvbkNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWFjdCBDb250ZXh0IGlzIHVuYXZhaWxhYmxlIGluIFNlcnZlciBDb21wb25lbnRzXCIpO1xuICB9XG4gIHZhciB2YWx1ZSA9IFJlYWN0LnVzZUNvbnRleHQoU2Vzc2lvbkNvbnRleHQpO1xuICBpZiAoIXZhbHVlICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIltuZXh0LWF1dGhdOiBgdXNlU2Vzc2lvbmAgbXVzdCBiZSB3cmFwcGVkIGluIGEgPFNlc3Npb25Qcm92aWRlciAvPlwiKTtcbiAgfVxuICB2YXIgX3JlZjIgPSBvcHRpb25zICE9PSBudWxsICYmIG9wdGlvbnMgIT09IHZvaWQgMCA/IG9wdGlvbnMgOiB7fSxcbiAgICByZXF1aXJlZCA9IF9yZWYyLnJlcXVpcmVkLFxuICAgIG9uVW5hdXRoZW50aWNhdGVkID0gX3JlZjIub25VbmF1dGhlbnRpY2F0ZWQ7XG4gIHZhciByZXF1aXJlZEFuZE5vdExvYWRpbmcgPSByZXF1aXJlZCAmJiB2YWx1ZS5zdGF0dXMgPT09IFwidW5hdXRoZW50aWNhdGVkXCI7XG4gIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHJlcXVpcmVkQW5kTm90TG9hZGluZykge1xuICAgICAgdmFyIHVybCA9IFwiL2FwaS9hdXRoL3NpZ25pbj9cIi5jb25jYXQobmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgIGVycm9yOiBcIlNlc3Npb25SZXF1aXJlZFwiLFxuICAgICAgICBjYWxsYmFja1VybDogd2luZG93LmxvY2F0aW9uLmhyZWZcbiAgICAgIH0pKTtcbiAgICAgIGlmIChvblVuYXV0aGVudGljYXRlZCkgb25VbmF1dGhlbnRpY2F0ZWQoKTtlbHNlIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgIH1cbiAgfSwgW3JlcXVpcmVkQW5kTm90TG9hZGluZywgb25VbmF1dGhlbnRpY2F0ZWRdKTtcbiAgaWYgKHJlcXVpcmVkQW5kTm90TG9hZGluZykge1xuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiB2YWx1ZS5kYXRhLFxuICAgICAgdXBkYXRlOiB2YWx1ZS51cGRhdGUsXG4gICAgICBzdGF0dXM6IFwibG9hZGluZ1wiXG4gICAgfTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5mdW5jdGlvbiBnZXRTZXNzaW9uKF94KSB7XG4gIHJldHVybiBfZ2V0U2Vzc2lvbjIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIF9nZXRTZXNzaW9uMigpIHtcbiAgX2dldFNlc3Npb24yID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMi5kZWZhdWx0KShfcmVnZW5lcmF0b3IuZGVmYXVsdC5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUzKHBhcmFtcykge1xuICAgIHZhciBfcGFyYW1zJGJyb2FkY2FzdDtcbiAgICB2YXIgc2Vzc2lvbjtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yLmRlZmF1bHQud3JhcChmdW5jdGlvbiBfY2FsbGVlMyQoX2NvbnRleHQzKSB7XG4gICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDMucHJldiA9IF9jb250ZXh0My5uZXh0KSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICBfY29udGV4dDMubmV4dCA9IDI7XG4gICAgICAgICAgcmV0dXJuICgwLCBfdXRpbHMuZmV0Y2hEYXRhKShcInNlc3Npb25cIiwgX19ORVhUQVVUSCwgbG9nZ2VyLCBwYXJhbXMpO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgc2Vzc2lvbiA9IF9jb250ZXh0My5zZW50O1xuICAgICAgICAgIGlmICgoX3BhcmFtcyRicm9hZGNhc3QgPSBwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMuYnJvYWRjYXN0KSAhPT0gbnVsbCAmJiBfcGFyYW1zJGJyb2FkY2FzdCAhPT0gdm9pZCAwID8gX3BhcmFtcyRicm9hZGNhc3QgOiB0cnVlKSB7XG4gICAgICAgICAgICBicm9hZGNhc3QucG9zdCh7XG4gICAgICAgICAgICAgIGV2ZW50OiBcInNlc3Npb25cIixcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIHRyaWdnZXI6IFwiZ2V0U2Vzc2lvblwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gX2NvbnRleHQzLmFicnVwdChcInJldHVyblwiLCBzZXNzaW9uKTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgcmV0dXJuIF9jb250ZXh0My5zdG9wKCk7XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTMpO1xuICB9KSk7XG4gIHJldHVybiBfZ2V0U2Vzc2lvbjIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIGdldENzcmZUb2tlbihfeDIpIHtcbiAgcmV0dXJuIF9nZXRDc3JmVG9rZW4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIF9nZXRDc3JmVG9rZW4oKSB7XG4gIF9nZXRDc3JmVG9rZW4gPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyLmRlZmF1bHQpKF9yZWdlbmVyYXRvci5kZWZhdWx0Lm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQocGFyYW1zKSB7XG4gICAgdmFyIHJlc3BvbnNlO1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3IuZGVmYXVsdC53cmFwKGZ1bmN0aW9uIF9jYWxsZWU0JChfY29udGV4dDQpIHtcbiAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NC5wcmV2ID0gX2NvbnRleHQ0Lm5leHQpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gMjtcbiAgICAgICAgICByZXR1cm4gKDAsIF91dGlscy5mZXRjaERhdGEpKFwiY3NyZlwiLCBfX05FWFRBVVRILCBsb2dnZXIsIHBhcmFtcyk7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICByZXNwb25zZSA9IF9jb250ZXh0NC5zZW50O1xuICAgICAgICAgIHJldHVybiBfY29udGV4dDQuYWJydXB0KFwicmV0dXJuXCIsIHJlc3BvbnNlID09PSBudWxsIHx8IHJlc3BvbnNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNwb25zZS5jc3JmVG9rZW4pO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0LnN0b3AoKTtcbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlNCk7XG4gIH0pKTtcbiAgcmV0dXJuIF9nZXRDc3JmVG9rZW4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIGdldFByb3ZpZGVycygpIHtcbiAgcmV0dXJuIF9nZXRQcm92aWRlcnMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIF9nZXRQcm92aWRlcnMoKSB7XG4gIF9nZXRQcm92aWRlcnMgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyLmRlZmF1bHQpKF9yZWdlbmVyYXRvci5kZWZhdWx0Lm1hcmsoZnVuY3Rpb24gX2NhbGxlZTUoKSB7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvci5kZWZhdWx0LndyYXAoZnVuY3Rpb24gX2NhbGxlZTUkKF9jb250ZXh0NSkge1xuICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ1LnByZXYgPSBfY29udGV4dDUubmV4dCkge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgX2NvbnRleHQ1Lm5leHQgPSAyO1xuICAgICAgICAgIHJldHVybiAoMCwgX3V0aWxzLmZldGNoRGF0YSkoXCJwcm92aWRlcnNcIiwgX19ORVhUQVVUSCwgbG9nZ2VyKTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHJldHVybiBfY29udGV4dDUuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0NS5zZW50KTtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgcmV0dXJuIF9jb250ZXh0NS5zdG9wKCk7XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTUpO1xuICB9KSk7XG4gIHJldHVybiBfZ2V0UHJvdmlkZXJzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5mdW5jdGlvbiBzaWduSW4oX3gzLCBfeDQsIF94NSkge1xuICByZXR1cm4gX3NpZ25Jbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuZnVuY3Rpb24gX3NpZ25JbigpIHtcbiAgX3NpZ25JbiA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjIuZGVmYXVsdCkoX3JlZ2VuZXJhdG9yLmRlZmF1bHQubWFyayhmdW5jdGlvbiBfY2FsbGVlNihwcm92aWRlciwgb3B0aW9ucywgYXV0aG9yaXphdGlvblBhcmFtcykge1xuICAgIHZhciBfcmVmNSwgX3JlZjUkY2FsbGJhY2tVcmwsIGNhbGxiYWNrVXJsLCBfcmVmNSRyZWRpcmVjdCwgcmVkaXJlY3QsIGJhc2VVcmwsIHByb3ZpZGVycywgaXNDcmVkZW50aWFscywgaXNFbWFpbCwgaXNTdXBwb3J0aW5nUmV0dXJuLCBzaWduSW5VcmwsIF9zaWduSW5VcmwsIHJlcywgZGF0YSwgX2RhdGEkdXJsLCB1cmwsIGVycm9yO1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3IuZGVmYXVsdC53cmFwKGZ1bmN0aW9uIF9jYWxsZWU2JChfY29udGV4dDYpIHtcbiAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Ni5wcmV2ID0gX2NvbnRleHQ2Lm5leHQpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgIF9yZWY1ID0gb3B0aW9ucyAhPT0gbnVsbCAmJiBvcHRpb25zICE9PSB2b2lkIDAgPyBvcHRpb25zIDoge30sIF9yZWY1JGNhbGxiYWNrVXJsID0gX3JlZjUuY2FsbGJhY2tVcmwsIGNhbGxiYWNrVXJsID0gX3JlZjUkY2FsbGJhY2tVcmwgPT09IHZvaWQgMCA/IHdpbmRvdy5sb2NhdGlvbi5ocmVmIDogX3JlZjUkY2FsbGJhY2tVcmwsIF9yZWY1JHJlZGlyZWN0ID0gX3JlZjUucmVkaXJlY3QsIHJlZGlyZWN0ID0gX3JlZjUkcmVkaXJlY3QgPT09IHZvaWQgMCA/IHRydWUgOiBfcmVmNSRyZWRpcmVjdDtcbiAgICAgICAgICBiYXNlVXJsID0gKDAsIF91dGlscy5hcGlCYXNlVXJsKShfX05FWFRBVVRIKTtcbiAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDQ7XG4gICAgICAgICAgcmV0dXJuIGdldFByb3ZpZGVycygpO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgcHJvdmlkZXJzID0gX2NvbnRleHQ2LnNlbnQ7XG4gICAgICAgICAgaWYgKHByb3ZpZGVycykge1xuICAgICAgICAgICAgX2NvbnRleHQ2Lm5leHQgPSA4O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gXCJcIi5jb25jYXQoYmFzZVVybCwgXCIvZXJyb3JcIik7XG4gICAgICAgICAgcmV0dXJuIF9jb250ZXh0Ni5hYnJ1cHQoXCJyZXR1cm5cIik7XG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICBpZiAoISghcHJvdmlkZXIgfHwgIShwcm92aWRlciBpbiBwcm92aWRlcnMpKSkge1xuICAgICAgICAgICAgX2NvbnRleHQ2Lm5leHQgPSAxMTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IFwiXCIuY29uY2F0KGJhc2VVcmwsIFwiL3NpZ25pbj9cIikuY29uY2F0KG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICAgICAgY2FsbGJhY2tVcmw6IGNhbGxiYWNrVXJsXG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIHJldHVybiBfY29udGV4dDYuYWJydXB0KFwicmV0dXJuXCIpO1xuICAgICAgICBjYXNlIDExOlxuICAgICAgICAgIGlzQ3JlZGVudGlhbHMgPSBwcm92aWRlcnNbcHJvdmlkZXJdLnR5cGUgPT09IFwiY3JlZGVudGlhbHNcIjtcbiAgICAgICAgICBpc0VtYWlsID0gcHJvdmlkZXJzW3Byb3ZpZGVyXS50eXBlID09PSBcImVtYWlsXCI7XG4gICAgICAgICAgaXNTdXBwb3J0aW5nUmV0dXJuID0gaXNDcmVkZW50aWFscyB8fCBpc0VtYWlsO1xuICAgICAgICAgIHNpZ25JblVybCA9IFwiXCIuY29uY2F0KGJhc2VVcmwsIFwiL1wiKS5jb25jYXQoaXNDcmVkZW50aWFscyA/IFwiY2FsbGJhY2tcIiA6IFwic2lnbmluXCIsIFwiL1wiKS5jb25jYXQocHJvdmlkZXIpO1xuICAgICAgICAgIF9zaWduSW5VcmwgPSBcIlwiLmNvbmNhdChzaWduSW5VcmwpLmNvbmNhdChhdXRob3JpemF0aW9uUGFyYW1zID8gXCI/XCIuY29uY2F0KG5ldyBVUkxTZWFyY2hQYXJhbXMoYXV0aG9yaXphdGlvblBhcmFtcykpIDogXCJcIik7XG4gICAgICAgICAgX2NvbnRleHQ2LnQwID0gZmV0Y2g7XG4gICAgICAgICAgX2NvbnRleHQ2LnQxID0gX3NpZ25JblVybDtcbiAgICAgICAgICBfY29udGV4dDYudDIgPSB7XG4gICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiXG4gICAgICAgICAgfTtcbiAgICAgICAgICBfY29udGV4dDYudDMgPSBVUkxTZWFyY2hQYXJhbXM7XG4gICAgICAgICAgX2NvbnRleHQ2LnQ0ID0gX29iamVjdFNwcmVhZDtcbiAgICAgICAgICBfY29udGV4dDYudDUgPSBfb2JqZWN0U3ByZWFkKHt9LCBvcHRpb25zKTtcbiAgICAgICAgICBfY29udGV4dDYudDYgPSB7fTtcbiAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDI1O1xuICAgICAgICAgIHJldHVybiBnZXRDc3JmVG9rZW4oKTtcbiAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICBfY29udGV4dDYudDcgPSBfY29udGV4dDYuc2VudDtcbiAgICAgICAgICBfY29udGV4dDYudDggPSBjYWxsYmFja1VybDtcbiAgICAgICAgICBfY29udGV4dDYudDkgPSB7XG4gICAgICAgICAgICBjc3JmVG9rZW46IF9jb250ZXh0Ni50NyxcbiAgICAgICAgICAgIGNhbGxiYWNrVXJsOiBfY29udGV4dDYudDgsXG4gICAgICAgICAgICBqc29uOiB0cnVlXG4gICAgICAgICAgfTtcbiAgICAgICAgICBfY29udGV4dDYudDEwID0gKDAsIF9jb250ZXh0Ni50NCkoX2NvbnRleHQ2LnQ1LCBfY29udGV4dDYudDYsIF9jb250ZXh0Ni50OSk7XG4gICAgICAgICAgX2NvbnRleHQ2LnQxMSA9IG5ldyBfY29udGV4dDYudDMoX2NvbnRleHQ2LnQxMCk7XG4gICAgICAgICAgX2NvbnRleHQ2LnQxMiA9IHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJwb3N0XCIsXG4gICAgICAgICAgICBoZWFkZXJzOiBfY29udGV4dDYudDIsXG4gICAgICAgICAgICBib2R5OiBfY29udGV4dDYudDExXG4gICAgICAgICAgfTtcbiAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDMzO1xuICAgICAgICAgIHJldHVybiAoMCwgX2NvbnRleHQ2LnQwKShfY29udGV4dDYudDEsIF9jb250ZXh0Ni50MTIpO1xuICAgICAgICBjYXNlIDMzOlxuICAgICAgICAgIHJlcyA9IF9jb250ZXh0Ni5zZW50O1xuICAgICAgICAgIF9jb250ZXh0Ni5uZXh0ID0gMzY7XG4gICAgICAgICAgcmV0dXJuIHJlcy5qc29uKCk7XG4gICAgICAgIGNhc2UgMzY6XG4gICAgICAgICAgZGF0YSA9IF9jb250ZXh0Ni5zZW50O1xuICAgICAgICAgIGlmICghKHJlZGlyZWN0IHx8ICFpc1N1cHBvcnRpbmdSZXR1cm4pKSB7XG4gICAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDQyO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHVybCA9IChfZGF0YSR1cmwgPSBkYXRhLnVybCkgIT09IG51bGwgJiYgX2RhdGEkdXJsICE9PSB2b2lkIDAgPyBfZGF0YSR1cmwgOiBjYWxsYmFja1VybDtcbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICAgICAgICBpZiAodXJsLmluY2x1ZGVzKFwiI1wiKSkgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgIHJldHVybiBfY29udGV4dDYuYWJydXB0KFwicmV0dXJuXCIpO1xuICAgICAgICBjYXNlIDQyOlxuICAgICAgICAgIGVycm9yID0gbmV3IFVSTChkYXRhLnVybCkuc2VhcmNoUGFyYW1zLmdldChcImVycm9yXCIpO1xuICAgICAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDQ2O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIF9jb250ZXh0Ni5uZXh0ID0gNDY7XG4gICAgICAgICAgcmV0dXJuIF9fTkVYVEFVVEguX2dldFNlc3Npb24oe1xuICAgICAgICAgICAgZXZlbnQ6IFwic3RvcmFnZVwiXG4gICAgICAgICAgfSk7XG4gICAgICAgIGNhc2UgNDY6XG4gICAgICAgICAgcmV0dXJuIF9jb250ZXh0Ni5hYnJ1cHQoXCJyZXR1cm5cIiwge1xuICAgICAgICAgICAgZXJyb3I6IGVycm9yLFxuICAgICAgICAgICAgc3RhdHVzOiByZXMuc3RhdHVzLFxuICAgICAgICAgICAgb2s6IHJlcy5vayxcbiAgICAgICAgICAgIHVybDogZXJyb3IgPyBudWxsIDogZGF0YS51cmxcbiAgICAgICAgICB9KTtcbiAgICAgICAgY2FzZSA0NzpcbiAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgIHJldHVybiBfY29udGV4dDYuc3RvcCgpO1xuICAgICAgfVxuICAgIH0sIF9jYWxsZWU2KTtcbiAgfSkpO1xuICByZXR1cm4gX3NpZ25Jbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuZnVuY3Rpb24gc2lnbk91dChfeDYpIHtcbiAgcmV0dXJuIF9zaWduT3V0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5mdW5jdGlvbiBfc2lnbk91dCgpIHtcbiAgX3NpZ25PdXQgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyLmRlZmF1bHQpKF9yZWdlbmVyYXRvci5kZWZhdWx0Lm1hcmsoZnVuY3Rpb24gX2NhbGxlZTcob3B0aW9ucykge1xuICAgIHZhciBfb3B0aW9ucyRyZWRpcmVjdDtcbiAgICB2YXIgX3JlZjYsIF9yZWY2JGNhbGxiYWNrVXJsLCBjYWxsYmFja1VybCwgYmFzZVVybCwgZmV0Y2hPcHRpb25zLCByZXMsIGRhdGEsIF9kYXRhJHVybDIsIHVybDtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yLmRlZmF1bHQud3JhcChmdW5jdGlvbiBfY2FsbGVlNyQoX2NvbnRleHQ3KSB7XG4gICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDcucHJldiA9IF9jb250ZXh0Ny5uZXh0KSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICBfcmVmNiA9IG9wdGlvbnMgIT09IG51bGwgJiYgb3B0aW9ucyAhPT0gdm9pZCAwID8gb3B0aW9ucyA6IHt9LCBfcmVmNiRjYWxsYmFja1VybCA9IF9yZWY2LmNhbGxiYWNrVXJsLCBjYWxsYmFja1VybCA9IF9yZWY2JGNhbGxiYWNrVXJsID09PSB2b2lkIDAgPyB3aW5kb3cubG9jYXRpb24uaHJlZiA6IF9yZWY2JGNhbGxiYWNrVXJsO1xuICAgICAgICAgIGJhc2VVcmwgPSAoMCwgX3V0aWxzLmFwaUJhc2VVcmwpKF9fTkVYVEFVVEgpO1xuICAgICAgICAgIF9jb250ZXh0Ny50MCA9IHtcbiAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCJcbiAgICAgICAgICB9O1xuICAgICAgICAgIF9jb250ZXh0Ny50MSA9IFVSTFNlYXJjaFBhcmFtcztcbiAgICAgICAgICBfY29udGV4dDcubmV4dCA9IDY7XG4gICAgICAgICAgcmV0dXJuIGdldENzcmZUb2tlbigpO1xuICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgX2NvbnRleHQ3LnQyID0gX2NvbnRleHQ3LnNlbnQ7XG4gICAgICAgICAgX2NvbnRleHQ3LnQzID0gY2FsbGJhY2tVcmw7XG4gICAgICAgICAgX2NvbnRleHQ3LnQ0ID0ge1xuICAgICAgICAgICAgY3NyZlRva2VuOiBfY29udGV4dDcudDIsXG4gICAgICAgICAgICBjYWxsYmFja1VybDogX2NvbnRleHQ3LnQzLFxuICAgICAgICAgICAganNvbjogdHJ1ZVxuICAgICAgICAgIH07XG4gICAgICAgICAgX2NvbnRleHQ3LnQ1ID0gbmV3IF9jb250ZXh0Ny50MShfY29udGV4dDcudDQpO1xuICAgICAgICAgIGZldGNoT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJwb3N0XCIsXG4gICAgICAgICAgICBoZWFkZXJzOiBfY29udGV4dDcudDAsXG4gICAgICAgICAgICBib2R5OiBfY29udGV4dDcudDVcbiAgICAgICAgICB9O1xuICAgICAgICAgIF9jb250ZXh0Ny5uZXh0ID0gMTM7XG4gICAgICAgICAgcmV0dXJuIGZldGNoKFwiXCIuY29uY2F0KGJhc2VVcmwsIFwiL3NpZ25vdXRcIiksIGZldGNoT3B0aW9ucyk7XG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgcmVzID0gX2NvbnRleHQ3LnNlbnQ7XG4gICAgICAgICAgX2NvbnRleHQ3Lm5leHQgPSAxNjtcbiAgICAgICAgICByZXR1cm4gcmVzLmpzb24oKTtcbiAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICBkYXRhID0gX2NvbnRleHQ3LnNlbnQ7XG4gICAgICAgICAgYnJvYWRjYXN0LnBvc3Qoe1xuICAgICAgICAgICAgZXZlbnQ6IFwic2Vzc2lvblwiLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICB0cmlnZ2VyOiBcInNpZ25vdXRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmICghKChfb3B0aW9ucyRyZWRpcmVjdCA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5yZWRpcmVjdCkgIT09IG51bGwgJiYgX29wdGlvbnMkcmVkaXJlY3QgIT09IHZvaWQgMCA/IF9vcHRpb25zJHJlZGlyZWN0IDogdHJ1ZSkpIHtcbiAgICAgICAgICAgIF9jb250ZXh0Ny5uZXh0ID0gMjM7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgdXJsID0gKF9kYXRhJHVybDIgPSBkYXRhLnVybCkgIT09IG51bGwgJiYgX2RhdGEkdXJsMiAhPT0gdm9pZCAwID8gX2RhdGEkdXJsMiA6IGNhbGxiYWNrVXJsO1xuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgICAgICAgIGlmICh1cmwuaW5jbHVkZXMoXCIjXCIpKSB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgcmV0dXJuIF9jb250ZXh0Ny5hYnJ1cHQoXCJyZXR1cm5cIik7XG4gICAgICAgIGNhc2UgMjM6XG4gICAgICAgICAgX2NvbnRleHQ3Lm5leHQgPSAyNTtcbiAgICAgICAgICByZXR1cm4gX19ORVhUQVVUSC5fZ2V0U2Vzc2lvbih7XG4gICAgICAgICAgICBldmVudDogXCJzdG9yYWdlXCJcbiAgICAgICAgICB9KTtcbiAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICByZXR1cm4gX2NvbnRleHQ3LmFicnVwdChcInJldHVyblwiLCBkYXRhKTtcbiAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgIHJldHVybiBfY29udGV4dDcuc3RvcCgpO1xuICAgICAgfVxuICAgIH0sIF9jYWxsZWU3KTtcbiAgfSkpO1xuICByZXR1cm4gX3NpZ25PdXQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIFNlc3Npb25Qcm92aWRlcihwcm9wcykge1xuICBpZiAoIVNlc3Npb25Db250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiUmVhY3QgQ29udGV4dCBpcyB1bmF2YWlsYWJsZSBpbiBTZXJ2ZXIgQ29tcG9uZW50c1wiKTtcbiAgfVxuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBiYXNlUGF0aCA9IHByb3BzLmJhc2VQYXRoLFxuICAgIHJlZmV0Y2hJbnRlcnZhbCA9IHByb3BzLnJlZmV0Y2hJbnRlcnZhbCxcbiAgICByZWZldGNoV2hlbk9mZmxpbmUgPSBwcm9wcy5yZWZldGNoV2hlbk9mZmxpbmU7XG4gIGlmIChiYXNlUGF0aCkgX19ORVhUQVVUSC5iYXNlUGF0aCA9IGJhc2VQYXRoO1xuICB2YXIgaGFzSW5pdGlhbFNlc3Npb24gPSBwcm9wcy5zZXNzaW9uICE9PSB1bmRlZmluZWQ7XG4gIF9fTkVYVEFVVEguX2xhc3RTeW5jID0gaGFzSW5pdGlhbFNlc3Npb24gPyAoMCwgX3V0aWxzLm5vdykoKSA6IDA7XG4gIHZhciBfUmVhY3QkdXNlU3RhdGUzID0gUmVhY3QudXNlU3RhdGUoZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKGhhc0luaXRpYWxTZXNzaW9uKSBfX05FWFRBVVRILl9zZXNzaW9uID0gcHJvcHMuc2Vzc2lvbjtcbiAgICAgIHJldHVybiBwcm9wcy5zZXNzaW9uO1xuICAgIH0pLFxuICAgIF9SZWFjdCR1c2VTdGF0ZTQgPSAoMCwgX3NsaWNlZFRvQXJyYXkyLmRlZmF1bHQpKF9SZWFjdCR1c2VTdGF0ZTMsIDIpLFxuICAgIHNlc3Npb24gPSBfUmVhY3QkdXNlU3RhdGU0WzBdLFxuICAgIHNldFNlc3Npb24gPSBfUmVhY3QkdXNlU3RhdGU0WzFdO1xuICB2YXIgX1JlYWN0JHVzZVN0YXRlNSA9IFJlYWN0LnVzZVN0YXRlKCFoYXNJbml0aWFsU2Vzc2lvbiksXG4gICAgX1JlYWN0JHVzZVN0YXRlNiA9ICgwLCBfc2xpY2VkVG9BcnJheTIuZGVmYXVsdCkoX1JlYWN0JHVzZVN0YXRlNSwgMiksXG4gICAgbG9hZGluZyA9IF9SZWFjdCR1c2VTdGF0ZTZbMF0sXG4gICAgc2V0TG9hZGluZyA9IF9SZWFjdCR1c2VTdGF0ZTZbMV07XG4gIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgX19ORVhUQVVUSC5fZ2V0U2Vzc2lvbiA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjIuZGVmYXVsdCkoX3JlZ2VuZXJhdG9yLmRlZmF1bHQubWFyayhmdW5jdGlvbiBfY2FsbGVlKCkge1xuICAgICAgdmFyIF9yZWY0LFxuICAgICAgICBldmVudCxcbiAgICAgICAgc3RvcmFnZUV2ZW50LFxuICAgICAgICBfYXJncyA9IGFyZ3VtZW50cztcbiAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IuZGVmYXVsdC53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7XG4gICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgX3JlZjQgPSBfYXJncy5sZW5ndGggPiAwICYmIF9hcmdzWzBdICE9PSB1bmRlZmluZWQgPyBfYXJnc1swXSA6IHt9LCBldmVudCA9IF9yZWY0LmV2ZW50O1xuICAgICAgICAgICAgX2NvbnRleHQucHJldiA9IDE7XG4gICAgICAgICAgICBzdG9yYWdlRXZlbnQgPSBldmVudCA9PT0gXCJzdG9yYWdlXCI7XG4gICAgICAgICAgICBpZiAoIShzdG9yYWdlRXZlbnQgfHwgX19ORVhUQVVUSC5fc2Vzc2lvbiA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMTA7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX19ORVhUQVVUSC5fbGFzdFN5bmMgPSAoMCwgX3V0aWxzLm5vdykoKTtcbiAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA3O1xuICAgICAgICAgICAgcmV0dXJuIGdldFNlc3Npb24oe1xuICAgICAgICAgICAgICBicm9hZGNhc3Q6ICFzdG9yYWdlRXZlbnRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgIF9fTkVYVEFVVEguX3Nlc3Npb24gPSBfY29udGV4dC5zZW50O1xuICAgICAgICAgICAgc2V0U2Vzc2lvbihfX05FWFRBVVRILl9zZXNzaW9uKTtcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5hYnJ1cHQoXCJyZXR1cm5cIik7XG4gICAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICAgIGlmICghKCFldmVudCB8fCBfX05FWFRBVVRILl9zZXNzaW9uID09PSBudWxsIHx8ICgwLCBfdXRpbHMubm93KSgpIDwgX19ORVhUQVVUSC5fbGFzdFN5bmMpKSB7XG4gICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAxMjtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuYWJydXB0KFwicmV0dXJuXCIpO1xuICAgICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgICBfX05FWFRBVVRILl9sYXN0U3luYyA9ICgwLCBfdXRpbHMubm93KSgpO1xuICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDE1O1xuICAgICAgICAgICAgcmV0dXJuIGdldFNlc3Npb24oKTtcbiAgICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgICAgX19ORVhUQVVUSC5fc2Vzc2lvbiA9IF9jb250ZXh0LnNlbnQ7XG4gICAgICAgICAgICBzZXRTZXNzaW9uKF9fTkVYVEFVVEguX3Nlc3Npb24pO1xuICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDIyO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICAgIF9jb250ZXh0LnByZXYgPSAxOTtcbiAgICAgICAgICAgIF9jb250ZXh0LnQwID0gX2NvbnRleHRbXCJjYXRjaFwiXSgxKTtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcIkNMSUVOVF9TRVNTSU9OX0VSUk9SXCIsIF9jb250ZXh0LnQwKTtcbiAgICAgICAgICBjYXNlIDIyOlxuICAgICAgICAgICAgX2NvbnRleHQucHJldiA9IDIyO1xuICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuZmluaXNoKDIyKTtcbiAgICAgICAgICBjYXNlIDI1OlxuICAgICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH0sIF9jYWxsZWUsIG51bGwsIFtbMSwgMTksIDIyLCAyNV1dKTtcbiAgICB9KSk7XG4gICAgX19ORVhUQVVUSC5fZ2V0U2Vzc2lvbigpO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICBfX05FWFRBVVRILl9sYXN0U3luYyA9IDA7XG4gICAgICBfX05FWFRBVVRILl9zZXNzaW9uID0gdW5kZWZpbmVkO1xuICAgICAgX19ORVhUQVVUSC5fZ2V0U2Vzc2lvbiA9IGZ1bmN0aW9uICgpIHt9O1xuICAgIH07XG4gIH0sIFtdKTtcbiAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgdW5zdWJzY3JpYmUgPSBicm9hZGNhc3QucmVjZWl2ZShmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX19ORVhUQVVUSC5fZ2V0U2Vzc2lvbih7XG4gICAgICAgIGV2ZW50OiBcInN0b3JhZ2VcIlxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB1bnN1YnNjcmliZSgpO1xuICAgIH07XG4gIH0sIFtdKTtcbiAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgX3Byb3BzJHJlZmV0Y2hPbldpbmRvID0gcHJvcHMucmVmZXRjaE9uV2luZG93Rm9jdXMsXG4gICAgICByZWZldGNoT25XaW5kb3dGb2N1cyA9IF9wcm9wcyRyZWZldGNoT25XaW5kbyA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9wcm9wcyRyZWZldGNoT25XaW5kbztcbiAgICB2YXIgdmlzaWJpbGl0eUhhbmRsZXIgPSBmdW5jdGlvbiB2aXNpYmlsaXR5SGFuZGxlcigpIHtcbiAgICAgIGlmIChyZWZldGNoT25XaW5kb3dGb2N1cyAmJiBkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09IFwidmlzaWJsZVwiKSBfX05FWFRBVVRILl9nZXRTZXNzaW9uKHtcbiAgICAgICAgZXZlbnQ6IFwidmlzaWJpbGl0eWNoYW5nZVwiXG4gICAgICB9KTtcbiAgICB9O1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsIHZpc2liaWxpdHlIYW5kbGVyLCBmYWxzZSk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwidmlzaWJpbGl0eWNoYW5nZVwiLCB2aXNpYmlsaXR5SGFuZGxlciwgZmFsc2UpO1xuICAgIH07XG4gIH0sIFtwcm9wcy5yZWZldGNoT25XaW5kb3dGb2N1c10pO1xuICB2YXIgaXNPbmxpbmUgPSB1c2VPbmxpbmUoKTtcbiAgdmFyIHNob3VsZFJlZmV0Y2ggPSByZWZldGNoV2hlbk9mZmxpbmUgIT09IGZhbHNlIHx8IGlzT25saW5lO1xuICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChyZWZldGNoSW50ZXJ2YWwgJiYgc2hvdWxkUmVmZXRjaCkge1xuICAgICAgdmFyIHJlZmV0Y2hJbnRlcnZhbFRpbWVyID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoX19ORVhUQVVUSC5fc2Vzc2lvbikge1xuICAgICAgICAgIF9fTkVYVEFVVEguX2dldFNlc3Npb24oe1xuICAgICAgICAgICAgZXZlbnQ6IFwicG9sbFwiXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sIHJlZmV0Y2hJbnRlcnZhbCAqIDEwMDApO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGNsZWFySW50ZXJ2YWwocmVmZXRjaEludGVydmFsVGltZXIpO1xuICAgICAgfTtcbiAgICB9XG4gIH0sIFtyZWZldGNoSW50ZXJ2YWwsIHNob3VsZFJlZmV0Y2hdKTtcbiAgdmFyIHZhbHVlID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGE6IHNlc3Npb24sXG4gICAgICBzdGF0dXM6IGxvYWRpbmcgPyBcImxvYWRpbmdcIiA6IHNlc3Npb24gPyBcImF1dGhlbnRpY2F0ZWRcIiA6IFwidW5hdXRoZW50aWNhdGVkXCIsXG4gICAgICB1cGRhdGU6IGZ1bmN0aW9uIHVwZGF0ZShkYXRhKSB7XG4gICAgICAgIHJldHVybiAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyLmRlZmF1bHQpKF9yZWdlbmVyYXRvci5kZWZhdWx0Lm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIoKSB7XG4gICAgICAgICAgdmFyIG5ld1Nlc3Npb247XG4gICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvci5kZWZhdWx0LndyYXAoZnVuY3Rpb24gX2NhbGxlZTIkKF9jb250ZXh0Mikge1xuICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQyLnByZXYgPSBfY29udGV4dDIubmV4dCkge1xuICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgaWYgKCEobG9hZGluZyB8fCAhc2Vzc2lvbikpIHtcbiAgICAgICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMjtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyLmFicnVwdChcInJldHVyblwiKTtcbiAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICAgICAgX2NvbnRleHQyLnQwID0gX3V0aWxzLmZldGNoRGF0YTtcbiAgICAgICAgICAgICAgICBfY29udGV4dDIudDEgPSBfX05FWFRBVVRIO1xuICAgICAgICAgICAgICAgIF9jb250ZXh0Mi50MiA9IGxvZ2dlcjtcbiAgICAgICAgICAgICAgICBfY29udGV4dDIubmV4dCA9IDg7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldENzcmZUb2tlbigpO1xuICAgICAgICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICAgICAgX2NvbnRleHQyLnQzID0gX2NvbnRleHQyLnNlbnQ7XG4gICAgICAgICAgICAgICAgX2NvbnRleHQyLnQ0ID0gZGF0YTtcbiAgICAgICAgICAgICAgICBfY29udGV4dDIudDUgPSB7XG4gICAgICAgICAgICAgICAgICBjc3JmVG9rZW46IF9jb250ZXh0Mi50MyxcbiAgICAgICAgICAgICAgICAgIGRhdGE6IF9jb250ZXh0Mi50NFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgX2NvbnRleHQyLnQ2ID0ge1xuICAgICAgICAgICAgICAgICAgYm9keTogX2NvbnRleHQyLnQ1XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBfY29udGV4dDIudDcgPSB7XG4gICAgICAgICAgICAgICAgICByZXE6IF9jb250ZXh0Mi50NlxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSAxNTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKDAsIF9jb250ZXh0Mi50MCkoXCJzZXNzaW9uXCIsIF9jb250ZXh0Mi50MSwgX2NvbnRleHQyLnQyLCBfY29udGV4dDIudDcpO1xuICAgICAgICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgICAgICAgIG5ld1Nlc3Npb24gPSBfY29udGV4dDIuc2VudDtcbiAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgICAgICBpZiAobmV3U2Vzc2lvbikge1xuICAgICAgICAgICAgICAgICAgc2V0U2Vzc2lvbihuZXdTZXNzaW9uKTtcbiAgICAgICAgICAgICAgICAgIGJyb2FkY2FzdC5wb3N0KHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQ6IFwic2Vzc2lvblwiLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcjogXCJnZXRTZXNzaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuYWJydXB0KFwicmV0dXJuXCIsIG5ld1Nlc3Npb24pO1xuICAgICAgICAgICAgICBjYXNlIDE5OlxuICAgICAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5zdG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgX2NhbGxlZTIpO1xuICAgICAgICB9KSkoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbc2Vzc2lvbiwgbG9hZGluZ10pO1xuICByZXR1cm4gKDAsIF9qc3hSdW50aW1lLmpzeCkoU2Vzc2lvbkNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgY2hpbGRyZW46IGNoaWxkcmVuXG4gIH0pO1xufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next-auth/react/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next-auth/react/types.js": /*!***********************************************!*\ !*** ./node_modules/next-auth/react/types.js ***! \***********************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvcmVhY3QvdHlwZXMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvcmVhY3QvdHlwZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next-auth/react/types.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next-auth/utils/logger.js": /*!************************************************!*\ !*** ./node_modules/next-auth/utils/logger.js ***! \************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nexports.proxyLogger = proxyLogger;\nexports.setLogger = setLogger;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"(app-pages-browser)/./node_modules/@babel/runtime/regenerator/index.js\"));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\nvar _errors = __webpack_require__(/*! ../core/errors */ \"(app-pages-browser)/./node_modules/next-auth/core/errors.js\");\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction formatError(o) {\n if (o instanceof Error && !(o instanceof _errors.UnknownError)) {\n return {\n message: o.message,\n stack: o.stack,\n name: o.name\n };\n }\n if (hasErrorProperty(o)) {\n var _o$message;\n o.error = formatError(o.error);\n o.message = (_o$message = o.message) !== null && _o$message !== void 0 ? _o$message : o.error.message;\n }\n return o;\n}\nfunction hasErrorProperty(x) {\n return !!(x !== null && x !== void 0 && x.error);\n}\nvar _logger = {\n error: function error(code, metadata) {\n metadata = formatError(metadata);\n console.error(\"[next-auth][error][\".concat(code, \"]\"), \"\\nhttps://next-auth.js.org/errors#\".concat(code.toLowerCase()), metadata.message, metadata);\n },\n warn: function warn(code) {\n console.warn(\"[next-auth][warn][\".concat(code, \"]\"), \"\\nhttps://next-auth.js.org/warnings#\".concat(code.toLowerCase()));\n },\n debug: function debug(code, metadata) {\n console.log(\"[next-auth][debug][\".concat(code, \"]\"), metadata);\n }\n};\nfunction setLogger() {\n var newLogger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var debug = arguments.length > 1 ? arguments[1] : undefined;\n if (!debug) _logger.debug = function () {};\n if (newLogger.error) _logger.error = newLogger.error;\n if (newLogger.warn) _logger.warn = newLogger.warn;\n if (newLogger.debug) _logger.debug = newLogger.debug;\n}\nvar _default = exports[\"default\"] = _logger;\nfunction proxyLogger() {\n var logger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _logger;\n var basePath = arguments.length > 1 ? arguments[1] : undefined;\n try {\n if (typeof window === \"undefined\") {\n return logger;\n }\n var clientLogger = {};\n var _loop = function _loop(level) {\n clientLogger[level] = function () {\n var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(code, metadata) {\n var url, body;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _logger[level](code, metadata);\n if (level === \"error\") {\n metadata = formatError(metadata);\n }\n ;\n metadata.client = true;\n url = \"\".concat(basePath, \"/_log\");\n body = new URLSearchParams(_objectSpread({\n level: level,\n code: code\n }, metadata));\n if (!navigator.sendBeacon) {\n _context.next = 8;\n break;\n }\n return _context.abrupt(\"return\", navigator.sendBeacon(url, body));\n case 8:\n _context.next = 10;\n return fetch(url, {\n method: \"POST\",\n body: body,\n keepalive: true\n });\n case 10:\n return _context.abrupt(\"return\", _context.sent);\n case 11:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function (_x, _x2) {\n return _ref.apply(this, arguments);\n };\n }();\n };\n for (var level in logger) {\n _loop(level);\n }\n return clientLogger;\n } catch (_unused) {\n return _logger;\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvdXRpbHMvbG9nZ2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDZCQUE2QixtQkFBTyxDQUFDLHdJQUE4QztBQUNuRiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBZTtBQUNmLG1CQUFtQjtBQUNuQixpQkFBaUI7QUFDakIsMENBQTBDLG1CQUFPLENBQUMsMEdBQTRCO0FBQzlFLDhDQUE4QyxtQkFBTyxDQUFDLDBIQUF1QztBQUM3RixnREFBZ0QsbUJBQU8sQ0FBQyw4SEFBeUM7QUFDakcsY0FBYyxtQkFBTyxDQUFDLG1GQUFnQjtBQUN0Qyx5QkFBeUIsd0JBQXdCLG9DQUFvQyx5Q0FBeUMsa0NBQWtDLDBEQUEwRCwwQkFBMEI7QUFDcFAsNEJBQTRCLGdCQUFnQixzQkFBc0IsT0FBTyxrREFBa0Qsc0RBQXNELDRDQUE0QyxtSkFBbUoscUVBQXFFLEtBQUs7QUFDMWI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLGtCQUFlO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL25leHQtYXV0aC91dGlscy9sb2dnZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbmV4cG9ydHMucHJveHlMb2dnZXIgPSBwcm94eUxvZ2dlcjtcbmV4cG9ydHMuc2V0TG9nZ2VyID0gc2V0TG9nZ2VyO1xudmFyIF9yZWdlbmVyYXRvciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL3JlZ2VuZXJhdG9yXCIpKTtcbnZhciBfZGVmaW5lUHJvcGVydHkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eVwiKSk7XG52YXIgX2FzeW5jVG9HZW5lcmF0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3luY1RvR2VuZXJhdG9yXCIpKTtcbnZhciBfZXJyb3JzID0gcmVxdWlyZShcIi4uL2NvcmUvZXJyb3JzXCIpO1xuZnVuY3Rpb24gb3duS2V5cyhlLCByKSB7IHZhciB0ID0gT2JqZWN0LmtleXMoZSk7IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7IHZhciBvID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTsgciAmJiAobyA9IG8uZmlsdGVyKGZ1bmN0aW9uIChyKSB7IHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsIHIpLmVudW1lcmFibGU7IH0pKSwgdC5wdXNoLmFwcGx5KHQsIG8pOyB9IHJldHVybiB0OyB9XG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKGUpIHsgZm9yICh2YXIgciA9IDE7IHIgPCBhcmd1bWVudHMubGVuZ3RoOyByKyspIHsgdmFyIHQgPSBudWxsICE9IGFyZ3VtZW50c1tyXSA/IGFyZ3VtZW50c1tyXSA6IHt9OyByICUgMiA/IG93bktleXMoT2JqZWN0KHQpLCAhMCkuZm9yRWFjaChmdW5jdGlvbiAocikgeyAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShlLCByLCB0W3JdKTsgfSkgOiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKSA6IG93bktleXMoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCByLCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsIHIpKTsgfSk7IH0gcmV0dXJuIGU7IH1cbmZ1bmN0aW9uIGZvcm1hdEVycm9yKG8pIHtcbiAgaWYgKG8gaW5zdGFuY2VvZiBFcnJvciAmJiAhKG8gaW5zdGFuY2VvZiBfZXJyb3JzLlVua25vd25FcnJvcikpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWVzc2FnZTogby5tZXNzYWdlLFxuICAgICAgc3RhY2s6IG8uc3RhY2ssXG4gICAgICBuYW1lOiBvLm5hbWVcbiAgICB9O1xuICB9XG4gIGlmIChoYXNFcnJvclByb3BlcnR5KG8pKSB7XG4gICAgdmFyIF9vJG1lc3NhZ2U7XG4gICAgby5lcnJvciA9IGZvcm1hdEVycm9yKG8uZXJyb3IpO1xuICAgIG8ubWVzc2FnZSA9IChfbyRtZXNzYWdlID0gby5tZXNzYWdlKSAhPT0gbnVsbCAmJiBfbyRtZXNzYWdlICE9PSB2b2lkIDAgPyBfbyRtZXNzYWdlIDogby5lcnJvci5tZXNzYWdlO1xuICB9XG4gIHJldHVybiBvO1xufVxuZnVuY3Rpb24gaGFzRXJyb3JQcm9wZXJ0eSh4KSB7XG4gIHJldHVybiAhISh4ICE9PSBudWxsICYmIHggIT09IHZvaWQgMCAmJiB4LmVycm9yKTtcbn1cbnZhciBfbG9nZ2VyID0ge1xuICBlcnJvcjogZnVuY3Rpb24gZXJyb3IoY29kZSwgbWV0YWRhdGEpIHtcbiAgICBtZXRhZGF0YSA9IGZvcm1hdEVycm9yKG1ldGFkYXRhKTtcbiAgICBjb25zb2xlLmVycm9yKFwiW25leHQtYXV0aF1bZXJyb3JdW1wiLmNvbmNhdChjb2RlLCBcIl1cIiksIFwiXFxuaHR0cHM6Ly9uZXh0LWF1dGguanMub3JnL2Vycm9ycyNcIi5jb25jYXQoY29kZS50b0xvd2VyQ2FzZSgpKSwgbWV0YWRhdGEubWVzc2FnZSwgbWV0YWRhdGEpO1xuICB9LFxuICB3YXJuOiBmdW5jdGlvbiB3YXJuKGNvZGUpIHtcbiAgICBjb25zb2xlLndhcm4oXCJbbmV4dC1hdXRoXVt3YXJuXVtcIi5jb25jYXQoY29kZSwgXCJdXCIpLCBcIlxcbmh0dHBzOi8vbmV4dC1hdXRoLmpzLm9yZy93YXJuaW5ncyNcIi5jb25jYXQoY29kZS50b0xvd2VyQ2FzZSgpKSk7XG4gIH0sXG4gIGRlYnVnOiBmdW5jdGlvbiBkZWJ1Zyhjb2RlLCBtZXRhZGF0YSkge1xuICAgIGNvbnNvbGUubG9nKFwiW25leHQtYXV0aF1bZGVidWddW1wiLmNvbmNhdChjb2RlLCBcIl1cIiksIG1ldGFkYXRhKTtcbiAgfVxufTtcbmZ1bmN0aW9uIHNldExvZ2dlcigpIHtcbiAgdmFyIG5ld0xvZ2dlciA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gIHZhciBkZWJ1ZyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuICBpZiAoIWRlYnVnKSBfbG9nZ2VyLmRlYnVnID0gZnVuY3Rpb24gKCkge307XG4gIGlmIChuZXdMb2dnZXIuZXJyb3IpIF9sb2dnZXIuZXJyb3IgPSBuZXdMb2dnZXIuZXJyb3I7XG4gIGlmIChuZXdMb2dnZXIud2FybikgX2xvZ2dlci53YXJuID0gbmV3TG9nZ2VyLndhcm47XG4gIGlmIChuZXdMb2dnZXIuZGVidWcpIF9sb2dnZXIuZGVidWcgPSBuZXdMb2dnZXIuZGVidWc7XG59XG52YXIgX2RlZmF1bHQgPSBleHBvcnRzLmRlZmF1bHQgPSBfbG9nZ2VyO1xuZnVuY3Rpb24gcHJveHlMb2dnZXIoKSB7XG4gIHZhciBsb2dnZXIgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IF9sb2dnZXI7XG4gIHZhciBiYXNlUGF0aCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuICB0cnkge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICByZXR1cm4gbG9nZ2VyO1xuICAgIH1cbiAgICB2YXIgY2xpZW50TG9nZ2VyID0ge307XG4gICAgdmFyIF9sb29wID0gZnVuY3Rpb24gX2xvb3AobGV2ZWwpIHtcbiAgICAgIGNsaWVudExvZ2dlcltsZXZlbF0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfcmVmID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMi5kZWZhdWx0KShfcmVnZW5lcmF0b3IuZGVmYXVsdC5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoY29kZSwgbWV0YWRhdGEpIHtcbiAgICAgICAgICB2YXIgdXJsLCBib2R5O1xuICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IuZGVmYXVsdC53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7XG4gICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dC5wcmV2ID0gX2NvbnRleHQubmV4dCkge1xuICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgX2xvZ2dlcltsZXZlbF0oY29kZSwgbWV0YWRhdGEpO1xuICAgICAgICAgICAgICAgIGlmIChsZXZlbCA9PT0gXCJlcnJvclwiKSB7XG4gICAgICAgICAgICAgICAgICBtZXRhZGF0YSA9IGZvcm1hdEVycm9yKG1ldGFkYXRhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgICAgIG1ldGFkYXRhLmNsaWVudCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdXJsID0gXCJcIi5jb25jYXQoYmFzZVBhdGgsIFwiL19sb2dcIik7XG4gICAgICAgICAgICAgICAgYm9keSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgICAgICBsZXZlbDogbGV2ZWwsXG4gICAgICAgICAgICAgICAgICBjb2RlOiBjb2RlXG4gICAgICAgICAgICAgICAgfSwgbWV0YWRhdGEpKTtcbiAgICAgICAgICAgICAgICBpZiAoIW5hdmlnYXRvci5zZW5kQmVhY29uKSB7XG4gICAgICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gODtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuYWJydXB0KFwicmV0dXJuXCIsIG5hdmlnYXRvci5zZW5kQmVhY29uKHVybCwgYm9keSkpO1xuICAgICAgICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDEwO1xuICAgICAgICAgICAgICAgIHJldHVybiBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgICBib2R5OiBib2R5LFxuICAgICAgICAgICAgICAgICAga2VlcGFsaXZlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LmFicnVwdChcInJldHVyblwiLCBfY29udGV4dC5zZW50KTtcbiAgICAgICAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5zdG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgX2NhbGxlZSk7XG4gICAgICAgIH0pKTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeCwgX3gyKSB7XG4gICAgICAgICAgcmV0dXJuIF9yZWYuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgfTtcbiAgICAgIH0oKTtcbiAgICB9O1xuICAgIGZvciAodmFyIGxldmVsIGluIGxvZ2dlcikge1xuICAgICAgX2xvb3AobGV2ZWwpO1xuICAgIH1cbiAgICByZXR1cm4gY2xpZW50TG9nZ2VyO1xuICB9IGNhdGNoIChfdW51c2VkKSB7XG4gICAgcmV0dXJuIF9sb2dnZXI7XG4gIH1cbn0iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next-auth/utils/logger.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next-auth/utils/parse-url.js": /*!***************************************************!*\ !*** ./node_modules/next-auth/utils/parse-url.js ***! \***************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = parseUrl;\nfunction parseUrl(url) {\n var _url2;\n const defaultUrl = new URL(\"http://localhost:3000/api/auth\");\n if (url && !url.startsWith(\"http\")) {\n url = `https://${url}`;\n }\n const _url = new URL((_url2 = url) !== null && _url2 !== void 0 ? _url2 : defaultUrl);\n const path = (_url.pathname === \"/\" ? defaultUrl.pathname : _url.pathname).replace(/\\/$/, \"\");\n const base = `${_url.origin}${path}`;\n return {\n origin: _url.origin,\n host: _url.host,\n path,\n base,\n toString: () => base\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvdXRpbHMvcGFyc2UtdXJsLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsSUFBSTtBQUN6QjtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsWUFBWSxFQUFFLEtBQUs7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL3V0aWxzL3BhcnNlLXVybC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHBhcnNlVXJsO1xuZnVuY3Rpb24gcGFyc2VVcmwodXJsKSB7XG4gIHZhciBfdXJsMjtcbiAgY29uc3QgZGVmYXVsdFVybCA9IG5ldyBVUkwoXCJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL2F1dGhcIik7XG4gIGlmICh1cmwgJiYgIXVybC5zdGFydHNXaXRoKFwiaHR0cFwiKSkge1xuICAgIHVybCA9IGBodHRwczovLyR7dXJsfWA7XG4gIH1cbiAgY29uc3QgX3VybCA9IG5ldyBVUkwoKF91cmwyID0gdXJsKSAhPT0gbnVsbCAmJiBfdXJsMiAhPT0gdm9pZCAwID8gX3VybDIgOiBkZWZhdWx0VXJsKTtcbiAgY29uc3QgcGF0aCA9IChfdXJsLnBhdGhuYW1lID09PSBcIi9cIiA/IGRlZmF1bHRVcmwucGF0aG5hbWUgOiBfdXJsLnBhdGhuYW1lKS5yZXBsYWNlKC9cXC8kLywgXCJcIik7XG4gIGNvbnN0IGJhc2UgPSBgJHtfdXJsLm9yaWdpbn0ke3BhdGh9YDtcbiAgcmV0dXJuIHtcbiAgICBvcmlnaW46IF91cmwub3JpZ2luLFxuICAgIGhvc3Q6IF91cmwuaG9zdCxcbiAgICBwYXRoLFxuICAgIGJhc2UsXG4gICAgdG9TdHJpbmc6ICgpID0+IGJhc2VcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next-auth/utils/parse-url.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/api/navigation.js": /*!**************************************************!*\ !*** ./node_modules/next/dist/api/navigation.js ***! \**************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../client/components/navigation */ \"(app-pages-browser)/./node_modules/next/dist/client/components/navigation.js\");\n/* harmony import */ var _client_components_navigation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_client_components_navigation__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceMappingURL=navigation.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYXBpL25hdmlnYXRpb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWdEOztBQUVoRCIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9uYXZpZ2F0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4uL2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb24nO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1uYXZpZ2F0aW9uLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/api/navigation.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2Falma%2Fnextgen%2FNeah-mail%2Fapp%2Fcourrier%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!": /*!*********************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2Falma%2Fnextgen%2FNeah-mail%2Fapp%2Fcourrier%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false! ***! \*********************************************************************************************************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { eval(__webpack_require__.ts("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/courrier/page.tsx */ \"(app-pages-browser)/./app/courrier/page.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWNsaWVudC1lbnRyeS1sb2FkZXIuanM/bW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRmFsbWElMkZuZXh0Z2VuJTJGTmVhaC1tYWlsJTJGYXBwJTJGY291cnJpZXIlMkZwYWdlLnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZzZXJ2ZXI9ZmFsc2UhIiwibWFwcGluZ3MiOiJBQUFBLHdLQUF1RiIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9hcHAvY291cnJpZXIvcGFnZS50c3hcIik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2Falma%2Fnextgen%2FNeah-mail%2Fapp%2Fcourrier%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-client-wrapper.js": /*!**************************************************************************************************!*\ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-client-wrapper.js ***! \**************************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("// This file must be bundled in the app's client layer, it shouldn't be directly\n// imported by the server.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n callServer: function() {\n return _appcallserver.callServer;\n },\n createServerReference: function() {\n return createServerReference;\n },\n findSourceMapURL: function() {\n return _appfindsourcemapurl.findSourceMapURL;\n }\n});\nconst _appcallserver = __webpack_require__(/*! next/dist/client/app-call-server */ \"(app-pages-browser)/./node_modules/next/dist/client/app-call-server.js\");\nconst _appfindsourcemapurl = __webpack_require__(/*! next/dist/client/app-find-source-map-url */ \"(app-pages-browser)/./node_modules/next/dist/client/app-find-source-map-url.js\");\nconst createServerReference = ( false ? 0 : __webpack_require__(/*! react-server-dom-webpack/client */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-server-dom-webpack/client.js\")).createServerReference;\n\n//# sourceMappingURL=action-client-wrapper.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWxvYWRlci9hY3Rpb24tY2xpZW50LXdyYXBwZXIuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUlMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsdUJBQXVCLG1CQUFPLENBQUMsZ0hBQWtDO0FBQ2pFLDZCQUE2QixtQkFBTyxDQUFDLGdJQUEwQztBQUMvRSwrQkFBK0IsTUFBMEIsR0FBRyxDQUErQyxHQUFHLG1CQUFPLENBQUMsaUlBQWlDOztBQUV2SiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1sb2FkZXIvYWN0aW9uLWNsaWVudC13cmFwcGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZmlsZSBtdXN0IGJlIGJ1bmRsZWQgaW4gdGhlIGFwcCdzIGNsaWVudCBsYXllciwgaXQgc2hvdWxkbid0IGJlIGRpcmVjdGx5XG4vLyBpbXBvcnRlZCBieSB0aGUgc2VydmVyLlxuXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjYWxsU2VydmVyOiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclJlZmVyZW5jZTogbnVsbCxcbiAgICBmaW5kU291cmNlTWFwVVJMOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGNhbGxTZXJ2ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2FwcGNhbGxzZXJ2ZXIuY2FsbFNlcnZlcjtcbiAgICB9LFxuICAgIGNyZWF0ZVNlcnZlclJlZmVyZW5jZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTZXJ2ZXJSZWZlcmVuY2U7XG4gICAgfSxcbiAgICBmaW5kU291cmNlTWFwVVJMOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9hcHBmaW5kc291cmNlbWFwdXJsLmZpbmRTb3VyY2VNYXBVUkw7XG4gICAgfVxufSk7XG5jb25zdCBfYXBwY2FsbHNlcnZlciA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY2xpZW50L2FwcC1jYWxsLXNlcnZlclwiKTtcbmNvbnN0IF9hcHBmaW5kc291cmNlbWFwdXJsID0gcmVxdWlyZShcIm5leHQvZGlzdC9jbGllbnQvYXBwLWZpbmQtc291cmNlLW1hcC11cmxcIik7XG5jb25zdCBjcmVhdGVTZXJ2ZXJSZWZlcmVuY2UgPSAoISFwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPyByZXF1aXJlKCdyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svY2xpZW50LmVkZ2UnKSA6IHJlcXVpcmUoJ3JlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQnKSkuY3JlYXRlU2VydmVyUmVmZXJlbmNlO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hY3Rpb24tY2xpZW50LXdyYXBwZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-client-wrapper.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/compiled/client-only/index.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/compiled/client-only/index.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { /***/ }), /***/ "(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 ***! \****************************************************************************************/ /***/ ((__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 true &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%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://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"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 validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = __webpack_require__(/*! next/dist/compiled/react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n \"react-stack-bottom-frame\": function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React[\"react-stack-bottom-frame\"].bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsxDEV = function (\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self\n ) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7QUFDYixLQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWCwrQ0FBK0MsNkJBQTZCO0FBQzVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsZ0JBQWdCLGdEQUFnRDtBQUNoRSxnQkFBZ0IsYUFBYTtBQUM3QjtBQUNBO0FBQ0EsZ0NBQWdDLGtDQUFrQyxPQUFPO0FBQ3pFO0FBQ0EsZ0dBQWdHLFNBQVMsVUFBVSxzRkFBc0YsYUFBYSxVQUFVLFVBQVU7QUFDMU87QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbUJBQU8sQ0FBQyxzR0FBMEI7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGdCQUFnQjtBQUNwQixJQUFJLGNBQWM7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC1qc3gtZGV2LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXCJwcm9kdWN0aW9uXCIgIT09IHByb2Nlc3MuZW52Lk5PREVfRU5WICYmXG4gIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpIHtcbiAgICAgIGlmIChudWxsID09IHR5cGUpIHJldHVybiBudWxsO1xuICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHR5cGUpXG4gICAgICAgIHJldHVybiB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFXG4gICAgICAgICAgPyBudWxsXG4gICAgICAgICAgOiB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBudWxsO1xuICAgICAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiB0eXBlKSByZXR1cm4gdHlwZTtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiRnJhZ21lbnRcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlByb2ZpbGVyXCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJTdHJpY3RNb2RlXCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJTdXNwZW5zZVwiO1xuICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJTdXNwZW5zZUxpc3RcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9BQ1RJVklUWV9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIkFjdGl2aXR5XCI7XG4gICAgICB9XG4gICAgICBpZiAoXCJvYmplY3RcIiA9PT0gdHlwZW9mIHR5cGUpXG4gICAgICAgIHN3aXRjaCAoXG4gICAgICAgICAgKFwibnVtYmVyXCIgPT09IHR5cGVvZiB0eXBlLnRhZyAmJlxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJSZWNlaXZlZCBhbiB1bmV4cGVjdGVkIG9iamVjdCBpbiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoKS4gVGhpcyBpcyBsaWtlbHkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICAgICAgICApLFxuICAgICAgICAgIHR5cGUuJCR0eXBlb2YpXG4gICAgICAgICkge1xuICAgICAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gXCJQb3J0YWxcIjtcbiAgICAgICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgICAgIHJldHVybiAodHlwZS5kaXNwbGF5TmFtZSB8fCBcIkNvbnRleHRcIikgKyBcIi5Qcm92aWRlclwiO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OU1VNRVJfVFlQRTpcbiAgICAgICAgICAgIHJldHVybiAodHlwZS5fY29udGV4dC5kaXNwbGF5TmFtZSB8fCBcIkNvbnRleHRcIikgKyBcIi5Db25zdW1lclwiO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgIHZhciBpbm5lclR5cGUgPSB0eXBlLnJlbmRlcjtcbiAgICAgICAgICAgIHR5cGUgPSB0eXBlLmRpc3BsYXlOYW1lO1xuICAgICAgICAgICAgdHlwZSB8fFxuICAgICAgICAgICAgICAoKHR5cGUgPSBpbm5lclR5cGUuZGlzcGxheU5hbWUgfHwgaW5uZXJUeXBlLm5hbWUgfHwgXCJcIiksXG4gICAgICAgICAgICAgICh0eXBlID0gXCJcIiAhPT0gdHlwZSA/IFwiRm9yd2FyZFJlZihcIiArIHR5cGUgKyBcIilcIiA6IFwiRm9yd2FyZFJlZlwiKSk7XG4gICAgICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChpbm5lclR5cGUgPSB0eXBlLmRpc3BsYXlOYW1lIHx8IG51bGwpLFxuICAgICAgICAgICAgICBudWxsICE9PSBpbm5lclR5cGVcbiAgICAgICAgICAgICAgICA/IGlubmVyVHlwZVxuICAgICAgICAgICAgICAgIDogZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUudHlwZSkgfHwgXCJNZW1vXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICBpbm5lclR5cGUgPSB0eXBlLl9wYXlsb2FkO1xuICAgICAgICAgICAgdHlwZSA9IHR5cGUuX2luaXQ7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUoaW5uZXJUeXBlKSk7XG4gICAgICAgICAgICB9IGNhdGNoICh4KSB7fVxuICAgICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gICAgICByZXR1cm4gXCJcIiArIHZhbHVlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjaGVja0tleVN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpO1xuICAgICAgICB2YXIgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gITE7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9ICEwO1xuICAgICAgfVxuICAgICAgaWYgKEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCkge1xuICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBjb25zb2xlO1xuICAgICAgICB2YXIgSlNDb21waWxlcl90ZW1wX2NvbnN0ID0gSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0LmVycm9yO1xuICAgICAgICB2YXIgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0JGpzY29tcCQwID1cbiAgICAgICAgICAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgU3ltYm9sICYmXG4gICAgICAgICAgICBTeW1ib2wudG9TdHJpbmdUYWcgJiZcbiAgICAgICAgICAgIHZhbHVlW1N5bWJvbC50b1N0cmluZ1RhZ10pIHx8XG4gICAgICAgICAgdmFsdWUuY29uc3RydWN0b3IubmFtZSB8fFxuICAgICAgICAgIFwiT2JqZWN0XCI7XG4gICAgICAgIEpTQ29tcGlsZXJfdGVtcF9jb25zdC5jYWxsKFxuICAgICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCxcbiAgICAgICAgICBcIlRoZSBwcm92aWRlZCBrZXkgaXMgYW4gdW5zdXBwb3J0ZWQgdHlwZSAlcy4gVGhpcyB2YWx1ZSBtdXN0IGJlIGNvZXJjZWQgdG8gYSBzdHJpbmcgYmVmb3JlIHVzaW5nIGl0IGhlcmUuXCIsXG4gICAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0JGpzY29tcCQwXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRUYXNrTmFtZSh0eXBlKSB7XG4gICAgICBpZiAodHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSkgcmV0dXJuIFwiPD5cIjtcbiAgICAgIGlmIChcbiAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHR5cGUgJiZcbiAgICAgICAgbnVsbCAhPT0gdHlwZSAmJlxuICAgICAgICB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEVcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIFwiPC4uLj5cIjtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuICAgICAgICByZXR1cm4gbmFtZSA/IFwiPFwiICsgbmFtZSArIFwiPlwiIDogXCI8Li4uPlwiO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICByZXR1cm4gXCI8Li4uPlwiO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRPd25lcigpIHtcbiAgICAgIHZhciBkaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuQTtcbiAgICAgIHJldHVybiBudWxsID09PSBkaXNwYXRjaGVyID8gbnVsbCA6IGRpc3BhdGNoZXIuZ2V0T3duZXIoKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gVW5rbm93bk93bmVyKCkge1xuICAgICAgcmV0dXJuIEVycm9yKFwicmVhY3Qtc3RhY2stdG9wLWZyYW1lXCIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoYXNWYWxpZEtleShjb25maWcpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgXCJrZXlcIikpIHtcbiAgICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCBcImtleVwiKS5nZXQ7XG4gICAgICAgIGlmIChnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nKSByZXR1cm4gITE7XG4gICAgICB9XG4gICAgICByZXR1cm4gdm9pZCAwICE9PSBjb25maWcua2V5O1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpIHtcbiAgICAgIGZ1bmN0aW9uIHdhcm5BYm91dEFjY2Vzc2luZ0tleSgpIHtcbiAgICAgICAgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24gfHxcbiAgICAgICAgICAoKHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duID0gITApLFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzOiBga2V5YCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0IGluIGB1bmRlZmluZWRgIGJlaW5nIHJldHVybmVkLiBJZiB5b3UgbmVlZCB0byBhY2Nlc3MgdGhlIHNhbWUgdmFsdWUgd2l0aGluIHRoZSBjaGlsZCBjb21wb25lbnQsIHlvdSBzaG91bGQgcGFzcyBpdCBhcyBhIGRpZmZlcmVudCBwcm9wLiAoaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9zcGVjaWFsLXByb3BzKVwiLFxuICAgICAgICAgICAgZGlzcGxheU5hbWVcbiAgICAgICAgICApKTtcbiAgICAgIH1cbiAgICAgIHdhcm5BYm91dEFjY2Vzc2luZ0tleS5pc1JlYWN0V2FybmluZyA9ICEwO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3BzLCBcImtleVwiLCB7XG4gICAgICAgIGdldDogd2FybkFib3V0QWNjZXNzaW5nS2V5LFxuICAgICAgICBjb25maWd1cmFibGU6ICEwXG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZWxlbWVudFJlZkdldHRlcldpdGhEZXByZWNhdGlvbldhcm5pbmcoKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0aGlzLnR5cGUpO1xuICAgICAgZGlkV2FybkFib3V0RWxlbWVudFJlZltjb21wb25lbnROYW1lXSB8fFxuICAgICAgICAoKGRpZFdhcm5BYm91dEVsZW1lbnRSZWZbY29tcG9uZW50TmFtZV0gPSAhMCksXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJBY2Nlc3NpbmcgZWxlbWVudC5yZWYgd2FzIHJlbW92ZWQgaW4gUmVhY3QgMTkuIHJlZiBpcyBub3cgYSByZWd1bGFyIHByb3AuIEl0IHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBKU1ggRWxlbWVudCB0eXBlIGluIGEgZnV0dXJlIHJlbGVhc2UuXCJcbiAgICAgICAgKSk7XG4gICAgICBjb21wb25lbnROYW1lID0gdGhpcy5wcm9wcy5yZWY7XG4gICAgICByZXR1cm4gdm9pZCAwICE9PSBjb21wb25lbnROYW1lID8gY29tcG9uZW50TmFtZSA6IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIFJlYWN0RWxlbWVudChcbiAgICAgIHR5cGUsXG4gICAgICBrZXksXG4gICAgICBzZWxmLFxuICAgICAgc291cmNlLFxuICAgICAgb3duZXIsXG4gICAgICBwcm9wcyxcbiAgICAgIGRlYnVnU3RhY2ssXG4gICAgICBkZWJ1Z1Rhc2tcbiAgICApIHtcbiAgICAgIHNlbGYgPSBwcm9wcy5yZWY7XG4gICAgICB0eXBlID0ge1xuICAgICAgICAkJHR5cGVvZjogUkVBQ1RfRUxFTUVOVF9UWVBFLFxuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgcHJvcHM6IHByb3BzLFxuICAgICAgICBfb3duZXI6IG93bmVyXG4gICAgICB9O1xuICAgICAgbnVsbCAhPT0gKHZvaWQgMCAhPT0gc2VsZiA/IHNlbGYgOiBudWxsKVxuICAgICAgICA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCBcInJlZlwiLCB7XG4gICAgICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgICAgIGdldDogZWxlbWVudFJlZkdldHRlcldpdGhEZXByZWNhdGlvbldhcm5pbmdcbiAgICAgICAgICB9KVxuICAgICAgICA6IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCBcInJlZlwiLCB7IGVudW1lcmFibGU6ICExLCB2YWx1ZTogbnVsbCB9KTtcbiAgICAgIHR5cGUuX3N0b3JlID0ge307XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZS5fc3RvcmUsIFwidmFsaWRhdGVkXCIsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgdmFsdWU6IDBcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUsIFwiX2RlYnVnSW5mb1wiLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogITEsXG4gICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICB3cml0YWJsZTogITAsXG4gICAgICAgIHZhbHVlOiBudWxsXG4gICAgICB9KTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCBcIl9kZWJ1Z1N0YWNrXCIsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgdmFsdWU6IGRlYnVnU3RhY2tcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUsIFwiX2RlYnVnVGFza1wiLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogITEsXG4gICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICB3cml0YWJsZTogITAsXG4gICAgICAgIHZhbHVlOiBkZWJ1Z1Rhc2tcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmZyZWV6ZSAmJiAoT2JqZWN0LmZyZWV6ZSh0eXBlLnByb3BzKSwgT2JqZWN0LmZyZWV6ZSh0eXBlKSk7XG4gICAgICByZXR1cm4gdHlwZTtcbiAgICB9XG4gICAgZnVuY3Rpb24ganN4REVWSW1wbChcbiAgICAgIHR5cGUsXG4gICAgICBjb25maWcsXG4gICAgICBtYXliZUtleSxcbiAgICAgIGlzU3RhdGljQ2hpbGRyZW4sXG4gICAgICBzb3VyY2UsXG4gICAgICBzZWxmLFxuICAgICAgZGVidWdTdGFjayxcbiAgICAgIGRlYnVnVGFza1xuICAgICkge1xuICAgICAgdmFyIGNoaWxkcmVuID0gY29uZmlnLmNoaWxkcmVuO1xuICAgICAgaWYgKHZvaWQgMCAhPT0gY2hpbGRyZW4pXG4gICAgICAgIGlmIChpc1N0YXRpY0NoaWxkcmVuKVxuICAgICAgICAgIGlmIChpc0FycmF5SW1wbChjaGlsZHJlbikpIHtcbiAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgIGlzU3RhdGljQ2hpbGRyZW4gPSAwO1xuICAgICAgICAgICAgICBpc1N0YXRpY0NoaWxkcmVuIDwgY2hpbGRyZW4ubGVuZ3RoO1xuICAgICAgICAgICAgICBpc1N0YXRpY0NoaWxkcmVuKytcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgdmFsaWRhdGVDaGlsZEtleXMoY2hpbGRyZW5baXNTdGF0aWNDaGlsZHJlbl0pO1xuICAgICAgICAgICAgT2JqZWN0LmZyZWV6ZSAmJiBPYmplY3QuZnJlZXplKGNoaWxkcmVuKTtcbiAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVhY3QuanN4OiBTdGF0aWMgY2hpbGRyZW4gc2hvdWxkIGFsd2F5cyBiZSBhbiBhcnJheS4gWW91IGFyZSBsaWtlbHkgZXhwbGljaXRseSBjYWxsaW5nIFJlYWN0LmpzeHMgb3IgUmVhY3QuanN4REVWLiBVc2UgdGhlIEJhYmVsIHRyYW5zZm9ybSBpbnN0ZWFkLlwiXG4gICAgICAgICAgICApO1xuICAgICAgICBlbHNlIHZhbGlkYXRlQ2hpbGRLZXlzKGNoaWxkcmVuKTtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgXCJrZXlcIikpIHtcbiAgICAgICAgY2hpbGRyZW4gPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSk7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoY29uZmlnKS5maWx0ZXIoZnVuY3Rpb24gKGspIHtcbiAgICAgICAgICByZXR1cm4gXCJrZXlcIiAhPT0gaztcbiAgICAgICAgfSk7XG4gICAgICAgIGlzU3RhdGljQ2hpbGRyZW4gPVxuICAgICAgICAgIDAgPCBrZXlzLmxlbmd0aFxuICAgICAgICAgICAgPyBcIntrZXk6IHNvbWVLZXksIFwiICsga2V5cy5qb2luKFwiOiAuLi4sIFwiKSArIFwiOiAuLi59XCJcbiAgICAgICAgICAgIDogXCJ7a2V5OiBzb21lS2V5fVwiO1xuICAgICAgICBkaWRXYXJuQWJvdXRLZXlTcHJlYWRbY2hpbGRyZW4gKyBpc1N0YXRpY0NoaWxkcmVuXSB8fFxuICAgICAgICAgICgoa2V5cyA9XG4gICAgICAgICAgICAwIDwga2V5cy5sZW5ndGggPyBcIntcIiArIGtleXMuam9pbihcIjogLi4uLCBcIikgKyBcIjogLi4ufVwiIDogXCJ7fVwiKSxcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgJ0EgcHJvcHMgb2JqZWN0IGNvbnRhaW5pbmcgYSBcImtleVwiIHByb3AgaXMgYmVpbmcgc3ByZWFkIGludG8gSlNYOlxcbiAgbGV0IHByb3BzID0gJXM7XFxuICA8JXMgey4uLnByb3BzfSAvPlxcblJlYWN0IGtleXMgbXVzdCBiZSBwYXNzZWQgZGlyZWN0bHkgdG8gSlNYIHdpdGhvdXQgdXNpbmcgc3ByZWFkOlxcbiAgbGV0IHByb3BzID0gJXM7XFxuICA8JXMga2V5PXtzb21lS2V5fSB7Li4ucHJvcHN9IC8+JyxcbiAgICAgICAgICAgIGlzU3RhdGljQ2hpbGRyZW4sXG4gICAgICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgICAgIGtleXMsXG4gICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICAgICksXG4gICAgICAgICAgKGRpZFdhcm5BYm91dEtleVNwcmVhZFtjaGlsZHJlbiArIGlzU3RhdGljQ2hpbGRyZW5dID0gITApKTtcbiAgICAgIH1cbiAgICAgIGNoaWxkcmVuID0gbnVsbDtcbiAgICAgIHZvaWQgMCAhPT0gbWF5YmVLZXkgJiZcbiAgICAgICAgKGNoZWNrS2V5U3RyaW5nQ29lcmNpb24obWF5YmVLZXkpLCAoY2hpbGRyZW4gPSBcIlwiICsgbWF5YmVLZXkpKTtcbiAgICAgIGhhc1ZhbGlkS2V5KGNvbmZpZykgJiZcbiAgICAgICAgKGNoZWNrS2V5U3RyaW5nQ29lcmNpb24oY29uZmlnLmtleSksIChjaGlsZHJlbiA9IFwiXCIgKyBjb25maWcua2V5KSk7XG4gICAgICBpZiAoXCJrZXlcIiBpbiBjb25maWcpIHtcbiAgICAgICAgbWF5YmVLZXkgPSB7fTtcbiAgICAgICAgZm9yICh2YXIgcHJvcE5hbWUgaW4gY29uZmlnKVxuICAgICAgICAgIFwia2V5XCIgIT09IHByb3BOYW1lICYmIChtYXliZUtleVtwcm9wTmFtZV0gPSBjb25maWdbcHJvcE5hbWVdKTtcbiAgICAgIH0gZWxzZSBtYXliZUtleSA9IGNvbmZpZztcbiAgICAgIGNoaWxkcmVuICYmXG4gICAgICAgIGRlZmluZUtleVByb3BXYXJuaW5nR2V0dGVyKFxuICAgICAgICAgIG1heWJlS2V5LFxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHR5cGVcbiAgICAgICAgICAgID8gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgXCJVbmtub3duXCJcbiAgICAgICAgICAgIDogdHlwZVxuICAgICAgICApO1xuICAgICAgcmV0dXJuIFJlYWN0RWxlbWVudChcbiAgICAgICAgdHlwZSxcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIHNlbGYsXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgZ2V0T3duZXIoKSxcbiAgICAgICAgbWF5YmVLZXksXG4gICAgICAgIGRlYnVnU3RhY2ssXG4gICAgICAgIGRlYnVnVGFza1xuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmFsaWRhdGVDaGlsZEtleXMobm9kZSkge1xuICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIG5vZGUgJiZcbiAgICAgICAgbnVsbCAhPT0gbm9kZSAmJlxuICAgICAgICBub2RlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUgJiZcbiAgICAgICAgbm9kZS5fc3RvcmUgJiZcbiAgICAgICAgKG5vZGUuX3N0b3JlLnZhbGlkYXRlZCA9IDEpO1xuICAgIH1cbiAgICB2YXIgUmVhY3QgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0XCIpLFxuICAgICAgUkVBQ1RfRUxFTUVOVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50XCIpLFxuICAgICAgUkVBQ1RfUE9SVEFMX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpLFxuICAgICAgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKSxcbiAgICAgIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIiksXG4gICAgICBSRUFDVF9QUk9GSUxFUl9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpO1xuICAgIFN5bWJvbC5mb3IoXCJyZWFjdC5wcm92aWRlclwiKTtcbiAgICB2YXIgUkVBQ1RfQ09OU1VNRVJfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5jb25zdW1lclwiKSxcbiAgICAgIFJFQUNUX0NPTlRFWFRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpLFxuICAgICAgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5mb3J3YXJkX3JlZlwiKSxcbiAgICAgIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VcIiksXG4gICAgICBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VfbGlzdFwiKSxcbiAgICAgIFJFQUNUX01FTU9fVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vXCIpLFxuICAgICAgUkVBQ1RfTEFaWV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmxhenlcIiksXG4gICAgICBSRUFDVF9BQ1RJVklUWV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmFjdGl2aXR5XCIpLFxuICAgICAgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5jbGllbnQucmVmZXJlbmNlXCIpLFxuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMgPVxuICAgICAgICBSZWFjdC5fX0NMSUVOVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUsXG4gICAgICBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksXG4gICAgICBpc0FycmF5SW1wbCA9IEFycmF5LmlzQXJyYXksXG4gICAgICBjcmVhdGVUYXNrID0gY29uc29sZS5jcmVhdGVUYXNrXG4gICAgICAgID8gY29uc29sZS5jcmVhdGVUYXNrXG4gICAgICAgIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfTtcbiAgICBSZWFjdCA9IHtcbiAgICAgIFwicmVhY3Qtc3RhY2stYm90dG9tLWZyYW1lXCI6IGZ1bmN0aW9uIChjYWxsU3RhY2tGb3JFcnJvcikge1xuICAgICAgICByZXR1cm4gY2FsbFN0YWNrRm9yRXJyb3IoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHZhciBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93bjtcbiAgICB2YXIgZGlkV2FybkFib3V0RWxlbWVudFJlZiA9IHt9O1xuICAgIHZhciB1bmtub3duT3duZXJEZWJ1Z1N0YWNrID0gUmVhY3RbXCJyZWFjdC1zdGFjay1ib3R0b20tZnJhbWVcIl0uYmluZChcbiAgICAgIFJlYWN0LFxuICAgICAgVW5rbm93bk93bmVyXG4gICAgKSgpO1xuICAgIHZhciB1bmtub3duT3duZXJEZWJ1Z1Rhc2sgPSBjcmVhdGVUYXNrKGdldFRhc2tOYW1lKFVua25vd25Pd25lcikpO1xuICAgIHZhciBkaWRXYXJuQWJvdXRLZXlTcHJlYWQgPSB7fTtcbiAgICBleHBvcnRzLkZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbiAgICBleHBvcnRzLmpzeERFViA9IGZ1bmN0aW9uIChcbiAgICAgIHR5cGUsXG4gICAgICBjb25maWcsXG4gICAgICBtYXliZUtleSxcbiAgICAgIGlzU3RhdGljQ2hpbGRyZW4sXG4gICAgICBzb3VyY2UsXG4gICAgICBzZWxmXG4gICAgKSB7XG4gICAgICB2YXIgdHJhY2tBY3R1YWxPd25lciA9XG4gICAgICAgIDFlNCA+IFJlYWN0U2hhcmVkSW50ZXJuYWxzLnJlY2VudGx5Q3JlYXRlZE93bmVyU3RhY2tzKys7XG4gICAgICByZXR1cm4ganN4REVWSW1wbChcbiAgICAgICAgdHlwZSxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBtYXliZUtleSxcbiAgICAgICAgaXNTdGF0aWNDaGlsZHJlbixcbiAgICAgICAgc291cmNlLFxuICAgICAgICBzZWxmLFxuICAgICAgICB0cmFja0FjdHVhbE93bmVyXG4gICAgICAgICAgPyBFcnJvcihcInJlYWN0LXN0YWNrLXRvcC1mcmFtZVwiKVxuICAgICAgICAgIDogdW5rbm93bk93bmVyRGVidWdTdGFjayxcbiAgICAgICAgdHJhY2tBY3R1YWxPd25lciA/IGNyZWF0ZVRhc2soZ2V0VGFza05hbWUodHlwZSkpIDogdW5rbm93bk93bmVyRGVidWdUYXNrXG4gICAgICApO1xuICAgIH07XG4gIH0pKCk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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 ***! \******************************************************************/ /***/ ((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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvanN4LWRldi1ydW50aW1lLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSw4TEFBc0U7QUFDeEUiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC9qc3gtZGV2LXJ1bnRpbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5wcm9kdWN0aW9uLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcycpO1xufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/quill/dist/quill.snow.css": /*!************************************************!*\ !*** ./node_modules/quill/dist/quill.snow.css ***! \************************************************/ /***/ ((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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"43ef3ca21b3c\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9xdWlsbC9kaXN0L3F1aWxsLnNub3cuY3NzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZSxjQUFjO0FBQzdCLElBQUksSUFBVSxJQUFJLGlCQUFpQiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvcXVpbGwvZGlzdC9xdWlsbC5zbm93LmNzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBcIjQzZWYzY2EyMWIzY1wiXG5pZiAobW9kdWxlLmhvdCkgeyBtb2R1bGUuaG90LmFjY2VwdCgpIH1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/quill/dist/quill.snow.css\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/component.js": /*!***********************************************************************!*\ !*** ./node_modules/react-remove-scroll-bar/dist/es2015/component.js ***! \***********************************************************************/ /***/ ((__unused_webpack_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 */ RemoveScrollBar: () => (/* binding */ RemoveScrollBar),\n/* harmony export */ lockAttribute: () => (/* binding */ lockAttribute),\n/* harmony export */ useLockAttribute: () => (/* binding */ useLockAttribute)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_style_singleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-style-singleton */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/index.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/constants.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/utils.js\");\n\n\n\n\nvar Style = (0,react_style_singleton__WEBPACK_IMPORTED_MODULE_1__.styleSingleton)();\nvar lockAttribute = 'data-scroll-locked';\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body[\").concat(lockAttribute, \"] {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.zeroRightClassName, \" .\").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.fullWidthClassName, \" .\").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body[\").concat(lockAttribute, \"] {\\n \").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\nvar getCurrentUseCounter = function () {\n var counter = parseInt(document.body.getAttribute(lockAttribute) || '0', 10);\n return isFinite(counter) ? counter : 0;\n};\nvar useLockAttribute = function () {\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());\n return function () {\n var newCounter = getCurrentUseCounter() - 1;\n if (newCounter <= 0) {\n document.body.removeAttribute(lockAttribute);\n }\n else {\n document.body.setAttribute(lockAttribute, newCounter.toString());\n }\n };\n }, []);\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nvar RemoveScrollBar = function (_a) {\n var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? 'margin' : _b;\n useLockAttribute();\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of { "use strict"; eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fullWidthClassName: () => (/* binding */ fullWidthClassName),\n/* harmony export */ noScrollbarsClassName: () => (/* binding */ noScrollbarsClassName),\n/* harmony export */ removedBarSizeVariable: () => (/* binding */ removedBarSizeVariable),\n/* harmony export */ zeroRightClassName: () => (/* binding */ zeroRightClassName)\n/* harmony export */ });\nvar zeroRightClassName = 'right-scroll-bar-position';\nvar fullWidthClassName = 'width-before-scroll-bar';\nvar noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nvar removedBarSizeVariable = '--removed-body-scroll-bar-size';\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsLWJhci9kaXN0L2VzMjAxNS9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFPO0FBQ0E7QUFDQTtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ08iLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL3JlYWN0LXJlbW92ZS1zY3JvbGwtYmFyL2Rpc3QvZXMyMDE1L2NvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdmFyIHplcm9SaWdodENsYXNzTmFtZSA9ICdyaWdodC1zY3JvbGwtYmFyLXBvc2l0aW9uJztcbmV4cG9ydCB2YXIgZnVsbFdpZHRoQ2xhc3NOYW1lID0gJ3dpZHRoLWJlZm9yZS1zY3JvbGwtYmFyJztcbmV4cG9ydCB2YXIgbm9TY3JvbGxiYXJzQ2xhc3NOYW1lID0gJ3dpdGgtc2Nyb2xsLWJhcnMtaGlkZGVuJztcbi8qKlxuICogTmFtZSBvZiBhIENTUyB2YXJpYWJsZSBjb250YWluaW5nIHRoZSBhbW91bnQgb2YgXCJoaWRkZW5cIiBzY3JvbGxiYXJcbiAqICEgbWlnaHQgYmUgdW5kZWZpbmVkICEgdXNlIHdpbGwgZmFsbGJhY2shXG4gKi9cbmV4cG9ydCB2YXIgcmVtb3ZlZEJhclNpemVWYXJpYWJsZSA9ICctLXJlbW92ZWQtYm9keS1zY3JvbGwtYmFyLXNpemUnO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/constants.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/index.js": /*!*******************************************************************!*\ !*** ./node_modules/react-remove-scroll-bar/dist/es2015/index.js ***! \*******************************************************************/ /***/ ((__unused_webpack_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 */ RemoveScrollBar: () => (/* reexport safe */ _component__WEBPACK_IMPORTED_MODULE_0__.RemoveScrollBar),\n/* harmony export */ fullWidthClassName: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_1__.fullWidthClassName),\n/* harmony export */ getGapWidth: () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_2__.getGapWidth),\n/* harmony export */ noScrollbarsClassName: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_1__.noScrollbarsClassName),\n/* harmony export */ removedBarSizeVariable: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_1__.removedBarSizeVariable),\n/* harmony export */ zeroRightClassName: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_1__.zeroRightClassName)\n/* harmony export */ });\n/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./component */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/component.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/constants.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/utils.js\");\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsLWJhci9kaXN0L2VzMjAxNS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBOEM7QUFDc0U7QUFDOUU7QUFDMEYiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL3JlYWN0LXJlbW92ZS1zY3JvbGwtYmFyL2Rpc3QvZXMyMDE1L2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlbW92ZVNjcm9sbEJhciB9IGZyb20gJy4vY29tcG9uZW50JztcbmltcG9ydCB7IHplcm9SaWdodENsYXNzTmFtZSwgZnVsbFdpZHRoQ2xhc3NOYW1lLCBub1Njcm9sbGJhcnNDbGFzc05hbWUsIHJlbW92ZWRCYXJTaXplVmFyaWFibGUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRHYXBXaWR0aCB9IGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0IHsgUmVtb3ZlU2Nyb2xsQmFyLCB6ZXJvUmlnaHRDbGFzc05hbWUsIGZ1bGxXaWR0aENsYXNzTmFtZSwgbm9TY3JvbGxiYXJzQ2xhc3NOYW1lLCByZW1vdmVkQmFyU2l6ZVZhcmlhYmxlLCBnZXRHYXBXaWR0aCwgfTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/utils.js": /*!*******************************************************************!*\ !*** ./node_modules/react-remove-scroll-bar/dist/es2015/utils.js ***! \*******************************************************************/ /***/ ((__unused_webpack_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 */ getGapWidth: () => (/* binding */ getGapWidth),\n/* harmony export */ zeroGap: () => (/* binding */ zeroGap)\n/* harmony export */ });\nvar zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nvar getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsLWJhci9kaXN0L2VzMjAxNS91dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1AsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsLWJhci9kaXN0L2VzMjAxNS91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdmFyIHplcm9HYXAgPSB7XG4gICAgbGVmdDogMCxcbiAgICB0b3A6IDAsXG4gICAgcmlnaHQ6IDAsXG4gICAgZ2FwOiAwLFxufTtcbnZhciBwYXJzZSA9IGZ1bmN0aW9uICh4KSB7IHJldHVybiBwYXJzZUludCh4IHx8ICcnLCAxMCkgfHwgMDsgfTtcbnZhciBnZXRPZmZzZXQgPSBmdW5jdGlvbiAoZ2FwTW9kZSkge1xuICAgIHZhciBjcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpO1xuICAgIHZhciBsZWZ0ID0gY3NbZ2FwTW9kZSA9PT0gJ3BhZGRpbmcnID8gJ3BhZGRpbmdMZWZ0JyA6ICdtYXJnaW5MZWZ0J107XG4gICAgdmFyIHRvcCA9IGNzW2dhcE1vZGUgPT09ICdwYWRkaW5nJyA/ICdwYWRkaW5nVG9wJyA6ICdtYXJnaW5Ub3AnXTtcbiAgICB2YXIgcmlnaHQgPSBjc1tnYXBNb2RlID09PSAncGFkZGluZycgPyAncGFkZGluZ1JpZ2h0JyA6ICdtYXJnaW5SaWdodCddO1xuICAgIHJldHVybiBbcGFyc2UobGVmdCksIHBhcnNlKHRvcCksIHBhcnNlKHJpZ2h0KV07XG59O1xuZXhwb3J0IHZhciBnZXRHYXBXaWR0aCA9IGZ1bmN0aW9uIChnYXBNb2RlKSB7XG4gICAgaWYgKGdhcE1vZGUgPT09IHZvaWQgMCkgeyBnYXBNb2RlID0gJ21hcmdpbic7IH1cbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIHplcm9HYXA7XG4gICAgfVxuICAgIHZhciBvZmZzZXRzID0gZ2V0T2Zmc2V0KGdhcE1vZGUpO1xuICAgIHZhciBkb2N1bWVudFdpZHRoID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIHZhciB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIHJldHVybiB7XG4gICAgICAgIGxlZnQ6IG9mZnNldHNbMF0sXG4gICAgICAgIHRvcDogb2Zmc2V0c1sxXSxcbiAgICAgICAgcmlnaHQ6IG9mZnNldHNbMl0sXG4gICAgICAgIGdhcDogTWF0aC5tYXgoMCwgd2luZG93V2lkdGggLSBkb2N1bWVudFdpZHRoICsgb2Zmc2V0c1syXSAtIG9mZnNldHNbMF0pLFxuICAgIH07XG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/utils.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/Combination.js": /*!*********************************************************************!*\ !*** ./node_modules/react-remove-scroll/dist/es2015/Combination.js ***! \*********************************************************************/ /***/ ((__unused_webpack_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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tslib */ \"(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _UI__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./UI */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/UI.js\");\n/* harmony import */ var _sidecar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sidecar */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/sidecar.js\");\n\n\n\n\nvar ReactRemoveScroll = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (props, ref) { return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_UI__WEBPACK_IMPORTED_MODULE_2__.RemoveScroll, (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({}, props, { ref: ref, sideCar: _sidecar__WEBPACK_IMPORTED_MODULE_1__[\"default\"] }))); });\nReactRemoveScroll.classNames = _UI__WEBPACK_IMPORTED_MODULE_2__.RemoveScroll.classNames;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ReactRemoveScroll);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L0NvbWJpbmF0aW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFpQztBQUNGO0FBQ0s7QUFDSjtBQUNoQyx3QkFBd0IsNkNBQWdCLHlCQUF5QixRQUFRLGdEQUFtQixDQUFDLDZDQUFZLEVBQUUsK0NBQVEsR0FBRyxXQUFXLG1CQUFtQixnREFBTyxFQUFFLE1BQU07QUFDbkssK0JBQStCLDZDQUFZO0FBQzNDLGlFQUFlLGlCQUFpQixFQUFDIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L0NvbWJpbmF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9fYXNzaWduIH0gZnJvbSBcInRzbGliXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBSZW1vdmVTY3JvbGwgfSBmcm9tICcuL1VJJztcbmltcG9ydCBTaWRlQ2FyIGZyb20gJy4vc2lkZWNhcic7XG52YXIgUmVhY3RSZW1vdmVTY3JvbGwgPSBSZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7IHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChSZW1vdmVTY3JvbGwsIF9fYXNzaWduKHt9LCBwcm9wcywgeyByZWY6IHJlZiwgc2lkZUNhcjogU2lkZUNhciB9KSkpOyB9KTtcblJlYWN0UmVtb3ZlU2Nyb2xsLmNsYXNzTmFtZXMgPSBSZW1vdmVTY3JvbGwuY2xhc3NOYW1lcztcbmV4cG9ydCBkZWZhdWx0IFJlYWN0UmVtb3ZlU2Nyb2xsO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/Combination.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/SideEffect.js": /*!********************************************************************!*\ !*** ./node_modules/react-remove-scroll/dist/es2015/SideEffect.js ***! \********************************************************************/ /***/ ((__unused_webpack_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 */ RemoveScrollSideCar: () => (/* binding */ RemoveScrollSideCar),\n/* harmony export */ getDeltaXY: () => (/* binding */ getDeltaXY),\n/* harmony export */ getTouchXY: () => (/* binding */ getTouchXY)\n/* harmony export */ });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tslib */ \"(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_remove_scroll_bar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-remove-scroll-bar */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/index.js\");\n/* harmony import */ var react_style_singleton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-style-singleton */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/index.js\");\n/* harmony import */ var _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./aggresiveCapture */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js\");\n/* harmony import */ var _handleScroll__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./handleScroll */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/handleScroll.js\");\n\n\n\n\n\n\nvar getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nvar getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nfunction RemoveScrollSideCar(props) {\n var shouldPreventQueue = react__WEBPACK_IMPORTED_MODULE_0__.useRef([]);\n var touchStartRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef([0, 0]);\n var activeAxis = react__WEBPACK_IMPORTED_MODULE_0__.useRef();\n var id = react__WEBPACK_IMPORTED_MODULE_0__.useState(idCounter++)[0];\n var Style = react__WEBPACK_IMPORTED_MODULE_0__.useState(react_style_singleton__WEBPACK_IMPORTED_MODULE_2__.styleSingleton)[0];\n var lastProps = react__WEBPACK_IMPORTED_MODULE_0__.useRef(props);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__spreadArray)([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (event, parent) {\n if (('touches' in event && event.touches.length === 2) || (event.type === 'wheel' && event.ctrlKey)) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n var canBeScrolledInMainDirection = (0,_handleScroll__WEBPACK_IMPORTED_MODULE_4__.locationCouldBeScrolled)(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = (0,_handleScroll__WEBPACK_IMPORTED_MODULE_4__.locationCouldBeScrolled)(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return (0,_handleScroll__WEBPACK_IMPORTED_MODULE_4__.handleScroll)(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should, shadowParent: getOutermostShadowParent(target) };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n document.addEventListener('touchmove', shouldPrevent, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null,\n inert ? react__WEBPACK_IMPORTED_MODULE_0__.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_remove_scroll_bar__WEBPACK_IMPORTED_MODULE_1__.RemoveScrollBar, { gapMode: props.gapMode }) : null));\n}\nfunction getOutermostShadowParent(node) {\n var shadowParent = null;\n while (node !== null) {\n if (node instanceof ShadowRoot) {\n shadowParent = node.host;\n node = node.host;\n }\n node = node.parentNode;\n }\n return shadowParent;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L1NpZGVFZmZlY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFzQztBQUNQO0FBQzJCO0FBQ0g7QUFDUDtBQUN1QjtBQUNoRTtBQUNQO0FBQ0E7QUFDTyxvQ0FBb0M7QUFDM0M7QUFDQTtBQUNBO0FBQ0EscUNBQXFDO0FBQ3JDLG9DQUFvQyxpREFBaUQsc0JBQXNCLDBDQUEwQyxxQkFBcUI7QUFDMUs7QUFDQTtBQUNPO0FBQ1AsNkJBQTZCLHlDQUFZO0FBQ3pDLHdCQUF3Qix5Q0FBWTtBQUNwQyxxQkFBcUIseUNBQVk7QUFDakMsYUFBYSwyQ0FBYztBQUMzQixnQkFBZ0IsMkNBQWMsQ0FBQyxpRUFBYztBQUM3QyxvQkFBb0IseUNBQVk7QUFDaEMsSUFBSSw0Q0FBZTtBQUNuQjtBQUNBLEtBQUs7QUFDTCxJQUFJLDRDQUFlO0FBQ25CO0FBQ0E7QUFDQSwwQkFBMEIsb0RBQWE7QUFDdkMsNENBQTRDLDZEQUE2RDtBQUN6RztBQUNBO0FBQ0EsZ0RBQWdELGdFQUFnRTtBQUNoSDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsNEJBQTRCLDhDQUFpQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLHNFQUF1QjtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLHNFQUF1QjtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLDJEQUFZO0FBQzNCLEtBQUs7QUFDTCx3QkFBd0IsOENBQWlCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxpSUFBaUk7QUFDNU07QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDLHFDQUFxQztBQUMvRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCx1QkFBdUIsOENBQWlCO0FBQ3hDLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0EsMEZBQTBGLHFCQUFxQjtBQUMvRyxTQUFTO0FBQ1QsS0FBSztBQUNMLDJCQUEyQiw4Q0FBaUI7QUFDNUM7QUFDQTtBQUNBLEtBQUs7QUFDTCxzQkFBc0IsOENBQWlCO0FBQ3ZDO0FBQ0EsS0FBSztBQUNMLDBCQUEwQiw4Q0FBaUI7QUFDM0M7QUFDQSxLQUFLO0FBQ0wsSUFBSSw0Q0FBZTtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULDBEQUEwRCx5REFBVTtBQUNwRSw4REFBOEQseURBQVU7QUFDeEUsa0VBQWtFLHlEQUFVO0FBQzVFO0FBQ0EsMkRBQTJELHdCQUF3QjtBQUNuRixpRUFBaUUseURBQVU7QUFDM0UscUVBQXFFLHlEQUFVO0FBQy9FLHlFQUF5RSx5REFBVTtBQUNuRjtBQUNBLEtBQUs7QUFDTDtBQUNBLFlBQVksZ0RBQW1CLENBQUMsMkNBQWM7QUFDOUMsZ0JBQWdCLGdEQUFtQixVQUFVLDJCQUEyQjtBQUN4RSwwQkFBMEIsZ0RBQW1CLENBQUMsb0VBQWUsSUFBSSx3QkFBd0I7QUFDekY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L1NpZGVFZmZlY3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgX19zcHJlYWRBcnJheSB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUmVtb3ZlU2Nyb2xsQmFyIH0gZnJvbSAncmVhY3QtcmVtb3ZlLXNjcm9sbC1iYXInO1xuaW1wb3J0IHsgc3R5bGVTaW5nbGV0b24gfSBmcm9tICdyZWFjdC1zdHlsZS1zaW5nbGV0b24nO1xuaW1wb3J0IHsgbm9uUGFzc2l2ZSB9IGZyb20gJy4vYWdncmVzaXZlQ2FwdHVyZSc7XG5pbXBvcnQgeyBoYW5kbGVTY3JvbGwsIGxvY2F0aW9uQ291bGRCZVNjcm9sbGVkIH0gZnJvbSAnLi9oYW5kbGVTY3JvbGwnO1xuZXhwb3J0IHZhciBnZXRUb3VjaFhZID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgcmV0dXJuICdjaGFuZ2VkVG91Y2hlcycgaW4gZXZlbnQgPyBbZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WCwgZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WV0gOiBbMCwgMF07XG59O1xuZXhwb3J0IHZhciBnZXREZWx0YVhZID0gZnVuY3Rpb24gKGV2ZW50KSB7IHJldHVybiBbZXZlbnQuZGVsdGFYLCBldmVudC5kZWx0YVldOyB9O1xudmFyIGV4dHJhY3RSZWYgPSBmdW5jdGlvbiAocmVmKSB7XG4gICAgcmV0dXJuIHJlZiAmJiAnY3VycmVudCcgaW4gcmVmID8gcmVmLmN1cnJlbnQgOiByZWY7XG59O1xudmFyIGRlbHRhQ29tcGFyZSA9IGZ1bmN0aW9uICh4LCB5KSB7IHJldHVybiB4WzBdID09PSB5WzBdICYmIHhbMV0gPT09IHlbMV07IH07XG52YXIgZ2VuZXJhdGVTdHlsZSA9IGZ1bmN0aW9uIChpZCkgeyByZXR1cm4gXCJcXG4gIC5ibG9jay1pbnRlcmFjdGl2aXR5LVwiLmNvbmNhdChpZCwgXCIge3BvaW50ZXItZXZlbnRzOiBub25lO31cXG4gIC5hbGxvdy1pbnRlcmFjdGl2aXR5LVwiKS5jb25jYXQoaWQsIFwiIHtwb2ludGVyLWV2ZW50czogYWxsO31cXG5cIik7IH07XG52YXIgaWRDb3VudGVyID0gMDtcbnZhciBsb2NrU3RhY2sgPSBbXTtcbmV4cG9ydCBmdW5jdGlvbiBSZW1vdmVTY3JvbGxTaWRlQ2FyKHByb3BzKSB7XG4gICAgdmFyIHNob3VsZFByZXZlbnRRdWV1ZSA9IFJlYWN0LnVzZVJlZihbXSk7XG4gICAgdmFyIHRvdWNoU3RhcnRSZWYgPSBSZWFjdC51c2VSZWYoWzAsIDBdKTtcbiAgICB2YXIgYWN0aXZlQXhpcyA9IFJlYWN0LnVzZVJlZigpO1xuICAgIHZhciBpZCA9IFJlYWN0LnVzZVN0YXRlKGlkQ291bnRlcisrKVswXTtcbiAgICB2YXIgU3R5bGUgPSBSZWFjdC51c2VTdGF0ZShzdHlsZVNpbmdsZXRvbilbMF07XG4gICAgdmFyIGxhc3RQcm9wcyA9IFJlYWN0LnVzZVJlZihwcm9wcyk7XG4gICAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbGFzdFByb3BzLmN1cnJlbnQgPSBwcm9wcztcbiAgICB9LCBbcHJvcHNdKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAocHJvcHMuaW5lcnQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImJsb2NrLWludGVyYWN0aXZpdHktXCIuY29uY2F0KGlkKSk7XG4gICAgICAgICAgICB2YXIgYWxsb3dfMSA9IF9fc3ByZWFkQXJyYXkoW3Byb3BzLmxvY2tSZWYuY3VycmVudF0sIChwcm9wcy5zaGFyZHMgfHwgW10pLm1hcChleHRyYWN0UmVmKSwgdHJ1ZSkuZmlsdGVyKEJvb2xlYW4pO1xuICAgICAgICAgICAgYWxsb3dfMS5mb3JFYWNoKGZ1bmN0aW9uIChlbCkgeyByZXR1cm4gZWwuY2xhc3NMaXN0LmFkZChcImFsbG93LWludGVyYWN0aXZpdHktXCIuY29uY2F0KGlkKSk7IH0pO1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJibG9jay1pbnRlcmFjdGl2aXR5LVwiLmNvbmNhdChpZCkpO1xuICAgICAgICAgICAgICAgIGFsbG93XzEuZm9yRWFjaChmdW5jdGlvbiAoZWwpIHsgcmV0dXJuIGVsLmNsYXNzTGlzdC5yZW1vdmUoXCJhbGxvdy1pbnRlcmFjdGl2aXR5LVwiLmNvbmNhdChpZCkpOyB9KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgIH0sIFtwcm9wcy5pbmVydCwgcHJvcHMubG9ja1JlZi5jdXJyZW50LCBwcm9wcy5zaGFyZHNdKTtcbiAgICB2YXIgc2hvdWxkQ2FuY2VsRXZlbnQgPSBSZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbiAoZXZlbnQsIHBhcmVudCkge1xuICAgICAgICBpZiAoKCd0b3VjaGVzJyBpbiBldmVudCAmJiBldmVudC50b3VjaGVzLmxlbmd0aCA9PT0gMikgfHwgKGV2ZW50LnR5cGUgPT09ICd3aGVlbCcgJiYgZXZlbnQuY3RybEtleSkpIHtcbiAgICAgICAgICAgIHJldHVybiAhbGFzdFByb3BzLmN1cnJlbnQuYWxsb3dQaW5jaFpvb207XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRvdWNoID0gZ2V0VG91Y2hYWShldmVudCk7XG4gICAgICAgIHZhciB0b3VjaFN0YXJ0ID0gdG91Y2hTdGFydFJlZi5jdXJyZW50O1xuICAgICAgICB2YXIgZGVsdGFYID0gJ2RlbHRhWCcgaW4gZXZlbnQgPyBldmVudC5kZWx0YVggOiB0b3VjaFN0YXJ0WzBdIC0gdG91Y2hbMF07XG4gICAgICAgIHZhciBkZWx0YVkgPSAnZGVsdGFZJyBpbiBldmVudCA/IGV2ZW50LmRlbHRhWSA6IHRvdWNoU3RhcnRbMV0gLSB0b3VjaFsxXTtcbiAgICAgICAgdmFyIGN1cnJlbnRBeGlzO1xuICAgICAgICB2YXIgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICB2YXIgbW92ZURpcmVjdGlvbiA9IE1hdGguYWJzKGRlbHRhWCkgPiBNYXRoLmFicyhkZWx0YVkpID8gJ2gnIDogJ3YnO1xuICAgICAgICAvLyBhbGxvdyBob3Jpem9udGFsIHRvdWNoIG1vdmUgb24gUmFuZ2UgaW5wdXRzLiBUaGV5IHdpbGwgbm90IGNhdXNlIGFueSBzY3JvbGxcbiAgICAgICAgaWYgKCd0b3VjaGVzJyBpbiBldmVudCAmJiBtb3ZlRGlyZWN0aW9uID09PSAnaCcgJiYgdGFyZ2V0LnR5cGUgPT09ICdyYW5nZScpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY2FuQmVTY3JvbGxlZEluTWFpbkRpcmVjdGlvbiA9IGxvY2F0aW9uQ291bGRCZVNjcm9sbGVkKG1vdmVEaXJlY3Rpb24sIHRhcmdldCk7XG4gICAgICAgIGlmICghY2FuQmVTY3JvbGxlZEluTWFpbkRpcmVjdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhbkJlU2Nyb2xsZWRJbk1haW5EaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGN1cnJlbnRBeGlzID0gbW92ZURpcmVjdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnRBeGlzID0gbW92ZURpcmVjdGlvbiA9PT0gJ3YnID8gJ2gnIDogJ3YnO1xuICAgICAgICAgICAgY2FuQmVTY3JvbGxlZEluTWFpbkRpcmVjdGlvbiA9IGxvY2F0aW9uQ291bGRCZVNjcm9sbGVkKG1vdmVEaXJlY3Rpb24sIHRhcmdldCk7XG4gICAgICAgICAgICAvLyBvdGhlciBheGlzIG1pZ2h0IGJlIG5vdCBzY3JvbGxhYmxlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjYW5CZVNjcm9sbGVkSW5NYWluRGlyZWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFhY3RpdmVBeGlzLmN1cnJlbnQgJiYgJ2NoYW5nZWRUb3VjaGVzJyBpbiBldmVudCAmJiAoZGVsdGFYIHx8IGRlbHRhWSkpIHtcbiAgICAgICAgICAgIGFjdGl2ZUF4aXMuY3VycmVudCA9IGN1cnJlbnRBeGlzO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY3VycmVudEF4aXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjYW5jZWxpbmdBeGlzID0gYWN0aXZlQXhpcy5jdXJyZW50IHx8IGN1cnJlbnRBeGlzO1xuICAgICAgICByZXR1cm4gaGFuZGxlU2Nyb2xsKGNhbmNlbGluZ0F4aXMsIHBhcmVudCwgZXZlbnQsIGNhbmNlbGluZ0F4aXMgPT09ICdoJyA/IGRlbHRhWCA6IGRlbHRhWSwgdHJ1ZSk7XG4gICAgfSwgW10pO1xuICAgIHZhciBzaG91bGRQcmV2ZW50ID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKF9ldmVudCkge1xuICAgICAgICB2YXIgZXZlbnQgPSBfZXZlbnQ7XG4gICAgICAgIGlmICghbG9ja1N0YWNrLmxlbmd0aCB8fCBsb2NrU3RhY2tbbG9ja1N0YWNrLmxlbmd0aCAtIDFdICE9PSBTdHlsZSkge1xuICAgICAgICAgICAgLy8gbm90IHRoZSBsYXN0IGFjdGl2ZVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkZWx0YSA9ICdkZWx0YVknIGluIGV2ZW50ID8gZ2V0RGVsdGFYWShldmVudCkgOiBnZXRUb3VjaFhZKGV2ZW50KTtcbiAgICAgICAgdmFyIHNvdXJjZUV2ZW50ID0gc2hvdWxkUHJldmVudFF1ZXVlLmN1cnJlbnQuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlLm5hbWUgPT09IGV2ZW50LnR5cGUgJiYgKGUudGFyZ2V0ID09PSBldmVudC50YXJnZXQgfHwgZXZlbnQudGFyZ2V0ID09PSBlLnNoYWRvd1BhcmVudCkgJiYgZGVsdGFDb21wYXJlKGUuZGVsdGEsIGRlbHRhKTsgfSlbMF07XG4gICAgICAgIC8vIHNlbGYgZXZlbnQsIGFuZCBzaG91bGQgYmUgY2FuY2VsZWRcbiAgICAgICAgaWYgKHNvdXJjZUV2ZW50ICYmIHNvdXJjZUV2ZW50LnNob3VsZCkge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmNhbmNlbGFibGUpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIG91dHNpZGUgb3Igc2hhcmQgZXZlbnRcbiAgICAgICAgaWYgKCFzb3VyY2VFdmVudCkge1xuICAgICAgICAgICAgdmFyIHNoYXJkTm9kZXMgPSAobGFzdFByb3BzLmN1cnJlbnQuc2hhcmRzIHx8IFtdKVxuICAgICAgICAgICAgICAgIC5tYXAoZXh0cmFjdFJlZilcbiAgICAgICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAgICAgLmZpbHRlcihmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5jb250YWlucyhldmVudC50YXJnZXQpOyB9KTtcbiAgICAgICAgICAgIHZhciBzaG91bGRTdG9wID0gc2hhcmROb2Rlcy5sZW5ndGggPiAwID8gc2hvdWxkQ2FuY2VsRXZlbnQoZXZlbnQsIHNoYXJkTm9kZXNbMF0pIDogIWxhc3RQcm9wcy5jdXJyZW50Lm5vSXNvbGF0aW9uO1xuICAgICAgICAgICAgaWYgKHNob3VsZFN0b3ApIHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuY2FuY2VsYWJsZSkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtdKTtcbiAgICB2YXIgc2hvdWxkQ2FuY2VsID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKG5hbWUsIGRlbHRhLCB0YXJnZXQsIHNob3VsZCkge1xuICAgICAgICB2YXIgZXZlbnQgPSB7IG5hbWU6IG5hbWUsIGRlbHRhOiBkZWx0YSwgdGFyZ2V0OiB0YXJnZXQsIHNob3VsZDogc2hvdWxkLCBzaGFkb3dQYXJlbnQ6IGdldE91dGVybW9zdFNoYWRvd1BhcmVudCh0YXJnZXQpIH07XG4gICAgICAgIHNob3VsZFByZXZlbnRRdWV1ZS5jdXJyZW50LnB1c2goZXZlbnQpO1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHNob3VsZFByZXZlbnRRdWV1ZS5jdXJyZW50ID0gc2hvdWxkUHJldmVudFF1ZXVlLmN1cnJlbnQuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlICE9PSBldmVudDsgfSk7XG4gICAgICAgIH0sIDEpO1xuICAgIH0sIFtdKTtcbiAgICB2YXIgc2Nyb2xsVG91Y2hTdGFydCA9IFJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB0b3VjaFN0YXJ0UmVmLmN1cnJlbnQgPSBnZXRUb3VjaFhZKGV2ZW50KTtcbiAgICAgICAgYWN0aXZlQXhpcy5jdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgIH0sIFtdKTtcbiAgICB2YXIgc2Nyb2xsV2hlZWwgPSBSZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgc2hvdWxkQ2FuY2VsKGV2ZW50LnR5cGUsIGdldERlbHRhWFkoZXZlbnQpLCBldmVudC50YXJnZXQsIHNob3VsZENhbmNlbEV2ZW50KGV2ZW50LCBwcm9wcy5sb2NrUmVmLmN1cnJlbnQpKTtcbiAgICB9LCBbXSk7XG4gICAgdmFyIHNjcm9sbFRvdWNoTW92ZSA9IFJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICBzaG91bGRDYW5jZWwoZXZlbnQudHlwZSwgZ2V0VG91Y2hYWShldmVudCksIGV2ZW50LnRhcmdldCwgc2hvdWxkQ2FuY2VsRXZlbnQoZXZlbnQsIHByb3BzLmxvY2tSZWYuY3VycmVudCkpO1xuICAgIH0sIFtdKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICBsb2NrU3RhY2sucHVzaChTdHlsZSk7XG4gICAgICAgIHByb3BzLnNldENhbGxiYWNrcyh7XG4gICAgICAgICAgICBvblNjcm9sbENhcHR1cmU6IHNjcm9sbFdoZWVsLFxuICAgICAgICAgICAgb25XaGVlbENhcHR1cmU6IHNjcm9sbFdoZWVsLFxuICAgICAgICAgICAgb25Ub3VjaE1vdmVDYXB0dXJlOiBzY3JvbGxUb3VjaE1vdmUsXG4gICAgICAgIH0pO1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIHNob3VsZFByZXZlbnQsIG5vblBhc3NpdmUpO1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBzaG91bGRQcmV2ZW50LCBub25QYXNzaXZlKTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHNjcm9sbFRvdWNoU3RhcnQsIG5vblBhc3NpdmUpO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgbG9ja1N0YWNrID0gbG9ja1N0YWNrLmZpbHRlcihmdW5jdGlvbiAoaW5zdCkgeyByZXR1cm4gaW5zdCAhPT0gU3R5bGU7IH0pO1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2hlZWwnLCBzaG91bGRQcmV2ZW50LCBub25QYXNzaXZlKTtcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHNob3VsZFByZXZlbnQsIG5vblBhc3NpdmUpO1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHNjcm9sbFRvdWNoU3RhcnQsIG5vblBhc3NpdmUpO1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICB2YXIgcmVtb3ZlU2Nyb2xsQmFyID0gcHJvcHMucmVtb3ZlU2Nyb2xsQmFyLCBpbmVydCA9IHByb3BzLmluZXJ0O1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCxcbiAgICAgICAgaW5lcnQgPyBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlLCB7IHN0eWxlczogZ2VuZXJhdGVTdHlsZShpZCkgfSkgOiBudWxsLFxuICAgICAgICByZW1vdmVTY3JvbGxCYXIgPyBSZWFjdC5jcmVhdGVFbGVtZW50KFJlbW92ZVNjcm9sbEJhciwgeyBnYXBNb2RlOiBwcm9wcy5nYXBNb2RlIH0pIDogbnVsbCkpO1xufVxuZnVuY3Rpb24gZ2V0T3V0ZXJtb3N0U2hhZG93UGFyZW50KG5vZGUpIHtcbiAgICB2YXIgc2hhZG93UGFyZW50ID0gbnVsbDtcbiAgICB3aGlsZSAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QpIHtcbiAgICAgICAgICAgIHNoYWRvd1BhcmVudCA9IG5vZGUuaG9zdDtcbiAgICAgICAgICAgIG5vZGUgPSBub2RlLmhvc3Q7XG4gICAgICAgIH1cbiAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTtcbiAgICB9XG4gICAgcmV0dXJuIHNoYWRvd1BhcmVudDtcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/SideEffect.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/UI.js": /*!************************************************************!*\ !*** ./node_modules/react-remove-scroll/dist/es2015/UI.js ***! \************************************************************/ /***/ ((__unused_webpack_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 */ RemoveScroll: () => (/* binding */ RemoveScroll)\n/* harmony export */ });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tslib */ \"(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_remove_scroll_bar_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-remove-scroll-bar/constants */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/constants.js\");\n/* harmony import */ var use_callback_ref__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! use-callback-ref */ \"(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/useMergeRef.js\");\n/* harmony import */ var _medium__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./medium */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/medium.js\");\n\n\n\n\n\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (props, parentRef) {\n var ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n var _a = react__WEBPACK_IMPORTED_MODULE_0__.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, gapMode = props.gapMode, rest = (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__rest)(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\", \"gapMode\"]);\n var SideCar = sideCar;\n var containerRef = (0,use_callback_ref__WEBPACK_IMPORTED_MODULE_3__.useMergeRefs)([ref, parentRef]);\n var containerProps = (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)({}, rest), callbacks);\n return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null,\n enabled && (react__WEBPACK_IMPORTED_MODULE_0__.createElement(SideCar, { sideCar: _medium__WEBPACK_IMPORTED_MODULE_4__.effectCar, removeScrollBar: removeScrollBar, shards: shards, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode: gapMode })),\n forwardProps ? (react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(react__WEBPACK_IMPORTED_MODULE_0__.Children.only(children), (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)({}, containerProps), { ref: containerRef }))) : (react__WEBPACK_IMPORTED_MODULE_0__.createElement(Container, (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: react_remove_scroll_bar_constants__WEBPACK_IMPORTED_MODULE_1__.fullWidthClassName,\n zeroRight: react_remove_scroll_bar_constants__WEBPACK_IMPORTED_MODULE_1__.zeroRightClassName,\n};\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L1VJLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBeUM7QUFDVjtBQUM0RDtBQUMzQztBQUNYO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiw2Q0FBZ0I7QUFDbkMsY0FBYyx5Q0FBWTtBQUMxQixhQUFhLDJDQUFjO0FBQzNCO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCx5WUFBeVksNkNBQU07QUFDL1k7QUFDQSx1QkFBdUIsOERBQVk7QUFDbkMseUJBQXlCLCtDQUFRLENBQUMsK0NBQVEsR0FBRztBQUM3QyxZQUFZLGdEQUFtQixDQUFDLDJDQUFjO0FBQzlDLG9CQUFvQixnREFBbUIsWUFBWSxTQUFTLDhDQUFTLDBMQUEwTDtBQUMvUCx3QkFBd0IsK0NBQWtCLENBQUMsMkNBQWMsaUJBQWlCLCtDQUFRLENBQUMsK0NBQVEsR0FBRyxxQkFBcUIsbUJBQW1CLE9BQU8sZ0RBQW1CLFlBQVksK0NBQVEsR0FBRyxvQkFBb0IseUNBQXlDO0FBQ3BQLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLGlGQUFrQjtBQUNqQyxlQUFlLGlGQUFrQjtBQUNqQztBQUN3QiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvcmVhY3QtcmVtb3ZlLXNjcm9sbC9kaXN0L2VzMjAxNS9VSS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfX2Fzc2lnbiwgX19yZXN0IH0gZnJvbSBcInRzbGliXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBmdWxsV2lkdGhDbGFzc05hbWUsIHplcm9SaWdodENsYXNzTmFtZSB9IGZyb20gJ3JlYWN0LXJlbW92ZS1zY3JvbGwtYmFyL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB1c2VNZXJnZVJlZnMgfSBmcm9tICd1c2UtY2FsbGJhY2stcmVmJztcbmltcG9ydCB7IGVmZmVjdENhciB9IGZyb20gJy4vbWVkaXVtJztcbnZhciBub3RoaW5nID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybjtcbn07XG4vKipcbiAqIFJlbW92ZXMgc2Nyb2xsYmFyIGZyb20gdGhlIHBhZ2UgYW5kIGNvbnRhaW4gdGhlIHNjcm9sbCB3aXRoaW4gdGhlIExvY2tcbiAqL1xudmFyIFJlbW92ZVNjcm9sbCA9IFJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24gKHByb3BzLCBwYXJlbnRSZWYpIHtcbiAgICB2YXIgcmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIHZhciBfYSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICAgICAgb25TY3JvbGxDYXB0dXJlOiBub3RoaW5nLFxuICAgICAgICBvbldoZWVsQ2FwdHVyZTogbm90aGluZyxcbiAgICAgICAgb25Ub3VjaE1vdmVDYXB0dXJlOiBub3RoaW5nLFxuICAgIH0pLCBjYWxsYmFja3MgPSBfYVswXSwgc2V0Q2FsbGJhY2tzID0gX2FbMV07XG4gICAgdmFyIGZvcndhcmRQcm9wcyA9IHByb3BzLmZvcndhcmRQcm9wcywgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbiwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLCByZW1vdmVTY3JvbGxCYXIgPSBwcm9wcy5yZW1vdmVTY3JvbGxCYXIsIGVuYWJsZWQgPSBwcm9wcy5lbmFibGVkLCBzaGFyZHMgPSBwcm9wcy5zaGFyZHMsIHNpZGVDYXIgPSBwcm9wcy5zaWRlQ2FyLCBub0lzb2xhdGlvbiA9IHByb3BzLm5vSXNvbGF0aW9uLCBpbmVydCA9IHByb3BzLmluZXJ0LCBhbGxvd1BpbmNoWm9vbSA9IHByb3BzLmFsbG93UGluY2hab29tLCBfYiA9IHByb3BzLmFzLCBDb250YWluZXIgPSBfYiA9PT0gdm9pZCAwID8gJ2RpdicgOiBfYiwgZ2FwTW9kZSA9IHByb3BzLmdhcE1vZGUsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImZvcndhcmRQcm9wc1wiLCBcImNoaWxkcmVuXCIsIFwiY2xhc3NOYW1lXCIsIFwicmVtb3ZlU2Nyb2xsQmFyXCIsIFwiZW5hYmxlZFwiLCBcInNoYXJkc1wiLCBcInNpZGVDYXJcIiwgXCJub0lzb2xhdGlvblwiLCBcImluZXJ0XCIsIFwiYWxsb3dQaW5jaFpvb21cIiwgXCJhc1wiLCBcImdhcE1vZGVcIl0pO1xuICAgIHZhciBTaWRlQ2FyID0gc2lkZUNhcjtcbiAgICB2YXIgY29udGFpbmVyUmVmID0gdXNlTWVyZ2VSZWZzKFtyZWYsIHBhcmVudFJlZl0pO1xuICAgIHZhciBjb250YWluZXJQcm9wcyA9IF9fYXNzaWduKF9fYXNzaWduKHt9LCByZXN0KSwgY2FsbGJhY2tzKTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXG4gICAgICAgIGVuYWJsZWQgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2lkZUNhciwgeyBzaWRlQ2FyOiBlZmZlY3RDYXIsIHJlbW92ZVNjcm9sbEJhcjogcmVtb3ZlU2Nyb2xsQmFyLCBzaGFyZHM6IHNoYXJkcywgbm9Jc29sYXRpb246IG5vSXNvbGF0aW9uLCBpbmVydDogaW5lcnQsIHNldENhbGxiYWNrczogc2V0Q2FsbGJhY2tzLCBhbGxvd1BpbmNoWm9vbTogISFhbGxvd1BpbmNoWm9vbSwgbG9ja1JlZjogcmVmLCBnYXBNb2RlOiBnYXBNb2RlIH0pKSxcbiAgICAgICAgZm9yd2FyZFByb3BzID8gKFJlYWN0LmNsb25lRWxlbWVudChSZWFjdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKSwgX19hc3NpZ24oX19hc3NpZ24oe30sIGNvbnRhaW5lclByb3BzKSwgeyByZWY6IGNvbnRhaW5lclJlZiB9KSkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29udGFpbmVyLCBfX2Fzc2lnbih7fSwgY29udGFpbmVyUHJvcHMsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHJlZjogY29udGFpbmVyUmVmIH0pLCBjaGlsZHJlbikpKSk7XG59KTtcblJlbW92ZVNjcm9sbC5kZWZhdWx0UHJvcHMgPSB7XG4gICAgZW5hYmxlZDogdHJ1ZSxcbiAgICByZW1vdmVTY3JvbGxCYXI6IHRydWUsXG4gICAgaW5lcnQ6IGZhbHNlLFxufTtcblJlbW92ZVNjcm9sbC5jbGFzc05hbWVzID0ge1xuICAgIGZ1bGxXaWR0aDogZnVsbFdpZHRoQ2xhc3NOYW1lLFxuICAgIHplcm9SaWdodDogemVyb1JpZ2h0Q2xhc3NOYW1lLFxufTtcbmV4cG9ydCB7IFJlbW92ZVNjcm9sbCB9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/UI.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js": /*!**************************************************************************!*\ !*** ./node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js ***! \**************************************************************************/ /***/ ((__unused_webpack_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 */ nonPassive: () => (/* binding */ nonPassive)\n/* harmony export */ });\nvar passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n return true;\n },\n });\n // @ts-ignore\n window.addEventListener('test', options, options);\n // @ts-ignore\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\nvar nonPassive = passiveSupported ? { passive: false } : false;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L2FnZ3Jlc2l2ZUNhcHR1cmUuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QztBQUM5QztBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLHNDQUFzQyxpQkFBaUIiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL3JlYWN0LXJlbW92ZS1zY3JvbGwvZGlzdC9lczIwMTUvYWdncmVzaXZlQ2FwdHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcGFzc2l2ZVN1cHBvcnRlZCA9IGZhbHNlO1xuaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgdmFyIG9wdGlvbnMgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdwYXNzaXZlJywge1xuICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcGFzc2l2ZVN1cHBvcnRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndGVzdCcsIG9wdGlvbnMsIG9wdGlvbnMpO1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCd0ZXN0Jywgb3B0aW9ucywgb3B0aW9ucyk7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgcGFzc2l2ZVN1cHBvcnRlZCA9IGZhbHNlO1xuICAgIH1cbn1cbmV4cG9ydCB2YXIgbm9uUGFzc2l2ZSA9IHBhc3NpdmVTdXBwb3J0ZWQgPyB7IHBhc3NpdmU6IGZhbHNlIH0gOiBmYWxzZTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/handleScroll.js": /*!**********************************************************************!*\ !*** ./node_modules/react-remove-scroll/dist/es2015/handleScroll.js ***! \**********************************************************************/ /***/ ((__unused_webpack_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 */ handleScroll: () => (/* binding */ handleScroll),\n/* harmony export */ locationCouldBeScrolled: () => (/* binding */ locationCouldBeScrolled)\n/* harmony export */ });\nvar alwaysContainsScroll = function (node) {\n // textarea will always _contain_ scroll inside self. It only can be hidden\n return node.tagName === 'TEXTAREA';\n};\nvar elementCanBeScrolled = function (node, overflow) {\n if (!(node instanceof Element)) {\n return false;\n }\n var styles = window.getComputedStyle(node);\n return (\n // not-not-scrollable\n styles[overflow] !== 'hidden' &&\n // contains scroll inside self\n !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === 'visible'));\n};\nvar elementCouldBeVScrolled = function (node) { return elementCanBeScrolled(node, 'overflowY'); };\nvar elementCouldBeHScrolled = function (node) { return elementCanBeScrolled(node, 'overflowX'); };\nvar locationCouldBeScrolled = function (axis, node) {\n var ownerDocument = node.ownerDocument;\n var current = node;\n do {\n // Skip over shadow root\n if (typeof ShadowRoot !== 'undefined' && current instanceof ShadowRoot) {\n current = current.host;\n }\n var isScrollable = elementCouldBeScrolled(axis, current);\n if (isScrollable) {\n var _a = getScrollVariables(axis, current), scrollHeight = _a[1], clientHeight = _a[2];\n if (scrollHeight > clientHeight) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== ownerDocument.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nvar handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n if (target instanceof ShadowRoot) {\n target = target.host;\n }\n else {\n target = target.parentNode;\n }\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n // handle epsilon around 0 (non standard zoom levels)\n if (isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScroll) < 1) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScrollTop) < 1) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L2hhbmRsZVNjcm9sbC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRDtBQUNoRCxnREFBZ0Q7QUFDekM7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvcmVhY3QtcmVtb3ZlLXNjcm9sbC9kaXN0L2VzMjAxNS9oYW5kbGVTY3JvbGwuanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGFsd2F5c0NvbnRhaW5zU2Nyb2xsID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAvLyB0ZXh0YXJlYSB3aWxsIGFsd2F5cyBfY29udGFpbl8gc2Nyb2xsIGluc2lkZSBzZWxmLiBJdCBvbmx5IGNhbiBiZSBoaWRkZW5cbiAgICByZXR1cm4gbm9kZS50YWdOYW1lID09PSAnVEVYVEFSRUEnO1xufTtcbnZhciBlbGVtZW50Q2FuQmVTY3JvbGxlZCA9IGZ1bmN0aW9uIChub2RlLCBvdmVyZmxvdykge1xuICAgIGlmICghKG5vZGUgaW5zdGFuY2VvZiBFbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHZhciBzdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKTtcbiAgICByZXR1cm4gKFxuICAgIC8vIG5vdC1ub3Qtc2Nyb2xsYWJsZVxuICAgIHN0eWxlc1tvdmVyZmxvd10gIT09ICdoaWRkZW4nICYmXG4gICAgICAgIC8vIGNvbnRhaW5zIHNjcm9sbCBpbnNpZGUgc2VsZlxuICAgICAgICAhKHN0eWxlcy5vdmVyZmxvd1kgPT09IHN0eWxlcy5vdmVyZmxvd1ggJiYgIWFsd2F5c0NvbnRhaW5zU2Nyb2xsKG5vZGUpICYmIHN0eWxlc1tvdmVyZmxvd10gPT09ICd2aXNpYmxlJykpO1xufTtcbnZhciBlbGVtZW50Q291bGRCZVZTY3JvbGxlZCA9IGZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBlbGVtZW50Q2FuQmVTY3JvbGxlZChub2RlLCAnb3ZlcmZsb3dZJyk7IH07XG52YXIgZWxlbWVudENvdWxkQmVIU2Nyb2xsZWQgPSBmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZWxlbWVudENhbkJlU2Nyb2xsZWQobm9kZSwgJ292ZXJmbG93WCcpOyB9O1xuZXhwb3J0IHZhciBsb2NhdGlvbkNvdWxkQmVTY3JvbGxlZCA9IGZ1bmN0aW9uIChheGlzLCBub2RlKSB7XG4gICAgdmFyIG93bmVyRG9jdW1lbnQgPSBub2RlLm93bmVyRG9jdW1lbnQ7XG4gICAgdmFyIGN1cnJlbnQgPSBub2RlO1xuICAgIGRvIHtcbiAgICAgICAgLy8gU2tpcCBvdmVyIHNoYWRvdyByb290XG4gICAgICAgIGlmICh0eXBlb2YgU2hhZG93Um9vdCAhPT0gJ3VuZGVmaW5lZCcgJiYgY3VycmVudCBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QpIHtcbiAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lmhvc3Q7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGlzU2Nyb2xsYWJsZSA9IGVsZW1lbnRDb3VsZEJlU2Nyb2xsZWQoYXhpcywgY3VycmVudCk7XG4gICAgICAgIGlmIChpc1Njcm9sbGFibGUpIHtcbiAgICAgICAgICAgIHZhciBfYSA9IGdldFNjcm9sbFZhcmlhYmxlcyhheGlzLCBjdXJyZW50KSwgc2Nyb2xsSGVpZ2h0ID0gX2FbMV0sIGNsaWVudEhlaWdodCA9IF9hWzJdO1xuICAgICAgICAgICAgaWYgKHNjcm9sbEhlaWdodCA+IGNsaWVudEhlaWdodCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LnBhcmVudE5vZGU7XG4gICAgfSB3aGlsZSAoY3VycmVudCAmJiBjdXJyZW50ICE9PSBvd25lckRvY3VtZW50LmJvZHkpO1xuICAgIHJldHVybiBmYWxzZTtcbn07XG52YXIgZ2V0VlNjcm9sbFZhcmlhYmxlcyA9IGZ1bmN0aW9uIChfYSkge1xuICAgIHZhciBzY3JvbGxUb3AgPSBfYS5zY3JvbGxUb3AsIHNjcm9sbEhlaWdodCA9IF9hLnNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0ID0gX2EuY2xpZW50SGVpZ2h0O1xuICAgIHJldHVybiBbXG4gICAgICAgIHNjcm9sbFRvcCxcbiAgICAgICAgc2Nyb2xsSGVpZ2h0LFxuICAgICAgICBjbGllbnRIZWlnaHQsXG4gICAgXTtcbn07XG52YXIgZ2V0SFNjcm9sbFZhcmlhYmxlcyA9IGZ1bmN0aW9uIChfYSkge1xuICAgIHZhciBzY3JvbGxMZWZ0ID0gX2Euc2Nyb2xsTGVmdCwgc2Nyb2xsV2lkdGggPSBfYS5zY3JvbGxXaWR0aCwgY2xpZW50V2lkdGggPSBfYS5jbGllbnRXaWR0aDtcbiAgICByZXR1cm4gW1xuICAgICAgICBzY3JvbGxMZWZ0LFxuICAgICAgICBzY3JvbGxXaWR0aCxcbiAgICAgICAgY2xpZW50V2lkdGgsXG4gICAgXTtcbn07XG52YXIgZWxlbWVudENvdWxkQmVTY3JvbGxlZCA9IGZ1bmN0aW9uIChheGlzLCBub2RlKSB7XG4gICAgcmV0dXJuIGF4aXMgPT09ICd2JyA/IGVsZW1lbnRDb3VsZEJlVlNjcm9sbGVkKG5vZGUpIDogZWxlbWVudENvdWxkQmVIU2Nyb2xsZWQobm9kZSk7XG59O1xudmFyIGdldFNjcm9sbFZhcmlhYmxlcyA9IGZ1bmN0aW9uIChheGlzLCBub2RlKSB7XG4gICAgcmV0dXJuIGF4aXMgPT09ICd2JyA/IGdldFZTY3JvbGxWYXJpYWJsZXMobm9kZSkgOiBnZXRIU2Nyb2xsVmFyaWFibGVzKG5vZGUpO1xufTtcbnZhciBnZXREaXJlY3Rpb25GYWN0b3IgPSBmdW5jdGlvbiAoYXhpcywgZGlyZWN0aW9uKSB7XG4gICAgLyoqXG4gICAgICogSWYgdGhlIGVsZW1lbnQncyBkaXJlY3Rpb24gaXMgcnRsIChyaWdodC10by1sZWZ0KSwgdGhlbiBzY3JvbGxMZWZ0IGlzIDAgd2hlbiB0aGUgc2Nyb2xsYmFyIGlzIGF0IGl0cyByaWdodG1vc3QgcG9zaXRpb24sXG4gICAgICogYW5kIHRoZW4gaW5jcmVhc2luZ2x5IG5lZ2F0aXZlIGFzIHlvdSBzY3JvbGwgdG93YXJkcyB0aGUgZW5kIG9mIHRoZSBjb250ZW50LlxuICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0VsZW1lbnQvc2Nyb2xsTGVmdFxuICAgICAqL1xuICAgIHJldHVybiBheGlzID09PSAnaCcgJiYgZGlyZWN0aW9uID09PSAncnRsJyA/IC0xIDogMTtcbn07XG5leHBvcnQgdmFyIGhhbmRsZVNjcm9sbCA9IGZ1bmN0aW9uIChheGlzLCBlbmRUYXJnZXQsIGV2ZW50LCBzb3VyY2VEZWx0YSwgbm9PdmVyc2Nyb2xsKSB7XG4gICAgdmFyIGRpcmVjdGlvbkZhY3RvciA9IGdldERpcmVjdGlvbkZhY3RvcihheGlzLCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbmRUYXJnZXQpLmRpcmVjdGlvbik7XG4gICAgdmFyIGRlbHRhID0gZGlyZWN0aW9uRmFjdG9yICogc291cmNlRGVsdGE7XG4gICAgLy8gZmluZCBzY3JvbGxhYmxlIHRhcmdldFxuICAgIHZhciB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgdmFyIHRhcmdldEluTG9jayA9IGVuZFRhcmdldC5jb250YWlucyh0YXJnZXQpO1xuICAgIHZhciBzaG91bGRDYW5jZWxTY3JvbGwgPSBmYWxzZTtcbiAgICB2YXIgaXNEZWx0YVBvc2l0aXZlID0gZGVsdGEgPiAwO1xuICAgIHZhciBhdmFpbGFibGVTY3JvbGwgPSAwO1xuICAgIHZhciBhdmFpbGFibGVTY3JvbGxUb3AgPSAwO1xuICAgIGRvIHtcbiAgICAgICAgdmFyIF9hID0gZ2V0U2Nyb2xsVmFyaWFibGVzKGF4aXMsIHRhcmdldCksIHBvc2l0aW9uID0gX2FbMF0sIHNjcm9sbF8xID0gX2FbMV0sIGNhcGFjaXR5ID0gX2FbMl07XG4gICAgICAgIHZhciBlbGVtZW50U2Nyb2xsID0gc2Nyb2xsXzEgLSBjYXBhY2l0eSAtIGRpcmVjdGlvbkZhY3RvciAqIHBvc2l0aW9uO1xuICAgICAgICBpZiAocG9zaXRpb24gfHwgZWxlbWVudFNjcm9sbCkge1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRDb3VsZEJlU2Nyb2xsZWQoYXhpcywgdGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgIGF2YWlsYWJsZVNjcm9sbCArPSBlbGVtZW50U2Nyb2xsO1xuICAgICAgICAgICAgICAgIGF2YWlsYWJsZVNjcm9sbFRvcCArPSBwb3NpdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgU2hhZG93Um9vdCkge1xuICAgICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0Lmhvc3Q7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0YXJnZXQgPSB0YXJnZXQucGFyZW50Tm9kZTtcbiAgICAgICAgfVxuICAgIH0gd2hpbGUgKFxuICAgIC8vIHBvcnRhbGVkIGNvbnRlbnRcbiAgICAoIXRhcmdldEluTG9jayAmJiB0YXJnZXQgIT09IGRvY3VtZW50LmJvZHkpIHx8XG4gICAgICAgIC8vIHNlbGYgY29udGVudFxuICAgICAgICAodGFyZ2V0SW5Mb2NrICYmIChlbmRUYXJnZXQuY29udGFpbnModGFyZ2V0KSB8fCBlbmRUYXJnZXQgPT09IHRhcmdldCkpKTtcbiAgICAvLyBoYW5kbGUgZXBzaWxvbiBhcm91bmQgMCAobm9uIHN0YW5kYXJkIHpvb20gbGV2ZWxzKVxuICAgIGlmIChpc0RlbHRhUG9zaXRpdmUgJiZcbiAgICAgICAgKChub092ZXJzY3JvbGwgJiYgTWF0aC5hYnMoYXZhaWxhYmxlU2Nyb2xsKSA8IDEpIHx8ICghbm9PdmVyc2Nyb2xsICYmIGRlbHRhID4gYXZhaWxhYmxlU2Nyb2xsKSkpIHtcbiAgICAgICAgc2hvdWxkQ2FuY2VsU2Nyb2xsID0gdHJ1ZTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIWlzRGVsdGFQb3NpdGl2ZSAmJlxuICAgICAgICAoKG5vT3ZlcnNjcm9sbCAmJiBNYXRoLmFicyhhdmFpbGFibGVTY3JvbGxUb3ApIDwgMSkgfHwgKCFub092ZXJzY3JvbGwgJiYgLWRlbHRhID4gYXZhaWxhYmxlU2Nyb2xsVG9wKSkpIHtcbiAgICAgICAgc2hvdWxkQ2FuY2VsU2Nyb2xsID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHNob3VsZENhbmNlbFNjcm9sbDtcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/handleScroll.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/medium.js": /*!****************************************************************!*\ !*** ./node_modules/react-remove-scroll/dist/es2015/medium.js ***! \****************************************************************/ /***/ ((__unused_webpack_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 */ effectCar: () => (/* binding */ effectCar)\n/* harmony export */ });\n/* harmony import */ var use_sidecar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! use-sidecar */ \"(app-pages-browser)/./node_modules/use-sidecar/dist/es2015/medium.js\");\n\nvar effectCar = (0,use_sidecar__WEBPACK_IMPORTED_MODULE_0__.createSidecarMedium)();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L21lZGl1bS5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFrRDtBQUMzQyxnQkFBZ0IsZ0VBQW1CIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L21lZGl1bS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVTaWRlY2FyTWVkaXVtIH0gZnJvbSAndXNlLXNpZGVjYXInO1xuZXhwb3J0IHZhciBlZmZlY3RDYXIgPSBjcmVhdGVTaWRlY2FyTWVkaXVtKCk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/medium.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/sidecar.js": /*!*****************************************************************!*\ !*** ./node_modules/react-remove-scroll/dist/es2015/sidecar.js ***! \*****************************************************************/ /***/ ((__unused_webpack_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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var use_sidecar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! use-sidecar */ \"(app-pages-browser)/./node_modules/use-sidecar/dist/es2015/exports.js\");\n/* harmony import */ var _SideEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SideEffect */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/SideEffect.js\");\n/* harmony import */ var _medium__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./medium */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/medium.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,use_sidecar__WEBPACK_IMPORTED_MODULE_0__.exportSidecar)(_medium__WEBPACK_IMPORTED_MODULE_1__.effectCar, _SideEffect__WEBPACK_IMPORTED_MODULE_2__.RemoveScrollSideCar));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L3NpZGVjYXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUE0QztBQUNPO0FBQ2Q7QUFDckMsaUVBQWUsMERBQWEsQ0FBQyw4Q0FBUyxFQUFFLDREQUFtQixDQUFDLEVBQUMiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL3JlYWN0LXJlbW92ZS1zY3JvbGwvZGlzdC9lczIwMTUvc2lkZWNhci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleHBvcnRTaWRlY2FyIH0gZnJvbSAndXNlLXNpZGVjYXInO1xuaW1wb3J0IHsgUmVtb3ZlU2Nyb2xsU2lkZUNhciB9IGZyb20gJy4vU2lkZUVmZmVjdCc7XG5pbXBvcnQgeyBlZmZlY3RDYXIgfSBmcm9tICcuL21lZGl1bSc7XG5leHBvcnQgZGVmYXVsdCBleHBvcnRTaWRlY2FyKGVmZmVjdENhciwgUmVtb3ZlU2Nyb2xsU2lkZUNhcik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/sidecar.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/component.js": /*!*********************************************************************!*\ !*** ./node_modules/react-style-singleton/dist/es2015/component.js ***! \*********************************************************************/ /***/ ((__unused_webpack_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 */ styleSingleton: () => (/* binding */ styleSingleton)\n/* harmony export */ });\n/* harmony import */ var _hook__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hook */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/hook.js\");\n\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nvar styleSingleton = function () {\n var useStyle = (0,_hook__WEBPACK_IMPORTED_MODULE_0__.styleHookSingleton)();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zdHlsZS1zaW5nbGV0b24vZGlzdC9lczIwMTUvY29tcG9uZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTRDO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1AsbUJBQW1CLHlEQUFrQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvcmVhY3Qtc3R5bGUtc2luZ2xldG9uL2Rpc3QvZXMyMDE1L2NvbXBvbmVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdHlsZUhvb2tTaW5nbGV0b24gfSBmcm9tICcuL2hvb2snO1xuLyoqXG4gKiBjcmVhdGUgYSBDb21wb25lbnQgdG8gYWRkIHN0eWxlcyBvbiBkZW1hbmRcbiAqIC0gc3R5bGVzIGFyZSBhZGRlZCB3aGVuIGZpcnN0IGluc3RhbmNlIGlzIG1vdW50ZWRcbiAqIC0gc3R5bGVzIGFyZSByZW1vdmVkIHdoZW4gdGhlIGxhc3QgaW5zdGFuY2UgaXMgdW5tb3VudGVkXG4gKiAtIGNoYW5naW5nIHN0eWxlcyBpbiBydW50aW1lIGRvZXMgbm90aGluZyB1bmxlc3MgZHluYW1pYyBpcyBzZXQuIEJ1dCB3aXRoIG11bHRpcGxlIGNvbXBvbmVudHMgdGhhdCBjYW4gbGVhZCB0byB0aGUgdW5kZWZpbmVkIGJlaGF2aW9yXG4gKi9cbmV4cG9ydCB2YXIgc3R5bGVTaW5nbGV0b24gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHVzZVN0eWxlID0gc3R5bGVIb29rU2luZ2xldG9uKCk7XG4gICAgdmFyIFNoZWV0ID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgIHZhciBzdHlsZXMgPSBfYS5zdHlsZXMsIGR5bmFtaWMgPSBfYS5keW5hbWljO1xuICAgICAgICB1c2VTdHlsZShzdHlsZXMsIGR5bmFtaWMpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICAgIHJldHVybiBTaGVldDtcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/component.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/hook.js": /*!****************************************************************!*\ !*** ./node_modules/react-style-singleton/dist/es2015/hook.js ***! \****************************************************************/ /***/ ((__unused_webpack_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 */ styleHookSingleton: () => (/* binding */ styleHookSingleton)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _singleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./singleton */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/singleton.js\");\n\n\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nvar styleHookSingleton = function () {\n var sheet = (0,_singleton__WEBPACK_IMPORTED_MODULE_1__.stylesheetSingleton)();\n return function (styles, isDynamic) {\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zdHlsZS1zaW5nbGV0b24vZGlzdC9lczIwMTUvaG9vay5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQStCO0FBQ21CO0FBQ2xEO0FBQ0E7QUFDQSxTQUFTLHNCQUFzQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDTztBQUNQLGdCQUFnQiwrREFBbUI7QUFDbkM7QUFDQSxRQUFRLDRDQUFlO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL3JlYWN0LXN0eWxlLXNpbmdsZXRvbi9kaXN0L2VzMjAxNS9ob29rLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHN0eWxlc2hlZXRTaW5nbGV0b24gfSBmcm9tICcuL3NpbmdsZXRvbic7XG4vKipcbiAqIGNyZWF0ZXMgYSBob29rIHRvIGNvbnRyb2wgc3R5bGUgc2luZ2xldG9uXG4gKiBAc2VlIHtAbGluayBzdHlsZVNpbmdsZXRvbn0gZm9yIGEgc2FmZXIgY29tcG9uZW50IHZlcnNpb25cbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHVzZVN0eWxlID0gc3R5bGVIb29rU2luZ2xldG9uKCk7XG4gKiAvLy9cbiAqIHVzZVN0eWxlKCdib2R5IHsgb3ZlcmZsb3c6IGhpZGRlbn0nKTtcbiAqL1xuZXhwb3J0IHZhciBzdHlsZUhvb2tTaW5nbGV0b24gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHNoZWV0ID0gc3R5bGVzaGVldFNpbmdsZXRvbigpO1xuICAgIHJldHVybiBmdW5jdGlvbiAoc3R5bGVzLCBpc0R5bmFtaWMpIHtcbiAgICAgICAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHNoZWV0LmFkZChzdHlsZXMpO1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzaGVldC5yZW1vdmUoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sIFtzdHlsZXMgJiYgaXNEeW5hbWljXSk7XG4gICAgfTtcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/hook.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/index.js": /*!*****************************************************************!*\ !*** ./node_modules/react-style-singleton/dist/es2015/index.js ***! \*****************************************************************/ /***/ ((__unused_webpack_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 */ styleHookSingleton: () => (/* reexport safe */ _hook__WEBPACK_IMPORTED_MODULE_2__.styleHookSingleton),\n/* harmony export */ styleSingleton: () => (/* reexport safe */ _component__WEBPACK_IMPORTED_MODULE_0__.styleSingleton),\n/* harmony export */ stylesheetSingleton: () => (/* reexport safe */ _singleton__WEBPACK_IMPORTED_MODULE_1__.stylesheetSingleton)\n/* harmony export */ });\n/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./component */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/component.js\");\n/* harmony import */ var _singleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./singleton */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/singleton.js\");\n/* harmony import */ var _hook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hook */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/hook.js\");\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zdHlsZS1zaW5nbGV0b24vZGlzdC9lczIwMTUvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQTZDO0FBQ0s7QUFDTiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvcmVhY3Qtc3R5bGUtc2luZ2xldG9uL2Rpc3QvZXMyMDE1L2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHN0eWxlU2luZ2xldG9uIH0gZnJvbSAnLi9jb21wb25lbnQnO1xuZXhwb3J0IHsgc3R5bGVzaGVldFNpbmdsZXRvbiB9IGZyb20gJy4vc2luZ2xldG9uJztcbmV4cG9ydCB7IHN0eWxlSG9va1NpbmdsZXRvbiB9IGZyb20gJy4vaG9vayc7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/singleton.js": /*!*********************************************************************!*\ !*** ./node_modules/react-style-singleton/dist/es2015/singleton.js ***! \*********************************************************************/ /***/ ((__unused_webpack_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 */ stylesheetSingleton: () => (/* binding */ stylesheetSingleton)\n/* harmony export */ });\n/* harmony import */ var get_nonce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! get-nonce */ \"(app-pages-browser)/./node_modules/get-nonce/dist/es2015/index.js\");\n\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = (0,get_nonce__WEBPACK_IMPORTED_MODULE_0__.getNonce)();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nvar stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zdHlsZS1zaW5nbGV0b24vZGlzdC9lczIwMTUvc2luZ2xldG9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbURBQVE7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL3JlYWN0LXN0eWxlLXNpbmdsZXRvbi9kaXN0L2VzMjAxNS9zaW5nbGV0b24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0Tm9uY2UgfSBmcm9tICdnZXQtbm9uY2UnO1xuZnVuY3Rpb24gbWFrZVN0eWxlVGFnKCkge1xuICAgIGlmICghZG9jdW1lbnQpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHZhciB0YWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgIHRhZy50eXBlID0gJ3RleHQvY3NzJztcbiAgICB2YXIgbm9uY2UgPSBnZXROb25jZSgpO1xuICAgIGlmIChub25jZSkge1xuICAgICAgICB0YWcuc2V0QXR0cmlidXRlKCdub25jZScsIG5vbmNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRhZztcbn1cbmZ1bmN0aW9uIGluamVjdFN0eWxlcyh0YWcsIGNzcykge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBpZiAodGFnLnN0eWxlU2hlZXQpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB0YWcuc3R5bGVTaGVldC5jc3NUZXh0ID0gY3NzO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGFnLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcykpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGluc2VydFN0eWxlVGFnKHRhZykge1xuICAgIHZhciBoZWFkID0gZG9jdW1lbnQuaGVhZCB8fCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xuICAgIGhlYWQuYXBwZW5kQ2hpbGQodGFnKTtcbn1cbmV4cG9ydCB2YXIgc3R5bGVzaGVldFNpbmdsZXRvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgY291bnRlciA9IDA7XG4gICAgdmFyIHN0eWxlc2hlZXQgPSBudWxsO1xuICAgIHJldHVybiB7XG4gICAgICAgIGFkZDogZnVuY3Rpb24gKHN0eWxlKSB7XG4gICAgICAgICAgICBpZiAoY291bnRlciA9PSAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKChzdHlsZXNoZWV0ID0gbWFrZVN0eWxlVGFnKCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGluamVjdFN0eWxlcyhzdHlsZXNoZWV0LCBzdHlsZSk7XG4gICAgICAgICAgICAgICAgICAgIGluc2VydFN0eWxlVGFnKHN0eWxlc2hlZXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvdW50ZXIrKztcbiAgICAgICAgfSxcbiAgICAgICAgcmVtb3ZlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBjb3VudGVyLS07XG4gICAgICAgICAgICBpZiAoIWNvdW50ZXIgJiYgc3R5bGVzaGVldCkge1xuICAgICAgICAgICAgICAgIHN0eWxlc2hlZXQucGFyZW50Tm9kZSAmJiBzdHlsZXNoZWV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGVzaGVldCk7XG4gICAgICAgICAgICAgICAgc3R5bGVzaGVldCA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/singleton.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/styled-jsx/dist/index/index.js": /*!*****************************************************!*\ !*** ./node_modules/styled-jsx/dist/index/index.js ***! \*****************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("/* provided dependency */ var process = __webpack_require__(/*! process */ \"(app-pages-browser)/./node_modules/next/dist/build/polyfills/process.js\");\n\nvar _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$();\n__webpack_require__(/*! client-only */ \"(app-pages-browser)/./node_modules/next/dist/compiled/client-only/index.js\");\nvar React = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\nfunction _interopDefaultLegacy(e) {\n return e && typeof e === 'object' && 'default' in e ? e : {\n 'default': e\n };\n}\nvar React__default = /*#__PURE__*/ _interopDefaultLegacy(React);\n_c = React__default;\n/*\nBased on Glamor's sheet\nhttps://github.com/threepointone/glamor/blob/667b480d31b3721a905021b26e1290ce92ca2879/src/sheet.js\n*/ function _defineProperties(target, props) {\n for(var i = 0; i < props.length; i++){\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nvar isProd = typeof process !== \"undefined\" && process.env && \"development\" === \"production\";\nvar isString = function(o) {\n return Object.prototype.toString.call(o) === \"[object String]\";\n};\nvar StyleSheet = /*#__PURE__*/ function() {\n function StyleSheet(param) {\n var ref = param === void 0 ? {} : param, _name = ref.name, name = _name === void 0 ? \"stylesheet\" : _name, _optimizeForSpeed = ref.optimizeForSpeed, optimizeForSpeed = _optimizeForSpeed === void 0 ? isProd : _optimizeForSpeed;\n invariant$1(isString(name), \"`name` must be a string\");\n this._name = name;\n this._deletedRulePlaceholder = \"#\" + name + \"-deleted-rule____{}\";\n invariant$1(typeof optimizeForSpeed === \"boolean\", \"`optimizeForSpeed` must be a boolean\");\n this._optimizeForSpeed = optimizeForSpeed;\n this._serverSheet = undefined;\n this._tags = [];\n this._injected = false;\n this._rulesCount = 0;\n var node = typeof window !== \"undefined\" && document.querySelector('meta[property=\"csp-nonce\"]');\n this._nonce = node ? node.getAttribute(\"content\") : null;\n }\n var _proto = StyleSheet.prototype;\n _proto.setOptimizeForSpeed = function setOptimizeForSpeed(bool) {\n invariant$1(typeof bool === \"boolean\", \"`setOptimizeForSpeed` accepts a boolean\");\n invariant$1(this._rulesCount === 0, \"optimizeForSpeed cannot be when rules have already been inserted\");\n this.flush();\n this._optimizeForSpeed = bool;\n this.inject();\n };\n _proto.isOptimizeForSpeed = function isOptimizeForSpeed() {\n return this._optimizeForSpeed;\n };\n _proto.inject = function inject() {\n var _this = this;\n invariant$1(!this._injected, \"sheet already injected\");\n this._injected = true;\n if (typeof window !== \"undefined\" && this._optimizeForSpeed) {\n this._tags[0] = this.makeStyleTag(this._name);\n this._optimizeForSpeed = \"insertRule\" in this.getSheet();\n if (!this._optimizeForSpeed) {\n if (!isProd) {\n console.warn(\"StyleSheet: optimizeForSpeed mode not supported falling back to standard mode.\");\n }\n this.flush();\n this._injected = true;\n }\n return;\n }\n this._serverSheet = {\n cssRules: [],\n insertRule: function(rule, index) {\n if (typeof index === \"number\") {\n _this._serverSheet.cssRules[index] = {\n cssText: rule\n };\n } else {\n _this._serverSheet.cssRules.push({\n cssText: rule\n });\n }\n return index;\n },\n deleteRule: function(index) {\n _this._serverSheet.cssRules[index] = null;\n }\n };\n };\n _proto.getSheetForTag = function getSheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n }\n // this weirdness brought to you by firefox\n for(var i = 0; i < document.styleSheets.length; i++){\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n }\n };\n _proto.getSheet = function getSheet() {\n return this.getSheetForTag(this._tags[this._tags.length - 1]);\n };\n _proto.insertRule = function insertRule(rule, index) {\n invariant$1(isString(rule), \"`insertRule` accepts only strings\");\n if (typeof window === \"undefined\") {\n if (typeof index !== \"number\") {\n index = this._serverSheet.cssRules.length;\n }\n this._serverSheet.insertRule(rule, index);\n return this._rulesCount++;\n }\n if (this._optimizeForSpeed) {\n var sheet = this.getSheet();\n if (typeof index !== \"number\") {\n index = sheet.cssRules.length;\n }\n // this weirdness for perf, and chrome's weird bug\n // https://stackoverflow.com/questions/20007992/chrome-suddenly-stopped-accepting-insertrule\n try {\n sheet.insertRule(rule, index);\n } catch (error) {\n if (!isProd) {\n console.warn(\"StyleSheet: illegal rule: \\n\\n\" + rule + \"\\n\\nSee https://stackoverflow.com/q/20007992 for more info\");\n }\n return -1;\n }\n } else {\n var insertionPoint = this._tags[index];\n this._tags.push(this.makeStyleTag(this._name, rule, insertionPoint));\n }\n return this._rulesCount++;\n };\n _proto.replaceRule = function replaceRule(index, rule) {\n if (this._optimizeForSpeed || typeof window === \"undefined\") {\n var sheet = typeof window !== \"undefined\" ? this.getSheet() : this._serverSheet;\n if (!rule.trim()) {\n rule = this._deletedRulePlaceholder;\n }\n if (!sheet.cssRules[index]) {\n // @TBD Should we throw an error?\n return index;\n }\n sheet.deleteRule(index);\n try {\n sheet.insertRule(rule, index);\n } catch (error) {\n if (!isProd) {\n console.warn(\"StyleSheet: illegal rule: \\n\\n\" + rule + \"\\n\\nSee https://stackoverflow.com/q/20007992 for more info\");\n }\n // In order to preserve the indices we insert a deleteRulePlaceholder\n sheet.insertRule(this._deletedRulePlaceholder, index);\n }\n } else {\n var tag = this._tags[index];\n invariant$1(tag, \"old rule at index `\" + index + \"` not found\");\n tag.textContent = rule;\n }\n return index;\n };\n _proto.deleteRule = function deleteRule(index) {\n if (typeof window === \"undefined\") {\n this._serverSheet.deleteRule(index);\n return;\n }\n if (this._optimizeForSpeed) {\n this.replaceRule(index, \"\");\n } else {\n var tag = this._tags[index];\n invariant$1(tag, \"rule at index `\" + index + \"` not found\");\n tag.parentNode.removeChild(tag);\n this._tags[index] = null;\n }\n };\n _proto.flush = function flush() {\n this._injected = false;\n this._rulesCount = 0;\n if (typeof window !== \"undefined\") {\n this._tags.forEach(function(tag) {\n return tag && tag.parentNode.removeChild(tag);\n });\n this._tags = [];\n } else {\n // simpler on server\n this._serverSheet.cssRules = [];\n }\n };\n _proto.cssRules = function cssRules() {\n var _this = this;\n if (typeof window === \"undefined\") {\n return this._serverSheet.cssRules;\n }\n return this._tags.reduce(function(rules, tag) {\n if (tag) {\n rules = rules.concat(Array.prototype.map.call(_this.getSheetForTag(tag).cssRules, function(rule) {\n return rule.cssText === _this._deletedRulePlaceholder ? null : rule;\n }));\n } else {\n rules.push(null);\n }\n return rules;\n }, []);\n };\n _proto.makeStyleTag = function makeStyleTag(name, cssString, relativeToTag) {\n if (cssString) {\n invariant$1(isString(cssString), \"makeStyleTag accepts only strings as second parameter\");\n }\n var tag = document.createElement(\"style\");\n if (this._nonce) tag.setAttribute(\"nonce\", this._nonce);\n tag.type = \"text/css\";\n tag.setAttribute(\"data-\" + name, \"\");\n if (cssString) {\n tag.appendChild(document.createTextNode(cssString));\n }\n var head = document.head || document.getElementsByTagName(\"head\")[0];\n if (relativeToTag) {\n head.insertBefore(tag, relativeToTag);\n } else {\n head.appendChild(tag);\n }\n return tag;\n };\n _createClass(StyleSheet, [\n {\n key: \"length\",\n get: function get() {\n return this._rulesCount;\n }\n }\n ]);\n return StyleSheet;\n}();\nfunction invariant$1(condition, message) {\n if (!condition) {\n throw new Error(\"StyleSheet: \" + message + \".\");\n }\n}\nfunction hash(str) {\n var _$hash = 5381, i = str.length;\n while(i){\n _$hash = _$hash * 33 ^ str.charCodeAt(--i);\n }\n /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed\n * integers. Since we want the results to be always positive, convert the\n * signed int to an unsigned by doing an unsigned bitshift. */ return _$hash >>> 0;\n}\nvar stringHash = hash;\nvar sanitize = function(rule) {\n return rule.replace(/\\/style/gi, \"\\\\/style\");\n};\nvar cache = {};\n/**\n * computeId\n *\n * Compute and memoize a jsx id from a basedId and optionally props.\n */ function computeId(baseId, props) {\n if (!props) {\n return \"jsx-\" + baseId;\n }\n var propsToString = String(props);\n var key = baseId + propsToString;\n if (!cache[key]) {\n cache[key] = \"jsx-\" + stringHash(baseId + \"-\" + propsToString);\n }\n return cache[key];\n}\n/**\n * computeSelector\n *\n * Compute and memoize dynamic selectors.\n */ function computeSelector(id, css) {\n var selectoPlaceholderRegexp = /__jsx-style-dynamic-selector/g;\n // Sanitize SSR-ed CSS.\n // Client side code doesn't need to be sanitized since we use\n // document.createTextNode (dev) and the CSSOM api sheet.insertRule (prod).\n if (typeof window === \"undefined\") {\n css = sanitize(css);\n }\n var idcss = id + css;\n if (!cache[idcss]) {\n cache[idcss] = css.replace(selectoPlaceholderRegexp, id);\n }\n return cache[idcss];\n}\nfunction mapRulesToStyle(cssRules, options) {\n if (options === void 0) options = {};\n return cssRules.map(function(args) {\n var id = args[0];\n var css = args[1];\n return /*#__PURE__*/ React__default[\"default\"].createElement(\"style\", {\n id: \"__\" + id,\n // Avoid warnings upon render with a key\n key: \"__\" + id,\n nonce: options.nonce ? options.nonce : undefined,\n dangerouslySetInnerHTML: {\n __html: css\n }\n });\n });\n}\nvar StyleSheetRegistry = /*#__PURE__*/ function() {\n function StyleSheetRegistry(param) {\n var ref = param === void 0 ? {} : param, _styleSheet = ref.styleSheet, styleSheet = _styleSheet === void 0 ? null : _styleSheet, _optimizeForSpeed = ref.optimizeForSpeed, optimizeForSpeed = _optimizeForSpeed === void 0 ? false : _optimizeForSpeed;\n this._sheet = styleSheet || new StyleSheet({\n name: \"styled-jsx\",\n optimizeForSpeed: optimizeForSpeed\n });\n this._sheet.inject();\n if (styleSheet && typeof optimizeForSpeed === \"boolean\") {\n this._sheet.setOptimizeForSpeed(optimizeForSpeed);\n this._optimizeForSpeed = this._sheet.isOptimizeForSpeed();\n }\n this._fromServer = undefined;\n this._indices = {};\n this._instancesCounts = {};\n }\n var _proto = StyleSheetRegistry.prototype;\n _proto.add = function add(props) {\n var _this = this;\n if (undefined === this._optimizeForSpeed) {\n this._optimizeForSpeed = Array.isArray(props.children);\n this._sheet.setOptimizeForSpeed(this._optimizeForSpeed);\n this._optimizeForSpeed = this._sheet.isOptimizeForSpeed();\n }\n if (typeof window !== \"undefined\" && !this._fromServer) {\n this._fromServer = this.selectFromServer();\n this._instancesCounts = Object.keys(this._fromServer).reduce(function(acc, tagName) {\n acc[tagName] = 0;\n return acc;\n }, {});\n }\n var ref = this.getIdAndRules(props), styleId = ref.styleId, rules = ref.rules;\n // Deduping: just increase the instances count.\n if (styleId in this._instancesCounts) {\n this._instancesCounts[styleId] += 1;\n return;\n }\n var indices = rules.map(function(rule) {\n return _this._sheet.insertRule(rule);\n }) // Filter out invalid rules\n .filter(function(index) {\n return index !== -1;\n });\n this._indices[styleId] = indices;\n this._instancesCounts[styleId] = 1;\n };\n _proto.remove = function remove(props) {\n var _this = this;\n var styleId = this.getIdAndRules(props).styleId;\n invariant(styleId in this._instancesCounts, \"styleId: `\" + styleId + \"` not found\");\n this._instancesCounts[styleId] -= 1;\n if (this._instancesCounts[styleId] < 1) {\n var tagFromServer = this._fromServer && this._fromServer[styleId];\n if (tagFromServer) {\n tagFromServer.parentNode.removeChild(tagFromServer);\n delete this._fromServer[styleId];\n } else {\n this._indices[styleId].forEach(function(index) {\n return _this._sheet.deleteRule(index);\n });\n delete this._indices[styleId];\n }\n delete this._instancesCounts[styleId];\n }\n };\n _proto.update = function update(props, nextProps) {\n this.add(nextProps);\n this.remove(props);\n };\n _proto.flush = function flush() {\n this._sheet.flush();\n this._sheet.inject();\n this._fromServer = undefined;\n this._indices = {};\n this._instancesCounts = {};\n };\n _proto.cssRules = function cssRules() {\n var _this = this;\n var fromServer = this._fromServer ? Object.keys(this._fromServer).map(function(styleId) {\n return [\n styleId,\n _this._fromServer[styleId]\n ];\n }) : [];\n var cssRules = this._sheet.cssRules();\n return fromServer.concat(Object.keys(this._indices).map(function(styleId) {\n return [\n styleId,\n _this._indices[styleId].map(function(index) {\n return cssRules[index].cssText;\n }).join(_this._optimizeForSpeed ? \"\" : \"\\n\")\n ];\n }) // filter out empty rules\n .filter(function(rule) {\n return Boolean(rule[1]);\n }));\n };\n _proto.styles = function styles(options) {\n return mapRulesToStyle(this.cssRules(), options);\n };\n _proto.getIdAndRules = function getIdAndRules(props) {\n var css = props.children, dynamic = props.dynamic, id = props.id;\n if (dynamic) {\n var styleId = computeId(id, dynamic);\n return {\n styleId: styleId,\n rules: Array.isArray(css) ? css.map(function(rule) {\n return computeSelector(styleId, rule);\n }) : [\n computeSelector(styleId, css)\n ]\n };\n }\n return {\n styleId: computeId(id),\n rules: Array.isArray(css) ? css : [\n css\n ]\n };\n };\n /**\n * selectFromServer\n *\n * Collects style tags from the document with id __jsx-XXX\n */ _proto.selectFromServer = function selectFromServer() {\n var elements = Array.prototype.slice.call(document.querySelectorAll('[id^=\"__jsx-\"]'));\n return elements.reduce(function(acc, element) {\n var id = element.id.slice(2);\n acc[id] = element;\n return acc;\n }, {});\n };\n return StyleSheetRegistry;\n}();\nfunction invariant(condition, message) {\n if (!condition) {\n throw new Error(\"StyleSheetRegistry: \" + message + \".\");\n }\n}\nvar StyleSheetContext = /*#__PURE__*/ React.createContext(null);\nStyleSheetContext.displayName = \"StyleSheetContext\";\nfunction createStyleRegistry() {\n return new StyleSheetRegistry();\n}\nfunction StyleRegistry(param) {\n _s();\n var configuredRegistry = param.registry, children = param.children;\n var rootRegistry = React.useContext(StyleSheetContext);\n var ref = React.useState({\n \"StyleRegistry.useState[ref]\": function() {\n return rootRegistry || configuredRegistry || createStyleRegistry();\n }\n }[\"StyleRegistry.useState[ref]\"]), registry = ref[0];\n return /*#__PURE__*/ React__default[\"default\"].createElement(StyleSheetContext.Provider, {\n value: registry\n }, children);\n}\n_s(StyleRegistry, \"F6PIZFsaWgcE6rBNmd+Zkq3zRoY=\");\n_c1 = StyleRegistry;\nfunction useStyleRegistry() {\n _s1();\n return React.useContext(StyleSheetContext);\n}\n_s1(useStyleRegistry, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\n// Opt-into the new `useInsertionEffect` API in React 18, fallback to `useLayoutEffect`.\n// https://github.com/reactwg/react-18/discussions/110\nvar useInsertionEffect = React__default[\"default\"].useInsertionEffect || React__default[\"default\"].useLayoutEffect;\nvar defaultRegistry = typeof window !== \"undefined\" ? createStyleRegistry() : undefined;\nfunction JSXStyle(props) {\n _s2();\n var registry = defaultRegistry ? defaultRegistry : useStyleRegistry();\n // If `registry` does not exist, we do nothing here.\n if (!registry) {\n return null;\n }\n if (typeof window === \"undefined\") {\n registry.add(props);\n return null;\n }\n useInsertionEffect({\n \"JSXStyle.useInsertionEffect\": function() {\n registry.add(props);\n return ({\n \"JSXStyle.useInsertionEffect\": function() {\n registry.remove(props);\n }\n })[\"JSXStyle.useInsertionEffect\"];\n // props.children can be string[], will be striped since id is identical\n }\n }[\"JSXStyle.useInsertionEffect\"], [\n props.id,\n String(props.dynamic)\n ]);\n return null;\n}\n_s2(JSXStyle, \"48Sqj1BUqkshsPdz6NEWXDn8pF4=\", false, function() {\n return [\n useStyleRegistry,\n useInsertionEffect\n ];\n});\n_c2 = JSXStyle;\nJSXStyle.dynamic = function(info) {\n return info.map(function(tagInfo) {\n var baseId = tagInfo[0];\n var props = tagInfo[1];\n return computeId(baseId, props);\n }).join(\" \");\n};\nexports.StyleRegistry = StyleRegistry;\nexports.createStyleRegistry = createStyleRegistry;\nexports.style = JSXStyle;\nexports.useStyleRegistry = useStyleRegistry;\nvar _c, _c1, _c2;\n$RefreshReg$(_c, \"React__default\");\n$RefreshReg$(_c1, \"StyleRegistry\");\n$RefreshReg$(_c2, \"JSXStyle\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9zdHlsZWQtanN4L2Rpc3QvaW5kZXgvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7O0FBQUFBLG1CQUFPQSxDQUFDLCtGQUFhO0FBQ3JCLElBQUlDLFFBQVFELG1CQUFPQSxDQUFDLG1GQUFPO0FBRTNCLFNBQVNFLHNCQUF1QkMsQ0FBQztJQUFJLE9BQU9BLEtBQUssT0FBT0EsTUFBTSxZQUFZLGFBQWFBLElBQUlBLElBQUk7UUFBRSxXQUFXQTtJQUFFO0FBQUc7QUFFakgsSUFBSUMsaUJBQWlCLFdBQVcsR0FBRUYsc0JBQXNCRDs7QUFFeEQ7OztBQUdBLEdBQUcsU0FBU0ksa0JBQWtCQyxNQUFNLEVBQUVDLEtBQUs7SUFDdkMsSUFBSSxJQUFJQyxJQUFJLEdBQUdBLElBQUlELE1BQU1FLE1BQU0sRUFBRUQsSUFBSTtRQUNqQyxJQUFJRSxhQUFhSCxLQUFLLENBQUNDLEVBQUU7UUFDekJFLFdBQVdDLFVBQVUsR0FBR0QsV0FBV0MsVUFBVSxJQUFJO1FBQ2pERCxXQUFXRSxZQUFZLEdBQUc7UUFDMUIsSUFBSSxXQUFXRixZQUFZQSxXQUFXRyxRQUFRLEdBQUc7UUFDakRDLE9BQU9DLGNBQWMsQ0FBQ1QsUUFBUUksV0FBV00sR0FBRyxFQUFFTjtJQUNsRDtBQUNKO0FBQ0EsU0FBU08sYUFBYUMsV0FBVyxFQUFFQyxVQUFVLEVBQUVDLFdBQVc7SUFDdEQsSUFBSUQsWUFBWWQsa0JBQWtCYSxZQUFZRyxTQUFTLEVBQUVGO0lBQ3pELElBQUlDLGFBQWFmLGtCQUFrQmEsYUFBYUU7SUFDaEQsT0FBT0Y7QUFDWDtBQUNBLElBQUlJLFNBQVMsT0FBT0MsT0FBT0EsS0FBSyxlQUFlQSxPQUFPQSxDQUFDQyxHQUFHLElBQUlELGtCQUF5QjtBQUN2RixJQUFJRSxXQUFXLFNBQVNDLENBQUM7SUFDckIsT0FBT1osT0FBT08sU0FBUyxDQUFDTSxRQUFRLENBQUNDLElBQUksQ0FBQ0YsT0FBTztBQUNqRDtBQUNBLElBQUlH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QjtZQUNmUCxTQUFTL0IsR0FBRyxDQUFDMUg7WUFDYjsrQ0FBTztvQkFDSHlKLFNBQVNwQixNQUFNLENBQUNySTtnQkFDcEI7O1FBQ0osd0VBQXdFO1FBQ3hFO3NDQUFHO1FBQ0NBLE1BQU15RyxFQUFFO1FBQ1JGLE9BQU92RyxNQUFNOEksT0FBTztLQUN2QjtJQUNELE9BQU87QUFDWDtJQXJCU3FCOztRQUM4Q0o7UUFTbkRDOzs7TUFWS0c7QUFzQlRBLFNBQVNyQixPQUFPLEdBQUcsU0FBU3NCLElBQUk7SUFDNUIsT0FBT0EsS0FBS3ZGLEdBQUcsQ0FBQyxTQUFTd0YsT0FBTztRQUM1QixJQUFJaEUsU0FBU2dFLE9BQU8sQ0FBQyxFQUFFO1FBQ3ZCLElBQUlySyxRQUFRcUssT0FBTyxDQUFDLEVBQUU7UUFDdEIsT0FBT2pFLFVBQVVDLFFBQVFyRztJQUM3QixHQUFHMkksSUFBSSxDQUFDO0FBQ1o7QUFFQTJCLHFCQUFxQixHQUFHZjtBQUN4QmUsMkJBQTJCLEdBQUdoQjtBQUM5QmdCLGFBQWEsR0FBR0g7QUFDaEJHLHdCQUF3QixHQUFHUCIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvc3R5bGVkLWpzeC9kaXN0L2luZGV4L2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJ2NsaWVudC1vbmx5Jyk7XG52YXIgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcERlZmF1bHRMZWdhY3kgKGUpIHsgcmV0dXJuIGUgJiYgdHlwZW9mIGUgPT09ICdvYmplY3QnICYmICdkZWZhdWx0JyBpbiBlID8gZSA6IHsgJ2RlZmF1bHQnOiBlIH07IH1cblxudmFyIFJlYWN0X19kZWZhdWx0ID0gLyojX19QVVJFX18qL19pbnRlcm9wRGVmYXVsdExlZ2FjeShSZWFjdCk7XG5cbi8qXG5CYXNlZCBvbiBHbGFtb3IncyBzaGVldFxuaHR0cHM6Ly9naXRodWIuY29tL3RocmVlcG9pbnRvbmUvZ2xhbW9yL2Jsb2IvNjY3YjQ4MGQzMWIzNzIxYTkwNTAyMWIyNmUxMjkwY2U5MmNhMjg3OS9zcmMvc2hlZXQuanNcbiovIGZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspe1xuICAgICAgICB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldO1xuICAgICAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICAgICAgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgICBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTtcbiAgICBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gICAgcmV0dXJuIENvbnN0cnVjdG9yO1xufVxudmFyIGlzUHJvZCA9IHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiICYmIHByb2Nlc3MuZW52ICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIjtcbnZhciBpc1N0cmluZyA9IGZ1bmN0aW9uKG8pIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pID09PSBcIltvYmplY3QgU3RyaW5nXVwiO1xufTtcbnZhciBTdHlsZVNoZWV0ID0gLyojX19QVVJFX18qLyBmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiBTdHlsZVNoZWV0KHBhcmFtKSB7XG4gICAgICAgIHZhciByZWYgPSBwYXJhbSA9PT0gdm9pZCAwID8ge30gOiBwYXJhbSwgX25hbWUgPSByZWYubmFtZSwgbmFtZSA9IF9uYW1lID09PSB2b2lkIDAgPyBcInN0eWxlc2hlZXRcIiA6IF9uYW1lLCBfb3B0aW1pemVGb3JTcGVlZCA9IHJlZi5vcHRpbWl6ZUZvclNwZWVkLCBvcHRpbWl6ZUZvclNwZWVkID0gX29wdGltaXplRm9yU3BlZWQgPT09IHZvaWQgMCA/IGlzUHJvZCA6IF9vcHRpbWl6ZUZvclNwZWVkO1xuICAgICAgICBpbnZhcmlhbnQkMShpc1N0cmluZyhuYW1lKSwgXCJgbmFtZWAgbXVzdCBiZSBhIHN0cmluZ1wiKTtcbiAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuX2RlbGV0ZWRSdWxlUGxhY2Vob2xkZXIgPSBcIiNcIiArIG5hbWUgKyBcIi1kZWxldGVkLXJ1bGVfX19fe31cIjtcbiAgICAgICAgaW52YXJpYW50JDEodHlwZW9mIG9wdGltaXplRm9yU3BlZWQgPT09IFwiYm9vbGVhblwiLCBcImBvcHRpbWl6ZUZvclNwZWVkYCBtdXN0IGJlIGEgYm9vbGVhblwiKTtcbiAgICAgICAgdGhpcy5fb3B0aW1pemVGb3JTcGVlZCA9IG9wdGltaXplRm9yU3BlZWQ7XG4gICAgICAgIHRoaXMuX3NlcnZlclNoZWV0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl90YWdzID0gW107XG4gICAgICAgIHRoaXMuX2luamVjdGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3J1bGVzQ291bnQgPSAwO1xuICAgICAgICB2YXIgbm9kZSA9IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbWV0YVtwcm9wZXJ0eT1cImNzcC1ub25jZVwiXScpO1xuICAgICAgICB0aGlzLl9ub25jZSA9IG5vZGUgPyBub2RlLmdldEF0dHJpYnV0ZShcImNvbnRlbnRcIikgOiBudWxsO1xuICAgIH1cbiAgICB2YXIgX3Byb3RvID0gU3R5bGVTaGVldC5wcm90b3R5cGU7XG4gICAgX3Byb3RvLnNldE9wdGltaXplRm9yU3BlZWQgPSBmdW5jdGlvbiBzZXRPcHRpbWl6ZUZvclNwZWVkKGJvb2wpIHtcbiAgICAgICAgaW52YXJpYW50JDEodHlwZW9mIGJvb2wgPT09IFwiYm9vbGVhblwiLCBcImBzZXRPcHRpbWl6ZUZvclNwZWVkYCBhY2NlcHRzIGEgYm9vbGVhblwiKTtcbiAgICAgICAgaW52YXJpYW50JDEodGhpcy5fcnVsZXNDb3VudCA9PT0gMCwgXCJvcHRpbWl6ZUZvclNwZWVkIGNhbm5vdCBiZSB3aGVuIHJ1bGVzIGhhdmUgYWxyZWFkeSBiZWVuIGluc2VydGVkXCIpO1xuICAgICAgICB0aGlzLmZsdXNoKCk7XG4gICAgICAgIHRoaXMuX29wdGltaXplRm9yU3BlZWQgPSBib29sO1xuICAgICAgICB0aGlzLmluamVjdCgpO1xuICAgIH07XG4gICAgX3Byb3RvLmlzT3B0aW1pemVGb3JTcGVlZCA9IGZ1bmN0aW9uIGlzT3B0aW1pemVGb3JTcGVlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGltaXplRm9yU3BlZWQ7XG4gICAgfTtcbiAgICBfcHJvdG8uaW5qZWN0ID0gZnVuY3Rpb24gaW5qZWN0KCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBpbnZhcmlhbnQkMSghdGhpcy5faW5qZWN0ZWQsIFwic2hlZXQgYWxyZWFkeSBpbmplY3RlZFwiKTtcbiAgICAgICAgdGhpcy5faW5qZWN0ZWQgPSB0cnVlO1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0aGlzLl9vcHRpbWl6ZUZvclNwZWVkKSB7XG4gICAgICAgICAgICB0aGlzLl90YWdzWzBdID0gdGhpcy5tYWtlU3R5bGVUYWcodGhpcy5fbmFtZSk7XG4gICAgICAgICAgICB0aGlzLl9vcHRpbWl6ZUZvclNwZWVkID0gXCJpbnNlcnRSdWxlXCIgaW4gdGhpcy5nZXRTaGVldCgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9vcHRpbWl6ZUZvclNwZWVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1Byb2QpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiU3R5bGVTaGVldDogb3B0aW1pemVGb3JTcGVlZCBtb2RlIG5vdCBzdXBwb3J0ZWQgZmFsbGluZyBiYWNrIHRvIHN0YW5kYXJkIG1vZGUuXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmZsdXNoKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5qZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NlcnZlclNoZWV0ID0ge1xuICAgICAgICAgICAgY3NzUnVsZXM6IFtdLFxuICAgICAgICAgICAgaW5zZXJ0UnVsZTogZnVuY3Rpb24ocnVsZSwgaW5kZXgpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGluZGV4ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLl9zZXJ2ZXJTaGVldC5jc3NSdWxlc1tpbmRleF0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjc3NUZXh0OiBydWxlXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuX3NlcnZlclNoZWV0LmNzc1J1bGVzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgY3NzVGV4dDogcnVsZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlbGV0ZVJ1bGU6IGZ1bmN0aW9uKGluZGV4KSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuX3NlcnZlclNoZWV0LmNzc1J1bGVzW2luZGV4XSA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfTtcbiAgICBfcHJvdG8uZ2V0U2hlZXRGb3JUYWcgPSBmdW5jdGlvbiBnZXRTaGVldEZvclRhZyh0YWcpIHtcbiAgICAgICAgaWYgKHRhZy5zaGVldCkge1xuICAgICAgICAgICAgcmV0dXJuIHRhZy5zaGVldDtcbiAgICAgICAgfVxuICAgICAgICAvLyB0aGlzIHdlaXJkbmVzcyBicm91Z2h0IHRvIHlvdSBieSBmaXJlZm94XG4gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBkb2N1bWVudC5zdHlsZVNoZWV0cy5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQuc3R5bGVTaGVldHNbaV0ub3duZXJOb2RlID09PSB0YWcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9jdW1lbnQuc3R5bGVTaGVldHNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIF9wcm90by5nZXRTaGVldCA9IGZ1bmN0aW9uIGdldFNoZWV0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRTaGVldEZvclRhZyh0aGlzLl90YWdzW3RoaXMuX3RhZ3MubGVuZ3RoIC0gMV0pO1xuICAgIH07XG4gICAgX3Byb3RvLmluc2VydFJ1bGUgPSBmdW5jdGlvbiBpbnNlcnRSdWxlKHJ1bGUsIGluZGV4KSB7XG4gICAgICAgIGludmFyaWFudCQxKGlzU3RyaW5nKHJ1bGUpLCBcImBpbnNlcnRSdWxlYCBhY2NlcHRzIG9ubHkgc3RyaW5nc1wiKTtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaW5kZXggIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICBpbmRleCA9IHRoaXMuX3NlcnZlclNoZWV0LmNzc1J1bGVzLmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3NlcnZlclNoZWV0Lmluc2VydFJ1bGUocnVsZSwgaW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3J1bGVzQ291bnQrKztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fb3B0aW1pemVGb3JTcGVlZCkge1xuICAgICAgICAgICAgdmFyIHNoZWV0ID0gdGhpcy5nZXRTaGVldCgpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBpbmRleCAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgIGluZGV4ID0gc2hlZXQuY3NzUnVsZXMubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gdGhpcyB3ZWlyZG5lc3MgZm9yIHBlcmYsIGFuZCBjaHJvbWUncyB3ZWlyZCBidWdcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzIwMDA3OTkyL2Nocm9tZS1zdWRkZW5seS1zdG9wcGVkLWFjY2VwdGluZy1pbnNlcnRydWxlXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHNoZWV0Lmluc2VydFJ1bGUocnVsZSwgaW5kZXgpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzUHJvZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJTdHlsZVNoZWV0OiBpbGxlZ2FsIHJ1bGU6IFxcblxcblwiICsgcnVsZSArIFwiXFxuXFxuU2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcS8yMDAwNzk5MiBmb3IgbW9yZSBpbmZvXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgaW5zZXJ0aW9uUG9pbnQgPSB0aGlzLl90YWdzW2luZGV4XTtcbiAgICAgICAgICAgIHRoaXMuX3RhZ3MucHVzaCh0aGlzLm1ha2VTdHlsZVRhZyh0aGlzLl9uYW1lLCBydWxlLCBpbnNlcnRpb25Qb2ludCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9ydWxlc0NvdW50Kys7XG4gICAgfTtcbiAgICBfcHJvdG8ucmVwbGFjZVJ1bGUgPSBmdW5jdGlvbiByZXBsYWNlUnVsZShpbmRleCwgcnVsZSkge1xuICAgICAgICBpZiAodGhpcy5fb3B0aW1pemVGb3JTcGVlZCB8fCB0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICB2YXIgc2hlZXQgPSB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gdGhpcy5nZXRTaGVldCgpIDogdGhpcy5fc2VydmVyU2hlZXQ7XG4gICAgICAgICAgICBpZiAoIXJ1bGUudHJpbSgpKSB7XG4gICAgICAgICAgICAgICAgcnVsZSA9IHRoaXMuX2RlbGV0ZWRSdWxlUGxhY2Vob2xkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXNoZWV0LmNzc1J1bGVzW2luZGV4XSkge1xuICAgICAgICAgICAgICAgIC8vIEBUQkQgU2hvdWxkIHdlIHRocm93IGFuIGVycm9yP1xuICAgICAgICAgICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNoZWV0LmRlbGV0ZVJ1bGUoaW5kZXgpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBzaGVldC5pbnNlcnRSdWxlKHJ1bGUsIGluZGV4KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1Byb2QpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiU3R5bGVTaGVldDogaWxsZWdhbCBydWxlOiBcXG5cXG5cIiArIHJ1bGUgKyBcIlxcblxcblNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3EvMjAwMDc5OTIgZm9yIG1vcmUgaW5mb1wiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gSW4gb3JkZXIgdG8gcHJlc2VydmUgdGhlIGluZGljZXMgd2UgaW5zZXJ0IGEgZGVsZXRlUnVsZVBsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgc2hlZXQuaW5zZXJ0UnVsZSh0aGlzLl9kZWxldGVkUnVsZVBsYWNlaG9sZGVyLCBpbmRleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgdGFnID0gdGhpcy5fdGFnc1tpbmRleF07XG4gICAgICAgICAgICBpbnZhcmlhbnQkMSh0YWcsIFwib2xkIHJ1bGUgYXQgaW5kZXggYFwiICsgaW5kZXggKyBcImAgbm90IGZvdW5kXCIpO1xuICAgICAgICAgICAgdGFnLnRleHRDb250ZW50ID0gcnVsZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfTtcbiAgICBfcHJvdG8uZGVsZXRlUnVsZSA9IGZ1bmN0aW9uIGRlbGV0ZVJ1bGUoaW5kZXgpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlcnZlclNoZWV0LmRlbGV0ZVJ1bGUoaW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9vcHRpbWl6ZUZvclNwZWVkKSB7XG4gICAgICAgICAgICB0aGlzLnJlcGxhY2VSdWxlKGluZGV4LCBcIlwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciB0YWcgPSB0aGlzLl90YWdzW2luZGV4XTtcbiAgICAgICAgICAgIGludmFyaWFudCQxKHRhZywgXCJydWxlIGF0IGluZGV4IGBcIiArIGluZGV4ICsgXCJgIG5vdCBmb3VuZFwiKTtcbiAgICAgICAgICAgIHRhZy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRhZyk7XG4gICAgICAgICAgICB0aGlzLl90YWdzW2luZGV4XSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIF9wcm90by5mbHVzaCA9IGZ1bmN0aW9uIGZsdXNoKCkge1xuICAgICAgICB0aGlzLl9pbmplY3RlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9ydWxlc0NvdW50ID0gMDtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHRoaXMuX3RhZ3MuZm9yRWFjaChmdW5jdGlvbih0YWcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGFnICYmIHRhZy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRhZyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX3RhZ3MgPSBbXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHNpbXBsZXIgb24gc2VydmVyXG4gICAgICAgICAgICB0aGlzLl9zZXJ2ZXJTaGVldC5jc3NSdWxlcyA9IFtdO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBfcHJvdG8uY3NzUnVsZXMgPSBmdW5jdGlvbiBjc3NSdWxlcygpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zZXJ2ZXJTaGVldC5jc3NSdWxlcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fdGFncy5yZWR1Y2UoZnVuY3Rpb24ocnVsZXMsIHRhZykge1xuICAgICAgICAgICAgaWYgKHRhZykge1xuICAgICAgICAgICAgICAgIHJ1bGVzID0gcnVsZXMuY29uY2F0KEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChfdGhpcy5nZXRTaGVldEZvclRhZyh0YWcpLmNzc1J1bGVzLCBmdW5jdGlvbihydWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBydWxlLmNzc1RleHQgPT09IF90aGlzLl9kZWxldGVkUnVsZVBsYWNlaG9sZGVyID8gbnVsbCA6IHJ1bGU7XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBydWxlcy5wdXNoKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJ1bGVzO1xuICAgICAgICB9LCBbXSk7XG4gICAgfTtcbiAgICBfcHJvdG8ubWFrZVN0eWxlVGFnID0gZnVuY3Rpb24gbWFrZVN0eWxlVGFnKG5hbWUsIGNzc1N0cmluZywgcmVsYXRpdmVUb1RhZykge1xuICAgICAgICBpZiAoY3NzU3RyaW5nKSB7XG4gICAgICAgICAgICBpbnZhcmlhbnQkMShpc1N0cmluZyhjc3NTdHJpbmcpLCBcIm1ha2VTdHlsZVRhZyBhY2NlcHRzIG9ubHkgc3RyaW5ncyBhcyBzZWNvbmQgcGFyYW1ldGVyXCIpO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0YWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7XG4gICAgICAgIGlmICh0aGlzLl9ub25jZSkgdGFnLnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsIHRoaXMuX25vbmNlKTtcbiAgICAgICAgdGFnLnR5cGUgPSBcInRleHQvY3NzXCI7XG4gICAgICAgIHRhZy5zZXRBdHRyaWJ1dGUoXCJkYXRhLVwiICsgbmFtZSwgXCJcIik7XG4gICAgICAgIGlmIChjc3NTdHJpbmcpIHtcbiAgICAgICAgICAgIHRhZy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3NTdHJpbmcpKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaGVhZCA9IGRvY3VtZW50LmhlYWQgfHwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdO1xuICAgICAgICBpZiAocmVsYXRpdmVUb1RhZykge1xuICAgICAgICAgICAgaGVhZC5pbnNlcnRCZWZvcmUodGFnLCByZWxhdGl2ZVRvVGFnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhlYWQuYXBwZW5kQ2hpbGQodGFnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFnO1xuICAgIH07XG4gICAgX2NyZWF0ZUNsYXNzKFN0eWxlU2hlZXQsIFtcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcImxlbmd0aFwiLFxuICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3J1bGVzQ291bnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBdKTtcbiAgICByZXR1cm4gU3R5bGVTaGVldDtcbn0oKTtcbmZ1bmN0aW9uIGludmFyaWFudCQxKGNvbmRpdGlvbiwgbWVzc2FnZSkge1xuICAgIGlmICghY29uZGl0aW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlN0eWxlU2hlZXQ6IFwiICsgbWVzc2FnZSArIFwiLlwiKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGhhc2goc3RyKSB7XG4gICAgdmFyIF8kaGFzaCA9IDUzODEsIGkgPSBzdHIubGVuZ3RoO1xuICAgIHdoaWxlKGkpe1xuICAgICAgICBfJGhhc2ggPSBfJGhhc2ggKiAzMyBeIHN0ci5jaGFyQ29kZUF0KC0taSk7XG4gICAgfVxuICAgIC8qIEphdmFTY3JpcHQgZG9lcyBiaXR3aXNlIG9wZXJhdGlvbnMgKGxpa2UgWE9SLCBhYm92ZSkgb24gMzItYml0IHNpZ25lZFxuICAgKiBpbnRlZ2Vycy4gU2luY2Ugd2Ugd2FudCB0aGUgcmVzdWx0cyB0byBiZSBhbHdheXMgcG9zaXRpdmUsIGNvbnZlcnQgdGhlXG4gICAqIHNpZ25lZCBpbnQgdG8gYW4gdW5zaWduZWQgYnkgZG9pbmcgYW4gdW5zaWduZWQgYml0c2hpZnQuICovIHJldHVybiBfJGhhc2ggPj4+IDA7XG59XG52YXIgc3RyaW5nSGFzaCA9IGhhc2g7XG5cbnZhciBzYW5pdGl6ZSA9IGZ1bmN0aW9uKHJ1bGUpIHtcbiAgICByZXR1cm4gcnVsZS5yZXBsYWNlKC9cXC9zdHlsZS9naSwgXCJcXFxcL3N0eWxlXCIpO1xufTtcbnZhciBjYWNoZSA9IHt9O1xuLyoqXG4gKiBjb21wdXRlSWRcbiAqXG4gKiBDb21wdXRlIGFuZCBtZW1vaXplIGEganN4IGlkIGZyb20gYSBiYXNlZElkIGFuZCBvcHRpb25hbGx5IHByb3BzLlxuICovIGZ1bmN0aW9uIGNvbXB1dGVJZChiYXNlSWQsIHByb3BzKSB7XG4gICAgaWYgKCFwcm9wcykge1xuICAgICAgICByZXR1cm4gXCJqc3gtXCIgKyBiYXNlSWQ7XG4gICAgfVxuICAgIHZhciBwcm9wc1RvU3RyaW5nID0gU3RyaW5nKHByb3BzKTtcbiAgICB2YXIga2V5ID0gYmFzZUlkICsgcHJvcHNUb1N0cmluZztcbiAgICBpZiAoIWNhY2hlW2tleV0pIHtcbiAgICAgICAgY2FjaGVba2V5XSA9IFwianN4LVwiICsgc3RyaW5nSGFzaChiYXNlSWQgKyBcIi1cIiArIHByb3BzVG9TdHJpbmcpO1xuICAgIH1cbiAgICByZXR1cm4gY2FjaGVba2V5XTtcbn1cbi8qKlxuICogY29tcHV0ZVNlbGVjdG9yXG4gKlxuICogQ29tcHV0ZSBhbmQgbWVtb2l6ZSBkeW5hbWljIHNlbGVjdG9ycy5cbiAqLyBmdW5jdGlvbiBjb21wdXRlU2VsZWN0b3IoaWQsIGNzcykge1xuICAgIHZhciBzZWxlY3RvUGxhY2Vob2xkZXJSZWdleHAgPSAvX19qc3gtc3R5bGUtZHluYW1pYy1zZWxlY3Rvci9nO1xuICAgIC8vIFNhbml0aXplIFNTUi1lZCBDU1MuXG4gICAgLy8gQ2xpZW50IHNpZGUgY29kZSBkb2Vzbid0IG5lZWQgdG8gYmUgc2FuaXRpemVkIHNpbmNlIHdlIHVzZVxuICAgIC8vIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlIChkZXYpIGFuZCB0aGUgQ1NTT00gYXBpIHNoZWV0Lmluc2VydFJ1bGUgKHByb2QpLlxuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIGNzcyA9IHNhbml0aXplKGNzcyk7XG4gICAgfVxuICAgIHZhciBpZGNzcyA9IGlkICsgY3NzO1xuICAgIGlmICghY2FjaGVbaWRjc3NdKSB7XG4gICAgICAgIGNhY2hlW2lkY3NzXSA9IGNzcy5yZXBsYWNlKHNlbGVjdG9QbGFjZWhvbGRlclJlZ2V4cCwgaWQpO1xuICAgIH1cbiAgICByZXR1cm4gY2FjaGVbaWRjc3NdO1xufVxuXG5mdW5jdGlvbiBtYXBSdWxlc1RvU3R5bGUoY3NzUnVsZXMsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSBvcHRpb25zID0ge307XG4gICAgcmV0dXJuIGNzc1J1bGVzLm1hcChmdW5jdGlvbihhcmdzKSB7XG4gICAgICAgIHZhciBpZCA9IGFyZ3NbMF07XG4gICAgICAgIHZhciBjc3MgPSBhcmdzWzFdO1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyBSZWFjdF9fZGVmYXVsdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChcInN0eWxlXCIsIHtcbiAgICAgICAgICAgIGlkOiBcIl9fXCIgKyBpZCxcbiAgICAgICAgICAgIC8vIEF2b2lkIHdhcm5pbmdzIHVwb24gcmVuZGVyIHdpdGggYSBrZXlcbiAgICAgICAgICAgIGtleTogXCJfX1wiICsgaWQsXG4gICAgICAgICAgICBub25jZTogb3B0aW9ucy5ub25jZSA/IG9wdGlvbnMubm9uY2UgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTDoge1xuICAgICAgICAgICAgICAgIF9faHRtbDogY3NzXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxudmFyIFN0eWxlU2hlZXRSZWdpc3RyeSA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gU3R5bGVTaGVldFJlZ2lzdHJ5KHBhcmFtKSB7XG4gICAgICAgIHZhciByZWYgPSBwYXJhbSA9PT0gdm9pZCAwID8ge30gOiBwYXJhbSwgX3N0eWxlU2hlZXQgPSByZWYuc3R5bGVTaGVldCwgc3R5bGVTaGVldCA9IF9zdHlsZVNoZWV0ID09PSB2b2lkIDAgPyBudWxsIDogX3N0eWxlU2hlZXQsIF9vcHRpbWl6ZUZvclNwZWVkID0gcmVmLm9wdGltaXplRm9yU3BlZWQsIG9wdGltaXplRm9yU3BlZWQgPSBfb3B0aW1pemVGb3JTcGVlZCA9PT0gdm9pZCAwID8gZmFsc2UgOiBfb3B0aW1pemVGb3JTcGVlZDtcbiAgICAgICAgdGhpcy5fc2hlZXQgPSBzdHlsZVNoZWV0IHx8IG5ldyBTdHlsZVNoZWV0KHtcbiAgICAgICAgICAgIG5hbWU6IFwic3R5bGVkLWpzeFwiLFxuICAgICAgICAgICAgb3B0aW1pemVGb3JTcGVlZDogb3B0aW1pemVGb3JTcGVlZFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fc2hlZXQuaW5qZWN0KCk7XG4gICAgICAgIGlmIChzdHlsZVNoZWV0ICYmIHR5cGVvZiBvcHRpbWl6ZUZvclNwZWVkID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgdGhpcy5fc2hlZXQuc2V0T3B0aW1pemVGb3JTcGVlZChvcHRpbWl6ZUZvclNwZWVkKTtcbiAgICAgICAgICAgIHRoaXMuX29wdGltaXplRm9yU3BlZWQgPSB0aGlzLl9zaGVldC5pc09wdGltaXplRm9yU3BlZWQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9mcm9tU2VydmVyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl9pbmRpY2VzID0ge307XG4gICAgICAgIHRoaXMuX2luc3RhbmNlc0NvdW50cyA9IHt9O1xuICAgIH1cbiAgICB2YXIgX3Byb3RvID0gU3R5bGVTaGVldFJlZ2lzdHJ5LnByb3RvdHlwZTtcbiAgICBfcHJvdG8uYWRkID0gZnVuY3Rpb24gYWRkKHByb3BzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIGlmICh1bmRlZmluZWQgPT09IHRoaXMuX29wdGltaXplRm9yU3BlZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX29wdGltaXplRm9yU3BlZWQgPSBBcnJheS5pc0FycmF5KHByb3BzLmNoaWxkcmVuKTtcbiAgICAgICAgICAgIHRoaXMuX3NoZWV0LnNldE9wdGltaXplRm9yU3BlZWQodGhpcy5fb3B0aW1pemVGb3JTcGVlZCk7XG4gICAgICAgICAgICB0aGlzLl9vcHRpbWl6ZUZvclNwZWVkID0gdGhpcy5fc2hlZXQuaXNPcHRpbWl6ZUZvclNwZWVkKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgIXRoaXMuX2Zyb21TZXJ2ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zyb21TZXJ2ZXIgPSB0aGlzLnNlbGVjdEZyb21TZXJ2ZXIoKTtcbiAgICAgICAgICAgIHRoaXMuX2luc3RhbmNlc0NvdW50cyA9IE9iamVjdC5rZXlzKHRoaXMuX2Zyb21TZXJ2ZXIpLnJlZHVjZShmdW5jdGlvbihhY2MsIHRhZ05hbWUpIHtcbiAgICAgICAgICAgICAgICBhY2NbdGFnTmFtZV0gPSAwO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9LCB7fSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJlZiA9IHRoaXMuZ2V0SWRBbmRSdWxlcyhwcm9wcyksIHN0eWxlSWQgPSByZWYuc3R5bGVJZCwgcnVsZXMgPSByZWYucnVsZXM7XG4gICAgICAgIC8vIERlZHVwaW5nOiBqdXN0IGluY3JlYXNlIHRoZSBpbnN0YW5jZXMgY291bnQuXG4gICAgICAgIGlmIChzdHlsZUlkIGluIHRoaXMuX2luc3RhbmNlc0NvdW50cykge1xuICAgICAgICAgICAgdGhpcy5faW5zdGFuY2VzQ291bnRzW3N0eWxlSWRdICs9IDE7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGluZGljZXMgPSBydWxlcy5tYXAoZnVuY3Rpb24ocnVsZSkge1xuICAgICAgICAgICAgcmV0dXJuIF90aGlzLl9zaGVldC5pbnNlcnRSdWxlKHJ1bGUpO1xuICAgICAgICB9KS8vIEZpbHRlciBvdXQgaW52YWxpZCBydWxlc1xuICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uKGluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gaW5kZXggIT09IC0xO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5faW5kaWNlc1tzdHlsZUlkXSA9IGluZGljZXM7XG4gICAgICAgIHRoaXMuX2luc3RhbmNlc0NvdW50c1tzdHlsZUlkXSA9IDE7XG4gICAgfTtcbiAgICBfcHJvdG8ucmVtb3ZlID0gZnVuY3Rpb24gcmVtb3ZlKHByb3BzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBzdHlsZUlkID0gdGhpcy5nZXRJZEFuZFJ1bGVzKHByb3BzKS5zdHlsZUlkO1xuICAgICAgICBpbnZhcmlhbnQoc3R5bGVJZCBpbiB0aGlzLl9pbnN0YW5jZXNDb3VudHMsIFwic3R5bGVJZDogYFwiICsgc3R5bGVJZCArIFwiYCBub3QgZm91bmRcIik7XG4gICAgICAgIHRoaXMuX2luc3RhbmNlc0NvdW50c1tzdHlsZUlkXSAtPSAxO1xuICAgICAgICBpZiAodGhpcy5faW5zdGFuY2VzQ291bnRzW3N0eWxlSWRdIDwgMSkge1xuICAgICAgICAgICAgdmFyIHRhZ0Zyb21TZXJ2ZXIgPSB0aGlzLl9mcm9tU2VydmVyICYmIHRoaXMuX2Zyb21TZXJ2ZXJbc3R5bGVJZF07XG4gICAgICAgICAgICBpZiAodGFnRnJvbVNlcnZlcikge1xuICAgICAgICAgICAgICAgIHRhZ0Zyb21TZXJ2ZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0YWdGcm9tU2VydmVyKTtcbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fZnJvbVNlcnZlcltzdHlsZUlkXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5kaWNlc1tzdHlsZUlkXS5mb3JFYWNoKGZ1bmN0aW9uKGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfdGhpcy5fc2hlZXQuZGVsZXRlUnVsZShpbmRleCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2luZGljZXNbc3R5bGVJZF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5faW5zdGFuY2VzQ291bnRzW3N0eWxlSWRdO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBfcHJvdG8udXBkYXRlID0gZnVuY3Rpb24gdXBkYXRlKHByb3BzLCBuZXh0UHJvcHMpIHtcbiAgICAgICAgdGhpcy5hZGQobmV4dFByb3BzKTtcbiAgICAgICAgdGhpcy5yZW1vdmUocHJvcHMpO1xuICAgIH07XG4gICAgX3Byb3RvLmZsdXNoID0gZnVuY3Rpb24gZmx1c2goKSB7XG4gICAgICAgIHRoaXMuX3NoZWV0LmZsdXNoKCk7XG4gICAgICAgIHRoaXMuX3NoZWV0LmluamVjdCgpO1xuICAgICAgICB0aGlzLl9mcm9tU2VydmVyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl9pbmRpY2VzID0ge307XG4gICAgICAgIHRoaXMuX2luc3RhbmNlc0NvdW50cyA9IHt9O1xuICAgIH07XG4gICAgX3Byb3RvLmNzc1J1bGVzID0gZnVuY3Rpb24gY3NzUnVsZXMoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBmcm9tU2VydmVyID0gdGhpcy5fZnJvbVNlcnZlciA/IE9iamVjdC5rZXlzKHRoaXMuX2Zyb21TZXJ2ZXIpLm1hcChmdW5jdGlvbihzdHlsZUlkKSB7XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIHN0eWxlSWQsXG4gICAgICAgICAgICAgICAgX3RoaXMuX2Zyb21TZXJ2ZXJbc3R5bGVJZF1cbiAgICAgICAgICAgIF07XG4gICAgICAgIH0pIDogW107XG4gICAgICAgIHZhciBjc3NSdWxlcyA9IHRoaXMuX3NoZWV0LmNzc1J1bGVzKCk7XG4gICAgICAgIHJldHVybiBmcm9tU2VydmVyLmNvbmNhdChPYmplY3Qua2V5cyh0aGlzLl9pbmRpY2VzKS5tYXAoZnVuY3Rpb24oc3R5bGVJZCkge1xuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICBzdHlsZUlkLFxuICAgICAgICAgICAgICAgIF90aGlzLl9pbmRpY2VzW3N0eWxlSWRdLm1hcChmdW5jdGlvbihpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3NzUnVsZXNbaW5kZXhdLmNzc1RleHQ7XG4gICAgICAgICAgICAgICAgfSkuam9pbihfdGhpcy5fb3B0aW1pemVGb3JTcGVlZCA/IFwiXCIgOiBcIlxcblwiKVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfSkvLyBmaWx0ZXIgb3V0IGVtcHR5IHJ1bGVzXG4gICAgICAgIC5maWx0ZXIoZnVuY3Rpb24ocnVsZSkge1xuICAgICAgICAgICAgcmV0dXJuIEJvb2xlYW4ocnVsZVsxXSk7XG4gICAgICAgIH0pKTtcbiAgICB9O1xuICAgIF9wcm90by5zdHlsZXMgPSBmdW5jdGlvbiBzdHlsZXMob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbWFwUnVsZXNUb1N0eWxlKHRoaXMuY3NzUnVsZXMoKSwgb3B0aW9ucyk7XG4gICAgfTtcbiAgICBfcHJvdG8uZ2V0SWRBbmRSdWxlcyA9IGZ1bmN0aW9uIGdldElkQW5kUnVsZXMocHJvcHMpIHtcbiAgICAgICAgdmFyIGNzcyA9IHByb3BzLmNoaWxkcmVuLCBkeW5hbWljID0gcHJvcHMuZHluYW1pYywgaWQgPSBwcm9wcy5pZDtcbiAgICAgICAgaWYgKGR5bmFtaWMpIHtcbiAgICAgICAgICAgIHZhciBzdHlsZUlkID0gY29tcHV0ZUlkKGlkLCBkeW5hbWljKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc3R5bGVJZDogc3R5bGVJZCxcbiAgICAgICAgICAgICAgICBydWxlczogQXJyYXkuaXNBcnJheShjc3MpID8gY3NzLm1hcChmdW5jdGlvbihydWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb21wdXRlU2VsZWN0b3Ioc3R5bGVJZCwgcnVsZSk7XG4gICAgICAgICAgICAgICAgfSkgOiBbXG4gICAgICAgICAgICAgICAgICAgIGNvbXB1dGVTZWxlY3RvcihzdHlsZUlkLCBjc3MpXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3R5bGVJZDogY29tcHV0ZUlkKGlkKSxcbiAgICAgICAgICAgIHJ1bGVzOiBBcnJheS5pc0FycmF5KGNzcykgPyBjc3MgOiBbXG4gICAgICAgICAgICAgICAgY3NzXG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfTtcbiAgICAvKipcbiAgICogc2VsZWN0RnJvbVNlcnZlclxuICAgKlxuICAgKiBDb2xsZWN0cyBzdHlsZSB0YWdzIGZyb20gdGhlIGRvY3VtZW50IHdpdGggaWQgX19qc3gtWFhYXG4gICAqLyBfcHJvdG8uc2VsZWN0RnJvbVNlcnZlciA9IGZ1bmN0aW9uIHNlbGVjdEZyb21TZXJ2ZXIoKSB7XG4gICAgICAgIHZhciBlbGVtZW50cyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tpZF49XCJfX2pzeC1cIl0nKSk7XG4gICAgICAgIHJldHVybiBlbGVtZW50cy5yZWR1Y2UoZnVuY3Rpb24oYWNjLCBlbGVtZW50KSB7XG4gICAgICAgICAgICB2YXIgaWQgPSBlbGVtZW50LmlkLnNsaWNlKDIpO1xuICAgICAgICAgICAgYWNjW2lkXSA9IGVsZW1lbnQ7XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSk7XG4gICAgfTtcbiAgICByZXR1cm4gU3R5bGVTaGVldFJlZ2lzdHJ5O1xufSgpO1xuZnVuY3Rpb24gaW52YXJpYW50KGNvbmRpdGlvbiwgbWVzc2FnZSkge1xuICAgIGlmICghY29uZGl0aW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlN0eWxlU2hlZXRSZWdpc3RyeTogXCIgKyBtZXNzYWdlICsgXCIuXCIpO1xuICAgIH1cbn1cbnZhciBTdHlsZVNoZWV0Q29udGV4dCA9IC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlQ29udGV4dChudWxsKTtcblN0eWxlU2hlZXRDb250ZXh0LmRpc3BsYXlOYW1lID0gXCJTdHlsZVNoZWV0Q29udGV4dFwiO1xuZnVuY3Rpb24gY3JlYXRlU3R5bGVSZWdpc3RyeSgpIHtcbiAgICByZXR1cm4gbmV3IFN0eWxlU2hlZXRSZWdpc3RyeSgpO1xufVxuZnVuY3Rpb24gU3R5bGVSZWdpc3RyeShwYXJhbSkge1xuICAgIHZhciBjb25maWd1cmVkUmVnaXN0cnkgPSBwYXJhbS5yZWdpc3RyeSwgY2hpbGRyZW4gPSBwYXJhbS5jaGlsZHJlbjtcbiAgICB2YXIgcm9vdFJlZ2lzdHJ5ID0gUmVhY3QudXNlQ29udGV4dChTdHlsZVNoZWV0Q29udGV4dCk7XG4gICAgdmFyIHJlZiA9IFJlYWN0LnVzZVN0YXRlKGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcm9vdFJlZ2lzdHJ5IHx8IGNvbmZpZ3VyZWRSZWdpc3RyeSB8fCBjcmVhdGVTdHlsZVJlZ2lzdHJ5KCk7XG4gICAgfSksIHJlZ2lzdHJ5ID0gcmVmWzBdO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIFJlYWN0X19kZWZhdWx0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFN0eWxlU2hlZXRDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgIHZhbHVlOiByZWdpc3RyeVxuICAgIH0sIGNoaWxkcmVuKTtcbn1cbmZ1bmN0aW9uIHVzZVN0eWxlUmVnaXN0cnkoKSB7XG4gICAgcmV0dXJuIFJlYWN0LnVzZUNvbnRleHQoU3R5bGVTaGVldENvbnRleHQpO1xufVxuXG4vLyBPcHQtaW50byB0aGUgbmV3IGB1c2VJbnNlcnRpb25FZmZlY3RgIEFQSSBpbiBSZWFjdCAxOCwgZmFsbGJhY2sgdG8gYHVzZUxheW91dEVmZmVjdGAuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vcmVhY3R3Zy9yZWFjdC0xOC9kaXNjdXNzaW9ucy8xMTBcbnZhciB1c2VJbnNlcnRpb25FZmZlY3QgPSBSZWFjdF9fZGVmYXVsdFtcImRlZmF1bHRcIl0udXNlSW5zZXJ0aW9uRWZmZWN0IHx8IFJlYWN0X19kZWZhdWx0W1wiZGVmYXVsdFwiXS51c2VMYXlvdXRFZmZlY3Q7XG52YXIgZGVmYXVsdFJlZ2lzdHJ5ID0gdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IGNyZWF0ZVN0eWxlUmVnaXN0cnkoKSA6IHVuZGVmaW5lZDtcbmZ1bmN0aW9uIEpTWFN0eWxlKHByb3BzKSB7XG4gICAgdmFyIHJlZ2lzdHJ5ID0gZGVmYXVsdFJlZ2lzdHJ5ID8gZGVmYXVsdFJlZ2lzdHJ5IDogdXNlU3R5bGVSZWdpc3RyeSgpO1xuICAgIC8vIElmIGByZWdpc3RyeWAgZG9lcyBub3QgZXhpc3QsIHdlIGRvIG5vdGhpbmcgaGVyZS5cbiAgICBpZiAoIXJlZ2lzdHJ5KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICByZWdpc3RyeS5hZGQocHJvcHMpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdXNlSW5zZXJ0aW9uRWZmZWN0KGZ1bmN0aW9uKCkge1xuICAgICAgICByZWdpc3RyeS5hZGQocHJvcHMpO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZWdpc3RyeS5yZW1vdmUocHJvcHMpO1xuICAgICAgICB9O1xuICAgIC8vIHByb3BzLmNoaWxkcmVuIGNhbiBiZSBzdHJpbmdbXSwgd2lsbCBiZSBzdHJpcGVkIHNpbmNlIGlkIGlzIGlkZW50aWNhbFxuICAgIH0sIFtcbiAgICAgICAgcHJvcHMuaWQsXG4gICAgICAgIFN0cmluZyhwcm9wcy5keW5hbWljKVxuICAgIF0pO1xuICAgIHJldHVybiBudWxsO1xufVxuSlNYU3R5bGUuZHluYW1pYyA9IGZ1bmN0aW9uKGluZm8pIHtcbiAgICByZXR1cm4gaW5mby5tYXAoZnVuY3Rpb24odGFnSW5mbykge1xuICAgICAgICB2YXIgYmFzZUlkID0gdGFnSW5mb1swXTtcbiAgICAgICAgdmFyIHByb3BzID0gdGFnSW5mb1sxXTtcbiAgICAgICAgcmV0dXJuIGNvbXB1dGVJZChiYXNlSWQsIHByb3BzKTtcbiAgICB9KS5qb2luKFwiIFwiKTtcbn07XG5cbmV4cG9ydHMuU3R5bGVSZWdpc3RyeSA9IFN0eWxlUmVnaXN0cnk7XG5leHBvcnRzLmNyZWF0ZVN0eWxlUmVnaXN0cnkgPSBjcmVhdGVTdHlsZVJlZ2lzdHJ5O1xuZXhwb3J0cy5zdHlsZSA9IEpTWFN0eWxlO1xuZXhwb3J0cy51c2VTdHlsZVJlZ2lzdHJ5ID0gdXNlU3R5bGVSZWdpc3RyeTtcbiJdLCJuYW1lcyI6WyJyZXF1aXJlIiwiUmVhY3QiLCJfaW50ZXJvcERlZmF1bHRMZWdhY3kiLCJlIiwiUmVhY3RfX2RlZmF1bHQiLCJfZGVmaW5lUHJvcGVydGllcyIsInRhcmdldCIsInByb3BzIiwiaSIsImxlbmd0aCIsImRlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImtleSIsIl9jcmVhdGVDbGFzcyIsIkNvbnN0cnVjdG9yIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwicHJvdG90eXBlIiwiaXNQcm9kIiwicHJvY2VzcyIsImVudiIsImlzU3RyaW5nIiwibyIsInRvU3RyaW5nIiwiY2FsbCIsIlN0eWxlU2hlZXQiLCJwYXJhbSIsInJlZiIsIl9uYW1lIiwibmFtZSIsIl9vcHRpbWl6ZUZvclNwZWVkIiwib3B0aW1pemVGb3JTcGVlZCIsImludmFyaWFudCQxIiwiX2RlbGV0ZWRSdWxlUGxhY2Vob2xkZXIiLCJfc2VydmVyU2hlZXQiLCJ1bmRlZmluZWQiLCJfdGFncyIsIl9pbmplY3RlZCIsIl9ydWxlc0NvdW50Iiwibm9kZSIsIndpbmRvdyIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsIl9ub25jZSIsImdldEF0dHJpYnV0ZSIsIl9wcm90byIsInNldE9wdGltaXplRm9yU3BlZWQiLCJib29sIiwiZmx1c2giLCJpbmplY3QiLCJpc09wdGltaXplRm9yU3BlZWQiLCJfdGhpcyIsIm1ha2VTdHlsZVRhZyIsImdldFNoZWV0IiwiY29uc29sZSIsIndhcm4iLCJjc3NSdWxlcyIsImluc2VydFJ1bGUiLCJydWxlIiwiaW5kZXgiLCJjc3NUZXh0IiwicHVzaCIsImRlbGV0ZVJ1bGUiLCJnZXRTaGVldEZvclRhZyIsInRhZyIsInNoZWV0Iiwic3R5bGVTaGVldHMiLCJvd25lck5vZGUiLCJlcnJvciIsImluc2VydGlvblBvaW50IiwicmVwbGFjZVJ1bGUiLCJ0cmltIiwidGV4dENvbnRlbnQiLCJwYXJlbnROb2RlIiwicmVtb3ZlQ2hpbGQiLCJmb3JFYWNoIiwicmVkdWNlIiwicnVsZXMiLCJjb25jYXQiLCJBcnJheSIsIm1hcCIsImNzc1N0cmluZyIsInJlbGF0aXZlVG9UYWciLCJjcmVhdGVFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwidHlwZSIsImFwcGVuZENoaWxkIiwiY3JlYXRlVGV4dE5vZGUiLCJoZWFkIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJpbnNlcnRCZWZvcmUiLCJnZXQiLCJjb25kaXRpb24iLCJtZXNzYWdlIiwiRXJyb3IiLCJoYXNoIiwic3RyIiwiXyRoYXNoIiwiY2hhckNvZGVBdCIsInN0cmluZ0hhc2giLCJzYW5pdGl6ZSIsInJlcGxhY2UiLCJjYWNoZSIsImNvbXB1dGVJZCIsImJhc2VJZCIsInByb3BzVG9TdHJpbmciLCJTdHJpbmciLCJjb21wdXRlU2VsZWN0b3IiLCJpZCIsImNzcyIsInNlbGVjdG9QbGFjZWhvbGRlclJlZ2V4cCIsImlkY3NzIiwibWFwUnVsZXNUb1N0eWxlIiwib3B0aW9ucyIsImFyZ3MiLCJub25jZSIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwiU3R5bGVTaGVldFJlZ2lzdHJ5IiwiX3N0eWxlU2hlZXQiLCJzdHlsZVNoZWV0IiwiX3NoZWV0IiwiX2Zyb21TZXJ2ZXIiLCJfaW5kaWNlcyIsIl9pbnN0YW5jZXNDb3VudHMiLCJhZGQiLCJpc0FycmF5IiwiY2hpbGRyZW4iLCJzZWxlY3RGcm9tU2VydmVyIiwia2V5cyIsImFjYyIsInRhZ05hbWUiLCJnZXRJZEFuZFJ1bGVzIiwic3R5bGVJZCIsImluZGljZXMiLCJmaWx0ZXIiLCJyZW1vdmUiLCJpbnZhcmlhbnQiLCJ0YWdGcm9tU2VydmVyIiwidXBkYXRlIiwibmV4dFByb3BzIiwiZnJvbVNlcnZlciIsImpvaW4iLCJCb29sZWFuIiwic3R5bGVzIiwiZHluYW1pYyIsImVsZW1lbnRzIiwic2xpY2UiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZWxlbWVudCIsIlN0eWxlU2hlZXRDb250ZXh0IiwiY3JlYXRlQ29udGV4dCIsImRpc3BsYXlOYW1lIiwiY3JlYXRlU3R5bGVSZWdpc3RyeSIsIlN0eWxlUmVnaXN0cnkiLCJjb25maWd1cmVkUmVnaXN0cnkiLCJyZWdpc3RyeSIsInJvb3RSZWdpc3RyeSIsInVzZUNvbnRleHQiLCJ1c2VTdGF0ZSIsIlByb3ZpZGVyIiwidmFsdWUiLCJ1c2VTdHlsZVJlZ2lzdHJ5IiwidXNlSW5zZXJ0aW9uRWZmZWN0IiwidXNlTGF5b3V0RWZmZWN0IiwiZGVmYXVsdFJlZ2lzdHJ5IiwiSlNYU3R5bGUiLCJpbmZvIiwidGFnSW5mbyIsImV4cG9ydHMiLCJzdHlsZSJdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/styled-jsx/dist/index/index.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/styled-jsx/style.js": /*!******************************************!*\ !*** ./node_modules/styled-jsx/style.js ***! \******************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\nmodule.exports = __webpack_require__(/*! ./dist/index */ \"(app-pages-browser)/./node_modules/styled-jsx/dist/index/index.js\").style;\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9zdHlsZWQtanN4L3N0eWxlLmpzIiwibWFwcGluZ3MiOiI7QUFBQUEsbUlBQThDIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9zdHlsZWQtanN4L3N0eWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9kaXN0L2luZGV4Jykuc3R5bGVcbiJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwicmVxdWlyZSIsInN0eWxlIl0sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/styled-jsx/style.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/tailwind-merge/dist/bundle-mjs.mjs": /*!*********************************************************!*\ !*** ./node_modules/tailwind-merge/dist/bundle-mjs.mjs ***! \*********************************************************/ /***/ ((__unused_webpack___webpack_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 */ createTailwindMerge: () => (/* binding */ createTailwindMerge),\n/* harmony export */ extendTailwindMerge: () => (/* binding */ extendTailwindMerge),\n/* harmony export */ fromTheme: () => (/* binding */ fromTheme),\n/* harmony export */ getDefaultConfig: () => (/* binding */ getDefaultConfig),\n/* harmony export */ mergeConfigs: () => (/* binding */ mergeConfigs),\n/* harmony export */ twJoin: () => (/* binding */ twJoin),\n/* harmony export */ twMerge: () => (/* binding */ twMerge),\n/* harmony export */ validators: () => (/* binding */ validators)\n/* harmony export */ });\nconst CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\n};\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\n\n//# sourceMappingURL=bundle-mjs.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy90YWlsd2luZC1tZXJnZS9kaXN0L2J1bmRsZS1tanMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsMEJBQTBCO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxPQUFPLG1CQUFtQixrQkFBa0IsYUFBYTtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyxZQUFZO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiwyQkFBMkI7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsZ0JBQWdCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDNEg7QUFDNUgiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL3RhaWx3aW5kLW1lcmdlL2Rpc3QvYnVuZGxlLW1qcy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQ0xBU1NfUEFSVF9TRVBBUkFUT1IgPSAnLSc7XG5jb25zdCBjcmVhdGVDbGFzc0dyb3VwVXRpbHMgPSBjb25maWcgPT4ge1xuICBjb25zdCBjbGFzc01hcCA9IGNyZWF0ZUNsYXNzTWFwKGNvbmZpZyk7XG4gIGNvbnN0IHtcbiAgICBjb25mbGljdGluZ0NsYXNzR3JvdXBzLFxuICAgIGNvbmZsaWN0aW5nQ2xhc3NHcm91cE1vZGlmaWVyc1xuICB9ID0gY29uZmlnO1xuICBjb25zdCBnZXRDbGFzc0dyb3VwSWQgPSBjbGFzc05hbWUgPT4ge1xuICAgIGNvbnN0IGNsYXNzUGFydHMgPSBjbGFzc05hbWUuc3BsaXQoQ0xBU1NfUEFSVF9TRVBBUkFUT1IpO1xuICAgIC8vIENsYXNzZXMgbGlrZSBgLWluc2V0LTFgIHByb2R1Y2UgYW4gZW1wdHkgc3RyaW5nIGFzIGZpcnN0IGNsYXNzUGFydC4gV2UgYXNzdW1lIHRoYXQgY2xhc3NlcyBmb3IgbmVnYXRpdmUgdmFsdWVzIGFyZSB1c2VkIGNvcnJlY3RseSBhbmQgcmVtb3ZlIGl0IGZyb20gY2xhc3NQYXJ0cy5cbiAgICBpZiAoY2xhc3NQYXJ0c1swXSA9PT0gJycgJiYgY2xhc3NQYXJ0cy5sZW5ndGggIT09IDEpIHtcbiAgICAgIGNsYXNzUGFydHMuc2hpZnQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGdldEdyb3VwUmVjdXJzaXZlKGNsYXNzUGFydHMsIGNsYXNzTWFwKSB8fCBnZXRHcm91cElkRm9yQXJiaXRyYXJ5UHJvcGVydHkoY2xhc3NOYW1lKTtcbiAgfTtcbiAgY29uc3QgZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzID0gKGNsYXNzR3JvdXBJZCwgaGFzUG9zdGZpeE1vZGlmaWVyKSA9PiB7XG4gICAgY29uc3QgY29uZmxpY3RzID0gY29uZmxpY3RpbmdDbGFzc0dyb3Vwc1tjbGFzc0dyb3VwSWRdIHx8IFtdO1xuICAgIGlmIChoYXNQb3N0Zml4TW9kaWZpZXIgJiYgY29uZmxpY3RpbmdDbGFzc0dyb3VwTW9kaWZpZXJzW2NsYXNzR3JvdXBJZF0pIHtcbiAgICAgIHJldHVybiBbLi4uY29uZmxpY3RzLCAuLi5jb25mbGljdGluZ0NsYXNzR3JvdXBNb2RpZmllcnNbY2xhc3NHcm91cElkXV07XG4gICAgfVxuICAgIHJldHVybiBjb25mbGljdHM7XG4gIH07XG4gIHJldHVybiB7XG4gICAgZ2V0Q2xhc3NHcm91cElkLFxuICAgIGdldENvbmZsaWN0aW5nQ2xhc3NHcm91cElkc1xuICB9O1xufTtcbmNvbnN0IGdldEdyb3VwUmVjdXJzaXZlID0gKGNsYXNzUGFydHMsIGNsYXNzUGFydE9iamVjdCkgPT4ge1xuICBpZiAoY2xhc3NQYXJ0cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gY2xhc3NQYXJ0T2JqZWN0LmNsYXNzR3JvdXBJZDtcbiAgfVxuICBjb25zdCBjdXJyZW50Q2xhc3NQYXJ0ID0gY2xhc3NQYXJ0c1swXTtcbiAgY29uc3QgbmV4dENsYXNzUGFydE9iamVjdCA9IGNsYXNzUGFydE9iamVjdC5uZXh0UGFydC5nZXQoY3VycmVudENsYXNzUGFydCk7XG4gIGNvbnN0IGNsYXNzR3JvdXBGcm9tTmV4dENsYXNzUGFydCA9IG5leHRDbGFzc1BhcnRPYmplY3QgPyBnZXRHcm91cFJlY3Vyc2l2ZShjbGFzc1BhcnRzLnNsaWNlKDEpLCBuZXh0Q2xhc3NQYXJ0T2JqZWN0KSA6IHVuZGVmaW5lZDtcbiAgaWYgKGNsYXNzR3JvdXBGcm9tTmV4dENsYXNzUGFydCkge1xuICAgIHJldHVybiBjbGFzc0dyb3VwRnJvbU5leHRDbGFzc1BhcnQ7XG4gIH1cbiAgaWYgKGNsYXNzUGFydE9iamVjdC52YWxpZGF0b3JzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgY2xhc3NSZXN0ID0gY2xhc3NQYXJ0cy5qb2luKENMQVNTX1BBUlRfU0VQQVJBVE9SKTtcbiAgcmV0dXJuIGNsYXNzUGFydE9iamVjdC52YWxpZGF0b3JzLmZpbmQoKHtcbiAgICB2YWxpZGF0b3JcbiAgfSkgPT4gdmFsaWRhdG9yKGNsYXNzUmVzdCkpPy5jbGFzc0dyb3VwSWQ7XG59O1xuY29uc3QgYXJiaXRyYXJ5UHJvcGVydHlSZWdleCA9IC9eXFxbKC4rKVxcXSQvO1xuY29uc3QgZ2V0R3JvdXBJZEZvckFyYml0cmFyeVByb3BlcnR5ID0gY2xhc3NOYW1lID0+IHtcbiAgaWYgKGFyYml0cmFyeVByb3BlcnR5UmVnZXgudGVzdChjbGFzc05hbWUpKSB7XG4gICAgY29uc3QgYXJiaXRyYXJ5UHJvcGVydHlDbGFzc05hbWUgPSBhcmJpdHJhcnlQcm9wZXJ0eVJlZ2V4LmV4ZWMoY2xhc3NOYW1lKVsxXTtcbiAgICBjb25zdCBwcm9wZXJ0eSA9IGFyYml0cmFyeVByb3BlcnR5Q2xhc3NOYW1lPy5zdWJzdHJpbmcoMCwgYXJiaXRyYXJ5UHJvcGVydHlDbGFzc05hbWUuaW5kZXhPZignOicpKTtcbiAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgIC8vIEkgdXNlIHR3byBkb3RzIGhlcmUgYmVjYXVzZSBvbmUgZG90IGlzIHVzZWQgYXMgcHJlZml4IGZvciBjbGFzcyBncm91cHMgaW4gcGx1Z2luc1xuICAgICAgcmV0dXJuICdhcmJpdHJhcnkuLicgKyBwcm9wZXJ0eTtcbiAgICB9XG4gIH1cbn07XG4vKipcbiAqIEV4cG9ydGVkIGZvciB0ZXN0aW5nIG9ubHlcbiAqL1xuY29uc3QgY3JlYXRlQ2xhc3NNYXAgPSBjb25maWcgPT4ge1xuICBjb25zdCB7XG4gICAgdGhlbWUsXG4gICAgcHJlZml4XG4gIH0gPSBjb25maWc7XG4gIGNvbnN0IGNsYXNzTWFwID0ge1xuICAgIG5leHRQYXJ0OiBuZXcgTWFwKCksXG4gICAgdmFsaWRhdG9yczogW11cbiAgfTtcbiAgY29uc3QgcHJlZml4ZWRDbGFzc0dyb3VwRW50cmllcyA9IGdldFByZWZpeGVkQ2xhc3NHcm91cEVudHJpZXMoT2JqZWN0LmVudHJpZXMoY29uZmlnLmNsYXNzR3JvdXBzKSwgcHJlZml4KTtcbiAgcHJlZml4ZWRDbGFzc0dyb3VwRW50cmllcy5mb3JFYWNoKChbY2xhc3NHcm91cElkLCBjbGFzc0dyb3VwXSkgPT4ge1xuICAgIHByb2Nlc3NDbGFzc2VzUmVjdXJzaXZlbHkoY2xhc3NHcm91cCwgY2xhc3NNYXAsIGNsYXNzR3JvdXBJZCwgdGhlbWUpO1xuICB9KTtcbiAgcmV0dXJuIGNsYXNzTWFwO1xufTtcbmNvbnN0IHByb2Nlc3NDbGFzc2VzUmVjdXJzaXZlbHkgPSAoY2xhc3NHcm91cCwgY2xhc3NQYXJ0T2JqZWN0LCBjbGFzc0dyb3VwSWQsIHRoZW1lKSA9PiB7XG4gIGNsYXNzR3JvdXAuZm9yRWFjaChjbGFzc0RlZmluaXRpb24gPT4ge1xuICAgIGlmICh0eXBlb2YgY2xhc3NEZWZpbml0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgY2xhc3NQYXJ0T2JqZWN0VG9FZGl0ID0gY2xhc3NEZWZpbml0aW9uID09PSAnJyA/IGNsYXNzUGFydE9iamVjdCA6IGdldFBhcnQoY2xhc3NQYXJ0T2JqZWN0LCBjbGFzc0RlZmluaXRpb24pO1xuICAgICAgY2xhc3NQYXJ0T2JqZWN0VG9FZGl0LmNsYXNzR3JvdXBJZCA9IGNsYXNzR3JvdXBJZDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjbGFzc0RlZmluaXRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGlmIChpc1RoZW1lR2V0dGVyKGNsYXNzRGVmaW5pdGlvbikpIHtcbiAgICAgICAgcHJvY2Vzc0NsYXNzZXNSZWN1cnNpdmVseShjbGFzc0RlZmluaXRpb24odGhlbWUpLCBjbGFzc1BhcnRPYmplY3QsIGNsYXNzR3JvdXBJZCwgdGhlbWUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjbGFzc1BhcnRPYmplY3QudmFsaWRhdG9ycy5wdXNoKHtcbiAgICAgICAgdmFsaWRhdG9yOiBjbGFzc0RlZmluaXRpb24sXG4gICAgICAgIGNsYXNzR3JvdXBJZFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIE9iamVjdC5lbnRyaWVzKGNsYXNzRGVmaW5pdGlvbikuZm9yRWFjaCgoW2tleSwgY2xhc3NHcm91cF0pID0+IHtcbiAgICAgIHByb2Nlc3NDbGFzc2VzUmVjdXJzaXZlbHkoY2xhc3NHcm91cCwgZ2V0UGFydChjbGFzc1BhcnRPYmplY3QsIGtleSksIGNsYXNzR3JvdXBJZCwgdGhlbWUpO1xuICAgIH0pO1xuICB9KTtcbn07XG5jb25zdCBnZXRQYXJ0ID0gKGNsYXNzUGFydE9iamVjdCwgcGF0aCkgPT4ge1xuICBsZXQgY3VycmVudENsYXNzUGFydE9iamVjdCA9IGNsYXNzUGFydE9iamVjdDtcbiAgcGF0aC5zcGxpdChDTEFTU19QQVJUX1NFUEFSQVRPUikuZm9yRWFjaChwYXRoUGFydCA9PiB7XG4gICAgaWYgKCFjdXJyZW50Q2xhc3NQYXJ0T2JqZWN0Lm5leHRQYXJ0LmhhcyhwYXRoUGFydCkpIHtcbiAgICAgIGN1cnJlbnRDbGFzc1BhcnRPYmplY3QubmV4dFBhcnQuc2V0KHBhdGhQYXJ0LCB7XG4gICAgICAgIG5leHRQYXJ0OiBuZXcgTWFwKCksXG4gICAgICAgIHZhbGlkYXRvcnM6IFtdXG4gICAgICB9KTtcbiAgICB9XG4gICAgY3VycmVudENsYXNzUGFydE9iamVjdCA9IGN1cnJlbnRDbGFzc1BhcnRPYmplY3QubmV4dFBhcnQuZ2V0KHBhdGhQYXJ0KTtcbiAgfSk7XG4gIHJldHVybiBjdXJyZW50Q2xhc3NQYXJ0T2JqZWN0O1xufTtcbmNvbnN0IGlzVGhlbWVHZXR0ZXIgPSBmdW5jID0+IGZ1bmMuaXNUaGVtZUdldHRlcjtcbmNvbnN0IGdldFByZWZpeGVkQ2xhc3NHcm91cEVudHJpZXMgPSAoY2xhc3NHcm91cEVudHJpZXMsIHByZWZpeCkgPT4ge1xuICBpZiAoIXByZWZpeCkge1xuICAgIHJldHVybiBjbGFzc0dyb3VwRW50cmllcztcbiAgfVxuICByZXR1cm4gY2xhc3NHcm91cEVudHJpZXMubWFwKChbY2xhc3NHcm91cElkLCBjbGFzc0dyb3VwXSkgPT4ge1xuICAgIGNvbnN0IHByZWZpeGVkQ2xhc3NHcm91cCA9IGNsYXNzR3JvdXAubWFwKGNsYXNzRGVmaW5pdGlvbiA9PiB7XG4gICAgICBpZiAodHlwZW9mIGNsYXNzRGVmaW5pdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHByZWZpeCArIGNsYXNzRGVmaW5pdGlvbjtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgY2xhc3NEZWZpbml0aW9uID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGNsYXNzRGVmaW5pdGlvbikubWFwKChba2V5LCB2YWx1ZV0pID0+IFtwcmVmaXggKyBrZXksIHZhbHVlXSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNsYXNzRGVmaW5pdGlvbjtcbiAgICB9KTtcbiAgICByZXR1cm4gW2NsYXNzR3JvdXBJZCwgcHJlZml4ZWRDbGFzc0dyb3VwXTtcbiAgfSk7XG59O1xuXG4vLyBMUlUgY2FjaGUgaW5zcGlyZWQgZnJvbSBoYXNobHJ1IChodHRwczovL2dpdGh1Yi5jb20vZG9taW5pY3RhcnIvaGFzaGxydS9ibG9iL3YxLjAuNC9pbmRleC5qcykgYnV0IG9iamVjdCByZXBsYWNlZCB3aXRoIE1hcCB0byBpbXByb3ZlIHBlcmZvcm1hbmNlXG5jb25zdCBjcmVhdGVMcnVDYWNoZSA9IG1heENhY2hlU2l6ZSA9PiB7XG4gIGlmIChtYXhDYWNoZVNpemUgPCAxKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgc2V0OiAoKSA9PiB7fVxuICAgIH07XG4gIH1cbiAgbGV0IGNhY2hlU2l6ZSA9IDA7XG4gIGxldCBjYWNoZSA9IG5ldyBNYXAoKTtcbiAgbGV0IHByZXZpb3VzQ2FjaGUgPSBuZXcgTWFwKCk7XG4gIGNvbnN0IHVwZGF0ZSA9IChrZXksIHZhbHVlKSA9PiB7XG4gICAgY2FjaGUuc2V0KGtleSwgdmFsdWUpO1xuICAgIGNhY2hlU2l6ZSsrO1xuICAgIGlmIChjYWNoZVNpemUgPiBtYXhDYWNoZVNpemUpIHtcbiAgICAgIGNhY2hlU2l6ZSA9IDA7XG4gICAgICBwcmV2aW91c0NhY2hlID0gY2FjaGU7XG4gICAgICBjYWNoZSA9IG5ldyBNYXAoKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiB7XG4gICAgZ2V0KGtleSkge1xuICAgICAgbGV0IHZhbHVlID0gY2FjaGUuZ2V0KGtleSk7XG4gICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAoKHZhbHVlID0gcHJldmlvdXNDYWNoZS5nZXQoa2V5KSkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB1cGRhdGUoa2V5LCB2YWx1ZSk7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHNldChrZXksIHZhbHVlKSB7XG4gICAgICBpZiAoY2FjaGUuaGFzKGtleSkpIHtcbiAgICAgICAgY2FjaGUuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXBkYXRlKGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn07XG5jb25zdCBJTVBPUlRBTlRfTU9ESUZJRVIgPSAnISc7XG5jb25zdCBjcmVhdGVQYXJzZUNsYXNzTmFtZSA9IGNvbmZpZyA9PiB7XG4gIGNvbnN0IHtcbiAgICBzZXBhcmF0b3IsXG4gICAgZXhwZXJpbWVudGFsUGFyc2VDbGFzc05hbWVcbiAgfSA9IGNvbmZpZztcbiAgY29uc3QgaXNTZXBhcmF0b3JTaW5nbGVDaGFyYWN0ZXIgPSBzZXBhcmF0b3IubGVuZ3RoID09PSAxO1xuICBjb25zdCBmaXJzdFNlcGFyYXRvckNoYXJhY3RlciA9IHNlcGFyYXRvclswXTtcbiAgY29uc3Qgc2VwYXJhdG9yTGVuZ3RoID0gc2VwYXJhdG9yLmxlbmd0aDtcbiAgLy8gcGFyc2VDbGFzc05hbWUgaW5zcGlyZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9ibG9iL3YzLjIuMi9zcmMvdXRpbC9zcGxpdEF0VG9wTGV2ZWxPbmx5LmpzXG4gIGNvbnN0IHBhcnNlQ2xhc3NOYW1lID0gY2xhc3NOYW1lID0+IHtcbiAgICBjb25zdCBtb2RpZmllcnMgPSBbXTtcbiAgICBsZXQgYnJhY2tldERlcHRoID0gMDtcbiAgICBsZXQgbW9kaWZpZXJTdGFydCA9IDA7XG4gICAgbGV0IHBvc3RmaXhNb2RpZmllclBvc2l0aW9uO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBjbGFzc05hbWUubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBsZXQgY3VycmVudENoYXJhY3RlciA9IGNsYXNzTmFtZVtpbmRleF07XG4gICAgICBpZiAoYnJhY2tldERlcHRoID09PSAwKSB7XG4gICAgICAgIGlmIChjdXJyZW50Q2hhcmFjdGVyID09PSBmaXJzdFNlcGFyYXRvckNoYXJhY3RlciAmJiAoaXNTZXBhcmF0b3JTaW5nbGVDaGFyYWN0ZXIgfHwgY2xhc3NOYW1lLnNsaWNlKGluZGV4LCBpbmRleCArIHNlcGFyYXRvckxlbmd0aCkgPT09IHNlcGFyYXRvcikpIHtcbiAgICAgICAgICBtb2RpZmllcnMucHVzaChjbGFzc05hbWUuc2xpY2UobW9kaWZpZXJTdGFydCwgaW5kZXgpKTtcbiAgICAgICAgICBtb2RpZmllclN0YXJ0ID0gaW5kZXggKyBzZXBhcmF0b3JMZW5ndGg7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGN1cnJlbnRDaGFyYWN0ZXIgPT09ICcvJykge1xuICAgICAgICAgIHBvc3RmaXhNb2RpZmllclBvc2l0aW9uID0gaW5kZXg7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjdXJyZW50Q2hhcmFjdGVyID09PSAnWycpIHtcbiAgICAgICAgYnJhY2tldERlcHRoKys7XG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnRDaGFyYWN0ZXIgPT09ICddJykge1xuICAgICAgICBicmFja2V0RGVwdGgtLTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgYmFzZUNsYXNzTmFtZVdpdGhJbXBvcnRhbnRNb2RpZmllciA9IG1vZGlmaWVycy5sZW5ndGggPT09IDAgPyBjbGFzc05hbWUgOiBjbGFzc05hbWUuc3Vic3RyaW5nKG1vZGlmaWVyU3RhcnQpO1xuICAgIGNvbnN0IGhhc0ltcG9ydGFudE1vZGlmaWVyID0gYmFzZUNsYXNzTmFtZVdpdGhJbXBvcnRhbnRNb2RpZmllci5zdGFydHNXaXRoKElNUE9SVEFOVF9NT0RJRklFUik7XG4gICAgY29uc3QgYmFzZUNsYXNzTmFtZSA9IGhhc0ltcG9ydGFudE1vZGlmaWVyID8gYmFzZUNsYXNzTmFtZVdpdGhJbXBvcnRhbnRNb2RpZmllci5zdWJzdHJpbmcoMSkgOiBiYXNlQ2xhc3NOYW1lV2l0aEltcG9ydGFudE1vZGlmaWVyO1xuICAgIGNvbnN0IG1heWJlUG9zdGZpeE1vZGlmaWVyUG9zaXRpb24gPSBwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiAmJiBwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiA+IG1vZGlmaWVyU3RhcnQgPyBwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiAtIG1vZGlmaWVyU3RhcnQgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZGlmaWVycyxcbiAgICAgIGhhc0ltcG9ydGFudE1vZGlmaWVyLFxuICAgICAgYmFzZUNsYXNzTmFtZSxcbiAgICAgIG1heWJlUG9zdGZpeE1vZGlmaWVyUG9zaXRpb25cbiAgICB9O1xuICB9O1xuICBpZiAoZXhwZXJpbWVudGFsUGFyc2VDbGFzc05hbWUpIHtcbiAgICByZXR1cm4gY2xhc3NOYW1lID0+IGV4cGVyaW1lbnRhbFBhcnNlQ2xhc3NOYW1lKHtcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIHBhcnNlQ2xhc3NOYW1lXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHBhcnNlQ2xhc3NOYW1lO1xufTtcbi8qKlxuICogU29ydHMgbW9kaWZpZXJzIGFjY29yZGluZyB0byBmb2xsb3dpbmcgc2NoZW1hOlxuICogLSBQcmVkZWZpbmVkIG1vZGlmaWVycyBhcmUgc29ydGVkIGFscGhhYmV0aWNhbGx5XG4gKiAtIFdoZW4gYW4gYXJiaXRyYXJ5IHZhcmlhbnQgYXBwZWFycywgaXQgbXVzdCBiZSBwcmVzZXJ2ZWQgd2hpY2ggbW9kaWZpZXJzIGFyZSBiZWZvcmUgYW5kIGFmdGVyIGl0XG4gKi9cbmNvbnN0IHNvcnRNb2RpZmllcnMgPSBtb2RpZmllcnMgPT4ge1xuICBpZiAobW9kaWZpZXJzLmxlbmd0aCA8PSAxKSB7XG4gICAgcmV0dXJuIG1vZGlmaWVycztcbiAgfVxuICBjb25zdCBzb3J0ZWRNb2RpZmllcnMgPSBbXTtcbiAgbGV0IHVuc29ydGVkTW9kaWZpZXJzID0gW107XG4gIG1vZGlmaWVycy5mb3JFYWNoKG1vZGlmaWVyID0+IHtcbiAgICBjb25zdCBpc0FyYml0cmFyeVZhcmlhbnQgPSBtb2RpZmllclswXSA9PT0gJ1snO1xuICAgIGlmIChpc0FyYml0cmFyeVZhcmlhbnQpIHtcbiAgICAgIHNvcnRlZE1vZGlmaWVycy5wdXNoKC4uLnVuc29ydGVkTW9kaWZpZXJzLnNvcnQoKSwgbW9kaWZpZXIpO1xuICAgICAgdW5zb3J0ZWRNb2RpZmllcnMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdW5zb3J0ZWRNb2RpZmllcnMucHVzaChtb2RpZmllcik7XG4gICAgfVxuICB9KTtcbiAgc29ydGVkTW9kaWZpZXJzLnB1c2goLi4udW5zb3J0ZWRNb2RpZmllcnMuc29ydCgpKTtcbiAgcmV0dXJuIHNvcnRlZE1vZGlmaWVycztcbn07XG5jb25zdCBjcmVhdGVDb25maWdVdGlscyA9IGNvbmZpZyA9PiAoe1xuICBjYWNoZTogY3JlYXRlTHJ1Q2FjaGUoY29uZmlnLmNhY2hlU2l6ZSksXG4gIHBhcnNlQ2xhc3NOYW1lOiBjcmVhdGVQYXJzZUNsYXNzTmFtZShjb25maWcpLFxuICAuLi5jcmVhdGVDbGFzc0dyb3VwVXRpbHMoY29uZmlnKVxufSk7XG5jb25zdCBTUExJVF9DTEFTU0VTX1JFR0VYID0gL1xccysvO1xuY29uc3QgbWVyZ2VDbGFzc0xpc3QgPSAoY2xhc3NMaXN0LCBjb25maWdVdGlscykgPT4ge1xuICBjb25zdCB7XG4gICAgcGFyc2VDbGFzc05hbWUsXG4gICAgZ2V0Q2xhc3NHcm91cElkLFxuICAgIGdldENvbmZsaWN0aW5nQ2xhc3NHcm91cElkc1xuICB9ID0gY29uZmlnVXRpbHM7XG4gIC8qKlxuICAgKiBTZXQgb2YgY2xhc3NHcm91cElkcyBpbiBmb2xsb3dpbmcgZm9ybWF0OlxuICAgKiBge2ltcG9ydGFudE1vZGlmaWVyfXt2YXJpYW50TW9kaWZpZXJzfXtjbGFzc0dyb3VwSWR9YFxuICAgKiBAZXhhbXBsZSAnZmxvYXQnXG4gICAqIEBleGFtcGxlICdob3Zlcjpmb2N1czpiZy1jb2xvcidcbiAgICogQGV4YW1wbGUgJ21kOiFwcidcbiAgICovXG4gIGNvbnN0IGNsYXNzR3JvdXBzSW5Db25mbGljdCA9IFtdO1xuICBjb25zdCBjbGFzc05hbWVzID0gY2xhc3NMaXN0LnRyaW0oKS5zcGxpdChTUExJVF9DTEFTU0VTX1JFR0VYKTtcbiAgbGV0IHJlc3VsdCA9ICcnO1xuICBmb3IgKGxldCBpbmRleCA9IGNsYXNzTmFtZXMubGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXggLT0gMSkge1xuICAgIGNvbnN0IG9yaWdpbmFsQ2xhc3NOYW1lID0gY2xhc3NOYW1lc1tpbmRleF07XG4gICAgY29uc3Qge1xuICAgICAgbW9kaWZpZXJzLFxuICAgICAgaGFzSW1wb3J0YW50TW9kaWZpZXIsXG4gICAgICBiYXNlQ2xhc3NOYW1lLFxuICAgICAgbWF5YmVQb3N0Zml4TW9kaWZpZXJQb3NpdGlvblxuICAgIH0gPSBwYXJzZUNsYXNzTmFtZShvcmlnaW5hbENsYXNzTmFtZSk7XG4gICAgbGV0IGhhc1Bvc3RmaXhNb2RpZmllciA9IEJvb2xlYW4obWF5YmVQb3N0Zml4TW9kaWZpZXJQb3NpdGlvbik7XG4gICAgbGV0IGNsYXNzR3JvdXBJZCA9IGdldENsYXNzR3JvdXBJZChoYXNQb3N0Zml4TW9kaWZpZXIgPyBiYXNlQ2xhc3NOYW1lLnN1YnN0cmluZygwLCBtYXliZVBvc3RmaXhNb2RpZmllclBvc2l0aW9uKSA6IGJhc2VDbGFzc05hbWUpO1xuICAgIGlmICghY2xhc3NHcm91cElkKSB7XG4gICAgICBpZiAoIWhhc1Bvc3RmaXhNb2RpZmllcikge1xuICAgICAgICAvLyBOb3QgYSBUYWlsd2luZCBjbGFzc1xuICAgICAgICByZXN1bHQgPSBvcmlnaW5hbENsYXNzTmFtZSArIChyZXN1bHQubGVuZ3RoID4gMCA/ICcgJyArIHJlc3VsdCA6IHJlc3VsdCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY2xhc3NHcm91cElkID0gZ2V0Q2xhc3NHcm91cElkKGJhc2VDbGFzc05hbWUpO1xuICAgICAgaWYgKCFjbGFzc0dyb3VwSWQpIHtcbiAgICAgICAgLy8gTm90IGEgVGFpbHdpbmQgY2xhc3NcbiAgICAgICAgcmVzdWx0ID0gb3JpZ2luYWxDbGFzc05hbWUgKyAocmVzdWx0Lmxlbmd0aCA+IDAgPyAnICcgKyByZXN1bHQgOiByZXN1bHQpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGhhc1Bvc3RmaXhNb2RpZmllciA9IGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB2YXJpYW50TW9kaWZpZXIgPSBzb3J0TW9kaWZpZXJzKG1vZGlmaWVycykuam9pbignOicpO1xuICAgIGNvbnN0IG1vZGlmaWVySWQgPSBoYXNJbXBvcnRhbnRNb2RpZmllciA/IHZhcmlhbnRNb2RpZmllciArIElNUE9SVEFOVF9NT0RJRklFUiA6IHZhcmlhbnRNb2RpZmllcjtcbiAgICBjb25zdCBjbGFzc0lkID0gbW9kaWZpZXJJZCArIGNsYXNzR3JvdXBJZDtcbiAgICBpZiAoY2xhc3NHcm91cHNJbkNvbmZsaWN0LmluY2x1ZGVzKGNsYXNzSWQpKSB7XG4gICAgICAvLyBUYWlsd2luZCBjbGFzcyBvbWl0dGVkIGR1ZSB0byBjb25mbGljdFxuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNsYXNzR3JvdXBzSW5Db25mbGljdC5wdXNoKGNsYXNzSWQpO1xuICAgIGNvbnN0IGNvbmZsaWN0R3JvdXBzID0gZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzKGNsYXNzR3JvdXBJZCwgaGFzUG9zdGZpeE1vZGlmaWVyKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbmZsaWN0R3JvdXBzLmxlbmd0aDsgKytpKSB7XG4gICAgICBjb25zdCBncm91cCA9IGNvbmZsaWN0R3JvdXBzW2ldO1xuICAgICAgY2xhc3NHcm91cHNJbkNvbmZsaWN0LnB1c2gobW9kaWZpZXJJZCArIGdyb3VwKTtcbiAgICB9XG4gICAgLy8gVGFpbHdpbmQgY2xhc3Mgbm90IGluIGNvbmZsaWN0XG4gICAgcmVzdWx0ID0gb3JpZ2luYWxDbGFzc05hbWUgKyAocmVzdWx0Lmxlbmd0aCA+IDAgPyAnICcgKyByZXN1bHQgOiByZXN1bHQpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vKipcbiAqIFRoZSBjb2RlIGluIHRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbHVrZWVkL2Nsc3ggYW5kIG1vZGlmaWVkIHRvIHN1aXQgdGhlIG5lZWRzIG9mIHRhaWx3aW5kLW1lcmdlIGJldHRlci5cbiAqXG4gKiBTcGVjaWZpY2FsbHk6XG4gKiAtIFJ1bnRpbWUgY29kZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlZWQvY2xzeC9ibG9iL3YxLjIuMS9zcmMvaW5kZXguanNcbiAqIC0gVHlwZVNjcmlwdCB0eXBlcyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlZWQvY2xzeC9ibG9iL3YxLjIuMS9jbHN4LmQudHNcbiAqXG4gKiBPcmlnaW5hbCBjb2RlIGhhcyBNSVQgbGljZW5zZTogQ29weXJpZ2h0IChjKSBMdWtlIEVkd2FyZHMgPGx1a2UuZWR3YXJkczA1QGdtYWlsLmNvbT4gKGx1a2VlZC5jb20pXG4gKi9cbmZ1bmN0aW9uIHR3Sm9pbigpIHtcbiAgbGV0IGluZGV4ID0gMDtcbiAgbGV0IGFyZ3VtZW50O1xuICBsZXQgcmVzb2x2ZWRWYWx1ZTtcbiAgbGV0IHN0cmluZyA9ICcnO1xuICB3aGlsZSAoaW5kZXggPCBhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgaWYgKGFyZ3VtZW50ID0gYXJndW1lbnRzW2luZGV4KytdKSB7XG4gICAgICBpZiAocmVzb2x2ZWRWYWx1ZSA9IHRvVmFsdWUoYXJndW1lbnQpKSB7XG4gICAgICAgIHN0cmluZyAmJiAoc3RyaW5nICs9ICcgJyk7XG4gICAgICAgIHN0cmluZyArPSByZXNvbHZlZFZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gc3RyaW5nO1xufVxuY29uc3QgdG9WYWx1ZSA9IG1peCA9PiB7XG4gIGlmICh0eXBlb2YgbWl4ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBtaXg7XG4gIH1cbiAgbGV0IHJlc29sdmVkVmFsdWU7XG4gIGxldCBzdHJpbmcgPSAnJztcbiAgZm9yIChsZXQgayA9IDA7IGsgPCBtaXgubGVuZ3RoOyBrKyspIHtcbiAgICBpZiAobWl4W2tdKSB7XG4gICAgICBpZiAocmVzb2x2ZWRWYWx1ZSA9IHRvVmFsdWUobWl4W2tdKSkge1xuICAgICAgICBzdHJpbmcgJiYgKHN0cmluZyArPSAnICcpO1xuICAgICAgICBzdHJpbmcgKz0gcmVzb2x2ZWRWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0cmluZztcbn07XG5mdW5jdGlvbiBjcmVhdGVUYWlsd2luZE1lcmdlKGNyZWF0ZUNvbmZpZ0ZpcnN0LCAuLi5jcmVhdGVDb25maWdSZXN0KSB7XG4gIGxldCBjb25maWdVdGlscztcbiAgbGV0IGNhY2hlR2V0O1xuICBsZXQgY2FjaGVTZXQ7XG4gIGxldCBmdW5jdGlvblRvQ2FsbCA9IGluaXRUYWlsd2luZE1lcmdlO1xuICBmdW5jdGlvbiBpbml0VGFpbHdpbmRNZXJnZShjbGFzc0xpc3QpIHtcbiAgICBjb25zdCBjb25maWcgPSBjcmVhdGVDb25maWdSZXN0LnJlZHVjZSgocHJldmlvdXNDb25maWcsIGNyZWF0ZUNvbmZpZ0N1cnJlbnQpID0+IGNyZWF0ZUNvbmZpZ0N1cnJlbnQocHJldmlvdXNDb25maWcpLCBjcmVhdGVDb25maWdGaXJzdCgpKTtcbiAgICBjb25maWdVdGlscyA9IGNyZWF0ZUNvbmZpZ1V0aWxzKGNvbmZpZyk7XG4gICAgY2FjaGVHZXQgPSBjb25maWdVdGlscy5jYWNoZS5nZXQ7XG4gICAgY2FjaGVTZXQgPSBjb25maWdVdGlscy5jYWNoZS5zZXQ7XG4gICAgZnVuY3Rpb25Ub0NhbGwgPSB0YWlsd2luZE1lcmdlO1xuICAgIHJldHVybiB0YWlsd2luZE1lcmdlKGNsYXNzTGlzdCk7XG4gIH1cbiAgZnVuY3Rpb24gdGFpbHdpbmRNZXJnZShjbGFzc0xpc3QpIHtcbiAgICBjb25zdCBjYWNoZWRSZXN1bHQgPSBjYWNoZUdldChjbGFzc0xpc3QpO1xuICAgIGlmIChjYWNoZWRSZXN1bHQpIHtcbiAgICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IG1lcmdlQ2xhc3NMaXN0KGNsYXNzTGlzdCwgY29uZmlnVXRpbHMpO1xuICAgIGNhY2hlU2V0KGNsYXNzTGlzdCwgcmVzdWx0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIHJldHVybiBmdW5jdGlvbiBjYWxsVGFpbHdpbmRNZXJnZSgpIHtcbiAgICByZXR1cm4gZnVuY3Rpb25Ub0NhbGwodHdKb2luLmFwcGx5KG51bGwsIGFyZ3VtZW50cykpO1xuICB9O1xufVxuY29uc3QgZnJvbVRoZW1lID0ga2V5ID0+IHtcbiAgY29uc3QgdGhlbWVHZXR0ZXIgPSB0aGVtZSA9PiB0aGVtZVtrZXldIHx8IFtdO1xuICB0aGVtZUdldHRlci5pc1RoZW1lR2V0dGVyID0gdHJ1ZTtcbiAgcmV0dXJuIHRoZW1lR2V0dGVyO1xufTtcbmNvbnN0IGFyYml0cmFyeVZhbHVlUmVnZXggPSAvXlxcWyg/OihbYS16LV0rKTopPyguKylcXF0kL2k7XG5jb25zdCBmcmFjdGlvblJlZ2V4ID0gL15cXGQrXFwvXFxkKyQvO1xuY29uc3Qgc3RyaW5nTGVuZ3RocyA9IC8qI19fUFVSRV9fKi9uZXcgU2V0KFsncHgnLCAnZnVsbCcsICdzY3JlZW4nXSk7XG5jb25zdCB0c2hpcnRVbml0UmVnZXggPSAvXihcXGQrKFxcLlxcZCspPyk/KHhzfHNtfG1kfGxnfHhsKSQvO1xuY29uc3QgbGVuZ3RoVW5pdFJlZ2V4ID0gL1xcZCsoJXxweHxyP2VtfFtzZGxdP3YoW2h3aWJdfG1pbnxtYXgpfHB0fHBjfGlufGNtfG1tfGNhcHxjaHxleHxyP2xofGNxKHd8aHxpfGJ8bWlufG1heCkpfFxcYihjYWxjfG1pbnxtYXh8Y2xhbXApXFwoLitcXCl8XjAkLztcbmNvbnN0IGNvbG9yRnVuY3Rpb25SZWdleCA9IC9eKHJnYmE/fGhzbGE/fGh3Ynwob2spPyhsYWJ8bGNoKSlcXCguK1xcKSQvO1xuLy8gU2hhZG93IGFsd2F5cyBiZWdpbnMgd2l0aCB4IGFuZCB5IG9mZnNldCBzZXBhcmF0ZWQgYnkgdW5kZXJzY29yZSBvcHRpb25hbGx5IHByZXBlbmRlZCBieSBpbnNldFxuY29uc3Qgc2hhZG93UmVnZXggPSAvXihpbnNldF8pPy0/KChcXGQrKT9cXC4/KFxcZCspW2Etel0rfDApXy0/KChcXGQrKT9cXC4/KFxcZCspW2Etel0rfDApLztcbmNvbnN0IGltYWdlUmVnZXggPSAvXih1cmx8aW1hZ2V8aW1hZ2Utc2V0fGNyb3NzLWZhZGV8ZWxlbWVudHwocmVwZWF0aW5nLSk/KGxpbmVhcnxyYWRpYWx8Y29uaWMpLWdyYWRpZW50KVxcKC4rXFwpJC87XG5jb25zdCBpc0xlbmd0aCA9IHZhbHVlID0+IGlzTnVtYmVyKHZhbHVlKSB8fCBzdHJpbmdMZW5ndGhzLmhhcyh2YWx1ZSkgfHwgZnJhY3Rpb25SZWdleC50ZXN0KHZhbHVlKTtcbmNvbnN0IGlzQXJiaXRyYXJ5TGVuZ3RoID0gdmFsdWUgPT4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgJ2xlbmd0aCcsIGlzTGVuZ3RoT25seSk7XG5jb25zdCBpc051bWJlciA9IHZhbHVlID0+IEJvb2xlYW4odmFsdWUpICYmICFOdW1iZXIuaXNOYU4oTnVtYmVyKHZhbHVlKSk7XG5jb25zdCBpc0FyYml0cmFyeU51bWJlciA9IHZhbHVlID0+IGdldElzQXJiaXRyYXJ5VmFsdWUodmFsdWUsICdudW1iZXInLCBpc051bWJlcik7XG5jb25zdCBpc0ludGVnZXIgPSB2YWx1ZSA9PiBCb29sZWFuKHZhbHVlKSAmJiBOdW1iZXIuaXNJbnRlZ2VyKE51bWJlcih2YWx1ZSkpO1xuY29uc3QgaXNQZXJjZW50ID0gdmFsdWUgPT4gdmFsdWUuZW5kc1dpdGgoJyUnKSAmJiBpc051bWJlcih2YWx1ZS5zbGljZSgwLCAtMSkpO1xuY29uc3QgaXNBcmJpdHJhcnlWYWx1ZSA9IHZhbHVlID0+IGFyYml0cmFyeVZhbHVlUmVnZXgudGVzdCh2YWx1ZSk7XG5jb25zdCBpc1RzaGlydFNpemUgPSB2YWx1ZSA9PiB0c2hpcnRVbml0UmVnZXgudGVzdCh2YWx1ZSk7XG5jb25zdCBzaXplTGFiZWxzID0gLyojX19QVVJFX18qL25ldyBTZXQoWydsZW5ndGgnLCAnc2l6ZScsICdwZXJjZW50YWdlJ10pO1xuY29uc3QgaXNBcmJpdHJhcnlTaXplID0gdmFsdWUgPT4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgc2l6ZUxhYmVscywgaXNOZXZlcik7XG5jb25zdCBpc0FyYml0cmFyeVBvc2l0aW9uID0gdmFsdWUgPT4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgJ3Bvc2l0aW9uJywgaXNOZXZlcik7XG5jb25zdCBpbWFnZUxhYmVscyA9IC8qI19fUFVSRV9fKi9uZXcgU2V0KFsnaW1hZ2UnLCAndXJsJ10pO1xuY29uc3QgaXNBcmJpdHJhcnlJbWFnZSA9IHZhbHVlID0+IGdldElzQXJiaXRyYXJ5VmFsdWUodmFsdWUsIGltYWdlTGFiZWxzLCBpc0ltYWdlKTtcbmNvbnN0IGlzQXJiaXRyYXJ5U2hhZG93ID0gdmFsdWUgPT4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgJycsIGlzU2hhZG93KTtcbmNvbnN0IGlzQW55ID0gKCkgPT4gdHJ1ZTtcbmNvbnN0IGdldElzQXJiaXRyYXJ5VmFsdWUgPSAodmFsdWUsIGxhYmVsLCB0ZXN0VmFsdWUpID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gYXJiaXRyYXJ5VmFsdWVSZWdleC5leGVjKHZhbHVlKTtcbiAgaWYgKHJlc3VsdCkge1xuICAgIGlmIChyZXN1bHRbMV0pIHtcbiAgICAgIHJldHVybiB0eXBlb2YgbGFiZWwgPT09ICdzdHJpbmcnID8gcmVzdWx0WzFdID09PSBsYWJlbCA6IGxhYmVsLmhhcyhyZXN1bHRbMV0pO1xuICAgIH1cbiAgICByZXR1cm4gdGVzdFZhbHVlKHJlc3VsdFsyXSk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufTtcbmNvbnN0IGlzTGVuZ3RoT25seSA9IHZhbHVlID0+XG4vLyBgY29sb3JGdW5jdGlvblJlZ2V4YCBjaGVjayBpcyBuZWNlc3NhcnkgYmVjYXVzZSBjb2xvciBmdW5jdGlvbnMgY2FuIGhhdmUgcGVyY2VudGFnZXMgaW4gdGhlbSB3aGljaCB3aGljaCB3b3VsZCBiZSBpbmNvcnJlY3RseSBjbGFzc2lmaWVkIGFzIGxlbmd0aHMuXG4vLyBGb3IgZXhhbXBsZSwgYGhzbCgwIDAlIDAlKWAgd291bGQgYmUgY2xhc3NpZmllZCBhcyBhIGxlbmd0aCB3aXRob3V0IHRoaXMgY2hlY2suXG4vLyBJIGNvdWxkIGFsc28gdXNlIGxvb2tiZWhpbmQgYXNzZXJ0aW9uIGluIGBsZW5ndGhVbml0UmVnZXhgIGJ1dCB0aGF0IGlzbid0IHN1cHBvcnRlZCB3aWRlbHkgZW5vdWdoLlxubGVuZ3RoVW5pdFJlZ2V4LnRlc3QodmFsdWUpICYmICFjb2xvckZ1bmN0aW9uUmVnZXgudGVzdCh2YWx1ZSk7XG5jb25zdCBpc05ldmVyID0gKCkgPT4gZmFsc2U7XG5jb25zdCBpc1NoYWRvdyA9IHZhbHVlID0+IHNoYWRvd1JlZ2V4LnRlc3QodmFsdWUpO1xuY29uc3QgaXNJbWFnZSA9IHZhbHVlID0+IGltYWdlUmVnZXgudGVzdCh2YWx1ZSk7XG5jb25zdCB2YWxpZGF0b3JzID0gLyojX19QVVJFX18qL09iamVjdC5kZWZpbmVQcm9wZXJ0eSh7XG4gIF9fcHJvdG9fXzogbnVsbCxcbiAgaXNBbnksXG4gIGlzQXJiaXRyYXJ5SW1hZ2UsXG4gIGlzQXJiaXRyYXJ5TGVuZ3RoLFxuICBpc0FyYml0cmFyeU51bWJlcixcbiAgaXNBcmJpdHJhcnlQb3NpdGlvbixcbiAgaXNBcmJpdHJhcnlTaGFkb3csXG4gIGlzQXJiaXRyYXJ5U2l6ZSxcbiAgaXNBcmJpdHJhcnlWYWx1ZSxcbiAgaXNJbnRlZ2VyLFxuICBpc0xlbmd0aCxcbiAgaXNOdW1iZXIsXG4gIGlzUGVyY2VudCxcbiAgaXNUc2hpcnRTaXplXG59LCBTeW1ib2wudG9TdHJpbmdUYWcsIHtcbiAgdmFsdWU6ICdNb2R1bGUnXG59KTtcbmNvbnN0IGdldERlZmF1bHRDb25maWcgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbG9ycyA9IGZyb21UaGVtZSgnY29sb3JzJyk7XG4gIGNvbnN0IHNwYWNpbmcgPSBmcm9tVGhlbWUoJ3NwYWNpbmcnKTtcbiAgY29uc3QgYmx1ciA9IGZyb21UaGVtZSgnYmx1cicpO1xuICBjb25zdCBicmlnaHRuZXNzID0gZnJvbVRoZW1lKCdicmlnaHRuZXNzJyk7XG4gIGNvbnN0IGJvcmRlckNvbG9yID0gZnJvbVRoZW1lKCdib3JkZXJDb2xvcicpO1xuICBjb25zdCBib3JkZXJSYWRpdXMgPSBmcm9tVGhlbWUoJ2JvcmRlclJhZGl1cycpO1xuICBjb25zdCBib3JkZXJTcGFjaW5nID0gZnJvbVRoZW1lKCdib3JkZXJTcGFjaW5nJyk7XG4gIGNvbnN0IGJvcmRlcldpZHRoID0gZnJvbVRoZW1lKCdib3JkZXJXaWR0aCcpO1xuICBjb25zdCBjb250cmFzdCA9IGZyb21UaGVtZSgnY29udHJhc3QnKTtcbiAgY29uc3QgZ3JheXNjYWxlID0gZnJvbVRoZW1lKCdncmF5c2NhbGUnKTtcbiAgY29uc3QgaHVlUm90YXRlID0gZnJvbVRoZW1lKCdodWVSb3RhdGUnKTtcbiAgY29uc3QgaW52ZXJ0ID0gZnJvbVRoZW1lKCdpbnZlcnQnKTtcbiAgY29uc3QgZ2FwID0gZnJvbVRoZW1lKCdnYXAnKTtcbiAgY29uc3QgZ3JhZGllbnRDb2xvclN0b3BzID0gZnJvbVRoZW1lKCdncmFkaWVudENvbG9yU3RvcHMnKTtcbiAgY29uc3QgZ3JhZGllbnRDb2xvclN0b3BQb3NpdGlvbnMgPSBmcm9tVGhlbWUoJ2dyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zJyk7XG4gIGNvbnN0IGluc2V0ID0gZnJvbVRoZW1lKCdpbnNldCcpO1xuICBjb25zdCBtYXJnaW4gPSBmcm9tVGhlbWUoJ21hcmdpbicpO1xuICBjb25zdCBvcGFjaXR5ID0gZnJvbVRoZW1lKCdvcGFjaXR5Jyk7XG4gIGNvbnN0IHBhZGRpbmcgPSBmcm9tVGhlbWUoJ3BhZGRpbmcnKTtcbiAgY29uc3Qgc2F0dXJhdGUgPSBmcm9tVGhlbWUoJ3NhdHVyYXRlJyk7XG4gIGNvbnN0IHNjYWxlID0gZnJvbVRoZW1lKCdzY2FsZScpO1xuICBjb25zdCBzZXBpYSA9IGZyb21UaGVtZSgnc2VwaWEnKTtcbiAgY29uc3Qgc2tldyA9IGZyb21UaGVtZSgnc2tldycpO1xuICBjb25zdCBzcGFjZSA9IGZyb21UaGVtZSgnc3BhY2UnKTtcbiAgY29uc3QgdHJhbnNsYXRlID0gZnJvbVRoZW1lKCd0cmFuc2xhdGUnKTtcbiAgY29uc3QgZ2V0T3ZlcnNjcm9sbCA9ICgpID0+IFsnYXV0bycsICdjb250YWluJywgJ25vbmUnXTtcbiAgY29uc3QgZ2V0T3ZlcmZsb3cgPSAoKSA9PiBbJ2F1dG8nLCAnaGlkZGVuJywgJ2NsaXAnLCAndmlzaWJsZScsICdzY3JvbGwnXTtcbiAgY29uc3QgZ2V0U3BhY2luZ1dpdGhBdXRvQW5kQXJiaXRyYXJ5ID0gKCkgPT4gWydhdXRvJywgaXNBcmJpdHJhcnlWYWx1ZSwgc3BhY2luZ107XG4gIGNvbnN0IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5ID0gKCkgPT4gW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmddO1xuICBjb25zdCBnZXRMZW5ndGhXaXRoRW1wdHlBbmRBcmJpdHJhcnkgPSAoKSA9PiBbJycsIGlzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aF07XG4gIGNvbnN0IGdldE51bWJlcldpdGhBdXRvQW5kQXJiaXRyYXJ5ID0gKCkgPT4gWydhdXRvJywgaXNOdW1iZXIsIGlzQXJiaXRyYXJ5VmFsdWVdO1xuICBjb25zdCBnZXRQb3NpdGlvbnMgPSAoKSA9PiBbJ2JvdHRvbScsICdjZW50ZXInLCAnbGVmdCcsICdsZWZ0LWJvdHRvbScsICdsZWZ0LXRvcCcsICdyaWdodCcsICdyaWdodC1ib3R0b20nLCAncmlnaHQtdG9wJywgJ3RvcCddO1xuICBjb25zdCBnZXRMaW5lU3R5bGVzID0gKCkgPT4gWydzb2xpZCcsICdkYXNoZWQnLCAnZG90dGVkJywgJ2RvdWJsZScsICdub25lJ107XG4gIGNvbnN0IGdldEJsZW5kTW9kZXMgPSAoKSA9PiBbJ25vcm1hbCcsICdtdWx0aXBseScsICdzY3JlZW4nLCAnb3ZlcmxheScsICdkYXJrZW4nLCAnbGlnaHRlbicsICdjb2xvci1kb2RnZScsICdjb2xvci1idXJuJywgJ2hhcmQtbGlnaHQnLCAnc29mdC1saWdodCcsICdkaWZmZXJlbmNlJywgJ2V4Y2x1c2lvbicsICdodWUnLCAnc2F0dXJhdGlvbicsICdjb2xvcicsICdsdW1pbm9zaXR5J107XG4gIGNvbnN0IGdldEFsaWduID0gKCkgPT4gWydzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ2JldHdlZW4nLCAnYXJvdW5kJywgJ2V2ZW5seScsICdzdHJldGNoJ107XG4gIGNvbnN0IGdldFplcm9BbmRFbXB0eSA9ICgpID0+IFsnJywgJzAnLCBpc0FyYml0cmFyeVZhbHVlXTtcbiAgY29uc3QgZ2V0QnJlYWtzID0gKCkgPT4gWydhdXRvJywgJ2F2b2lkJywgJ2FsbCcsICdhdm9pZC1wYWdlJywgJ3BhZ2UnLCAnbGVmdCcsICdyaWdodCcsICdjb2x1bW4nXTtcbiAgY29uc3QgZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5ID0gKCkgPT4gW2lzTnVtYmVyLCBpc0FyYml0cmFyeVZhbHVlXTtcbiAgcmV0dXJuIHtcbiAgICBjYWNoZVNpemU6IDUwMCxcbiAgICBzZXBhcmF0b3I6ICc6JyxcbiAgICB0aGVtZToge1xuICAgICAgY29sb3JzOiBbaXNBbnldLFxuICAgICAgc3BhY2luZzogW2lzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aF0sXG4gICAgICBibHVyOiBbJ25vbmUnLCAnJywgaXNUc2hpcnRTaXplLCBpc0FyYml0cmFyeVZhbHVlXSxcbiAgICAgIGJyaWdodG5lc3M6IGdldE51bWJlckFuZEFyYml0cmFyeSgpLFxuICAgICAgYm9yZGVyQ29sb3I6IFtjb2xvcnNdLFxuICAgICAgYm9yZGVyUmFkaXVzOiBbJ25vbmUnLCAnJywgJ2Z1bGwnLCBpc1RzaGlydFNpemUsIGlzQXJiaXRyYXJ5VmFsdWVdLFxuICAgICAgYm9yZGVyU3BhY2luZzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKSxcbiAgICAgIGJvcmRlcldpZHRoOiBnZXRMZW5ndGhXaXRoRW1wdHlBbmRBcmJpdHJhcnkoKSxcbiAgICAgIGNvbnRyYXN0OiBnZXROdW1iZXJBbmRBcmJpdHJhcnkoKSxcbiAgICAgIGdyYXlzY2FsZTogZ2V0WmVyb0FuZEVtcHR5KCksXG4gICAgICBodWVSb3RhdGU6IGdldE51bWJlckFuZEFyYml0cmFyeSgpLFxuICAgICAgaW52ZXJ0OiBnZXRaZXJvQW5kRW1wdHkoKSxcbiAgICAgIGdhcDogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKSxcbiAgICAgIGdyYWRpZW50Q29sb3JTdG9wczogW2NvbG9yc10sXG4gICAgICBncmFkaWVudENvbG9yU3RvcFBvc2l0aW9uczogW2lzUGVyY2VudCwgaXNBcmJpdHJhcnlMZW5ndGhdLFxuICAgICAgaW5zZXQ6IGdldFNwYWNpbmdXaXRoQXV0b0FuZEFyYml0cmFyeSgpLFxuICAgICAgbWFyZ2luOiBnZXRTcGFjaW5nV2l0aEF1dG9BbmRBcmJpdHJhcnkoKSxcbiAgICAgIG9wYWNpdHk6IGdldE51bWJlckFuZEFyYml0cmFyeSgpLFxuICAgICAgcGFkZGluZzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKSxcbiAgICAgIHNhdHVyYXRlOiBnZXROdW1iZXJBbmRBcmJpdHJhcnkoKSxcbiAgICAgIHNjYWxlOiBnZXROdW1iZXJBbmRBcmJpdHJhcnkoKSxcbiAgICAgIHNlcGlhOiBnZXRaZXJvQW5kRW1wdHkoKSxcbiAgICAgIHNrZXc6IGdldE51bWJlckFuZEFyYml0cmFyeSgpLFxuICAgICAgc3BhY2U6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KCksXG4gICAgICB0cmFuc2xhdGU6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICB9LFxuICAgIGNsYXNzR3JvdXBzOiB7XG4gICAgICAvLyBMYXlvdXRcbiAgICAgIC8qKlxuICAgICAgICogQXNwZWN0IFJhdGlvXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYXNwZWN0LXJhdGlvXG4gICAgICAgKi9cbiAgICAgIGFzcGVjdDogW3tcbiAgICAgICAgYXNwZWN0OiBbJ2F1dG8nLCAnc3F1YXJlJywgJ3ZpZGVvJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBDb250YWluZXJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb250YWluZXJcbiAgICAgICAqL1xuICAgICAgY29udGFpbmVyOiBbJ2NvbnRhaW5lciddLFxuICAgICAgLyoqXG4gICAgICAgKiBDb2x1bW5zXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY29sdW1uc1xuICAgICAgICovXG4gICAgICBjb2x1bW5zOiBbe1xuICAgICAgICBjb2x1bW5zOiBbaXNUc2hpcnRTaXplXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJyZWFrIEFmdGVyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYnJlYWstYWZ0ZXJcbiAgICAgICAqL1xuICAgICAgJ2JyZWFrLWFmdGVyJzogW3tcbiAgICAgICAgJ2JyZWFrLWFmdGVyJzogZ2V0QnJlYWtzKClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCcmVhayBCZWZvcmVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9icmVhay1iZWZvcmVcbiAgICAgICAqL1xuICAgICAgJ2JyZWFrLWJlZm9yZSc6IFt7XG4gICAgICAgICdicmVhay1iZWZvcmUnOiBnZXRCcmVha3MoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJyZWFrIEluc2lkZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JyZWFrLWluc2lkZVxuICAgICAgICovXG4gICAgICAnYnJlYWstaW5zaWRlJzogW3tcbiAgICAgICAgJ2JyZWFrLWluc2lkZSc6IFsnYXV0bycsICdhdm9pZCcsICdhdm9pZC1wYWdlJywgJ2F2b2lkLWNvbHVtbiddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm94IERlY29yYXRpb24gQnJlYWtcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3gtZGVjb3JhdGlvbi1icmVha1xuICAgICAgICovXG4gICAgICAnYm94LWRlY29yYXRpb24nOiBbe1xuICAgICAgICAnYm94LWRlY29yYXRpb24nOiBbJ3NsaWNlJywgJ2Nsb25lJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3ggU2l6aW5nXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm94LXNpemluZ1xuICAgICAgICovXG4gICAgICBib3g6IFt7XG4gICAgICAgIGJveDogWydib3JkZXInLCAnY29udGVudCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRGlzcGxheVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2Rpc3BsYXlcbiAgICAgICAqL1xuICAgICAgZGlzcGxheTogWydibG9jaycsICdpbmxpbmUtYmxvY2snLCAnaW5saW5lJywgJ2ZsZXgnLCAnaW5saW5lLWZsZXgnLCAndGFibGUnLCAnaW5saW5lLXRhYmxlJywgJ3RhYmxlLWNhcHRpb24nLCAndGFibGUtY2VsbCcsICd0YWJsZS1jb2x1bW4nLCAndGFibGUtY29sdW1uLWdyb3VwJywgJ3RhYmxlLWZvb3Rlci1ncm91cCcsICd0YWJsZS1oZWFkZXItZ3JvdXAnLCAndGFibGUtcm93LWdyb3VwJywgJ3RhYmxlLXJvdycsICdmbG93LXJvb3QnLCAnZ3JpZCcsICdpbmxpbmUtZ3JpZCcsICdjb250ZW50cycsICdsaXN0LWl0ZW0nLCAnaGlkZGVuJ10sXG4gICAgICAvKipcbiAgICAgICAqIEZsb2F0c1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2Zsb2F0XG4gICAgICAgKi9cbiAgICAgIGZsb2F0OiBbe1xuICAgICAgICBmbG9hdDogWydyaWdodCcsICdsZWZ0JywgJ25vbmUnLCAnc3RhcnQnLCAnZW5kJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBDbGVhclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2NsZWFyXG4gICAgICAgKi9cbiAgICAgIGNsZWFyOiBbe1xuICAgICAgICBjbGVhcjogWydsZWZ0JywgJ3JpZ2h0JywgJ2JvdGgnLCAnbm9uZScsICdzdGFydCcsICdlbmQnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIElzb2xhdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2lzb2xhdGlvblxuICAgICAgICovXG4gICAgICBpc29sYXRpb246IFsnaXNvbGF0ZScsICdpc29sYXRpb24tYXV0byddLFxuICAgICAgLyoqXG4gICAgICAgKiBPYmplY3QgRml0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb2JqZWN0LWZpdFxuICAgICAgICovXG4gICAgICAnb2JqZWN0LWZpdCc6IFt7XG4gICAgICAgIG9iamVjdDogWydjb250YWluJywgJ2NvdmVyJywgJ2ZpbGwnLCAnbm9uZScsICdzY2FsZS1kb3duJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPYmplY3QgUG9zaXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vYmplY3QtcG9zaXRpb25cbiAgICAgICAqL1xuICAgICAgJ29iamVjdC1wb3NpdGlvbic6IFt7XG4gICAgICAgIG9iamVjdDogWy4uLmdldFBvc2l0aW9ucygpLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE92ZXJmbG93XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcmZsb3dcbiAgICAgICAqL1xuICAgICAgb3ZlcmZsb3c6IFt7XG4gICAgICAgIG92ZXJmbG93OiBnZXRPdmVyZmxvdygpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcmZsb3cgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL292ZXJmbG93XG4gICAgICAgKi9cbiAgICAgICdvdmVyZmxvdy14JzogW3tcbiAgICAgICAgJ292ZXJmbG93LXgnOiBnZXRPdmVyZmxvdygpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcmZsb3cgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL292ZXJmbG93XG4gICAgICAgKi9cbiAgICAgICdvdmVyZmxvdy15JzogW3tcbiAgICAgICAgJ292ZXJmbG93LXknOiBnZXRPdmVyZmxvdygpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcnNjcm9sbCBCZWhhdmlvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL292ZXJzY3JvbGwtYmVoYXZpb3JcbiAgICAgICAqL1xuICAgICAgb3ZlcnNjcm9sbDogW3tcbiAgICAgICAgb3ZlcnNjcm9sbDogZ2V0T3ZlcnNjcm9sbCgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcnNjcm9sbCBCZWhhdmlvciBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcnNjcm9sbC1iZWhhdmlvclxuICAgICAgICovXG4gICAgICAnb3ZlcnNjcm9sbC14JzogW3tcbiAgICAgICAgJ292ZXJzY3JvbGwteCc6IGdldE92ZXJzY3JvbGwoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE92ZXJzY3JvbGwgQmVoYXZpb3IgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL292ZXJzY3JvbGwtYmVoYXZpb3JcbiAgICAgICAqL1xuICAgICAgJ292ZXJzY3JvbGwteSc6IFt7XG4gICAgICAgICdvdmVyc2Nyb2xsLXknOiBnZXRPdmVyc2Nyb2xsKClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQb3NpdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Bvc2l0aW9uXG4gICAgICAgKi9cbiAgICAgIHBvc2l0aW9uOiBbJ3N0YXRpYycsICdmaXhlZCcsICdhYnNvbHV0ZScsICdyZWxhdGl2ZScsICdzdGlja3knXSxcbiAgICAgIC8qKlxuICAgICAgICogVG9wIC8gUmlnaHQgLyBCb3R0b20gLyBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIGluc2V0OiBbe1xuICAgICAgICBpbnNldDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpZ2h0IC8gTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICAnaW5zZXQteCc6IFt7XG4gICAgICAgICdpbnNldC14JzogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRvcCAvIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICAnaW5zZXQteSc6IFt7XG4gICAgICAgICdpbnNldC15JzogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIHN0YXJ0OiBbe1xuICAgICAgICBzdGFydDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICBlbmQ6IFt7XG4gICAgICAgIGVuZDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRvcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICB0b3A6IFt7XG4gICAgICAgIHRvcDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIHJpZ2h0OiBbe1xuICAgICAgICByaWdodDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICBib3R0b206IFt7XG4gICAgICAgIGJvdHRvbTogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3AtcmlnaHQtYm90dG9tLWxlZnRcbiAgICAgICAqL1xuICAgICAgbGVmdDogW3tcbiAgICAgICAgbGVmdDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFZpc2liaWxpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy92aXNpYmlsaXR5XG4gICAgICAgKi9cbiAgICAgIHZpc2liaWxpdHk6IFsndmlzaWJsZScsICdpbnZpc2libGUnLCAnY29sbGFwc2UnXSxcbiAgICAgIC8qKlxuICAgICAgICogWi1JbmRleFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3otaW5kZXhcbiAgICAgICAqL1xuICAgICAgejogW3tcbiAgICAgICAgejogWydhdXRvJywgaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvLyBGbGV4Ym94IGFuZCBHcmlkXG4gICAgICAvKipcbiAgICAgICAqIEZsZXggQmFzaXNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mbGV4LWJhc2lzXG4gICAgICAgKi9cbiAgICAgIGJhc2lzOiBbe1xuICAgICAgICBiYXNpczogZ2V0U3BhY2luZ1dpdGhBdXRvQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGbGV4IERpcmVjdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZsZXgtZGlyZWN0aW9uXG4gICAgICAgKi9cbiAgICAgICdmbGV4LWRpcmVjdGlvbic6IFt7XG4gICAgICAgIGZsZXg6IFsncm93JywgJ3Jvdy1yZXZlcnNlJywgJ2NvbCcsICdjb2wtcmV2ZXJzZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRmxleCBXcmFwXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmxleC13cmFwXG4gICAgICAgKi9cbiAgICAgICdmbGV4LXdyYXAnOiBbe1xuICAgICAgICBmbGV4OiBbJ3dyYXAnLCAnd3JhcC1yZXZlcnNlJywgJ25vd3JhcCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRmxleFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZsZXhcbiAgICAgICAqL1xuICAgICAgZmxleDogW3tcbiAgICAgICAgZmxleDogWycxJywgJ2F1dG8nLCAnaW5pdGlhbCcsICdub25lJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGbGV4IEdyb3dcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mbGV4LWdyb3dcbiAgICAgICAqL1xuICAgICAgZ3JvdzogW3tcbiAgICAgICAgZ3JvdzogZ2V0WmVyb0FuZEVtcHR5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGbGV4IFNocmlua1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZsZXgtc2hyaW5rXG4gICAgICAgKi9cbiAgICAgIHNocmluazogW3tcbiAgICAgICAgc2hyaW5rOiBnZXRaZXJvQW5kRW1wdHkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE9yZGVyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3JkZXJcbiAgICAgICAqL1xuICAgICAgb3JkZXI6IFt7XG4gICAgICAgIG9yZGVyOiBbJ2ZpcnN0JywgJ2xhc3QnLCAnbm9uZScsIGlzSW50ZWdlciwgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIFRlbXBsYXRlIENvbHVtbnNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLXRlbXBsYXRlLWNvbHVtbnNcbiAgICAgICAqL1xuICAgICAgJ2dyaWQtY29scyc6IFt7XG4gICAgICAgICdncmlkLWNvbHMnOiBbaXNBbnldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBDb2x1bW4gU3RhcnQgLyBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLWNvbHVtblxuICAgICAgICovXG4gICAgICAnY29sLXN0YXJ0LWVuZCc6IFt7XG4gICAgICAgIGNvbDogWydhdXRvJywge1xuICAgICAgICAgIHNwYW46IFsnZnVsbCcsIGlzSW50ZWdlciwgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgICAgfSwgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIENvbHVtbiBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtY29sdW1uXG4gICAgICAgKi9cbiAgICAgICdjb2wtc3RhcnQnOiBbe1xuICAgICAgICAnY29sLXN0YXJ0JzogZ2V0TnVtYmVyV2l0aEF1dG9BbmRBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgQ29sdW1uIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtY29sdW1uXG4gICAgICAgKi9cbiAgICAgICdjb2wtZW5kJzogW3tcbiAgICAgICAgJ2NvbC1lbmQnOiBnZXROdW1iZXJXaXRoQXV0b0FuZEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBUZW1wbGF0ZSBSb3dzXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC10ZW1wbGF0ZS1yb3dzXG4gICAgICAgKi9cbiAgICAgICdncmlkLXJvd3MnOiBbe1xuICAgICAgICAnZ3JpZC1yb3dzJzogW2lzQW55XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgUm93IFN0YXJ0IC8gRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1yb3dcbiAgICAgICAqL1xuICAgICAgJ3Jvdy1zdGFydC1lbmQnOiBbe1xuICAgICAgICByb3c6IFsnYXV0bycsIHtcbiAgICAgICAgICBzcGFuOiBbaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgICB9LCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgUm93IFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1yb3dcbiAgICAgICAqL1xuICAgICAgJ3Jvdy1zdGFydCc6IFt7XG4gICAgICAgICdyb3ctc3RhcnQnOiBnZXROdW1iZXJXaXRoQXV0b0FuZEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBSb3cgRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1yb3dcbiAgICAgICAqL1xuICAgICAgJ3Jvdy1lbmQnOiBbe1xuICAgICAgICAncm93LWVuZCc6IGdldE51bWJlcldpdGhBdXRvQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIEF1dG8gRmxvd1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtYXV0by1mbG93XG4gICAgICAgKi9cbiAgICAgICdncmlkLWZsb3cnOiBbe1xuICAgICAgICAnZ3JpZC1mbG93JzogWydyb3cnLCAnY29sJywgJ2RlbnNlJywgJ3Jvdy1kZW5zZScsICdjb2wtZGVuc2UnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgQXV0byBDb2x1bW5zXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1hdXRvLWNvbHVtbnNcbiAgICAgICAqL1xuICAgICAgJ2F1dG8tY29scyc6IFt7XG4gICAgICAgICdhdXRvLWNvbHMnOiBbJ2F1dG8nLCAnbWluJywgJ21heCcsICdmcicsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBBdXRvIFJvd3NcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLWF1dG8tcm93c1xuICAgICAgICovXG4gICAgICAnYXV0by1yb3dzJzogW3tcbiAgICAgICAgJ2F1dG8tcm93cyc6IFsnYXV0bycsICdtaW4nLCAnbWF4JywgJ2ZyJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHYXBcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9nYXBcbiAgICAgICAqL1xuICAgICAgZ2FwOiBbe1xuICAgICAgICBnYXA6IFtnYXBdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR2FwIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9nYXBcbiAgICAgICAqL1xuICAgICAgJ2dhcC14JzogW3tcbiAgICAgICAgJ2dhcC14JzogW2dhcF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHYXAgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dhcFxuICAgICAgICovXG4gICAgICAnZ2FwLXknOiBbe1xuICAgICAgICAnZ2FwLXknOiBbZ2FwXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEp1c3RpZnkgQ29udGVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2p1c3RpZnktY29udGVudFxuICAgICAgICovXG4gICAgICAnanVzdGlmeS1jb250ZW50JzogW3tcbiAgICAgICAganVzdGlmeTogWydub3JtYWwnLCAuLi5nZXRBbGlnbigpXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEp1c3RpZnkgSXRlbXNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9qdXN0aWZ5LWl0ZW1zXG4gICAgICAgKi9cbiAgICAgICdqdXN0aWZ5LWl0ZW1zJzogW3tcbiAgICAgICAgJ2p1c3RpZnktaXRlbXMnOiBbJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnc3RyZXRjaCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSnVzdGlmeSBTZWxmXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvanVzdGlmeS1zZWxmXG4gICAgICAgKi9cbiAgICAgICdqdXN0aWZ5LXNlbGYnOiBbe1xuICAgICAgICAnanVzdGlmeS1zZWxmJzogWydhdXRvJywgJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnc3RyZXRjaCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQWxpZ24gQ29udGVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2FsaWduLWNvbnRlbnRcbiAgICAgICAqL1xuICAgICAgJ2FsaWduLWNvbnRlbnQnOiBbe1xuICAgICAgICBjb250ZW50OiBbJ25vcm1hbCcsIC4uLmdldEFsaWduKCksICdiYXNlbGluZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQWxpZ24gSXRlbXNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hbGlnbi1pdGVtc1xuICAgICAgICovXG4gICAgICAnYWxpZ24taXRlbXMnOiBbe1xuICAgICAgICBpdGVtczogWydzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ2Jhc2VsaW5lJywgJ3N0cmV0Y2gnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEFsaWduIFNlbGZcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hbGlnbi1zZWxmXG4gICAgICAgKi9cbiAgICAgICdhbGlnbi1zZWxmJzogW3tcbiAgICAgICAgc2VsZjogWydhdXRvJywgJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnc3RyZXRjaCcsICdiYXNlbGluZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGxhY2UgQ29udGVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BsYWNlLWNvbnRlbnRcbiAgICAgICAqL1xuICAgICAgJ3BsYWNlLWNvbnRlbnQnOiBbe1xuICAgICAgICAncGxhY2UtY29udGVudCc6IFsuLi5nZXRBbGlnbigpLCAnYmFzZWxpbmUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBsYWNlIEl0ZW1zXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGxhY2UtaXRlbXNcbiAgICAgICAqL1xuICAgICAgJ3BsYWNlLWl0ZW1zJzogW3tcbiAgICAgICAgJ3BsYWNlLWl0ZW1zJzogWydzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ2Jhc2VsaW5lJywgJ3N0cmV0Y2gnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBsYWNlIFNlbGZcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wbGFjZS1zZWxmXG4gICAgICAgKi9cbiAgICAgICdwbGFjZS1zZWxmJzogW3tcbiAgICAgICAgJ3BsYWNlLXNlbGYnOiBbJ2F1dG8nLCAnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdzdHJldGNoJ11cbiAgICAgIH1dLFxuICAgICAgLy8gU3BhY2luZ1xuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGFkZGluZ1xuICAgICAgICovXG4gICAgICBwOiBbe1xuICAgICAgICBwOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHB4OiBbe1xuICAgICAgICBweDogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGFkZGluZyBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGFkZGluZ1xuICAgICAgICovXG4gICAgICBweTogW3tcbiAgICAgICAgcHk6IFtwYWRkaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBhZGRpbmcgU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHBzOiBbe1xuICAgICAgICBwczogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGFkZGluZyBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHBlOiBbe1xuICAgICAgICBwZTogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGFkZGluZyBUb3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHB0OiBbe1xuICAgICAgICBwdDogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGFkZGluZyBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcHI6IFt7XG4gICAgICAgIHByOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcGI6IFt7XG4gICAgICAgIHBiOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHBsOiBbe1xuICAgICAgICBwbDogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWFyZ2luXG4gICAgICAgKi9cbiAgICAgIG06IFt7XG4gICAgICAgIG06IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbXg6IFt7XG4gICAgICAgIG14OiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1hcmdpbiBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWFyZ2luXG4gICAgICAgKi9cbiAgICAgIG15OiBbe1xuICAgICAgICBteTogW21hcmdpbl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNYXJnaW4gU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbXM6IFt7XG4gICAgICAgIG1zOiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1hcmdpbiBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbWU6IFt7XG4gICAgICAgIG1lOiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1hcmdpbiBUb3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbXQ6IFt7XG4gICAgICAgIG10OiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1hcmdpbiBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBtcjogW3tcbiAgICAgICAgbXI6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBtYjogW3tcbiAgICAgICAgbWI6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbWw6IFt7XG4gICAgICAgIG1sOiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNwYWNlIEJldHdlZW4gWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NwYWNlXG4gICAgICAgKi9cbiAgICAgICdzcGFjZS14JzogW3tcbiAgICAgICAgJ3NwYWNlLXgnOiBbc3BhY2VdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU3BhY2UgQmV0d2VlbiBYIFJldmVyc2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zcGFjZVxuICAgICAgICovXG4gICAgICAnc3BhY2UteC1yZXZlcnNlJzogWydzcGFjZS14LXJldmVyc2UnXSxcbiAgICAgIC8qKlxuICAgICAgICogU3BhY2UgQmV0d2VlbiBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc3BhY2VcbiAgICAgICAqL1xuICAgICAgJ3NwYWNlLXknOiBbe1xuICAgICAgICAnc3BhY2UteSc6IFtzcGFjZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTcGFjZSBCZXR3ZWVuIFkgUmV2ZXJzZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NwYWNlXG4gICAgICAgKi9cbiAgICAgICdzcGFjZS15LXJldmVyc2UnOiBbJ3NwYWNlLXktcmV2ZXJzZSddLFxuICAgICAgLy8gU2l6aW5nXG4gICAgICAvKipcbiAgICAgICAqIFdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvd2lkdGhcbiAgICAgICAqL1xuICAgICAgdzogW3tcbiAgICAgICAgdzogWydhdXRvJywgJ21pbicsICdtYXgnLCAnZml0JywgJ3N2dycsICdsdncnLCAnZHZ3JywgaXNBcmJpdHJhcnlWYWx1ZSwgc3BhY2luZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNaW4tV2lkdGhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9taW4td2lkdGhcbiAgICAgICAqL1xuICAgICAgJ21pbi13JzogW3tcbiAgICAgICAgJ21pbi13JzogW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmcsICdtaW4nLCAnbWF4JywgJ2ZpdCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWF4LVdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWF4LXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdtYXgtdyc6IFt7XG4gICAgICAgICdtYXgtdyc6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnbm9uZScsICdmdWxsJywgJ21pbicsICdtYXgnLCAnZml0JywgJ3Byb3NlJywge1xuICAgICAgICAgIHNjcmVlbjogW2lzVHNoaXJ0U2l6ZV1cbiAgICAgICAgfSwgaXNUc2hpcnRTaXplXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEhlaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2hlaWdodFxuICAgICAgICovXG4gICAgICBoOiBbe1xuICAgICAgICBoOiBbaXNBcmJpdHJhcnlWYWx1ZSwgc3BhY2luZywgJ2F1dG8nLCAnbWluJywgJ21heCcsICdmaXQnLCAnc3ZoJywgJ2x2aCcsICdkdmgnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1pbi1IZWlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9taW4taGVpZ2h0XG4gICAgICAgKi9cbiAgICAgICdtaW4taCc6IFt7XG4gICAgICAgICdtaW4taCc6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnbWluJywgJ21heCcsICdmaXQnLCAnc3ZoJywgJ2x2aCcsICdkdmgnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1heC1IZWlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXgtaGVpZ2h0XG4gICAgICAgKi9cbiAgICAgICdtYXgtaCc6IFt7XG4gICAgICAgICdtYXgtaCc6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnbWluJywgJ21heCcsICdmaXQnLCAnc3ZoJywgJ2x2aCcsICdkdmgnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNpemVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zaXplXG4gICAgICAgKi9cbiAgICAgIHNpemU6IFt7XG4gICAgICAgIHNpemU6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnYXV0bycsICdtaW4nLCAnbWF4JywgJ2ZpdCddXG4gICAgICB9XSxcbiAgICAgIC8vIFR5cG9ncmFwaHlcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBTaXplXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC1zaXplXG4gICAgICAgKi9cbiAgICAgICdmb250LXNpemUnOiBbe1xuICAgICAgICB0ZXh0OiBbJ2Jhc2UnLCBpc1RzaGlydFNpemUsIGlzQXJiaXRyYXJ5TGVuZ3RoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEZvbnQgU21vb3RoaW5nXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC1zbW9vdGhpbmdcbiAgICAgICAqL1xuICAgICAgJ2ZvbnQtc21vb3RoaW5nJzogWydhbnRpYWxpYXNlZCcsICdzdWJwaXhlbC1hbnRpYWxpYXNlZCddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFN0eWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC1zdHlsZVxuICAgICAgICovXG4gICAgICAnZm9udC1zdHlsZSc6IFsnaXRhbGljJywgJ25vdC1pdGFsaWMnXSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBXZWlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXdlaWdodFxuICAgICAgICovXG4gICAgICAnZm9udC13ZWlnaHQnOiBbe1xuICAgICAgICBmb250OiBbJ3RoaW4nLCAnZXh0cmFsaWdodCcsICdsaWdodCcsICdub3JtYWwnLCAnbWVkaXVtJywgJ3NlbWlib2xkJywgJ2JvbGQnLCAnZXh0cmFib2xkJywgJ2JsYWNrJywgaXNBcmJpdHJhcnlOdW1iZXJdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBGYW1pbHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LWZhbWlseVxuICAgICAgICovXG4gICAgICAnZm9udC1mYW1pbHknOiBbe1xuICAgICAgICBmb250OiBbaXNBbnldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBWYXJpYW50IE51bWVyaWNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXZhcmlhbnQtbnVtZXJpY1xuICAgICAgICovXG4gICAgICAnZnZuLW5vcm1hbCc6IFsnbm9ybWFsLW51bXMnXSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBWYXJpYW50IE51bWVyaWNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXZhcmlhbnQtbnVtZXJpY1xuICAgICAgICovXG4gICAgICAnZnZuLW9yZGluYWwnOiBbJ29yZGluYWwnXSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBWYXJpYW50IE51bWVyaWNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXZhcmlhbnQtbnVtZXJpY1xuICAgICAgICovXG4gICAgICAnZnZuLXNsYXNoZWQtemVybyc6IFsnc2xhc2hlZC16ZXJvJ10sXG4gICAgICAvKipcbiAgICAgICAqIEZvbnQgVmFyaWFudCBOdW1lcmljXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC12YXJpYW50LW51bWVyaWNcbiAgICAgICAqL1xuICAgICAgJ2Z2bi1maWd1cmUnOiBbJ2xpbmluZy1udW1zJywgJ29sZHN0eWxlLW51bXMnXSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBWYXJpYW50IE51bWVyaWNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXZhcmlhbnQtbnVtZXJpY1xuICAgICAgICovXG4gICAgICAnZnZuLXNwYWNpbmcnOiBbJ3Byb3BvcnRpb25hbC1udW1zJywgJ3RhYnVsYXItbnVtcyddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFZhcmlhbnQgTnVtZXJpY1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtdmFyaWFudC1udW1lcmljXG4gICAgICAgKi9cbiAgICAgICdmdm4tZnJhY3Rpb24nOiBbJ2RpYWdvbmFsLWZyYWN0aW9ucycsICdzdGFja2VkLWZyYWN0aW9ucyddLFxuICAgICAgLyoqXG4gICAgICAgKiBMZXR0ZXIgU3BhY2luZ1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xldHRlci1zcGFjaW5nXG4gICAgICAgKi9cbiAgICAgIHRyYWNraW5nOiBbe1xuICAgICAgICB0cmFja2luZzogWyd0aWdodGVyJywgJ3RpZ2h0JywgJ25vcm1hbCcsICd3aWRlJywgJ3dpZGVyJywgJ3dpZGVzdCcsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTGluZSBDbGFtcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xpbmUtY2xhbXBcbiAgICAgICAqL1xuICAgICAgJ2xpbmUtY2xhbXAnOiBbe1xuICAgICAgICAnbGluZS1jbGFtcCc6IFsnbm9uZScsIGlzTnVtYmVyLCBpc0FyYml0cmFyeU51bWJlcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBMaW5lIEhlaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xpbmUtaGVpZ2h0XG4gICAgICAgKi9cbiAgICAgIGxlYWRpbmc6IFt7XG4gICAgICAgIGxlYWRpbmc6IFsnbm9uZScsICd0aWdodCcsICdzbnVnJywgJ25vcm1hbCcsICdyZWxheGVkJywgJ2xvb3NlJywgaXNMZW5ndGgsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTGlzdCBTdHlsZSBJbWFnZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xpc3Qtc3R5bGUtaW1hZ2VcbiAgICAgICAqL1xuICAgICAgJ2xpc3QtaW1hZ2UnOiBbe1xuICAgICAgICAnbGlzdC1pbWFnZSc6IFsnbm9uZScsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTGlzdCBTdHlsZSBUeXBlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbGlzdC1zdHlsZS10eXBlXG4gICAgICAgKi9cbiAgICAgICdsaXN0LXN0eWxlLXR5cGUnOiBbe1xuICAgICAgICBsaXN0OiBbJ25vbmUnLCAnZGlzYycsICdkZWNpbWFsJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBMaXN0IFN0eWxlIFBvc2l0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbGlzdC1zdHlsZS1wb3NpdGlvblxuICAgICAgICovXG4gICAgICAnbGlzdC1zdHlsZS1wb3NpdGlvbic6IFt7XG4gICAgICAgIGxpc3Q6IFsnaW5zaWRlJywgJ291dHNpZGUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBsYWNlaG9sZGVyIENvbG9yXG4gICAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSBUYWlsd2luZCBDU1MgdjMuMC4wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGxhY2Vob2xkZXItY29sb3JcbiAgICAgICAqL1xuICAgICAgJ3BsYWNlaG9sZGVyLWNvbG9yJzogW3tcbiAgICAgICAgcGxhY2Vob2xkZXI6IFtjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGxhY2Vob2xkZXIgT3BhY2l0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BsYWNlaG9sZGVyLW9wYWNpdHlcbiAgICAgICAqL1xuICAgICAgJ3BsYWNlaG9sZGVyLW9wYWNpdHknOiBbe1xuICAgICAgICAncGxhY2Vob2xkZXItb3BhY2l0eSc6IFtvcGFjaXR5XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgQWxpZ25tZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1hbGlnblxuICAgICAgICovXG4gICAgICAndGV4dC1hbGlnbm1lbnQnOiBbe1xuICAgICAgICB0ZXh0OiBbJ2xlZnQnLCAnY2VudGVyJywgJ3JpZ2h0JywgJ2p1c3RpZnknLCAnc3RhcnQnLCAnZW5kJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1jb2xvclxuICAgICAgICovXG4gICAgICAndGV4dC1jb2xvcic6IFt7XG4gICAgICAgIHRleHQ6IFtjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBPcGFjaXR5XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1vcGFjaXR5XG4gICAgICAgKi9cbiAgICAgICd0ZXh0LW9wYWNpdHknOiBbe1xuICAgICAgICAndGV4dC1vcGFjaXR5JzogW29wYWNpdHldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBEZWNvcmF0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1kZWNvcmF0aW9uXG4gICAgICAgKi9cbiAgICAgICd0ZXh0LWRlY29yYXRpb24nOiBbJ3VuZGVybGluZScsICdvdmVybGluZScsICdsaW5lLXRocm91Z2gnLCAnbm8tdW5kZXJsaW5lJ10sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgRGVjb3JhdGlvbiBTdHlsZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtZGVjb3JhdGlvbi1zdHlsZVxuICAgICAgICovXG4gICAgICAndGV4dC1kZWNvcmF0aW9uLXN0eWxlJzogW3tcbiAgICAgICAgZGVjb3JhdGlvbjogWy4uLmdldExpbmVTdHlsZXMoKSwgJ3dhdnknXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgRGVjb3JhdGlvbiBUaGlja25lc3NcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzXG4gICAgICAgKi9cbiAgICAgICd0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzJzogW3tcbiAgICAgICAgZGVjb3JhdGlvbjogWydhdXRvJywgJ2Zyb20tZm9udCcsIGlzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IFVuZGVybGluZSBPZmZzZXRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LXVuZGVybGluZS1vZmZzZXRcbiAgICAgICAqL1xuICAgICAgJ3VuZGVybGluZS1vZmZzZXQnOiBbe1xuICAgICAgICAndW5kZXJsaW5lLW9mZnNldCc6IFsnYXV0bycsIGlzTGVuZ3RoLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgRGVjb3JhdGlvbiBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtZGVjb3JhdGlvbi1jb2xvclxuICAgICAgICovXG4gICAgICAndGV4dC1kZWNvcmF0aW9uLWNvbG9yJzogW3tcbiAgICAgICAgZGVjb3JhdGlvbjogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IFRyYW5zZm9ybVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtdHJhbnNmb3JtXG4gICAgICAgKi9cbiAgICAgICd0ZXh0LXRyYW5zZm9ybSc6IFsndXBwZXJjYXNlJywgJ2xvd2VyY2FzZScsICdjYXBpdGFsaXplJywgJ25vcm1hbC1jYXNlJ10sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgT3ZlcmZsb3dcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LW92ZXJmbG93XG4gICAgICAgKi9cbiAgICAgICd0ZXh0LW92ZXJmbG93JzogWyd0cnVuY2F0ZScsICd0ZXh0LWVsbGlwc2lzJywgJ3RleHQtY2xpcCddLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IFdyYXBcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LXdyYXBcbiAgICAgICAqL1xuICAgICAgJ3RleHQtd3JhcCc6IFt7XG4gICAgICAgIHRleHQ6IFsnd3JhcCcsICdub3dyYXAnLCAnYmFsYW5jZScsICdwcmV0dHknXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgSW5kZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1pbmRlbnRcbiAgICAgICAqL1xuICAgICAgaW5kZW50OiBbe1xuICAgICAgICBpbmRlbnQ6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBWZXJ0aWNhbCBBbGlnbm1lbnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy92ZXJ0aWNhbC1hbGlnblxuICAgICAgICovXG4gICAgICAndmVydGljYWwtYWxpZ24nOiBbe1xuICAgICAgICBhbGlnbjogWydiYXNlbGluZScsICd0b3AnLCAnbWlkZGxlJywgJ2JvdHRvbScsICd0ZXh0LXRvcCcsICd0ZXh0LWJvdHRvbScsICdzdWInLCAnc3VwZXInLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFdoaXRlc3BhY2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy93aGl0ZXNwYWNlXG4gICAgICAgKi9cbiAgICAgIHdoaXRlc3BhY2U6IFt7XG4gICAgICAgIHdoaXRlc3BhY2U6IFsnbm9ybWFsJywgJ25vd3JhcCcsICdwcmUnLCAncHJlLWxpbmUnLCAncHJlLXdyYXAnLCAnYnJlYWstc3BhY2VzJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBXb3JkIEJyZWFrXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvd29yZC1icmVha1xuICAgICAgICovXG4gICAgICBicmVhazogW3tcbiAgICAgICAgYnJlYWs6IFsnbm9ybWFsJywgJ3dvcmRzJywgJ2FsbCcsICdrZWVwJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBIeXBoZW5zXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvaHlwaGVuc1xuICAgICAgICovXG4gICAgICBoeXBoZW5zOiBbe1xuICAgICAgICBoeXBoZW5zOiBbJ25vbmUnLCAnbWFudWFsJywgJ2F1dG8nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIENvbnRlbnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb250ZW50XG4gICAgICAgKi9cbiAgICAgIGNvbnRlbnQ6IFt7XG4gICAgICAgIGNvbnRlbnQ6IFsnbm9uZScsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8vIEJhY2tncm91bmRzXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgQXR0YWNobWVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtYXR0YWNobWVudFxuICAgICAgICovXG4gICAgICAnYmctYXR0YWNobWVudCc6IFt7XG4gICAgICAgIGJnOiBbJ2ZpeGVkJywgJ2xvY2FsJywgJ3Njcm9sbCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBDbGlwXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1jbGlwXG4gICAgICAgKi9cbiAgICAgICdiZy1jbGlwJzogW3tcbiAgICAgICAgJ2JnLWNsaXAnOiBbJ2JvcmRlcicsICdwYWRkaW5nJywgJ2NvbnRlbnQnLCAndGV4dCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBPcGFjaXR5XG4gICAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSBUYWlsd2luZCBDU1MgdjMuMC4wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1vcGFjaXR5XG4gICAgICAgKi9cbiAgICAgICdiZy1vcGFjaXR5JzogW3tcbiAgICAgICAgJ2JnLW9wYWNpdHknOiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIE9yaWdpblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtb3JpZ2luXG4gICAgICAgKi9cbiAgICAgICdiZy1vcmlnaW4nOiBbe1xuICAgICAgICAnYmctb3JpZ2luJzogWydib3JkZXInLCAncGFkZGluZycsICdjb250ZW50J11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIFBvc2l0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1wb3NpdGlvblxuICAgICAgICovXG4gICAgICAnYmctcG9zaXRpb24nOiBbe1xuICAgICAgICBiZzogWy4uLmdldFBvc2l0aW9ucygpLCBpc0FyYml0cmFyeVBvc2l0aW9uXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgUmVwZWF0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1yZXBlYXRcbiAgICAgICAqL1xuICAgICAgJ2JnLXJlcGVhdCc6IFt7XG4gICAgICAgIGJnOiBbJ25vLXJlcGVhdCcsIHtcbiAgICAgICAgICByZXBlYXQ6IFsnJywgJ3gnLCAneScsICdyb3VuZCcsICdzcGFjZSddXG4gICAgICAgIH1dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBTaXplXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1zaXplXG4gICAgICAgKi9cbiAgICAgICdiZy1zaXplJzogW3tcbiAgICAgICAgYmc6IFsnYXV0bycsICdjb3ZlcicsICdjb250YWluJywgaXNBcmJpdHJhcnlTaXplXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgSW1hZ2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZ3JvdW5kLWltYWdlXG4gICAgICAgKi9cbiAgICAgICdiZy1pbWFnZSc6IFt7XG4gICAgICAgIGJnOiBbJ25vbmUnLCB7XG4gICAgICAgICAgJ2dyYWRpZW50LXRvJzogWyd0JywgJ3RyJywgJ3InLCAnYnInLCAnYicsICdibCcsICdsJywgJ3RsJ11cbiAgICAgICAgfSwgaXNBcmJpdHJhcnlJbWFnZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1jb2xvclxuICAgICAgICovXG4gICAgICAnYmctY29sb3InOiBbe1xuICAgICAgICBiZzogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmFkaWVudCBDb2xvciBTdG9wcyBGcm9tIFBvc2l0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JhZGllbnQtY29sb3Itc3RvcHNcbiAgICAgICAqL1xuICAgICAgJ2dyYWRpZW50LWZyb20tcG9zJzogW3tcbiAgICAgICAgZnJvbTogW2dyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyYWRpZW50IENvbG9yIFN0b3BzIFZpYSBQb3NpdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYWRpZW50LWNvbG9yLXN0b3BzXG4gICAgICAgKi9cbiAgICAgICdncmFkaWVudC12aWEtcG9zJzogW3tcbiAgICAgICAgdmlhOiBbZ3JhZGllbnRDb2xvclN0b3BQb3NpdGlvbnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JhZGllbnQgQ29sb3IgU3RvcHMgVG8gUG9zaXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmFkaWVudC1jb2xvci1zdG9wc1xuICAgICAgICovXG4gICAgICAnZ3JhZGllbnQtdG8tcG9zJzogW3tcbiAgICAgICAgdG86IFtncmFkaWVudENvbG9yU3RvcFBvc2l0aW9uc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmFkaWVudCBDb2xvciBTdG9wcyBGcm9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JhZGllbnQtY29sb3Itc3RvcHNcbiAgICAgICAqL1xuICAgICAgJ2dyYWRpZW50LWZyb20nOiBbe1xuICAgICAgICBmcm9tOiBbZ3JhZGllbnRDb2xvclN0b3BzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyYWRpZW50IENvbG9yIFN0b3BzIFZpYVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYWRpZW50LWNvbG9yLXN0b3BzXG4gICAgICAgKi9cbiAgICAgICdncmFkaWVudC12aWEnOiBbe1xuICAgICAgICB2aWE6IFtncmFkaWVudENvbG9yU3RvcHNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JhZGllbnQgQ29sb3IgU3RvcHMgVG9cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmFkaWVudC1jb2xvci1zdG9wc1xuICAgICAgICovXG4gICAgICAnZ3JhZGllbnQtdG8nOiBbe1xuICAgICAgICB0bzogW2dyYWRpZW50Q29sb3JTdG9wc11cbiAgICAgIH1dLFxuICAgICAgLy8gQm9yZGVyc1xuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICByb3VuZGVkOiBbe1xuICAgICAgICByb3VuZGVkOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLXMnOiBbe1xuICAgICAgICAncm91bmRlZC1zJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtZSc6IFt7XG4gICAgICAgICdyb3VuZGVkLWUnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgVG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC10JzogW3tcbiAgICAgICAgJ3JvdW5kZWQtdCc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtcic6IFt7XG4gICAgICAgICdyb3VuZGVkLXInOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1iJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtYic6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1sJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtbCc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBTdGFydCBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtc3MnOiBbe1xuICAgICAgICAncm91bmRlZC1zcyc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBTdGFydCBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLXNlJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtc2UnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgRW5kIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtZWUnOiBbe1xuICAgICAgICAncm91bmRlZC1lZSc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBFbmQgU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLWVzJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtZXMnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgVG9wIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLXRsJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtdGwnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgVG9wIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC10cic6IFt7XG4gICAgICAgICdyb3VuZGVkLXRyJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIEJvdHRvbSBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtYnInOiBbe1xuICAgICAgICAncm91bmRlZC1icic6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBCb3R0b20gTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtYmwnOiBbe1xuICAgICAgICAncm91bmRlZC1ibCc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdyc6IFt7XG4gICAgICAgIGJvcmRlcjogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy14JzogW3tcbiAgICAgICAgJ2JvcmRlci14JzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy15JzogW3tcbiAgICAgICAgJ2JvcmRlci15JzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXctcyc6IFt7XG4gICAgICAgICdib3JkZXItcyc6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGggRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy1lJzogW3tcbiAgICAgICAgJ2JvcmRlci1lJzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBUb3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci13LXQnOiBbe1xuICAgICAgICAnYm9yZGVyLXQnOiBbYm9yZGVyV2lkdGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFdpZHRoIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy1yJzogW3tcbiAgICAgICAgJ2JvcmRlci1yJzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBCb3R0b21cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci13LWInOiBbe1xuICAgICAgICAnYm9yZGVyLWInOiBbYm9yZGVyV2lkdGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFdpZHRoIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci13LWwnOiBbe1xuICAgICAgICAnYm9yZGVyLWwnOiBbYm9yZGVyV2lkdGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIE9wYWNpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItb3BhY2l0eVxuICAgICAgICovXG4gICAgICAnYm9yZGVyLW9wYWNpdHknOiBbe1xuICAgICAgICAnYm9yZGVyLW9wYWNpdHknOiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgU3R5bGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItc3R5bGVcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1zdHlsZSc6IFt7XG4gICAgICAgIGJvcmRlcjogWy4uLmdldExpbmVTdHlsZXMoKSwgJ2hpZGRlbiddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRGl2aWRlIFdpZHRoIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS14JzogW3tcbiAgICAgICAgJ2RpdmlkZS14JzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIERpdmlkZSBXaWR0aCBYIFJldmVyc2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS14LXJldmVyc2UnOiBbJ2RpdmlkZS14LXJldmVyc2UnXSxcbiAgICAgIC8qKlxuICAgICAgICogRGl2aWRlIFdpZHRoIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS15JzogW3tcbiAgICAgICAgJ2RpdmlkZS15JzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIERpdmlkZSBXaWR0aCBZIFJldmVyc2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS15LXJldmVyc2UnOiBbJ2RpdmlkZS15LXJldmVyc2UnXSxcbiAgICAgIC8qKlxuICAgICAgICogRGl2aWRlIE9wYWNpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtb3BhY2l0eVxuICAgICAgICovXG4gICAgICAnZGl2aWRlLW9wYWNpdHknOiBbe1xuICAgICAgICAnZGl2aWRlLW9wYWNpdHknOiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBEaXZpZGUgU3R5bGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtc3R5bGVcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS1zdHlsZSc6IFt7XG4gICAgICAgIGRpdmlkZTogZ2V0TGluZVN0eWxlcygpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3InOiBbe1xuICAgICAgICBib3JkZXI6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxuICAgICAgICovXG4gICAgICAnYm9yZGVyLWNvbG9yLXgnOiBbe1xuICAgICAgICAnYm9yZGVyLXgnOiBbYm9yZGVyQ29sb3JdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbG9yIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sb3JcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1jb2xvci15JzogW3tcbiAgICAgICAgJ2JvcmRlci15JzogW2JvcmRlckNvbG9yXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBDb2xvciBTXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3Itcyc6IFt7XG4gICAgICAgICdib3JkZXItcyc6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgRVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxuICAgICAgICovXG4gICAgICAnYm9yZGVyLWNvbG9yLWUnOiBbe1xuICAgICAgICAnYm9yZGVyLWUnOiBbYm9yZGVyQ29sb3JdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbG9yIFRvcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxuICAgICAgICovXG4gICAgICAnYm9yZGVyLWNvbG9yLXQnOiBbe1xuICAgICAgICAnYm9yZGVyLXQnOiBbYm9yZGVyQ29sb3JdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbG9yIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3Itcic6IFt7XG4gICAgICAgICdib3JkZXItcic6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3ItYic6IFt7XG4gICAgICAgICdib3JkZXItYic6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxuICAgICAgICovXG4gICAgICAnYm9yZGVyLWNvbG9yLWwnOiBbe1xuICAgICAgICAnYm9yZGVyLWwnOiBbYm9yZGVyQ29sb3JdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRGl2aWRlIENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdkaXZpZGUtY29sb3InOiBbe1xuICAgICAgICBkaXZpZGU6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPdXRsaW5lIFN0eWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3V0bGluZS1zdHlsZVxuICAgICAgICovXG4gICAgICAnb3V0bGluZS1zdHlsZSc6IFt7XG4gICAgICAgIG91dGxpbmU6IFsnJywgLi4uZ2V0TGluZVN0eWxlcygpXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE91dGxpbmUgT2Zmc2V0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3V0bGluZS1vZmZzZXRcbiAgICAgICAqL1xuICAgICAgJ291dGxpbmUtb2Zmc2V0JzogW3tcbiAgICAgICAgJ291dGxpbmUtb2Zmc2V0JzogW2lzTGVuZ3RoLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE91dGxpbmUgV2lkdGhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdXRsaW5lLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdvdXRsaW5lLXcnOiBbe1xuICAgICAgICBvdXRsaW5lOiBbaXNMZW5ndGgsIGlzQXJiaXRyYXJ5TGVuZ3RoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE91dGxpbmUgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdXRsaW5lLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdvdXRsaW5lLWNvbG9yJzogW3tcbiAgICAgICAgb3V0bGluZTogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSaW5nIFdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcmluZy13aWR0aFxuICAgICAgICovXG4gICAgICAncmluZy13JzogW3tcbiAgICAgICAgcmluZzogZ2V0TGVuZ3RoV2l0aEVtcHR5QW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSaW5nIFdpZHRoIEluc2V0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcmluZy13aWR0aFxuICAgICAgICovXG4gICAgICAncmluZy13LWluc2V0JzogWydyaW5nLWluc2V0J10sXG4gICAgICAvKipcbiAgICAgICAqIFJpbmcgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yaW5nLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdyaW5nLWNvbG9yJzogW3tcbiAgICAgICAgcmluZzogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSaW5nIE9wYWNpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yaW5nLW9wYWNpdHlcbiAgICAgICAqL1xuICAgICAgJ3Jpbmctb3BhY2l0eSc6IFt7XG4gICAgICAgICdyaW5nLW9wYWNpdHknOiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSaW5nIE9mZnNldCBXaWR0aFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Jpbmctb2Zmc2V0LXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdyaW5nLW9mZnNldC13JzogW3tcbiAgICAgICAgJ3Jpbmctb2Zmc2V0JzogW2lzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSaW5nIE9mZnNldCBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Jpbmctb2Zmc2V0LWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdyaW5nLW9mZnNldC1jb2xvcic6IFt7XG4gICAgICAgICdyaW5nLW9mZnNldCc6IFtjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8vIEVmZmVjdHNcbiAgICAgIC8qKlxuICAgICAgICogQm94IFNoYWRvd1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JveC1zaGFkb3dcbiAgICAgICAqL1xuICAgICAgc2hhZG93OiBbe1xuICAgICAgICBzaGFkb3c6IFsnJywgJ2lubmVyJywgJ25vbmUnLCBpc1RzaGlydFNpemUsIGlzQXJiaXRyYXJ5U2hhZG93XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJveCBTaGFkb3cgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3gtc2hhZG93LWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdzaGFkb3ctY29sb3InOiBbe1xuICAgICAgICBzaGFkb3c6IFtpc0FueV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPcGFjaXR5XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3BhY2l0eVxuICAgICAgICovXG4gICAgICBvcGFjaXR5OiBbe1xuICAgICAgICBvcGFjaXR5OiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNaXggQmxlbmQgTW9kZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21peC1ibGVuZC1tb2RlXG4gICAgICAgKi9cbiAgICAgICdtaXgtYmxlbmQnOiBbe1xuICAgICAgICAnbWl4LWJsZW5kJzogWy4uLmdldEJsZW5kTW9kZXMoKSwgJ3BsdXMtbGlnaHRlcicsICdwbHVzLWRhcmtlciddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBCbGVuZCBNb2RlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1ibGVuZC1tb2RlXG4gICAgICAgKi9cbiAgICAgICdiZy1ibGVuZCc6IFt7XG4gICAgICAgICdiZy1ibGVuZCc6IGdldEJsZW5kTW9kZXMoKVxuICAgICAgfV0sXG4gICAgICAvLyBGaWx0ZXJzXG4gICAgICAvKipcbiAgICAgICAqIEZpbHRlclxuICAgICAgICogQGRlcHJlY2F0ZWQgc2luY2UgVGFpbHdpbmQgQ1NTIHYzLjAuMFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZpbHRlclxuICAgICAgICovXG4gICAgICBmaWx0ZXI6IFt7XG4gICAgICAgIGZpbHRlcjogWycnLCAnbm9uZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmx1clxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JsdXJcbiAgICAgICAqL1xuICAgICAgYmx1cjogW3tcbiAgICAgICAgYmx1cjogW2JsdXJdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQnJpZ2h0bmVzc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JyaWdodG5lc3NcbiAgICAgICAqL1xuICAgICAgYnJpZ2h0bmVzczogW3tcbiAgICAgICAgYnJpZ2h0bmVzczogW2JyaWdodG5lc3NdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQ29udHJhc3RcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb250cmFzdFxuICAgICAgICovXG4gICAgICBjb250cmFzdDogW3tcbiAgICAgICAgY29udHJhc3Q6IFtjb250cmFzdF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBEcm9wIFNoYWRvd1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2Ryb3Atc2hhZG93XG4gICAgICAgKi9cbiAgICAgICdkcm9wLXNoYWRvdyc6IFt7XG4gICAgICAgICdkcm9wLXNoYWRvdyc6IFsnJywgJ25vbmUnLCBpc1RzaGlydFNpemUsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JheXNjYWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JheXNjYWxlXG4gICAgICAgKi9cbiAgICAgIGdyYXlzY2FsZTogW3tcbiAgICAgICAgZ3JheXNjYWxlOiBbZ3JheXNjYWxlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEh1ZSBSb3RhdGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9odWUtcm90YXRlXG4gICAgICAgKi9cbiAgICAgICdodWUtcm90YXRlJzogW3tcbiAgICAgICAgJ2h1ZS1yb3RhdGUnOiBbaHVlUm90YXRlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEludmVydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ludmVydFxuICAgICAgICovXG4gICAgICBpbnZlcnQ6IFt7XG4gICAgICAgIGludmVydDogW2ludmVydF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTYXR1cmF0ZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NhdHVyYXRlXG4gICAgICAgKi9cbiAgICAgIHNhdHVyYXRlOiBbe1xuICAgICAgICBzYXR1cmF0ZTogW3NhdHVyYXRlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNlcGlhXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2VwaWFcbiAgICAgICAqL1xuICAgICAgc2VwaWE6IFt7XG4gICAgICAgIHNlcGlhOiBbc2VwaWFdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgRmlsdGVyXG4gICAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSBUYWlsd2luZCBDU1MgdjMuMC4wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3AtZmlsdGVyXG4gICAgICAgKi9cbiAgICAgICdiYWNrZHJvcC1maWx0ZXInOiBbe1xuICAgICAgICAnYmFja2Ryb3AtZmlsdGVyJzogWycnLCAnbm9uZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgQmx1clxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWJsdXJcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLWJsdXInOiBbe1xuICAgICAgICAnYmFja2Ryb3AtYmx1cic6IFtibHVyXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIEJyaWdodG5lc3NcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1icmlnaHRuZXNzXG4gICAgICAgKi9cbiAgICAgICdiYWNrZHJvcC1icmlnaHRuZXNzJzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLWJyaWdodG5lc3MnOiBbYnJpZ2h0bmVzc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZHJvcCBDb250cmFzdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWNvbnRyYXN0XG4gICAgICAgKi9cbiAgICAgICdiYWNrZHJvcC1jb250cmFzdCc6IFt7XG4gICAgICAgICdiYWNrZHJvcC1jb250cmFzdCc6IFtjb250cmFzdF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZHJvcCBHcmF5c2NhbGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1ncmF5c2NhbGVcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLWdyYXlzY2FsZSc6IFt7XG4gICAgICAgICdiYWNrZHJvcC1ncmF5c2NhbGUnOiBbZ3JheXNjYWxlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIEh1ZSBSb3RhdGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1odWUtcm90YXRlXG4gICAgICAgKi9cbiAgICAgICdiYWNrZHJvcC1odWUtcm90YXRlJzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLWh1ZS1yb3RhdGUnOiBbaHVlUm90YXRlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIEludmVydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWludmVydFxuICAgICAgICovXG4gICAgICAnYmFja2Ryb3AtaW52ZXJ0JzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLWludmVydCc6IFtpbnZlcnRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgT3BhY2l0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLW9wYWNpdHlcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLW9wYWNpdHknOiBbe1xuICAgICAgICAnYmFja2Ryb3Atb3BhY2l0eSc6IFtvcGFjaXR5XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIFNhdHVyYXRlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3Atc2F0dXJhdGVcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLXNhdHVyYXRlJzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLXNhdHVyYXRlJzogW3NhdHVyYXRlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIFNlcGlhXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3Atc2VwaWFcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLXNlcGlhJzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLXNlcGlhJzogW3NlcGlhXVxuICAgICAgfV0sXG4gICAgICAvLyBUYWJsZXNcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbGxhcHNlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbGxhcHNlXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sbGFwc2UnOiBbe1xuICAgICAgICBib3JkZXI6IFsnY29sbGFwc2UnLCAnc2VwYXJhdGUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBTcGFjaW5nXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXNwYWNpbmdcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1zcGFjaW5nJzogW3tcbiAgICAgICAgJ2JvcmRlci1zcGFjaW5nJzogW2JvcmRlclNwYWNpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFNwYWNpbmcgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1zcGFjaW5nXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItc3BhY2luZy14JzogW3tcbiAgICAgICAgJ2JvcmRlci1zcGFjaW5nLXgnOiBbYm9yZGVyU3BhY2luZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgU3BhY2luZyBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXNwYWNpbmdcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1zcGFjaW5nLXknOiBbe1xuICAgICAgICAnYm9yZGVyLXNwYWNpbmcteSc6IFtib3JkZXJTcGFjaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRhYmxlIExheW91dFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RhYmxlLWxheW91dFxuICAgICAgICovXG4gICAgICAndGFibGUtbGF5b3V0JzogW3tcbiAgICAgICAgdGFibGU6IFsnYXV0bycsICdmaXhlZCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQ2FwdGlvbiBTaWRlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY2FwdGlvbi1zaWRlXG4gICAgICAgKi9cbiAgICAgIGNhcHRpb246IFt7XG4gICAgICAgIGNhcHRpb246IFsndG9wJywgJ2JvdHRvbSddXG4gICAgICB9XSxcbiAgICAgIC8vIFRyYW5zaXRpb25zIGFuZCBBbmltYXRpb25cbiAgICAgIC8qKlxuICAgICAgICogVHJhbmlzaXRpb24gUHJvcGVydHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2l0aW9uLXByb3BlcnR5XG4gICAgICAgKi9cbiAgICAgIHRyYW5zaXRpb246IFt7XG4gICAgICAgIHRyYW5zaXRpb246IFsnbm9uZScsICdhbGwnLCAnJywgJ2NvbG9ycycsICdvcGFjaXR5JywgJ3NoYWRvdycsICd0cmFuc2Zvcm0nLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zaXRpb24gRHVyYXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2l0aW9uLWR1cmF0aW9uXG4gICAgICAgKi9cbiAgICAgIGR1cmF0aW9uOiBbe1xuICAgICAgICBkdXJhdGlvbjogZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUcmFuc2l0aW9uIFRpbWluZyBGdW5jdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uXG4gICAgICAgKi9cbiAgICAgIGVhc2U6IFt7XG4gICAgICAgIGVhc2U6IFsnbGluZWFyJywgJ2luJywgJ291dCcsICdpbi1vdXQnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zaXRpb24gRGVsYXlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2l0aW9uLWRlbGF5XG4gICAgICAgKi9cbiAgICAgIGRlbGF5OiBbe1xuICAgICAgICBkZWxheTogZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBBbmltYXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hbmltYXRpb25cbiAgICAgICAqL1xuICAgICAgYW5pbWF0ZTogW3tcbiAgICAgICAgYW5pbWF0ZTogWydub25lJywgJ3NwaW4nLCAncGluZycsICdwdWxzZScsICdib3VuY2UnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvLyBUcmFuc2Zvcm1zXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zZm9ybVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zZm9ybVxuICAgICAgICovXG4gICAgICB0cmFuc2Zvcm06IFt7XG4gICAgICAgIHRyYW5zZm9ybTogWycnLCAnZ3B1JywgJ25vbmUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjYWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2NhbGVcbiAgICAgICAqL1xuICAgICAgc2NhbGU6IFt7XG4gICAgICAgIHNjYWxlOiBbc2NhbGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2NhbGUgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NjYWxlXG4gICAgICAgKi9cbiAgICAgICdzY2FsZS14JzogW3tcbiAgICAgICAgJ3NjYWxlLXgnOiBbc2NhbGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2NhbGUgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NjYWxlXG4gICAgICAgKi9cbiAgICAgICdzY2FsZS15JzogW3tcbiAgICAgICAgJ3NjYWxlLXknOiBbc2NhbGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUm90YXRlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvcm90YXRlXG4gICAgICAgKi9cbiAgICAgIHJvdGF0ZTogW3tcbiAgICAgICAgcm90YXRlOiBbaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zbGF0ZSBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdHJhbnNsYXRlXG4gICAgICAgKi9cbiAgICAgICd0cmFuc2xhdGUteCc6IFt7XG4gICAgICAgICd0cmFuc2xhdGUteCc6IFt0cmFuc2xhdGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVHJhbnNsYXRlIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2xhdGVcbiAgICAgICAqL1xuICAgICAgJ3RyYW5zbGF0ZS15JzogW3tcbiAgICAgICAgJ3RyYW5zbGF0ZS15JzogW3RyYW5zbGF0ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTa2V3IFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9za2V3XG4gICAgICAgKi9cbiAgICAgICdza2V3LXgnOiBbe1xuICAgICAgICAnc2tldy14JzogW3NrZXddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2tldyBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2tld1xuICAgICAgICovXG4gICAgICAnc2tldy15JzogW3tcbiAgICAgICAgJ3NrZXcteSc6IFtza2V3XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zZm9ybSBPcmlnaW5cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2Zvcm0tb3JpZ2luXG4gICAgICAgKi9cbiAgICAgICd0cmFuc2Zvcm0tb3JpZ2luJzogW3tcbiAgICAgICAgb3JpZ2luOiBbJ2NlbnRlcicsICd0b3AnLCAndG9wLXJpZ2h0JywgJ3JpZ2h0JywgJ2JvdHRvbS1yaWdodCcsICdib3R0b20nLCAnYm90dG9tLWxlZnQnLCAnbGVmdCcsICd0b3AtbGVmdCcsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8vIEludGVyYWN0aXZpdHlcbiAgICAgIC8qKlxuICAgICAgICogQWNjZW50IENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYWNjZW50LWNvbG9yXG4gICAgICAgKi9cbiAgICAgIGFjY2VudDogW3tcbiAgICAgICAgYWNjZW50OiBbJ2F1dG8nLCBjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQXBwZWFyYW5jZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2FwcGVhcmFuY2VcbiAgICAgICAqL1xuICAgICAgYXBwZWFyYW5jZTogW3tcbiAgICAgICAgYXBwZWFyYW5jZTogWydub25lJywgJ2F1dG8nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEN1cnNvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2N1cnNvclxuICAgICAgICovXG4gICAgICBjdXJzb3I6IFt7XG4gICAgICAgIGN1cnNvcjogWydhdXRvJywgJ2RlZmF1bHQnLCAncG9pbnRlcicsICd3YWl0JywgJ3RleHQnLCAnbW92ZScsICdoZWxwJywgJ25vdC1hbGxvd2VkJywgJ25vbmUnLCAnY29udGV4dC1tZW51JywgJ3Byb2dyZXNzJywgJ2NlbGwnLCAnY3Jvc3NoYWlyJywgJ3ZlcnRpY2FsLXRleHQnLCAnYWxpYXMnLCAnY29weScsICduby1kcm9wJywgJ2dyYWInLCAnZ3JhYmJpbmcnLCAnYWxsLXNjcm9sbCcsICdjb2wtcmVzaXplJywgJ3Jvdy1yZXNpemUnLCAnbi1yZXNpemUnLCAnZS1yZXNpemUnLCAncy1yZXNpemUnLCAndy1yZXNpemUnLCAnbmUtcmVzaXplJywgJ253LXJlc2l6ZScsICdzZS1yZXNpemUnLCAnc3ctcmVzaXplJywgJ2V3LXJlc2l6ZScsICducy1yZXNpemUnLCAnbmVzdy1yZXNpemUnLCAnbndzZS1yZXNpemUnLCAnem9vbS1pbicsICd6b29tLW91dCcsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQ2FyZXQgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9qdXN0LWluLXRpbWUtbW9kZSNjYXJldC1jb2xvci11dGlsaXRpZXNcbiAgICAgICAqL1xuICAgICAgJ2NhcmV0LWNvbG9yJzogW3tcbiAgICAgICAgY2FyZXQ6IFtjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUG9pbnRlciBFdmVudHNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wb2ludGVyLWV2ZW50c1xuICAgICAgICovXG4gICAgICAncG9pbnRlci1ldmVudHMnOiBbe1xuICAgICAgICAncG9pbnRlci1ldmVudHMnOiBbJ25vbmUnLCAnYXV0byddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUmVzaXplXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcmVzaXplXG4gICAgICAgKi9cbiAgICAgIHJlc2l6ZTogW3tcbiAgICAgICAgcmVzaXplOiBbJ25vbmUnLCAneScsICd4JywgJyddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIEJlaGF2aW9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLWJlaGF2aW9yXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtYmVoYXZpb3InOiBbe1xuICAgICAgICBzY3JvbGw6IFsnYXV0bycsICdzbW9vdGgnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW5cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbSc6IFt7XG4gICAgICAgICdzY3JvbGwtbSc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbXgnOiBbe1xuICAgICAgICAnc2Nyb2xsLW14JzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1teSc6IFt7XG4gICAgICAgICdzY3JvbGwtbXknOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1tcyc6IFt7XG4gICAgICAgICdzY3JvbGwtbXMnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbWUnOiBbe1xuICAgICAgICAnc2Nyb2xsLW1lJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gVG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW10JzogW3tcbiAgICAgICAgJ3Njcm9sbC1tdCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW1yJzogW3tcbiAgICAgICAgJ3Njcm9sbC1tcic6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1tYic6IFt7XG4gICAgICAgICdzY3JvbGwtbWInOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW1sJzogW3tcbiAgICAgICAgJ3Njcm9sbC1tbCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZ1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtcCc6IFt7XG4gICAgICAgICdzY3JvbGwtcCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1weCc6IFt7XG4gICAgICAgICdzY3JvbGwtcHgnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtcHknOiBbe1xuICAgICAgICAnc2Nyb2xsLXB5JzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBQYWRkaW5nIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1wcyc6IFt7XG4gICAgICAgICdzY3JvbGwtcHMnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1wZSc6IFt7XG4gICAgICAgICdzY3JvbGwtcGUnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgVG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1wdCc6IFt7XG4gICAgICAgICdzY3JvbGwtcHQnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXByJzogW3tcbiAgICAgICAgJ3Njcm9sbC1wcic6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBCb3R0b21cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXBiJzogW3tcbiAgICAgICAgJ3Njcm9sbC1wYic6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1wbCc6IFt7XG4gICAgICAgICdzY3JvbGwtcGwnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFNuYXAgQWxpZ25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtc25hcC1hbGlnblxuICAgICAgICovXG4gICAgICAnc25hcC1hbGlnbic6IFt7XG4gICAgICAgIHNuYXA6IFsnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdhbGlnbi1ub25lJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgU25hcCBTdG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXNuYXAtc3RvcFxuICAgICAgICovXG4gICAgICAnc25hcC1zdG9wJzogW3tcbiAgICAgICAgc25hcDogWydub3JtYWwnLCAnYWx3YXlzJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgU25hcCBUeXBlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXNuYXAtdHlwZVxuICAgICAgICovXG4gICAgICAnc25hcC10eXBlJzogW3tcbiAgICAgICAgc25hcDogWydub25lJywgJ3gnLCAneScsICdib3RoJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgU25hcCBUeXBlIFN0cmljdG5lc3NcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtc25hcC10eXBlXG4gICAgICAgKi9cbiAgICAgICdzbmFwLXN0cmljdG5lc3MnOiBbe1xuICAgICAgICBzbmFwOiBbJ21hbmRhdG9yeScsICdwcm94aW1pdHknXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRvdWNoIEFjdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvdWNoLWFjdGlvblxuICAgICAgICovXG4gICAgICB0b3VjaDogW3tcbiAgICAgICAgdG91Y2g6IFsnYXV0bycsICdub25lJywgJ21hbmlwdWxhdGlvbiddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVG91Y2ggQWN0aW9uIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3VjaC1hY3Rpb25cbiAgICAgICAqL1xuICAgICAgJ3RvdWNoLXgnOiBbe1xuICAgICAgICAndG91Y2gtcGFuJzogWyd4JywgJ2xlZnQnLCAncmlnaHQnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRvdWNoIEFjdGlvbiBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG91Y2gtYWN0aW9uXG4gICAgICAgKi9cbiAgICAgICd0b3VjaC15JzogW3tcbiAgICAgICAgJ3RvdWNoLXBhbic6IFsneScsICd1cCcsICdkb3duJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUb3VjaCBBY3Rpb24gUGluY2ggWm9vbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvdWNoLWFjdGlvblxuICAgICAgICovXG4gICAgICAndG91Y2gtcHonOiBbJ3RvdWNoLXBpbmNoLXpvb20nXSxcbiAgICAgIC8qKlxuICAgICAgICogVXNlciBTZWxlY3RcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy91c2VyLXNlbGVjdFxuICAgICAgICovXG4gICAgICBzZWxlY3Q6IFt7XG4gICAgICAgIHNlbGVjdDogWydub25lJywgJ3RleHQnLCAnYWxsJywgJ2F1dG8nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFdpbGwgQ2hhbmdlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvd2lsbC1jaGFuZ2VcbiAgICAgICAqL1xuICAgICAgJ3dpbGwtY2hhbmdlJzogW3tcbiAgICAgICAgJ3dpbGwtY2hhbmdlJzogWydhdXRvJywgJ3Njcm9sbCcsICdjb250ZW50cycsICd0cmFuc2Zvcm0nLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvLyBTVkdcbiAgICAgIC8qKlxuICAgICAgICogRmlsbFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZpbGxcbiAgICAgICAqL1xuICAgICAgZmlsbDogW3tcbiAgICAgICAgZmlsbDogW2NvbG9ycywgJ25vbmUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFN0cm9rZSBXaWR0aFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3N0cm9rZS13aWR0aFxuICAgICAgICovXG4gICAgICAnc3Ryb2tlLXcnOiBbe1xuICAgICAgICBzdHJva2U6IFtpc0xlbmd0aCwgaXNBcmJpdHJhcnlMZW5ndGgsIGlzQXJiaXRyYXJ5TnVtYmVyXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFN0cm9rZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3N0cm9rZVxuICAgICAgICovXG4gICAgICBzdHJva2U6IFt7XG4gICAgICAgIHN0cm9rZTogW2NvbG9ycywgJ25vbmUnXVxuICAgICAgfV0sXG4gICAgICAvLyBBY2Nlc3NpYmlsaXR5XG4gICAgICAvKipcbiAgICAgICAqIFNjcmVlbiBSZWFkZXJzXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2NyZWVuLXJlYWRlcnNcbiAgICAgICAqL1xuICAgICAgc3I6IFsnc3Itb25seScsICdub3Qtc3Itb25seSddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb3JjZWQgQ29sb3IgQWRqdXN0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9yY2VkLWNvbG9yLWFkanVzdFxuICAgICAgICovXG4gICAgICAnZm9yY2VkLWNvbG9yLWFkanVzdCc6IFt7XG4gICAgICAgICdmb3JjZWQtY29sb3ItYWRqdXN0JzogWydhdXRvJywgJ25vbmUnXVxuICAgICAgfV1cbiAgICB9LFxuICAgIGNvbmZsaWN0aW5nQ2xhc3NHcm91cHM6IHtcbiAgICAgIG92ZXJmbG93OiBbJ292ZXJmbG93LXgnLCAnb3ZlcmZsb3cteSddLFxuICAgICAgb3ZlcnNjcm9sbDogWydvdmVyc2Nyb2xsLXgnLCAnb3ZlcnNjcm9sbC15J10sXG4gICAgICBpbnNldDogWydpbnNldC14JywgJ2luc2V0LXknLCAnc3RhcnQnLCAnZW5kJywgJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCddLFxuICAgICAgJ2luc2V0LXgnOiBbJ3JpZ2h0JywgJ2xlZnQnXSxcbiAgICAgICdpbnNldC15JzogWyd0b3AnLCAnYm90dG9tJ10sXG4gICAgICBmbGV4OiBbJ2Jhc2lzJywgJ2dyb3cnLCAnc2hyaW5rJ10sXG4gICAgICBnYXA6IFsnZ2FwLXgnLCAnZ2FwLXknXSxcbiAgICAgIHA6IFsncHgnLCAncHknLCAncHMnLCAncGUnLCAncHQnLCAncHInLCAncGInLCAncGwnXSxcbiAgICAgIHB4OiBbJ3ByJywgJ3BsJ10sXG4gICAgICBweTogWydwdCcsICdwYiddLFxuICAgICAgbTogWydteCcsICdteScsICdtcycsICdtZScsICdtdCcsICdtcicsICdtYicsICdtbCddLFxuICAgICAgbXg6IFsnbXInLCAnbWwnXSxcbiAgICAgIG15OiBbJ210JywgJ21iJ10sXG4gICAgICBzaXplOiBbJ3cnLCAnaCddLFxuICAgICAgJ2ZvbnQtc2l6ZSc6IFsnbGVhZGluZyddLFxuICAgICAgJ2Z2bi1ub3JtYWwnOiBbJ2Z2bi1vcmRpbmFsJywgJ2Z2bi1zbGFzaGVkLXplcm8nLCAnZnZuLWZpZ3VyZScsICdmdm4tc3BhY2luZycsICdmdm4tZnJhY3Rpb24nXSxcbiAgICAgICdmdm4tb3JkaW5hbCc6IFsnZnZuLW5vcm1hbCddLFxuICAgICAgJ2Z2bi1zbGFzaGVkLXplcm8nOiBbJ2Z2bi1ub3JtYWwnXSxcbiAgICAgICdmdm4tZmlndXJlJzogWydmdm4tbm9ybWFsJ10sXG4gICAgICAnZnZuLXNwYWNpbmcnOiBbJ2Z2bi1ub3JtYWwnXSxcbiAgICAgICdmdm4tZnJhY3Rpb24nOiBbJ2Z2bi1ub3JtYWwnXSxcbiAgICAgICdsaW5lLWNsYW1wJzogWydkaXNwbGF5JywgJ292ZXJmbG93J10sXG4gICAgICByb3VuZGVkOiBbJ3JvdW5kZWQtcycsICdyb3VuZGVkLWUnLCAncm91bmRlZC10JywgJ3JvdW5kZWQtcicsICdyb3VuZGVkLWInLCAncm91bmRlZC1sJywgJ3JvdW5kZWQtc3MnLCAncm91bmRlZC1zZScsICdyb3VuZGVkLWVlJywgJ3JvdW5kZWQtZXMnLCAncm91bmRlZC10bCcsICdyb3VuZGVkLXRyJywgJ3JvdW5kZWQtYnInLCAncm91bmRlZC1ibCddLFxuICAgICAgJ3JvdW5kZWQtcyc6IFsncm91bmRlZC1zcycsICdyb3VuZGVkLWVzJ10sXG4gICAgICAncm91bmRlZC1lJzogWydyb3VuZGVkLXNlJywgJ3JvdW5kZWQtZWUnXSxcbiAgICAgICdyb3VuZGVkLXQnOiBbJ3JvdW5kZWQtdGwnLCAncm91bmRlZC10ciddLFxuICAgICAgJ3JvdW5kZWQtcic6IFsncm91bmRlZC10cicsICdyb3VuZGVkLWJyJ10sXG4gICAgICAncm91bmRlZC1iJzogWydyb3VuZGVkLWJyJywgJ3JvdW5kZWQtYmwnXSxcbiAgICAgICdyb3VuZGVkLWwnOiBbJ3JvdW5kZWQtdGwnLCAncm91bmRlZC1ibCddLFxuICAgICAgJ2JvcmRlci1zcGFjaW5nJzogWydib3JkZXItc3BhY2luZy14JywgJ2JvcmRlci1zcGFjaW5nLXknXSxcbiAgICAgICdib3JkZXItdyc6IFsnYm9yZGVyLXctcycsICdib3JkZXItdy1lJywgJ2JvcmRlci13LXQnLCAnYm9yZGVyLXctcicsICdib3JkZXItdy1iJywgJ2JvcmRlci13LWwnXSxcbiAgICAgICdib3JkZXItdy14JzogWydib3JkZXItdy1yJywgJ2JvcmRlci13LWwnXSxcbiAgICAgICdib3JkZXItdy15JzogWydib3JkZXItdy10JywgJ2JvcmRlci13LWInXSxcbiAgICAgICdib3JkZXItY29sb3InOiBbJ2JvcmRlci1jb2xvci1zJywgJ2JvcmRlci1jb2xvci1lJywgJ2JvcmRlci1jb2xvci10JywgJ2JvcmRlci1jb2xvci1yJywgJ2JvcmRlci1jb2xvci1iJywgJ2JvcmRlci1jb2xvci1sJ10sXG4gICAgICAnYm9yZGVyLWNvbG9yLXgnOiBbJ2JvcmRlci1jb2xvci1yJywgJ2JvcmRlci1jb2xvci1sJ10sXG4gICAgICAnYm9yZGVyLWNvbG9yLXknOiBbJ2JvcmRlci1jb2xvci10JywgJ2JvcmRlci1jb2xvci1iJ10sXG4gICAgICAnc2Nyb2xsLW0nOiBbJ3Njcm9sbC1teCcsICdzY3JvbGwtbXknLCAnc2Nyb2xsLW1zJywgJ3Njcm9sbC1tZScsICdzY3JvbGwtbXQnLCAnc2Nyb2xsLW1yJywgJ3Njcm9sbC1tYicsICdzY3JvbGwtbWwnXSxcbiAgICAgICdzY3JvbGwtbXgnOiBbJ3Njcm9sbC1tcicsICdzY3JvbGwtbWwnXSxcbiAgICAgICdzY3JvbGwtbXknOiBbJ3Njcm9sbC1tdCcsICdzY3JvbGwtbWInXSxcbiAgICAgICdzY3JvbGwtcCc6IFsnc2Nyb2xsLXB4JywgJ3Njcm9sbC1weScsICdzY3JvbGwtcHMnLCAnc2Nyb2xsLXBlJywgJ3Njcm9sbC1wdCcsICdzY3JvbGwtcHInLCAnc2Nyb2xsLXBiJywgJ3Njcm9sbC1wbCddLFxuICAgICAgJ3Njcm9sbC1weCc6IFsnc2Nyb2xsLXByJywgJ3Njcm9sbC1wbCddLFxuICAgICAgJ3Njcm9sbC1weSc6IFsnc2Nyb2xsLXB0JywgJ3Njcm9sbC1wYiddLFxuICAgICAgdG91Y2g6IFsndG91Y2gteCcsICd0b3VjaC15JywgJ3RvdWNoLXB6J10sXG4gICAgICAndG91Y2gteCc6IFsndG91Y2gnXSxcbiAgICAgICd0b3VjaC15JzogWyd0b3VjaCddLFxuICAgICAgJ3RvdWNoLXB6JzogWyd0b3VjaCddXG4gICAgfSxcbiAgICBjb25mbGljdGluZ0NsYXNzR3JvdXBNb2RpZmllcnM6IHtcbiAgICAgICdmb250LXNpemUnOiBbJ2xlYWRpbmcnXVxuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogQHBhcmFtIGJhc2VDb25maWcgQ29uZmlnIHdoZXJlIG90aGVyIGNvbmZpZyB3aWxsIGJlIG1lcmdlZCBpbnRvLiBUaGlzIG9iamVjdCB3aWxsIGJlIG11dGF0ZWQuXG4gKiBAcGFyYW0gY29uZmlnRXh0ZW5zaW9uIFBhcnRpYWwgY29uZmlnIHRvIG1lcmdlIGludG8gdGhlIGBiYXNlQ29uZmlnYC5cbiAqL1xuY29uc3QgbWVyZ2VDb25maWdzID0gKGJhc2VDb25maWcsIHtcbiAgY2FjaGVTaXplLFxuICBwcmVmaXgsXG4gIHNlcGFyYXRvcixcbiAgZXhwZXJpbWVudGFsUGFyc2VDbGFzc05hbWUsXG4gIGV4dGVuZCA9IHt9LFxuICBvdmVycmlkZSA9IHt9XG59KSA9PiB7XG4gIG92ZXJyaWRlUHJvcGVydHkoYmFzZUNvbmZpZywgJ2NhY2hlU2l6ZScsIGNhY2hlU2l6ZSk7XG4gIG92ZXJyaWRlUHJvcGVydHkoYmFzZUNvbmZpZywgJ3ByZWZpeCcsIHByZWZpeCk7XG4gIG92ZXJyaWRlUHJvcGVydHkoYmFzZUNvbmZpZywgJ3NlcGFyYXRvcicsIHNlcGFyYXRvcik7XG4gIG92ZXJyaWRlUHJvcGVydHkoYmFzZUNvbmZpZywgJ2V4cGVyaW1lbnRhbFBhcnNlQ2xhc3NOYW1lJywgZXhwZXJpbWVudGFsUGFyc2VDbGFzc05hbWUpO1xuICBmb3IgKGNvbnN0IGNvbmZpZ0tleSBpbiBvdmVycmlkZSkge1xuICAgIG92ZXJyaWRlQ29uZmlnUHJvcGVydGllcyhiYXNlQ29uZmlnW2NvbmZpZ0tleV0sIG92ZXJyaWRlW2NvbmZpZ0tleV0pO1xuICB9XG4gIGZvciAoY29uc3Qga2V5IGluIGV4dGVuZCkge1xuICAgIG1lcmdlQ29uZmlnUHJvcGVydGllcyhiYXNlQ29uZmlnW2tleV0sIGV4dGVuZFtrZXldKTtcbiAgfVxuICByZXR1cm4gYmFzZUNvbmZpZztcbn07XG5jb25zdCBvdmVycmlkZVByb3BlcnR5ID0gKGJhc2VPYmplY3QsIG92ZXJyaWRlS2V5LCBvdmVycmlkZVZhbHVlKSA9PiB7XG4gIGlmIChvdmVycmlkZVZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICBiYXNlT2JqZWN0W292ZXJyaWRlS2V5XSA9IG92ZXJyaWRlVmFsdWU7XG4gIH1cbn07XG5jb25zdCBvdmVycmlkZUNvbmZpZ1Byb3BlcnRpZXMgPSAoYmFzZU9iamVjdCwgb3ZlcnJpZGVPYmplY3QpID0+IHtcbiAgaWYgKG92ZXJyaWRlT2JqZWN0KSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb3ZlcnJpZGVPYmplY3QpIHtcbiAgICAgIG92ZXJyaWRlUHJvcGVydHkoYmFzZU9iamVjdCwga2V5LCBvdmVycmlkZU9iamVjdFtrZXldKTtcbiAgICB9XG4gIH1cbn07XG5jb25zdCBtZXJnZUNvbmZpZ1Byb3BlcnRpZXMgPSAoYmFzZU9iamVjdCwgbWVyZ2VPYmplY3QpID0+IHtcbiAgaWYgKG1lcmdlT2JqZWN0KSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gbWVyZ2VPYmplY3QpIHtcbiAgICAgIGNvbnN0IG1lcmdlVmFsdWUgPSBtZXJnZU9iamVjdFtrZXldO1xuICAgICAgaWYgKG1lcmdlVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBiYXNlT2JqZWN0W2tleV0gPSAoYmFzZU9iamVjdFtrZXldIHx8IFtdKS5jb25jYXQobWVyZ2VWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuY29uc3QgZXh0ZW5kVGFpbHdpbmRNZXJnZSA9IChjb25maWdFeHRlbnNpb24sIC4uLmNyZWF0ZUNvbmZpZykgPT4gdHlwZW9mIGNvbmZpZ0V4dGVuc2lvbiA9PT0gJ2Z1bmN0aW9uJyA/IGNyZWF0ZVRhaWx3aW5kTWVyZ2UoZ2V0RGVmYXVsdENvbmZpZywgY29uZmlnRXh0ZW5zaW9uLCAuLi5jcmVhdGVDb25maWcpIDogY3JlYXRlVGFpbHdpbmRNZXJnZSgoKSA9PiBtZXJnZUNvbmZpZ3MoZ2V0RGVmYXVsdENvbmZpZygpLCBjb25maWdFeHRlbnNpb24pLCAuLi5jcmVhdGVDb25maWcpO1xuY29uc3QgdHdNZXJnZSA9IC8qI19fUFVSRV9fKi9jcmVhdGVUYWlsd2luZE1lcmdlKGdldERlZmF1bHRDb25maWcpO1xuZXhwb3J0IHsgY3JlYXRlVGFpbHdpbmRNZXJnZSwgZXh0ZW5kVGFpbHdpbmRNZXJnZSwgZnJvbVRoZW1lLCBnZXREZWZhdWx0Q29uZmlnLCBtZXJnZUNvbmZpZ3MsIHR3Sm9pbiwgdHdNZXJnZSwgdmFsaWRhdG9ycyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YnVuZGxlLW1qcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/tailwind-merge/dist/bundle-mjs.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs": /*!******************************************!*\ !*** ./node_modules/tslib/tslib.es6.mjs ***! \******************************************/ /***/ ((__unused_webpack___webpack_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 */ __addDisposableResource: () => (/* binding */ __addDisposableResource),\n/* harmony export */ __assign: () => (/* binding */ __assign),\n/* harmony export */ __asyncDelegator: () => (/* binding */ __asyncDelegator),\n/* harmony export */ __asyncGenerator: () => (/* binding */ __asyncGenerator),\n/* harmony export */ __asyncValues: () => (/* binding */ __asyncValues),\n/* harmony export */ __await: () => (/* binding */ __await),\n/* harmony export */ __awaiter: () => (/* binding */ __awaiter),\n/* harmony export */ __classPrivateFieldGet: () => (/* binding */ __classPrivateFieldGet),\n/* harmony export */ __classPrivateFieldIn: () => (/* binding */ __classPrivateFieldIn),\n/* harmony export */ __classPrivateFieldSet: () => (/* binding */ __classPrivateFieldSet),\n/* harmony export */ __createBinding: () => (/* binding */ __createBinding),\n/* harmony export */ __decorate: () => (/* binding */ __decorate),\n/* harmony export */ __disposeResources: () => (/* binding */ __disposeResources),\n/* harmony export */ __esDecorate: () => (/* binding */ __esDecorate),\n/* harmony export */ __exportStar: () => (/* binding */ __exportStar),\n/* harmony export */ __extends: () => (/* binding */ __extends),\n/* harmony export */ __generator: () => (/* binding */ __generator),\n/* harmony export */ __importDefault: () => (/* binding */ __importDefault),\n/* harmony export */ __importStar: () => (/* binding */ __importStar),\n/* harmony export */ __makeTemplateObject: () => (/* binding */ __makeTemplateObject),\n/* harmony export */ __metadata: () => (/* binding */ __metadata),\n/* harmony export */ __param: () => (/* binding */ __param),\n/* harmony export */ __propKey: () => (/* binding */ __propKey),\n/* harmony export */ __read: () => (/* binding */ __read),\n/* harmony export */ __rest: () => (/* binding */ __rest),\n/* harmony export */ __rewriteRelativeImportExtension: () => (/* binding */ __rewriteRelativeImportExtension),\n/* harmony export */ __runInitializers: () => (/* binding */ __runInitializers),\n/* harmony export */ __setFunctionName: () => (/* binding */ __setFunctionName),\n/* harmony export */ __spread: () => (/* binding */ __spread),\n/* harmony export */ __spreadArray: () => (/* binding */ __spreadArray),\n/* harmony export */ __spreadArrays: () => (/* binding */ __spreadArrays),\n/* harmony export */ __values: () => (/* binding */ __values),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nfunction __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nfunction __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nfunction __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nfunction __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nfunction __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nfunction __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nfunction __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nfunction __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nfunction __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nfunction __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nvar __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nfunction __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nfunction __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nfunction __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nfunction __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nfunction __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nfunction __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nfunction __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nfunction __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nfunction __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nfunction __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nfunction __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nfunction __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nfunction __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nfunction __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nfunction __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nfunction __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nfunction __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nfunction __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy90c2xpYi90c2xpYi5lczYubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVMsZ0JBQWdCLHNDQUFzQyxrQkFBa0I7QUFDakYsd0JBQXdCO0FBQ3hCO0FBQ0E7O0FBRU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTs7QUFFTztBQUNQO0FBQ0EsK0NBQStDLE9BQU87QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRCxjQUFjO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRU87QUFDUDtBQUNBO0FBQ0EsMkNBQTJDLFFBQVE7QUFDbkQ7QUFDQTs7QUFFTztBQUNQLGtDQUFrQztBQUNsQzs7QUFFTztBQUNQLHVCQUF1Qix1RkFBdUY7QUFDOUc7QUFDQTtBQUNBLHlHQUF5RztBQUN6RztBQUNBLHNDQUFzQyxRQUFRO0FBQzlDO0FBQ0EsZ0VBQWdFO0FBQ2hFO0FBQ0EsOENBQThDLHlGQUF5RjtBQUN2SSw4REFBOEQsMkNBQTJDO0FBQ3pHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFTztBQUNQO0FBQ0Esa0JBQWtCLHlCQUF5QjtBQUMzQztBQUNBO0FBQ0E7QUFDQTs7QUFFTztBQUNQO0FBQ0E7O0FBRU87QUFDUDtBQUNBLDRDQUE0Qyx5RUFBeUU7QUFDckg7O0FBRU87QUFDUDtBQUNBOztBQUVPO0FBQ1AsMEJBQTBCLCtEQUErRCxpQkFBaUI7QUFDMUc7QUFDQSxrQ0FBa0MsTUFBTSwrQkFBK0IsWUFBWTtB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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUZBQXVGLFNBQVMsZ0JBQWdCO0FBQ2hIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFTztBQUNQO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUEsaUVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy90c2xpYi90c2xpYi5lczYubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxuXG5QZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXG5JTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXG5QRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCwgSXRlcmF0b3IgKi9cblxudmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7XG4gIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XG4gIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XG4gIGlmICh0eXBlb2YgYiAhPT0gXCJmdW5jdGlvblwiICYmIGIgIT09IG51bGwpXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XG4gIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG59XG5cbmV4cG9ydCB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcbiAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcbiAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0O1xuICB9XG4gIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19yZXN0KHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcbiAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICB0W3BdID0gc1twXTtcbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICB9XG4gIHJldHVybiB0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xuICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xuICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19wYXJhbShwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2VzRGVjb3JhdGUoY3RvciwgZGVzY3JpcHRvckluLCBkZWNvcmF0b3JzLCBjb250ZXh0SW4sIGluaXRpYWxpemVycywgZXh0cmFJbml0aWFsaXplcnMpIHtcbiAgZnVuY3Rpb24gYWNjZXB0KGYpIHsgaWYgKGYgIT09IHZvaWQgMCAmJiB0eXBlb2YgZiAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRnVuY3Rpb24gZXhwZWN0ZWRcIik7IHJldHVybiBmOyB9XG4gIHZhciBraW5kID0gY29udGV4dEluLmtpbmQsIGtleSA9IGtpbmQgPT09IFwiZ2V0dGVyXCIgPyBcImdldFwiIDoga2luZCA9PT0gXCJzZXR0ZXJcIiA/IFwic2V0XCIgOiBcInZhbHVlXCI7XG4gIHZhciB0YXJnZXQgPSAhZGVzY3JpcHRvckluICYmIGN0b3IgPyBjb250ZXh0SW5bXCJzdGF0aWNcIl0gPyBjdG9yIDogY3Rvci5wcm90b3R5cGUgOiBudWxsO1xuICB2YXIgZGVzY3JpcHRvciA9IGRlc2NyaXB0b3JJbiB8fCAodGFyZ2V0ID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGNvbnRleHRJbi5uYW1lKSA6IHt9KTtcbiAgdmFyIF8sIGRvbmUgPSBmYWxzZTtcbiAgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHZhciBjb250ZXh0ID0ge307XG4gICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbikgY29udGV4dFtwXSA9IHAgPT09IFwiYWNjZXNzXCIgPyB7fSA6IGNvbnRleHRJbltwXTtcbiAgICAgIGZvciAodmFyIHAgaW4gY29udGV4dEluLmFjY2VzcykgY29udGV4dC5hY2Nlc3NbcF0gPSBjb250ZXh0SW4uYWNjZXNzW3BdO1xuICAgICAgY29udGV4dC5hZGRJbml0aWFsaXplciA9IGZ1bmN0aW9uIChmKSB7IGlmIChkb25lKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkXCIpOyBleHRyYUluaXRpYWxpemVycy5wdXNoKGFjY2VwdChmIHx8IG51bGwpKTsgfTtcbiAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gXCJhY2Nlc3NvclwiID8geyBnZXQ6IGRlc2NyaXB0b3IuZ2V0LCBzZXQ6IGRlc2NyaXB0b3Iuc2V0IH0gOiBkZXNjcmlwdG9yW2tleV0sIGNvbnRleHQpO1xuICAgICAgaWYgKGtpbmQgPT09IFwiYWNjZXNzb3JcIikge1xuICAgICAgICAgIGlmIChyZXN1bHQgPT09IHZvaWQgMCkgY29udGludWU7XG4gICAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCB8fCB0eXBlb2YgcmVzdWx0ICE9PSBcIm9iamVjdFwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkXCIpO1xuICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5nZXQpKSBkZXNjcmlwdG9yLmdldCA9IF87XG4gICAgICAgICAgaWYgKF8gPSBhY2NlcHQocmVzdWx0LnNldCkpIGRlc2NyaXB0b3Iuc2V0ID0gXztcbiAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuaW5pdCkpIGluaXRpYWxpemVycy51bnNoaWZ0KF8pO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoXyA9IGFjY2VwdChyZXN1bHQpKSB7XG4gICAgICAgICAgaWYgKGtpbmQgPT09IFwiZmllbGRcIikgaW5pdGlhbGl6ZXJzLnVuc2hpZnQoXyk7XG4gICAgICAgICAgZWxzZSBkZXNjcmlwdG9yW2tleV0gPSBfO1xuICAgICAgfVxuICB9XG4gIGlmICh0YXJnZXQpIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGNvbnRleHRJbi5uYW1lLCBkZXNjcmlwdG9yKTtcbiAgZG9uZSA9IHRydWU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19ydW5Jbml0aWFsaXplcnModGhpc0FyZywgaW5pdGlhbGl6ZXJzLCB2YWx1ZSkge1xuICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbml0aWFsaXplcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhbHVlID0gdXNlVmFsdWUgPyBpbml0aWFsaXplcnNbaV0uY2FsbCh0aGlzQXJnLCB2YWx1ZSkgOiBpbml0aWFsaXplcnNbaV0uY2FsbCh0aGlzQXJnKTtcbiAgfVxuICByZXR1cm4gdXNlVmFsdWUgPyB2YWx1ZSA6IHZvaWQgMDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3Byb3BLZXkoeCkge1xuICByZXR1cm4gdHlwZW9mIHggPT09IFwic3ltYm9sXCIgPyB4IDogXCJcIi5jb25jYXQoeCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19zZXRGdW5jdGlvbk5hbWUoZiwgbmFtZSwgcHJlZml4KSB7XG4gIGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzeW1ib2xcIikgbmFtZSA9IG5hbWUuZGVzY3JpcHRpb24gPyBcIltcIi5jb25jYXQobmFtZS5kZXNjcmlwdGlvbiwgXCJdXCIpIDogXCJcIjtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCBcIm5hbWVcIiwgeyBjb25maWd1cmFibGU6IHRydWUsIHZhbHVlOiBwcmVmaXggPyBcIlwiLmNvbmNhdChwcmVmaXgsIFwiIFwiLCBuYW1lKSA6IG5hbWUgfSk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSkge1xuICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19nZW5lcmF0b3IodGhpc0FyZywgYm9keSkge1xuICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yID09PSBcImZ1bmN0aW9uXCIgPyBJdGVyYXRvciA6IE9iamVjdCkucHJvdG90eXBlKTtcbiAgcmV0dXJuIGcubmV4dCA9IHZlcmIoMCksIGdbXCJ0aHJvd1wiXSA9IHZlcmIoMSksIGdbXCJyZXR1cm5cIl0gPSB2ZXJiKDIpLCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICB3aGlsZSAoZyAmJiAoZyA9IDAsIG9wWzBdICYmIChfID0gMCkpLCBfKSB0cnkge1xuICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gIH1cbn1cblxuZXhwb3J0IHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTtcbiAgaWYgKCFkZXNjIHx8IChcImdldFwiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHtcbiAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH07XG4gIH1cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gIG9bazJdID0gbVtrXTtcbn0pO1xuXG5leHBvcnQgZnVuY3Rpb24gX19leHBvcnRTdGFyKG0sIG8pIHtcbiAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xuICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBTeW1ib2wuaXRlcmF0b3IsIG0gPSBzICYmIG9bc10sIGkgPSAwO1xuICBpZiAobSkgcmV0dXJuIG0uY2FsbChvKTtcbiAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgICAgbmV4dDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7XG4gICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xuICAgICAgfVxuICB9O1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xuICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07XG4gIGlmICghbSkgcmV0dXJuIG87XG4gIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xuICB0cnkge1xuICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7XG4gIH1cbiAgY2F0Y2ggKGVycm9yKSB7IGUgPSB7IGVycm9yOiBlcnJvciB9OyB9XG4gIGZpbmFsbHkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVtcInJldHVyblwiXSkpIG0uY2FsbChpKTtcbiAgICAgIH1cbiAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxuICB9XG4gIHJldHVybiBhcjtcbn1cblxuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWQoKSB7XG4gIGZvciAodmFyIGFyID0gW10sIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKVxuICAgICAgYXIgPSBhci5jb25jYXQoX19yZWFkKGFyZ3VtZW50c1tpXSkpO1xuICByZXR1cm4gYXI7XG59XG5cbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXlzKCkge1xuICBmb3IgKHZhciBzID0gMCwgaSA9IDAsIGlsID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGlsOyBpKyspIHMgKz0gYXJndW1lbnRzW2ldLmxlbmd0aDtcbiAgZm9yICh2YXIgciA9IEFycmF5KHMpLCBrID0gMCwgaSA9IDA7IGkgPCBpbDsgaSsrKVxuICAgICAgZm9yICh2YXIgYSA9IGFyZ3VtZW50c1tpXSwgaiA9IDAsIGpsID0gYS5sZW5ndGg7IGogPCBqbDsgaisrLCBrKyspXG4gICAgICAgICAgcltrXSA9IGFbal07XG4gIHJldHVybiByO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWRBcnJheSh0bywgZnJvbSwgcGFjaykge1xuICBpZiAocGFjayB8fCBhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBpID0gMCwgbCA9IGZyb20ubGVuZ3RoLCBhcjsgaSA8IGw7IGkrKykge1xuICAgICAgaWYgKGFyIHx8ICEoaSBpbiBmcm9tKSkge1xuICAgICAgICAgIGlmICghYXIpIGFyID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSwgMCwgaSk7XG4gICAgICAgICAgYXJbaV0gPSBmcm9tW2ldO1xuICAgICAgfVxuICB9XG4gIHJldHVybiB0by5jb25jYXQoYXIgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdCh2KSB7XG4gIHJldHVybiB0aGlzIGluc3RhbmNlb2YgX19hd2FpdCA/ICh0aGlzLnYgPSB2LCB0aGlzKSA6IG5ldyBfX2F3YWl0KHYpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0dlbmVyYXRvcih0aGlzQXJnLCBfYXJndW1lbnRzLCBnZW5lcmF0b3IpIHtcbiAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgdmFyIGcgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSksIGksIHEgPSBbXTtcbiAgcmV0dXJuIGkgPSBPYmplY3QuY3JlYXRlKCh0eXBlb2YgQXN5bmNJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gQXN5bmNJdGVyYXRvciA6IE9iamVjdCkucHJvdG90eXBlKSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiLCBhd2FpdFJldHVybiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcbiAgZnVuY3Rpb24gYXdhaXRSZXR1cm4oZikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh2KS50aGVuKGYsIHJlamVjdCk7IH07IH1cbiAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlmIChnW25dKSB7IGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IGlmIChmKSBpW25dID0gZihpW25dKTsgfSB9XG4gIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cbiAgZnVuY3Rpb24gc3RlcChyKSB7IHIudmFsdWUgaW5zdGFuY2VvZiBfX2F3YWl0ID8gUHJvbWlzZS5yZXNvbHZlKHIudmFsdWUudikudGhlbihmdWxmaWxsLCByZWplY3QpIDogc2V0dGxlKHFbMF1bMl0sIHIpOyB9XG4gIGZ1bmN0aW9uIGZ1bGZpbGwodmFsdWUpIHsgcmVzdW1lKFwibmV4dFwiLCB2YWx1ZSk7IH1cbiAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxuICBmdW5jdGlvbiBzZXR0bGUoZiwgdikgeyBpZiAoZih2KSwgcS5zaGlmdCgpLCBxLmxlbmd0aCkgcmVzdW1lKHFbMF1bMF0sIHFbMF1bMV0pOyB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jRGVsZWdhdG9yKG8pIHtcbiAgdmFyIGksIHA7XG4gIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XG4gIGZ1bmN0aW9uIHZlcmIobiwgZikgeyBpW25dID0gb1tuXSA/IGZ1bmN0aW9uICh2KSB7IHJldHVybiAocCA9ICFwKSA/IHsgdmFsdWU6IF9fYXdhaXQob1tuXSh2KSksIGRvbmU6IGZhbHNlIH0gOiBmID8gZih2KSA6IHY7IH0gOiBmOyB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jVmFsdWVzKG8pIHtcbiAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgdmFyIG0gPSBvW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSwgaTtcbiAgcmV0dXJuIG0gPyBtLmNhbGwobykgOiAobyA9IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKSwgaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGkpO1xuICBmdW5jdGlvbiB2ZXJiKG4pIHsgaVtuXSA9IG9bbl0gJiYgZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsgdiA9IG9bbl0odiksIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHYuZG9uZSwgdi52YWx1ZSk7IH0pOyB9OyB9XG4gIGZ1bmN0aW9uIHNldHRsZShyZXNvbHZlLCByZWplY3QsIGQsIHYpIHsgUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZnVuY3Rpb24odikgeyByZXNvbHZlKHsgdmFsdWU6IHYsIGRvbmU6IGQgfSk7IH0sIHJlamVjdCk7IH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fbWFrZVRlbXBsYXRlT2JqZWN0KGNvb2tlZCwgcmF3KSB7XG4gIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XG4gIHJldHVybiBjb29rZWQ7XG59O1xuXG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59O1xuXG52YXIgb3duS2V5cyA9IGZ1bmN0aW9uKG8pIHtcbiAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uIChvKSB7XG4gICAgdmFyIGFyID0gW107XG4gICAgZm9yICh2YXIgayBpbiBvKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sIGspKSBhclthci5sZW5ndGhdID0gaztcbiAgICByZXR1cm4gYXI7XG4gIH07XG4gIHJldHVybiBvd25LZXlzKG8pO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0U3Rhcihtb2QpIHtcbiAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgdmFyIHJlc3VsdCA9IHt9O1xuICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgPSBvd25LZXlzKG1vZCksIGkgPSAwOyBpIDwgay5sZW5ndGg7IGkrKykgaWYgKGtbaV0gIT09IFwiZGVmYXVsdFwiKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGtbaV0pO1xuICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0KG1vZCkge1xuICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IGRlZmF1bHQ6IG1vZCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgc3RhdGUsIGtpbmQsIGYpIHtcbiAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgZ2V0dGVyXCIpO1xuICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgcmV0dXJuIGtpbmQgPT09IFwibVwiID8gZiA6IGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyKSA6IGYgPyBmLnZhbHVlIDogc3RhdGUuZ2V0KHJlY2VpdmVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRTZXQocmVjZWl2ZXIsIHN0YXRlLCB2YWx1ZSwga2luZCwgZikge1xuICBpZiAoa2luZCA9PT0gXCJtXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGVcIik7XG4gIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlclwiKTtcbiAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgcmV0dXJuIChraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlciwgdmFsdWUpIDogZiA/IGYudmFsdWUgPSB2YWx1ZSA6IHN0YXRlLnNldChyZWNlaXZlciwgdmFsdWUpKSwgdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oc3RhdGUsIHJlY2VpdmVyKSB7XG4gIGlmIChyZWNlaXZlciA9PT0gbnVsbCB8fCAodHlwZW9mIHJlY2VpdmVyICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiByZWNlaXZlciAhPT0gXCJmdW5jdGlvblwiKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0XCIpO1xuICByZXR1cm4gdHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciA9PT0gc3RhdGUgOiBzdGF0ZS5oYXMocmVjZWl2ZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hZGREaXNwb3NhYmxlUmVzb3VyY2UoZW52LCB2YWx1ZSwgYXN5bmMpIHtcbiAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB2b2lkIDApIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiB2YWx1ZSAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkLlwiKTtcbiAgICB2YXIgZGlzcG9zZSwgaW5uZXI7XG4gICAgaWYgKGFzeW5jKSB7XG4gICAgICBpZiAoIVN5bWJvbC5hc3luY0Rpc3Bvc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNEaXNwb3NlIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXTtcbiAgICB9XG4gICAgaWYgKGRpc3Bvc2UgPT09IHZvaWQgMCkge1xuICAgICAgaWYgKCFTeW1ib2wuZGlzcG9zZSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5kaXNwb3NlIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuZGlzcG9zZV07XG4gICAgICBpZiAoYXN5bmMpIGlubmVyID0gZGlzcG9zZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBkaXNwb3NlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuXCIpO1xuICAgIGlmIChpbm5lcikgZGlzcG9zZSA9IGZ1bmN0aW9uKCkgeyB0cnkgeyBpbm5lci5jYWxsKHRoaXMpOyB9IGNhdGNoIChlKSB7IHJldHVybiBQcm9taXNlLnJlamVjdChlKTsgfSB9O1xuICAgIGVudi5zdGFjay5wdXNoKHsgdmFsdWU6IHZhbHVlLCBkaXNwb3NlOiBkaXNwb3NlLCBhc3luYzogYXN5bmMgfSk7XG4gIH1cbiAgZWxzZSBpZiAoYXN5bmMpIHtcbiAgICBlbnYuc3RhY2sucHVzaCh7IGFzeW5jOiB0cnVlIH0pO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxudmFyIF9TdXBwcmVzc2VkRXJyb3IgPSB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcbiAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19kaXNwb3NlUmVzb3VyY2VzKGVudikge1xuICBmdW5jdGlvbiBmYWlsKGUpIHtcbiAgICBlbnYuZXJyb3IgPSBlbnYuaGFzRXJyb3IgPyBuZXcgX1N1cHByZXNzZWRFcnJvcihlLCBlbnYuZXJyb3IsIFwiQW4gZXJyb3Igd2FzIHN1cHByZXNzZWQgZHVyaW5nIGRpc3Bvc2FsLlwiKSA6IGU7XG4gICAgZW52Lmhhc0Vycm9yID0gdHJ1ZTtcbiAgfVxuICB2YXIgciwgcyA9IDA7XG4gIGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgd2hpbGUgKHIgPSBlbnYuc3RhY2sucG9wKCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICghci5hc3luYyAmJiBzID09PSAxKSByZXR1cm4gcyA9IDAsIGVudi5zdGFjay5wdXNoKHIpLCBQcm9taXNlLnJlc29sdmUoKS50aGVuKG5leHQpO1xuICAgICAgICBpZiAoci5kaXNwb3NlKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IHIuZGlzcG9zZS5jYWxsKHIudmFsdWUpO1xuICAgICAgICAgIGlmIChyLmFzeW5jKSByZXR1cm4gcyB8PSAyLCBQcm9taXNlLnJlc29sdmUocmVzdWx0KS50aGVuKG5leHQsIGZ1bmN0aW9uKGUpIHsgZmFpbChlKTsgcmV0dXJuIG5leHQoKTsgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBzIHw9IDE7XG4gICAgICB9XG4gICAgICBjYXRjaCAoZSkge1xuICAgICAgICBmYWlsKGUpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocyA9PT0gMSkgcmV0dXJuIGVudi5oYXNFcnJvciA/IFByb21pc2UucmVqZWN0KGVudi5lcnJvcikgOiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICBpZiAoZW52Lmhhc0Vycm9yKSB0aHJvdyBlbnYuZXJyb3I7XG4gIH1cbiAgcmV0dXJuIG5leHQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uKHBhdGgsIHByZXNlcnZlSnN4KSB7XG4gIGlmICh0eXBlb2YgcGF0aCA9PT0gXCJzdHJpbmdcIiAmJiAvXlxcLlxcLj9cXC8vLnRlc3QocGF0aCkpIHtcbiAgICAgIHJldHVybiBwYXRoLnJlcGxhY2UoL1xcLih0c3gpJHwoKD86XFwuZCk/KSgoPzpcXC5bXi4vXSs/KT8pXFwuKFtjbV0/KXRzJC9pLCBmdW5jdGlvbiAobSwgdHN4LCBkLCBleHQsIGNtKSB7XG4gICAgICAgICAgcmV0dXJuIHRzeCA/IHByZXNlcnZlSnN4ID8gXCIuanN4XCIgOiBcIi5qc1wiIDogZCAmJiAoIWV4dCB8fCAhY20pID8gbSA6IChkICsgZXh0ICsgXCIuXCIgKyBjbS50b0xvd2VyQ2FzZSgpICsgXCJqc1wiKTtcbiAgICAgIH0pO1xuICB9XG4gIHJldHVybiBwYXRoO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIF9fZXh0ZW5kcyxcbiAgX19hc3NpZ24sXG4gIF9fcmVzdCxcbiAgX19kZWNvcmF0ZSxcbiAgX19wYXJhbSxcbiAgX19lc0RlY29yYXRlLFxuICBfX3J1bkluaXRpYWxpemVycyxcbiAgX19wcm9wS2V5LFxuICBfX3NldEZ1bmN0aW9uTmFtZSxcbiAgX19tZXRhZGF0YSxcbiAgX19hd2FpdGVyLFxuICBfX2dlbmVyYXRvcixcbiAgX19jcmVhdGVCaW5kaW5nLFxuICBfX2V4cG9ydFN0YXIsXG4gIF9fdmFsdWVzLFxuICBfX3JlYWQsXG4gIF9fc3ByZWFkLFxuICBfX3NwcmVhZEFycmF5cyxcbiAgX19zcHJlYWRBcnJheSxcbiAgX19hd2FpdCxcbiAgX19hc3luY0dlbmVyYXRvcixcbiAgX19hc3luY0RlbGVnYXRvcixcbiAgX19hc3luY1ZhbHVlcyxcbiAgX19tYWtlVGVtcGxhdGVPYmplY3QsXG4gIF9faW1wb3J0U3RhcixcbiAgX19pbXBvcnREZWZhdWx0LFxuICBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0LFxuICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0LFxuICBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4sXG4gIF9fYWRkRGlzcG9zYWJsZVJlc291cmNlLFxuICBfX2Rpc3Bvc2VSZXNvdXJjZXMsXG4gIF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uLFxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/assignRef.js": /*!****************************************************************!*\ !*** ./node_modules/use-callback-ref/dist/es2015/assignRef.js ***! \****************************************************************/ /***/ ((__unused_webpack_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 */ assignRef: () => (/* binding */ assignRef)\n/* harmony export */ });\n/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nfunction assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91c2UtY2FsbGJhY2stcmVmL2Rpc3QvZXMyMDE1L2Fzc2lnblJlZi5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBLFdBQVcsV0FBVztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy91c2UtY2FsbGJhY2stcmVmL2Rpc3QvZXMyMDE1L2Fzc2lnblJlZi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFzc2lnbnMgYSB2YWx1ZSBmb3IgYSBnaXZlbiByZWYsIG5vIG1hdHRlciBvZiB0aGUgcmVmIGZvcm1hdFxuICogQHBhcmFtIHtSZWZPYmplY3R9IHJlZiAtIGEgY2FsbGJhY2sgZnVuY3Rpb24gb3IgcmVmIG9iamVjdFxuICogQHBhcmFtIHZhbHVlIC0gYSBuZXcgdmFsdWVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90aGVLYXNoZXkvdXNlLWNhbGxiYWNrLXJlZiNhc3NpZ25yZWZcbiAqIEBleGFtcGxlXG4gKiBjb25zdCByZWZPYmplY3QgPSB1c2VSZWYoKTtcbiAqIGNvbnN0IHJlZkZuID0gKHJlZikgPT4gey4uLi59XG4gKlxuICogYXNzaWduUmVmKHJlZk9iamVjdCwgXCJyZWZWYWx1ZVwiKTtcbiAqIGFzc2lnblJlZihyZWZGbiwgXCJyZWZWYWx1ZVwiKTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2lnblJlZihyZWYsIHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiByZWYgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmVmKHZhbHVlKTtcbiAgICB9XG4gICAgZWxzZSBpZiAocmVmKSB7XG4gICAgICAgIHJlZi5jdXJyZW50ID0gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiByZWY7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/assignRef.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/useMergeRef.js": /*!******************************************************************!*\ !*** ./node_modules/use-callback-ref/dist/es2015/useMergeRef.js ***! \******************************************************************/ /***/ ((__unused_webpack_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 */ useMergeRefs: () => (/* binding */ useMergeRefs)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _assignRef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./assignRef */ \"(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/assignRef.js\");\n/* harmony import */ var _useRef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./useRef */ \"(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/useRef.js\");\n\n\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return
...
\n * }\n */\nfunction useMergeRefs(refs, defaultValue) {\n var callbackRef = (0,_useRef__WEBPACK_IMPORTED_MODULE_1__.useCallbackRef)(defaultValue || null, function (newValue) {\n return refs.forEach(function (ref) { return (0,_assignRef__WEBPACK_IMPORTED_MODULE_2__.assignRef)(ref, newValue); });\n });\n // handle refs changes - added or removed\n useIsomorphicLayoutEffect(function () {\n var oldValue = currentValues.get(callbackRef);\n if (oldValue) {\n var prevRefs_1 = new Set(oldValue);\n var nextRefs_1 = new Set(refs);\n var current_1 = callbackRef.current;\n prevRefs_1.forEach(function (ref) {\n if (!nextRefs_1.has(ref)) {\n (0,_assignRef__WEBPACK_IMPORTED_MODULE_2__.assignRef)(ref, null);\n }\n });\n nextRefs_1.forEach(function (ref) {\n if (!prevRefs_1.has(ref)) {\n (0,_assignRef__WEBPACK_IMPORTED_MODULE_2__.assignRef)(ref, current_1);\n }\n });\n }\n currentValues.set(callbackRef, refs);\n }, [refs]);\n return callbackRef;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91c2UtY2FsbGJhY2stcmVmL2Rpc3QvZXMyMDE1L3VzZU1lcmdlUmVmLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQStCO0FBQ1M7QUFDRTtBQUMxQyxnRUFBZ0Usa0RBQXFCLEdBQUcsNENBQWU7QUFDdkc7QUFDQTtBQUNBO0FBQ0EsV0FBVyxlQUFlO0FBQzFCLGFBQWEsa0JBQWtCLDhDQUE4QztBQUM3RTtBQUNBLFNBQVMsaUJBQWlCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaURBQWlEO0FBQ2pELHNCQUFzQixPQUFPO0FBQzdCO0FBQ0E7QUFDTztBQUNQLHNCQUFzQix1REFBYztBQUNwQyw2Q0FBNkMsT0FBTyxxREFBUyxrQkFBa0I7QUFDL0UsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixxREFBUztBQUM3QjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0Esb0JBQW9CLHFEQUFTO0FBQzdCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvdXNlLWNhbGxiYWNrLXJlZi9kaXN0L2VzMjAxNS91c2VNZXJnZVJlZi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBhc3NpZ25SZWYgfSBmcm9tICcuL2Fzc2lnblJlZic7XG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gJy4vdXNlUmVmJztcbnZhciB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0ID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyBSZWFjdC51c2VMYXlvdXRFZmZlY3QgOiBSZWFjdC51c2VFZmZlY3Q7XG52YXIgY3VycmVudFZhbHVlcyA9IG5ldyBXZWFrTWFwKCk7XG4vKipcbiAqIE1lcmdlcyB0d28gb3IgbW9yZSByZWZzIHRvZ2V0aGVyIHByb3ZpZGluZyBhIHNpbmdsZSBpbnRlcmZhY2UgdG8gc2V0IHRoZWlyIHZhbHVlXG4gKiBAcGFyYW0ge1JlZk9iamVjdHxSZWZ9IHJlZnNcbiAqIEByZXR1cm5zIHtNdXRhYmxlUmVmT2JqZWN0fSAtIGEgbmV3IHJlZiwgd2hpY2ggdHJhbnNsYXRlcyBhbGwgY2hhbmdlcyB0byB7cmVmc31cbiAqXG4gKiBAc2VlIHtAbGluayBtZXJnZVJlZnN9IGEgdmVyc2lvbiB3aXRob3V0IGJ1aXQtaW4gbWVtb2l6YXRpb25cbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3RoZUthc2hleS91c2UtY2FsbGJhY2stcmVmI3VzZW1lcmdlcmVmc1xuICogQGV4YW1wbGVcbiAqIGNvbnN0IENvbXBvbmVudCA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcbiAqICAgY29uc3Qgb3duUmVmID0gdXNlUmVmKCk7XG4gKiAgIGNvbnN0IGRvbVJlZiA9IHVzZU1lcmdlUmVmcyhbcmVmLCBvd25SZWZdKTsgLy8g8J+RiCBtZXJnZSB0b2dldGhlclxuICogICByZXR1cm4gPGRpdiByZWY9e2RvbVJlZn0+Li4uPC9kaXY+XG4gKiB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VNZXJnZVJlZnMocmVmcywgZGVmYXVsdFZhbHVlKSB7XG4gICAgdmFyIGNhbGxiYWNrUmVmID0gdXNlQ2FsbGJhY2tSZWYoZGVmYXVsdFZhbHVlIHx8IG51bGwsIGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuICAgICAgICByZXR1cm4gcmVmcy5mb3JFYWNoKGZ1bmN0aW9uIChyZWYpIHsgcmV0dXJuIGFzc2lnblJlZihyZWYsIG5ld1ZhbHVlKTsgfSk7XG4gICAgfSk7XG4gICAgLy8gaGFuZGxlIHJlZnMgY2hhbmdlcyAtIGFkZGVkIG9yIHJlbW92ZWRcbiAgICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIG9sZFZhbHVlID0gY3VycmVudFZhbHVlcy5nZXQoY2FsbGJhY2tSZWYpO1xuICAgICAgICBpZiAob2xkVmFsdWUpIHtcbiAgICAgICAgICAgIHZhciBwcmV2UmVmc18xID0gbmV3IFNldChvbGRWYWx1ZSk7XG4gICAgICAgICAgICB2YXIgbmV4dFJlZnNfMSA9IG5ldyBTZXQocmVmcyk7XG4gICAgICAgICAgICB2YXIgY3VycmVudF8xID0gY2FsbGJhY2tSZWYuY3VycmVudDtcbiAgICAgICAgICAgIHByZXZSZWZzXzEuZm9yRWFjaChmdW5jdGlvbiAocmVmKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFuZXh0UmVmc18xLmhhcyhyZWYpKSB7XG4gICAgICAgICAgICAgICAgICAgIGFzc2lnblJlZihyZWYsIG51bGwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbmV4dFJlZnNfMS5mb3JFYWNoKGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXByZXZSZWZzXzEuaGFzKHJlZikpIHtcbiAgICAgICAgICAgICAgICAgICAgYXNzaWduUmVmKHJlZiwgY3VycmVudF8xKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjdXJyZW50VmFsdWVzLnNldChjYWxsYmFja1JlZiwgcmVmcyk7XG4gICAgfSwgW3JlZnNdKTtcbiAgICByZXR1cm4gY2FsbGJhY2tSZWY7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/useMergeRef.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/useRef.js": /*!*************************************************************!*\ !*** ./node_modules/use-callback-ref/dist/es2015/useRef.js ***! \*************************************************************/ /***/ ((__unused_webpack_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 */ useCallbackRef: () => (/* binding */ useCallbackRef)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nfunction useCallbackRef(initialValue, callback) {\n var ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91c2UtY2FsbGJhY2stcmVmL2Rpc3QvZXMyMDE1L3VzZVJlZi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBaUM7QUFDakM7QUFDQTtBQUNBO0FBQ0EsV0FBVyxVQUFVO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDTztBQUNQLGNBQWMsK0NBQVEsZUFBZTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1QsS0FBSyxJQUFJO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL3VzZS1jYWxsYmFjay1yZWYvZGlzdC9lczIwMTUvdXNlUmVmLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBjcmVhdGVzIGEgTXV0YWJsZVJlZiB3aXRoIHJlZiBjaGFuZ2UgY2FsbGJhY2tcbiAqIEBwYXJhbSBpbml0aWFsVmFsdWUgLSBpbml0aWFsIHJlZiB2YWx1ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgLSBhIGNhbGxiYWNrIHRvIHJ1biB3aGVuIHZhbHVlIGNoYW5nZXNcbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcmVmID0gdXNlQ2FsbGJhY2tSZWYoMCwgKG5ld1ZhbHVlLCBvbGRWYWx1ZSkgPT4gY29uc29sZS5sb2cob2xkVmFsdWUsICctPicsIG5ld1ZhbHVlKTtcbiAqIHJlZi5jdXJyZW50ID0gMTtcbiAqIC8vIHByaW50cyAwIC0+IDFcbiAqXG4gKiBAc2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9ob29rcy1yZWZlcmVuY2UuaHRtbCN1c2VyZWZcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3RoZUthc2hleS91c2UtY2FsbGJhY2stcmVmI3VzZWNhbGxiYWNrcmVmLS0tdG8tcmVwbGFjZS1yZWFjdHVzZXJlZlxuICogQHJldHVybnMge011dGFibGVSZWZPYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDYWxsYmFja1JlZihpbml0aWFsVmFsdWUsIGNhbGxiYWNrKSB7XG4gICAgdmFyIHJlZiA9IHVzZVN0YXRlKGZ1bmN0aW9uICgpIHsgcmV0dXJuICh7XG4gICAgICAgIC8vIHZhbHVlXG4gICAgICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXG4gICAgICAgIC8vIGxhc3QgY2FsbGJhY2tcbiAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrLFxuICAgICAgICAvLyBcIm1lbW9pemVkXCIgcHVibGljIGludGVyZmFjZVxuICAgICAgICBmYWNhZGU6IHtcbiAgICAgICAgICAgIGdldCBjdXJyZW50KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZWYudmFsdWU7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IGN1cnJlbnQodmFsdWUpIHtcbiAgICAgICAgICAgICAgICB2YXIgbGFzdCA9IHJlZi52YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAobGFzdCAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVmLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJlZi5jYWxsYmFjayh2YWx1ZSwgbGFzdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9KTsgfSlbMF07XG4gICAgLy8gdXBkYXRlIGNhbGxiYWNrXG4gICAgcmVmLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgcmV0dXJuIHJlZi5mYWNhZGU7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/useRef.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/use-sidecar/dist/es2015/exports.js": /*!*********************************************************!*\ !*** ./node_modules/use-sidecar/dist/es2015/exports.js ***! \*********************************************************/ /***/ ((__unused_webpack_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 */ exportSidecar: () => (/* binding */ exportSidecar)\n/* harmony export */ });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ \"(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__rest)(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return react__WEBPACK_IMPORTED_MODULE_0__.createElement(Target, (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__assign)({}, rest));\n};\nSideCar.isSideCarExport = true;\nfunction exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91c2Utc2lkZWNhci9kaXN0L2VzMjAxNS9leHBvcnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBeUM7QUFDVjtBQUMvQjtBQUNBLHFDQUFxQyw2Q0FBTTtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsZ0RBQW1CLFNBQVMsK0NBQVEsR0FBRztBQUNsRDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL3VzZS1zaWRlY2FyL2Rpc3QvZXMyMDE1L2V4cG9ydHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgX19hc3NpZ24sIF9fcmVzdCB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xudmFyIFNpZGVDYXIgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICB2YXIgc2lkZUNhciA9IF9hLnNpZGVDYXIsIHJlc3QgPSBfX3Jlc3QoX2EsIFtcInNpZGVDYXJcIl0pO1xuICAgIGlmICghc2lkZUNhcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NpZGVjYXI6IHBsZWFzZSBwcm92aWRlIGBzaWRlQ2FyYCBwcm9wZXJ0eSB0byBpbXBvcnQgdGhlIHJpZ2h0IGNhcicpO1xuICAgIH1cbiAgICB2YXIgVGFyZ2V0ID0gc2lkZUNhci5yZWFkKCk7XG4gICAgaWYgKCFUYXJnZXQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaWRlY2FyIG1lZGl1bSBub3QgZm91bmQnKTtcbiAgICB9XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGFyZ2V0LCBfX2Fzc2lnbih7fSwgcmVzdCkpO1xufTtcblNpZGVDYXIuaXNTaWRlQ2FyRXhwb3J0ID0gdHJ1ZTtcbmV4cG9ydCBmdW5jdGlvbiBleHBvcnRTaWRlY2FyKG1lZGl1bSwgZXhwb3J0ZWQpIHtcbiAgICBtZWRpdW0udXNlTWVkaXVtKGV4cG9ydGVkKTtcbiAgICByZXR1cm4gU2lkZUNhcjtcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/use-sidecar/dist/es2015/exports.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/use-sidecar/dist/es2015/medium.js": /*!********************************************************!*\ !*** ./node_modules/use-sidecar/dist/es2015/medium.js ***! \********************************************************/ /***/ ((__unused_webpack_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 */ createMedium: () => (/* binding */ createMedium),\n/* harmony export */ createSidecarMedium: () => (/* binding */ createSidecarMedium)\n/* harmony export */ });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\");\n\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nfunction createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__assign)({ async: true, ssr: false }, options);\n return medium;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91c2Utc2lkZWNhci9kaXN0L2VzMjAxNS9tZWRpdW0uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzREFBc0Qsb0JBQW9CO0FBQzFFO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsZUFBZTtBQUNwRCxzQ0FBc0MsZ0JBQWdCO0FBQ3REO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ087QUFDUCxpQ0FBaUM7QUFDakM7QUFDQTtBQUNBO0FBQ087QUFDUCw4QkFBOEI7QUFDOUI7QUFDQSxxQkFBcUIsK0NBQVEsR0FBRyx5QkFBeUI7QUFDekQ7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvdXNlLXNpZGVjYXIvZGlzdC9lczIwMTUvbWVkaXVtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9fYXNzaWduIH0gZnJvbSBcInRzbGliXCI7XG5mdW5jdGlvbiBJdG9JKGEpIHtcbiAgICByZXR1cm4gYTtcbn1cbmZ1bmN0aW9uIGlubmVyQ3JlYXRlTWVkaXVtKGRlZmF1bHRzLCBtaWRkbGV3YXJlKSB7XG4gICAgaWYgKG1pZGRsZXdhcmUgPT09IHZvaWQgMCkgeyBtaWRkbGV3YXJlID0gSXRvSTsgfVxuICAgIHZhciBidWZmZXIgPSBbXTtcbiAgICB2YXIgYXNzaWduZWQgPSBmYWxzZTtcbiAgICB2YXIgbWVkaXVtID0ge1xuICAgICAgICByZWFkOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoYXNzaWduZWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NpZGVjYXI6IGNvdWxkIG5vdCBgcmVhZGAgZnJvbSBhbiBgYXNzaWduZWRgIG1lZGl1bS4gYHJlYWRgIGNvdWxkIGJlIHVzZWQgb25seSB3aXRoIGB1c2VNZWRpdW1gLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyW2J1ZmZlci5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0cztcbiAgICAgICAgfSxcbiAgICAgICAgdXNlTWVkaXVtOiBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICAgICAgdmFyIGl0ZW0gPSBtaWRkbGV3YXJlKGRhdGEsIGFzc2lnbmVkKTtcbiAgICAgICAgICAgIGJ1ZmZlci5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBidWZmZXIgPSBidWZmZXIuZmlsdGVyKGZ1bmN0aW9uICh4KSB7IHJldHVybiB4ICE9PSBpdGVtOyB9KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIGFzc2lnblN5bmNNZWRpdW06IGZ1bmN0aW9uIChjYikge1xuICAgICAgICAgICAgYXNzaWduZWQgPSB0cnVlO1xuICAgICAgICAgICAgd2hpbGUgKGJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB2YXIgY2JzID0gYnVmZmVyO1xuICAgICAgICAgICAgICAgIGJ1ZmZlciA9IFtdO1xuICAgICAgICAgICAgICAgIGNicy5mb3JFYWNoKGNiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJ1ZmZlciA9IHtcbiAgICAgICAgICAgICAgICBwdXNoOiBmdW5jdGlvbiAoeCkgeyByZXR1cm4gY2IoeCk7IH0sXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBmdW5jdGlvbiAoKSB7IHJldHVybiBidWZmZXI7IH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICBhc3NpZ25NZWRpdW06IGZ1bmN0aW9uIChjYikge1xuICAgICAgICAgICAgYXNzaWduZWQgPSB0cnVlO1xuICAgICAgICAgICAgdmFyIHBlbmRpbmdRdWV1ZSA9IFtdO1xuICAgICAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB2YXIgY2JzID0gYnVmZmVyO1xuICAgICAgICAgICAgICAgIGJ1ZmZlciA9IFtdO1xuICAgICAgICAgICAgICAgIGNicy5mb3JFYWNoKGNiKTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nUXVldWUgPSBidWZmZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgZXhlY3V0ZVF1ZXVlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBjYnMgPSBwZW5kaW5nUXVldWU7XG4gICAgICAgICAgICAgICAgcGVuZGluZ1F1ZXVlID0gW107XG4gICAgICAgICAgICAgICAgY2JzLmZvckVhY2goY2IpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHZhciBjeWNsZSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZXhlY3V0ZVF1ZXVlKTsgfTtcbiAgICAgICAgICAgIGN5Y2xlKCk7XG4gICAgICAgICAgICBidWZmZXIgPSB7XG4gICAgICAgICAgICAgICAgcHVzaDogZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgcGVuZGluZ1F1ZXVlLnB1c2goeCk7XG4gICAgICAgICAgICAgICAgICAgIGN5Y2xlKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGZ1bmN0aW9uIChmaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgcGVuZGluZ1F1ZXVlID0gcGVuZGluZ1F1ZXVlLmZpbHRlcihmaWx0ZXIpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgIH07XG4gICAgcmV0dXJuIG1lZGl1bTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNZWRpdW0oZGVmYXVsdHMsIG1pZGRsZXdhcmUpIHtcbiAgICBpZiAobWlkZGxld2FyZSA9PT0gdm9pZCAwKSB7IG1pZGRsZXdhcmUgPSBJdG9JOyB9XG4gICAgcmV0dXJuIGlubmVyQ3JlYXRlTWVkaXVtKGRlZmF1bHRzLCBtaWRkbGV3YXJlKTtcbn1cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2lkZWNhck1lZGl1bShvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgeyBvcHRpb25zID0ge307IH1cbiAgICB2YXIgbWVkaXVtID0gaW5uZXJDcmVhdGVNZWRpdW0obnVsbCk7XG4gICAgbWVkaXVtLm9wdGlvbnMgPSBfX2Fzc2lnbih7IGFzeW5jOiB0cnVlLCBzc3I6IGZhbHNlIH0sIG9wdGlvbnMpO1xuICAgIHJldHVybiBtZWRpdW07XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/use-sidecar/dist/es2015/medium.js\n")); /***/ }) }, /******/ __webpack_require__ => { // webpackRuntimeModules /******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) /******/ __webpack_require__.O(0, ["main-app"], () => (__webpack_exec__("(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2Falma%2Fnextgen%2FNeah-mail%2Fapp%2Fcourrier%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"))); /******/ var __webpack_exports__ = __webpack_require__.O(); /******/ _N_E = __webpack_exports__; /******/ } ]);