@mukulaggarwal/pacman 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -433,14 +433,10 @@ async function startOnboardingServer(port, workspacePath) {
433
433
  const app = express();
434
434
  app.use(express.json());
435
435
  let gdriveAuthSession = null;
436
- const staticPath = path.resolve(
437
- import.meta.dirname ?? __dirname,
438
- "../../../apps/onboarding-web/dist"
439
- );
440
- try {
441
- await fs.access(staticPath);
442
- app.use(express.static(staticPath));
443
- } catch {
436
+ const onboardingStaticPath = await resolveOnboardingStaticPath();
437
+ if (onboardingStaticPath) {
438
+ app.use(express.static(onboardingStaticPath));
439
+ } else {
444
440
  app.get("/", (_req, res) => {
445
441
  res.send(getInlineOnboardingHtml());
446
442
  });
@@ -824,6 +820,21 @@ async function startOnboardingServer(port, workspacePath) {
824
820
  process.exit(0);
825
821
  });
826
822
  }
823
+ async function resolveOnboardingStaticPath() {
824
+ const baseDir = import.meta.dirname ?? __dirname;
825
+ const candidates = [
826
+ path.resolve(baseDir, "./onboarding-web"),
827
+ path.resolve(baseDir, "../../../apps/onboarding-web/dist")
828
+ ];
829
+ for (const candidate of candidates) {
830
+ try {
831
+ await fs.access(path.join(candidate, "index.html"));
832
+ return candidate;
833
+ } catch {
834
+ }
835
+ }
836
+ return null;
837
+ }
827
838
  function getInlineOnboardingHtml() {
828
839
  return `<!DOCTYPE html>
829
840
  <html lang="en">
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/onboarding-server.ts","../../template-engine/dist/index.js"],"sourcesContent":["import express from 'express';\nimport * as path from 'node:path';\nimport * as fs from 'node:fs/promises';\nimport { exec } from 'node:child_process';\nimport { promisify } from 'node:util';\n\nconst execAsync = promisify(exec);\nimport { createLocalStorage } from '@personal-assistant/storage-local';\nimport { createGDriveStorage } from '@personal-assistant/storage-gdrive';\nimport { createConfigManager } from '@personal-assistant/config-manager';\nimport { createContextManager } from '@personal-assistant/context-manager';\nimport {\n getTemplate,\n renderTemplate,\n listProfiles,\n getResponsibilities,\n} from '@personal-assistant/template-engine';\nimport { validateIntegrationConfig } from '@personal-assistant/integration-runtime';\nimport { createSlackConnector, validateSlackAppToken } from '@personal-assistant/integrations-slack';\nimport { createNoopEventClient } from '@personal-assistant/event-client';\nimport type {\n AppConfig,\n LlmProvider,\n ProfileType,\n UserProfile,\n StorageConfig,\n GDriveStorageConfig,\n IntegrationConfig,\n SyncConfig,\n} from '@personal-assistant/core-types';\nimport { validateProviderConfig } from './provider-runtime.js';\n\ninterface GDriveAuthSession {\n clientId: string;\n clientSecret: string;\n status: 'pending' | 'authenticated' | 'complete' | 'error';\n // set after OAuth callback\n accessToken?: string;\n refreshToken?: string;\n // set after folder creation\n folderId?: string;\n folderName?: string;\n folderPath?: string;\n error?: string;\n}\n\nexport async function startOnboardingServer(\n port: number,\n workspacePath: string,\n): Promise<void> {\n const app = express();\n app.use(express.json());\n\n let gdriveAuthSession: GDriveAuthSession | null = null;\n\n // Serve static files from onboarding-web dist\n const staticPath = path.resolve(\n import.meta.dirname ?? __dirname,\n '../../../apps/onboarding-web/dist',\n );\n\n // Try to serve built static files; fallback to inline HTML\n try {\n await fs.access(staticPath);\n app.use(express.static(staticPath));\n } catch {\n // Serve inline onboarding page if the web app isn't built\n app.get('/', (_req, res) => {\n res.send(getInlineOnboardingHtml());\n });\n }\n\n // --- API Routes ---\n\n app.get('/api/profiles', (_req, res) => {\n const profiles = listProfiles();\n res.json({ profiles });\n });\n\n app.get('/api/responsibilities/:profileType', (req, res) => {\n try {\n const responsibilities = getResponsibilities(req.params.profileType as ProfileType);\n res.json({ responsibilities });\n } catch {\n res.status(400).json({ error: 'Invalid profile type' });\n }\n });\n\n app.get('/api/template/:profileType', (req, res) => {\n try {\n const template = getTemplate(req.params.profileType as ProfileType);\n res.json({ template });\n } catch {\n res.status(400).json({ error: 'Invalid profile type' });\n }\n });\n\n app.post('/api/preview-template', (req, res) => {\n const { profileType, name, assistantName, responsibilities } = req.body;\n try {\n const template = getTemplate(profileType);\n const files = renderTemplate(template, { name, assistantName, responsibilities });\n res.json({ files });\n } catch (err) {\n res.status(400).json({ error: String(err) });\n }\n });\n\n app.post('/api/save', async (req, res) => {\n try {\n const config: AppConfig = req.body;\n\n // Use the user-chosen local path if provided, otherwise fall back to CLI --dir\n const effectivePath =\n config.storage.mode === 'local' && (config.storage as { workspacePath?: string }).workspacePath\n ? path.resolve((config.storage as { workspacePath: string }).workspacePath)\n : workspacePath;\n\n // Ensure the local directory exists (needed for bootstrap even in GDrive mode)\n await fs.mkdir(effectivePath, { recursive: true });\n\n // Save a global pointer so CLI commands can find the workspace without --dir\n const rcPath = path.join(process.env.HOME ?? process.env.USERPROFILE ?? '~', '.personal-assistant-rc.json');\n await fs.writeFile(rcPath, JSON.stringify({ workspacePath: effectivePath }, null, 2), 'utf-8');\n\n // Always save storage.json locally for bootstrap (so MCP server knows which backend to use)\n const localStorage = createLocalStorage(effectivePath);\n const localConfigManager = createConfigManager(localStorage);\n await localConfigManager.saveConfig(config);\n\n // Resolve the user's chosen storage backend\n let targetStorage: import('@personal-assistant/core-types').StorageBackend = localStorage;\n if (config.storage.mode === 'gdrive') {\n const gdriveConfig = config.storage as GDriveStorageConfig;\n const resolvedCachePath = path.isAbsolute(gdriveConfig.cachePath)\n ? gdriveConfig.cachePath\n : path.resolve(path.dirname(effectivePath), gdriveConfig.cachePath);\n\n const gdriveStorage = createGDriveStorage({\n ...gdriveConfig,\n cachePath: resolvedCachePath,\n });\n await gdriveStorage.initialize();\n targetStorage = gdriveStorage;\n\n // Write config to GDrive so all reads go through GDrive\n const gdriveConfigManager = createConfigManager(gdriveStorage);\n await gdriveConfigManager.saveConfig(config);\n }\n\n const contextManager = createContextManager(targetStorage);\n\n // Initialize workspace structure on the target backend\n await contextManager.initWorkspace();\n\n // Render and write template files to the target backend\n const template = getTemplate(config.user.profileType);\n const files = renderTemplate(template, {\n name: config.user.name,\n assistantName: config.user.assistantName,\n responsibilities: config.user.responsibilities,\n });\n await contextManager.writeCanonicalFiles(files);\n\n // Emit onboarding completed event\n const eventClient = createNoopEventClient();\n await eventClient.emit('onboarding_completed', {\n profile: config.user.profileType,\n storage_mode: config.storage.mode,\n });\n\n res.json({ success: true, workspacePath: effectivePath });\n } catch (err) {\n res.status(500).json({ error: String(err) });\n }\n });\n\n // --- Integration credential validation ---\n\n app.post('/api/validate-integration', async (req, res) => {\n const { type, credentials } = req.body as {\n type: string;\n credentials: Record<string, string>;\n };\n\n try {\n const result = await validateIntegrationConfig({\n type: type as IntegrationConfig['type'],\n enabled: true,\n credentials,\n });\n\n if (result.ok) {\n res.json({ valid: true, info: result.summary ?? `Connected to ${type}` });\n return;\n }\n\n res.json({\n valid: false,\n error: [result.reason, ...(result.fix ?? [])].filter(Boolean).join(' '),\n });\n } catch (err) {\n res.json({ valid: false, error: String(err) });\n }\n });\n\n app.post('/api/validate-provider', async (req, res) => {\n const { provider, apiKey, model } = req.body as {\n provider: LlmProvider;\n apiKey: string;\n model?: string;\n };\n\n try {\n const result = await validateProviderConfig(provider, apiKey, model);\n res.json(result);\n } catch (err) {\n res.json({ valid: false, error: String(err) });\n }\n });\n\n app.post('/api/validate-slack-runtime', async (req, res) => {\n const {\n botToken,\n appToken,\n generationEnabled,\n providers,\n } = req.body as {\n botToken?: string;\n appToken?: string;\n generationEnabled?: boolean;\n providers?: {\n openai?: { apiKey?: string; model?: string };\n anthropic?: { apiKey?: string; model?: string };\n };\n };\n\n if (!botToken || !appToken) {\n res.json({ valid: false, error: 'Slack bot token and app token are required.' });\n return;\n }\n\n if (!botToken.startsWith('xoxb-')) {\n res.json({\n valid: false,\n error: 'Slack bot token must start with xoxb-. Paste the Bot User OAuth Token from OAuth & Permissions.',\n });\n return;\n }\n\n if (!appToken.startsWith('xapp-')) {\n res.json({\n valid: false,\n error: 'Slack Socket Mode app token must start with xapp-. Create an App-Level Token with connections:write under Socket Mode.',\n });\n return;\n }\n\n try {\n const connector = createSlackConnector();\n await connector.authenticate({\n type: 'slack',\n enabled: true,\n credentials: { botToken },\n });\n const health = await connector.healthCheck();\n await validateSlackAppToken(appToken);\n\n if (generationEnabled) {\n const providerEntries = [\n ['openai', providers?.openai],\n ['anthropic', providers?.anthropic],\n ] as const;\n\n const configuredProviders = providerEntries.filter(([, value]) => value?.apiKey);\n if (configuredProviders.length === 0) {\n res.json({ valid: false, error: 'Enable at least one provider when Slack generation is turned on.' });\n return;\n }\n\n for (const [provider, value] of configuredProviders) {\n const result = await validateProviderConfig(provider, value?.apiKey ?? '', value?.model);\n if (!result.valid) {\n res.json({ valid: false, error: result.error ?? `Failed to validate ${provider}` });\n return;\n }\n }\n }\n\n res.json({\n valid: true,\n info: `${health.summary ?? 'Slack connected'} via Socket Mode. Atlas will monitor channels where the bot is added.`,\n });\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n if (message.includes('not_allowed_token_type')) {\n res.json({\n valid: false,\n error: 'Slack rejected the Socket Mode token. Use an App-Level Token that starts with xapp- and has the connections:write scope.',\n });\n return;\n }\n\n res.json({\n valid: false,\n error: message,\n });\n }\n });\n\n // --- Local folder picker ---\n\n app.get('/api/pick-folder', async (_req, res) => {\n try {\n let folderPath: string;\n const platform = process.platform;\n\n if (platform === 'darwin') {\n const { stdout } = await execAsync(\n `osascript -e 'POSIX path of (choose folder with prompt \"Select a folder for your personal assistant context\")'`,\n );\n folderPath = stdout.trim();\n } else if (platform === 'linux') {\n const { stdout } = await execAsync(\n 'zenity --file-selection --directory --title=\"Select storage folder\"',\n );\n folderPath = stdout.trim();\n } else if (platform === 'win32') {\n const ps =\n '[System.Reflection.Assembly]::LoadWithPartialName(\\'System.windows.forms\\') | Out-Null; ' +\n '$f = New-Object System.Windows.Forms.FolderBrowserDialog; ' +\n '$f.Description = \\'Select a folder for your personal assistant context\\'; ' +\n '$f.ShowDialog() | Out-Null; $f.SelectedPath';\n const { stdout } = await execAsync(`powershell -command \"${ps}\"`);\n folderPath = stdout.trim();\n } else {\n res.status(400).json({ error: 'Folder picker not supported on this platform' });\n return;\n }\n\n if (!folderPath) {\n res.json({ cancelled: true });\n return;\n }\n\n res.json({ path: folderPath });\n } catch (err) {\n // osascript throws when the user clicks Cancel — treat as cancellation\n if (String(err).includes('User canceled') || String(err).includes('cancel')) {\n res.json({ cancelled: true });\n return;\n }\n res.status(500).json({ error: String(err) });\n }\n });\n\n // --- Google Drive OAuth routes ---\n\n app.post('/api/gdrive/auth-start', async (req, res) => {\n const { clientId, clientSecret } = req.body as { clientId?: string; clientSecret?: string };\n if (!clientId || !clientSecret) {\n res.status(400).json({ error: 'clientId and clientSecret are required' });\n return;\n }\n\n try {\n const { google } = await import('googleapis');\n const redirectUri = `http://localhost:${port}/api/gdrive/callback`;\n const oauth2Client = new google.auth.OAuth2(clientId, clientSecret, redirectUri);\n const authUrl = oauth2Client.generateAuthUrl({\n access_type: 'offline',\n prompt: 'consent',\n scope: ['https://www.googleapis.com/auth/drive.file'],\n });\n\n gdriveAuthSession = { clientId, clientSecret, status: 'pending' };\n res.json({ authUrl });\n } catch (err) {\n res.status(500).json({ error: String(err) });\n }\n });\n\n app.get('/api/gdrive/callback', async (req, res) => {\n const { code } = req.query as { code?: string };\n\n if (!code || !gdriveAuthSession) {\n res.status(400).send('Invalid OAuth callback — no pending auth session.');\n return;\n }\n\n try {\n const { google } = await import('googleapis');\n const redirectUri = `http://localhost:${port}/api/gdrive/callback`;\n const oauth2Client = new google.auth.OAuth2(\n gdriveAuthSession.clientId,\n gdriveAuthSession.clientSecret,\n redirectUri,\n );\n\n const { tokens } = await oauth2Client.getToken(code);\n\n // Store tokens only — folder is created in a separate step\n gdriveAuthSession = {\n ...gdriveAuthSession,\n status: 'authenticated',\n refreshToken: tokens.refresh_token ?? undefined,\n accessToken: tokens.access_token ?? undefined,\n };\n\n res.send(`<!DOCTYPE html><html><body>\n <script>window.close();</script>\n <p style=\"font-family:sans-serif;padding:2rem;color:#4ade80;\">\n ✓ Authentication successful — you can close this tab and return to the setup.\n </p>\n </body></html>`);\n } catch (err) {\n if (gdriveAuthSession) {\n gdriveAuthSession.status = 'error';\n gdriveAuthSession.error = String(err);\n }\n res.status(500).send('Authentication failed: ' + String(err));\n }\n });\n\n app.get('/api/gdrive/auth-status', (_req, res) => {\n if (!gdriveAuthSession) {\n res.json({ status: 'idle' });\n return;\n }\n const { clientId: _cid, clientSecret: _csec, accessToken: _at, refreshToken: _rt, ...publicSession } = gdriveAuthSession;\n res.json(publicSession);\n });\n\n app.post('/api/gdrive/create-folder', async (req, res) => {\n if (!gdriveAuthSession || gdriveAuthSession.status !== 'authenticated') {\n res.status(400).json({ error: 'Not authenticated. Please connect Google Drive first.' });\n return;\n }\n\n const { folderName = 'Personal Assistant', parentFolderName = '' } =\n req.body as { folderName?: string; parentFolderName?: string };\n\n try {\n const { google } = await import('googleapis');\n const redirectUri = `http://localhost:${port}/api/gdrive/callback`;\n const oauth2Client = new google.auth.OAuth2(\n gdriveAuthSession.clientId,\n gdriveAuthSession.clientSecret,\n redirectUri,\n );\n oauth2Client.setCredentials({\n access_token: gdriveAuthSession.accessToken,\n refresh_token: gdriveAuthSession.refreshToken,\n });\n\n const drive = google.drive({ version: 'v3', auth: oauth2Client });\n\n // Resolve parent folder\n let parentId = 'root';\n let locationPath = 'My Drive';\n\n if (parentFolderName.trim()) {\n const searchRes = await drive.files.list({\n q: `name='${parentFolderName.trim()}' and mimeType='application/vnd.google-apps.folder' and trashed=false`,\n fields: 'files(id,name)',\n spaces: 'drive',\n });\n\n if (searchRes.data.files && searchRes.data.files.length > 0) {\n parentId = searchRes.data.files[0].id!;\n } else {\n // Create the parent folder at root\n const parentRes = await drive.files.create({\n requestBody: {\n name: parentFolderName.trim(),\n mimeType: 'application/vnd.google-apps.folder',\n },\n fields: 'id',\n });\n parentId = parentRes.data.id!;\n }\n locationPath = `My Drive / ${parentFolderName.trim()}`;\n }\n\n // Check if the main folder already exists under the parent before creating\n let folderId: string | undefined;\n let resolvedFolderName = folderName.trim();\n const existingSearch = await drive.files.list({\n q: `name='${resolvedFolderName}' and '${parentId}' in parents and mimeType='application/vnd.google-apps.folder' and trashed=false`,\n fields: 'files(id,name)',\n spaces: 'drive',\n });\n\n if (existingSearch.data.files && existingSearch.data.files.length > 0) {\n folderId = existingSearch.data.files[0].id!;\n resolvedFolderName = existingSearch.data.files[0].name!;\n } else {\n const folderRes = await drive.files.create({\n requestBody: {\n name: resolvedFolderName,\n mimeType: 'application/vnd.google-apps.folder',\n parents: [parentId],\n },\n fields: 'id,name',\n });\n folderId = folderRes.data.id!;\n resolvedFolderName = folderRes.data.name!;\n }\n\n const folderPath = `${locationPath} / ${resolvedFolderName}`;\n\n // Refresh tokens in case they were rotated\n const freshCredentials = await oauth2Client.getAccessToken();\n const latestRefreshToken =\n (oauth2Client.credentials.refresh_token as string | undefined) ??\n gdriveAuthSession.refreshToken;\n\n gdriveAuthSession = {\n ...gdriveAuthSession,\n status: 'complete',\n folderId: folderId!,\n folderName: resolvedFolderName,\n folderPath,\n refreshToken: latestRefreshToken,\n accessToken: freshCredentials.token ?? undefined,\n };\n\n res.json({\n folderId,\n folderName: resolvedFolderName,\n folderPath,\n refreshToken: latestRefreshToken,\n });\n } catch (err) {\n res.status(500).json({ error: String(err) });\n }\n });\n\n app.get('/api/status', async (_req, res) => {\n const storage = createLocalStorage(workspacePath);\n const configManager = createConfigManager(storage);\n try {\n const config = await configManager.loadConfig();\n res.json({ configured: true, config });\n } catch {\n res.json({ configured: false });\n }\n });\n\n // Start server\n const server = app.listen(port, () => {\n const url = `http://localhost:${port}`;\n console.log(`Onboarding server running at ${url}`);\n\n // Try to open browser\n import('open')\n .then((openModule) => openModule.default(url))\n .catch(() => {\n console.log(`Open ${url} in your browser to continue.`);\n });\n });\n\n // Handle graceful shutdown\n process.on('SIGINT', () => {\n console.log('\\nShutting down onboarding server...');\n server.close();\n process.exit(0);\n });\n}\n\nfunction getInlineOnboardingHtml(): string {\n return `<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Personal Assistant - Setup</title>\n <style>\n * { margin: 0; padding: 0; box-sizing: border-box; }\n body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #0f172a; color: #e2e8f0; min-height: 100vh; }\n .container { max-width: 640px; margin: 0 auto; padding: 2rem; }\n h1 { font-size: 1.8rem; margin-bottom: 0.5rem; color: #f8fafc; }\n h2 { font-size: 1.2rem; margin-bottom: 1rem; color: #94a3b8; font-weight: 400; }\n .step { display: none; }\n .step.active { display: block; }\n .progress { display: flex; gap: 0.5rem; margin-bottom: 2rem; }\n .progress-dot { width: 2rem; height: 0.25rem; background: #334155; border-radius: 2px; transition: background 0.3s; }\n .progress-dot.done { background: #3b82f6; }\n .progress-dot.current { background: #60a5fa; }\n label { display: block; margin-bottom: 0.5rem; color: #cbd5e1; font-size: 0.9rem; }\n input, select, textarea { width: 100%; padding: 0.75rem; background: #1e293b; border: 1px solid #334155; border-radius: 0.5rem; color: #f8fafc; font-size: 1rem; margin-bottom: 1rem; }\n input:focus, select:focus, textarea:focus { outline: none; border-color: #3b82f6; }\n textarea { min-height: 200px; font-family: 'SF Mono', 'Fira Code', monospace; font-size: 0.85rem; }\n button { padding: 0.75rem 1.5rem; border: none; border-radius: 0.5rem; font-size: 1rem; cursor: pointer; transition: all 0.2s; }\n .btn-primary { background: #3b82f6; color: white; }\n .btn-primary:hover { background: #2563eb; }\n .btn-secondary { background: #334155; color: #e2e8f0; }\n .btn-secondary:hover { background: #475569; }\n .btn-group { display: flex; gap: 0.75rem; margin-top: 1.5rem; }\n .checkbox-group { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; margin-bottom: 1rem; }\n .checkbox-item { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem; background: #1e293b; border: 1px solid #334155; border-radius: 0.375rem; cursor: pointer; }\n .checkbox-item:hover { border-color: #475569; }\n .checkbox-item input[type=\"checkbox\"] { width: auto; margin: 0; }\n .radio-group { display: flex; gap: 1rem; margin-bottom: 1rem; }\n .radio-item { flex: 1; padding: 1rem; background: #1e293b; border: 2px solid #334155; border-radius: 0.5rem; cursor: pointer; text-align: center; transition: all 0.2s; }\n .radio-item:hover { border-color: #475569; }\n .radio-item.selected { border-color: #3b82f6; background: #1e3a5f; }\n .success { text-align: center; padding: 3rem 0; }\n .success h2 { color: #4ade80; font-size: 1.5rem; }\n </style>\n</head>\n<body>\n <div class=\"container\">\n <div class=\"progress\" id=\"progress\"></div>\n\n <!-- Step 1: Identity -->\n <div class=\"step active\" data-step=\"0\">\n <h1>Welcome</h1>\n <h2>Let's set up your personal assistant</h2>\n <label>Your Name</label>\n <input type=\"text\" id=\"userName\" placeholder=\"Jane Smith\">\n <label>Assistant Name</label>\n <input type=\"text\" id=\"assistantName\" placeholder=\"Atlas\" value=\"Atlas\">\n <label>Profile</label>\n <select id=\"profileType\">\n <option value=\"software-engineer\">Software Engineer</option>\n <option value=\"product-manager\">Product Manager</option>\n <option value=\"engineering-manager\">Engineering Manager</option>\n <option value=\"devops\">DevOps Engineer</option>\n </select>\n <div class=\"btn-group\"><button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button></div>\n </div>\n\n <!-- Step 2: Responsibilities -->\n <div class=\"step\" data-step=\"1\">\n <h1>Responsibilities</h1>\n <h2>Select your core responsibilities</h2>\n <div class=\"checkbox-group\" id=\"responsibilitiesGroup\"></div>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button>\n </div>\n </div>\n\n <!-- Step 3: Template Preview -->\n <div class=\"step\" data-step=\"2\">\n <h1>Context Template</h1>\n <h2>Preview and customize your context template</h2>\n <textarea id=\"templatePreview\"></textarea>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button>\n </div>\n </div>\n\n <!-- Step 4: Storage -->\n <div class=\"step\" data-step=\"3\">\n <h1>Storage</h1>\n <h2>Where should your context be stored?</h2>\n <div class=\"radio-group\">\n <div class=\"radio-item selected\" onclick=\"selectStorage('local')\" id=\"storage-local\">\n <strong>Local Workspace</strong><br><small>Files stored on this machine</small>\n </div>\n <div class=\"radio-item\" onclick=\"selectStorage('gdrive')\" id=\"storage-gdrive\">\n <strong>Google Drive</strong><br><small>Files stored in your Drive folder</small>\n </div>\n </div>\n <div id=\"storage-local-fields\">\n <label>Storage path</label>\n <div style=\"display:flex;gap:0.5rem;align-items:center;\">\n <input type=\"text\" id=\"localPath\" value=\".personal-assistant\" placeholder=\".personal-assistant\" style=\"flex:1;margin-bottom:0;\">\n <button class=\"btn-secondary\" onclick=\"browseFolder()\" id=\"browseBtn\" style=\"white-space:nowrap;flex-shrink:0;\">Browse</button>\n </div>\n <small style=\"color:#64748b;font-size:0.8rem;display:block;margin-top:0.4rem;margin-bottom:1rem;\">Click Browse to open a folder picker, or type a path directly.</small>\n </div>\n <div id=\"storage-gdrive-fields\" style=\"display:none;\">\n <p style=\"color:#f59e0b;font-size:0.85rem;margin-bottom:1rem;\">\n Google Drive OAuth is only supported in the full onboarding UI.<br>\n Run <code>pnpm build</code> in <code>apps/onboarding-web</code> then restart <code>pacman init</code>.\n </p>\n </div>\n <div style=\"background:#1c1917;border:1px solid #92400e;border-radius:0.5rem;padding:0.75rem 1rem;margin-bottom:1.5rem;font-size:0.85rem;color:#fbbf24;\">\n ⚠️ Do not delete, move, or rename the folder structure created by this setup. Claude and the sync daemon rely on the exact file layout to load and update your context.\n </div>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button>\n </div>\n </div>\n\n <!-- Step 5: Integrations -->\n <div class=\"step\" data-step=\"4\">\n <h1>Integrations</h1>\n <h2>Connect your tools (optional)</h2>\n <div class=\"checkbox-group\" id=\"integrationsGroup\">\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"slack\"> Slack</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"gmail\"> Gmail</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"github\"> GitHub</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"gitlab\"> GitLab</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"gdrive\"> Google Drive Docs</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"gchat\"> Google Chat</label>\n </div>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button>\n </div>\n </div>\n\n <!-- Step 6: Sync Schedule -->\n <div class=\"step\" data-step=\"5\">\n <h1>Sync Schedule</h1>\n <h2>When should context be refreshed?</h2>\n <label>Daily Sync Time</label>\n <input type=\"time\" id=\"syncTime\" value=\"08:00\">\n <label>Timezone</label>\n <select id=\"timezone\">\n <option value=\"America/New_York\">Eastern Time (ET)</option>\n <option value=\"America/Chicago\">Central Time (CT)</option>\n <option value=\"America/Denver\">Mountain Time (MT)</option>\n <option value=\"America/Los_Angeles\">Pacific Time (PT)</option>\n <option value=\"UTC\">UTC</option>\n <option value=\"Europe/London\">London (GMT/BST)</option>\n <option value=\"Europe/Berlin\">Berlin (CET)</option>\n <option value=\"Asia/Tokyo\">Tokyo (JST)</option>\n <option value=\"Asia/Kolkata\">India (IST)</option>\n <option value=\"Australia/Sydney\">Sydney (AEST)</option>\n </select>\n <div class=\"checkbox-group\">\n <label class=\"checkbox-item\"><input type=\"checkbox\" id=\"manualSync\" checked> Manual sync</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" id=\"asyncUpdate\" checked> Async updates</label>\n </div>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button>\n </div>\n </div>\n\n <!-- Step 7: Finish -->\n <div class=\"step\" data-step=\"6\">\n <h1>All Set!</h1>\n <h2>Review and save your configuration</h2>\n <div id=\"summary\" style=\"background:#1e293b;padding:1rem;border-radius:0.5rem;margin-bottom:1rem;font-family:monospace;font-size:0.85rem;white-space:pre-wrap;\"></div>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"saveConfig()\">Save &amp; Finish</button>\n </div>\n </div>\n\n <!-- Success -->\n <div class=\"step\" data-step=\"7\">\n <div class=\"success\">\n <h2>Setup Complete!</h2>\n <p style=\"margin-top:1rem;color:#94a3b8;\">Your personal assistant context has been initialized.</p>\n <p style=\"margin-top:1rem;color:#94a3b8;\">Next steps:</p>\n <pre style=\"text-align:left;margin-top:1rem;background:#1e293b;padding:1rem;border-radius:0.5rem;font-size:0.85rem;\">\n# Install Claude Code integration\npacman claude install\npacman mcp claude install\n\n# Install Codex integration\npacman codex install\npacman mcp codex install\n\n# Start the sync daemon\npacman daemon\n\n# Start the real-time Slack listener\npacman slack listen\n\n# Use in Claude Code\n/personal-assistant start &lt;project&gt;\n\n# Use in Codex\nAsk Codex to load or refresh your Personal Assistant context for &lt;project&gt;</pre>\n <p style=\"margin-top:1rem;color:#64748b;font-size:0.85rem;\">Restart Claude Code or Codex after installing the MCP server.<br>If <code style=\"background:#1e293b;padding:0 4px;border-radius:3px;\">pacman</code> is not found, link it first. The legacy alias <code style=\"background:#1e293b;padding:0 4px;border-radius:3px;\">personal-assistant</code> also remains available:<br>\n <code style=\"background:#1e293b;padding:2px 6px;border-radius:3px;\">pnpm setup &amp;&amp; source ~/.zshrc &amp;&amp; cd packages/cli &amp;&amp; pnpm link --global</code></p>\n </div>\n </div>\n </div>\n\n <script>\n let currentStep = 0;\n const totalSteps = 7;\n let state = { storageMode: 'local', responsibilities: [] };\n\n function updateProgress() {\n const bar = document.getElementById('progress');\n bar.innerHTML = '';\n for (let i = 0; i < totalSteps; i++) {\n const dot = document.createElement('div');\n dot.className = 'progress-dot' + (i < currentStep ? ' done' : i === currentStep ? ' current' : '');\n bar.appendChild(dot);\n }\n }\n\n function showStep(n) {\n document.querySelectorAll('.step').forEach(s => s.classList.remove('active'));\n document.querySelector('[data-step=\"' + n + '\"]').classList.add('active');\n currentStep = n;\n updateProgress();\n }\n\n async function nextStep() {\n if (currentStep === 0) await loadResponsibilities();\n if (currentStep === 1) await loadTemplatePreview();\n if (currentStep === 5) updateSummary();\n showStep(currentStep + 1);\n }\n\n function prevStep() { showStep(currentStep - 1); }\n\n async function loadResponsibilities() {\n const profileType = document.getElementById('profileType').value;\n const res = await fetch('/api/responsibilities/' + profileType);\n const data = await res.json();\n const group = document.getElementById('responsibilitiesGroup');\n group.innerHTML = data.responsibilities.map(r =>\n '<label class=\"checkbox-item\"><input type=\"checkbox\" value=\"' + r + '\" checked> ' + r + '</label>'\n ).join('');\n }\n\n async function loadTemplatePreview() {\n const profileType = document.getElementById('profileType').value;\n const name = document.getElementById('userName').value;\n const assistantName = document.getElementById('assistantName').value;\n const responsibilities = Array.from(document.querySelectorAll('#responsibilitiesGroup input:checked')).map(c => c.value);\n state.responsibilities = responsibilities;\n\n const res = await fetch('/api/preview-template', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ profileType, name, assistantName, responsibilities })\n });\n const data = await res.json();\n const preview = Object.entries(data.files).map(([f, c]) => '--- ' + f + ' ---\\\\n' + c).join('\\\\n\\\\n');\n document.getElementById('templatePreview').value = preview;\n }\n\n function selectStorage(mode) {\n state.storageMode = mode;\n document.querySelectorAll('.radio-item').forEach(r => r.classList.remove('selected'));\n document.getElementById('storage-' + mode).classList.add('selected');\n document.getElementById('storage-local-fields').style.display = mode === 'local' ? 'block' : 'none';\n document.getElementById('storage-gdrive-fields').style.display = mode === 'gdrive' ? 'block' : 'none';\n }\n\n async function browseFolder() {\n const btn = document.getElementById('browseBtn');\n btn.textContent = '…';\n btn.disabled = true;\n try {\n const res = await fetch('/api/pick-folder');\n const data = await res.json();\n if (!data.cancelled && data.path) {\n document.getElementById('localPath').value = data.path;\n }\n } catch (e) {\n // ignore — user can type path manually\n } finally {\n btn.textContent = 'Browse';\n btn.disabled = false;\n }\n }\n\n function updateSummary() {\n const config = buildConfig();\n document.getElementById('summary').textContent = JSON.stringify(config, null, 2);\n }\n\n function buildConfig() {\n const integrations = Array.from(document.querySelectorAll('#integrationsGroup input:checked')).map(c => ({\n type: c.value, enabled: true, credentials: {}, cursor: null, lastSyncAt: null\n }));\n\n return {\n user: {\n name: document.getElementById('userName').value,\n assistantName: document.getElementById('assistantName').value,\n profileType: document.getElementById('profileType').value,\n responsibilities: state.responsibilities\n },\n storage: state.storageMode === 'local'\n ? { mode: 'local', workspacePath: document.getElementById('localPath').value || '.personal-assistant' }\n : { mode: 'gdrive', folderId: '', folderName: 'Personal Assistant', cachePath: '.personal-assistant/cache' },\n integrations,\n sync: {\n dailySyncTime: document.getElementById('syncTime').value,\n timezone: document.getElementById('timezone').value,\n manualSyncEnabled: document.getElementById('manualSync').checked,\n asyncUpdateEnabled: document.getElementById('asyncUpdate').checked\n }\n };\n }\n\n async function saveConfig() {\n const config = buildConfig();\n const res = await fetch('/api/save', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(config)\n });\n const data = await res.json();\n if (data.success) showStep(7);\n else alert('Error: ' + data.error);\n }\n\n updateProgress();\n </script>\n</body>\n</html>`;\n}\n","// src/index.ts\nvar PROFILE_TEMPLATES = {\n \"software-engineer\": {\n profileType: \"software-engineer\",\n name: \"Software Engineer\",\n description: \"Context template for software engineers\",\n responsibilities: [\n \"Code review and PR management\",\n \"Feature development\",\n \"Bug fixing and debugging\",\n \"Architecture decisions\",\n \"Technical documentation\",\n \"On-call and incident response\",\n \"Mentoring junior engineers\",\n \"Sprint planning and estimation\",\n \"CI/CD pipeline maintenance\",\n \"API design and development\"\n ],\n sections: [\n {\n name: \"Overview\",\n fileName: \"overview.md\",\n required: true,\n defaultContent: `# Overview\n\n## Role\nSoftware Engineer\n\n## Team\n<!-- Your team name -->\n\n## Primary Focus\n<!-- Main area of work -->\n\n## Key Repositories\n<!-- List your main repos -->\n\n## Tech Stack\n<!-- Languages, frameworks, tools -->\n`\n },\n {\n name: \"Responsibilities\",\n fileName: \"responsibilities.md\",\n required: true,\n defaultContent: `# Responsibilities\n\n## Core Duties\n<!-- Your primary responsibilities -->\n\n## On-Call\n<!-- On-call schedule and escalation paths -->\n\n## Code Review\n<!-- Review expectations and areas -->\n`\n },\n {\n name: \"Stakeholders\",\n fileName: \"stakeholders.md\",\n required: false,\n defaultContent: `# Stakeholders\n\n## Direct Manager\n<!-- Name, role -->\n\n## Team Members\n<!-- Key teammates -->\n\n## Cross-Team Contacts\n<!-- People you work with in other teams -->\n\n## Escalation Path\n<!-- Who to escalate to and when -->\n`\n },\n {\n name: \"Documentation\",\n fileName: \"docs.md\",\n required: false,\n defaultContent: `# Documentation References\n\n## Internal Docs\n<!-- Links to internal documentation -->\n\n## Runbooks\n<!-- Links to runbooks -->\n\n## Architecture Docs\n<!-- Links to architecture documents -->\n`\n }\n ]\n },\n \"product-manager\": {\n profileType: \"product-manager\",\n name: \"Product Manager\",\n description: \"Context template for product managers\",\n responsibilities: [\n \"Product roadmap management\",\n \"Feature prioritization\",\n \"Stakeholder communication\",\n \"User research and interviews\",\n \"Metrics and KPI tracking\",\n \"Sprint planning and grooming\",\n \"Go-to-market strategy\",\n \"Competitive analysis\",\n \"Cross-team coordination\",\n \"Product requirements documentation\"\n ],\n sections: [\n {\n name: \"Overview\",\n fileName: \"overview.md\",\n required: true,\n defaultContent: `# Overview\n\n## Role\nProduct Manager\n\n## Product Area\n<!-- Your product area -->\n\n## Key Metrics\n<!-- North star and supporting metrics -->\n\n## Current Quarter Goals\n<!-- OKRs or key goals -->\n`\n },\n {\n name: \"Responsibilities\",\n fileName: \"responsibilities.md\",\n required: true,\n defaultContent: `# Responsibilities\n\n## Product Areas\n<!-- Products/features you own -->\n\n## Decision Authority\n<!-- What you can decide vs. escalate -->\n\n## Regular Meetings\n<!-- Recurring meetings and cadences -->\n`\n },\n {\n name: \"Stakeholders\",\n fileName: \"stakeholders.md\",\n required: false,\n defaultContent: `# Stakeholders\n\n## Engineering Leads\n<!-- Engineering partners -->\n\n## Design Partners\n<!-- Design team contacts -->\n\n## Business Stakeholders\n<!-- Sales, marketing, exec sponsors -->\n\n## Customers\n<!-- Key customer contacts or segments -->\n`\n },\n {\n name: \"Documentation\",\n fileName: \"docs.md\",\n required: false,\n defaultContent: `# Documentation References\n\n## PRDs\n<!-- Product requirement documents -->\n\n## Roadmap\n<!-- Roadmap links -->\n\n## Analytics Dashboards\n<!-- Links to dashboards -->\n`\n }\n ]\n },\n \"engineering-manager\": {\n profileType: \"engineering-manager\",\n name: \"Engineering Manager\",\n description: \"Context template for engineering managers\",\n responsibilities: [\n \"Team management and 1:1s\",\n \"Hiring and interviewing\",\n \"Performance reviews\",\n \"Technical strategy\",\n \"Cross-team coordination\",\n \"Sprint planning and velocity\",\n \"Incident management\",\n \"Budget and resource planning\",\n \"Career development coaching\",\n \"Process improvement\"\n ],\n sections: [\n {\n name: \"Overview\",\n fileName: \"overview.md\",\n required: true,\n defaultContent: `# Overview\n\n## Role\nEngineering Manager\n\n## Team\n<!-- Team name and size -->\n\n## Charter\n<!-- Team charter / mission -->\n\n## Key Systems\n<!-- Systems your team owns -->\n`\n },\n {\n name: \"Responsibilities\",\n fileName: \"responsibilities.md\",\n required: true,\n defaultContent: `# Responsibilities\n\n## People Management\n<!-- Direct reports, 1:1 cadence -->\n\n## Technical Oversight\n<!-- Architecture, code quality, tech debt -->\n\n## Process\n<!-- Agile ceremonies, team rituals -->\n\n## Hiring\n<!-- Open roles, pipeline -->\n`\n },\n {\n name: \"Stakeholders\",\n fileName: \"stakeholders.md\",\n required: false,\n defaultContent: `# Stakeholders\n\n## Direct Reports\n<!-- Team members -->\n\n## Skip Level\n<!-- Your manager -->\n\n## Product Partners\n<!-- PMs you work with -->\n\n## Peer Managers\n<!-- Other EMs -->\n`\n },\n {\n name: \"Documentation\",\n fileName: \"docs.md\",\n required: false,\n defaultContent: `# Documentation References\n\n## Team Docs\n<!-- Team wiki, confluence pages -->\n\n## Process Docs\n<!-- Runbooks, playbooks -->\n\n## HR Resources\n<!-- Performance review templates, etc. -->\n`\n }\n ]\n },\n devops: {\n profileType: \"devops\",\n name: \"DevOps Engineer\",\n description: \"Context template for DevOps engineers\",\n responsibilities: [\n \"CI/CD pipeline management\",\n \"Infrastructure as code\",\n \"Monitoring and alerting\",\n \"Incident response\",\n \"Security compliance\",\n \"Cost optimization\",\n \"Deployment automation\",\n \"Container orchestration\",\n \"Database management\",\n \"Disaster recovery planning\"\n ],\n sections: [\n {\n name: \"Overview\",\n fileName: \"overview.md\",\n required: true,\n defaultContent: `# Overview\n\n## Role\nDevOps Engineer\n\n## Infrastructure\n<!-- Cloud provider, key services -->\n\n## Key Environments\n<!-- Production, staging, dev -->\n\n## Monitoring Stack\n<!-- Tools and dashboards -->\n`\n },\n {\n name: \"Responsibilities\",\n fileName: \"responsibilities.md\",\n required: true,\n defaultContent: `# Responsibilities\n\n## Infrastructure\n<!-- IaC, cloud resources -->\n\n## CI/CD\n<!-- Pipelines, deployment processes -->\n\n## On-Call\n<!-- PagerDuty, escalation paths -->\n\n## Security\n<!-- Compliance, access management -->\n`\n },\n {\n name: \"Stakeholders\",\n fileName: \"stakeholders.md\",\n required: false,\n defaultContent: `# Stakeholders\n\n## Platform Team\n<!-- Team members -->\n\n## Engineering Teams\n<!-- Teams you support -->\n\n## Security Team\n<!-- Security contacts -->\n\n## Vendor Contacts\n<!-- Cloud, tooling vendors -->\n`\n },\n {\n name: \"Documentation\",\n fileName: \"docs.md\",\n required: false,\n defaultContent: `# Documentation References\n\n## Runbooks\n<!-- Incident response runbooks -->\n\n## Architecture Diagrams\n<!-- Infrastructure diagrams -->\n\n## Compliance Docs\n<!-- SOC2, security policies -->\n`\n }\n ]\n }\n};\nfunction getTemplate(profileType) {\n const template = PROFILE_TEMPLATES[profileType];\n if (!template) {\n throw new Error(`Unknown profile type: ${profileType}`);\n }\n return { ...template };\n}\nfunction listProfiles() {\n return Object.keys(PROFILE_TEMPLATES);\n}\nfunction getResponsibilities(profileType) {\n const template = PROFILE_TEMPLATES[profileType];\n if (!template) {\n throw new Error(`Unknown profile type: ${profileType}`);\n }\n return [...template.responsibilities];\n}\nfunction renderTemplate(template, user) {\n const files = {};\n for (const section of template.sections) {\n let content = section.defaultContent;\n content = content.replace(\"<!-- Your team name -->\", `${user.name}'s team`);\n if (section.fileName === \"responsibilities.md\" && user.responsibilities.length > 0) {\n content += \"\\n## Selected Responsibilities\\n\";\n for (const r of user.responsibilities) {\n content += `- ${r}\n`;\n }\n }\n files[section.fileName] = content;\n }\n return files;\n}\nfunction getTemplateSections(profileType) {\n const template = PROFILE_TEMPLATES[profileType];\n if (!template) {\n throw new Error(`Unknown profile type: ${profileType}`);\n }\n return template.sections.map((s) => ({ ...s }));\n}\nexport {\n getResponsibilities,\n getTemplate,\n getTemplateSections,\n listProfiles,\n renderTemplate\n};\n"],"mappings":"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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmVT;","names":[]}
1
+ {"version":3,"sources":["../src/onboarding-server.ts","../../template-engine/dist/index.js"],"sourcesContent":["import express from 'express';\nimport * as path from 'node:path';\nimport * as fs from 'node:fs/promises';\nimport { exec } from 'node:child_process';\nimport { promisify } from 'node:util';\n\nconst execAsync = promisify(exec);\nimport { createLocalStorage } from '@personal-assistant/storage-local';\nimport { createGDriveStorage } from '@personal-assistant/storage-gdrive';\nimport { createConfigManager } from '@personal-assistant/config-manager';\nimport { createContextManager } from '@personal-assistant/context-manager';\nimport {\n getTemplate,\n renderTemplate,\n listProfiles,\n getResponsibilities,\n} from '@personal-assistant/template-engine';\nimport { validateIntegrationConfig } from '@personal-assistant/integration-runtime';\nimport { createSlackConnector, validateSlackAppToken } from '@personal-assistant/integrations-slack';\nimport { createNoopEventClient } from '@personal-assistant/event-client';\nimport type {\n AppConfig,\n LlmProvider,\n ProfileType,\n UserProfile,\n StorageConfig,\n GDriveStorageConfig,\n IntegrationConfig,\n SyncConfig,\n} from '@personal-assistant/core-types';\nimport { validateProviderConfig } from './provider-runtime.js';\n\ninterface GDriveAuthSession {\n clientId: string;\n clientSecret: string;\n status: 'pending' | 'authenticated' | 'complete' | 'error';\n // set after OAuth callback\n accessToken?: string;\n refreshToken?: string;\n // set after folder creation\n folderId?: string;\n folderName?: string;\n folderPath?: string;\n error?: string;\n}\n\nexport async function startOnboardingServer(\n port: number,\n workspacePath: string,\n): Promise<void> {\n const app = express();\n app.use(express.json());\n\n let gdriveAuthSession: GDriveAuthSession | null = null;\n\n const onboardingStaticPath = await resolveOnboardingStaticPath();\n\n // Try to serve built static files; fallback to inline HTML\n if (onboardingStaticPath) {\n app.use(express.static(onboardingStaticPath));\n } else {\n // Serve inline onboarding page if the web app isn't built\n app.get('/', (_req, res) => {\n res.send(getInlineOnboardingHtml());\n });\n }\n\n // --- API Routes ---\n\n app.get('/api/profiles', (_req, res) => {\n const profiles = listProfiles();\n res.json({ profiles });\n });\n\n app.get('/api/responsibilities/:profileType', (req, res) => {\n try {\n const responsibilities = getResponsibilities(req.params.profileType as ProfileType);\n res.json({ responsibilities });\n } catch {\n res.status(400).json({ error: 'Invalid profile type' });\n }\n });\n\n app.get('/api/template/:profileType', (req, res) => {\n try {\n const template = getTemplate(req.params.profileType as ProfileType);\n res.json({ template });\n } catch {\n res.status(400).json({ error: 'Invalid profile type' });\n }\n });\n\n app.post('/api/preview-template', (req, res) => {\n const { profileType, name, assistantName, responsibilities } = req.body;\n try {\n const template = getTemplate(profileType);\n const files = renderTemplate(template, { name, assistantName, responsibilities });\n res.json({ files });\n } catch (err) {\n res.status(400).json({ error: String(err) });\n }\n });\n\n app.post('/api/save', async (req, res) => {\n try {\n const config: AppConfig = req.body;\n\n // Use the user-chosen local path if provided, otherwise fall back to CLI --dir\n const effectivePath =\n config.storage.mode === 'local' && (config.storage as { workspacePath?: string }).workspacePath\n ? path.resolve((config.storage as { workspacePath: string }).workspacePath)\n : workspacePath;\n\n // Ensure the local directory exists (needed for bootstrap even in GDrive mode)\n await fs.mkdir(effectivePath, { recursive: true });\n\n // Save a global pointer so CLI commands can find the workspace without --dir\n const rcPath = path.join(process.env.HOME ?? process.env.USERPROFILE ?? '~', '.personal-assistant-rc.json');\n await fs.writeFile(rcPath, JSON.stringify({ workspacePath: effectivePath }, null, 2), 'utf-8');\n\n // Always save storage.json locally for bootstrap (so MCP server knows which backend to use)\n const localStorage = createLocalStorage(effectivePath);\n const localConfigManager = createConfigManager(localStorage);\n await localConfigManager.saveConfig(config);\n\n // Resolve the user's chosen storage backend\n let targetStorage: import('@personal-assistant/core-types').StorageBackend = localStorage;\n if (config.storage.mode === 'gdrive') {\n const gdriveConfig = config.storage as GDriveStorageConfig;\n const resolvedCachePath = path.isAbsolute(gdriveConfig.cachePath)\n ? gdriveConfig.cachePath\n : path.resolve(path.dirname(effectivePath), gdriveConfig.cachePath);\n\n const gdriveStorage = createGDriveStorage({\n ...gdriveConfig,\n cachePath: resolvedCachePath,\n });\n await gdriveStorage.initialize();\n targetStorage = gdriveStorage;\n\n // Write config to GDrive so all reads go through GDrive\n const gdriveConfigManager = createConfigManager(gdriveStorage);\n await gdriveConfigManager.saveConfig(config);\n }\n\n const contextManager = createContextManager(targetStorage);\n\n // Initialize workspace structure on the target backend\n await contextManager.initWorkspace();\n\n // Render and write template files to the target backend\n const template = getTemplate(config.user.profileType);\n const files = renderTemplate(template, {\n name: config.user.name,\n assistantName: config.user.assistantName,\n responsibilities: config.user.responsibilities,\n });\n await contextManager.writeCanonicalFiles(files);\n\n // Emit onboarding completed event\n const eventClient = createNoopEventClient();\n await eventClient.emit('onboarding_completed', {\n profile: config.user.profileType,\n storage_mode: config.storage.mode,\n });\n\n res.json({ success: true, workspacePath: effectivePath });\n } catch (err) {\n res.status(500).json({ error: String(err) });\n }\n });\n\n // --- Integration credential validation ---\n\n app.post('/api/validate-integration', async (req, res) => {\n const { type, credentials } = req.body as {\n type: string;\n credentials: Record<string, string>;\n };\n\n try {\n const result = await validateIntegrationConfig({\n type: type as IntegrationConfig['type'],\n enabled: true,\n credentials,\n });\n\n if (result.ok) {\n res.json({ valid: true, info: result.summary ?? `Connected to ${type}` });\n return;\n }\n\n res.json({\n valid: false,\n error: [result.reason, ...(result.fix ?? [])].filter(Boolean).join(' '),\n });\n } catch (err) {\n res.json({ valid: false, error: String(err) });\n }\n });\n\n app.post('/api/validate-provider', async (req, res) => {\n const { provider, apiKey, model } = req.body as {\n provider: LlmProvider;\n apiKey: string;\n model?: string;\n };\n\n try {\n const result = await validateProviderConfig(provider, apiKey, model);\n res.json(result);\n } catch (err) {\n res.json({ valid: false, error: String(err) });\n }\n });\n\n app.post('/api/validate-slack-runtime', async (req, res) => {\n const {\n botToken,\n appToken,\n generationEnabled,\n providers,\n } = req.body as {\n botToken?: string;\n appToken?: string;\n generationEnabled?: boolean;\n providers?: {\n openai?: { apiKey?: string; model?: string };\n anthropic?: { apiKey?: string; model?: string };\n };\n };\n\n if (!botToken || !appToken) {\n res.json({ valid: false, error: 'Slack bot token and app token are required.' });\n return;\n }\n\n if (!botToken.startsWith('xoxb-')) {\n res.json({\n valid: false,\n error: 'Slack bot token must start with xoxb-. Paste the Bot User OAuth Token from OAuth & Permissions.',\n });\n return;\n }\n\n if (!appToken.startsWith('xapp-')) {\n res.json({\n valid: false,\n error: 'Slack Socket Mode app token must start with xapp-. Create an App-Level Token with connections:write under Socket Mode.',\n });\n return;\n }\n\n try {\n const connector = createSlackConnector();\n await connector.authenticate({\n type: 'slack',\n enabled: true,\n credentials: { botToken },\n });\n const health = await connector.healthCheck();\n await validateSlackAppToken(appToken);\n\n if (generationEnabled) {\n const providerEntries = [\n ['openai', providers?.openai],\n ['anthropic', providers?.anthropic],\n ] as const;\n\n const configuredProviders = providerEntries.filter(([, value]) => value?.apiKey);\n if (configuredProviders.length === 0) {\n res.json({ valid: false, error: 'Enable at least one provider when Slack generation is turned on.' });\n return;\n }\n\n for (const [provider, value] of configuredProviders) {\n const result = await validateProviderConfig(provider, value?.apiKey ?? '', value?.model);\n if (!result.valid) {\n res.json({ valid: false, error: result.error ?? `Failed to validate ${provider}` });\n return;\n }\n }\n }\n\n res.json({\n valid: true,\n info: `${health.summary ?? 'Slack connected'} via Socket Mode. Atlas will monitor channels where the bot is added.`,\n });\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n if (message.includes('not_allowed_token_type')) {\n res.json({\n valid: false,\n error: 'Slack rejected the Socket Mode token. Use an App-Level Token that starts with xapp- and has the connections:write scope.',\n });\n return;\n }\n\n res.json({\n valid: false,\n error: message,\n });\n }\n });\n\n // --- Local folder picker ---\n\n app.get('/api/pick-folder', async (_req, res) => {\n try {\n let folderPath: string;\n const platform = process.platform;\n\n if (platform === 'darwin') {\n const { stdout } = await execAsync(\n `osascript -e 'POSIX path of (choose folder with prompt \"Select a folder for your personal assistant context\")'`,\n );\n folderPath = stdout.trim();\n } else if (platform === 'linux') {\n const { stdout } = await execAsync(\n 'zenity --file-selection --directory --title=\"Select storage folder\"',\n );\n folderPath = stdout.trim();\n } else if (platform === 'win32') {\n const ps =\n '[System.Reflection.Assembly]::LoadWithPartialName(\\'System.windows.forms\\') | Out-Null; ' +\n '$f = New-Object System.Windows.Forms.FolderBrowserDialog; ' +\n '$f.Description = \\'Select a folder for your personal assistant context\\'; ' +\n '$f.ShowDialog() | Out-Null; $f.SelectedPath';\n const { stdout } = await execAsync(`powershell -command \"${ps}\"`);\n folderPath = stdout.trim();\n } else {\n res.status(400).json({ error: 'Folder picker not supported on this platform' });\n return;\n }\n\n if (!folderPath) {\n res.json({ cancelled: true });\n return;\n }\n\n res.json({ path: folderPath });\n } catch (err) {\n // osascript throws when the user clicks Cancel — treat as cancellation\n if (String(err).includes('User canceled') || String(err).includes('cancel')) {\n res.json({ cancelled: true });\n return;\n }\n res.status(500).json({ error: String(err) });\n }\n });\n\n // --- Google Drive OAuth routes ---\n\n app.post('/api/gdrive/auth-start', async (req, res) => {\n const { clientId, clientSecret } = req.body as { clientId?: string; clientSecret?: string };\n if (!clientId || !clientSecret) {\n res.status(400).json({ error: 'clientId and clientSecret are required' });\n return;\n }\n\n try {\n const { google } = await import('googleapis');\n const redirectUri = `http://localhost:${port}/api/gdrive/callback`;\n const oauth2Client = new google.auth.OAuth2(clientId, clientSecret, redirectUri);\n const authUrl = oauth2Client.generateAuthUrl({\n access_type: 'offline',\n prompt: 'consent',\n scope: ['https://www.googleapis.com/auth/drive.file'],\n });\n\n gdriveAuthSession = { clientId, clientSecret, status: 'pending' };\n res.json({ authUrl });\n } catch (err) {\n res.status(500).json({ error: String(err) });\n }\n });\n\n app.get('/api/gdrive/callback', async (req, res) => {\n const { code } = req.query as { code?: string };\n\n if (!code || !gdriveAuthSession) {\n res.status(400).send('Invalid OAuth callback — no pending auth session.');\n return;\n }\n\n try {\n const { google } = await import('googleapis');\n const redirectUri = `http://localhost:${port}/api/gdrive/callback`;\n const oauth2Client = new google.auth.OAuth2(\n gdriveAuthSession.clientId,\n gdriveAuthSession.clientSecret,\n redirectUri,\n );\n\n const { tokens } = await oauth2Client.getToken(code);\n\n // Store tokens only — folder is created in a separate step\n gdriveAuthSession = {\n ...gdriveAuthSession,\n status: 'authenticated',\n refreshToken: tokens.refresh_token ?? undefined,\n accessToken: tokens.access_token ?? undefined,\n };\n\n res.send(`<!DOCTYPE html><html><body>\n <script>window.close();</script>\n <p style=\"font-family:sans-serif;padding:2rem;color:#4ade80;\">\n ✓ Authentication successful — you can close this tab and return to the setup.\n </p>\n </body></html>`);\n } catch (err) {\n if (gdriveAuthSession) {\n gdriveAuthSession.status = 'error';\n gdriveAuthSession.error = String(err);\n }\n res.status(500).send('Authentication failed: ' + String(err));\n }\n });\n\n app.get('/api/gdrive/auth-status', (_req, res) => {\n if (!gdriveAuthSession) {\n res.json({ status: 'idle' });\n return;\n }\n const { clientId: _cid, clientSecret: _csec, accessToken: _at, refreshToken: _rt, ...publicSession } = gdriveAuthSession;\n res.json(publicSession);\n });\n\n app.post('/api/gdrive/create-folder', async (req, res) => {\n if (!gdriveAuthSession || gdriveAuthSession.status !== 'authenticated') {\n res.status(400).json({ error: 'Not authenticated. Please connect Google Drive first.' });\n return;\n }\n\n const { folderName = 'Personal Assistant', parentFolderName = '' } =\n req.body as { folderName?: string; parentFolderName?: string };\n\n try {\n const { google } = await import('googleapis');\n const redirectUri = `http://localhost:${port}/api/gdrive/callback`;\n const oauth2Client = new google.auth.OAuth2(\n gdriveAuthSession.clientId,\n gdriveAuthSession.clientSecret,\n redirectUri,\n );\n oauth2Client.setCredentials({\n access_token: gdriveAuthSession.accessToken,\n refresh_token: gdriveAuthSession.refreshToken,\n });\n\n const drive = google.drive({ version: 'v3', auth: oauth2Client });\n\n // Resolve parent folder\n let parentId = 'root';\n let locationPath = 'My Drive';\n\n if (parentFolderName.trim()) {\n const searchRes = await drive.files.list({\n q: `name='${parentFolderName.trim()}' and mimeType='application/vnd.google-apps.folder' and trashed=false`,\n fields: 'files(id,name)',\n spaces: 'drive',\n });\n\n if (searchRes.data.files && searchRes.data.files.length > 0) {\n parentId = searchRes.data.files[0].id!;\n } else {\n // Create the parent folder at root\n const parentRes = await drive.files.create({\n requestBody: {\n name: parentFolderName.trim(),\n mimeType: 'application/vnd.google-apps.folder',\n },\n fields: 'id',\n });\n parentId = parentRes.data.id!;\n }\n locationPath = `My Drive / ${parentFolderName.trim()}`;\n }\n\n // Check if the main folder already exists under the parent before creating\n let folderId: string | undefined;\n let resolvedFolderName = folderName.trim();\n const existingSearch = await drive.files.list({\n q: `name='${resolvedFolderName}' and '${parentId}' in parents and mimeType='application/vnd.google-apps.folder' and trashed=false`,\n fields: 'files(id,name)',\n spaces: 'drive',\n });\n\n if (existingSearch.data.files && existingSearch.data.files.length > 0) {\n folderId = existingSearch.data.files[0].id!;\n resolvedFolderName = existingSearch.data.files[0].name!;\n } else {\n const folderRes = await drive.files.create({\n requestBody: {\n name: resolvedFolderName,\n mimeType: 'application/vnd.google-apps.folder',\n parents: [parentId],\n },\n fields: 'id,name',\n });\n folderId = folderRes.data.id!;\n resolvedFolderName = folderRes.data.name!;\n }\n\n const folderPath = `${locationPath} / ${resolvedFolderName}`;\n\n // Refresh tokens in case they were rotated\n const freshCredentials = await oauth2Client.getAccessToken();\n const latestRefreshToken =\n (oauth2Client.credentials.refresh_token as string | undefined) ??\n gdriveAuthSession.refreshToken;\n\n gdriveAuthSession = {\n ...gdriveAuthSession,\n status: 'complete',\n folderId: folderId!,\n folderName: resolvedFolderName,\n folderPath,\n refreshToken: latestRefreshToken,\n accessToken: freshCredentials.token ?? undefined,\n };\n\n res.json({\n folderId,\n folderName: resolvedFolderName,\n folderPath,\n refreshToken: latestRefreshToken,\n });\n } catch (err) {\n res.status(500).json({ error: String(err) });\n }\n });\n\n app.get('/api/status', async (_req, res) => {\n const storage = createLocalStorage(workspacePath);\n const configManager = createConfigManager(storage);\n try {\n const config = await configManager.loadConfig();\n res.json({ configured: true, config });\n } catch {\n res.json({ configured: false });\n }\n });\n\n // Start server\n const server = app.listen(port, () => {\n const url = `http://localhost:${port}`;\n console.log(`Onboarding server running at ${url}`);\n\n // Try to open browser\n import('open')\n .then((openModule) => openModule.default(url))\n .catch(() => {\n console.log(`Open ${url} in your browser to continue.`);\n });\n });\n\n // Handle graceful shutdown\n process.on('SIGINT', () => {\n console.log('\\nShutting down onboarding server...');\n server.close();\n process.exit(0);\n });\n}\n\nasync function resolveOnboardingStaticPath(): Promise<string | null> {\n const baseDir = import.meta.dirname ?? __dirname;\n const candidates = [\n path.resolve(baseDir, './onboarding-web'),\n path.resolve(baseDir, '../../../apps/onboarding-web/dist'),\n ];\n\n for (const candidate of candidates) {\n try {\n await fs.access(path.join(candidate, 'index.html'));\n return candidate;\n } catch {\n // keep looking\n }\n }\n\n return null;\n}\n\nfunction getInlineOnboardingHtml(): string {\n return `<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Personal Assistant - Setup</title>\n <style>\n * { margin: 0; padding: 0; box-sizing: border-box; }\n body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #0f172a; color: #e2e8f0; min-height: 100vh; }\n .container { max-width: 640px; margin: 0 auto; padding: 2rem; }\n h1 { font-size: 1.8rem; margin-bottom: 0.5rem; color: #f8fafc; }\n h2 { font-size: 1.2rem; margin-bottom: 1rem; color: #94a3b8; font-weight: 400; }\n .step { display: none; }\n .step.active { display: block; }\n .progress { display: flex; gap: 0.5rem; margin-bottom: 2rem; }\n .progress-dot { width: 2rem; height: 0.25rem; background: #334155; border-radius: 2px; transition: background 0.3s; }\n .progress-dot.done { background: #3b82f6; }\n .progress-dot.current { background: #60a5fa; }\n label { display: block; margin-bottom: 0.5rem; color: #cbd5e1; font-size: 0.9rem; }\n input, select, textarea { width: 100%; padding: 0.75rem; background: #1e293b; border: 1px solid #334155; border-radius: 0.5rem; color: #f8fafc; font-size: 1rem; margin-bottom: 1rem; }\n input:focus, select:focus, textarea:focus { outline: none; border-color: #3b82f6; }\n textarea { min-height: 200px; font-family: 'SF Mono', 'Fira Code', monospace; font-size: 0.85rem; }\n button { padding: 0.75rem 1.5rem; border: none; border-radius: 0.5rem; font-size: 1rem; cursor: pointer; transition: all 0.2s; }\n .btn-primary { background: #3b82f6; color: white; }\n .btn-primary:hover { background: #2563eb; }\n .btn-secondary { background: #334155; color: #e2e8f0; }\n .btn-secondary:hover { background: #475569; }\n .btn-group { display: flex; gap: 0.75rem; margin-top: 1.5rem; }\n .checkbox-group { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; margin-bottom: 1rem; }\n .checkbox-item { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem; background: #1e293b; border: 1px solid #334155; border-radius: 0.375rem; cursor: pointer; }\n .checkbox-item:hover { border-color: #475569; }\n .checkbox-item input[type=\"checkbox\"] { width: auto; margin: 0; }\n .radio-group { display: flex; gap: 1rem; margin-bottom: 1rem; }\n .radio-item { flex: 1; padding: 1rem; background: #1e293b; border: 2px solid #334155; border-radius: 0.5rem; cursor: pointer; text-align: center; transition: all 0.2s; }\n .radio-item:hover { border-color: #475569; }\n .radio-item.selected { border-color: #3b82f6; background: #1e3a5f; }\n .success { text-align: center; padding: 3rem 0; }\n .success h2 { color: #4ade80; font-size: 1.5rem; }\n </style>\n</head>\n<body>\n <div class=\"container\">\n <div class=\"progress\" id=\"progress\"></div>\n\n <!-- Step 1: Identity -->\n <div class=\"step active\" data-step=\"0\">\n <h1>Welcome</h1>\n <h2>Let's set up your personal assistant</h2>\n <label>Your Name</label>\n <input type=\"text\" id=\"userName\" placeholder=\"Jane Smith\">\n <label>Assistant Name</label>\n <input type=\"text\" id=\"assistantName\" placeholder=\"Atlas\" value=\"Atlas\">\n <label>Profile</label>\n <select id=\"profileType\">\n <option value=\"software-engineer\">Software Engineer</option>\n <option value=\"product-manager\">Product Manager</option>\n <option value=\"engineering-manager\">Engineering Manager</option>\n <option value=\"devops\">DevOps Engineer</option>\n </select>\n <div class=\"btn-group\"><button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button></div>\n </div>\n\n <!-- Step 2: Responsibilities -->\n <div class=\"step\" data-step=\"1\">\n <h1>Responsibilities</h1>\n <h2>Select your core responsibilities</h2>\n <div class=\"checkbox-group\" id=\"responsibilitiesGroup\"></div>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button>\n </div>\n </div>\n\n <!-- Step 3: Template Preview -->\n <div class=\"step\" data-step=\"2\">\n <h1>Context Template</h1>\n <h2>Preview and customize your context template</h2>\n <textarea id=\"templatePreview\"></textarea>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button>\n </div>\n </div>\n\n <!-- Step 4: Storage -->\n <div class=\"step\" data-step=\"3\">\n <h1>Storage</h1>\n <h2>Where should your context be stored?</h2>\n <div class=\"radio-group\">\n <div class=\"radio-item selected\" onclick=\"selectStorage('local')\" id=\"storage-local\">\n <strong>Local Workspace</strong><br><small>Files stored on this machine</small>\n </div>\n <div class=\"radio-item\" onclick=\"selectStorage('gdrive')\" id=\"storage-gdrive\">\n <strong>Google Drive</strong><br><small>Files stored in your Drive folder</small>\n </div>\n </div>\n <div id=\"storage-local-fields\">\n <label>Storage path</label>\n <div style=\"display:flex;gap:0.5rem;align-items:center;\">\n <input type=\"text\" id=\"localPath\" value=\".personal-assistant\" placeholder=\".personal-assistant\" style=\"flex:1;margin-bottom:0;\">\n <button class=\"btn-secondary\" onclick=\"browseFolder()\" id=\"browseBtn\" style=\"white-space:nowrap;flex-shrink:0;\">Browse</button>\n </div>\n <small style=\"color:#64748b;font-size:0.8rem;display:block;margin-top:0.4rem;margin-bottom:1rem;\">Click Browse to open a folder picker, or type a path directly.</small>\n </div>\n <div id=\"storage-gdrive-fields\" style=\"display:none;\">\n <p style=\"color:#f59e0b;font-size:0.85rem;margin-bottom:1rem;\">\n Google Drive OAuth is only supported in the full onboarding UI.<br>\n Run <code>pnpm build</code> in <code>apps/onboarding-web</code> then restart <code>pacman init</code>.\n </p>\n </div>\n <div style=\"background:#1c1917;border:1px solid #92400e;border-radius:0.5rem;padding:0.75rem 1rem;margin-bottom:1.5rem;font-size:0.85rem;color:#fbbf24;\">\n ⚠️ Do not delete, move, or rename the folder structure created by this setup. Claude and the sync daemon rely on the exact file layout to load and update your context.\n </div>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button>\n </div>\n </div>\n\n <!-- Step 5: Integrations -->\n <div class=\"step\" data-step=\"4\">\n <h1>Integrations</h1>\n <h2>Connect your tools (optional)</h2>\n <div class=\"checkbox-group\" id=\"integrationsGroup\">\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"slack\"> Slack</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"gmail\"> Gmail</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"github\"> GitHub</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"gitlab\"> GitLab</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"gdrive\"> Google Drive Docs</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"gchat\"> Google Chat</label>\n </div>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button>\n </div>\n </div>\n\n <!-- Step 6: Sync Schedule -->\n <div class=\"step\" data-step=\"5\">\n <h1>Sync Schedule</h1>\n <h2>When should context be refreshed?</h2>\n <label>Daily Sync Time</label>\n <input type=\"time\" id=\"syncTime\" value=\"08:00\">\n <label>Timezone</label>\n <select id=\"timezone\">\n <option value=\"America/New_York\">Eastern Time (ET)</option>\n <option value=\"America/Chicago\">Central Time (CT)</option>\n <option value=\"America/Denver\">Mountain Time (MT)</option>\n <option value=\"America/Los_Angeles\">Pacific Time (PT)</option>\n <option value=\"UTC\">UTC</option>\n <option value=\"Europe/London\">London (GMT/BST)</option>\n <option value=\"Europe/Berlin\">Berlin (CET)</option>\n <option value=\"Asia/Tokyo\">Tokyo (JST)</option>\n <option value=\"Asia/Kolkata\">India (IST)</option>\n <option value=\"Australia/Sydney\">Sydney (AEST)</option>\n </select>\n <div class=\"checkbox-group\">\n <label class=\"checkbox-item\"><input type=\"checkbox\" id=\"manualSync\" checked> Manual sync</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" id=\"asyncUpdate\" checked> Async updates</label>\n </div>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button>\n </div>\n </div>\n\n <!-- Step 7: Finish -->\n <div class=\"step\" data-step=\"6\">\n <h1>All Set!</h1>\n <h2>Review and save your configuration</h2>\n <div id=\"summary\" style=\"background:#1e293b;padding:1rem;border-radius:0.5rem;margin-bottom:1rem;font-family:monospace;font-size:0.85rem;white-space:pre-wrap;\"></div>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"saveConfig()\">Save &amp; Finish</button>\n </div>\n </div>\n\n <!-- Success -->\n <div class=\"step\" data-step=\"7\">\n <div class=\"success\">\n <h2>Setup Complete!</h2>\n <p style=\"margin-top:1rem;color:#94a3b8;\">Your personal assistant context has been initialized.</p>\n <p style=\"margin-top:1rem;color:#94a3b8;\">Next steps:</p>\n <pre style=\"text-align:left;margin-top:1rem;background:#1e293b;padding:1rem;border-radius:0.5rem;font-size:0.85rem;\">\n# Install Claude Code integration\npacman claude install\npacman mcp claude install\n\n# Install Codex integration\npacman codex install\npacman mcp codex install\n\n# Start the sync daemon\npacman daemon\n\n# Start the real-time Slack listener\npacman slack listen\n\n# Use in Claude Code\n/personal-assistant start &lt;project&gt;\n\n# Use in Codex\nAsk Codex to load or refresh your Personal Assistant context for &lt;project&gt;</pre>\n <p style=\"margin-top:1rem;color:#64748b;font-size:0.85rem;\">Restart Claude Code or Codex after installing the MCP server.<br>If <code style=\"background:#1e293b;padding:0 4px;border-radius:3px;\">pacman</code> is not found, link it first. The legacy alias <code style=\"background:#1e293b;padding:0 4px;border-radius:3px;\">personal-assistant</code> also remains available:<br>\n <code style=\"background:#1e293b;padding:2px 6px;border-radius:3px;\">pnpm setup &amp;&amp; source ~/.zshrc &amp;&amp; cd packages/cli &amp;&amp; pnpm link --global</code></p>\n </div>\n </div>\n </div>\n\n <script>\n let currentStep = 0;\n const totalSteps = 7;\n let state = { storageMode: 'local', responsibilities: [] };\n\n function updateProgress() {\n const bar = document.getElementById('progress');\n bar.innerHTML = '';\n for (let i = 0; i < totalSteps; i++) {\n const dot = document.createElement('div');\n dot.className = 'progress-dot' + (i < currentStep ? ' done' : i === currentStep ? ' current' : '');\n bar.appendChild(dot);\n }\n }\n\n function showStep(n) {\n document.querySelectorAll('.step').forEach(s => s.classList.remove('active'));\n document.querySelector('[data-step=\"' + n + '\"]').classList.add('active');\n currentStep = n;\n updateProgress();\n }\n\n async function nextStep() {\n if (currentStep === 0) await loadResponsibilities();\n if (currentStep === 1) await loadTemplatePreview();\n if (currentStep === 5) updateSummary();\n showStep(currentStep + 1);\n }\n\n function prevStep() { showStep(currentStep - 1); }\n\n async function loadResponsibilities() {\n const profileType = document.getElementById('profileType').value;\n const res = await fetch('/api/responsibilities/' + profileType);\n const data = await res.json();\n const group = document.getElementById('responsibilitiesGroup');\n group.innerHTML = data.responsibilities.map(r =>\n '<label class=\"checkbox-item\"><input type=\"checkbox\" value=\"' + r + '\" checked> ' + r + '</label>'\n ).join('');\n }\n\n async function loadTemplatePreview() {\n const profileType = document.getElementById('profileType').value;\n const name = document.getElementById('userName').value;\n const assistantName = document.getElementById('assistantName').value;\n const responsibilities = Array.from(document.querySelectorAll('#responsibilitiesGroup input:checked')).map(c => c.value);\n state.responsibilities = responsibilities;\n\n const res = await fetch('/api/preview-template', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ profileType, name, assistantName, responsibilities })\n });\n const data = await res.json();\n const preview = Object.entries(data.files).map(([f, c]) => '--- ' + f + ' ---\\\\n' + c).join('\\\\n\\\\n');\n document.getElementById('templatePreview').value = preview;\n }\n\n function selectStorage(mode) {\n state.storageMode = mode;\n document.querySelectorAll('.radio-item').forEach(r => r.classList.remove('selected'));\n document.getElementById('storage-' + mode).classList.add('selected');\n document.getElementById('storage-local-fields').style.display = mode === 'local' ? 'block' : 'none';\n document.getElementById('storage-gdrive-fields').style.display = mode === 'gdrive' ? 'block' : 'none';\n }\n\n async function browseFolder() {\n const btn = document.getElementById('browseBtn');\n btn.textContent = '…';\n btn.disabled = true;\n try {\n const res = await fetch('/api/pick-folder');\n const data = await res.json();\n if (!data.cancelled && data.path) {\n document.getElementById('localPath').value = data.path;\n }\n } catch (e) {\n // ignore — user can type path manually\n } finally {\n btn.textContent = 'Browse';\n btn.disabled = false;\n }\n }\n\n function updateSummary() {\n const config = buildConfig();\n document.getElementById('summary').textContent = JSON.stringify(config, null, 2);\n }\n\n function buildConfig() {\n const integrations = Array.from(document.querySelectorAll('#integrationsGroup input:checked')).map(c => ({\n type: c.value, enabled: true, credentials: {}, cursor: null, lastSyncAt: null\n }));\n\n return {\n user: {\n name: document.getElementById('userName').value,\n assistantName: document.getElementById('assistantName').value,\n profileType: document.getElementById('profileType').value,\n responsibilities: state.responsibilities\n },\n storage: state.storageMode === 'local'\n ? { mode: 'local', workspacePath: document.getElementById('localPath').value || '.personal-assistant' }\n : { mode: 'gdrive', folderId: '', folderName: 'Personal Assistant', cachePath: '.personal-assistant/cache' },\n integrations,\n sync: {\n dailySyncTime: document.getElementById('syncTime').value,\n timezone: document.getElementById('timezone').value,\n manualSyncEnabled: document.getElementById('manualSync').checked,\n asyncUpdateEnabled: document.getElementById('asyncUpdate').checked\n }\n };\n }\n\n async function saveConfig() {\n const config = buildConfig();\n const res = await fetch('/api/save', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(config)\n });\n const data = await res.json();\n if (data.success) showStep(7);\n else alert('Error: ' + data.error);\n }\n\n updateProgress();\n </script>\n</body>\n</html>`;\n}\n","// src/index.ts\nvar PROFILE_TEMPLATES = {\n \"software-engineer\": {\n profileType: \"software-engineer\",\n name: \"Software Engineer\",\n description: \"Context template for software engineers\",\n responsibilities: [\n \"Code review and PR management\",\n \"Feature development\",\n \"Bug fixing and debugging\",\n \"Architecture decisions\",\n \"Technical documentation\",\n \"On-call and incident response\",\n \"Mentoring junior engineers\",\n \"Sprint planning and estimation\",\n \"CI/CD pipeline maintenance\",\n \"API design and development\"\n ],\n sections: [\n {\n name: \"Overview\",\n fileName: \"overview.md\",\n required: true,\n defaultContent: `# Overview\n\n## Role\nSoftware Engineer\n\n## Team\n<!-- Your team name -->\n\n## Primary Focus\n<!-- Main area of work -->\n\n## Key Repositories\n<!-- List your main repos -->\n\n## Tech Stack\n<!-- Languages, frameworks, tools -->\n`\n },\n {\n name: \"Responsibilities\",\n fileName: \"responsibilities.md\",\n required: true,\n defaultContent: `# Responsibilities\n\n## Core Duties\n<!-- Your primary responsibilities -->\n\n## On-Call\n<!-- On-call schedule and escalation paths -->\n\n## Code Review\n<!-- Review expectations and areas -->\n`\n },\n {\n name: \"Stakeholders\",\n fileName: \"stakeholders.md\",\n required: false,\n defaultContent: `# Stakeholders\n\n## Direct Manager\n<!-- Name, role -->\n\n## Team Members\n<!-- Key teammates -->\n\n## Cross-Team Contacts\n<!-- People you work with in other teams -->\n\n## Escalation Path\n<!-- Who to escalate to and when -->\n`\n },\n {\n name: \"Documentation\",\n fileName: \"docs.md\",\n required: false,\n defaultContent: `# Documentation References\n\n## Internal Docs\n<!-- Links to internal documentation -->\n\n## Runbooks\n<!-- Links to runbooks -->\n\n## Architecture Docs\n<!-- Links to architecture documents -->\n`\n }\n ]\n },\n \"product-manager\": {\n profileType: \"product-manager\",\n name: \"Product Manager\",\n description: \"Context template for product managers\",\n responsibilities: [\n \"Product roadmap management\",\n \"Feature prioritization\",\n \"Stakeholder communication\",\n \"User research and interviews\",\n \"Metrics and KPI tracking\",\n \"Sprint planning and grooming\",\n \"Go-to-market strategy\",\n \"Competitive analysis\",\n \"Cross-team coordination\",\n \"Product requirements documentation\"\n ],\n sections: [\n {\n name: \"Overview\",\n fileName: \"overview.md\",\n required: true,\n defaultContent: `# Overview\n\n## Role\nProduct Manager\n\n## Product Area\n<!-- Your product area -->\n\n## Key Metrics\n<!-- North star and supporting metrics -->\n\n## Current Quarter Goals\n<!-- OKRs or key goals -->\n`\n },\n {\n name: \"Responsibilities\",\n fileName: \"responsibilities.md\",\n required: true,\n defaultContent: `# Responsibilities\n\n## Product Areas\n<!-- Products/features you own -->\n\n## Decision Authority\n<!-- What you can decide vs. escalate -->\n\n## Regular Meetings\n<!-- Recurring meetings and cadences -->\n`\n },\n {\n name: \"Stakeholders\",\n fileName: \"stakeholders.md\",\n required: false,\n defaultContent: `# Stakeholders\n\n## Engineering Leads\n<!-- Engineering partners -->\n\n## Design Partners\n<!-- Design team contacts -->\n\n## Business Stakeholders\n<!-- Sales, marketing, exec sponsors -->\n\n## Customers\n<!-- Key customer contacts or segments -->\n`\n },\n {\n name: \"Documentation\",\n fileName: \"docs.md\",\n required: false,\n defaultContent: `# Documentation References\n\n## PRDs\n<!-- Product requirement documents -->\n\n## Roadmap\n<!-- Roadmap links -->\n\n## Analytics Dashboards\n<!-- Links to dashboards -->\n`\n }\n ]\n },\n \"engineering-manager\": {\n profileType: \"engineering-manager\",\n name: \"Engineering Manager\",\n description: \"Context template for engineering managers\",\n responsibilities: [\n \"Team management and 1:1s\",\n \"Hiring and interviewing\",\n \"Performance reviews\",\n \"Technical strategy\",\n \"Cross-team coordination\",\n \"Sprint planning and velocity\",\n \"Incident management\",\n \"Budget and resource planning\",\n \"Career development coaching\",\n \"Process improvement\"\n ],\n sections: [\n {\n name: \"Overview\",\n fileName: \"overview.md\",\n required: true,\n defaultContent: `# Overview\n\n## Role\nEngineering Manager\n\n## Team\n<!-- Team name and size -->\n\n## Charter\n<!-- Team charter / mission -->\n\n## Key Systems\n<!-- Systems your team owns -->\n`\n },\n {\n name: \"Responsibilities\",\n fileName: \"responsibilities.md\",\n required: true,\n defaultContent: `# Responsibilities\n\n## People Management\n<!-- Direct reports, 1:1 cadence -->\n\n## Technical Oversight\n<!-- Architecture, code quality, tech debt -->\n\n## Process\n<!-- Agile ceremonies, team rituals -->\n\n## Hiring\n<!-- Open roles, pipeline -->\n`\n },\n {\n name: \"Stakeholders\",\n fileName: \"stakeholders.md\",\n required: false,\n defaultContent: `# Stakeholders\n\n## Direct Reports\n<!-- Team members -->\n\n## Skip Level\n<!-- Your manager -->\n\n## Product Partners\n<!-- PMs you work with -->\n\n## Peer Managers\n<!-- Other EMs -->\n`\n },\n {\n name: \"Documentation\",\n fileName: \"docs.md\",\n required: false,\n defaultContent: `# Documentation References\n\n## Team Docs\n<!-- Team wiki, confluence pages -->\n\n## Process Docs\n<!-- Runbooks, playbooks -->\n\n## HR Resources\n<!-- Performance review templates, etc. -->\n`\n }\n ]\n },\n devops: {\n profileType: \"devops\",\n name: \"DevOps Engineer\",\n description: \"Context template for DevOps engineers\",\n responsibilities: [\n \"CI/CD pipeline management\",\n \"Infrastructure as code\",\n \"Monitoring and alerting\",\n \"Incident response\",\n \"Security compliance\",\n \"Cost optimization\",\n \"Deployment automation\",\n \"Container orchestration\",\n \"Database management\",\n \"Disaster recovery planning\"\n ],\n sections: [\n {\n name: \"Overview\",\n fileName: \"overview.md\",\n required: true,\n defaultContent: `# Overview\n\n## Role\nDevOps Engineer\n\n## Infrastructure\n<!-- Cloud provider, key services -->\n\n## Key Environments\n<!-- Production, staging, dev -->\n\n## Monitoring Stack\n<!-- Tools and dashboards -->\n`\n },\n {\n name: \"Responsibilities\",\n fileName: \"responsibilities.md\",\n required: true,\n defaultContent: `# Responsibilities\n\n## Infrastructure\n<!-- IaC, cloud resources -->\n\n## CI/CD\n<!-- Pipelines, deployment processes -->\n\n## On-Call\n<!-- PagerDuty, escalation paths -->\n\n## Security\n<!-- Compliance, access management -->\n`\n },\n {\n name: \"Stakeholders\",\n fileName: \"stakeholders.md\",\n required: false,\n defaultContent: `# Stakeholders\n\n## Platform Team\n<!-- Team members -->\n\n## Engineering Teams\n<!-- Teams you support -->\n\n## Security Team\n<!-- Security contacts -->\n\n## Vendor Contacts\n<!-- Cloud, tooling vendors -->\n`\n },\n {\n name: \"Documentation\",\n fileName: \"docs.md\",\n required: false,\n defaultContent: `# Documentation References\n\n## Runbooks\n<!-- Incident response runbooks -->\n\n## Architecture Diagrams\n<!-- Infrastructure diagrams -->\n\n## Compliance Docs\n<!-- SOC2, security policies -->\n`\n }\n ]\n }\n};\nfunction getTemplate(profileType) {\n const template = PROFILE_TEMPLATES[profileType];\n if (!template) {\n throw new Error(`Unknown profile type: ${profileType}`);\n }\n return { ...template };\n}\nfunction listProfiles() {\n return Object.keys(PROFILE_TEMPLATES);\n}\nfunction getResponsibilities(profileType) {\n const template = PROFILE_TEMPLATES[profileType];\n if (!template) {\n throw new Error(`Unknown profile type: ${profileType}`);\n }\n return [...template.responsibilities];\n}\nfunction renderTemplate(template, user) {\n const files = {};\n for (const section of template.sections) {\n let content = section.defaultContent;\n content = content.replace(\"<!-- Your team name -->\", `${user.name}'s team`);\n if (section.fileName === \"responsibilities.md\" && user.responsibilities.length > 0) {\n content += \"\\n## Selected Responsibilities\\n\";\n for (const r of user.responsibilities) {\n content += `- ${r}\n`;\n }\n }\n files[section.fileName] = content;\n }\n return files;\n}\nfunction getTemplateSections(profileType) {\n const template = PROFILE_TEMPLATES[profileType];\n if (!template) {\n throw new Error(`Unknown profile type: ${profileType}`);\n }\n return template.sections.map((s) => ({ ...s }));\n}\nexport {\n getResponsibilities,\n getTemplate,\n getTemplateSections,\n listProfiles,\n renderTemplate\n};\n"],"mappings":"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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmVT;","names":[]}
@@ -0,0 +1,75 @@
1
+ (function(){const _=document.createElement("link").relList;if(_&&_.supports&&_.supports("modulepreload"))return;for(const N of document.querySelectorAll('link[rel="modulepreload"]'))h(N);new MutationObserver(N=>{for(const G of N)if(G.type==="childList")for(const L of G.addedNodes)L.tagName==="LINK"&&L.rel==="modulepreload"&&h(L)}).observe(document,{childList:!0,subtree:!0});function H(N){const G={};return N.integrity&&(G.integrity=N.integrity),N.referrerPolicy&&(G.referrerPolicy=N.referrerPolicy),N.crossOrigin==="use-credentials"?G.credentials="include":N.crossOrigin==="anonymous"?G.credentials="omit":G.credentials="same-origin",G}function h(N){if(N.ep)return;N.ep=!0;const G=H(N);fetch(N.href,G)}})();function Bd(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}var df={exports:{}},jn={};/**
2
+ * @license React
3
+ * react-jsx-runtime.production.js
4
+ *
5
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */var jd;function iv(){if(jd)return jn;jd=1;var o=Symbol.for("react.transitional.element"),_=Symbol.for("react.fragment");function H(h,N,G){var L=null;if(G!==void 0&&(L=""+G),N.key!==void 0&&(L=""+N.key),"key"in N){G={};for(var B in N)B!=="key"&&(G[B]=N[B])}else G=N;return N=G.ref,{$$typeof:o,type:h,key:L,ref:N!==void 0?N:null,props:G}}return jn.Fragment=_,jn.jsx=H,jn.jsxs=H,jn}var zd;function cv(){return zd||(zd=1,df.exports=iv()),df.exports}var c=cv(),mf={exports:{}},F={};/**
10
+ * @license React
11
+ * react.production.js
12
+ *
13
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
14
+ *
15
+ * This source code is licensed under the MIT license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ */var Ed;function fv(){if(Ed)return F;Ed=1;var o=Symbol.for("react.transitional.element"),_=Symbol.for("react.portal"),H=Symbol.for("react.fragment"),h=Symbol.for("react.strict_mode"),N=Symbol.for("react.profiler"),G=Symbol.for("react.consumer"),L=Symbol.for("react.context"),B=Symbol.for("react.forward_ref"),D=Symbol.for("react.suspense"),S=Symbol.for("react.memo"),k=Symbol.for("react.lazy"),q=Symbol.for("react.activity"),Z=Symbol.iterator;function Tl(s){return s===null||typeof s!="object"?null:(s=Z&&s[Z]||s["@@iterator"],typeof s=="function"?s:null)}var pl={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},il=Object.assign,Il={};function Cl(s,b,M){this.props=s,this.context=b,this.refs=Il,this.updater=M||pl}Cl.prototype.isReactComponent={},Cl.prototype.setState=function(s,b){if(typeof s!="object"&&typeof s!="function"&&s!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,s,b,"setState")},Cl.prototype.forceUpdate=function(s){this.updater.enqueueForceUpdate(this,s,"forceUpdate")};function ee(){}ee.prototype=Cl.prototype;function Sl(s,b,M){this.props=s,this.context=b,this.refs=Il,this.updater=M||pl}var Bl=Sl.prototype=new ee;Bl.constructor=Sl,il(Bl,Cl.prototype),Bl.isPureReactComponent=!0;var cl=Array.isArray;function z(){}var O={H:null,A:null,T:null,S:null},V=Object.prototype.hasOwnProperty;function nl(s,b,M){var U=M.ref;return{$$typeof:o,type:s,key:b,ref:U!==void 0?U:null,props:M}}function Vl(s,b){return nl(s.type,b,s.props)}function xl(s){return typeof s=="object"&&s!==null&&s.$$typeof===o}function El(s){var b={"=":"=0",":":"=2"};return"$"+s.replace(/[=:]/g,function(M){return b[M]})}var ul=/\/+/g;function Wl(s,b){return typeof s=="object"&&s!==null&&s.key!=null?El(""+s.key):b.toString(36)}function se(s){switch(s.status){case"fulfilled":return s.value;case"rejected":throw s.reason;default:switch(typeof s.status=="string"?s.then(z,z):(s.status="pending",s.then(function(b){s.status==="pending"&&(s.status="fulfilled",s.value=b)},function(b){s.status==="pending"&&(s.status="rejected",s.reason=b)})),s.status){case"fulfilled":return s.value;case"rejected":throw s.reason}}throw s}function T(s,b,M,U,w){var I=typeof s;(I==="undefined"||I==="boolean")&&(s=null);var rl=!1;if(s===null)rl=!0;else switch(I){case"bigint":case"string":case"number":rl=!0;break;case"object":switch(s.$$typeof){case o:case _:rl=!0;break;case k:return rl=s._init,T(rl(s._payload),b,M,U,w)}}if(rl)return w=w(s),rl=U===""?"."+Wl(s,0):U,cl(w)?(M="",rl!=null&&(M=rl.replace(ul,"$&/")+"/"),T(w,b,M,"",function(_a){return _a})):w!=null&&(xl(w)&&(w=Vl(w,M+(w.key==null||s&&s.key===w.key?"":(""+w.key).replace(ul,"$&/")+"/")+rl)),b.push(w)),1;rl=0;var Pl=U===""?".":U+":";if(cl(s))for(var Dl=0;Dl<s.length;Dl++)U=s[Dl],I=Pl+Wl(U,Dl),rl+=T(U,b,M,I,w);else if(Dl=Tl(s),typeof Dl=="function")for(s=Dl.call(s),Dl=0;!(U=s.next()).done;)U=U.value,I=Pl+Wl(U,Dl++),rl+=T(U,b,M,I,w);else if(I==="object"){if(typeof s.then=="function")return T(se(s),b,M,U,w);throw b=String(s),Error("Objects are not valid as a React child (found: "+(b==="[object Object]"?"object with keys {"+Object.keys(s).join(", ")+"}":b)+"). If you meant to render a collection of children, use an array instead.")}return rl}function C(s,b,M){if(s==null)return s;var U=[],w=0;return T(s,U,"","",function(I){return b.call(M,I,w++)}),U}function J(s){if(s._status===-1){var b=s._result;b=b(),b.then(function(M){(s._status===0||s._status===-1)&&(s._status=1,s._result=M)},function(M){(s._status===0||s._status===-1)&&(s._status=2,s._result=M)}),s._status===-1&&(s._status=0,s._result=b)}if(s._status===1)return s._result.default;throw s._result}var E=typeof reportError=="function"?reportError:function(s){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var b=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof s=="object"&&s!==null&&typeof s.message=="string"?String(s.message):String(s),error:s});if(!window.dispatchEvent(b))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",s);return}console.error(s)},Y={map:C,forEach:function(s,b,M){C(s,function(){b.apply(this,arguments)},M)},count:function(s){var b=0;return C(s,function(){b++}),b},toArray:function(s){return C(s,function(b){return b})||[]},only:function(s){if(!xl(s))throw Error("React.Children.only expected to receive a single React element child.");return s}};return F.Activity=q,F.Children=Y,F.Component=Cl,F.Fragment=H,F.Profiler=N,F.PureComponent=Sl,F.StrictMode=h,F.Suspense=D,F.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=O,F.__COMPILER_RUNTIME={__proto__:null,c:function(s){return O.H.useMemoCache(s)}},F.cache=function(s){return function(){return s.apply(null,arguments)}},F.cacheSignal=function(){return null},F.cloneElement=function(s,b,M){if(s==null)throw Error("The argument must be a React element, but you passed "+s+".");var U=il({},s.props),w=s.key;if(b!=null)for(I in b.key!==void 0&&(w=""+b.key),b)!V.call(b,I)||I==="key"||I==="__self"||I==="__source"||I==="ref"&&b.ref===void 0||(U[I]=b[I]);var I=arguments.length-2;if(I===1)U.children=M;else if(1<I){for(var rl=Array(I),Pl=0;Pl<I;Pl++)rl[Pl]=arguments[Pl+2];U.children=rl}return nl(s.type,w,U)},F.createContext=function(s){return s={$$typeof:L,_currentValue:s,_currentValue2:s,_threadCount:0,Provider:null,Consumer:null},s.Provider=s,s.Consumer={$$typeof:G,_context:s},s},F.createElement=function(s,b,M){var U,w={},I=null;if(b!=null)for(U in b.key!==void 0&&(I=""+b.key),b)V.call(b,U)&&U!=="key"&&U!=="__self"&&U!=="__source"&&(w[U]=b[U]);var rl=arguments.length-2;if(rl===1)w.children=M;else if(1<rl){for(var Pl=Array(rl),Dl=0;Dl<rl;Dl++)Pl[Dl]=arguments[Dl+2];w.children=Pl}if(s&&s.defaultProps)for(U in rl=s.defaultProps,rl)w[U]===void 0&&(w[U]=rl[U]);return nl(s,I,w)},F.createRef=function(){return{current:null}},F.forwardRef=function(s){return{$$typeof:B,render:s}},F.isValidElement=xl,F.lazy=function(s){return{$$typeof:k,_payload:{_status:-1,_result:s},_init:J}},F.memo=function(s,b){return{$$typeof:S,type:s,compare:b===void 0?null:b}},F.startTransition=function(s){var b=O.T,M={};O.T=M;try{var U=s(),w=O.S;w!==null&&w(M,U),typeof U=="object"&&U!==null&&typeof U.then=="function"&&U.then(z,E)}catch(I){E(I)}finally{b!==null&&M.types!==null&&(b.types=M.types),O.T=b}},F.unstable_useCacheRefresh=function(){return O.H.useCacheRefresh()},F.use=function(s){return O.H.use(s)},F.useActionState=function(s,b,M){return O.H.useActionState(s,b,M)},F.useCallback=function(s,b){return O.H.useCallback(s,b)},F.useContext=function(s){return O.H.useContext(s)},F.useDebugValue=function(){},F.useDeferredValue=function(s,b){return O.H.useDeferredValue(s,b)},F.useEffect=function(s,b){return O.H.useEffect(s,b)},F.useEffectEvent=function(s){return O.H.useEffectEvent(s)},F.useId=function(){return O.H.useId()},F.useImperativeHandle=function(s,b,M){return O.H.useImperativeHandle(s,b,M)},F.useInsertionEffect=function(s,b){return O.H.useInsertionEffect(s,b)},F.useLayoutEffect=function(s,b){return O.H.useLayoutEffect(s,b)},F.useMemo=function(s,b){return O.H.useMemo(s,b)},F.useOptimistic=function(s,b){return O.H.useOptimistic(s,b)},F.useReducer=function(s,b,M){return O.H.useReducer(s,b,M)},F.useRef=function(s){return O.H.useRef(s)},F.useState=function(s){return O.H.useState(s)},F.useSyncExternalStore=function(s,b,M){return O.H.useSyncExternalStore(s,b,M)},F.useTransition=function(){return O.H.useTransition()},F.version="19.2.4",F}var Nd;function xf(){return Nd||(Nd=1,mf.exports=fv()),mf.exports}var gl=xf();const sv=Bd(gl);var hf={exports:{}},zn={},vf={exports:{}},yf={};/**
18
+ * @license React
19
+ * scheduler.production.js
20
+ *
21
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
22
+ *
23
+ * This source code is licensed under the MIT license found in the
24
+ * LICENSE file in the root directory of this source tree.
25
+ */var Md;function ov(){return Md||(Md=1,(function(o){function _(T,C){var J=T.length;T.push(C);l:for(;0<J;){var E=J-1>>>1,Y=T[E];if(0<N(Y,C))T[E]=C,T[J]=Y,J=E;else break l}}function H(T){return T.length===0?null:T[0]}function h(T){if(T.length===0)return null;var C=T[0],J=T.pop();if(J!==C){T[0]=J;l:for(var E=0,Y=T.length,s=Y>>>1;E<s;){var b=2*(E+1)-1,M=T[b],U=b+1,w=T[U];if(0>N(M,J))U<Y&&0>N(w,M)?(T[E]=w,T[U]=J,E=U):(T[E]=M,T[b]=J,E=b);else if(U<Y&&0>N(w,J))T[E]=w,T[U]=J,E=U;else break l}}return C}function N(T,C){var J=T.sortIndex-C.sortIndex;return J!==0?J:T.id-C.id}if(o.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var G=performance;o.unstable_now=function(){return G.now()}}else{var L=Date,B=L.now();o.unstable_now=function(){return L.now()-B}}var D=[],S=[],k=1,q=null,Z=3,Tl=!1,pl=!1,il=!1,Il=!1,Cl=typeof setTimeout=="function"?setTimeout:null,ee=typeof clearTimeout=="function"?clearTimeout:null,Sl=typeof setImmediate<"u"?setImmediate:null;function Bl(T){for(var C=H(S);C!==null;){if(C.callback===null)h(S);else if(C.startTime<=T)h(S),C.sortIndex=C.expirationTime,_(D,C);else break;C=H(S)}}function cl(T){if(il=!1,Bl(T),!pl)if(H(D)!==null)pl=!0,z||(z=!0,El());else{var C=H(S);C!==null&&se(cl,C.startTime-T)}}var z=!1,O=-1,V=5,nl=-1;function Vl(){return Il?!0:!(o.unstable_now()-nl<V)}function xl(){if(Il=!1,z){var T=o.unstable_now();nl=T;var C=!0;try{l:{pl=!1,il&&(il=!1,ee(O),O=-1),Tl=!0;var J=Z;try{e:{for(Bl(T),q=H(D);q!==null&&!(q.expirationTime>T&&Vl());){var E=q.callback;if(typeof E=="function"){q.callback=null,Z=q.priorityLevel;var Y=E(q.expirationTime<=T);if(T=o.unstable_now(),typeof Y=="function"){q.callback=Y,Bl(T),C=!0;break e}q===H(D)&&h(D),Bl(T)}else h(D);q=H(D)}if(q!==null)C=!0;else{var s=H(S);s!==null&&se(cl,s.startTime-T),C=!1}}break l}finally{q=null,Z=J,Tl=!1}C=void 0}}finally{C?El():z=!1}}}var El;if(typeof Sl=="function")El=function(){Sl(xl)};else if(typeof MessageChannel<"u"){var ul=new MessageChannel,Wl=ul.port2;ul.port1.onmessage=xl,El=function(){Wl.postMessage(null)}}else El=function(){Cl(xl,0)};function se(T,C){O=Cl(function(){T(o.unstable_now())},C)}o.unstable_IdlePriority=5,o.unstable_ImmediatePriority=1,o.unstable_LowPriority=4,o.unstable_NormalPriority=3,o.unstable_Profiling=null,o.unstable_UserBlockingPriority=2,o.unstable_cancelCallback=function(T){T.callback=null},o.unstable_forceFrameRate=function(T){0>T||125<T?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):V=0<T?Math.floor(1e3/T):5},o.unstable_getCurrentPriorityLevel=function(){return Z},o.unstable_next=function(T){switch(Z){case 1:case 2:case 3:var C=3;break;default:C=Z}var J=Z;Z=C;try{return T()}finally{Z=J}},o.unstable_requestPaint=function(){Il=!0},o.unstable_runWithPriority=function(T,C){switch(T){case 1:case 2:case 3:case 4:case 5:break;default:T=3}var J=Z;Z=T;try{return C()}finally{Z=J}},o.unstable_scheduleCallback=function(T,C,J){var E=o.unstable_now();switch(typeof J=="object"&&J!==null?(J=J.delay,J=typeof J=="number"&&0<J?E+J:E):J=E,T){case 1:var Y=-1;break;case 2:Y=250;break;case 5:Y=1073741823;break;case 4:Y=1e4;break;default:Y=5e3}return Y=J+Y,T={id:k++,callback:C,priorityLevel:T,startTime:J,expirationTime:Y,sortIndex:-1},J>E?(T.sortIndex=J,_(S,T),H(D)===null&&T===H(S)&&(il?(ee(O),O=-1):il=!0,se(cl,J-E))):(T.sortIndex=Y,_(D,T),pl||Tl||(pl=!0,z||(z=!0,El()))),T},o.unstable_shouldYield=Vl,o.unstable_wrapCallback=function(T){var C=Z;return function(){var J=Z;Z=C;try{return T.apply(this,arguments)}finally{Z=J}}}})(yf)),yf}var Cd;function rv(){return Cd||(Cd=1,vf.exports=ov()),vf.exports}var gf={exports:{}},$l={};/**
26
+ * @license React
27
+ * react-dom.production.js
28
+ *
29
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
30
+ *
31
+ * This source code is licensed under the MIT license found in the
32
+ * LICENSE file in the root directory of this source tree.
33
+ */var _d;function dv(){if(_d)return $l;_d=1;var o=xf();function _(D){var S="https://react.dev/errors/"+D;if(1<arguments.length){S+="?args[]="+encodeURIComponent(arguments[1]);for(var k=2;k<arguments.length;k++)S+="&args[]="+encodeURIComponent(arguments[k])}return"Minified React error #"+D+"; visit "+S+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function H(){}var h={d:{f:H,r:function(){throw Error(_(522))},D:H,C:H,L:H,m:H,X:H,S:H,M:H},p:0,findDOMNode:null},N=Symbol.for("react.portal");function G(D,S,k){var q=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:N,key:q==null?null:""+q,children:D,containerInfo:S,implementation:k}}var L=o.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function B(D,S){if(D==="font")return"";if(typeof S=="string")return S==="use-credentials"?S:""}return $l.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=h,$l.createPortal=function(D,S){var k=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!S||S.nodeType!==1&&S.nodeType!==9&&S.nodeType!==11)throw Error(_(299));return G(D,S,null,k)},$l.flushSync=function(D){var S=L.T,k=h.p;try{if(L.T=null,h.p=2,D)return D()}finally{L.T=S,h.p=k,h.d.f()}},$l.preconnect=function(D,S){typeof D=="string"&&(S?(S=S.crossOrigin,S=typeof S=="string"?S==="use-credentials"?S:"":void 0):S=null,h.d.C(D,S))},$l.prefetchDNS=function(D){typeof D=="string"&&h.d.D(D)},$l.preinit=function(D,S){if(typeof D=="string"&&S&&typeof S.as=="string"){var k=S.as,q=B(k,S.crossOrigin),Z=typeof S.integrity=="string"?S.integrity:void 0,Tl=typeof S.fetchPriority=="string"?S.fetchPriority:void 0;k==="style"?h.d.S(D,typeof S.precedence=="string"?S.precedence:void 0,{crossOrigin:q,integrity:Z,fetchPriority:Tl}):k==="script"&&h.d.X(D,{crossOrigin:q,integrity:Z,fetchPriority:Tl,nonce:typeof S.nonce=="string"?S.nonce:void 0})}},$l.preinitModule=function(D,S){if(typeof D=="string")if(typeof S=="object"&&S!==null){if(S.as==null||S.as==="script"){var k=B(S.as,S.crossOrigin);h.d.M(D,{crossOrigin:k,integrity:typeof S.integrity=="string"?S.integrity:void 0,nonce:typeof S.nonce=="string"?S.nonce:void 0})}}else S==null&&h.d.M(D)},$l.preload=function(D,S){if(typeof D=="string"&&typeof S=="object"&&S!==null&&typeof S.as=="string"){var k=S.as,q=B(k,S.crossOrigin);h.d.L(D,k,{crossOrigin:q,integrity:typeof S.integrity=="string"?S.integrity:void 0,nonce:typeof S.nonce=="string"?S.nonce:void 0,type:typeof S.type=="string"?S.type:void 0,fetchPriority:typeof S.fetchPriority=="string"?S.fetchPriority:void 0,referrerPolicy:typeof S.referrerPolicy=="string"?S.referrerPolicy:void 0,imageSrcSet:typeof S.imageSrcSet=="string"?S.imageSrcSet:void 0,imageSizes:typeof S.imageSizes=="string"?S.imageSizes:void 0,media:typeof S.media=="string"?S.media:void 0})}},$l.preloadModule=function(D,S){if(typeof D=="string")if(S){var k=B(S.as,S.crossOrigin);h.d.m(D,{as:typeof S.as=="string"&&S.as!=="script"?S.as:void 0,crossOrigin:k,integrity:typeof S.integrity=="string"?S.integrity:void 0})}else h.d.m(D)},$l.requestFormReset=function(D){h.d.r(D)},$l.unstable_batchedUpdates=function(D,S){return D(S)},$l.useFormState=function(D,S,k){return L.H.useFormState(D,S,k)},$l.useFormStatus=function(){return L.H.useHostTransitionStatus()},$l.version="19.2.4",$l}var Od;function mv(){if(Od)return gf.exports;Od=1;function o(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(o)}catch(_){console.error(_)}}return o(),gf.exports=dv(),gf.exports}/**
34
+ * @license React
35
+ * react-dom-client.production.js
36
+ *
37
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
38
+ *
39
+ * This source code is licensed under the MIT license found in the
40
+ * LICENSE file in the root directory of this source tree.
41
+ */var Dd;function hv(){if(Dd)return zn;Dd=1;var o=rv(),_=xf(),H=mv();function h(l){var e="https://react.dev/errors/"+l;if(1<arguments.length){e+="?args[]="+encodeURIComponent(arguments[1]);for(var t=2;t<arguments.length;t++)e+="&args[]="+encodeURIComponent(arguments[t])}return"Minified React error #"+l+"; visit "+e+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function N(l){return!(!l||l.nodeType!==1&&l.nodeType!==9&&l.nodeType!==11)}function G(l){var e=l,t=l;if(l.alternate)for(;e.return;)e=e.return;else{l=e;do e=l,(e.flags&4098)!==0&&(t=e.return),l=e.return;while(l)}return e.tag===3?t:null}function L(l){if(l.tag===13){var e=l.memoizedState;if(e===null&&(l=l.alternate,l!==null&&(e=l.memoizedState)),e!==null)return e.dehydrated}return null}function B(l){if(l.tag===31){var e=l.memoizedState;if(e===null&&(l=l.alternate,l!==null&&(e=l.memoizedState)),e!==null)return e.dehydrated}return null}function D(l){if(G(l)!==l)throw Error(h(188))}function S(l){var e=l.alternate;if(!e){if(e=G(l),e===null)throw Error(h(188));return e!==l?null:l}for(var t=l,a=e;;){var n=t.return;if(n===null)break;var u=n.alternate;if(u===null){if(a=n.return,a!==null){t=a;continue}break}if(n.child===u.child){for(u=n.child;u;){if(u===t)return D(n),l;if(u===a)return D(n),e;u=u.sibling}throw Error(h(188))}if(t.return!==a.return)t=n,a=u;else{for(var i=!1,f=n.child;f;){if(f===t){i=!0,t=n,a=u;break}if(f===a){i=!0,a=n,t=u;break}f=f.sibling}if(!i){for(f=u.child;f;){if(f===t){i=!0,t=u,a=n;break}if(f===a){i=!0,a=u,t=n;break}f=f.sibling}if(!i)throw Error(h(189))}}if(t.alternate!==a)throw Error(h(190))}if(t.tag!==3)throw Error(h(188));return t.stateNode.current===t?l:e}function k(l){var e=l.tag;if(e===5||e===26||e===27||e===6)return l;for(l=l.child;l!==null;){if(e=k(l),e!==null)return e;l=l.sibling}return null}var q=Object.assign,Z=Symbol.for("react.element"),Tl=Symbol.for("react.transitional.element"),pl=Symbol.for("react.portal"),il=Symbol.for("react.fragment"),Il=Symbol.for("react.strict_mode"),Cl=Symbol.for("react.profiler"),ee=Symbol.for("react.consumer"),Sl=Symbol.for("react.context"),Bl=Symbol.for("react.forward_ref"),cl=Symbol.for("react.suspense"),z=Symbol.for("react.suspense_list"),O=Symbol.for("react.memo"),V=Symbol.for("react.lazy"),nl=Symbol.for("react.activity"),Vl=Symbol.for("react.memo_cache_sentinel"),xl=Symbol.iterator;function El(l){return l===null||typeof l!="object"?null:(l=xl&&l[xl]||l["@@iterator"],typeof l=="function"?l:null)}var ul=Symbol.for("react.client.reference");function Wl(l){if(l==null)return null;if(typeof l=="function")return l.$$typeof===ul?null:l.displayName||l.name||null;if(typeof l=="string")return l;switch(l){case il:return"Fragment";case Cl:return"Profiler";case Il:return"StrictMode";case cl:return"Suspense";case z:return"SuspenseList";case nl:return"Activity"}if(typeof l=="object")switch(l.$$typeof){case pl:return"Portal";case Sl:return l.displayName||"Context";case ee:return(l._context.displayName||"Context")+".Consumer";case Bl:var e=l.render;return l=l.displayName,l||(l=e.displayName||e.name||"",l=l!==""?"ForwardRef("+l+")":"ForwardRef"),l;case O:return e=l.displayName||null,e!==null?e:Wl(l.type)||"Memo";case V:e=l._payload,l=l._init;try{return Wl(l(e))}catch{}}return null}var se=Array.isArray,T=_.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,C=H.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,J={pending:!1,data:null,method:null,action:null},E=[],Y=-1;function s(l){return{current:l}}function b(l){0>Y||(l.current=E[Y],E[Y]=null,Y--)}function M(l,e){Y++,E[Y]=l.current,l.current=e}var U=s(null),w=s(null),I=s(null),rl=s(null);function Pl(l,e){switch(M(I,e),M(w,l),M(U,null),e.nodeType){case 9:case 11:l=(l=e.documentElement)&&(l=l.namespaceURI)?kr(l):0;break;default:if(l=e.tagName,e=e.namespaceURI)e=kr(e),l=wr(e,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}b(U),M(U,l)}function Dl(){b(U),b(w),b(I)}function _a(l){l.memoizedState!==null&&M(rl,l);var e=U.current,t=wr(e,l.type);e!==t&&(M(w,l),M(U,t))}function Mn(l){w.current===l&&(b(U),b(w)),rl.current===l&&(b(rl),Sn._currentValue=J)}var ku,Tf;function Nt(l){if(ku===void 0)try{throw Error()}catch(t){var e=t.stack.trim().match(/\n( *(at )?)/);ku=e&&e[1]||"",Tf=-1<t.stack.indexOf(`
42
+ at`)?" (<anonymous>)":-1<t.stack.indexOf("@")?"@unknown:0:0":""}return`
43
+ `+ku+l+Tf}var wu=!1;function Fu(l,e){if(!l||wu)return"";wu=!0;var t=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var a={DetermineComponentFrameRoot:function(){try{if(e){var j=function(){throw Error()};if(Object.defineProperty(j.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(j,[])}catch(p){var g=p}Reflect.construct(l,[],j)}else{try{j.call()}catch(p){g=p}l.call(j.prototype)}}else{try{throw Error()}catch(p){g=p}(j=l())&&typeof j.catch=="function"&&j.catch(function(){})}}catch(p){if(p&&g&&typeof p.stack=="string")return[p.stack,g.stack]}return[null,null]}};a.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var n=Object.getOwnPropertyDescriptor(a.DetermineComponentFrameRoot,"name");n&&n.configurable&&Object.defineProperty(a.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var u=a.DetermineComponentFrameRoot(),i=u[0],f=u[1];if(i&&f){var r=i.split(`
44
+ `),y=f.split(`
45
+ `);for(n=a=0;a<r.length&&!r[a].includes("DetermineComponentFrameRoot");)a++;for(;n<y.length&&!y[n].includes("DetermineComponentFrameRoot");)n++;if(a===r.length||n===y.length)for(a=r.length-1,n=y.length-1;1<=a&&0<=n&&r[a]!==y[n];)n--;for(;1<=a&&0<=n;a--,n--)if(r[a]!==y[n]){if(a!==1||n!==1)do if(a--,n--,0>n||r[a]!==y[n]){var x=`
46
+ `+r[a].replace(" at new "," at ");return l.displayName&&x.includes("<anonymous>")&&(x=x.replace("<anonymous>",l.displayName)),x}while(1<=a&&0<=n);break}}}finally{wu=!1,Error.prepareStackTrace=t}return(t=l?l.displayName||l.name:"")?Nt(t):""}function qd(l,e){switch(l.tag){case 26:case 27:case 5:return Nt(l.type);case 16:return Nt("Lazy");case 13:return l.child!==e&&e!==null?Nt("Suspense Fallback"):Nt("Suspense");case 19:return Nt("SuspenseList");case 0:case 15:return Fu(l.type,!1);case 11:return Fu(l.type.render,!1);case 1:return Fu(l.type,!0);case 31:return Nt("Activity");default:return""}}function Af(l){try{var e="",t=null;do e+=qd(l,t),t=l,l=l.return;while(l);return e}catch(a){return`
47
+ Error generating stack: `+a.message+`
48
+ `+a.stack}}var Wu=Object.prototype.hasOwnProperty,$u=o.unstable_scheduleCallback,Iu=o.unstable_cancelCallback,Gd=o.unstable_shouldYield,Yd=o.unstable_requestPaint,oe=o.unstable_now,Xd=o.unstable_getCurrentPriorityLevel,jf=o.unstable_ImmediatePriority,zf=o.unstable_UserBlockingPriority,Cn=o.unstable_NormalPriority,Qd=o.unstable_LowPriority,Ef=o.unstable_IdlePriority,Zd=o.log,Ld=o.unstable_setDisableYieldValue,Oa=null,re=null;function tt(l){if(typeof Zd=="function"&&Ld(l),re&&typeof re.setStrictMode=="function")try{re.setStrictMode(Oa,l)}catch{}}var de=Math.clz32?Math.clz32:Jd,Vd=Math.log,Kd=Math.LN2;function Jd(l){return l>>>=0,l===0?32:31-(Vd(l)/Kd|0)|0}var _n=256,On=262144,Dn=4194304;function Mt(l){var e=l&42;if(e!==0)return e;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return l&261888;case 262144:case 524288:case 1048576:case 2097152:return l&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function Un(l,e,t){var a=l.pendingLanes;if(a===0)return 0;var n=0,u=l.suspendedLanes,i=l.pingedLanes;l=l.warmLanes;var f=a&134217727;return f!==0?(a=f&~u,a!==0?n=Mt(a):(i&=f,i!==0?n=Mt(i):t||(t=f&~l,t!==0&&(n=Mt(t))))):(f=a&~u,f!==0?n=Mt(f):i!==0?n=Mt(i):t||(t=a&~l,t!==0&&(n=Mt(t)))),n===0?0:e!==0&&e!==n&&(e&u)===0&&(u=n&-n,t=e&-e,u>=t||u===32&&(t&4194048)!==0)?e:n}function Da(l,e){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&e)===0}function kd(l,e){switch(l){case 1:case 2:case 4:case 8:case 64:return e+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Nf(){var l=Dn;return Dn<<=1,(Dn&62914560)===0&&(Dn=4194304),l}function Pu(l){for(var e=[],t=0;31>t;t++)e.push(l);return e}function Ua(l,e){l.pendingLanes|=e,e!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function wd(l,e,t,a,n,u){var i=l.pendingLanes;l.pendingLanes=t,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=t,l.entangledLanes&=t,l.errorRecoveryDisabledLanes&=t,l.shellSuspendCounter=0;var f=l.entanglements,r=l.expirationTimes,y=l.hiddenUpdates;for(t=i&~t;0<t;){var x=31-de(t),j=1<<x;f[x]=0,r[x]=-1;var g=y[x];if(g!==null)for(y[x]=null,x=0;x<g.length;x++){var p=g[x];p!==null&&(p.lane&=-536870913)}t&=~j}a!==0&&Mf(l,a,0),u!==0&&n===0&&l.tag!==0&&(l.suspendedLanes|=u&~(i&~e))}function Mf(l,e,t){l.pendingLanes|=e,l.suspendedLanes&=~e;var a=31-de(e);l.entangledLanes|=e,l.entanglements[a]=l.entanglements[a]|1073741824|t&261930}function Cf(l,e){var t=l.entangledLanes|=e;for(l=l.entanglements;t;){var a=31-de(t),n=1<<a;n&e|l[a]&e&&(l[a]|=e),t&=~n}}function _f(l,e){var t=e&-e;return t=(t&42)!==0?1:li(t),(t&(l.suspendedLanes|e))!==0?0:t}function li(l){switch(l){case 2:l=1;break;case 8:l=4;break;case 32:l=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:l=128;break;case 268435456:l=134217728;break;default:l=0}return l}function ei(l){return l&=-l,2<l?8<l?(l&134217727)!==0?32:268435456:8:2}function Of(){var l=C.p;return l!==0?l:(l=window.event,l===void 0?32:gd(l.type))}function Df(l,e){var t=C.p;try{return C.p=l,e()}finally{C.p=t}}var at=Math.random().toString(36).slice(2),Kl="__reactFiber$"+at,te="__reactProps$"+at,Jt="__reactContainer$"+at,ti="__reactEvents$"+at,Fd="__reactListeners$"+at,Wd="__reactHandles$"+at,Uf="__reactResources$"+at,Ra="__reactMarker$"+at;function ai(l){delete l[Kl],delete l[te],delete l[ti],delete l[Fd],delete l[Wd]}function kt(l){var e=l[Kl];if(e)return e;for(var t=l.parentNode;t;){if(e=t[Jt]||t[Kl]){if(t=e.alternate,e.child!==null||t!==null&&t.child!==null)for(l=ed(l);l!==null;){if(t=l[Kl])return t;l=ed(l)}return e}l=t,t=l.parentNode}return null}function wt(l){if(l=l[Kl]||l[Jt]){var e=l.tag;if(e===5||e===6||e===13||e===31||e===26||e===27||e===3)return l}return null}function Ha(l){var e=l.tag;if(e===5||e===26||e===27||e===6)return l.stateNode;throw Error(h(33))}function Ft(l){var e=l[Uf];return e||(e=l[Uf]={hoistableStyles:new Map,hoistableScripts:new Map}),e}function Zl(l){l[Ra]=!0}var Rf=new Set,Hf={};function Ct(l,e){Wt(l,e),Wt(l+"Capture",e)}function Wt(l,e){for(Hf[l]=e,l=0;l<e.length;l++)Rf.add(e[l])}var $d=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Bf={},qf={};function Id(l){return Wu.call(qf,l)?!0:Wu.call(Bf,l)?!1:$d.test(l)?qf[l]=!0:(Bf[l]=!0,!1)}function Rn(l,e,t){if(Id(e))if(t===null)l.removeAttribute(e);else{switch(typeof t){case"undefined":case"function":case"symbol":l.removeAttribute(e);return;case"boolean":var a=e.toLowerCase().slice(0,5);if(a!=="data-"&&a!=="aria-"){l.removeAttribute(e);return}}l.setAttribute(e,""+t)}}function Hn(l,e,t){if(t===null)l.removeAttribute(e);else{switch(typeof t){case"undefined":case"function":case"symbol":case"boolean":l.removeAttribute(e);return}l.setAttribute(e,""+t)}}function qe(l,e,t,a){if(a===null)l.removeAttribute(t);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":l.removeAttribute(t);return}l.setAttributeNS(e,t,""+a)}}function Se(l){switch(typeof l){case"bigint":case"boolean":case"number":case"string":case"undefined":return l;case"object":return l;default:return""}}function Gf(l){var e=l.type;return(l=l.nodeName)&&l.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function Pd(l,e,t){var a=Object.getOwnPropertyDescriptor(l.constructor.prototype,e);if(!l.hasOwnProperty(e)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var n=a.get,u=a.set;return Object.defineProperty(l,e,{configurable:!0,get:function(){return n.call(this)},set:function(i){t=""+i,u.call(this,i)}}),Object.defineProperty(l,e,{enumerable:a.enumerable}),{getValue:function(){return t},setValue:function(i){t=""+i},stopTracking:function(){l._valueTracker=null,delete l[e]}}}}function ni(l){if(!l._valueTracker){var e=Gf(l)?"checked":"value";l._valueTracker=Pd(l,e,""+l[e])}}function Yf(l){if(!l)return!1;var e=l._valueTracker;if(!e)return!0;var t=e.getValue(),a="";return l&&(a=Gf(l)?l.checked?"true":"false":l.value),l=a,l!==t?(e.setValue(l),!0):!1}function Bn(l){if(l=l||(typeof document<"u"?document:void 0),typeof l>"u")return null;try{return l.activeElement||l.body}catch{return l.body}}var lm=/[\n"\\]/g;function xe(l){return l.replace(lm,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function ui(l,e,t,a,n,u,i,f){l.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?l.type=i:l.removeAttribute("type"),e!=null?i==="number"?(e===0&&l.value===""||l.value!=e)&&(l.value=""+Se(e)):l.value!==""+Se(e)&&(l.value=""+Se(e)):i!=="submit"&&i!=="reset"||l.removeAttribute("value"),e!=null?ii(l,i,Se(e)):t!=null?ii(l,i,Se(t)):a!=null&&l.removeAttribute("value"),n==null&&u!=null&&(l.defaultChecked=!!u),n!=null&&(l.checked=n&&typeof n!="function"&&typeof n!="symbol"),f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"?l.name=""+Se(f):l.removeAttribute("name")}function Xf(l,e,t,a,n,u,i,f){if(u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"&&(l.type=u),e!=null||t!=null){if(!(u!=="submit"&&u!=="reset"||e!=null)){ni(l);return}t=t!=null?""+Se(t):"",e=e!=null?""+Se(e):t,f||e===l.value||(l.value=e),l.defaultValue=e}a=a??n,a=typeof a!="function"&&typeof a!="symbol"&&!!a,l.checked=f?l.checked:!!a,l.defaultChecked=!!a,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(l.name=i),ni(l)}function ii(l,e,t){e==="number"&&Bn(l.ownerDocument)===l||l.defaultValue===""+t||(l.defaultValue=""+t)}function $t(l,e,t,a){if(l=l.options,e){e={};for(var n=0;n<t.length;n++)e["$"+t[n]]=!0;for(t=0;t<l.length;t++)n=e.hasOwnProperty("$"+l[t].value),l[t].selected!==n&&(l[t].selected=n),n&&a&&(l[t].defaultSelected=!0)}else{for(t=""+Se(t),e=null,n=0;n<l.length;n++){if(l[n].value===t){l[n].selected=!0,a&&(l[n].defaultSelected=!0);return}e!==null||l[n].disabled||(e=l[n])}e!==null&&(e.selected=!0)}}function Qf(l,e,t){if(e!=null&&(e=""+Se(e),e!==l.value&&(l.value=e),t==null)){l.defaultValue!==e&&(l.defaultValue=e);return}l.defaultValue=t!=null?""+Se(t):""}function Zf(l,e,t,a){if(e==null){if(a!=null){if(t!=null)throw Error(h(92));if(se(a)){if(1<a.length)throw Error(h(93));a=a[0]}t=a}t==null&&(t=""),e=t}t=Se(e),l.defaultValue=t,a=l.textContent,a===t&&a!==""&&a!==null&&(l.value=a),ni(l)}function It(l,e){if(e){var t=l.firstChild;if(t&&t===l.lastChild&&t.nodeType===3){t.nodeValue=e;return}}l.textContent=e}var em=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function Lf(l,e,t){var a=e.indexOf("--")===0;t==null||typeof t=="boolean"||t===""?a?l.setProperty(e,""):e==="float"?l.cssFloat="":l[e]="":a?l.setProperty(e,t):typeof t!="number"||t===0||em.has(e)?e==="float"?l.cssFloat=t:l[e]=(""+t).trim():l[e]=t+"px"}function Vf(l,e,t){if(e!=null&&typeof e!="object")throw Error(h(62));if(l=l.style,t!=null){for(var a in t)!t.hasOwnProperty(a)||e!=null&&e.hasOwnProperty(a)||(a.indexOf("--")===0?l.setProperty(a,""):a==="float"?l.cssFloat="":l[a]="");for(var n in e)a=e[n],e.hasOwnProperty(n)&&t[n]!==a&&Lf(l,n,a)}else for(var u in e)e.hasOwnProperty(u)&&Lf(l,u,e[u])}function ci(l){if(l.indexOf("-")===-1)return!1;switch(l){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var tm=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),am=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function qn(l){return am.test(""+l)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":l}function Ge(){}var fi=null;function si(l){return l=l.target||l.srcElement||window,l.correspondingUseElement&&(l=l.correspondingUseElement),l.nodeType===3?l.parentNode:l}var Pt=null,la=null;function Kf(l){var e=wt(l);if(e&&(l=e.stateNode)){var t=l[te]||null;l:switch(l=e.stateNode,e.type){case"input":if(ui(l,t.value,t.defaultValue,t.defaultValue,t.checked,t.defaultChecked,t.type,t.name),e=t.name,t.type==="radio"&&e!=null){for(t=l;t.parentNode;)t=t.parentNode;for(t=t.querySelectorAll('input[name="'+xe(""+e)+'"][type="radio"]'),e=0;e<t.length;e++){var a=t[e];if(a!==l&&a.form===l.form){var n=a[te]||null;if(!n)throw Error(h(90));ui(a,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name)}}for(e=0;e<t.length;e++)a=t[e],a.form===l.form&&Yf(a)}break l;case"textarea":Qf(l,t.value,t.defaultValue);break l;case"select":e=t.value,e!=null&&$t(l,!!t.multiple,e,!1)}}}var oi=!1;function Jf(l,e,t){if(oi)return l(e,t);oi=!0;try{var a=l(e);return a}finally{if(oi=!1,(Pt!==null||la!==null)&&(ju(),Pt&&(e=Pt,l=la,la=Pt=null,Kf(e),l)))for(e=0;e<l.length;e++)Kf(l[e])}}function Ba(l,e){var t=l.stateNode;if(t===null)return null;var a=t[te]||null;if(a===null)return null;t=a[e];l:switch(e){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(a=!a.disabled)||(l=l.type,a=!(l==="button"||l==="input"||l==="select"||l==="textarea")),l=!a;break l;default:l=!1}if(l)return null;if(t&&typeof t!="function")throw Error(h(231,e,typeof t));return t}var Ye=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ri=!1;if(Ye)try{var qa={};Object.defineProperty(qa,"passive",{get:function(){ri=!0}}),window.addEventListener("test",qa,qa),window.removeEventListener("test",qa,qa)}catch{ri=!1}var nt=null,di=null,Gn=null;function kf(){if(Gn)return Gn;var l,e=di,t=e.length,a,n="value"in nt?nt.value:nt.textContent,u=n.length;for(l=0;l<t&&e[l]===n[l];l++);var i=t-l;for(a=1;a<=i&&e[t-a]===n[u-a];a++);return Gn=n.slice(l,1<a?1-a:void 0)}function Yn(l){var e=l.keyCode;return"charCode"in l?(l=l.charCode,l===0&&e===13&&(l=13)):l=e,l===10&&(l=13),32<=l||l===13?l:0}function Xn(){return!0}function wf(){return!1}function ae(l){function e(t,a,n,u,i){this._reactName=t,this._targetInst=n,this.type=a,this.nativeEvent=u,this.target=i,this.currentTarget=null;for(var f in l)l.hasOwnProperty(f)&&(t=l[f],this[f]=t?t(u):u[f]);return this.isDefaultPrevented=(u.defaultPrevented!=null?u.defaultPrevented:u.returnValue===!1)?Xn:wf,this.isPropagationStopped=wf,this}return q(e.prototype,{preventDefault:function(){this.defaultPrevented=!0;var t=this.nativeEvent;t&&(t.preventDefault?t.preventDefault():typeof t.returnValue!="unknown"&&(t.returnValue=!1),this.isDefaultPrevented=Xn)},stopPropagation:function(){var t=this.nativeEvent;t&&(t.stopPropagation?t.stopPropagation():typeof t.cancelBubble!="unknown"&&(t.cancelBubble=!0),this.isPropagationStopped=Xn)},persist:function(){},isPersistent:Xn}),e}var _t={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(l){return l.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Qn=ae(_t),Ga=q({},_t,{view:0,detail:0}),nm=ae(Ga),mi,hi,Ya,Zn=q({},Ga,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:yi,button:0,buttons:0,relatedTarget:function(l){return l.relatedTarget===void 0?l.fromElement===l.srcElement?l.toElement:l.fromElement:l.relatedTarget},movementX:function(l){return"movementX"in l?l.movementX:(l!==Ya&&(Ya&&l.type==="mousemove"?(mi=l.screenX-Ya.screenX,hi=l.screenY-Ya.screenY):hi=mi=0,Ya=l),mi)},movementY:function(l){return"movementY"in l?l.movementY:hi}}),Ff=ae(Zn),um=q({},Zn,{dataTransfer:0}),im=ae(um),cm=q({},Ga,{relatedTarget:0}),vi=ae(cm),fm=q({},_t,{animationName:0,elapsedTime:0,pseudoElement:0}),sm=ae(fm),om=q({},_t,{clipboardData:function(l){return"clipboardData"in l?l.clipboardData:window.clipboardData}}),rm=ae(om),dm=q({},_t,{data:0}),Wf=ae(dm),mm={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},hm={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},vm={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function ym(l){var e=this.nativeEvent;return e.getModifierState?e.getModifierState(l):(l=vm[l])?!!e[l]:!1}function yi(){return ym}var gm=q({},Ga,{key:function(l){if(l.key){var e=mm[l.key]||l.key;if(e!=="Unidentified")return e}return l.type==="keypress"?(l=Yn(l),l===13?"Enter":String.fromCharCode(l)):l.type==="keydown"||l.type==="keyup"?hm[l.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:yi,charCode:function(l){return l.type==="keypress"?Yn(l):0},keyCode:function(l){return l.type==="keydown"||l.type==="keyup"?l.keyCode:0},which:function(l){return l.type==="keypress"?Yn(l):l.type==="keydown"||l.type==="keyup"?l.keyCode:0}}),pm=ae(gm),bm=q({},Zn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),$f=ae(bm),Sm=q({},Ga,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:yi}),xm=ae(Sm),Tm=q({},_t,{propertyName:0,elapsedTime:0,pseudoElement:0}),Am=ae(Tm),jm=q({},Zn,{deltaX:function(l){return"deltaX"in l?l.deltaX:"wheelDeltaX"in l?-l.wheelDeltaX:0},deltaY:function(l){return"deltaY"in l?l.deltaY:"wheelDeltaY"in l?-l.wheelDeltaY:"wheelDelta"in l?-l.wheelDelta:0},deltaZ:0,deltaMode:0}),zm=ae(jm),Em=q({},_t,{newState:0,oldState:0}),Nm=ae(Em),Mm=[9,13,27,32],gi=Ye&&"CompositionEvent"in window,Xa=null;Ye&&"documentMode"in document&&(Xa=document.documentMode);var Cm=Ye&&"TextEvent"in window&&!Xa,If=Ye&&(!gi||Xa&&8<Xa&&11>=Xa),Pf=" ",ls=!1;function es(l,e){switch(l){case"keyup":return Mm.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ts(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var ea=!1;function _m(l,e){switch(l){case"compositionend":return ts(e);case"keypress":return e.which!==32?null:(ls=!0,Pf);case"textInput":return l=e.data,l===Pf&&ls?null:l;default:return null}}function Om(l,e){if(ea)return l==="compositionend"||!gi&&es(l,e)?(l=kf(),Gn=di=nt=null,ea=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1<e.char.length)return e.char;if(e.which)return String.fromCharCode(e.which)}return null;case"compositionend":return If&&e.locale!=="ko"?null:e.data;default:return null}}var Dm={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function as(l){var e=l&&l.nodeName&&l.nodeName.toLowerCase();return e==="input"?!!Dm[l.type]:e==="textarea"}function ns(l,e,t,a){Pt?la?la.push(a):la=[a]:Pt=a,e=Ou(e,"onChange"),0<e.length&&(t=new Qn("onChange","change",null,t,a),l.push({event:t,listeners:e}))}var Qa=null,Za=null;function Um(l){Qr(l,0)}function Ln(l){var e=Ha(l);if(Yf(e))return l}function us(l,e){if(l==="change")return e}var is=!1;if(Ye){var pi;if(Ye){var bi="oninput"in document;if(!bi){var cs=document.createElement("div");cs.setAttribute("oninput","return;"),bi=typeof cs.oninput=="function"}pi=bi}else pi=!1;is=pi&&(!document.documentMode||9<document.documentMode)}function fs(){Qa&&(Qa.detachEvent("onpropertychange",ss),Za=Qa=null)}function ss(l){if(l.propertyName==="value"&&Ln(Za)){var e=[];ns(e,Za,l,si(l)),Jf(Um,e)}}function Rm(l,e,t){l==="focusin"?(fs(),Qa=e,Za=t,Qa.attachEvent("onpropertychange",ss)):l==="focusout"&&fs()}function Hm(l){if(l==="selectionchange"||l==="keyup"||l==="keydown")return Ln(Za)}function Bm(l,e){if(l==="click")return Ln(e)}function qm(l,e){if(l==="input"||l==="change")return Ln(e)}function Gm(l,e){return l===e&&(l!==0||1/l===1/e)||l!==l&&e!==e}var me=typeof Object.is=="function"?Object.is:Gm;function La(l,e){if(me(l,e))return!0;if(typeof l!="object"||l===null||typeof e!="object"||e===null)return!1;var t=Object.keys(l),a=Object.keys(e);if(t.length!==a.length)return!1;for(a=0;a<t.length;a++){var n=t[a];if(!Wu.call(e,n)||!me(l[n],e[n]))return!1}return!0}function os(l){for(;l&&l.firstChild;)l=l.firstChild;return l}function rs(l,e){var t=os(l);l=0;for(var a;t;){if(t.nodeType===3){if(a=l+t.textContent.length,l<=e&&a>=e)return{node:t,offset:e-l};l=a}l:{for(;t;){if(t.nextSibling){t=t.nextSibling;break l}t=t.parentNode}t=void 0}t=os(t)}}function ds(l,e){return l&&e?l===e?!0:l&&l.nodeType===3?!1:e&&e.nodeType===3?ds(l,e.parentNode):"contains"in l?l.contains(e):l.compareDocumentPosition?!!(l.compareDocumentPosition(e)&16):!1:!1}function ms(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var e=Bn(l.document);e instanceof l.HTMLIFrameElement;){try{var t=typeof e.contentWindow.location.href=="string"}catch{t=!1}if(t)l=e.contentWindow;else break;e=Bn(l.document)}return e}function Si(l){var e=l&&l.nodeName&&l.nodeName.toLowerCase();return e&&(e==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||e==="textarea"||l.contentEditable==="true")}var Ym=Ye&&"documentMode"in document&&11>=document.documentMode,ta=null,xi=null,Va=null,Ti=!1;function hs(l,e,t){var a=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;Ti||ta==null||ta!==Bn(a)||(a=ta,"selectionStart"in a&&Si(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Va&&La(Va,a)||(Va=a,a=Ou(xi,"onSelect"),0<a.length&&(e=new Qn("onSelect","select",null,e,t),l.push({event:e,listeners:a}),e.target=ta)))}function Ot(l,e){var t={};return t[l.toLowerCase()]=e.toLowerCase(),t["Webkit"+l]="webkit"+e,t["Moz"+l]="moz"+e,t}var aa={animationend:Ot("Animation","AnimationEnd"),animationiteration:Ot("Animation","AnimationIteration"),animationstart:Ot("Animation","AnimationStart"),transitionrun:Ot("Transition","TransitionRun"),transitionstart:Ot("Transition","TransitionStart"),transitioncancel:Ot("Transition","TransitionCancel"),transitionend:Ot("Transition","TransitionEnd")},Ai={},vs={};Ye&&(vs=document.createElement("div").style,"AnimationEvent"in window||(delete aa.animationend.animation,delete aa.animationiteration.animation,delete aa.animationstart.animation),"TransitionEvent"in window||delete aa.transitionend.transition);function Dt(l){if(Ai[l])return Ai[l];if(!aa[l])return l;var e=aa[l],t;for(t in e)if(e.hasOwnProperty(t)&&t in vs)return Ai[l]=e[t];return l}var ys=Dt("animationend"),gs=Dt("animationiteration"),ps=Dt("animationstart"),Xm=Dt("transitionrun"),Qm=Dt("transitionstart"),Zm=Dt("transitioncancel"),bs=Dt("transitionend"),Ss=new Map,ji="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");ji.push("scrollEnd");function _e(l,e){Ss.set(l,e),Ct(e,[l])}var Vn=typeof reportError=="function"?reportError:function(l){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var e=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof l=="object"&&l!==null&&typeof l.message=="string"?String(l.message):String(l),error:l});if(!window.dispatchEvent(e))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",l);return}console.error(l)},Te=[],na=0,zi=0;function Kn(){for(var l=na,e=zi=na=0;e<l;){var t=Te[e];Te[e++]=null;var a=Te[e];Te[e++]=null;var n=Te[e];Te[e++]=null;var u=Te[e];if(Te[e++]=null,a!==null&&n!==null){var i=a.pending;i===null?n.next=n:(n.next=i.next,i.next=n),a.pending=n}u!==0&&xs(t,n,u)}}function Jn(l,e,t,a){Te[na++]=l,Te[na++]=e,Te[na++]=t,Te[na++]=a,zi|=a,l.lanes|=a,l=l.alternate,l!==null&&(l.lanes|=a)}function Ei(l,e,t,a){return Jn(l,e,t,a),kn(l)}function Ut(l,e){return Jn(l,null,null,e),kn(l)}function xs(l,e,t){l.lanes|=t;var a=l.alternate;a!==null&&(a.lanes|=t);for(var n=!1,u=l.return;u!==null;)u.childLanes|=t,a=u.alternate,a!==null&&(a.childLanes|=t),u.tag===22&&(l=u.stateNode,l===null||l._visibility&1||(n=!0)),l=u,u=u.return;return l.tag===3?(u=l.stateNode,n&&e!==null&&(n=31-de(t),l=u.hiddenUpdates,a=l[n],a===null?l[n]=[e]:a.push(e),e.lane=t|536870912),u):null}function kn(l){if(50<mn)throw mn=0,Hc=null,Error(h(185));for(var e=l.return;e!==null;)l=e,e=l.return;return l.tag===3?l.stateNode:null}var ua={};function Lm(l,e,t,a){this.tag=l,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function he(l,e,t,a){return new Lm(l,e,t,a)}function Ni(l){return l=l.prototype,!(!l||!l.isReactComponent)}function Xe(l,e){var t=l.alternate;return t===null?(t=he(l.tag,e,l.key,l.mode),t.elementType=l.elementType,t.type=l.type,t.stateNode=l.stateNode,t.alternate=l,l.alternate=t):(t.pendingProps=e,t.type=l.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=l.flags&65011712,t.childLanes=l.childLanes,t.lanes=l.lanes,t.child=l.child,t.memoizedProps=l.memoizedProps,t.memoizedState=l.memoizedState,t.updateQueue=l.updateQueue,e=l.dependencies,t.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},t.sibling=l.sibling,t.index=l.index,t.ref=l.ref,t.refCleanup=l.refCleanup,t}function Ts(l,e){l.flags&=65011714;var t=l.alternate;return t===null?(l.childLanes=0,l.lanes=e,l.child=null,l.subtreeFlags=0,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=t.childLanes,l.lanes=t.lanes,l.child=t.child,l.subtreeFlags=0,l.deletions=null,l.memoizedProps=t.memoizedProps,l.memoizedState=t.memoizedState,l.updateQueue=t.updateQueue,l.type=t.type,e=t.dependencies,l.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),l}function wn(l,e,t,a,n,u){var i=0;if(a=l,typeof l=="function")Ni(l)&&(i=1);else if(typeof l=="string")i=wh(l,t,U.current)?26:l==="html"||l==="head"||l==="body"?27:5;else l:switch(l){case nl:return l=he(31,t,e,n),l.elementType=nl,l.lanes=u,l;case il:return Rt(t.children,n,u,e);case Il:i=8,n|=24;break;case Cl:return l=he(12,t,e,n|2),l.elementType=Cl,l.lanes=u,l;case cl:return l=he(13,t,e,n),l.elementType=cl,l.lanes=u,l;case z:return l=he(19,t,e,n),l.elementType=z,l.lanes=u,l;default:if(typeof l=="object"&&l!==null)switch(l.$$typeof){case Sl:i=10;break l;case ee:i=9;break l;case Bl:i=11;break l;case O:i=14;break l;case V:i=16,a=null;break l}i=29,t=Error(h(130,l===null?"null":typeof l,"")),a=null}return e=he(i,t,e,n),e.elementType=l,e.type=a,e.lanes=u,e}function Rt(l,e,t,a){return l=he(7,l,a,e),l.lanes=t,l}function Mi(l,e,t){return l=he(6,l,null,e),l.lanes=t,l}function As(l){var e=he(18,null,null,0);return e.stateNode=l,e}function Ci(l,e,t){return e=he(4,l.children!==null?l.children:[],l.key,e),e.lanes=t,e.stateNode={containerInfo:l.containerInfo,pendingChildren:null,implementation:l.implementation},e}var js=new WeakMap;function Ae(l,e){if(typeof l=="object"&&l!==null){var t=js.get(l);return t!==void 0?t:(e={value:l,source:e,stack:Af(e)},js.set(l,e),e)}return{value:l,source:e,stack:Af(e)}}var ia=[],ca=0,Fn=null,Ka=0,je=[],ze=0,ut=null,Ue=1,Re="";function Qe(l,e){ia[ca++]=Ka,ia[ca++]=Fn,Fn=l,Ka=e}function zs(l,e,t){je[ze++]=Ue,je[ze++]=Re,je[ze++]=ut,ut=l;var a=Ue;l=Re;var n=32-de(a)-1;a&=~(1<<n),t+=1;var u=32-de(e)+n;if(30<u){var i=n-n%5;u=(a&(1<<i)-1).toString(32),a>>=i,n-=i,Ue=1<<32-de(e)+n|t<<n|a,Re=u+l}else Ue=1<<u|t<<n|a,Re=l}function _i(l){l.return!==null&&(Qe(l,1),zs(l,1,0))}function Oi(l){for(;l===Fn;)Fn=ia[--ca],ia[ca]=null,Ka=ia[--ca],ia[ca]=null;for(;l===ut;)ut=je[--ze],je[ze]=null,Re=je[--ze],je[ze]=null,Ue=je[--ze],je[ze]=null}function Es(l,e){je[ze++]=Ue,je[ze++]=Re,je[ze++]=ut,Ue=e.id,Re=e.overflow,ut=l}var Jl=null,Al=null,al=!1,it=null,Ee=!1,Di=Error(h(519));function ct(l){var e=Error(h(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Ja(Ae(e,l)),Di}function Ns(l){var e=l.stateNode,t=l.type,a=l.memoizedProps;switch(e[Kl]=l,e[te]=a,t){case"dialog":ll("cancel",e),ll("close",e);break;case"iframe":case"object":case"embed":ll("load",e);break;case"video":case"audio":for(t=0;t<vn.length;t++)ll(vn[t],e);break;case"source":ll("error",e);break;case"img":case"image":case"link":ll("error",e),ll("load",e);break;case"details":ll("toggle",e);break;case"input":ll("invalid",e),Xf(e,a.value,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name,!0);break;case"select":ll("invalid",e);break;case"textarea":ll("invalid",e),Zf(e,a.value,a.defaultValue,a.children)}t=a.children,typeof t!="string"&&typeof t!="number"&&typeof t!="bigint"||e.textContent===""+t||a.suppressHydrationWarning===!0||Kr(e.textContent,t)?(a.popover!=null&&(ll("beforetoggle",e),ll("toggle",e)),a.onScroll!=null&&ll("scroll",e),a.onScrollEnd!=null&&ll("scrollend",e),a.onClick!=null&&(e.onclick=Ge),e=!0):e=!1,e||ct(l,!0)}function Ms(l){for(Jl=l.return;Jl;)switch(Jl.tag){case 5:case 31:case 13:Ee=!1;return;case 27:case 3:Ee=!0;return;default:Jl=Jl.return}}function fa(l){if(l!==Jl)return!1;if(!al)return Ms(l),al=!0,!1;var e=l.tag,t;if((t=e!==3&&e!==27)&&((t=e===5)&&(t=l.type,t=!(t!=="form"&&t!=="button")||Wc(l.type,l.memoizedProps)),t=!t),t&&Al&&ct(l),Ms(l),e===13){if(l=l.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(h(317));Al=ld(l)}else if(e===31){if(l=l.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(h(317));Al=ld(l)}else e===27?(e=Al,xt(l.type)?(l=ef,ef=null,Al=l):Al=e):Al=Jl?Me(l.stateNode.nextSibling):null;return!0}function Ht(){Al=Jl=null,al=!1}function Ui(){var l=it;return l!==null&&(ce===null?ce=l:ce.push.apply(ce,l),it=null),l}function Ja(l){it===null?it=[l]:it.push(l)}var Ri=s(null),Bt=null,Ze=null;function ft(l,e,t){M(Ri,e._currentValue),e._currentValue=t}function Le(l){l._currentValue=Ri.current,b(Ri)}function Hi(l,e,t){for(;l!==null;){var a=l.alternate;if((l.childLanes&e)!==e?(l.childLanes|=e,a!==null&&(a.childLanes|=e)):a!==null&&(a.childLanes&e)!==e&&(a.childLanes|=e),l===t)break;l=l.return}}function Bi(l,e,t,a){var n=l.child;for(n!==null&&(n.return=l);n!==null;){var u=n.dependencies;if(u!==null){var i=n.child;u=u.firstContext;l:for(;u!==null;){var f=u;u=n;for(var r=0;r<e.length;r++)if(f.context===e[r]){u.lanes|=t,f=u.alternate,f!==null&&(f.lanes|=t),Hi(u.return,t,l),a||(i=null);break l}u=f.next}}else if(n.tag===18){if(i=n.return,i===null)throw Error(h(341));i.lanes|=t,u=i.alternate,u!==null&&(u.lanes|=t),Hi(i,t,l),i=null}else i=n.child;if(i!==null)i.return=n;else for(i=n;i!==null;){if(i===l){i=null;break}if(n=i.sibling,n!==null){n.return=i.return,i=n;break}i=i.return}n=i}}function sa(l,e,t,a){l=null;for(var n=e,u=!1;n!==null;){if(!u){if((n.flags&524288)!==0)u=!0;else if((n.flags&262144)!==0)break}if(n.tag===10){var i=n.alternate;if(i===null)throw Error(h(387));if(i=i.memoizedProps,i!==null){var f=n.type;me(n.pendingProps.value,i.value)||(l!==null?l.push(f):l=[f])}}else if(n===rl.current){if(i=n.alternate,i===null)throw Error(h(387));i.memoizedState.memoizedState!==n.memoizedState.memoizedState&&(l!==null?l.push(Sn):l=[Sn])}n=n.return}l!==null&&Bi(e,l,t,a),e.flags|=262144}function Wn(l){for(l=l.firstContext;l!==null;){if(!me(l.context._currentValue,l.memoizedValue))return!0;l=l.next}return!1}function qt(l){Bt=l,Ze=null,l=l.dependencies,l!==null&&(l.firstContext=null)}function kl(l){return Cs(Bt,l)}function $n(l,e){return Bt===null&&qt(l),Cs(l,e)}function Cs(l,e){var t=e._currentValue;if(e={context:e,memoizedValue:t,next:null},Ze===null){if(l===null)throw Error(h(308));Ze=e,l.dependencies={lanes:0,firstContext:e},l.flags|=524288}else Ze=Ze.next=e;return t}var Vm=typeof AbortController<"u"?AbortController:function(){var l=[],e=this.signal={aborted:!1,addEventListener:function(t,a){l.push(a)}};this.abort=function(){e.aborted=!0,l.forEach(function(t){return t()})}},Km=o.unstable_scheduleCallback,Jm=o.unstable_NormalPriority,ql={$$typeof:Sl,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function qi(){return{controller:new Vm,data:new Map,refCount:0}}function ka(l){l.refCount--,l.refCount===0&&Km(Jm,function(){l.controller.abort()})}var wa=null,Gi=0,oa=0,ra=null;function km(l,e){if(wa===null){var t=wa=[];Gi=0,oa=Qc(),ra={status:"pending",value:void 0,then:function(a){t.push(a)}}}return Gi++,e.then(_s,_s),e}function _s(){if(--Gi===0&&wa!==null){ra!==null&&(ra.status="fulfilled");var l=wa;wa=null,oa=0,ra=null;for(var e=0;e<l.length;e++)(0,l[e])()}}function wm(l,e){var t=[],a={status:"pending",value:null,reason:null,then:function(n){t.push(n)}};return l.then(function(){a.status="fulfilled",a.value=e;for(var n=0;n<t.length;n++)(0,t[n])(e)},function(n){for(a.status="rejected",a.reason=n,n=0;n<t.length;n++)(0,t[n])(void 0)}),a}var Os=T.S;T.S=function(l,e){vr=oe(),typeof e=="object"&&e!==null&&typeof e.then=="function"&&km(l,e),Os!==null&&Os(l,e)};var Gt=s(null);function Yi(){var l=Gt.current;return l!==null?l:bl.pooledCache}function In(l,e){e===null?M(Gt,Gt.current):M(Gt,e.pool)}function Ds(){var l=Yi();return l===null?null:{parent:ql._currentValue,pool:l}}var da=Error(h(460)),Xi=Error(h(474)),Pn=Error(h(542)),lu={then:function(){}};function Us(l){return l=l.status,l==="fulfilled"||l==="rejected"}function Rs(l,e,t){switch(t=l[t],t===void 0?l.push(e):t!==e&&(e.then(Ge,Ge),e=t),e.status){case"fulfilled":return e.value;case"rejected":throw l=e.reason,Bs(l),l;default:if(typeof e.status=="string")e.then(Ge,Ge);else{if(l=bl,l!==null&&100<l.shellSuspendCounter)throw Error(h(482));l=e,l.status="pending",l.then(function(a){if(e.status==="pending"){var n=e;n.status="fulfilled",n.value=a}},function(a){if(e.status==="pending"){var n=e;n.status="rejected",n.reason=a}})}switch(e.status){case"fulfilled":return e.value;case"rejected":throw l=e.reason,Bs(l),l}throw Xt=e,da}}function Yt(l){try{var e=l._init;return e(l._payload)}catch(t){throw t!==null&&typeof t=="object"&&typeof t.then=="function"?(Xt=t,da):t}}var Xt=null;function Hs(){if(Xt===null)throw Error(h(459));var l=Xt;return Xt=null,l}function Bs(l){if(l===da||l===Pn)throw Error(h(483))}var ma=null,Fa=0;function eu(l){var e=Fa;return Fa+=1,ma===null&&(ma=[]),Rs(ma,l,e)}function Wa(l,e){e=e.props.ref,l.ref=e!==void 0?e:null}function tu(l,e){throw e.$$typeof===Z?Error(h(525)):(l=Object.prototype.toString.call(e),Error(h(31,l==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":l)))}function qs(l){function e(m,d){if(l){var v=m.deletions;v===null?(m.deletions=[d],m.flags|=16):v.push(d)}}function t(m,d){if(!l)return null;for(;d!==null;)e(m,d),d=d.sibling;return null}function a(m){for(var d=new Map;m!==null;)m.key!==null?d.set(m.key,m):d.set(m.index,m),m=m.sibling;return d}function n(m,d){return m=Xe(m,d),m.index=0,m.sibling=null,m}function u(m,d,v){return m.index=v,l?(v=m.alternate,v!==null?(v=v.index,v<d?(m.flags|=67108866,d):v):(m.flags|=67108866,d)):(m.flags|=1048576,d)}function i(m){return l&&m.alternate===null&&(m.flags|=67108866),m}function f(m,d,v,A){return d===null||d.tag!==6?(d=Mi(v,m.mode,A),d.return=m,d):(d=n(d,v),d.return=m,d)}function r(m,d,v,A){var Q=v.type;return Q===il?x(m,d,v.props.children,A,v.key):d!==null&&(d.elementType===Q||typeof Q=="object"&&Q!==null&&Q.$$typeof===V&&Yt(Q)===d.type)?(d=n(d,v.props),Wa(d,v),d.return=m,d):(d=wn(v.type,v.key,v.props,null,m.mode,A),Wa(d,v),d.return=m,d)}function y(m,d,v,A){return d===null||d.tag!==4||d.stateNode.containerInfo!==v.containerInfo||d.stateNode.implementation!==v.implementation?(d=Ci(v,m.mode,A),d.return=m,d):(d=n(d,v.children||[]),d.return=m,d)}function x(m,d,v,A,Q){return d===null||d.tag!==7?(d=Rt(v,m.mode,A,Q),d.return=m,d):(d=n(d,v),d.return=m,d)}function j(m,d,v){if(typeof d=="string"&&d!==""||typeof d=="number"||typeof d=="bigint")return d=Mi(""+d,m.mode,v),d.return=m,d;if(typeof d=="object"&&d!==null){switch(d.$$typeof){case Tl:return v=wn(d.type,d.key,d.props,null,m.mode,v),Wa(v,d),v.return=m,v;case pl:return d=Ci(d,m.mode,v),d.return=m,d;case V:return d=Yt(d),j(m,d,v)}if(se(d)||El(d))return d=Rt(d,m.mode,v,null),d.return=m,d;if(typeof d.then=="function")return j(m,eu(d),v);if(d.$$typeof===Sl)return j(m,$n(m,d),v);tu(m,d)}return null}function g(m,d,v,A){var Q=d!==null?d.key:null;if(typeof v=="string"&&v!==""||typeof v=="number"||typeof v=="bigint")return Q!==null?null:f(m,d,""+v,A);if(typeof v=="object"&&v!==null){switch(v.$$typeof){case Tl:return v.key===Q?r(m,d,v,A):null;case pl:return v.key===Q?y(m,d,v,A):null;case V:return v=Yt(v),g(m,d,v,A)}if(se(v)||El(v))return Q!==null?null:x(m,d,v,A,null);if(typeof v.then=="function")return g(m,d,eu(v),A);if(v.$$typeof===Sl)return g(m,d,$n(m,v),A);tu(m,v)}return null}function p(m,d,v,A,Q){if(typeof A=="string"&&A!==""||typeof A=="number"||typeof A=="bigint")return m=m.get(v)||null,f(d,m,""+A,Q);if(typeof A=="object"&&A!==null){switch(A.$$typeof){case Tl:return m=m.get(A.key===null?v:A.key)||null,r(d,m,A,Q);case pl:return m=m.get(A.key===null?v:A.key)||null,y(d,m,A,Q);case V:return A=Yt(A),p(m,d,v,A,Q)}if(se(A)||El(A))return m=m.get(v)||null,x(d,m,A,Q,null);if(typeof A.then=="function")return p(m,d,v,eu(A),Q);if(A.$$typeof===Sl)return p(m,d,v,$n(d,A),Q);tu(d,A)}return null}function R(m,d,v,A){for(var Q=null,fl=null,X=d,$=d=0,tl=null;X!==null&&$<v.length;$++){X.index>$?(tl=X,X=null):tl=X.sibling;var sl=g(m,X,v[$],A);if(sl===null){X===null&&(X=tl);break}l&&X&&sl.alternate===null&&e(m,X),d=u(sl,d,$),fl===null?Q=sl:fl.sibling=sl,fl=sl,X=tl}if($===v.length)return t(m,X),al&&Qe(m,$),Q;if(X===null){for(;$<v.length;$++)X=j(m,v[$],A),X!==null&&(d=u(X,d,$),fl===null?Q=X:fl.sibling=X,fl=X);return al&&Qe(m,$),Q}for(X=a(X);$<v.length;$++)tl=p(X,m,$,v[$],A),tl!==null&&(l&&tl.alternate!==null&&X.delete(tl.key===null?$:tl.key),d=u(tl,d,$),fl===null?Q=tl:fl.sibling=tl,fl=tl);return l&&X.forEach(function(Et){return e(m,Et)}),al&&Qe(m,$),Q}function K(m,d,v,A){if(v==null)throw Error(h(151));for(var Q=null,fl=null,X=d,$=d=0,tl=null,sl=v.next();X!==null&&!sl.done;$++,sl=v.next()){X.index>$?(tl=X,X=null):tl=X.sibling;var Et=g(m,X,sl.value,A);if(Et===null){X===null&&(X=tl);break}l&&X&&Et.alternate===null&&e(m,X),d=u(Et,d,$),fl===null?Q=Et:fl.sibling=Et,fl=Et,X=tl}if(sl.done)return t(m,X),al&&Qe(m,$),Q;if(X===null){for(;!sl.done;$++,sl=v.next())sl=j(m,sl.value,A),sl!==null&&(d=u(sl,d,$),fl===null?Q=sl:fl.sibling=sl,fl=sl);return al&&Qe(m,$),Q}for(X=a(X);!sl.done;$++,sl=v.next())sl=p(X,m,$,sl.value,A),sl!==null&&(l&&sl.alternate!==null&&X.delete(sl.key===null?$:sl.key),d=u(sl,d,$),fl===null?Q=sl:fl.sibling=sl,fl=sl);return l&&X.forEach(function(uv){return e(m,uv)}),al&&Qe(m,$),Q}function yl(m,d,v,A){if(typeof v=="object"&&v!==null&&v.type===il&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case Tl:l:{for(var Q=v.key;d!==null;){if(d.key===Q){if(Q=v.type,Q===il){if(d.tag===7){t(m,d.sibling),A=n(d,v.props.children),A.return=m,m=A;break l}}else if(d.elementType===Q||typeof Q=="object"&&Q!==null&&Q.$$typeof===V&&Yt(Q)===d.type){t(m,d.sibling),A=n(d,v.props),Wa(A,v),A.return=m,m=A;break l}t(m,d);break}else e(m,d);d=d.sibling}v.type===il?(A=Rt(v.props.children,m.mode,A,v.key),A.return=m,m=A):(A=wn(v.type,v.key,v.props,null,m.mode,A),Wa(A,v),A.return=m,m=A)}return i(m);case pl:l:{for(Q=v.key;d!==null;){if(d.key===Q)if(d.tag===4&&d.stateNode.containerInfo===v.containerInfo&&d.stateNode.implementation===v.implementation){t(m,d.sibling),A=n(d,v.children||[]),A.return=m,m=A;break l}else{t(m,d);break}else e(m,d);d=d.sibling}A=Ci(v,m.mode,A),A.return=m,m=A}return i(m);case V:return v=Yt(v),yl(m,d,v,A)}if(se(v))return R(m,d,v,A);if(El(v)){if(Q=El(v),typeof Q!="function")throw Error(h(150));return v=Q.call(v),K(m,d,v,A)}if(typeof v.then=="function")return yl(m,d,eu(v),A);if(v.$$typeof===Sl)return yl(m,d,$n(m,v),A);tu(m,v)}return typeof v=="string"&&v!==""||typeof v=="number"||typeof v=="bigint"?(v=""+v,d!==null&&d.tag===6?(t(m,d.sibling),A=n(d,v),A.return=m,m=A):(t(m,d),A=Mi(v,m.mode,A),A.return=m,m=A),i(m)):t(m,d)}return function(m,d,v,A){try{Fa=0;var Q=yl(m,d,v,A);return ma=null,Q}catch(X){if(X===da||X===Pn)throw X;var fl=he(29,X,null,m.mode);return fl.lanes=A,fl.return=m,fl}finally{}}}var Qt=qs(!0),Gs=qs(!1),st=!1;function Qi(l){l.updateQueue={baseState:l.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Zi(l,e){l=l.updateQueue,e.updateQueue===l&&(e.updateQueue={baseState:l.baseState,firstBaseUpdate:l.firstBaseUpdate,lastBaseUpdate:l.lastBaseUpdate,shared:l.shared,callbacks:null})}function ot(l){return{lane:l,tag:0,payload:null,callback:null,next:null}}function rt(l,e,t){var a=l.updateQueue;if(a===null)return null;if(a=a.shared,(ol&2)!==0){var n=a.pending;return n===null?e.next=e:(e.next=n.next,n.next=e),a.pending=e,e=kn(l),xs(l,null,t),e}return Jn(l,a,e,t),kn(l)}function $a(l,e,t){if(e=e.updateQueue,e!==null&&(e=e.shared,(t&4194048)!==0)){var a=e.lanes;a&=l.pendingLanes,t|=a,e.lanes=t,Cf(l,t)}}function Li(l,e){var t=l.updateQueue,a=l.alternate;if(a!==null&&(a=a.updateQueue,t===a)){var n=null,u=null;if(t=t.firstBaseUpdate,t!==null){do{var i={lane:t.lane,tag:t.tag,payload:t.payload,callback:null,next:null};u===null?n=u=i:u=u.next=i,t=t.next}while(t!==null);u===null?n=u=e:u=u.next=e}else n=u=e;t={baseState:a.baseState,firstBaseUpdate:n,lastBaseUpdate:u,shared:a.shared,callbacks:a.callbacks},l.updateQueue=t;return}l=t.lastBaseUpdate,l===null?t.firstBaseUpdate=e:l.next=e,t.lastBaseUpdate=e}var Vi=!1;function Ia(){if(Vi){var l=ra;if(l!==null)throw l}}function Pa(l,e,t,a){Vi=!1;var n=l.updateQueue;st=!1;var u=n.firstBaseUpdate,i=n.lastBaseUpdate,f=n.shared.pending;if(f!==null){n.shared.pending=null;var r=f,y=r.next;r.next=null,i===null?u=y:i.next=y,i=r;var x=l.alternate;x!==null&&(x=x.updateQueue,f=x.lastBaseUpdate,f!==i&&(f===null?x.firstBaseUpdate=y:f.next=y,x.lastBaseUpdate=r))}if(u!==null){var j=n.baseState;i=0,x=y=r=null,f=u;do{var g=f.lane&-536870913,p=g!==f.lane;if(p?(el&g)===g:(a&g)===g){g!==0&&g===oa&&(Vi=!0),x!==null&&(x=x.next={lane:0,tag:f.tag,payload:f.payload,callback:null,next:null});l:{var R=l,K=f;g=e;var yl=t;switch(K.tag){case 1:if(R=K.payload,typeof R=="function"){j=R.call(yl,j,g);break l}j=R;break l;case 3:R.flags=R.flags&-65537|128;case 0:if(R=K.payload,g=typeof R=="function"?R.call(yl,j,g):R,g==null)break l;j=q({},j,g);break l;case 2:st=!0}}g=f.callback,g!==null&&(l.flags|=64,p&&(l.flags|=8192),p=n.callbacks,p===null?n.callbacks=[g]:p.push(g))}else p={lane:g,tag:f.tag,payload:f.payload,callback:f.callback,next:null},x===null?(y=x=p,r=j):x=x.next=p,i|=g;if(f=f.next,f===null){if(f=n.shared.pending,f===null)break;p=f,f=p.next,p.next=null,n.lastBaseUpdate=p,n.shared.pending=null}}while(!0);x===null&&(r=j),n.baseState=r,n.firstBaseUpdate=y,n.lastBaseUpdate=x,u===null&&(n.shared.lanes=0),yt|=i,l.lanes=i,l.memoizedState=j}}function Ys(l,e){if(typeof l!="function")throw Error(h(191,l));l.call(e)}function Xs(l,e){var t=l.callbacks;if(t!==null)for(l.callbacks=null,l=0;l<t.length;l++)Ys(t[l],e)}var ha=s(null),au=s(0);function Qs(l,e){l=Ie,M(au,l),M(ha,e),Ie=l|e.baseLanes}function Ki(){M(au,Ie),M(ha,ha.current)}function Ji(){Ie=au.current,b(ha),b(au)}var ve=s(null),Ne=null;function dt(l){var e=l.alternate;M(Ul,Ul.current&1),M(ve,l),Ne===null&&(e===null||ha.current!==null||e.memoizedState!==null)&&(Ne=l)}function ki(l){M(Ul,Ul.current),M(ve,l),Ne===null&&(Ne=l)}function Zs(l){l.tag===22?(M(Ul,Ul.current),M(ve,l),Ne===null&&(Ne=l)):mt()}function mt(){M(Ul,Ul.current),M(ve,ve.current)}function ye(l){b(ve),Ne===l&&(Ne=null),b(Ul)}var Ul=s(0);function nu(l){for(var e=l;e!==null;){if(e.tag===13){var t=e.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||Pc(t)||lf(t)))return e}else if(e.tag===19&&(e.memoizedProps.revealOrder==="forwards"||e.memoizedProps.revealOrder==="backwards"||e.memoizedProps.revealOrder==="unstable_legacy-backwards"||e.memoizedProps.revealOrder==="together")){if((e.flags&128)!==0)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===l)break;for(;e.sibling===null;){if(e.return===null||e.return===l)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var Ve=0,W=null,hl=null,Gl=null,uu=!1,va=!1,Zt=!1,iu=0,ln=0,ya=null,Fm=0;function _l(){throw Error(h(321))}function wi(l,e){if(e===null)return!1;for(var t=0;t<e.length&&t<l.length;t++)if(!me(l[t],e[t]))return!1;return!0}function Fi(l,e,t,a,n,u){return Ve=u,W=e,e.memoizedState=null,e.updateQueue=null,e.lanes=0,T.H=l===null||l.memoizedState===null?Eo:oc,Zt=!1,u=t(a,n),Zt=!1,va&&(u=Vs(e,t,a,n)),Ls(l),u}function Ls(l){T.H=an;var e=hl!==null&&hl.next!==null;if(Ve=0,Gl=hl=W=null,uu=!1,ln=0,ya=null,e)throw Error(h(300));l===null||Yl||(l=l.dependencies,l!==null&&Wn(l)&&(Yl=!0))}function Vs(l,e,t,a){W=l;var n=0;do{if(va&&(ya=null),ln=0,va=!1,25<=n)throw Error(h(301));if(n+=1,Gl=hl=null,l.updateQueue!=null){var u=l.updateQueue;u.lastEffect=null,u.events=null,u.stores=null,u.memoCache!=null&&(u.memoCache.index=0)}T.H=No,u=e(t,a)}while(va);return u}function Wm(){var l=T.H,e=l.useState()[0];return e=typeof e.then=="function"?en(e):e,l=l.useState()[0],(hl!==null?hl.memoizedState:null)!==l&&(W.flags|=1024),e}function Wi(){var l=iu!==0;return iu=0,l}function $i(l,e,t){e.updateQueue=l.updateQueue,e.flags&=-2053,l.lanes&=~t}function Ii(l){if(uu){for(l=l.memoizedState;l!==null;){var e=l.queue;e!==null&&(e.pending=null),l=l.next}uu=!1}Ve=0,Gl=hl=W=null,va=!1,ln=iu=0,ya=null}function le(){var l={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Gl===null?W.memoizedState=Gl=l:Gl=Gl.next=l,Gl}function Rl(){if(hl===null){var l=W.alternate;l=l!==null?l.memoizedState:null}else l=hl.next;var e=Gl===null?W.memoizedState:Gl.next;if(e!==null)Gl=e,hl=l;else{if(l===null)throw W.alternate===null?Error(h(467)):Error(h(310));hl=l,l={memoizedState:hl.memoizedState,baseState:hl.baseState,baseQueue:hl.baseQueue,queue:hl.queue,next:null},Gl===null?W.memoizedState=Gl=l:Gl=Gl.next=l}return Gl}function cu(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function en(l){var e=ln;return ln+=1,ya===null&&(ya=[]),l=Rs(ya,l,e),e=W,(Gl===null?e.memoizedState:Gl.next)===null&&(e=e.alternate,T.H=e===null||e.memoizedState===null?Eo:oc),l}function fu(l){if(l!==null&&typeof l=="object"){if(typeof l.then=="function")return en(l);if(l.$$typeof===Sl)return kl(l)}throw Error(h(438,String(l)))}function Pi(l){var e=null,t=W.updateQueue;if(t!==null&&(e=t.memoCache),e==null){var a=W.alternate;a!==null&&(a=a.updateQueue,a!==null&&(a=a.memoCache,a!=null&&(e={data:a.data.map(function(n){return n.slice()}),index:0})))}if(e==null&&(e={data:[],index:0}),t===null&&(t=cu(),W.updateQueue=t),t.memoCache=e,t=e.data[e.index],t===void 0)for(t=e.data[e.index]=Array(l),a=0;a<l;a++)t[a]=Vl;return e.index++,t}function Ke(l,e){return typeof e=="function"?e(l):e}function su(l){var e=Rl();return lc(e,hl,l)}function lc(l,e,t){var a=l.queue;if(a===null)throw Error(h(311));a.lastRenderedReducer=t;var n=l.baseQueue,u=a.pending;if(u!==null){if(n!==null){var i=n.next;n.next=u.next,u.next=i}e.baseQueue=n=u,a.pending=null}if(u=l.baseState,n===null)l.memoizedState=u;else{e=n.next;var f=i=null,r=null,y=e,x=!1;do{var j=y.lane&-536870913;if(j!==y.lane?(el&j)===j:(Ve&j)===j){var g=y.revertLane;if(g===0)r!==null&&(r=r.next={lane:0,revertLane:0,gesture:null,action:y.action,hasEagerState:y.hasEagerState,eagerState:y.eagerState,next:null}),j===oa&&(x=!0);else if((Ve&g)===g){y=y.next,g===oa&&(x=!0);continue}else j={lane:0,revertLane:y.revertLane,gesture:null,action:y.action,hasEagerState:y.hasEagerState,eagerState:y.eagerState,next:null},r===null?(f=r=j,i=u):r=r.next=j,W.lanes|=g,yt|=g;j=y.action,Zt&&t(u,j),u=y.hasEagerState?y.eagerState:t(u,j)}else g={lane:j,revertLane:y.revertLane,gesture:y.gesture,action:y.action,hasEagerState:y.hasEagerState,eagerState:y.eagerState,next:null},r===null?(f=r=g,i=u):r=r.next=g,W.lanes|=j,yt|=j;y=y.next}while(y!==null&&y!==e);if(r===null?i=u:r.next=f,!me(u,l.memoizedState)&&(Yl=!0,x&&(t=ra,t!==null)))throw t;l.memoizedState=u,l.baseState=i,l.baseQueue=r,a.lastRenderedState=u}return n===null&&(a.lanes=0),[l.memoizedState,a.dispatch]}function ec(l){var e=Rl(),t=e.queue;if(t===null)throw Error(h(311));t.lastRenderedReducer=l;var a=t.dispatch,n=t.pending,u=e.memoizedState;if(n!==null){t.pending=null;var i=n=n.next;do u=l(u,i.action),i=i.next;while(i!==n);me(u,e.memoizedState)||(Yl=!0),e.memoizedState=u,e.baseQueue===null&&(e.baseState=u),t.lastRenderedState=u}return[u,a]}function Ks(l,e,t){var a=W,n=Rl(),u=al;if(u){if(t===void 0)throw Error(h(407));t=t()}else t=e();var i=!me((hl||n).memoizedState,t);if(i&&(n.memoizedState=t,Yl=!0),n=n.queue,nc(ws.bind(null,a,n,l),[l]),n.getSnapshot!==e||i||Gl!==null&&Gl.memoizedState.tag&1){if(a.flags|=2048,ga(9,{destroy:void 0},ks.bind(null,a,n,t,e),null),bl===null)throw Error(h(349));u||(Ve&127)!==0||Js(a,e,t)}return t}function Js(l,e,t){l.flags|=16384,l={getSnapshot:e,value:t},e=W.updateQueue,e===null?(e=cu(),W.updateQueue=e,e.stores=[l]):(t=e.stores,t===null?e.stores=[l]:t.push(l))}function ks(l,e,t,a){e.value=t,e.getSnapshot=a,Fs(e)&&Ws(l)}function ws(l,e,t){return t(function(){Fs(e)&&Ws(l)})}function Fs(l){var e=l.getSnapshot;l=l.value;try{var t=e();return!me(l,t)}catch{return!0}}function Ws(l){var e=Ut(l,2);e!==null&&fe(e,l,2)}function tc(l){var e=le();if(typeof l=="function"){var t=l;if(l=t(),Zt){tt(!0);try{t()}finally{tt(!1)}}}return e.memoizedState=e.baseState=l,e.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ke,lastRenderedState:l},e}function $s(l,e,t,a){return l.baseState=t,lc(l,hl,typeof a=="function"?a:Ke)}function $m(l,e,t,a,n){if(du(l))throw Error(h(485));if(l=e.action,l!==null){var u={payload:n,action:l,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(i){u.listeners.push(i)}};T.T!==null?t(!0):u.isTransition=!1,a(u),t=e.pending,t===null?(u.next=e.pending=u,Is(e,u)):(u.next=t.next,e.pending=t.next=u)}}function Is(l,e){var t=e.action,a=e.payload,n=l.state;if(e.isTransition){var u=T.T,i={};T.T=i;try{var f=t(n,a),r=T.S;r!==null&&r(i,f),Ps(l,e,f)}catch(y){ac(l,e,y)}finally{u!==null&&i.types!==null&&(u.types=i.types),T.T=u}}else try{u=t(n,a),Ps(l,e,u)}catch(y){ac(l,e,y)}}function Ps(l,e,t){t!==null&&typeof t=="object"&&typeof t.then=="function"?t.then(function(a){lo(l,e,a)},function(a){return ac(l,e,a)}):lo(l,e,t)}function lo(l,e,t){e.status="fulfilled",e.value=t,eo(e),l.state=t,e=l.pending,e!==null&&(t=e.next,t===e?l.pending=null:(t=t.next,e.next=t,Is(l,t)))}function ac(l,e,t){var a=l.pending;if(l.pending=null,a!==null){a=a.next;do e.status="rejected",e.reason=t,eo(e),e=e.next;while(e!==a)}l.action=null}function eo(l){l=l.listeners;for(var e=0;e<l.length;e++)(0,l[e])()}function to(l,e){return e}function ao(l,e){if(al){var t=bl.formState;if(t!==null){l:{var a=W;if(al){if(Al){e:{for(var n=Al,u=Ee;n.nodeType!==8;){if(!u){n=null;break e}if(n=Me(n.nextSibling),n===null){n=null;break e}}u=n.data,n=u==="F!"||u==="F"?n:null}if(n){Al=Me(n.nextSibling),a=n.data==="F!";break l}}ct(a)}a=!1}a&&(e=t[0])}}return t=le(),t.memoizedState=t.baseState=e,a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:to,lastRenderedState:e},t.queue=a,t=Ao.bind(null,W,a),a.dispatch=t,a=tc(!1),u=sc.bind(null,W,!1,a.queue),a=le(),n={state:e,dispatch:null,action:l,pending:null},a.queue=n,t=$m.bind(null,W,n,u,t),n.dispatch=t,a.memoizedState=l,[e,t,!1]}function no(l){var e=Rl();return uo(e,hl,l)}function uo(l,e,t){if(e=lc(l,e,to)[0],l=su(Ke)[0],typeof e=="object"&&e!==null&&typeof e.then=="function")try{var a=en(e)}catch(i){throw i===da?Pn:i}else a=e;e=Rl();var n=e.queue,u=n.dispatch;return t!==e.memoizedState&&(W.flags|=2048,ga(9,{destroy:void 0},Im.bind(null,n,t),null)),[a,u,l]}function Im(l,e){l.action=e}function io(l){var e=Rl(),t=hl;if(t!==null)return uo(e,t,l);Rl(),e=e.memoizedState,t=Rl();var a=t.queue.dispatch;return t.memoizedState=l,[e,a,!1]}function ga(l,e,t,a){return l={tag:l,create:t,deps:a,inst:e,next:null},e=W.updateQueue,e===null&&(e=cu(),W.updateQueue=e),t=e.lastEffect,t===null?e.lastEffect=l.next=l:(a=t.next,t.next=l,l.next=a,e.lastEffect=l),l}function co(){return Rl().memoizedState}function ou(l,e,t,a){var n=le();W.flags|=l,n.memoizedState=ga(1|e,{destroy:void 0},t,a===void 0?null:a)}function ru(l,e,t,a){var n=Rl();a=a===void 0?null:a;var u=n.memoizedState.inst;hl!==null&&a!==null&&wi(a,hl.memoizedState.deps)?n.memoizedState=ga(e,u,t,a):(W.flags|=l,n.memoizedState=ga(1|e,u,t,a))}function fo(l,e){ou(8390656,8,l,e)}function nc(l,e){ru(2048,8,l,e)}function Pm(l){W.flags|=4;var e=W.updateQueue;if(e===null)e=cu(),W.updateQueue=e,e.events=[l];else{var t=e.events;t===null?e.events=[l]:t.push(l)}}function so(l){var e=Rl().memoizedState;return Pm({ref:e,nextImpl:l}),function(){if((ol&2)!==0)throw Error(h(440));return e.impl.apply(void 0,arguments)}}function oo(l,e){return ru(4,2,l,e)}function ro(l,e){return ru(4,4,l,e)}function mo(l,e){if(typeof e=="function"){l=l();var t=e(l);return function(){typeof t=="function"?t():e(null)}}if(e!=null)return l=l(),e.current=l,function(){e.current=null}}function ho(l,e,t){t=t!=null?t.concat([l]):null,ru(4,4,mo.bind(null,e,l),t)}function uc(){}function vo(l,e){var t=Rl();e=e===void 0?null:e;var a=t.memoizedState;return e!==null&&wi(e,a[1])?a[0]:(t.memoizedState=[l,e],l)}function yo(l,e){var t=Rl();e=e===void 0?null:e;var a=t.memoizedState;if(e!==null&&wi(e,a[1]))return a[0];if(a=l(),Zt){tt(!0);try{l()}finally{tt(!1)}}return t.memoizedState=[a,e],a}function ic(l,e,t){return t===void 0||(Ve&1073741824)!==0&&(el&261930)===0?l.memoizedState=e:(l.memoizedState=t,l=gr(),W.lanes|=l,yt|=l,t)}function go(l,e,t,a){return me(t,e)?t:ha.current!==null?(l=ic(l,t,a),me(l,e)||(Yl=!0),l):(Ve&42)===0||(Ve&1073741824)!==0&&(el&261930)===0?(Yl=!0,l.memoizedState=t):(l=gr(),W.lanes|=l,yt|=l,e)}function po(l,e,t,a,n){var u=C.p;C.p=u!==0&&8>u?u:8;var i=T.T,f={};T.T=f,sc(l,!1,e,t);try{var r=n(),y=T.S;if(y!==null&&y(f,r),r!==null&&typeof r=="object"&&typeof r.then=="function"){var x=wm(r,a);tn(l,e,x,be(l))}else tn(l,e,a,be(l))}catch(j){tn(l,e,{then:function(){},status:"rejected",reason:j},be())}finally{C.p=u,i!==null&&f.types!==null&&(i.types=f.types),T.T=i}}function lh(){}function cc(l,e,t,a){if(l.tag!==5)throw Error(h(476));var n=bo(l).queue;po(l,n,e,J,t===null?lh:function(){return So(l),t(a)})}function bo(l){var e=l.memoizedState;if(e!==null)return e;e={memoizedState:J,baseState:J,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ke,lastRenderedState:J},next:null};var t={};return e.next={memoizedState:t,baseState:t,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ke,lastRenderedState:t},next:null},l.memoizedState=e,l=l.alternate,l!==null&&(l.memoizedState=e),e}function So(l){var e=bo(l);e.next===null&&(e=l.alternate.memoizedState),tn(l,e.next.queue,{},be())}function fc(){return kl(Sn)}function xo(){return Rl().memoizedState}function To(){return Rl().memoizedState}function eh(l){for(var e=l.return;e!==null;){switch(e.tag){case 24:case 3:var t=be();l=ot(t);var a=rt(e,l,t);a!==null&&(fe(a,e,t),$a(a,e,t)),e={cache:qi()},l.payload=e;return}e=e.return}}function th(l,e,t){var a=be();t={lane:a,revertLane:0,gesture:null,action:t,hasEagerState:!1,eagerState:null,next:null},du(l)?jo(e,t):(t=Ei(l,e,t,a),t!==null&&(fe(t,l,a),zo(t,e,a)))}function Ao(l,e,t){var a=be();tn(l,e,t,a)}function tn(l,e,t,a){var n={lane:a,revertLane:0,gesture:null,action:t,hasEagerState:!1,eagerState:null,next:null};if(du(l))jo(e,n);else{var u=l.alternate;if(l.lanes===0&&(u===null||u.lanes===0)&&(u=e.lastRenderedReducer,u!==null))try{var i=e.lastRenderedState,f=u(i,t);if(n.hasEagerState=!0,n.eagerState=f,me(f,i))return Jn(l,e,n,0),bl===null&&Kn(),!1}catch{}finally{}if(t=Ei(l,e,n,a),t!==null)return fe(t,l,a),zo(t,e,a),!0}return!1}function sc(l,e,t,a){if(a={lane:2,revertLane:Qc(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},du(l)){if(e)throw Error(h(479))}else e=Ei(l,t,a,2),e!==null&&fe(e,l,2)}function du(l){var e=l.alternate;return l===W||e!==null&&e===W}function jo(l,e){va=uu=!0;var t=l.pending;t===null?e.next=e:(e.next=t.next,t.next=e),l.pending=e}function zo(l,e,t){if((t&4194048)!==0){var a=e.lanes;a&=l.pendingLanes,t|=a,e.lanes=t,Cf(l,t)}}var an={readContext:kl,use:fu,useCallback:_l,useContext:_l,useEffect:_l,useImperativeHandle:_l,useLayoutEffect:_l,useInsertionEffect:_l,useMemo:_l,useReducer:_l,useRef:_l,useState:_l,useDebugValue:_l,useDeferredValue:_l,useTransition:_l,useSyncExternalStore:_l,useId:_l,useHostTransitionStatus:_l,useFormState:_l,useActionState:_l,useOptimistic:_l,useMemoCache:_l,useCacheRefresh:_l};an.useEffectEvent=_l;var Eo={readContext:kl,use:fu,useCallback:function(l,e){return le().memoizedState=[l,e===void 0?null:e],l},useContext:kl,useEffect:fo,useImperativeHandle:function(l,e,t){t=t!=null?t.concat([l]):null,ou(4194308,4,mo.bind(null,e,l),t)},useLayoutEffect:function(l,e){return ou(4194308,4,l,e)},useInsertionEffect:function(l,e){ou(4,2,l,e)},useMemo:function(l,e){var t=le();e=e===void 0?null:e;var a=l();if(Zt){tt(!0);try{l()}finally{tt(!1)}}return t.memoizedState=[a,e],a},useReducer:function(l,e,t){var a=le();if(t!==void 0){var n=t(e);if(Zt){tt(!0);try{t(e)}finally{tt(!1)}}}else n=e;return a.memoizedState=a.baseState=n,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:n},a.queue=l,l=l.dispatch=th.bind(null,W,l),[a.memoizedState,l]},useRef:function(l){var e=le();return l={current:l},e.memoizedState=l},useState:function(l){l=tc(l);var e=l.queue,t=Ao.bind(null,W,e);return e.dispatch=t,[l.memoizedState,t]},useDebugValue:uc,useDeferredValue:function(l,e){var t=le();return ic(t,l,e)},useTransition:function(){var l=tc(!1);return l=po.bind(null,W,l.queue,!0,!1),le().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,e,t){var a=W,n=le();if(al){if(t===void 0)throw Error(h(407));t=t()}else{if(t=e(),bl===null)throw Error(h(349));(el&127)!==0||Js(a,e,t)}n.memoizedState=t;var u={value:t,getSnapshot:e};return n.queue=u,fo(ws.bind(null,a,u,l),[l]),a.flags|=2048,ga(9,{destroy:void 0},ks.bind(null,a,u,t,e),null),t},useId:function(){var l=le(),e=bl.identifierPrefix;if(al){var t=Re,a=Ue;t=(a&~(1<<32-de(a)-1)).toString(32)+t,e="_"+e+"R_"+t,t=iu++,0<t&&(e+="H"+t.toString(32)),e+="_"}else t=Fm++,e="_"+e+"r_"+t.toString(32)+"_";return l.memoizedState=e},useHostTransitionStatus:fc,useFormState:ao,useActionState:ao,useOptimistic:function(l){var e=le();e.memoizedState=e.baseState=l;var t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return e.queue=t,e=sc.bind(null,W,!0,t),t.dispatch=e,[l,e]},useMemoCache:Pi,useCacheRefresh:function(){return le().memoizedState=eh.bind(null,W)},useEffectEvent:function(l){var e=le(),t={impl:l};return e.memoizedState=t,function(){if((ol&2)!==0)throw Error(h(440));return t.impl.apply(void 0,arguments)}}},oc={readContext:kl,use:fu,useCallback:vo,useContext:kl,useEffect:nc,useImperativeHandle:ho,useInsertionEffect:oo,useLayoutEffect:ro,useMemo:yo,useReducer:su,useRef:co,useState:function(){return su(Ke)},useDebugValue:uc,useDeferredValue:function(l,e){var t=Rl();return go(t,hl.memoizedState,l,e)},useTransition:function(){var l=su(Ke)[0],e=Rl().memoizedState;return[typeof l=="boolean"?l:en(l),e]},useSyncExternalStore:Ks,useId:xo,useHostTransitionStatus:fc,useFormState:no,useActionState:no,useOptimistic:function(l,e){var t=Rl();return $s(t,hl,l,e)},useMemoCache:Pi,useCacheRefresh:To};oc.useEffectEvent=so;var No={readContext:kl,use:fu,useCallback:vo,useContext:kl,useEffect:nc,useImperativeHandle:ho,useInsertionEffect:oo,useLayoutEffect:ro,useMemo:yo,useReducer:ec,useRef:co,useState:function(){return ec(Ke)},useDebugValue:uc,useDeferredValue:function(l,e){var t=Rl();return hl===null?ic(t,l,e):go(t,hl.memoizedState,l,e)},useTransition:function(){var l=ec(Ke)[0],e=Rl().memoizedState;return[typeof l=="boolean"?l:en(l),e]},useSyncExternalStore:Ks,useId:xo,useHostTransitionStatus:fc,useFormState:io,useActionState:io,useOptimistic:function(l,e){var t=Rl();return hl!==null?$s(t,hl,l,e):(t.baseState=l,[l,t.queue.dispatch])},useMemoCache:Pi,useCacheRefresh:To};No.useEffectEvent=so;function rc(l,e,t,a){e=l.memoizedState,t=t(a,e),t=t==null?e:q({},e,t),l.memoizedState=t,l.lanes===0&&(l.updateQueue.baseState=t)}var dc={enqueueSetState:function(l,e,t){l=l._reactInternals;var a=be(),n=ot(a);n.payload=e,t!=null&&(n.callback=t),e=rt(l,n,a),e!==null&&(fe(e,l,a),$a(e,l,a))},enqueueReplaceState:function(l,e,t){l=l._reactInternals;var a=be(),n=ot(a);n.tag=1,n.payload=e,t!=null&&(n.callback=t),e=rt(l,n,a),e!==null&&(fe(e,l,a),$a(e,l,a))},enqueueForceUpdate:function(l,e){l=l._reactInternals;var t=be(),a=ot(t);a.tag=2,e!=null&&(a.callback=e),e=rt(l,a,t),e!==null&&(fe(e,l,t),$a(e,l,t))}};function Mo(l,e,t,a,n,u,i){return l=l.stateNode,typeof l.shouldComponentUpdate=="function"?l.shouldComponentUpdate(a,u,i):e.prototype&&e.prototype.isPureReactComponent?!La(t,a)||!La(n,u):!0}function Co(l,e,t,a){l=e.state,typeof e.componentWillReceiveProps=="function"&&e.componentWillReceiveProps(t,a),typeof e.UNSAFE_componentWillReceiveProps=="function"&&e.UNSAFE_componentWillReceiveProps(t,a),e.state!==l&&dc.enqueueReplaceState(e,e.state,null)}function Lt(l,e){var t=e;if("ref"in e){t={};for(var a in e)a!=="ref"&&(t[a]=e[a])}if(l=l.defaultProps){t===e&&(t=q({},t));for(var n in l)t[n]===void 0&&(t[n]=l[n])}return t}function _o(l){Vn(l)}function Oo(l){console.error(l)}function Do(l){Vn(l)}function mu(l,e){try{var t=l.onUncaughtError;t(e.value,{componentStack:e.stack})}catch(a){setTimeout(function(){throw a})}}function Uo(l,e,t){try{var a=l.onCaughtError;a(t.value,{componentStack:t.stack,errorBoundary:e.tag===1?e.stateNode:null})}catch(n){setTimeout(function(){throw n})}}function mc(l,e,t){return t=ot(t),t.tag=3,t.payload={element:null},t.callback=function(){mu(l,e)},t}function Ro(l){return l=ot(l),l.tag=3,l}function Ho(l,e,t,a){var n=t.type.getDerivedStateFromError;if(typeof n=="function"){var u=a.value;l.payload=function(){return n(u)},l.callback=function(){Uo(e,t,a)}}var i=t.stateNode;i!==null&&typeof i.componentDidCatch=="function"&&(l.callback=function(){Uo(e,t,a),typeof n!="function"&&(gt===null?gt=new Set([this]):gt.add(this));var f=a.stack;this.componentDidCatch(a.value,{componentStack:f!==null?f:""})})}function ah(l,e,t,a,n){if(t.flags|=32768,a!==null&&typeof a=="object"&&typeof a.then=="function"){if(e=t.alternate,e!==null&&sa(e,t,n,!0),t=ve.current,t!==null){switch(t.tag){case 31:case 13:return Ne===null?zu():t.alternate===null&&Ol===0&&(Ol=3),t.flags&=-257,t.flags|=65536,t.lanes=n,a===lu?t.flags|=16384:(e=t.updateQueue,e===null?t.updateQueue=new Set([a]):e.add(a),Gc(l,a,n)),!1;case 22:return t.flags|=65536,a===lu?t.flags|=16384:(e=t.updateQueue,e===null?(e={transitions:null,markerInstances:null,retryQueue:new Set([a])},t.updateQueue=e):(t=e.retryQueue,t===null?e.retryQueue=new Set([a]):t.add(a)),Gc(l,a,n)),!1}throw Error(h(435,t.tag))}return Gc(l,a,n),zu(),!1}if(al)return e=ve.current,e!==null?((e.flags&65536)===0&&(e.flags|=256),e.flags|=65536,e.lanes=n,a!==Di&&(l=Error(h(422),{cause:a}),Ja(Ae(l,t)))):(a!==Di&&(e=Error(h(423),{cause:a}),Ja(Ae(e,t))),l=l.current.alternate,l.flags|=65536,n&=-n,l.lanes|=n,a=Ae(a,t),n=mc(l.stateNode,a,n),Li(l,n),Ol!==4&&(Ol=2)),!1;var u=Error(h(520),{cause:a});if(u=Ae(u,t),dn===null?dn=[u]:dn.push(u),Ol!==4&&(Ol=2),e===null)return!0;a=Ae(a,t),t=e;do{switch(t.tag){case 3:return t.flags|=65536,l=n&-n,t.lanes|=l,l=mc(t.stateNode,a,l),Li(t,l),!1;case 1:if(e=t.type,u=t.stateNode,(t.flags&128)===0&&(typeof e.getDerivedStateFromError=="function"||u!==null&&typeof u.componentDidCatch=="function"&&(gt===null||!gt.has(u))))return t.flags|=65536,n&=-n,t.lanes|=n,n=Ro(n),Ho(n,l,t,a),Li(t,n),!1}t=t.return}while(t!==null);return!1}var hc=Error(h(461)),Yl=!1;function wl(l,e,t,a){e.child=l===null?Gs(e,null,t,a):Qt(e,l.child,t,a)}function Bo(l,e,t,a,n){t=t.render;var u=e.ref;if("ref"in a){var i={};for(var f in a)f!=="ref"&&(i[f]=a[f])}else i=a;return qt(e),a=Fi(l,e,t,i,u,n),f=Wi(),l!==null&&!Yl?($i(l,e,n),Je(l,e,n)):(al&&f&&_i(e),e.flags|=1,wl(l,e,a,n),e.child)}function qo(l,e,t,a,n){if(l===null){var u=t.type;return typeof u=="function"&&!Ni(u)&&u.defaultProps===void 0&&t.compare===null?(e.tag=15,e.type=u,Go(l,e,u,a,n)):(l=wn(t.type,null,a,e,e.mode,n),l.ref=e.ref,l.return=e,e.child=l)}if(u=l.child,!Tc(l,n)){var i=u.memoizedProps;if(t=t.compare,t=t!==null?t:La,t(i,a)&&l.ref===e.ref)return Je(l,e,n)}return e.flags|=1,l=Xe(u,a),l.ref=e.ref,l.return=e,e.child=l}function Go(l,e,t,a,n){if(l!==null){var u=l.memoizedProps;if(La(u,a)&&l.ref===e.ref)if(Yl=!1,e.pendingProps=a=u,Tc(l,n))(l.flags&131072)!==0&&(Yl=!0);else return e.lanes=l.lanes,Je(l,e,n)}return vc(l,e,t,a,n)}function Yo(l,e,t,a){var n=a.children,u=l!==null?l.memoizedState:null;if(l===null&&e.stateNode===null&&(e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),a.mode==="hidden"){if((e.flags&128)!==0){if(u=u!==null?u.baseLanes|t:t,l!==null){for(a=e.child=l.child,n=0;a!==null;)n=n|a.lanes|a.childLanes,a=a.sibling;a=n&~u}else a=0,e.child=null;return Xo(l,e,u,t,a)}if((t&536870912)!==0)e.memoizedState={baseLanes:0,cachePool:null},l!==null&&In(e,u!==null?u.cachePool:null),u!==null?Qs(e,u):Ki(),Zs(e);else return a=e.lanes=536870912,Xo(l,e,u!==null?u.baseLanes|t:t,t,a)}else u!==null?(In(e,u.cachePool),Qs(e,u),mt(),e.memoizedState=null):(l!==null&&In(e,null),Ki(),mt());return wl(l,e,n,t),e.child}function nn(l,e){return l!==null&&l.tag===22||e.stateNode!==null||(e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),e.sibling}function Xo(l,e,t,a,n){var u=Yi();return u=u===null?null:{parent:ql._currentValue,pool:u},e.memoizedState={baseLanes:t,cachePool:u},l!==null&&In(e,null),Ki(),Zs(e),l!==null&&sa(l,e,a,!0),e.childLanes=n,null}function hu(l,e){return e=yu({mode:e.mode,children:e.children},l.mode),e.ref=l.ref,l.child=e,e.return=l,e}function Qo(l,e,t){return Qt(e,l.child,null,t),l=hu(e,e.pendingProps),l.flags|=2,ye(e),e.memoizedState=null,l}function nh(l,e,t){var a=e.pendingProps,n=(e.flags&128)!==0;if(e.flags&=-129,l===null){if(al){if(a.mode==="hidden")return l=hu(e,a),e.lanes=536870912,nn(null,l);if(ki(e),(l=Al)?(l=Pr(l,Ee),l=l!==null&&l.data==="&"?l:null,l!==null&&(e.memoizedState={dehydrated:l,treeContext:ut!==null?{id:Ue,overflow:Re}:null,retryLane:536870912,hydrationErrors:null},t=As(l),t.return=e,e.child=t,Jl=e,Al=null)):l=null,l===null)throw ct(e);return e.lanes=536870912,null}return hu(e,a)}var u=l.memoizedState;if(u!==null){var i=u.dehydrated;if(ki(e),n)if(e.flags&256)e.flags&=-257,e=Qo(l,e,t);else if(e.memoizedState!==null)e.child=l.child,e.flags|=128,e=null;else throw Error(h(558));else if(Yl||sa(l,e,t,!1),n=(t&l.childLanes)!==0,Yl||n){if(a=bl,a!==null&&(i=_f(a,t),i!==0&&i!==u.retryLane))throw u.retryLane=i,Ut(l,i),fe(a,l,i),hc;zu(),e=Qo(l,e,t)}else l=u.treeContext,Al=Me(i.nextSibling),Jl=e,al=!0,it=null,Ee=!1,l!==null&&Es(e,l),e=hu(e,a),e.flags|=4096;return e}return l=Xe(l.child,{mode:a.mode,children:a.children}),l.ref=e.ref,e.child=l,l.return=e,l}function vu(l,e){var t=e.ref;if(t===null)l!==null&&l.ref!==null&&(e.flags|=4194816);else{if(typeof t!="function"&&typeof t!="object")throw Error(h(284));(l===null||l.ref!==t)&&(e.flags|=4194816)}}function vc(l,e,t,a,n){return qt(e),t=Fi(l,e,t,a,void 0,n),a=Wi(),l!==null&&!Yl?($i(l,e,n),Je(l,e,n)):(al&&a&&_i(e),e.flags|=1,wl(l,e,t,n),e.child)}function Zo(l,e,t,a,n,u){return qt(e),e.updateQueue=null,t=Vs(e,a,t,n),Ls(l),a=Wi(),l!==null&&!Yl?($i(l,e,u),Je(l,e,u)):(al&&a&&_i(e),e.flags|=1,wl(l,e,t,u),e.child)}function Lo(l,e,t,a,n){if(qt(e),e.stateNode===null){var u=ua,i=t.contextType;typeof i=="object"&&i!==null&&(u=kl(i)),u=new t(a,u),e.memoizedState=u.state!==null&&u.state!==void 0?u.state:null,u.updater=dc,e.stateNode=u,u._reactInternals=e,u=e.stateNode,u.props=a,u.state=e.memoizedState,u.refs={},Qi(e),i=t.contextType,u.context=typeof i=="object"&&i!==null?kl(i):ua,u.state=e.memoizedState,i=t.getDerivedStateFromProps,typeof i=="function"&&(rc(e,t,i,a),u.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof u.getSnapshotBeforeUpdate=="function"||typeof u.UNSAFE_componentWillMount!="function"&&typeof u.componentWillMount!="function"||(i=u.state,typeof u.componentWillMount=="function"&&u.componentWillMount(),typeof u.UNSAFE_componentWillMount=="function"&&u.UNSAFE_componentWillMount(),i!==u.state&&dc.enqueueReplaceState(u,u.state,null),Pa(e,a,u,n),Ia(),u.state=e.memoizedState),typeof u.componentDidMount=="function"&&(e.flags|=4194308),a=!0}else if(l===null){u=e.stateNode;var f=e.memoizedProps,r=Lt(t,f);u.props=r;var y=u.context,x=t.contextType;i=ua,typeof x=="object"&&x!==null&&(i=kl(x));var j=t.getDerivedStateFromProps;x=typeof j=="function"||typeof u.getSnapshotBeforeUpdate=="function",f=e.pendingProps!==f,x||typeof u.UNSAFE_componentWillReceiveProps!="function"&&typeof u.componentWillReceiveProps!="function"||(f||y!==i)&&Co(e,u,a,i),st=!1;var g=e.memoizedState;u.state=g,Pa(e,a,u,n),Ia(),y=e.memoizedState,f||g!==y||st?(typeof j=="function"&&(rc(e,t,j,a),y=e.memoizedState),(r=st||Mo(e,t,r,a,g,y,i))?(x||typeof u.UNSAFE_componentWillMount!="function"&&typeof u.componentWillMount!="function"||(typeof u.componentWillMount=="function"&&u.componentWillMount(),typeof u.UNSAFE_componentWillMount=="function"&&u.UNSAFE_componentWillMount()),typeof u.componentDidMount=="function"&&(e.flags|=4194308)):(typeof u.componentDidMount=="function"&&(e.flags|=4194308),e.memoizedProps=a,e.memoizedState=y),u.props=a,u.state=y,u.context=i,a=r):(typeof u.componentDidMount=="function"&&(e.flags|=4194308),a=!1)}else{u=e.stateNode,Zi(l,e),i=e.memoizedProps,x=Lt(t,i),u.props=x,j=e.pendingProps,g=u.context,y=t.contextType,r=ua,typeof y=="object"&&y!==null&&(r=kl(y)),f=t.getDerivedStateFromProps,(y=typeof f=="function"||typeof u.getSnapshotBeforeUpdate=="function")||typeof u.UNSAFE_componentWillReceiveProps!="function"&&typeof u.componentWillReceiveProps!="function"||(i!==j||g!==r)&&Co(e,u,a,r),st=!1,g=e.memoizedState,u.state=g,Pa(e,a,u,n),Ia();var p=e.memoizedState;i!==j||g!==p||st||l!==null&&l.dependencies!==null&&Wn(l.dependencies)?(typeof f=="function"&&(rc(e,t,f,a),p=e.memoizedState),(x=st||Mo(e,t,x,a,g,p,r)||l!==null&&l.dependencies!==null&&Wn(l.dependencies))?(y||typeof u.UNSAFE_componentWillUpdate!="function"&&typeof u.componentWillUpdate!="function"||(typeof u.componentWillUpdate=="function"&&u.componentWillUpdate(a,p,r),typeof u.UNSAFE_componentWillUpdate=="function"&&u.UNSAFE_componentWillUpdate(a,p,r)),typeof u.componentDidUpdate=="function"&&(e.flags|=4),typeof u.getSnapshotBeforeUpdate=="function"&&(e.flags|=1024)):(typeof u.componentDidUpdate!="function"||i===l.memoizedProps&&g===l.memoizedState||(e.flags|=4),typeof u.getSnapshotBeforeUpdate!="function"||i===l.memoizedProps&&g===l.memoizedState||(e.flags|=1024),e.memoizedProps=a,e.memoizedState=p),u.props=a,u.state=p,u.context=r,a=x):(typeof u.componentDidUpdate!="function"||i===l.memoizedProps&&g===l.memoizedState||(e.flags|=4),typeof u.getSnapshotBeforeUpdate!="function"||i===l.memoizedProps&&g===l.memoizedState||(e.flags|=1024),a=!1)}return u=a,vu(l,e),a=(e.flags&128)!==0,u||a?(u=e.stateNode,t=a&&typeof t.getDerivedStateFromError!="function"?null:u.render(),e.flags|=1,l!==null&&a?(e.child=Qt(e,l.child,null,n),e.child=Qt(e,null,t,n)):wl(l,e,t,n),e.memoizedState=u.state,l=e.child):l=Je(l,e,n),l}function Vo(l,e,t,a){return Ht(),e.flags|=256,wl(l,e,t,a),e.child}var yc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function gc(l){return{baseLanes:l,cachePool:Ds()}}function pc(l,e,t){return l=l!==null?l.childLanes&~t:0,e&&(l|=pe),l}function Ko(l,e,t){var a=e.pendingProps,n=!1,u=(e.flags&128)!==0,i;if((i=u)||(i=l!==null&&l.memoizedState===null?!1:(Ul.current&2)!==0),i&&(n=!0,e.flags&=-129),i=(e.flags&32)!==0,e.flags&=-33,l===null){if(al){if(n?dt(e):mt(),(l=Al)?(l=Pr(l,Ee),l=l!==null&&l.data!=="&"?l:null,l!==null&&(e.memoizedState={dehydrated:l,treeContext:ut!==null?{id:Ue,overflow:Re}:null,retryLane:536870912,hydrationErrors:null},t=As(l),t.return=e,e.child=t,Jl=e,Al=null)):l=null,l===null)throw ct(e);return lf(l)?e.lanes=32:e.lanes=536870912,null}var f=a.children;return a=a.fallback,n?(mt(),n=e.mode,f=yu({mode:"hidden",children:f},n),a=Rt(a,n,t,null),f.return=e,a.return=e,f.sibling=a,e.child=f,a=e.child,a.memoizedState=gc(t),a.childLanes=pc(l,i,t),e.memoizedState=yc,nn(null,a)):(dt(e),bc(e,f))}var r=l.memoizedState;if(r!==null&&(f=r.dehydrated,f!==null)){if(u)e.flags&256?(dt(e),e.flags&=-257,e=Sc(l,e,t)):e.memoizedState!==null?(mt(),e.child=l.child,e.flags|=128,e=null):(mt(),f=a.fallback,n=e.mode,a=yu({mode:"visible",children:a.children},n),f=Rt(f,n,t,null),f.flags|=2,a.return=e,f.return=e,a.sibling=f,e.child=a,Qt(e,l.child,null,t),a=e.child,a.memoizedState=gc(t),a.childLanes=pc(l,i,t),e.memoizedState=yc,e=nn(null,a));else if(dt(e),lf(f)){if(i=f.nextSibling&&f.nextSibling.dataset,i)var y=i.dgst;i=y,a=Error(h(419)),a.stack="",a.digest=i,Ja({value:a,source:null,stack:null}),e=Sc(l,e,t)}else if(Yl||sa(l,e,t,!1),i=(t&l.childLanes)!==0,Yl||i){if(i=bl,i!==null&&(a=_f(i,t),a!==0&&a!==r.retryLane))throw r.retryLane=a,Ut(l,a),fe(i,l,a),hc;Pc(f)||zu(),e=Sc(l,e,t)}else Pc(f)?(e.flags|=192,e.child=l.child,e=null):(l=r.treeContext,Al=Me(f.nextSibling),Jl=e,al=!0,it=null,Ee=!1,l!==null&&Es(e,l),e=bc(e,a.children),e.flags|=4096);return e}return n?(mt(),f=a.fallback,n=e.mode,r=l.child,y=r.sibling,a=Xe(r,{mode:"hidden",children:a.children}),a.subtreeFlags=r.subtreeFlags&65011712,y!==null?f=Xe(y,f):(f=Rt(f,n,t,null),f.flags|=2),f.return=e,a.return=e,a.sibling=f,e.child=a,nn(null,a),a=e.child,f=l.child.memoizedState,f===null?f=gc(t):(n=f.cachePool,n!==null?(r=ql._currentValue,n=n.parent!==r?{parent:r,pool:r}:n):n=Ds(),f={baseLanes:f.baseLanes|t,cachePool:n}),a.memoizedState=f,a.childLanes=pc(l,i,t),e.memoizedState=yc,nn(l.child,a)):(dt(e),t=l.child,l=t.sibling,t=Xe(t,{mode:"visible",children:a.children}),t.return=e,t.sibling=null,l!==null&&(i=e.deletions,i===null?(e.deletions=[l],e.flags|=16):i.push(l)),e.child=t,e.memoizedState=null,t)}function bc(l,e){return e=yu({mode:"visible",children:e},l.mode),e.return=l,l.child=e}function yu(l,e){return l=he(22,l,null,e),l.lanes=0,l}function Sc(l,e,t){return Qt(e,l.child,null,t),l=bc(e,e.pendingProps.children),l.flags|=2,e.memoizedState=null,l}function Jo(l,e,t){l.lanes|=e;var a=l.alternate;a!==null&&(a.lanes|=e),Hi(l.return,e,t)}function xc(l,e,t,a,n,u){var i=l.memoizedState;i===null?l.memoizedState={isBackwards:e,rendering:null,renderingStartTime:0,last:a,tail:t,tailMode:n,treeForkCount:u}:(i.isBackwards=e,i.rendering=null,i.renderingStartTime=0,i.last=a,i.tail=t,i.tailMode=n,i.treeForkCount=u)}function ko(l,e,t){var a=e.pendingProps,n=a.revealOrder,u=a.tail;a=a.children;var i=Ul.current,f=(i&2)!==0;if(f?(i=i&1|2,e.flags|=128):i&=1,M(Ul,i),wl(l,e,a,t),a=al?Ka:0,!f&&l!==null&&(l.flags&128)!==0)l:for(l=e.child;l!==null;){if(l.tag===13)l.memoizedState!==null&&Jo(l,t,e);else if(l.tag===19)Jo(l,t,e);else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===e)break l;for(;l.sibling===null;){if(l.return===null||l.return===e)break l;l=l.return}l.sibling.return=l.return,l=l.sibling}switch(n){case"forwards":for(t=e.child,n=null;t!==null;)l=t.alternate,l!==null&&nu(l)===null&&(n=t),t=t.sibling;t=n,t===null?(n=e.child,e.child=null):(n=t.sibling,t.sibling=null),xc(e,!1,n,t,u,a);break;case"backwards":case"unstable_legacy-backwards":for(t=null,n=e.child,e.child=null;n!==null;){if(l=n.alternate,l!==null&&nu(l)===null){e.child=n;break}l=n.sibling,n.sibling=t,t=n,n=l}xc(e,!0,t,null,u,a);break;case"together":xc(e,!1,null,null,void 0,a);break;default:e.memoizedState=null}return e.child}function Je(l,e,t){if(l!==null&&(e.dependencies=l.dependencies),yt|=e.lanes,(t&e.childLanes)===0)if(l!==null){if(sa(l,e,t,!1),(t&e.childLanes)===0)return null}else return null;if(l!==null&&e.child!==l.child)throw Error(h(153));if(e.child!==null){for(l=e.child,t=Xe(l,l.pendingProps),e.child=t,t.return=e;l.sibling!==null;)l=l.sibling,t=t.sibling=Xe(l,l.pendingProps),t.return=e;t.sibling=null}return e.child}function Tc(l,e){return(l.lanes&e)!==0?!0:(l=l.dependencies,!!(l!==null&&Wn(l)))}function uh(l,e,t){switch(e.tag){case 3:Pl(e,e.stateNode.containerInfo),ft(e,ql,l.memoizedState.cache),Ht();break;case 27:case 5:_a(e);break;case 4:Pl(e,e.stateNode.containerInfo);break;case 10:ft(e,e.type,e.memoizedProps.value);break;case 31:if(e.memoizedState!==null)return e.flags|=128,ki(e),null;break;case 13:var a=e.memoizedState;if(a!==null)return a.dehydrated!==null?(dt(e),e.flags|=128,null):(t&e.child.childLanes)!==0?Ko(l,e,t):(dt(e),l=Je(l,e,t),l!==null?l.sibling:null);dt(e);break;case 19:var n=(l.flags&128)!==0;if(a=(t&e.childLanes)!==0,a||(sa(l,e,t,!1),a=(t&e.childLanes)!==0),n){if(a)return ko(l,e,t);e.flags|=128}if(n=e.memoizedState,n!==null&&(n.rendering=null,n.tail=null,n.lastEffect=null),M(Ul,Ul.current),a)break;return null;case 22:return e.lanes=0,Yo(l,e,t,e.pendingProps);case 24:ft(e,ql,l.memoizedState.cache)}return Je(l,e,t)}function wo(l,e,t){if(l!==null)if(l.memoizedProps!==e.pendingProps)Yl=!0;else{if(!Tc(l,t)&&(e.flags&128)===0)return Yl=!1,uh(l,e,t);Yl=(l.flags&131072)!==0}else Yl=!1,al&&(e.flags&1048576)!==0&&zs(e,Ka,e.index);switch(e.lanes=0,e.tag){case 16:l:{var a=e.pendingProps;if(l=Yt(e.elementType),e.type=l,typeof l=="function")Ni(l)?(a=Lt(l,a),e.tag=1,e=Lo(null,e,l,a,t)):(e.tag=0,e=vc(null,e,l,a,t));else{if(l!=null){var n=l.$$typeof;if(n===Bl){e.tag=11,e=Bo(null,e,l,a,t);break l}else if(n===O){e.tag=14,e=qo(null,e,l,a,t);break l}}throw e=Wl(l)||l,Error(h(306,e,""))}}return e;case 0:return vc(l,e,e.type,e.pendingProps,t);case 1:return a=e.type,n=Lt(a,e.pendingProps),Lo(l,e,a,n,t);case 3:l:{if(Pl(e,e.stateNode.containerInfo),l===null)throw Error(h(387));a=e.pendingProps;var u=e.memoizedState;n=u.element,Zi(l,e),Pa(e,a,null,t);var i=e.memoizedState;if(a=i.cache,ft(e,ql,a),a!==u.cache&&Bi(e,[ql],t,!0),Ia(),a=i.element,u.isDehydrated)if(u={element:a,isDehydrated:!1,cache:i.cache},e.updateQueue.baseState=u,e.memoizedState=u,e.flags&256){e=Vo(l,e,a,t);break l}else if(a!==n){n=Ae(Error(h(424)),e),Ja(n),e=Vo(l,e,a,t);break l}else{switch(l=e.stateNode.containerInfo,l.nodeType){case 9:l=l.body;break;default:l=l.nodeName==="HTML"?l.ownerDocument.body:l}for(Al=Me(l.firstChild),Jl=e,al=!0,it=null,Ee=!0,t=Gs(e,null,a,t),e.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling}else{if(Ht(),a===n){e=Je(l,e,t);break l}wl(l,e,a,t)}e=e.child}return e;case 26:return vu(l,e),l===null?(t=ud(e.type,null,e.pendingProps,null))?e.memoizedState=t:al||(t=e.type,l=e.pendingProps,a=Du(I.current).createElement(t),a[Kl]=e,a[te]=l,Fl(a,t,l),Zl(a),e.stateNode=a):e.memoizedState=ud(e.type,l.memoizedProps,e.pendingProps,l.memoizedState),null;case 27:return _a(e),l===null&&al&&(a=e.stateNode=td(e.type,e.pendingProps,I.current),Jl=e,Ee=!0,n=Al,xt(e.type)?(ef=n,Al=Me(a.firstChild)):Al=n),wl(l,e,e.pendingProps.children,t),vu(l,e),l===null&&(e.flags|=4194304),e.child;case 5:return l===null&&al&&((n=a=Al)&&(a=Hh(a,e.type,e.pendingProps,Ee),a!==null?(e.stateNode=a,Jl=e,Al=Me(a.firstChild),Ee=!1,n=!0):n=!1),n||ct(e)),_a(e),n=e.type,u=e.pendingProps,i=l!==null?l.memoizedProps:null,a=u.children,Wc(n,u)?a=null:i!==null&&Wc(n,i)&&(e.flags|=32),e.memoizedState!==null&&(n=Fi(l,e,Wm,null,null,t),Sn._currentValue=n),vu(l,e),wl(l,e,a,t),e.child;case 6:return l===null&&al&&((l=t=Al)&&(t=Bh(t,e.pendingProps,Ee),t!==null?(e.stateNode=t,Jl=e,Al=null,l=!0):l=!1),l||ct(e)),null;case 13:return Ko(l,e,t);case 4:return Pl(e,e.stateNode.containerInfo),a=e.pendingProps,l===null?e.child=Qt(e,null,a,t):wl(l,e,a,t),e.child;case 11:return Bo(l,e,e.type,e.pendingProps,t);case 7:return wl(l,e,e.pendingProps,t),e.child;case 8:return wl(l,e,e.pendingProps.children,t),e.child;case 12:return wl(l,e,e.pendingProps.children,t),e.child;case 10:return a=e.pendingProps,ft(e,e.type,a.value),wl(l,e,a.children,t),e.child;case 9:return n=e.type._context,a=e.pendingProps.children,qt(e),n=kl(n),a=a(n),e.flags|=1,wl(l,e,a,t),e.child;case 14:return qo(l,e,e.type,e.pendingProps,t);case 15:return Go(l,e,e.type,e.pendingProps,t);case 19:return ko(l,e,t);case 31:return nh(l,e,t);case 22:return Yo(l,e,t,e.pendingProps);case 24:return qt(e),a=kl(ql),l===null?(n=Yi(),n===null&&(n=bl,u=qi(),n.pooledCache=u,u.refCount++,u!==null&&(n.pooledCacheLanes|=t),n=u),e.memoizedState={parent:a,cache:n},Qi(e),ft(e,ql,n)):((l.lanes&t)!==0&&(Zi(l,e),Pa(e,null,null,t),Ia()),n=l.memoizedState,u=e.memoizedState,n.parent!==a?(n={parent:a,cache:a},e.memoizedState=n,e.lanes===0&&(e.memoizedState=e.updateQueue.baseState=n),ft(e,ql,a)):(a=u.cache,ft(e,ql,a),a!==n.cache&&Bi(e,[ql],t,!0))),wl(l,e,e.pendingProps.children,t),e.child;case 29:throw e.pendingProps}throw Error(h(156,e.tag))}function ke(l){l.flags|=4}function Ac(l,e,t,a,n){if((e=(l.mode&32)!==0)&&(e=!1),e){if(l.flags|=16777216,(n&335544128)===n)if(l.stateNode.complete)l.flags|=8192;else if(xr())l.flags|=8192;else throw Xt=lu,Xi}else l.flags&=-16777217}function Fo(l,e){if(e.type!=="stylesheet"||(e.state.loading&4)!==0)l.flags&=-16777217;else if(l.flags|=16777216,!od(e))if(xr())l.flags|=8192;else throw Xt=lu,Xi}function gu(l,e){e!==null&&(l.flags|=4),l.flags&16384&&(e=l.tag!==22?Nf():536870912,l.lanes|=e,xa|=e)}function un(l,e){if(!al)switch(l.tailMode){case"hidden":e=l.tail;for(var t=null;e!==null;)e.alternate!==null&&(t=e),e=e.sibling;t===null?l.tail=null:t.sibling=null;break;case"collapsed":t=l.tail;for(var a=null;t!==null;)t.alternate!==null&&(a=t),t=t.sibling;a===null?e||l.tail===null?l.tail=null:l.tail.sibling=null:a.sibling=null}}function jl(l){var e=l.alternate!==null&&l.alternate.child===l.child,t=0,a=0;if(e)for(var n=l.child;n!==null;)t|=n.lanes|n.childLanes,a|=n.subtreeFlags&65011712,a|=n.flags&65011712,n.return=l,n=n.sibling;else for(n=l.child;n!==null;)t|=n.lanes|n.childLanes,a|=n.subtreeFlags,a|=n.flags,n.return=l,n=n.sibling;return l.subtreeFlags|=a,l.childLanes=t,e}function ih(l,e,t){var a=e.pendingProps;switch(Oi(e),e.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return jl(e),null;case 1:return jl(e),null;case 3:return t=e.stateNode,a=null,l!==null&&(a=l.memoizedState.cache),e.memoizedState.cache!==a&&(e.flags|=2048),Le(ql),Dl(),t.pendingContext&&(t.context=t.pendingContext,t.pendingContext=null),(l===null||l.child===null)&&(fa(e)?ke(e):l===null||l.memoizedState.isDehydrated&&(e.flags&256)===0||(e.flags|=1024,Ui())),jl(e),null;case 26:var n=e.type,u=e.memoizedState;return l===null?(ke(e),u!==null?(jl(e),Fo(e,u)):(jl(e),Ac(e,n,null,a,t))):u?u!==l.memoizedState?(ke(e),jl(e),Fo(e,u)):(jl(e),e.flags&=-16777217):(l=l.memoizedProps,l!==a&&ke(e),jl(e),Ac(e,n,l,a,t)),null;case 27:if(Mn(e),t=I.current,n=e.type,l!==null&&e.stateNode!=null)l.memoizedProps!==a&&ke(e);else{if(!a){if(e.stateNode===null)throw Error(h(166));return jl(e),null}l=U.current,fa(e)?Ns(e):(l=td(n,a,t),e.stateNode=l,ke(e))}return jl(e),null;case 5:if(Mn(e),n=e.type,l!==null&&e.stateNode!=null)l.memoizedProps!==a&&ke(e);else{if(!a){if(e.stateNode===null)throw Error(h(166));return jl(e),null}if(u=U.current,fa(e))Ns(e);else{var i=Du(I.current);switch(u){case 1:u=i.createElementNS("http://www.w3.org/2000/svg",n);break;case 2:u=i.createElementNS("http://www.w3.org/1998/Math/MathML",n);break;default:switch(n){case"svg":u=i.createElementNS("http://www.w3.org/2000/svg",n);break;case"math":u=i.createElementNS("http://www.w3.org/1998/Math/MathML",n);break;case"script":u=i.createElement("div"),u.innerHTML="<script><\/script>",u=u.removeChild(u.firstChild);break;case"select":u=typeof a.is=="string"?i.createElement("select",{is:a.is}):i.createElement("select"),a.multiple?u.multiple=!0:a.size&&(u.size=a.size);break;default:u=typeof a.is=="string"?i.createElement(n,{is:a.is}):i.createElement(n)}}u[Kl]=e,u[te]=a;l:for(i=e.child;i!==null;){if(i.tag===5||i.tag===6)u.appendChild(i.stateNode);else if(i.tag!==4&&i.tag!==27&&i.child!==null){i.child.return=i,i=i.child;continue}if(i===e)break l;for(;i.sibling===null;){if(i.return===null||i.return===e)break l;i=i.return}i.sibling.return=i.return,i=i.sibling}e.stateNode=u;l:switch(Fl(u,n,a),n){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break l;case"img":a=!0;break l;default:a=!1}a&&ke(e)}}return jl(e),Ac(e,e.type,l===null?null:l.memoizedProps,e.pendingProps,t),null;case 6:if(l&&e.stateNode!=null)l.memoizedProps!==a&&ke(e);else{if(typeof a!="string"&&e.stateNode===null)throw Error(h(166));if(l=I.current,fa(e)){if(l=e.stateNode,t=e.memoizedProps,a=null,n=Jl,n!==null)switch(n.tag){case 27:case 5:a=n.memoizedProps}l[Kl]=e,l=!!(l.nodeValue===t||a!==null&&a.suppressHydrationWarning===!0||Kr(l.nodeValue,t)),l||ct(e,!0)}else l=Du(l).createTextNode(a),l[Kl]=e,e.stateNode=l}return jl(e),null;case 31:if(t=e.memoizedState,l===null||l.memoizedState!==null){if(a=fa(e),t!==null){if(l===null){if(!a)throw Error(h(318));if(l=e.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(h(557));l[Kl]=e}else Ht(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;jl(e),l=!1}else t=Ui(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=t),l=!0;if(!l)return e.flags&256?(ye(e),e):(ye(e),null);if((e.flags&128)!==0)throw Error(h(558))}return jl(e),null;case 13:if(a=e.memoizedState,l===null||l.memoizedState!==null&&l.memoizedState.dehydrated!==null){if(n=fa(e),a!==null&&a.dehydrated!==null){if(l===null){if(!n)throw Error(h(318));if(n=e.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(h(317));n[Kl]=e}else Ht(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;jl(e),n=!1}else n=Ui(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=n),n=!0;if(!n)return e.flags&256?(ye(e),e):(ye(e),null)}return ye(e),(e.flags&128)!==0?(e.lanes=t,e):(t=a!==null,l=l!==null&&l.memoizedState!==null,t&&(a=e.child,n=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(n=a.alternate.memoizedState.cachePool.pool),u=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(u=a.memoizedState.cachePool.pool),u!==n&&(a.flags|=2048)),t!==l&&t&&(e.child.flags|=8192),gu(e,e.updateQueue),jl(e),null);case 4:return Dl(),l===null&&Kc(e.stateNode.containerInfo),jl(e),null;case 10:return Le(e.type),jl(e),null;case 19:if(b(Ul),a=e.memoizedState,a===null)return jl(e),null;if(n=(e.flags&128)!==0,u=a.rendering,u===null)if(n)un(a,!1);else{if(Ol!==0||l!==null&&(l.flags&128)!==0)for(l=e.child;l!==null;){if(u=nu(l),u!==null){for(e.flags|=128,un(a,!1),l=u.updateQueue,e.updateQueue=l,gu(e,l),e.subtreeFlags=0,l=t,t=e.child;t!==null;)Ts(t,l),t=t.sibling;return M(Ul,Ul.current&1|2),al&&Qe(e,a.treeForkCount),e.child}l=l.sibling}a.tail!==null&&oe()>Tu&&(e.flags|=128,n=!0,un(a,!1),e.lanes=4194304)}else{if(!n)if(l=nu(u),l!==null){if(e.flags|=128,n=!0,l=l.updateQueue,e.updateQueue=l,gu(e,l),un(a,!0),a.tail===null&&a.tailMode==="hidden"&&!u.alternate&&!al)return jl(e),null}else 2*oe()-a.renderingStartTime>Tu&&t!==536870912&&(e.flags|=128,n=!0,un(a,!1),e.lanes=4194304);a.isBackwards?(u.sibling=e.child,e.child=u):(l=a.last,l!==null?l.sibling=u:e.child=u,a.last=u)}return a.tail!==null?(l=a.tail,a.rendering=l,a.tail=l.sibling,a.renderingStartTime=oe(),l.sibling=null,t=Ul.current,M(Ul,n?t&1|2:t&1),al&&Qe(e,a.treeForkCount),l):(jl(e),null);case 22:case 23:return ye(e),Ji(),a=e.memoizedState!==null,l!==null?l.memoizedState!==null!==a&&(e.flags|=8192):a&&(e.flags|=8192),a?(t&536870912)!==0&&(e.flags&128)===0&&(jl(e),e.subtreeFlags&6&&(e.flags|=8192)):jl(e),t=e.updateQueue,t!==null&&gu(e,t.retryQueue),t=null,l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(t=l.memoizedState.cachePool.pool),a=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(a=e.memoizedState.cachePool.pool),a!==t&&(e.flags|=2048),l!==null&&b(Gt),null;case 24:return t=null,l!==null&&(t=l.memoizedState.cache),e.memoizedState.cache!==t&&(e.flags|=2048),Le(ql),jl(e),null;case 25:return null;case 30:return null}throw Error(h(156,e.tag))}function ch(l,e){switch(Oi(e),e.tag){case 1:return l=e.flags,l&65536?(e.flags=l&-65537|128,e):null;case 3:return Le(ql),Dl(),l=e.flags,(l&65536)!==0&&(l&128)===0?(e.flags=l&-65537|128,e):null;case 26:case 27:case 5:return Mn(e),null;case 31:if(e.memoizedState!==null){if(ye(e),e.alternate===null)throw Error(h(340));Ht()}return l=e.flags,l&65536?(e.flags=l&-65537|128,e):null;case 13:if(ye(e),l=e.memoizedState,l!==null&&l.dehydrated!==null){if(e.alternate===null)throw Error(h(340));Ht()}return l=e.flags,l&65536?(e.flags=l&-65537|128,e):null;case 19:return b(Ul),null;case 4:return Dl(),null;case 10:return Le(e.type),null;case 22:case 23:return ye(e),Ji(),l!==null&&b(Gt),l=e.flags,l&65536?(e.flags=l&-65537|128,e):null;case 24:return Le(ql),null;case 25:return null;default:return null}}function Wo(l,e){switch(Oi(e),e.tag){case 3:Le(ql),Dl();break;case 26:case 27:case 5:Mn(e);break;case 4:Dl();break;case 31:e.memoizedState!==null&&ye(e);break;case 13:ye(e);break;case 19:b(Ul);break;case 10:Le(e.type);break;case 22:case 23:ye(e),Ji(),l!==null&&b(Gt);break;case 24:Le(ql)}}function cn(l,e){try{var t=e.updateQueue,a=t!==null?t.lastEffect:null;if(a!==null){var n=a.next;t=n;do{if((t.tag&l)===l){a=void 0;var u=t.create,i=t.inst;a=u(),i.destroy=a}t=t.next}while(t!==n)}}catch(f){ml(e,e.return,f)}}function ht(l,e,t){try{var a=e.updateQueue,n=a!==null?a.lastEffect:null;if(n!==null){var u=n.next;a=u;do{if((a.tag&l)===l){var i=a.inst,f=i.destroy;if(f!==void 0){i.destroy=void 0,n=e;var r=t,y=f;try{y()}catch(x){ml(n,r,x)}}}a=a.next}while(a!==u)}}catch(x){ml(e,e.return,x)}}function $o(l){var e=l.updateQueue;if(e!==null){var t=l.stateNode;try{Xs(e,t)}catch(a){ml(l,l.return,a)}}}function Io(l,e,t){t.props=Lt(l.type,l.memoizedProps),t.state=l.memoizedState;try{t.componentWillUnmount()}catch(a){ml(l,e,a)}}function fn(l,e){try{var t=l.ref;if(t!==null){switch(l.tag){case 26:case 27:case 5:var a=l.stateNode;break;case 30:a=l.stateNode;break;default:a=l.stateNode}typeof t=="function"?l.refCleanup=t(a):t.current=a}}catch(n){ml(l,e,n)}}function He(l,e){var t=l.ref,a=l.refCleanup;if(t!==null)if(typeof a=="function")try{a()}catch(n){ml(l,e,n)}finally{l.refCleanup=null,l=l.alternate,l!=null&&(l.refCleanup=null)}else if(typeof t=="function")try{t(null)}catch(n){ml(l,e,n)}else t.current=null}function Po(l){var e=l.type,t=l.memoizedProps,a=l.stateNode;try{l:switch(e){case"button":case"input":case"select":case"textarea":t.autoFocus&&a.focus();break l;case"img":t.src?a.src=t.src:t.srcSet&&(a.srcset=t.srcSet)}}catch(n){ml(l,l.return,n)}}function jc(l,e,t){try{var a=l.stateNode;Ch(a,l.type,t,e),a[te]=e}catch(n){ml(l,l.return,n)}}function lr(l){return l.tag===5||l.tag===3||l.tag===26||l.tag===27&&xt(l.type)||l.tag===4}function zc(l){l:for(;;){for(;l.sibling===null;){if(l.return===null||lr(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.tag===27&&xt(l.type)||l.flags&2||l.child===null||l.tag===4)continue l;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function Ec(l,e,t){var a=l.tag;if(a===5||a===6)l=l.stateNode,e?(t.nodeType===9?t.body:t.nodeName==="HTML"?t.ownerDocument.body:t).insertBefore(l,e):(e=t.nodeType===9?t.body:t.nodeName==="HTML"?t.ownerDocument.body:t,e.appendChild(l),t=t._reactRootContainer,t!=null||e.onclick!==null||(e.onclick=Ge));else if(a!==4&&(a===27&&xt(l.type)&&(t=l.stateNode,e=null),l=l.child,l!==null))for(Ec(l,e,t),l=l.sibling;l!==null;)Ec(l,e,t),l=l.sibling}function pu(l,e,t){var a=l.tag;if(a===5||a===6)l=l.stateNode,e?t.insertBefore(l,e):t.appendChild(l);else if(a!==4&&(a===27&&xt(l.type)&&(t=l.stateNode),l=l.child,l!==null))for(pu(l,e,t),l=l.sibling;l!==null;)pu(l,e,t),l=l.sibling}function er(l){var e=l.stateNode,t=l.memoizedProps;try{for(var a=l.type,n=e.attributes;n.length;)e.removeAttributeNode(n[0]);Fl(e,a,t),e[Kl]=l,e[te]=t}catch(u){ml(l,l.return,u)}}var we=!1,Xl=!1,Nc=!1,tr=typeof WeakSet=="function"?WeakSet:Set,Ll=null;function fh(l,e){if(l=l.containerInfo,wc=Yu,l=ms(l),Si(l)){if("selectionStart"in l)var t={start:l.selectionStart,end:l.selectionEnd};else l:{t=(t=l.ownerDocument)&&t.defaultView||window;var a=t.getSelection&&t.getSelection();if(a&&a.rangeCount!==0){t=a.anchorNode;var n=a.anchorOffset,u=a.focusNode;a=a.focusOffset;try{t.nodeType,u.nodeType}catch{t=null;break l}var i=0,f=-1,r=-1,y=0,x=0,j=l,g=null;e:for(;;){for(var p;j!==t||n!==0&&j.nodeType!==3||(f=i+n),j!==u||a!==0&&j.nodeType!==3||(r=i+a),j.nodeType===3&&(i+=j.nodeValue.length),(p=j.firstChild)!==null;)g=j,j=p;for(;;){if(j===l)break e;if(g===t&&++y===n&&(f=i),g===u&&++x===a&&(r=i),(p=j.nextSibling)!==null)break;j=g,g=j.parentNode}j=p}t=f===-1||r===-1?null:{start:f,end:r}}else t=null}t=t||{start:0,end:0}}else t=null;for(Fc={focusedElem:l,selectionRange:t},Yu=!1,Ll=e;Ll!==null;)if(e=Ll,l=e.child,(e.subtreeFlags&1028)!==0&&l!==null)l.return=e,Ll=l;else for(;Ll!==null;){switch(e=Ll,u=e.alternate,l=e.flags,e.tag){case 0:if((l&4)!==0&&(l=e.updateQueue,l=l!==null?l.events:null,l!==null))for(t=0;t<l.length;t++)n=l[t],n.ref.impl=n.nextImpl;break;case 11:case 15:break;case 1:if((l&1024)!==0&&u!==null){l=void 0,t=e,n=u.memoizedProps,u=u.memoizedState,a=t.stateNode;try{var R=Lt(t.type,n);l=a.getSnapshotBeforeUpdate(R,u),a.__reactInternalSnapshotBeforeUpdate=l}catch(K){ml(t,t.return,K)}}break;case 3:if((l&1024)!==0){if(l=e.stateNode.containerInfo,t=l.nodeType,t===9)Ic(l);else if(t===1)switch(l.nodeName){case"HEAD":case"HTML":case"BODY":Ic(l);break;default:l.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((l&1024)!==0)throw Error(h(163))}if(l=e.sibling,l!==null){l.return=e.return,Ll=l;break}Ll=e.return}}function ar(l,e,t){var a=t.flags;switch(t.tag){case 0:case 11:case 15:We(l,t),a&4&&cn(5,t);break;case 1:if(We(l,t),a&4)if(l=t.stateNode,e===null)try{l.componentDidMount()}catch(i){ml(t,t.return,i)}else{var n=Lt(t.type,e.memoizedProps);e=e.memoizedState;try{l.componentDidUpdate(n,e,l.__reactInternalSnapshotBeforeUpdate)}catch(i){ml(t,t.return,i)}}a&64&&$o(t),a&512&&fn(t,t.return);break;case 3:if(We(l,t),a&64&&(l=t.updateQueue,l!==null)){if(e=null,t.child!==null)switch(t.child.tag){case 27:case 5:e=t.child.stateNode;break;case 1:e=t.child.stateNode}try{Xs(l,e)}catch(i){ml(t,t.return,i)}}break;case 27:e===null&&a&4&&er(t);case 26:case 5:We(l,t),e===null&&a&4&&Po(t),a&512&&fn(t,t.return);break;case 12:We(l,t);break;case 31:We(l,t),a&4&&ir(l,t);break;case 13:We(l,t),a&4&&cr(l,t),a&64&&(l=t.memoizedState,l!==null&&(l=l.dehydrated,l!==null&&(t=gh.bind(null,t),qh(l,t))));break;case 22:if(a=t.memoizedState!==null||we,!a){e=e!==null&&e.memoizedState!==null||Xl,n=we;var u=Xl;we=a,(Xl=e)&&!u?$e(l,t,(t.subtreeFlags&8772)!==0):We(l,t),we=n,Xl=u}break;case 30:break;default:We(l,t)}}function nr(l){var e=l.alternate;e!==null&&(l.alternate=null,nr(e)),l.child=null,l.deletions=null,l.sibling=null,l.tag===5&&(e=l.stateNode,e!==null&&ai(e)),l.stateNode=null,l.return=null,l.dependencies=null,l.memoizedProps=null,l.memoizedState=null,l.pendingProps=null,l.stateNode=null,l.updateQueue=null}var zl=null,ne=!1;function Fe(l,e,t){for(t=t.child;t!==null;)ur(l,e,t),t=t.sibling}function ur(l,e,t){if(re&&typeof re.onCommitFiberUnmount=="function")try{re.onCommitFiberUnmount(Oa,t)}catch{}switch(t.tag){case 26:Xl||He(t,e),Fe(l,e,t),t.memoizedState?t.memoizedState.count--:t.stateNode&&(t=t.stateNode,t.parentNode.removeChild(t));break;case 27:Xl||He(t,e);var a=zl,n=ne;xt(t.type)&&(zl=t.stateNode,ne=!1),Fe(l,e,t),gn(t.stateNode),zl=a,ne=n;break;case 5:Xl||He(t,e);case 6:if(a=zl,n=ne,zl=null,Fe(l,e,t),zl=a,ne=n,zl!==null)if(ne)try{(zl.nodeType===9?zl.body:zl.nodeName==="HTML"?zl.ownerDocument.body:zl).removeChild(t.stateNode)}catch(u){ml(t,e,u)}else try{zl.removeChild(t.stateNode)}catch(u){ml(t,e,u)}break;case 18:zl!==null&&(ne?(l=zl,$r(l.nodeType===9?l.body:l.nodeName==="HTML"?l.ownerDocument.body:l,t.stateNode),Ca(l)):$r(zl,t.stateNode));break;case 4:a=zl,n=ne,zl=t.stateNode.containerInfo,ne=!0,Fe(l,e,t),zl=a,ne=n;break;case 0:case 11:case 14:case 15:ht(2,t,e),Xl||ht(4,t,e),Fe(l,e,t);break;case 1:Xl||(He(t,e),a=t.stateNode,typeof a.componentWillUnmount=="function"&&Io(t,e,a)),Fe(l,e,t);break;case 21:Fe(l,e,t);break;case 22:Xl=(a=Xl)||t.memoizedState!==null,Fe(l,e,t),Xl=a;break;default:Fe(l,e,t)}}function ir(l,e){if(e.memoizedState===null&&(l=e.alternate,l!==null&&(l=l.memoizedState,l!==null))){l=l.dehydrated;try{Ca(l)}catch(t){ml(e,e.return,t)}}}function cr(l,e){if(e.memoizedState===null&&(l=e.alternate,l!==null&&(l=l.memoizedState,l!==null&&(l=l.dehydrated,l!==null))))try{Ca(l)}catch(t){ml(e,e.return,t)}}function sh(l){switch(l.tag){case 31:case 13:case 19:var e=l.stateNode;return e===null&&(e=l.stateNode=new tr),e;case 22:return l=l.stateNode,e=l._retryCache,e===null&&(e=l._retryCache=new tr),e;default:throw Error(h(435,l.tag))}}function bu(l,e){var t=sh(l);e.forEach(function(a){if(!t.has(a)){t.add(a);var n=ph.bind(null,l,a);a.then(n,n)}})}function ue(l,e){var t=e.deletions;if(t!==null)for(var a=0;a<t.length;a++){var n=t[a],u=l,i=e,f=i;l:for(;f!==null;){switch(f.tag){case 27:if(xt(f.type)){zl=f.stateNode,ne=!1;break l}break;case 5:zl=f.stateNode,ne=!1;break l;case 3:case 4:zl=f.stateNode.containerInfo,ne=!0;break l}f=f.return}if(zl===null)throw Error(h(160));ur(u,i,n),zl=null,ne=!1,u=n.alternate,u!==null&&(u.return=null),n.return=null}if(e.subtreeFlags&13886)for(e=e.child;e!==null;)fr(e,l),e=e.sibling}var Oe=null;function fr(l,e){var t=l.alternate,a=l.flags;switch(l.tag){case 0:case 11:case 14:case 15:ue(e,l),ie(l),a&4&&(ht(3,l,l.return),cn(3,l),ht(5,l,l.return));break;case 1:ue(e,l),ie(l),a&512&&(Xl||t===null||He(t,t.return)),a&64&&we&&(l=l.updateQueue,l!==null&&(a=l.callbacks,a!==null&&(t=l.shared.hiddenCallbacks,l.shared.hiddenCallbacks=t===null?a:t.concat(a))));break;case 26:var n=Oe;if(ue(e,l),ie(l),a&512&&(Xl||t===null||He(t,t.return)),a&4){var u=t!==null?t.memoizedState:null;if(a=l.memoizedState,t===null)if(a===null)if(l.stateNode===null){l:{a=l.type,t=l.memoizedProps,n=n.ownerDocument||n;e:switch(a){case"title":u=n.getElementsByTagName("title")[0],(!u||u[Ra]||u[Kl]||u.namespaceURI==="http://www.w3.org/2000/svg"||u.hasAttribute("itemprop"))&&(u=n.createElement(a),n.head.insertBefore(u,n.querySelector("head > title"))),Fl(u,a,t),u[Kl]=l,Zl(u),a=u;break l;case"link":var i=fd("link","href",n).get(a+(t.href||""));if(i){for(var f=0;f<i.length;f++)if(u=i[f],u.getAttribute("href")===(t.href==null||t.href===""?null:t.href)&&u.getAttribute("rel")===(t.rel==null?null:t.rel)&&u.getAttribute("title")===(t.title==null?null:t.title)&&u.getAttribute("crossorigin")===(t.crossOrigin==null?null:t.crossOrigin)){i.splice(f,1);break e}}u=n.createElement(a),Fl(u,a,t),n.head.appendChild(u);break;case"meta":if(i=fd("meta","content",n).get(a+(t.content||""))){for(f=0;f<i.length;f++)if(u=i[f],u.getAttribute("content")===(t.content==null?null:""+t.content)&&u.getAttribute("name")===(t.name==null?null:t.name)&&u.getAttribute("property")===(t.property==null?null:t.property)&&u.getAttribute("http-equiv")===(t.httpEquiv==null?null:t.httpEquiv)&&u.getAttribute("charset")===(t.charSet==null?null:t.charSet)){i.splice(f,1);break e}}u=n.createElement(a),Fl(u,a,t),n.head.appendChild(u);break;default:throw Error(h(468,a))}u[Kl]=l,Zl(u),a=u}l.stateNode=a}else sd(n,l.type,l.stateNode);else l.stateNode=cd(n,a,l.memoizedProps);else u!==a?(u===null?t.stateNode!==null&&(t=t.stateNode,t.parentNode.removeChild(t)):u.count--,a===null?sd(n,l.type,l.stateNode):cd(n,a,l.memoizedProps)):a===null&&l.stateNode!==null&&jc(l,l.memoizedProps,t.memoizedProps)}break;case 27:ue(e,l),ie(l),a&512&&(Xl||t===null||He(t,t.return)),t!==null&&a&4&&jc(l,l.memoizedProps,t.memoizedProps);break;case 5:if(ue(e,l),ie(l),a&512&&(Xl||t===null||He(t,t.return)),l.flags&32){n=l.stateNode;try{It(n,"")}catch(R){ml(l,l.return,R)}}a&4&&l.stateNode!=null&&(n=l.memoizedProps,jc(l,n,t!==null?t.memoizedProps:n)),a&1024&&(Nc=!0);break;case 6:if(ue(e,l),ie(l),a&4){if(l.stateNode===null)throw Error(h(162));a=l.memoizedProps,t=l.stateNode;try{t.nodeValue=a}catch(R){ml(l,l.return,R)}}break;case 3:if(Hu=null,n=Oe,Oe=Uu(e.containerInfo),ue(e,l),Oe=n,ie(l),a&4&&t!==null&&t.memoizedState.isDehydrated)try{Ca(e.containerInfo)}catch(R){ml(l,l.return,R)}Nc&&(Nc=!1,sr(l));break;case 4:a=Oe,Oe=Uu(l.stateNode.containerInfo),ue(e,l),ie(l),Oe=a;break;case 12:ue(e,l),ie(l);break;case 31:ue(e,l),ie(l),a&4&&(a=l.updateQueue,a!==null&&(l.updateQueue=null,bu(l,a)));break;case 13:ue(e,l),ie(l),l.child.flags&8192&&l.memoizedState!==null!=(t!==null&&t.memoizedState!==null)&&(xu=oe()),a&4&&(a=l.updateQueue,a!==null&&(l.updateQueue=null,bu(l,a)));break;case 22:n=l.memoizedState!==null;var r=t!==null&&t.memoizedState!==null,y=we,x=Xl;if(we=y||n,Xl=x||r,ue(e,l),Xl=x,we=y,ie(l),a&8192)l:for(e=l.stateNode,e._visibility=n?e._visibility&-2:e._visibility|1,n&&(t===null||r||we||Xl||Vt(l)),t=null,e=l;;){if(e.tag===5||e.tag===26){if(t===null){r=t=e;try{if(u=r.stateNode,n)i=u.style,typeof i.setProperty=="function"?i.setProperty("display","none","important"):i.display="none";else{f=r.stateNode;var j=r.memoizedProps.style,g=j!=null&&j.hasOwnProperty("display")?j.display:null;f.style.display=g==null||typeof g=="boolean"?"":(""+g).trim()}}catch(R){ml(r,r.return,R)}}}else if(e.tag===6){if(t===null){r=e;try{r.stateNode.nodeValue=n?"":r.memoizedProps}catch(R){ml(r,r.return,R)}}}else if(e.tag===18){if(t===null){r=e;try{var p=r.stateNode;n?Ir(p,!0):Ir(r.stateNode,!1)}catch(R){ml(r,r.return,R)}}}else if((e.tag!==22&&e.tag!==23||e.memoizedState===null||e===l)&&e.child!==null){e.child.return=e,e=e.child;continue}if(e===l)break l;for(;e.sibling===null;){if(e.return===null||e.return===l)break l;t===e&&(t=null),e=e.return}t===e&&(t=null),e.sibling.return=e.return,e=e.sibling}a&4&&(a=l.updateQueue,a!==null&&(t=a.retryQueue,t!==null&&(a.retryQueue=null,bu(l,t))));break;case 19:ue(e,l),ie(l),a&4&&(a=l.updateQueue,a!==null&&(l.updateQueue=null,bu(l,a)));break;case 30:break;case 21:break;default:ue(e,l),ie(l)}}function ie(l){var e=l.flags;if(e&2){try{for(var t,a=l.return;a!==null;){if(lr(a)){t=a;break}a=a.return}if(t==null)throw Error(h(160));switch(t.tag){case 27:var n=t.stateNode,u=zc(l);pu(l,u,n);break;case 5:var i=t.stateNode;t.flags&32&&(It(i,""),t.flags&=-33);var f=zc(l);pu(l,f,i);break;case 3:case 4:var r=t.stateNode.containerInfo,y=zc(l);Ec(l,y,r);break;default:throw Error(h(161))}}catch(x){ml(l,l.return,x)}l.flags&=-3}e&4096&&(l.flags&=-4097)}function sr(l){if(l.subtreeFlags&1024)for(l=l.child;l!==null;){var e=l;sr(e),e.tag===5&&e.flags&1024&&e.stateNode.reset(),l=l.sibling}}function We(l,e){if(e.subtreeFlags&8772)for(e=e.child;e!==null;)ar(l,e.alternate,e),e=e.sibling}function Vt(l){for(l=l.child;l!==null;){var e=l;switch(e.tag){case 0:case 11:case 14:case 15:ht(4,e,e.return),Vt(e);break;case 1:He(e,e.return);var t=e.stateNode;typeof t.componentWillUnmount=="function"&&Io(e,e.return,t),Vt(e);break;case 27:gn(e.stateNode);case 26:case 5:He(e,e.return),Vt(e);break;case 22:e.memoizedState===null&&Vt(e);break;case 30:Vt(e);break;default:Vt(e)}l=l.sibling}}function $e(l,e,t){for(t=t&&(e.subtreeFlags&8772)!==0,e=e.child;e!==null;){var a=e.alternate,n=l,u=e,i=u.flags;switch(u.tag){case 0:case 11:case 15:$e(n,u,t),cn(4,u);break;case 1:if($e(n,u,t),a=u,n=a.stateNode,typeof n.componentDidMount=="function")try{n.componentDidMount()}catch(y){ml(a,a.return,y)}if(a=u,n=a.updateQueue,n!==null){var f=a.stateNode;try{var r=n.shared.hiddenCallbacks;if(r!==null)for(n.shared.hiddenCallbacks=null,n=0;n<r.length;n++)Ys(r[n],f)}catch(y){ml(a,a.return,y)}}t&&i&64&&$o(u),fn(u,u.return);break;case 27:er(u);case 26:case 5:$e(n,u,t),t&&a===null&&i&4&&Po(u),fn(u,u.return);break;case 12:$e(n,u,t);break;case 31:$e(n,u,t),t&&i&4&&ir(n,u);break;case 13:$e(n,u,t),t&&i&4&&cr(n,u);break;case 22:u.memoizedState===null&&$e(n,u,t),fn(u,u.return);break;case 30:break;default:$e(n,u,t)}e=e.sibling}}function Mc(l,e){var t=null;l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(t=l.memoizedState.cachePool.pool),l=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(l=e.memoizedState.cachePool.pool),l!==t&&(l!=null&&l.refCount++,t!=null&&ka(t))}function Cc(l,e){l=null,e.alternate!==null&&(l=e.alternate.memoizedState.cache),e=e.memoizedState.cache,e!==l&&(e.refCount++,l!=null&&ka(l))}function De(l,e,t,a){if(e.subtreeFlags&10256)for(e=e.child;e!==null;)or(l,e,t,a),e=e.sibling}function or(l,e,t,a){var n=e.flags;switch(e.tag){case 0:case 11:case 15:De(l,e,t,a),n&2048&&cn(9,e);break;case 1:De(l,e,t,a);break;case 3:De(l,e,t,a),n&2048&&(l=null,e.alternate!==null&&(l=e.alternate.memoizedState.cache),e=e.memoizedState.cache,e!==l&&(e.refCount++,l!=null&&ka(l)));break;case 12:if(n&2048){De(l,e,t,a),l=e.stateNode;try{var u=e.memoizedProps,i=u.id,f=u.onPostCommit;typeof f=="function"&&f(i,e.alternate===null?"mount":"update",l.passiveEffectDuration,-0)}catch(r){ml(e,e.return,r)}}else De(l,e,t,a);break;case 31:De(l,e,t,a);break;case 13:De(l,e,t,a);break;case 23:break;case 22:u=e.stateNode,i=e.alternate,e.memoizedState!==null?u._visibility&2?De(l,e,t,a):sn(l,e):u._visibility&2?De(l,e,t,a):(u._visibility|=2,pa(l,e,t,a,(e.subtreeFlags&10256)!==0||!1)),n&2048&&Mc(i,e);break;case 24:De(l,e,t,a),n&2048&&Cc(e.alternate,e);break;default:De(l,e,t,a)}}function pa(l,e,t,a,n){for(n=n&&((e.subtreeFlags&10256)!==0||!1),e=e.child;e!==null;){var u=l,i=e,f=t,r=a,y=i.flags;switch(i.tag){case 0:case 11:case 15:pa(u,i,f,r,n),cn(8,i);break;case 23:break;case 22:var x=i.stateNode;i.memoizedState!==null?x._visibility&2?pa(u,i,f,r,n):sn(u,i):(x._visibility|=2,pa(u,i,f,r,n)),n&&y&2048&&Mc(i.alternate,i);break;case 24:pa(u,i,f,r,n),n&&y&2048&&Cc(i.alternate,i);break;default:pa(u,i,f,r,n)}e=e.sibling}}function sn(l,e){if(e.subtreeFlags&10256)for(e=e.child;e!==null;){var t=l,a=e,n=a.flags;switch(a.tag){case 22:sn(t,a),n&2048&&Mc(a.alternate,a);break;case 24:sn(t,a),n&2048&&Cc(a.alternate,a);break;default:sn(t,a)}e=e.sibling}}var on=8192;function ba(l,e,t){if(l.subtreeFlags&on)for(l=l.child;l!==null;)rr(l,e,t),l=l.sibling}function rr(l,e,t){switch(l.tag){case 26:ba(l,e,t),l.flags&on&&l.memoizedState!==null&&Fh(t,Oe,l.memoizedState,l.memoizedProps);break;case 5:ba(l,e,t);break;case 3:case 4:var a=Oe;Oe=Uu(l.stateNode.containerInfo),ba(l,e,t),Oe=a;break;case 22:l.memoizedState===null&&(a=l.alternate,a!==null&&a.memoizedState!==null?(a=on,on=16777216,ba(l,e,t),on=a):ba(l,e,t));break;default:ba(l,e,t)}}function dr(l){var e=l.alternate;if(e!==null&&(l=e.child,l!==null)){e.child=null;do e=l.sibling,l.sibling=null,l=e;while(l!==null)}}function rn(l){var e=l.deletions;if((l.flags&16)!==0){if(e!==null)for(var t=0;t<e.length;t++){var a=e[t];Ll=a,hr(a,l)}dr(l)}if(l.subtreeFlags&10256)for(l=l.child;l!==null;)mr(l),l=l.sibling}function mr(l){switch(l.tag){case 0:case 11:case 15:rn(l),l.flags&2048&&ht(9,l,l.return);break;case 3:rn(l);break;case 12:rn(l);break;case 22:var e=l.stateNode;l.memoizedState!==null&&e._visibility&2&&(l.return===null||l.return.tag!==13)?(e._visibility&=-3,Su(l)):rn(l);break;default:rn(l)}}function Su(l){var e=l.deletions;if((l.flags&16)!==0){if(e!==null)for(var t=0;t<e.length;t++){var a=e[t];Ll=a,hr(a,l)}dr(l)}for(l=l.child;l!==null;){switch(e=l,e.tag){case 0:case 11:case 15:ht(8,e,e.return),Su(e);break;case 22:t=e.stateNode,t._visibility&2&&(t._visibility&=-3,Su(e));break;default:Su(e)}l=l.sibling}}function hr(l,e){for(;Ll!==null;){var t=Ll;switch(t.tag){case 0:case 11:case 15:ht(8,t,e);break;case 23:case 22:if(t.memoizedState!==null&&t.memoizedState.cachePool!==null){var a=t.memoizedState.cachePool.pool;a!=null&&a.refCount++}break;case 24:ka(t.memoizedState.cache)}if(a=t.child,a!==null)a.return=t,Ll=a;else l:for(t=l;Ll!==null;){a=Ll;var n=a.sibling,u=a.return;if(nr(a),a===t){Ll=null;break l}if(n!==null){n.return=u,Ll=n;break l}Ll=u}}}var oh={getCacheForType:function(l){var e=kl(ql),t=e.data.get(l);return t===void 0&&(t=l(),e.data.set(l,t)),t},cacheSignal:function(){return kl(ql).controller.signal}},rh=typeof WeakMap=="function"?WeakMap:Map,ol=0,bl=null,P=null,el=0,dl=0,ge=null,vt=!1,Sa=!1,_c=!1,Ie=0,Ol=0,yt=0,Kt=0,Oc=0,pe=0,xa=0,dn=null,ce=null,Dc=!1,xu=0,vr=0,Tu=1/0,Au=null,gt=null,Ql=0,pt=null,Ta=null,Pe=0,Uc=0,Rc=null,yr=null,mn=0,Hc=null;function be(){return(ol&2)!==0&&el!==0?el&-el:T.T!==null?Qc():Of()}function gr(){if(pe===0)if((el&536870912)===0||al){var l=On;On<<=1,(On&3932160)===0&&(On=262144),pe=l}else pe=536870912;return l=ve.current,l!==null&&(l.flags|=32),pe}function fe(l,e,t){(l===bl&&(dl===2||dl===9)||l.cancelPendingCommit!==null)&&(Aa(l,0),bt(l,el,pe,!1)),Ua(l,t),((ol&2)===0||l!==bl)&&(l===bl&&((ol&2)===0&&(Kt|=t),Ol===4&&bt(l,el,pe,!1)),Be(l))}function pr(l,e,t){if((ol&6)!==0)throw Error(h(327));var a=!t&&(e&127)===0&&(e&l.expiredLanes)===0||Da(l,e),n=a?hh(l,e):qc(l,e,!0),u=a;do{if(n===0){Sa&&!a&&bt(l,e,0,!1);break}else{if(t=l.current.alternate,u&&!dh(t)){n=qc(l,e,!1),u=!1;continue}if(n===2){if(u=e,l.errorRecoveryDisabledLanes&u)var i=0;else i=l.pendingLanes&-536870913,i=i!==0?i:i&536870912?536870912:0;if(i!==0){e=i;l:{var f=l;n=dn;var r=f.current.memoizedState.isDehydrated;if(r&&(Aa(f,i).flags|=256),i=qc(f,i,!1),i!==2){if(_c&&!r){f.errorRecoveryDisabledLanes|=u,Kt|=u,n=4;break l}u=ce,ce=n,u!==null&&(ce===null?ce=u:ce.push.apply(ce,u))}n=i}if(u=!1,n!==2)continue}}if(n===1){Aa(l,0),bt(l,e,0,!0);break}l:{switch(a=l,u=n,u){case 0:case 1:throw Error(h(345));case 4:if((e&4194048)!==e)break;case 6:bt(a,e,pe,!vt);break l;case 2:ce=null;break;case 3:case 5:break;default:throw Error(h(329))}if((e&62914560)===e&&(n=xu+300-oe(),10<n)){if(bt(a,e,pe,!vt),Un(a,0,!0)!==0)break l;Pe=e,a.timeoutHandle=Fr(br.bind(null,a,t,ce,Au,Dc,e,pe,Kt,xa,vt,u,"Throttled",-0,0),n);break l}br(a,t,ce,Au,Dc,e,pe,Kt,xa,vt,u,null,-0,0)}}break}while(!0);Be(l)}function br(l,e,t,a,n,u,i,f,r,y,x,j,g,p){if(l.timeoutHandle=-1,j=e.subtreeFlags,j&8192||(j&16785408)===16785408){j={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Ge},rr(e,u,j);var R=(u&62914560)===u?xu-oe():(u&4194048)===u?vr-oe():0;if(R=Wh(j,R),R!==null){Pe=u,l.cancelPendingCommit=R(Nr.bind(null,l,e,u,t,a,n,i,f,r,x,j,null,g,p)),bt(l,u,i,!y);return}}Nr(l,e,u,t,a,n,i,f,r)}function dh(l){for(var e=l;;){var t=e.tag;if((t===0||t===11||t===15)&&e.flags&16384&&(t=e.updateQueue,t!==null&&(t=t.stores,t!==null)))for(var a=0;a<t.length;a++){var n=t[a],u=n.getSnapshot;n=n.value;try{if(!me(u(),n))return!1}catch{return!1}}if(t=e.child,e.subtreeFlags&16384&&t!==null)t.return=e,e=t;else{if(e===l)break;for(;e.sibling===null;){if(e.return===null||e.return===l)return!0;e=e.return}e.sibling.return=e.return,e=e.sibling}}return!0}function bt(l,e,t,a){e&=~Oc,e&=~Kt,l.suspendedLanes|=e,l.pingedLanes&=~e,a&&(l.warmLanes|=e),a=l.expirationTimes;for(var n=e;0<n;){var u=31-de(n),i=1<<u;a[u]=-1,n&=~i}t!==0&&Mf(l,t,e)}function ju(){return(ol&6)===0?(hn(0),!1):!0}function Bc(){if(P!==null){if(dl===0)var l=P.return;else l=P,Ze=Bt=null,Ii(l),ma=null,Fa=0,l=P;for(;l!==null;)Wo(l.alternate,l),l=l.return;P=null}}function Aa(l,e){var t=l.timeoutHandle;t!==-1&&(l.timeoutHandle=-1,Dh(t)),t=l.cancelPendingCommit,t!==null&&(l.cancelPendingCommit=null,t()),Pe=0,Bc(),bl=l,P=t=Xe(l.current,null),el=e,dl=0,ge=null,vt=!1,Sa=Da(l,e),_c=!1,xa=pe=Oc=Kt=yt=Ol=0,ce=dn=null,Dc=!1,(e&8)!==0&&(e|=e&32);var a=l.entangledLanes;if(a!==0)for(l=l.entanglements,a&=e;0<a;){var n=31-de(a),u=1<<n;e|=l[n],a&=~u}return Ie=e,Kn(),t}function Sr(l,e){W=null,T.H=an,e===da||e===Pn?(e=Hs(),dl=3):e===Xi?(e=Hs(),dl=4):dl=e===hc?8:e!==null&&typeof e=="object"&&typeof e.then=="function"?6:1,ge=e,P===null&&(Ol=1,mu(l,Ae(e,l.current)))}function xr(){var l=ve.current;return l===null?!0:(el&4194048)===el?Ne===null:(el&62914560)===el||(el&536870912)!==0?l===Ne:!1}function Tr(){var l=T.H;return T.H=an,l===null?an:l}function Ar(){var l=T.A;return T.A=oh,l}function zu(){Ol=4,vt||(el&4194048)!==el&&ve.current!==null||(Sa=!0),(yt&134217727)===0&&(Kt&134217727)===0||bl===null||bt(bl,el,pe,!1)}function qc(l,e,t){var a=ol;ol|=2;var n=Tr(),u=Ar();(bl!==l||el!==e)&&(Au=null,Aa(l,e)),e=!1;var i=Ol;l:do try{if(dl!==0&&P!==null){var f=P,r=ge;switch(dl){case 8:Bc(),i=6;break l;case 3:case 2:case 9:case 6:ve.current===null&&(e=!0);var y=dl;if(dl=0,ge=null,ja(l,f,r,y),t&&Sa){i=0;break l}break;default:y=dl,dl=0,ge=null,ja(l,f,r,y)}}mh(),i=Ol;break}catch(x){Sr(l,x)}while(!0);return e&&l.shellSuspendCounter++,Ze=Bt=null,ol=a,T.H=n,T.A=u,P===null&&(bl=null,el=0,Kn()),i}function mh(){for(;P!==null;)jr(P)}function hh(l,e){var t=ol;ol|=2;var a=Tr(),n=Ar();bl!==l||el!==e?(Au=null,Tu=oe()+500,Aa(l,e)):Sa=Da(l,e);l:do try{if(dl!==0&&P!==null){e=P;var u=ge;e:switch(dl){case 1:dl=0,ge=null,ja(l,e,u,1);break;case 2:case 9:if(Us(u)){dl=0,ge=null,zr(e);break}e=function(){dl!==2&&dl!==9||bl!==l||(dl=7),Be(l)},u.then(e,e);break l;case 3:dl=7;break l;case 4:dl=5;break l;case 7:Us(u)?(dl=0,ge=null,zr(e)):(dl=0,ge=null,ja(l,e,u,7));break;case 5:var i=null;switch(P.tag){case 26:i=P.memoizedState;case 5:case 27:var f=P;if(i?od(i):f.stateNode.complete){dl=0,ge=null;var r=f.sibling;if(r!==null)P=r;else{var y=f.return;y!==null?(P=y,Eu(y)):P=null}break e}}dl=0,ge=null,ja(l,e,u,5);break;case 6:dl=0,ge=null,ja(l,e,u,6);break;case 8:Bc(),Ol=6;break l;default:throw Error(h(462))}}vh();break}catch(x){Sr(l,x)}while(!0);return Ze=Bt=null,T.H=a,T.A=n,ol=t,P!==null?0:(bl=null,el=0,Kn(),Ol)}function vh(){for(;P!==null&&!Gd();)jr(P)}function jr(l){var e=wo(l.alternate,l,Ie);l.memoizedProps=l.pendingProps,e===null?Eu(l):P=e}function zr(l){var e=l,t=e.alternate;switch(e.tag){case 15:case 0:e=Zo(t,e,e.pendingProps,e.type,void 0,el);break;case 11:e=Zo(t,e,e.pendingProps,e.type.render,e.ref,el);break;case 5:Ii(e);default:Wo(t,e),e=P=Ts(e,Ie),e=wo(t,e,Ie)}l.memoizedProps=l.pendingProps,e===null?Eu(l):P=e}function ja(l,e,t,a){Ze=Bt=null,Ii(e),ma=null,Fa=0;var n=e.return;try{if(ah(l,n,e,t,el)){Ol=1,mu(l,Ae(t,l.current)),P=null;return}}catch(u){if(n!==null)throw P=n,u;Ol=1,mu(l,Ae(t,l.current)),P=null;return}e.flags&32768?(al||a===1?l=!0:Sa||(el&536870912)!==0?l=!1:(vt=l=!0,(a===2||a===9||a===3||a===6)&&(a=ve.current,a!==null&&a.tag===13&&(a.flags|=16384))),Er(e,l)):Eu(e)}function Eu(l){var e=l;do{if((e.flags&32768)!==0){Er(e,vt);return}l=e.return;var t=ih(e.alternate,e,Ie);if(t!==null){P=t;return}if(e=e.sibling,e!==null){P=e;return}P=e=l}while(e!==null);Ol===0&&(Ol=5)}function Er(l,e){do{var t=ch(l.alternate,l);if(t!==null){t.flags&=32767,P=t;return}if(t=l.return,t!==null&&(t.flags|=32768,t.subtreeFlags=0,t.deletions=null),!e&&(l=l.sibling,l!==null)){P=l;return}P=l=t}while(l!==null);Ol=6,P=null}function Nr(l,e,t,a,n,u,i,f,r){l.cancelPendingCommit=null;do Nu();while(Ql!==0);if((ol&6)!==0)throw Error(h(327));if(e!==null){if(e===l.current)throw Error(h(177));if(u=e.lanes|e.childLanes,u|=zi,wd(l,t,u,i,f,r),l===bl&&(P=bl=null,el=0),Ta=e,pt=l,Pe=t,Uc=u,Rc=n,yr=a,(e.subtreeFlags&10256)!==0||(e.flags&10256)!==0?(l.callbackNode=null,l.callbackPriority=0,bh(Cn,function(){return Dr(),null})):(l.callbackNode=null,l.callbackPriority=0),a=(e.flags&13878)!==0,(e.subtreeFlags&13878)!==0||a){a=T.T,T.T=null,n=C.p,C.p=2,i=ol,ol|=4;try{fh(l,e,t)}finally{ol=i,C.p=n,T.T=a}}Ql=1,Mr(),Cr(),_r()}}function Mr(){if(Ql===1){Ql=0;var l=pt,e=Ta,t=(e.flags&13878)!==0;if((e.subtreeFlags&13878)!==0||t){t=T.T,T.T=null;var a=C.p;C.p=2;var n=ol;ol|=4;try{fr(e,l);var u=Fc,i=ms(l.containerInfo),f=u.focusedElem,r=u.selectionRange;if(i!==f&&f&&f.ownerDocument&&ds(f.ownerDocument.documentElement,f)){if(r!==null&&Si(f)){var y=r.start,x=r.end;if(x===void 0&&(x=y),"selectionStart"in f)f.selectionStart=y,f.selectionEnd=Math.min(x,f.value.length);else{var j=f.ownerDocument||document,g=j&&j.defaultView||window;if(g.getSelection){var p=g.getSelection(),R=f.textContent.length,K=Math.min(r.start,R),yl=r.end===void 0?K:Math.min(r.end,R);!p.extend&&K>yl&&(i=yl,yl=K,K=i);var m=rs(f,K),d=rs(f,yl);if(m&&d&&(p.rangeCount!==1||p.anchorNode!==m.node||p.anchorOffset!==m.offset||p.focusNode!==d.node||p.focusOffset!==d.offset)){var v=j.createRange();v.setStart(m.node,m.offset),p.removeAllRanges(),K>yl?(p.addRange(v),p.extend(d.node,d.offset)):(v.setEnd(d.node,d.offset),p.addRange(v))}}}}for(j=[],p=f;p=p.parentNode;)p.nodeType===1&&j.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof f.focus=="function"&&f.focus(),f=0;f<j.length;f++){var A=j[f];A.element.scrollLeft=A.left,A.element.scrollTop=A.top}}Yu=!!wc,Fc=wc=null}finally{ol=n,C.p=a,T.T=t}}l.current=e,Ql=2}}function Cr(){if(Ql===2){Ql=0;var l=pt,e=Ta,t=(e.flags&8772)!==0;if((e.subtreeFlags&8772)!==0||t){t=T.T,T.T=null;var a=C.p;C.p=2;var n=ol;ol|=4;try{ar(l,e.alternate,e)}finally{ol=n,C.p=a,T.T=t}}Ql=3}}function _r(){if(Ql===4||Ql===3){Ql=0,Yd();var l=pt,e=Ta,t=Pe,a=yr;(e.subtreeFlags&10256)!==0||(e.flags&10256)!==0?Ql=5:(Ql=0,Ta=pt=null,Or(l,l.pendingLanes));var n=l.pendingLanes;if(n===0&&(gt=null),ei(t),e=e.stateNode,re&&typeof re.onCommitFiberRoot=="function")try{re.onCommitFiberRoot(Oa,e,void 0,(e.current.flags&128)===128)}catch{}if(a!==null){e=T.T,n=C.p,C.p=2,T.T=null;try{for(var u=l.onRecoverableError,i=0;i<a.length;i++){var f=a[i];u(f.value,{componentStack:f.stack})}}finally{T.T=e,C.p=n}}(Pe&3)!==0&&Nu(),Be(l),n=l.pendingLanes,(t&261930)!==0&&(n&42)!==0?l===Hc?mn++:(mn=0,Hc=l):mn=0,hn(0)}}function Or(l,e){(l.pooledCacheLanes&=e)===0&&(e=l.pooledCache,e!=null&&(l.pooledCache=null,ka(e)))}function Nu(){return Mr(),Cr(),_r(),Dr()}function Dr(){if(Ql!==5)return!1;var l=pt,e=Uc;Uc=0;var t=ei(Pe),a=T.T,n=C.p;try{C.p=32>t?32:t,T.T=null,t=Rc,Rc=null;var u=pt,i=Pe;if(Ql=0,Ta=pt=null,Pe=0,(ol&6)!==0)throw Error(h(331));var f=ol;if(ol|=4,mr(u.current),or(u,u.current,i,t),ol=f,hn(0,!1),re&&typeof re.onPostCommitFiberRoot=="function")try{re.onPostCommitFiberRoot(Oa,u)}catch{}return!0}finally{C.p=n,T.T=a,Or(l,e)}}function Ur(l,e,t){e=Ae(t,e),e=mc(l.stateNode,e,2),l=rt(l,e,2),l!==null&&(Ua(l,2),Be(l))}function ml(l,e,t){if(l.tag===3)Ur(l,l,t);else for(;e!==null;){if(e.tag===3){Ur(e,l,t);break}else if(e.tag===1){var a=e.stateNode;if(typeof e.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(gt===null||!gt.has(a))){l=Ae(t,l),t=Ro(2),a=rt(e,t,2),a!==null&&(Ho(t,a,e,l),Ua(a,2),Be(a));break}}e=e.return}}function Gc(l,e,t){var a=l.pingCache;if(a===null){a=l.pingCache=new rh;var n=new Set;a.set(e,n)}else n=a.get(e),n===void 0&&(n=new Set,a.set(e,n));n.has(t)||(_c=!0,n.add(t),l=yh.bind(null,l,e,t),e.then(l,l))}function yh(l,e,t){var a=l.pingCache;a!==null&&a.delete(e),l.pingedLanes|=l.suspendedLanes&t,l.warmLanes&=~t,bl===l&&(el&t)===t&&(Ol===4||Ol===3&&(el&62914560)===el&&300>oe()-xu?(ol&2)===0&&Aa(l,0):Oc|=t,xa===el&&(xa=0)),Be(l)}function Rr(l,e){e===0&&(e=Nf()),l=Ut(l,e),l!==null&&(Ua(l,e),Be(l))}function gh(l){var e=l.memoizedState,t=0;e!==null&&(t=e.retryLane),Rr(l,t)}function ph(l,e){var t=0;switch(l.tag){case 31:case 13:var a=l.stateNode,n=l.memoizedState;n!==null&&(t=n.retryLane);break;case 19:a=l.stateNode;break;case 22:a=l.stateNode._retryCache;break;default:throw Error(h(314))}a!==null&&a.delete(e),Rr(l,t)}function bh(l,e){return $u(l,e)}var Mu=null,za=null,Yc=!1,Cu=!1,Xc=!1,St=0;function Be(l){l!==za&&l.next===null&&(za===null?Mu=za=l:za=za.next=l),Cu=!0,Yc||(Yc=!0,xh())}function hn(l,e){if(!Xc&&Cu){Xc=!0;do for(var t=!1,a=Mu;a!==null;){if(l!==0){var n=a.pendingLanes;if(n===0)var u=0;else{var i=a.suspendedLanes,f=a.pingedLanes;u=(1<<31-de(42|l)+1)-1,u&=n&~(i&~f),u=u&201326741?u&201326741|1:u?u|2:0}u!==0&&(t=!0,Gr(a,u))}else u=el,u=Un(a,a===bl?u:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(u&3)===0||Da(a,u)||(t=!0,Gr(a,u));a=a.next}while(t);Xc=!1}}function Sh(){Hr()}function Hr(){Cu=Yc=!1;var l=0;St!==0&&Oh()&&(l=St);for(var e=oe(),t=null,a=Mu;a!==null;){var n=a.next,u=Br(a,e);u===0?(a.next=null,t===null?Mu=n:t.next=n,n===null&&(za=t)):(t=a,(l!==0||(u&3)!==0)&&(Cu=!0)),a=n}Ql!==0&&Ql!==5||hn(l),St!==0&&(St=0)}function Br(l,e){for(var t=l.suspendedLanes,a=l.pingedLanes,n=l.expirationTimes,u=l.pendingLanes&-62914561;0<u;){var i=31-de(u),f=1<<i,r=n[i];r===-1?((f&t)===0||(f&a)!==0)&&(n[i]=kd(f,e)):r<=e&&(l.expiredLanes|=f),u&=~f}if(e=bl,t=el,t=Un(l,l===e?t:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),a=l.callbackNode,t===0||l===e&&(dl===2||dl===9)||l.cancelPendingCommit!==null)return a!==null&&a!==null&&Iu(a),l.callbackNode=null,l.callbackPriority=0;if((t&3)===0||Da(l,t)){if(e=t&-t,e===l.callbackPriority)return e;switch(a!==null&&Iu(a),ei(t)){case 2:case 8:t=zf;break;case 32:t=Cn;break;case 268435456:t=Ef;break;default:t=Cn}return a=qr.bind(null,l),t=$u(t,a),l.callbackPriority=e,l.callbackNode=t,e}return a!==null&&a!==null&&Iu(a),l.callbackPriority=2,l.callbackNode=null,2}function qr(l,e){if(Ql!==0&&Ql!==5)return l.callbackNode=null,l.callbackPriority=0,null;var t=l.callbackNode;if(Nu()&&l.callbackNode!==t)return null;var a=el;return a=Un(l,l===bl?a:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),a===0?null:(pr(l,a,e),Br(l,oe()),l.callbackNode!=null&&l.callbackNode===t?qr.bind(null,l):null)}function Gr(l,e){if(Nu())return null;pr(l,e,!0)}function xh(){Uh(function(){(ol&6)!==0?$u(jf,Sh):Hr()})}function Qc(){if(St===0){var l=oa;l===0&&(l=_n,_n<<=1,(_n&261888)===0&&(_n=256)),St=l}return St}function Yr(l){return l==null||typeof l=="symbol"||typeof l=="boolean"?null:typeof l=="function"?l:qn(""+l)}function Xr(l,e){var t=e.ownerDocument.createElement("input");return t.name=e.name,t.value=e.value,l.id&&t.setAttribute("form",l.id),e.parentNode.insertBefore(t,e),l=new FormData(l),t.parentNode.removeChild(t),l}function Th(l,e,t,a,n){if(e==="submit"&&t&&t.stateNode===n){var u=Yr((n[te]||null).action),i=a.submitter;i&&(e=(e=i[te]||null)?Yr(e.formAction):i.getAttribute("formAction"),e!==null&&(u=e,i=null));var f=new Qn("action","action",null,a,n);l.push({event:f,listeners:[{instance:null,listener:function(){if(a.defaultPrevented){if(St!==0){var r=i?Xr(n,i):new FormData(n);cc(t,{pending:!0,data:r,method:n.method,action:u},null,r)}}else typeof u=="function"&&(f.preventDefault(),r=i?Xr(n,i):new FormData(n),cc(t,{pending:!0,data:r,method:n.method,action:u},u,r))},currentTarget:n}]})}}for(var Zc=0;Zc<ji.length;Zc++){var Lc=ji[Zc],Ah=Lc.toLowerCase(),jh=Lc[0].toUpperCase()+Lc.slice(1);_e(Ah,"on"+jh)}_e(ys,"onAnimationEnd"),_e(gs,"onAnimationIteration"),_e(ps,"onAnimationStart"),_e("dblclick","onDoubleClick"),_e("focusin","onFocus"),_e("focusout","onBlur"),_e(Xm,"onTransitionRun"),_e(Qm,"onTransitionStart"),_e(Zm,"onTransitionCancel"),_e(bs,"onTransitionEnd"),Wt("onMouseEnter",["mouseout","mouseover"]),Wt("onMouseLeave",["mouseout","mouseover"]),Wt("onPointerEnter",["pointerout","pointerover"]),Wt("onPointerLeave",["pointerout","pointerover"]),Ct("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),Ct("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),Ct("onBeforeInput",["compositionend","keypress","textInput","paste"]),Ct("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),Ct("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),Ct("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var vn="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),zh=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(vn));function Qr(l,e){e=(e&4)!==0;for(var t=0;t<l.length;t++){var a=l[t],n=a.event;a=a.listeners;l:{var u=void 0;if(e)for(var i=a.length-1;0<=i;i--){var f=a[i],r=f.instance,y=f.currentTarget;if(f=f.listener,r!==u&&n.isPropagationStopped())break l;u=f,n.currentTarget=y;try{u(n)}catch(x){Vn(x)}n.currentTarget=null,u=r}else for(i=0;i<a.length;i++){if(f=a[i],r=f.instance,y=f.currentTarget,f=f.listener,r!==u&&n.isPropagationStopped())break l;u=f,n.currentTarget=y;try{u(n)}catch(x){Vn(x)}n.currentTarget=null,u=r}}}}function ll(l,e){var t=e[ti];t===void 0&&(t=e[ti]=new Set);var a=l+"__bubble";t.has(a)||(Zr(e,l,2,!1),t.add(a))}function Vc(l,e,t){var a=0;e&&(a|=4),Zr(t,l,a,e)}var _u="_reactListening"+Math.random().toString(36).slice(2);function Kc(l){if(!l[_u]){l[_u]=!0,Rf.forEach(function(t){t!=="selectionchange"&&(zh.has(t)||Vc(t,!1,l),Vc(t,!0,l))});var e=l.nodeType===9?l:l.ownerDocument;e===null||e[_u]||(e[_u]=!0,Vc("selectionchange",!1,e))}}function Zr(l,e,t,a){switch(gd(e)){case 2:var n=Ph;break;case 8:n=lv;break;default:n=cf}t=n.bind(null,e,t,l),n=void 0,!ri||e!=="touchstart"&&e!=="touchmove"&&e!=="wheel"||(n=!0),a?n!==void 0?l.addEventListener(e,t,{capture:!0,passive:n}):l.addEventListener(e,t,!0):n!==void 0?l.addEventListener(e,t,{passive:n}):l.addEventListener(e,t,!1)}function Jc(l,e,t,a,n){var u=a;if((e&1)===0&&(e&2)===0&&a!==null)l:for(;;){if(a===null)return;var i=a.tag;if(i===3||i===4){var f=a.stateNode.containerInfo;if(f===n)break;if(i===4)for(i=a.return;i!==null;){var r=i.tag;if((r===3||r===4)&&i.stateNode.containerInfo===n)return;i=i.return}for(;f!==null;){if(i=kt(f),i===null)return;if(r=i.tag,r===5||r===6||r===26||r===27){a=u=i;continue l}f=f.parentNode}}a=a.return}Jf(function(){var y=u,x=si(t),j=[];l:{var g=Ss.get(l);if(g!==void 0){var p=Qn,R=l;switch(l){case"keypress":if(Yn(t)===0)break l;case"keydown":case"keyup":p=pm;break;case"focusin":R="focus",p=vi;break;case"focusout":R="blur",p=vi;break;case"beforeblur":case"afterblur":p=vi;break;case"click":if(t.button===2)break l;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":p=Ff;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":p=im;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":p=xm;break;case ys:case gs:case ps:p=sm;break;case bs:p=Am;break;case"scroll":case"scrollend":p=nm;break;case"wheel":p=zm;break;case"copy":case"cut":case"paste":p=rm;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":p=$f;break;case"toggle":case"beforetoggle":p=Nm}var K=(e&4)!==0,yl=!K&&(l==="scroll"||l==="scrollend"),m=K?g!==null?g+"Capture":null:g;K=[];for(var d=y,v;d!==null;){var A=d;if(v=A.stateNode,A=A.tag,A!==5&&A!==26&&A!==27||v===null||m===null||(A=Ba(d,m),A!=null&&K.push(yn(d,A,v))),yl)break;d=d.return}0<K.length&&(g=new p(g,R,null,t,x),j.push({event:g,listeners:K}))}}if((e&7)===0){l:{if(g=l==="mouseover"||l==="pointerover",p=l==="mouseout"||l==="pointerout",g&&t!==fi&&(R=t.relatedTarget||t.fromElement)&&(kt(R)||R[Jt]))break l;if((p||g)&&(g=x.window===x?x:(g=x.ownerDocument)?g.defaultView||g.parentWindow:window,p?(R=t.relatedTarget||t.toElement,p=y,R=R?kt(R):null,R!==null&&(yl=G(R),K=R.tag,R!==yl||K!==5&&K!==27&&K!==6)&&(R=null)):(p=null,R=y),p!==R)){if(K=Ff,A="onMouseLeave",m="onMouseEnter",d="mouse",(l==="pointerout"||l==="pointerover")&&(K=$f,A="onPointerLeave",m="onPointerEnter",d="pointer"),yl=p==null?g:Ha(p),v=R==null?g:Ha(R),g=new K(A,d+"leave",p,t,x),g.target=yl,g.relatedTarget=v,A=null,kt(x)===y&&(K=new K(m,d+"enter",R,t,x),K.target=v,K.relatedTarget=yl,A=K),yl=A,p&&R)e:{for(K=Eh,m=p,d=R,v=0,A=m;A;A=K(A))v++;A=0;for(var Q=d;Q;Q=K(Q))A++;for(;0<v-A;)m=K(m),v--;for(;0<A-v;)d=K(d),A--;for(;v--;){if(m===d||d!==null&&m===d.alternate){K=m;break e}m=K(m),d=K(d)}K=null}else K=null;p!==null&&Lr(j,g,p,K,!1),R!==null&&yl!==null&&Lr(j,yl,R,K,!0)}}l:{if(g=y?Ha(y):window,p=g.nodeName&&g.nodeName.toLowerCase(),p==="select"||p==="input"&&g.type==="file")var fl=us;else if(as(g))if(is)fl=qm;else{fl=Hm;var X=Rm}else p=g.nodeName,!p||p.toLowerCase()!=="input"||g.type!=="checkbox"&&g.type!=="radio"?y&&ci(y.elementType)&&(fl=us):fl=Bm;if(fl&&(fl=fl(l,y))){ns(j,fl,t,x);break l}X&&X(l,g,y),l==="focusout"&&y&&g.type==="number"&&y.memoizedProps.value!=null&&ii(g,"number",g.value)}switch(X=y?Ha(y):window,l){case"focusin":(as(X)||X.contentEditable==="true")&&(ta=X,xi=y,Va=null);break;case"focusout":Va=xi=ta=null;break;case"mousedown":Ti=!0;break;case"contextmenu":case"mouseup":case"dragend":Ti=!1,hs(j,t,x);break;case"selectionchange":if(Ym)break;case"keydown":case"keyup":hs(j,t,x)}var $;if(gi)l:{switch(l){case"compositionstart":var tl="onCompositionStart";break l;case"compositionend":tl="onCompositionEnd";break l;case"compositionupdate":tl="onCompositionUpdate";break l}tl=void 0}else ea?es(l,t)&&(tl="onCompositionEnd"):l==="keydown"&&t.keyCode===229&&(tl="onCompositionStart");tl&&(If&&t.locale!=="ko"&&(ea||tl!=="onCompositionStart"?tl==="onCompositionEnd"&&ea&&($=kf()):(nt=x,di="value"in nt?nt.value:nt.textContent,ea=!0)),X=Ou(y,tl),0<X.length&&(tl=new Wf(tl,l,null,t,x),j.push({event:tl,listeners:X}),$?tl.data=$:($=ts(t),$!==null&&(tl.data=$)))),($=Cm?_m(l,t):Om(l,t))&&(tl=Ou(y,"onBeforeInput"),0<tl.length&&(X=new Wf("onBeforeInput","beforeinput",null,t,x),j.push({event:X,listeners:tl}),X.data=$)),Th(j,l,y,t,x)}Qr(j,e)})}function yn(l,e,t){return{instance:l,listener:e,currentTarget:t}}function Ou(l,e){for(var t=e+"Capture",a=[];l!==null;){var n=l,u=n.stateNode;if(n=n.tag,n!==5&&n!==26&&n!==27||u===null||(n=Ba(l,t),n!=null&&a.unshift(yn(l,n,u)),n=Ba(l,e),n!=null&&a.push(yn(l,n,u))),l.tag===3)return a;l=l.return}return[]}function Eh(l){if(l===null)return null;do l=l.return;while(l&&l.tag!==5&&l.tag!==27);return l||null}function Lr(l,e,t,a,n){for(var u=e._reactName,i=[];t!==null&&t!==a;){var f=t,r=f.alternate,y=f.stateNode;if(f=f.tag,r!==null&&r===a)break;f!==5&&f!==26&&f!==27||y===null||(r=y,n?(y=Ba(t,u),y!=null&&i.unshift(yn(t,y,r))):n||(y=Ba(t,u),y!=null&&i.push(yn(t,y,r)))),t=t.return}i.length!==0&&l.push({event:e,listeners:i})}var Nh=/\r\n?/g,Mh=/\u0000|\uFFFD/g;function Vr(l){return(typeof l=="string"?l:""+l).replace(Nh,`
49
+ `).replace(Mh,"")}function Kr(l,e){return e=Vr(e),Vr(l)===e}function vl(l,e,t,a,n,u){switch(t){case"children":typeof a=="string"?e==="body"||e==="textarea"&&a===""||It(l,a):(typeof a=="number"||typeof a=="bigint")&&e!=="body"&&It(l,""+a);break;case"className":Hn(l,"class",a);break;case"tabIndex":Hn(l,"tabindex",a);break;case"dir":case"role":case"viewBox":case"width":case"height":Hn(l,t,a);break;case"style":Vf(l,a,u);break;case"data":if(e!=="object"){Hn(l,"data",a);break}case"src":case"href":if(a===""&&(e!=="a"||t!=="href")){l.removeAttribute(t);break}if(a==null||typeof a=="function"||typeof a=="symbol"||typeof a=="boolean"){l.removeAttribute(t);break}a=qn(""+a),l.setAttribute(t,a);break;case"action":case"formAction":if(typeof a=="function"){l.setAttribute(t,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof u=="function"&&(t==="formAction"?(e!=="input"&&vl(l,e,"name",n.name,n,null),vl(l,e,"formEncType",n.formEncType,n,null),vl(l,e,"formMethod",n.formMethod,n,null),vl(l,e,"formTarget",n.formTarget,n,null)):(vl(l,e,"encType",n.encType,n,null),vl(l,e,"method",n.method,n,null),vl(l,e,"target",n.target,n,null)));if(a==null||typeof a=="symbol"||typeof a=="boolean"){l.removeAttribute(t);break}a=qn(""+a),l.setAttribute(t,a);break;case"onClick":a!=null&&(l.onclick=Ge);break;case"onScroll":a!=null&&ll("scroll",l);break;case"onScrollEnd":a!=null&&ll("scrollend",l);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(h(61));if(t=a.__html,t!=null){if(n.children!=null)throw Error(h(60));l.innerHTML=t}}break;case"multiple":l.multiple=a&&typeof a!="function"&&typeof a!="symbol";break;case"muted":l.muted=a&&typeof a!="function"&&typeof a!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(a==null||typeof a=="function"||typeof a=="boolean"||typeof a=="symbol"){l.removeAttribute("xlink:href");break}t=qn(""+a),l.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":a!=null&&typeof a!="function"&&typeof a!="symbol"?l.setAttribute(t,""+a):l.removeAttribute(t);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":a&&typeof a!="function"&&typeof a!="symbol"?l.setAttribute(t,""):l.removeAttribute(t);break;case"capture":case"download":a===!0?l.setAttribute(t,""):a!==!1&&a!=null&&typeof a!="function"&&typeof a!="symbol"?l.setAttribute(t,a):l.removeAttribute(t);break;case"cols":case"rows":case"size":case"span":a!=null&&typeof a!="function"&&typeof a!="symbol"&&!isNaN(a)&&1<=a?l.setAttribute(t,a):l.removeAttribute(t);break;case"rowSpan":case"start":a==null||typeof a=="function"||typeof a=="symbol"||isNaN(a)?l.removeAttribute(t):l.setAttribute(t,a);break;case"popover":ll("beforetoggle",l),ll("toggle",l),Rn(l,"popover",a);break;case"xlinkActuate":qe(l,"http://www.w3.org/1999/xlink","xlink:actuate",a);break;case"xlinkArcrole":qe(l,"http://www.w3.org/1999/xlink","xlink:arcrole",a);break;case"xlinkRole":qe(l,"http://www.w3.org/1999/xlink","xlink:role",a);break;case"xlinkShow":qe(l,"http://www.w3.org/1999/xlink","xlink:show",a);break;case"xlinkTitle":qe(l,"http://www.w3.org/1999/xlink","xlink:title",a);break;case"xlinkType":qe(l,"http://www.w3.org/1999/xlink","xlink:type",a);break;case"xmlBase":qe(l,"http://www.w3.org/XML/1998/namespace","xml:base",a);break;case"xmlLang":qe(l,"http://www.w3.org/XML/1998/namespace","xml:lang",a);break;case"xmlSpace":qe(l,"http://www.w3.org/XML/1998/namespace","xml:space",a);break;case"is":Rn(l,"is",a);break;case"innerText":case"textContent":break;default:(!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(t=tm.get(t)||t,Rn(l,t,a))}}function kc(l,e,t,a,n,u){switch(t){case"style":Vf(l,a,u);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(h(61));if(t=a.__html,t!=null){if(n.children!=null)throw Error(h(60));l.innerHTML=t}}break;case"children":typeof a=="string"?It(l,a):(typeof a=="number"||typeof a=="bigint")&&It(l,""+a);break;case"onScroll":a!=null&&ll("scroll",l);break;case"onScrollEnd":a!=null&&ll("scrollend",l);break;case"onClick":a!=null&&(l.onclick=Ge);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Hf.hasOwnProperty(t))l:{if(t[0]==="o"&&t[1]==="n"&&(n=t.endsWith("Capture"),e=t.slice(2,n?t.length-7:void 0),u=l[te]||null,u=u!=null?u[t]:null,typeof u=="function"&&l.removeEventListener(e,u,n),typeof a=="function")){typeof u!="function"&&u!==null&&(t in l?l[t]=null:l.hasAttribute(t)&&l.removeAttribute(t)),l.addEventListener(e,a,n);break l}t in l?l[t]=a:a===!0?l.setAttribute(t,""):Rn(l,t,a)}}}function Fl(l,e,t){switch(e){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":ll("error",l),ll("load",l);var a=!1,n=!1,u;for(u in t)if(t.hasOwnProperty(u)){var i=t[u];if(i!=null)switch(u){case"src":a=!0;break;case"srcSet":n=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(h(137,e));default:vl(l,e,u,i,t,null)}}n&&vl(l,e,"srcSet",t.srcSet,t,null),a&&vl(l,e,"src",t.src,t,null);return;case"input":ll("invalid",l);var f=u=i=n=null,r=null,y=null;for(a in t)if(t.hasOwnProperty(a)){var x=t[a];if(x!=null)switch(a){case"name":n=x;break;case"type":i=x;break;case"checked":r=x;break;case"defaultChecked":y=x;break;case"value":u=x;break;case"defaultValue":f=x;break;case"children":case"dangerouslySetInnerHTML":if(x!=null)throw Error(h(137,e));break;default:vl(l,e,a,x,t,null)}}Xf(l,u,f,r,y,i,n,!1);return;case"select":ll("invalid",l),a=i=u=null;for(n in t)if(t.hasOwnProperty(n)&&(f=t[n],f!=null))switch(n){case"value":u=f;break;case"defaultValue":i=f;break;case"multiple":a=f;default:vl(l,e,n,f,t,null)}e=u,t=i,l.multiple=!!a,e!=null?$t(l,!!a,e,!1):t!=null&&$t(l,!!a,t,!0);return;case"textarea":ll("invalid",l),u=n=a=null;for(i in t)if(t.hasOwnProperty(i)&&(f=t[i],f!=null))switch(i){case"value":a=f;break;case"defaultValue":n=f;break;case"children":u=f;break;case"dangerouslySetInnerHTML":if(f!=null)throw Error(h(91));break;default:vl(l,e,i,f,t,null)}Zf(l,a,n,u);return;case"option":for(r in t)if(t.hasOwnProperty(r)&&(a=t[r],a!=null))switch(r){case"selected":l.selected=a&&typeof a!="function"&&typeof a!="symbol";break;default:vl(l,e,r,a,t,null)}return;case"dialog":ll("beforetoggle",l),ll("toggle",l),ll("cancel",l),ll("close",l);break;case"iframe":case"object":ll("load",l);break;case"video":case"audio":for(a=0;a<vn.length;a++)ll(vn[a],l);break;case"image":ll("error",l),ll("load",l);break;case"details":ll("toggle",l);break;case"embed":case"source":case"link":ll("error",l),ll("load",l);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(y in t)if(t.hasOwnProperty(y)&&(a=t[y],a!=null))switch(y){case"children":case"dangerouslySetInnerHTML":throw Error(h(137,e));default:vl(l,e,y,a,t,null)}return;default:if(ci(e)){for(x in t)t.hasOwnProperty(x)&&(a=t[x],a!==void 0&&kc(l,e,x,a,t,void 0));return}}for(f in t)t.hasOwnProperty(f)&&(a=t[f],a!=null&&vl(l,e,f,a,t,null))}function Ch(l,e,t,a){switch(e){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var n=null,u=null,i=null,f=null,r=null,y=null,x=null;for(p in t){var j=t[p];if(t.hasOwnProperty(p)&&j!=null)switch(p){case"checked":break;case"value":break;case"defaultValue":r=j;default:a.hasOwnProperty(p)||vl(l,e,p,null,a,j)}}for(var g in a){var p=a[g];if(j=t[g],a.hasOwnProperty(g)&&(p!=null||j!=null))switch(g){case"type":u=p;break;case"name":n=p;break;case"checked":y=p;break;case"defaultChecked":x=p;break;case"value":i=p;break;case"defaultValue":f=p;break;case"children":case"dangerouslySetInnerHTML":if(p!=null)throw Error(h(137,e));break;default:p!==j&&vl(l,e,g,p,a,j)}}ui(l,i,f,r,y,x,u,n);return;case"select":p=i=f=g=null;for(u in t)if(r=t[u],t.hasOwnProperty(u)&&r!=null)switch(u){case"value":break;case"multiple":p=r;default:a.hasOwnProperty(u)||vl(l,e,u,null,a,r)}for(n in a)if(u=a[n],r=t[n],a.hasOwnProperty(n)&&(u!=null||r!=null))switch(n){case"value":g=u;break;case"defaultValue":f=u;break;case"multiple":i=u;default:u!==r&&vl(l,e,n,u,a,r)}e=f,t=i,a=p,g!=null?$t(l,!!t,g,!1):!!a!=!!t&&(e!=null?$t(l,!!t,e,!0):$t(l,!!t,t?[]:"",!1));return;case"textarea":p=g=null;for(f in t)if(n=t[f],t.hasOwnProperty(f)&&n!=null&&!a.hasOwnProperty(f))switch(f){case"value":break;case"children":break;default:vl(l,e,f,null,a,n)}for(i in a)if(n=a[i],u=t[i],a.hasOwnProperty(i)&&(n!=null||u!=null))switch(i){case"value":g=n;break;case"defaultValue":p=n;break;case"children":break;case"dangerouslySetInnerHTML":if(n!=null)throw Error(h(91));break;default:n!==u&&vl(l,e,i,n,a,u)}Qf(l,g,p);return;case"option":for(var R in t)if(g=t[R],t.hasOwnProperty(R)&&g!=null&&!a.hasOwnProperty(R))switch(R){case"selected":l.selected=!1;break;default:vl(l,e,R,null,a,g)}for(r in a)if(g=a[r],p=t[r],a.hasOwnProperty(r)&&g!==p&&(g!=null||p!=null))switch(r){case"selected":l.selected=g&&typeof g!="function"&&typeof g!="symbol";break;default:vl(l,e,r,g,a,p)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var K in t)g=t[K],t.hasOwnProperty(K)&&g!=null&&!a.hasOwnProperty(K)&&vl(l,e,K,null,a,g);for(y in a)if(g=a[y],p=t[y],a.hasOwnProperty(y)&&g!==p&&(g!=null||p!=null))switch(y){case"children":case"dangerouslySetInnerHTML":if(g!=null)throw Error(h(137,e));break;default:vl(l,e,y,g,a,p)}return;default:if(ci(e)){for(var yl in t)g=t[yl],t.hasOwnProperty(yl)&&g!==void 0&&!a.hasOwnProperty(yl)&&kc(l,e,yl,void 0,a,g);for(x in a)g=a[x],p=t[x],!a.hasOwnProperty(x)||g===p||g===void 0&&p===void 0||kc(l,e,x,g,a,p);return}}for(var m in t)g=t[m],t.hasOwnProperty(m)&&g!=null&&!a.hasOwnProperty(m)&&vl(l,e,m,null,a,g);for(j in a)g=a[j],p=t[j],!a.hasOwnProperty(j)||g===p||g==null&&p==null||vl(l,e,j,g,a,p)}function Jr(l){switch(l){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function _h(){if(typeof performance.getEntriesByType=="function"){for(var l=0,e=0,t=performance.getEntriesByType("resource"),a=0;a<t.length;a++){var n=t[a],u=n.transferSize,i=n.initiatorType,f=n.duration;if(u&&f&&Jr(i)){for(i=0,f=n.responseEnd,a+=1;a<t.length;a++){var r=t[a],y=r.startTime;if(y>f)break;var x=r.transferSize,j=r.initiatorType;x&&Jr(j)&&(r=r.responseEnd,i+=x*(r<f?1:(f-y)/(r-y)))}if(--a,e+=8*(u+i)/(n.duration/1e3),l++,10<l)break}}if(0<l)return e/l/1e6}return navigator.connection&&(l=navigator.connection.downlink,typeof l=="number")?l:5}var wc=null,Fc=null;function Du(l){return l.nodeType===9?l:l.ownerDocument}function kr(l){switch(l){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function wr(l,e){if(l===0)switch(e){case"svg":return 1;case"math":return 2;default:return 0}return l===1&&e==="foreignObject"?0:l}function Wc(l,e){return l==="textarea"||l==="noscript"||typeof e.children=="string"||typeof e.children=="number"||typeof e.children=="bigint"||typeof e.dangerouslySetInnerHTML=="object"&&e.dangerouslySetInnerHTML!==null&&e.dangerouslySetInnerHTML.__html!=null}var $c=null;function Oh(){var l=window.event;return l&&l.type==="popstate"?l===$c?!1:($c=l,!0):($c=null,!1)}var Fr=typeof setTimeout=="function"?setTimeout:void 0,Dh=typeof clearTimeout=="function"?clearTimeout:void 0,Wr=typeof Promise=="function"?Promise:void 0,Uh=typeof queueMicrotask=="function"?queueMicrotask:typeof Wr<"u"?function(l){return Wr.resolve(null).then(l).catch(Rh)}:Fr;function Rh(l){setTimeout(function(){throw l})}function xt(l){return l==="head"}function $r(l,e){var t=e,a=0;do{var n=t.nextSibling;if(l.removeChild(t),n&&n.nodeType===8)if(t=n.data,t==="/$"||t==="/&"){if(a===0){l.removeChild(n),Ca(e);return}a--}else if(t==="$"||t==="$?"||t==="$~"||t==="$!"||t==="&")a++;else if(t==="html")gn(l.ownerDocument.documentElement);else if(t==="head"){t=l.ownerDocument.head,gn(t);for(var u=t.firstChild;u;){var i=u.nextSibling,f=u.nodeName;u[Ra]||f==="SCRIPT"||f==="STYLE"||f==="LINK"&&u.rel.toLowerCase()==="stylesheet"||t.removeChild(u),u=i}}else t==="body"&&gn(l.ownerDocument.body);t=n}while(t);Ca(e)}function Ir(l,e){var t=l;l=0;do{var a=t.nextSibling;if(t.nodeType===1?e?(t._stashedDisplay=t.style.display,t.style.display="none"):(t.style.display=t._stashedDisplay||"",t.getAttribute("style")===""&&t.removeAttribute("style")):t.nodeType===3&&(e?(t._stashedText=t.nodeValue,t.nodeValue=""):t.nodeValue=t._stashedText||""),a&&a.nodeType===8)if(t=a.data,t==="/$"){if(l===0)break;l--}else t!=="$"&&t!=="$?"&&t!=="$~"&&t!=="$!"||l++;t=a}while(t)}function Ic(l){var e=l.firstChild;for(e&&e.nodeType===10&&(e=e.nextSibling);e;){var t=e;switch(e=e.nextSibling,t.nodeName){case"HTML":case"HEAD":case"BODY":Ic(t),ai(t);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(t.rel.toLowerCase()==="stylesheet")continue}l.removeChild(t)}}function Hh(l,e,t,a){for(;l.nodeType===1;){var n=t;if(l.nodeName.toLowerCase()!==e.toLowerCase()){if(!a&&(l.nodeName!=="INPUT"||l.type!=="hidden"))break}else if(a){if(!l[Ra])switch(e){case"meta":if(!l.hasAttribute("itemprop"))break;return l;case"link":if(u=l.getAttribute("rel"),u==="stylesheet"&&l.hasAttribute("data-precedence"))break;if(u!==n.rel||l.getAttribute("href")!==(n.href==null||n.href===""?null:n.href)||l.getAttribute("crossorigin")!==(n.crossOrigin==null?null:n.crossOrigin)||l.getAttribute("title")!==(n.title==null?null:n.title))break;return l;case"style":if(l.hasAttribute("data-precedence"))break;return l;case"script":if(u=l.getAttribute("src"),(u!==(n.src==null?null:n.src)||l.getAttribute("type")!==(n.type==null?null:n.type)||l.getAttribute("crossorigin")!==(n.crossOrigin==null?null:n.crossOrigin))&&u&&l.hasAttribute("async")&&!l.hasAttribute("itemprop"))break;return l;default:return l}}else if(e==="input"&&l.type==="hidden"){var u=n.name==null?null:""+n.name;if(n.type==="hidden"&&l.getAttribute("name")===u)return l}else return l;if(l=Me(l.nextSibling),l===null)break}return null}function Bh(l,e,t){if(e==="")return null;for(;l.nodeType!==3;)if((l.nodeType!==1||l.nodeName!=="INPUT"||l.type!=="hidden")&&!t||(l=Me(l.nextSibling),l===null))return null;return l}function Pr(l,e){for(;l.nodeType!==8;)if((l.nodeType!==1||l.nodeName!=="INPUT"||l.type!=="hidden")&&!e||(l=Me(l.nextSibling),l===null))return null;return l}function Pc(l){return l.data==="$?"||l.data==="$~"}function lf(l){return l.data==="$!"||l.data==="$?"&&l.ownerDocument.readyState!=="loading"}function qh(l,e){var t=l.ownerDocument;if(l.data==="$~")l._reactRetry=e;else if(l.data!=="$?"||t.readyState!=="loading")e();else{var a=function(){e(),t.removeEventListener("DOMContentLoaded",a)};t.addEventListener("DOMContentLoaded",a),l._reactRetry=a}}function Me(l){for(;l!=null;l=l.nextSibling){var e=l.nodeType;if(e===1||e===3)break;if(e===8){if(e=l.data,e==="$"||e==="$!"||e==="$?"||e==="$~"||e==="&"||e==="F!"||e==="F")break;if(e==="/$"||e==="/&")return null}}return l}var ef=null;function ld(l){l=l.nextSibling;for(var e=0;l;){if(l.nodeType===8){var t=l.data;if(t==="/$"||t==="/&"){if(e===0)return Me(l.nextSibling);e--}else t!=="$"&&t!=="$!"&&t!=="$?"&&t!=="$~"&&t!=="&"||e++}l=l.nextSibling}return null}function ed(l){l=l.previousSibling;for(var e=0;l;){if(l.nodeType===8){var t=l.data;if(t==="$"||t==="$!"||t==="$?"||t==="$~"||t==="&"){if(e===0)return l;e--}else t!=="/$"&&t!=="/&"||e++}l=l.previousSibling}return null}function td(l,e,t){switch(e=Du(t),l){case"html":if(l=e.documentElement,!l)throw Error(h(452));return l;case"head":if(l=e.head,!l)throw Error(h(453));return l;case"body":if(l=e.body,!l)throw Error(h(454));return l;default:throw Error(h(451))}}function gn(l){for(var e=l.attributes;e.length;)l.removeAttributeNode(e[0]);ai(l)}var Ce=new Map,ad=new Set;function Uu(l){return typeof l.getRootNode=="function"?l.getRootNode():l.nodeType===9?l:l.ownerDocument}var lt=C.d;C.d={f:Gh,r:Yh,D:Xh,C:Qh,L:Zh,m:Lh,X:Kh,S:Vh,M:Jh};function Gh(){var l=lt.f(),e=ju();return l||e}function Yh(l){var e=wt(l);e!==null&&e.tag===5&&e.type==="form"?So(e):lt.r(l)}var Ea=typeof document>"u"?null:document;function nd(l,e,t){var a=Ea;if(a&&typeof e=="string"&&e){var n=xe(e);n='link[rel="'+l+'"][href="'+n+'"]',typeof t=="string"&&(n+='[crossorigin="'+t+'"]'),ad.has(n)||(ad.add(n),l={rel:l,crossOrigin:t,href:e},a.querySelector(n)===null&&(e=a.createElement("link"),Fl(e,"link",l),Zl(e),a.head.appendChild(e)))}}function Xh(l){lt.D(l),nd("dns-prefetch",l,null)}function Qh(l,e){lt.C(l,e),nd("preconnect",l,e)}function Zh(l,e,t){lt.L(l,e,t);var a=Ea;if(a&&l&&e){var n='link[rel="preload"][as="'+xe(e)+'"]';e==="image"&&t&&t.imageSrcSet?(n+='[imagesrcset="'+xe(t.imageSrcSet)+'"]',typeof t.imageSizes=="string"&&(n+='[imagesizes="'+xe(t.imageSizes)+'"]')):n+='[href="'+xe(l)+'"]';var u=n;switch(e){case"style":u=Na(l);break;case"script":u=Ma(l)}Ce.has(u)||(l=q({rel:"preload",href:e==="image"&&t&&t.imageSrcSet?void 0:l,as:e},t),Ce.set(u,l),a.querySelector(n)!==null||e==="style"&&a.querySelector(pn(u))||e==="script"&&a.querySelector(bn(u))||(e=a.createElement("link"),Fl(e,"link",l),Zl(e),a.head.appendChild(e)))}}function Lh(l,e){lt.m(l,e);var t=Ea;if(t&&l){var a=e&&typeof e.as=="string"?e.as:"script",n='link[rel="modulepreload"][as="'+xe(a)+'"][href="'+xe(l)+'"]',u=n;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":u=Ma(l)}if(!Ce.has(u)&&(l=q({rel:"modulepreload",href:l},e),Ce.set(u,l),t.querySelector(n)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(t.querySelector(bn(u)))return}a=t.createElement("link"),Fl(a,"link",l),Zl(a),t.head.appendChild(a)}}}function Vh(l,e,t){lt.S(l,e,t);var a=Ea;if(a&&l){var n=Ft(a).hoistableStyles,u=Na(l);e=e||"default";var i=n.get(u);if(!i){var f={loading:0,preload:null};if(i=a.querySelector(pn(u)))f.loading=5;else{l=q({rel:"stylesheet",href:l,"data-precedence":e},t),(t=Ce.get(u))&&tf(l,t);var r=i=a.createElement("link");Zl(r),Fl(r,"link",l),r._p=new Promise(function(y,x){r.onload=y,r.onerror=x}),r.addEventListener("load",function(){f.loading|=1}),r.addEventListener("error",function(){f.loading|=2}),f.loading|=4,Ru(i,e,a)}i={type:"stylesheet",instance:i,count:1,state:f},n.set(u,i)}}}function Kh(l,e){lt.X(l,e);var t=Ea;if(t&&l){var a=Ft(t).hoistableScripts,n=Ma(l),u=a.get(n);u||(u=t.querySelector(bn(n)),u||(l=q({src:l,async:!0},e),(e=Ce.get(n))&&af(l,e),u=t.createElement("script"),Zl(u),Fl(u,"link",l),t.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function Jh(l,e){lt.M(l,e);var t=Ea;if(t&&l){var a=Ft(t).hoistableScripts,n=Ma(l),u=a.get(n);u||(u=t.querySelector(bn(n)),u||(l=q({src:l,async:!0,type:"module"},e),(e=Ce.get(n))&&af(l,e),u=t.createElement("script"),Zl(u),Fl(u,"link",l),t.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function ud(l,e,t,a){var n=(n=I.current)?Uu(n):null;if(!n)throw Error(h(446));switch(l){case"meta":case"title":return null;case"style":return typeof t.precedence=="string"&&typeof t.href=="string"?(e=Na(t.href),t=Ft(n).hoistableStyles,a=t.get(e),a||(a={type:"style",instance:null,count:0,state:null},t.set(e,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(t.rel==="stylesheet"&&typeof t.href=="string"&&typeof t.precedence=="string"){l=Na(t.href);var u=Ft(n).hoistableStyles,i=u.get(l);if(i||(n=n.ownerDocument||n,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},u.set(l,i),(u=n.querySelector(pn(l)))&&!u._p&&(i.instance=u,i.state.loading=5),Ce.has(l)||(t={rel:"preload",as:"style",href:t.href,crossOrigin:t.crossOrigin,integrity:t.integrity,media:t.media,hrefLang:t.hrefLang,referrerPolicy:t.referrerPolicy},Ce.set(l,t),u||kh(n,l,t,i.state))),e&&a===null)throw Error(h(528,""));return i}if(e&&a!==null)throw Error(h(529,""));return null;case"script":return e=t.async,t=t.src,typeof t=="string"&&e&&typeof e!="function"&&typeof e!="symbol"?(e=Ma(t),t=Ft(n).hoistableScripts,a=t.get(e),a||(a={type:"script",instance:null,count:0,state:null},t.set(e,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(h(444,l))}}function Na(l){return'href="'+xe(l)+'"'}function pn(l){return'link[rel="stylesheet"]['+l+"]"}function id(l){return q({},l,{"data-precedence":l.precedence,precedence:null})}function kh(l,e,t,a){l.querySelector('link[rel="preload"][as="style"]['+e+"]")?a.loading=1:(e=l.createElement("link"),a.preload=e,e.addEventListener("load",function(){return a.loading|=1}),e.addEventListener("error",function(){return a.loading|=2}),Fl(e,"link",t),Zl(e),l.head.appendChild(e))}function Ma(l){return'[src="'+xe(l)+'"]'}function bn(l){return"script[async]"+l}function cd(l,e,t){if(e.count++,e.instance===null)switch(e.type){case"style":var a=l.querySelector('style[data-href~="'+xe(t.href)+'"]');if(a)return e.instance=a,Zl(a),a;var n=q({},t,{"data-href":t.href,"data-precedence":t.precedence,href:null,precedence:null});return a=(l.ownerDocument||l).createElement("style"),Zl(a),Fl(a,"style",n),Ru(a,t.precedence,l),e.instance=a;case"stylesheet":n=Na(t.href);var u=l.querySelector(pn(n));if(u)return e.state.loading|=4,e.instance=u,Zl(u),u;a=id(t),(n=Ce.get(n))&&tf(a,n),u=(l.ownerDocument||l).createElement("link"),Zl(u);var i=u;return i._p=new Promise(function(f,r){i.onload=f,i.onerror=r}),Fl(u,"link",a),e.state.loading|=4,Ru(u,t.precedence,l),e.instance=u;case"script":return u=Ma(t.src),(n=l.querySelector(bn(u)))?(e.instance=n,Zl(n),n):(a=t,(n=Ce.get(u))&&(a=q({},t),af(a,n)),l=l.ownerDocument||l,n=l.createElement("script"),Zl(n),Fl(n,"link",a),l.head.appendChild(n),e.instance=n);case"void":return null;default:throw Error(h(443,e.type))}else e.type==="stylesheet"&&(e.state.loading&4)===0&&(a=e.instance,e.state.loading|=4,Ru(a,t.precedence,l));return e.instance}function Ru(l,e,t){for(var a=t.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),n=a.length?a[a.length-1]:null,u=n,i=0;i<a.length;i++){var f=a[i];if(f.dataset.precedence===e)u=f;else if(u!==n)break}u?u.parentNode.insertBefore(l,u.nextSibling):(e=t.nodeType===9?t.head:t,e.insertBefore(l,e.firstChild))}function tf(l,e){l.crossOrigin==null&&(l.crossOrigin=e.crossOrigin),l.referrerPolicy==null&&(l.referrerPolicy=e.referrerPolicy),l.title==null&&(l.title=e.title)}function af(l,e){l.crossOrigin==null&&(l.crossOrigin=e.crossOrigin),l.referrerPolicy==null&&(l.referrerPolicy=e.referrerPolicy),l.integrity==null&&(l.integrity=e.integrity)}var Hu=null;function fd(l,e,t){if(Hu===null){var a=new Map,n=Hu=new Map;n.set(t,a)}else n=Hu,a=n.get(t),a||(a=new Map,n.set(t,a));if(a.has(l))return a;for(a.set(l,null),t=t.getElementsByTagName(l),n=0;n<t.length;n++){var u=t[n];if(!(u[Ra]||u[Kl]||l==="link"&&u.getAttribute("rel")==="stylesheet")&&u.namespaceURI!=="http://www.w3.org/2000/svg"){var i=u.getAttribute(e)||"";i=l+i;var f=a.get(i);f?f.push(u):a.set(i,[u])}}return a}function sd(l,e,t){l=l.ownerDocument||l,l.head.insertBefore(t,e==="title"?l.querySelector("head > title"):null)}function wh(l,e,t){if(t===1||e.itemProp!=null)return!1;switch(l){case"meta":case"title":return!0;case"style":if(typeof e.precedence!="string"||typeof e.href!="string"||e.href==="")break;return!0;case"link":if(typeof e.rel!="string"||typeof e.href!="string"||e.href===""||e.onLoad||e.onError)break;switch(e.rel){case"stylesheet":return l=e.disabled,typeof e.precedence=="string"&&l==null;default:return!0}case"script":if(e.async&&typeof e.async!="function"&&typeof e.async!="symbol"&&!e.onLoad&&!e.onError&&e.src&&typeof e.src=="string")return!0}return!1}function od(l){return!(l.type==="stylesheet"&&(l.state.loading&3)===0)}function Fh(l,e,t,a){if(t.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(t.state.loading&4)===0){if(t.instance===null){var n=Na(a.href),u=e.querySelector(pn(n));if(u){e=u._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(l.count++,l=Bu.bind(l),e.then(l,l)),t.state.loading|=4,t.instance=u,Zl(u);return}u=e.ownerDocument||e,a=id(a),(n=Ce.get(n))&&tf(a,n),u=u.createElement("link"),Zl(u);var i=u;i._p=new Promise(function(f,r){i.onload=f,i.onerror=r}),Fl(u,"link",a),t.instance=u}l.stylesheets===null&&(l.stylesheets=new Map),l.stylesheets.set(t,e),(e=t.state.preload)&&(t.state.loading&3)===0&&(l.count++,t=Bu.bind(l),e.addEventListener("load",t),e.addEventListener("error",t))}}var nf=0;function Wh(l,e){return l.stylesheets&&l.count===0&&Gu(l,l.stylesheets),0<l.count||0<l.imgCount?function(t){var a=setTimeout(function(){if(l.stylesheets&&Gu(l,l.stylesheets),l.unsuspend){var u=l.unsuspend;l.unsuspend=null,u()}},6e4+e);0<l.imgBytes&&nf===0&&(nf=62500*_h());var n=setTimeout(function(){if(l.waitingForImages=!1,l.count===0&&(l.stylesheets&&Gu(l,l.stylesheets),l.unsuspend)){var u=l.unsuspend;l.unsuspend=null,u()}},(l.imgBytes>nf?50:800)+e);return l.unsuspend=t,function(){l.unsuspend=null,clearTimeout(a),clearTimeout(n)}}:null}function Bu(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Gu(this,this.stylesheets);else if(this.unsuspend){var l=this.unsuspend;this.unsuspend=null,l()}}}var qu=null;function Gu(l,e){l.stylesheets=null,l.unsuspend!==null&&(l.count++,qu=new Map,e.forEach($h,l),qu=null,Bu.call(l))}function $h(l,e){if(!(e.state.loading&4)){var t=qu.get(l);if(t)var a=t.get(null);else{t=new Map,qu.set(l,t);for(var n=l.querySelectorAll("link[data-precedence],style[data-precedence]"),u=0;u<n.length;u++){var i=n[u];(i.nodeName==="LINK"||i.getAttribute("media")!=="not all")&&(t.set(i.dataset.precedence,i),a=i)}a&&t.set(null,a)}n=e.instance,i=n.getAttribute("data-precedence"),u=t.get(i)||a,u===a&&t.set(null,n),t.set(i,n),this.count++,a=Bu.bind(this),n.addEventListener("load",a),n.addEventListener("error",a),u?u.parentNode.insertBefore(n,u.nextSibling):(l=l.nodeType===9?l.head:l,l.insertBefore(n,l.firstChild)),e.state.loading|=4}}var Sn={$$typeof:Sl,Provider:null,Consumer:null,_currentValue:J,_currentValue2:J,_threadCount:0};function Ih(l,e,t,a,n,u,i,f,r){this.tag=1,this.containerInfo=l,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Pu(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Pu(0),this.hiddenUpdates=Pu(null),this.identifierPrefix=a,this.onUncaughtError=n,this.onCaughtError=u,this.onRecoverableError=i,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=r,this.incompleteTransitions=new Map}function rd(l,e,t,a,n,u,i,f,r,y,x,j){return l=new Ih(l,e,t,i,r,y,x,j,f),e=1,u===!0&&(e|=24),u=he(3,null,null,e),l.current=u,u.stateNode=l,e=qi(),e.refCount++,l.pooledCache=e,e.refCount++,u.memoizedState={element:a,isDehydrated:t,cache:e},Qi(u),l}function dd(l){return l?(l=ua,l):ua}function md(l,e,t,a,n,u){n=dd(n),a.context===null?a.context=n:a.pendingContext=n,a=ot(e),a.payload={element:t},u=u===void 0?null:u,u!==null&&(a.callback=u),t=rt(l,a,e),t!==null&&(fe(t,l,e),$a(t,l,e))}function hd(l,e){if(l=l.memoizedState,l!==null&&l.dehydrated!==null){var t=l.retryLane;l.retryLane=t!==0&&t<e?t:e}}function uf(l,e){hd(l,e),(l=l.alternate)&&hd(l,e)}function vd(l){if(l.tag===13||l.tag===31){var e=Ut(l,67108864);e!==null&&fe(e,l,67108864),uf(l,67108864)}}function yd(l){if(l.tag===13||l.tag===31){var e=be();e=li(e);var t=Ut(l,e);t!==null&&fe(t,l,e),uf(l,e)}}var Yu=!0;function Ph(l,e,t,a){var n=T.T;T.T=null;var u=C.p;try{C.p=2,cf(l,e,t,a)}finally{C.p=u,T.T=n}}function lv(l,e,t,a){var n=T.T;T.T=null;var u=C.p;try{C.p=8,cf(l,e,t,a)}finally{C.p=u,T.T=n}}function cf(l,e,t,a){if(Yu){var n=ff(a);if(n===null)Jc(l,e,a,Xu,t),pd(l,a);else if(tv(n,l,e,t,a))a.stopPropagation();else if(pd(l,a),e&4&&-1<ev.indexOf(l)){for(;n!==null;){var u=wt(n);if(u!==null)switch(u.tag){case 3:if(u=u.stateNode,u.current.memoizedState.isDehydrated){var i=Mt(u.pendingLanes);if(i!==0){var f=u;for(f.pendingLanes|=2,f.entangledLanes|=2;i;){var r=1<<31-de(i);f.entanglements[1]|=r,i&=~r}Be(u),(ol&6)===0&&(Tu=oe()+500,hn(0))}}break;case 31:case 13:f=Ut(u,2),f!==null&&fe(f,u,2),ju(),uf(u,2)}if(u=ff(a),u===null&&Jc(l,e,a,Xu,t),u===n)break;n=u}n!==null&&a.stopPropagation()}else Jc(l,e,a,null,t)}}function ff(l){return l=si(l),sf(l)}var Xu=null;function sf(l){if(Xu=null,l=kt(l),l!==null){var e=G(l);if(e===null)l=null;else{var t=e.tag;if(t===13){if(l=L(e),l!==null)return l;l=null}else if(t===31){if(l=B(e),l!==null)return l;l=null}else if(t===3){if(e.stateNode.current.memoizedState.isDehydrated)return e.tag===3?e.stateNode.containerInfo:null;l=null}else e!==l&&(l=null)}}return Xu=l,null}function gd(l){switch(l){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(Xd()){case jf:return 2;case zf:return 8;case Cn:case Qd:return 32;case Ef:return 268435456;default:return 32}default:return 32}}var of=!1,Tt=null,At=null,jt=null,xn=new Map,Tn=new Map,zt=[],ev="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function pd(l,e){switch(l){case"focusin":case"focusout":Tt=null;break;case"dragenter":case"dragleave":At=null;break;case"mouseover":case"mouseout":jt=null;break;case"pointerover":case"pointerout":xn.delete(e.pointerId);break;case"gotpointercapture":case"lostpointercapture":Tn.delete(e.pointerId)}}function An(l,e,t,a,n,u){return l===null||l.nativeEvent!==u?(l={blockedOn:e,domEventName:t,eventSystemFlags:a,nativeEvent:u,targetContainers:[n]},e!==null&&(e=wt(e),e!==null&&vd(e)),l):(l.eventSystemFlags|=a,e=l.targetContainers,n!==null&&e.indexOf(n)===-1&&e.push(n),l)}function tv(l,e,t,a,n){switch(e){case"focusin":return Tt=An(Tt,l,e,t,a,n),!0;case"dragenter":return At=An(At,l,e,t,a,n),!0;case"mouseover":return jt=An(jt,l,e,t,a,n),!0;case"pointerover":var u=n.pointerId;return xn.set(u,An(xn.get(u)||null,l,e,t,a,n)),!0;case"gotpointercapture":return u=n.pointerId,Tn.set(u,An(Tn.get(u)||null,l,e,t,a,n)),!0}return!1}function bd(l){var e=kt(l.target);if(e!==null){var t=G(e);if(t!==null){if(e=t.tag,e===13){if(e=L(t),e!==null){l.blockedOn=e,Df(l.priority,function(){yd(t)});return}}else if(e===31){if(e=B(t),e!==null){l.blockedOn=e,Df(l.priority,function(){yd(t)});return}}else if(e===3&&t.stateNode.current.memoizedState.isDehydrated){l.blockedOn=t.tag===3?t.stateNode.containerInfo:null;return}}}l.blockedOn=null}function Qu(l){if(l.blockedOn!==null)return!1;for(var e=l.targetContainers;0<e.length;){var t=ff(l.nativeEvent);if(t===null){t=l.nativeEvent;var a=new t.constructor(t.type,t);fi=a,t.target.dispatchEvent(a),fi=null}else return e=wt(t),e!==null&&vd(e),l.blockedOn=t,!1;e.shift()}return!0}function Sd(l,e,t){Qu(l)&&t.delete(e)}function av(){of=!1,Tt!==null&&Qu(Tt)&&(Tt=null),At!==null&&Qu(At)&&(At=null),jt!==null&&Qu(jt)&&(jt=null),xn.forEach(Sd),Tn.forEach(Sd)}function Zu(l,e){l.blockedOn===e&&(l.blockedOn=null,of||(of=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,av)))}var Lu=null;function xd(l){Lu!==l&&(Lu=l,o.unstable_scheduleCallback(o.unstable_NormalPriority,function(){Lu===l&&(Lu=null);for(var e=0;e<l.length;e+=3){var t=l[e],a=l[e+1],n=l[e+2];if(typeof a!="function"){if(sf(a||t)===null)continue;break}var u=wt(t);u!==null&&(l.splice(e,3),e-=3,cc(u,{pending:!0,data:n,method:t.method,action:a},a,n))}}))}function Ca(l){function e(r){return Zu(r,l)}Tt!==null&&Zu(Tt,l),At!==null&&Zu(At,l),jt!==null&&Zu(jt,l),xn.forEach(e),Tn.forEach(e);for(var t=0;t<zt.length;t++){var a=zt[t];a.blockedOn===l&&(a.blockedOn=null)}for(;0<zt.length&&(t=zt[0],t.blockedOn===null);)bd(t),t.blockedOn===null&&zt.shift();if(t=(l.ownerDocument||l).$$reactFormReplay,t!=null)for(a=0;a<t.length;a+=3){var n=t[a],u=t[a+1],i=n[te]||null;if(typeof u=="function")i||xd(t);else if(i){var f=null;if(u&&u.hasAttribute("formAction")){if(n=u,i=u[te]||null)f=i.formAction;else if(sf(n)!==null)continue}else f=i.action;typeof f=="function"?t[a+1]=f:(t.splice(a,3),a-=3),xd(t)}}}function Td(){function l(u){u.canIntercept&&u.info==="react-transition"&&u.intercept({handler:function(){return new Promise(function(i){return n=i})},focusReset:"manual",scroll:"manual"})}function e(){n!==null&&(n(),n=null),a||setTimeout(t,20)}function t(){if(!a&&!navigation.transition){var u=navigation.currentEntry;u&&u.url!=null&&navigation.navigate(u.url,{state:u.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var a=!1,n=null;return navigation.addEventListener("navigate",l),navigation.addEventListener("navigatesuccess",e),navigation.addEventListener("navigateerror",e),setTimeout(t,100),function(){a=!0,navigation.removeEventListener("navigate",l),navigation.removeEventListener("navigatesuccess",e),navigation.removeEventListener("navigateerror",e),n!==null&&(n(),n=null)}}}function rf(l){this._internalRoot=l}Vu.prototype.render=rf.prototype.render=function(l){var e=this._internalRoot;if(e===null)throw Error(h(409));var t=e.current,a=be();md(t,a,l,e,null,null)},Vu.prototype.unmount=rf.prototype.unmount=function(){var l=this._internalRoot;if(l!==null){this._internalRoot=null;var e=l.containerInfo;md(l.current,2,null,l,null,null),ju(),e[Jt]=null}};function Vu(l){this._internalRoot=l}Vu.prototype.unstable_scheduleHydration=function(l){if(l){var e=Of();l={blockedOn:null,target:l,priority:e};for(var t=0;t<zt.length&&e!==0&&e<zt[t].priority;t++);zt.splice(t,0,l),t===0&&bd(l)}};var Ad=_.version;if(Ad!=="19.2.4")throw Error(h(527,Ad,"19.2.4"));C.findDOMNode=function(l){var e=l._reactInternals;if(e===void 0)throw typeof l.render=="function"?Error(h(188)):(l=Object.keys(l).join(","),Error(h(268,l)));return l=S(e),l=l!==null?k(l):null,l=l===null?null:l.stateNode,l};var nv={bundleType:0,version:"19.2.4",rendererPackageName:"react-dom",currentDispatcherRef:T,reconcilerVersion:"19.2.4"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Ku=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Ku.isDisabled&&Ku.supportsFiber)try{Oa=Ku.inject(nv),re=Ku}catch{}}return zn.createRoot=function(l,e){if(!N(l))throw Error(h(299));var t=!1,a="",n=_o,u=Oo,i=Do;return e!=null&&(e.unstable_strictMode===!0&&(t=!0),e.identifierPrefix!==void 0&&(a=e.identifierPrefix),e.onUncaughtError!==void 0&&(n=e.onUncaughtError),e.onCaughtError!==void 0&&(u=e.onCaughtError),e.onRecoverableError!==void 0&&(i=e.onRecoverableError)),e=rd(l,1,!1,null,null,t,a,null,n,u,i,Td),l[Jt]=e.current,Kc(l),new rf(e)},zn.hydrateRoot=function(l,e,t){if(!N(l))throw Error(h(299));var a=!1,n="",u=_o,i=Oo,f=Do,r=null;return t!=null&&(t.unstable_strictMode===!0&&(a=!0),t.identifierPrefix!==void 0&&(n=t.identifierPrefix),t.onUncaughtError!==void 0&&(u=t.onUncaughtError),t.onCaughtError!==void 0&&(i=t.onCaughtError),t.onRecoverableError!==void 0&&(f=t.onRecoverableError),t.formState!==void 0&&(r=t.formState)),e=rd(l,1,!0,e,t??null,a,n,r,u,i,f,Td),e.context=dd(null),t=e.current,a=be(),a=li(a),n=ot(a),n.callback=null,rt(t,n,a),t=a,e.current.lanes=t,Ua(e,t),Be(e),l[Jt]=e.current,Kc(l),new Vu(e)},zn.version="19.2.4",zn}var Ud;function vv(){if(Ud)return hf.exports;Ud=1;function o(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(o)}catch(_){console.error(_)}}return o(),hf.exports=hv(),hf.exports}var yv=vv();const gv=Bd(yv),pv="https://optimus.mem2ai.com/v1/events/counters";function Ju(o,_){o&&fetch(pv,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email_id:o,event_name:_})}).then(H=>H.json()).then(H=>console.log(`[track] ${_}:`,H)).catch(H=>console.warn(`[track] ${_} failed:`,H))}const bv=[{value:"software-engineer",label:"Software Engineer",desc:"Code reviews, architecture, debugging",color:"#6366f1"},{value:"product-manager",label:"Product Manager",desc:"Roadmaps, specs, stakeholder alignment",color:"#a855f7"},{value:"engineering-manager",label:"Engineering Manager",desc:"Team health, delivery, hiring",color:"#14b8a6"},{value:"devops",label:"DevOps Engineer",desc:"Infrastructure, CI/CD, monitoring",color:"#f97316"}];function Sv({state:o,update:_,onNext:H}){return c.jsxs("div",{className:"step-content",children:[c.jsx("h1",{children:"Meet your assistant"}),c.jsx("h2",{children:"A few details to personalize your experience"}),c.jsxs("div",{className:"form-card",children:[c.jsxs("div",{className:"form-row",style:{marginBottom:"1rem"},children:[c.jsxs("div",{className:"form-field",children:[c.jsx("label",{className:"field-label",children:"Your name"}),c.jsx("input",{type:"text",value:o.name,onChange:h=>_({name:h.target.value}),placeholder:"Jane Smith"})]}),c.jsxs("div",{className:"form-field",children:[c.jsx("label",{className:"field-label",children:"Email"}),c.jsx("input",{type:"email",value:o.email,onChange:h=>_({email:h.target.value}),placeholder:"jane@company.com"})]})]}),c.jsxs("div",{className:"form-field",children:[c.jsx("label",{className:"field-label",children:"Assistant name"}),c.jsx("input",{type:"text",value:o.assistantName,onChange:h=>_({assistantName:h.target.value}),placeholder:"Atlas"})]})]}),c.jsxs("div",{className:"form-section",children:[c.jsx("label",{className:"field-label",children:"Your role"}),c.jsx("div",{className:"profile-grid",children:bv.map(h=>c.jsxs("div",{className:`profile-card ${o.profileType===h.value?"selected":""}`,onClick:()=>_({profileType:h.value}),children:[c.jsx("div",{className:"profile-indicator",style:{background:h.color}}),c.jsxs("div",{className:"profile-info",children:[c.jsx("span",{className:"profile-name",children:h.label}),c.jsx("span",{className:"profile-desc",children:h.desc})]})]},h.value))})]}),c.jsx("div",{className:"btn-group",children:c.jsx("button",{className:"btn-primary",onClick:()=>{Ju(o.email,"onboarding_started"),H()},disabled:!o.name,children:"Continue"})})]})}function xv({state:o,update:_,onNext:H,onPrev:h}){const[N,G]=gl.useState([]);gl.useEffect(()=>{fetch(`/api/responsibilities/${o.profileType}`).then(B=>B.json()).then(B=>{G(B.responsibilities),o.responsibilities.length===0&&_({responsibilities:B.responsibilities})}).catch(()=>G([]))},[o.profileType]);const L=B=>{const D=o.responsibilities;D.includes(B)?_({responsibilities:D.filter(S=>S!==B)}):_({responsibilities:[...D,B]})};return c.jsxs("div",{className:"step-content",children:[c.jsx("h1",{children:"Responsibilities"}),c.jsx("h2",{children:"Select your core responsibilities"}),c.jsx("div",{className:"checkbox-group",children:N.map(B=>c.jsxs("label",{className:"checkbox-item",children:[c.jsx("input",{type:"checkbox",checked:o.responsibilities.includes(B),onChange:()=>L(B)}),B]},B))}),c.jsxs("div",{className:"btn-group",children:[c.jsx("button",{className:"btn-secondary",onClick:h,children:"Back"}),c.jsx("button",{className:"btn-primary",onClick:H,children:"Continue"})]})]})}function Tv({state:o,update:_,onNext:H,onPrev:h}){const[N,G]=gl.useState({}),[L,B]=gl.useState(""),[D,S]=gl.useState(!0),[k,q]=gl.useState(""),[Z,Tl]=gl.useState(null),[pl,il]=gl.useState(""),[Il,Cl]=gl.useState(new Set),[ee,Sl]=gl.useState(new Set),Bl=gl.useRef(null);gl.useEffect(()=>{S(!0),q(""),fetch("/api/preview-template",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({profileType:o.profileType,name:o.name,assistantName:o.assistantName,responsibilities:o.responsibilities})}).then(E=>E.json()).then(E=>{const Y=E.files;G(Y),_({templateFiles:Y});const s=Object.keys(Y);s.length>0&&!L&&B(s[0])}).catch(()=>q("Failed to load template preview")).finally(()=>S(!1))},[o.profileType,o.name,o.responsibilities]),gl.useEffect(()=>{Z&&Bl.current&&Bl.current.focus()},[Z]);const cl=E=>{const Y={...N,[L]:E};G(Y),_({templateFiles:Y})},z=E=>{const Y=E.split("/");return Y[Y.length-1]},O=E=>E.endsWith(".md")?"M":E.endsWith(".json")?"J":E.endsWith(".yaml")||E.endsWith(".yml")?"Y":"F",V=E=>E.split(`
50
+ `).length,Vl=(()=>{const E=new Map,Y=[];for(const s of Object.keys(N).sort()){const b=s.indexOf("/");if(b===-1)Y.push(s);else{const M=s.substring(0,b);E.has(M)||E.set(M,[]),E.get(M).push(s)}}for(const s of ee)E.has(s)||E.set(s,[]);return{folders:[...E.keys()].sort(),folderFiles:E,rootFiles:Y}})(),xl=E=>{Cl(Y=>{const s=new Set(Y);return s.has(E)?s.delete(E):s.add(E),s})},El=()=>{const E=pl.trim();if(!E||!Z){Tl(null),il("");return}if(Z.type==="folder"){const Y=E.replace(/[/\\]/g,"");if(!Y)return;Sl(s=>new Set(s).add(Y)),Cl(s=>new Set(s).add(Y))}else{const Y=E.includes(".")?E:`${E}.md`,s=Z.parent?`${Z.parent}/${Y}`:Y;if(N[s]!==void 0)B(s);else{const b=Y.replace(/\.\w+$/,"").replace(/[-_]/g," "),M=b.charAt(0).toUpperCase()+b.slice(1),U={...N,[s]:`# ${M}
51
+
52
+ `};G(U),_({templateFiles:U}),B(s),Z.parent&&(Sl(w=>{const I=new Set(w);return I.delete(Z.parent),I}),Cl(w=>new Set(w).add(Z.parent)))}}Tl(null),il("")},ul=(E,Y)=>{Y.stopPropagation();const s={...N};if(delete s[E],G(s),_({templateFiles:s}),L===E){const b=Object.keys(s);B(b.length>0?b[0]:"")}},Wl=(E,Y)=>{Y.stopPropagation();const s={...N};for(const b of Object.keys(s))b.startsWith(`${E}/`)&&delete s[b];if(G(s),_({templateFiles:s}),Sl(b=>{const M=new Set(b);return M.delete(E),M}),L.startsWith(`${E}/`)){const b=Object.keys(s);B(b.length>0?b[0]:"")}},se=E=>{E.key==="Enter"?(E.preventDefault(),El()):E.key==="Escape"&&(Tl(null),il(""))},T=()=>c.jsxs("div",{className:"template-create-input",children:[(Z==null?void 0:Z.parent)&&c.jsxs("span",{className:"template-create-prefix",children:[Z.parent,"/"]}),c.jsx("input",{ref:Bl,type:"text",className:"template-create-field",value:pl,onChange:E=>il(E.target.value),onKeyDown:se,onBlur:El,placeholder:(Z==null?void 0:Z.type)==="folder"?"folder name":"filename.md"})]}),C=(E,Y=!1)=>c.jsxs("button",{className:`template-file-tab ${L===E?"active":""} ${Y?"indented":""}`,onClick:()=>B(E),title:E,children:[c.jsx("span",{className:`template-file-icon icon-${O(E).toLowerCase()}`,children:O(E)}),c.jsx("span",{className:"template-file-name",children:z(E)}),c.jsxs("span",{className:"template-file-lines",children:[V(N[E]),"L"]}),c.jsx("span",{className:"template-item-delete",onClick:s=>ul(E,s),title:"Delete file",children:"×"})]},E),J=E=>{const Y=Il.has(E),s=Vl.folderFiles.get(E)||[];return c.jsxs("div",{className:"template-folder-group",children:[c.jsxs("div",{className:"template-folder-row",children:[c.jsxs("button",{className:"template-folder-tab",onClick:()=>xl(E),children:[c.jsx("span",{className:"template-folder-arrow",children:Y?"▾":"▸"}),c.jsx("span",{className:"template-file-icon icon-folder",children:c.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"currentColor",children:c.jsx("path",{d:"M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25V4.75A1.75 1.75 0 0014.25 3H7.5a.25.25 0 01-.2-.1l-.9-1.2A1.75 1.75 0 004.98 1H1.75z"})})}),c.jsx("span",{className:"template-file-name",children:E}),c.jsx("span",{className:"template-file-lines",children:s.length})]}),c.jsx("span",{className:"template-folder-action template-folder-add",onClick:b=>{b.stopPropagation(),Tl({type:"file",parent:E}),il(""),Cl(M=>new Set(M).add(E))},title:`New file in ${E}/`,children:"+"}),c.jsx("span",{className:"template-folder-action template-item-delete",onClick:b=>Wl(E,b),title:"Delete folder",children:"×"})]}),Y&&c.jsxs("div",{className:"template-folder-children",children:[s.map(b=>C(b,!0)),(Z==null?void 0:Z.type)==="file"&&Z.parent===E&&T(),s.length===0&&!Z&&c.jsx("div",{className:"template-folder-empty",children:"Empty folder"})]})]},E)};return c.jsxs("div",{className:"step-content",children:[c.jsx("h1",{children:"Context Template"}),c.jsx("h2",{children:"Preview and customize your context files"}),c.jsxs("div",{className:"template-preview",children:[D&&c.jsxs("div",{className:"template-loading",children:[c.jsx("div",{className:"template-spinner"}),c.jsx("span",{children:"Generating template..."})]}),k&&c.jsx("div",{className:"template-error",children:k}),!D&&!k&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"template-sidebar",children:[c.jsxs("div",{className:"template-sidebar-header",children:[c.jsx("span",{children:"Files"}),c.jsxs("div",{className:"template-sidebar-actions",children:[c.jsx("button",{className:"template-action-btn",onClick:()=>Tl({type:"file",parent:null}),title:"New file",children:c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("path",{d:"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"}),c.jsx("polyline",{points:"14 2 14 8 20 8"}),c.jsx("line",{x1:"12",y1:"18",x2:"12",y2:"12"}),c.jsx("line",{x1:"9",y1:"15",x2:"15",y2:"15"})]})}),c.jsx("button",{className:"template-action-btn",onClick:()=>Tl({type:"folder",parent:null}),title:"New folder",children:c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("path",{d:"M22 19a2 2 0 01-2 2H4a2 2 0 01-2-2V5a2 2 0 012-2h5l2 3h9a2 2 0 012 2z"}),c.jsx("line",{x1:"12",y1:"11",x2:"12",y2:"17"}),c.jsx("line",{x1:"9",y1:"14",x2:"15",y2:"14"})]})})]})]}),Vl.folders.map(E=>J(E)),Vl.rootFiles.map(E=>C(E)),Z&&Z.parent===null&&T()]}),c.jsx("div",{className:"template-editor",children:L&&N[L]!==void 0?c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"template-editor-header",children:[c.jsx("span",{className:"template-editor-path",children:L}),c.jsx("span",{className:"template-editor-badge",children:"editable"})]}),c.jsxs("div",{className:"template-editor-body",children:[c.jsx("div",{className:"template-line-numbers",children:N[L].split(`
53
+ `).map((E,Y)=>c.jsx("span",{children:Y+1},Y))}),c.jsx("textarea",{className:"template-textarea",value:N[L],onChange:E=>cl(E.target.value),spellCheck:!1})]})]}):c.jsx("div",{className:"template-empty-editor",children:"Select a file to edit"})})]})]}),c.jsxs("div",{className:"btn-group",children:[c.jsx("button",{className:"btn-secondary",onClick:h,children:"Back"}),c.jsx("button",{className:"btn-primary",onClick:H,children:"Continue"})]})]})}function Av({state:o,update:_,onNext:H,onPrev:h}){const[N,G]=gl.useState(o.gdriveFolderId?"complete":"idle"),[L,B]=gl.useState(""),[D,S]=gl.useState(!1),[k,q]=gl.useState(!1),[Z,Tl]=gl.useState(!1),pl=gl.useRef(null);gl.useEffect(()=>()=>{pl.current&&clearInterval(pl.current)},[]);const il=async()=>{Tl(!0);try{const z=await(await fetch("/api/pick-folder")).json();!z.cancelled&&z.path&&_({localPath:z.path})}catch{}finally{Tl(!1)}},Il=async()=>{if(!o.gdriveClientId.trim()||!o.gdriveClientSecret.trim()){B("Client ID and Client Secret are required.");return}S(!0),B(""),G("pending");try{const z=await(await fetch("/api/gdrive/auth-start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientId:o.gdriveClientId,clientSecret:o.gdriveClientSecret})})).json();if(!z.authUrl)throw new Error(z.error||"Failed to start auth");window.open(z.authUrl,"_blank"),pl.current=setInterval(async()=>{try{const V=await(await fetch("/api/gdrive/auth-status")).json();V.status==="authenticated"?(clearInterval(pl.current),G("authenticated"),S(!1)):V.status==="error"&&(clearInterval(pl.current),G("error"),B(V.error||"Authentication failed"),S(!1))}catch{}},2e3)}catch(cl){G("error"),B(String(cl)),S(!1)}},Cl=async()=>{q(!0),B("");try{const z=await(await fetch("/api/gdrive/create-folder",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({folderName:o.gdriveFolderName||"Personal Assistant",parentFolderName:o.gdriveFolderParent.trim()||""})})).json();if(z.error)throw new Error(z.error);_({gdriveFolderId:z.folderId,gdriveFolderName:z.folderName,gdriveFolderPath:z.folderPath,gdriveRefreshToken:z.refreshToken}),G("complete")}catch(cl){B(String(cl))}finally{q(!1)}},ee=()=>{_({gdriveFolderId:"",gdriveFolderPath:""}),G("authenticated"),B("")},Sl=()=>{pl.current&&clearInterval(pl.current),G("idle"),B(""),S(!1),_({gdriveFolderId:"",gdriveFolderName:"Personal Assistant",gdriveFolderParent:"",gdriveFolderPath:"",gdriveRefreshToken:""})},Bl=o.storageMode==="local"?o.localPath.trim().length>0:N==="complete";return c.jsxs("div",{className:"step-content",children:[c.jsx("h1",{children:"Storage"}),c.jsx("h2",{children:"Where should your context be stored?"}),c.jsxs("div",{className:"radio-group",children:[c.jsxs("div",{className:`radio-item ${o.storageMode==="local"?"selected":""}`,onClick:()=>_({storageMode:"local"}),children:[c.jsx("strong",{children:"Local Workspace"}),c.jsx("br",{}),c.jsx("small",{children:"Files stored on this machine"})]}),c.jsxs("div",{className:`radio-item ${o.storageMode==="gdrive"?"selected":""}`,onClick:()=>_({storageMode:"gdrive"}),children:[c.jsx("strong",{children:"Google Drive"}),c.jsx("br",{}),c.jsx("small",{children:"Files stored in your Drive folder"})]})]}),o.storageMode==="local"&&c.jsxs("div",{style:{marginBottom:"1.25rem"},children:[c.jsx("label",{className:"field-label",children:"Storage path"}),c.jsxs("div",{style:{display:"flex",gap:"0.5rem",alignItems:"center"},children:[c.jsx("input",{type:"text",value:o.localPath,onChange:cl=>_({localPath:cl.target.value}),placeholder:".personal-assistant",style:{flex:1,marginBottom:0}}),c.jsx("button",{className:"btn-secondary",onClick:il,disabled:Z,style:{whiteSpace:"nowrap",flexShrink:0},children:Z?"...":"Browse"})]}),c.jsx("span",{className:"field-hint",children:"Click Browse to open a folder picker, or type a path directly (relative or absolute)."})]}),o.storageMode==="gdrive"&&c.jsxs("div",{style:{marginBottom:"1.25rem"},children:[(N==="idle"||N==="pending"||N==="error")&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{style:{background:"var(--bg-surface)",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",padding:"1rem",marginBottom:"1.25rem",fontSize:"0.85rem",color:"var(--text-secondary)",lineHeight:"1.6"},children:[c.jsx("p",{style:{color:"var(--text-primary)",fontWeight:600,marginBottom:"0.75rem"},children:"How to get your Client ID and Secret"}),c.jsx("p",{style:{marginBottom:"0.5rem"},children:"No credentials are bundled with this app. You create your own in Google Cloud — it takes about 5 minutes and gives you full control over your own quota and data."}),c.jsxs("ol",{style:{paddingLeft:"1.25rem",margin:"0.75rem 0"},children:[c.jsxs("li",{style:{marginBottom:"0.4rem"},children:["Go to ",c.jsx("strong",{style:{color:"var(--text-primary)"},children:"console.cloud.google.com"}),' → create a new project (any name, e.g. "Personal Assistant")']}),c.jsxs("li",{style:{marginBottom:"0.4rem"},children:[c.jsx("strong",{style:{color:"var(--text-primary)"},children:"APIs & Services → Library"})," → search for ",c.jsx("strong",{style:{color:"var(--text-primary)"},children:"Google Drive API"})," → Enable"]}),c.jsxs("li",{style:{marginBottom:"0.4rem"},children:[c.jsx("strong",{style:{color:"var(--text-primary)"},children:"APIs & Services → OAuth consent screen"})," ","→ User type: External → fill in app name and email → add scope"," ",c.jsx("code",{style:{background:"var(--bg-elevated)",padding:"0 4px",borderRadius:3},children:".../auth/drive.file"})," ","→ add your email as a test user → Save."," ",c.jsx("strong",{style:{color:"var(--warning)"},children:'Your email must be in this list or Google will block the login with "Access denied — app not verified".'})]}),c.jsxs("li",{style:{marginBottom:"0.4rem"},children:[c.jsx("strong",{style:{color:"var(--text-primary)"},children:"Credentials → Create Credentials → OAuth client ID"})," ","→ Application type:"," ",c.jsx("strong",{style:{color:"var(--text-primary)"},children:"Web application"})]}),c.jsxs("li",{style:{marginBottom:"0.4rem"},children:["Under ",c.jsx("strong",{style:{color:"var(--text-primary)"},children:"Authorized redirect URIs"})," add exactly:"," ",c.jsx("code",{style:{background:"var(--bg-elevated)",padding:"0 4px",borderRadius:3},children:"http://localhost:3847/api/gdrive/callback"})]}),c.jsxs("li",{children:["Click ",c.jsx("strong",{style:{color:"var(--text-primary)"},children:"Create"})," and copy the Client ID and Client Secret shown."]})]}),c.jsxs("p",{style:{color:"var(--text-dim)",fontSize:"0.8rem"},children:["The refresh token obtained during this flow is saved locally to"," ",c.jsx("code",{style:{background:"var(--bg-elevated)",padding:"0 3px",borderRadius:3},children:"profile/storage.json"})," ","— the sync daemon will use it automatically on future runs."]})]}),c.jsxs("div",{className:"banner-warning",style:{marginBottom:"1.25rem"},children:["Getting ",c.jsx("strong",{children:'"Access blocked: app not verified"'}),"? Your Google account must be added as a test user. Go to"," ",c.jsx("strong",{children:"OAuth consent screen → Test users → Add users"})," and add your email, then try connecting again. You do not need to publish or verify the app for personal use."]}),c.jsx("label",{className:"field-label",children:"Client ID"}),c.jsx("input",{type:"text",value:o.gdriveClientId,onChange:cl=>_({gdriveClientId:cl.target.value}),placeholder:"your-client-id.apps.googleusercontent.com",disabled:N==="pending"}),c.jsx("label",{className:"field-label",children:"Client Secret"}),c.jsx("input",{type:"password",value:o.gdriveClientSecret,onChange:cl=>_({gdriveClientSecret:cl.target.value}),placeholder:"your-client-secret",disabled:N==="pending"}),N==="idle"&&c.jsx("button",{className:"btn-primary",onClick:Il,disabled:D,children:"Connect Google Drive"}),N==="pending"&&c.jsx("p",{style:{color:"var(--warning)",fontSize:"0.9rem"},children:"Waiting for Google authentication — complete it in the browser tab that just opened..."}),N==="error"&&c.jsxs("div",{style:{marginTop:"0.5rem"},children:[c.jsx("p",{style:{color:"var(--error)",fontSize:"0.9rem",marginBottom:"0.5rem"},children:L}),c.jsx("button",{className:"btn-secondary",onClick:Sl,children:"Try Again"})]})]}),N==="authenticated"&&c.jsxs("div",{style:{background:"var(--bg-surface)",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",padding:"1rem",marginBottom:"1rem"},children:[c.jsx("p",{style:{color:"var(--success)",fontSize:"0.9rem",marginBottom:"1rem"},children:"Google account connected. Now configure where the folder will be created."}),c.jsx("label",{className:"field-label",children:"Folder name"}),c.jsx("input",{type:"text",value:o.gdriveFolderName,onChange:cl=>_({gdriveFolderName:cl.target.value}),placeholder:"Personal Assistant"}),c.jsxs("label",{className:"field-label",children:["Parent folder in My Drive"," ",c.jsx("span",{style:{color:"var(--text-dim)",fontWeight:400},children:"(optional — leave empty for root)"})]}),c.jsx("input",{type:"text",value:o.gdriveFolderParent,onChange:cl=>_({gdriveFolderParent:cl.target.value}),placeholder:"e.g. Work"}),c.jsx("span",{className:"field-hint",style:{marginTop:"-0.5rem",marginBottom:"1rem"},children:"If this folder doesn't exist in your Drive it will be created automatically."}),c.jsxs("div",{style:{display:"flex",gap:"0.75rem",alignItems:"center"},children:[c.jsx("button",{className:"btn-primary",onClick:Cl,disabled:k||!o.gdriveFolderName.trim(),children:k?"Creating...":"Create Folder"}),c.jsx("button",{className:"btn-secondary",onClick:Sl,style:{fontSize:"0.85rem"},children:"Start Over"})]}),L&&c.jsx("p",{style:{color:"var(--error)",fontSize:"0.9rem",marginTop:"0.75rem"},children:L})]}),N==="complete"&&c.jsxs("div",{style:{background:"var(--success-subtle)",border:"1px solid rgba(34, 197, 94, 0.2)",borderRadius:"var(--radius-sm)",padding:"1rem",marginBottom:"1rem"},children:[c.jsx("p",{style:{color:"var(--success)",fontSize:"0.9rem",marginBottom:"0.75rem",fontWeight:600},children:"Folder created in Google Drive"}),c.jsxs("div",{style:{fontSize:"0.875rem",color:"var(--text-secondary)",lineHeight:"1.8"},children:[c.jsxs("div",{children:[c.jsx("span",{style:{color:"var(--text-muted)"},children:"Name: "}),c.jsx("strong",{style:{color:"var(--text-primary)"},children:o.gdriveFolderName})]}),c.jsxs("div",{children:[c.jsx("span",{style:{color:"var(--text-muted)"},children:"Location: "}),c.jsx("strong",{style:{color:"var(--text-primary)"},children:o.gdriveFolderPath})]}),c.jsxs("div",{children:[c.jsx("span",{style:{color:"var(--text-muted)"},children:"Folder ID: "}),c.jsx("code",{style:{background:"var(--bg-elevated)",padding:"0 4px",borderRadius:3,fontSize:"0.8rem",color:"var(--text-secondary)"},children:o.gdriveFolderId})]})]}),c.jsx("button",{className:"btn-secondary",onClick:ee,style:{marginTop:"0.75rem",fontSize:"0.85rem"},children:"Change location"})]})]}),c.jsx("div",{className:"banner-warning",style:{marginBottom:"1.5rem"},children:"Do not delete, move, or rename the folder structure created by this setup. Claude and the sync daemon rely on the exact file and folder layout to load and update your context. Deleting files will result in lost context that cannot be automatically recovered."}),c.jsxs("div",{className:"btn-group",children:[c.jsx("button",{className:"btn-secondary",onClick:h,children:"Back"}),c.jsx("button",{className:"btn-primary",onClick:()=>{Ju(o.email,`storage_${o.storageMode}_configured`),H()},disabled:!Bl,children:"Continue"})]})]})}const Nl=o=>c.jsx("code",{style:{display:"inline-block",background:"#0a0a0c",color:"#fbbf24",borderRadius:4,padding:"1px 7px",fontSize:"0.76rem",fontFamily:"var(--font-mono)",margin:"0 3px 3px 0",border:"1px solid #422006"},children:o},o),Hl=o=>c.jsx("strong",{style:{color:"#fafafa"},children:o}),Ml=o=>c.jsx("li",{style:{marginBottom:"0.5rem"},children:o}),En=o=>c.jsx("ol",{style:{paddingLeft:"1.1rem",margin:0,lineHeight:1.7,color:"#a1a1aa",fontSize:"0.83rem"},children:o}),jv=[{id:"slack",name:"Slack",desc:"Connect a shared Slack channel for instant project-aware replies",color:"#4A154B",initials:"Sl",fields:[{key:"botToken",label:"Bot Token",placeholder:"xoxb-...",type:"password"}],steps:En(c.jsxs(c.Fragment,{children:[Ml(c.jsxs(c.Fragment,{children:["Go to ",Hl("api.slack.com/apps")," → Create New App → From scratch"]})),Ml(c.jsxs(c.Fragment,{children:["Under ",Hl("Socket Mode")," enable Socket Mode, create an app token with scope ",Nl("connections:write"),", and copy the ",Hl("App-Level Token")," (starts with ",Nl("xapp-"),")"]})),Ml(c.jsxs(c.Fragment,{children:["Under ",Hl("OAuth & Permissions")," add bot scopes: ",Nl("channels:history")," ",Nl("channels:read")," ",Nl("groups:history")," ",Nl("groups:read")," ",Nl("im:history")," ",Nl("app_mentions:read")," ",Nl("chat:write")]})),Ml(c.jsxs(c.Fragment,{children:["Under ",Hl("Event Subscriptions")," enable bot events for your channel type: ",Nl("message.channels")," and/or ",Nl("message.groups")," plus ",Nl("app_mention")]})),Ml(c.jsxs(c.Fragment,{children:["Click ",Hl("Install to Workspace")," and copy the ",Hl("Bot User OAuth Token")," (starts with ",Nl("xoxb-"),")"]})),Ml(c.jsxs(c.Fragment,{children:["Invite the bot to any channel or private group you want Atlas to monitor, for example ",Nl("/invite @YourAppName"),". No monitored-channel selection is required in onboarding."]}))]}))},{id:"gmail",name:"Gmail",desc:"Pull email thread summaries into your context",color:"#EA4335",initials:"Gm",fields:[{key:"clientId",label:"Client ID",placeholder:"your-client-id.apps.googleusercontent.com"},{key:"clientSecret",label:"Client Secret",placeholder:"your-client-secret",type:"password"},{key:"refreshToken",label:"Refresh Token",placeholder:"your-refresh-token",type:"password"}],steps:En(c.jsxs(c.Fragment,{children:[Ml(c.jsx(c.Fragment,{children:"Use the same Google Cloud project from your Storage setup, or create a new one"})),Ml(c.jsxs(c.Fragment,{children:["Enable the ",Hl("Gmail API")," in ",Hl("APIs & Services → Library")]})),Ml(c.jsxs(c.Fragment,{children:["Go to ",Hl("developers.google.com/oauthplayground")," → settings gear → check ",Hl("Use your own OAuth credentials")," → enter Client ID & Secret"]})),Ml(c.jsxs(c.Fragment,{children:["In Step 1 select ",Nl("https://www.googleapis.com/auth/gmail.readonly")," → Authorise APIs"]})),Ml(c.jsxs(c.Fragment,{children:["In Step 2 click ",Hl("Exchange authorisation code for tokens")," → copy the ",Hl("Refresh token")]}))]}))},{id:"github",name:"GitHub",desc:"Track your commits, PRs, issues, and all comments",color:"#24292F",initials:"GH",fields:[{key:"token",label:"Personal Access Token",placeholder:"ghp_...",type:"password"}],steps:En(c.jsxs(c.Fragment,{children:[Ml(c.jsxs(c.Fragment,{children:["Go to ",Hl("github.com → Settings → Developer settings → Personal access tokens → Tokens (classic)")]})),Ml(c.jsxs(c.Fragment,{children:["Click ",Hl("Generate new token (classic)")]})),Ml(c.jsxs(c.Fragment,{children:["Select scopes — ",Nl("repo")," ",Nl("read:user")," ",Nl("user:email")," ",Nl("notifications")]})),Ml(c.jsxs(c.Fragment,{children:["Click ",Hl("Generate token")," and copy it (shown only once)"]}))]}))},{id:"gitlab",name:"GitLab",desc:"Sync MRs, issues, and activity events",color:"#FC6D26",initials:"GL",fields:[{key:"token",label:"Personal Access Token",placeholder:"glpat-...",type:"password"},{key:"baseUrl",label:"Base URL",placeholder:"https://gitlab.com/api/v4",optional:!0}],steps:En(c.jsxs(c.Fragment,{children:[Ml(c.jsxs(c.Fragment,{children:["Go to ",Hl("gitlab.com → User Settings → Access Tokens")," (or your self-hosted instance)"]})),Ml(c.jsxs(c.Fragment,{children:["Create a token with scopes: ",Nl("read_api")," ",Nl("read_repository")]})),Ml(c.jsx(c.Fragment,{children:"Copy the token (shown only once)"})),Ml(c.jsxs(c.Fragment,{children:["If self-hosted, enter your API base URL e.g. ",Nl("https://gitlab.mycompany.com/api/v4")," — leave blank for gitlab.com"]}))]}))},{id:"gdrive",name:"Google Drive",desc:"Extract content from documents in your Drive",color:"#4285F4",initials:"GD",fields:[{key:"clientId",label:"Client ID",placeholder:"your-client-id.apps.googleusercontent.com"},{key:"clientSecret",label:"Client Secret",placeholder:"your-client-secret",type:"password"},{key:"refreshToken",label:"Refresh Token",placeholder:"your-refresh-token",type:"password"}],steps:En(c.jsxs(c.Fragment,{children:[Ml(c.jsx(c.Fragment,{children:"Reuse the Client ID and Secret from the Storage step if you already set up Google Drive storage"})),Ml(c.jsxs(c.Fragment,{children:["Go to ",Hl("developers.google.com/oauthplayground")," → settings gear → check ",Hl("Use your own OAuth credentials")," → enter Client ID & Secret"]})),Ml(c.jsxs(c.Fragment,{children:["In Step 1 select ",Nl("https://www.googleapis.com/auth/drive.readonly")," → Authorise APIs"]})),Ml(c.jsxs(c.Fragment,{children:["In Step 2 click ",Hl("Exchange authorisation code for tokens")," → copy the ",Hl("Refresh token")]}))]}))},{id:"gchat",name:"Google Chat",desc:"Sync space messages into your context",color:"#00AC47",initials:"GC",fields:[],comingSoon:!0,steps:null}];function zv({state:o,update:_,onNext:H,onPrev:h}){const[N,G]=gl.useState(null),[L,B]=gl.useState({}),[D,S]=gl.useState({}),k=z=>o.integrations.includes(z),q=z=>o.integrationCredentials[z]??{},Z=z=>{B(O=>({...O,[z]:"idle"})),S(O=>({...O,[z]:""})),G(z)},Tl=z=>{const O={integrations:o.integrations.filter(V=>V!==z),integrationCredentials:{...o.integrationCredentials,[z]:{}}};z==="slack"&&Object.assign(O,{slackAppToken:"",slackChannelId:"",slackChannelName:"",slackReviewerUserId:"",slackReviewerDisplayName:o.name,slackReviewMode:"auto_send",slackGenerationEnabled:!0,slackDefaultProvider:"openai",slackDefaultModel:o.openAIModel||"gpt-4.1-mini"}),_(O),B(V=>({...V,[z]:"idle"})),S(V=>({...V,[z]:""})),G(null)},pl=(z,O,V)=>{B(nl=>({...nl,[z]:"idle"})),_({integrationCredentials:{...o.integrationCredentials,[z]:{...q(z),[O]:V}}})},il=(z,O)=>{O!=null&&O.invalidateValidation&&B(V=>({...V,slack:"idle"})),_(z)},Il=z=>{var V;if(z.id==="slack")return!!((V=q("slack").botToken)!=null&&V.trim()&&o.slackAppToken.trim());const O=q(z.id);return z.fields.filter(nl=>!nl.optional).every(nl=>(O[nl.key]??"").trim()!=="")},Cl=async z=>{B(O=>({...O,[z.id]:"validating"})),S(O=>({...O,[z.id]:""}));try{if(z.id==="slack"){const Vl=await(await fetch("/api/validate-slack-runtime",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({botToken:q("slack").botToken,appToken:o.slackAppToken,generationEnabled:o.slackGenerationEnabled,providers:{openai:{apiKey:o.openAIApiKey,model:o.openAIModel},anthropic:{apiKey:o.anthropicApiKey,model:o.anthropicModel}}})})).json();if(!Vl.valid){B(xl=>({...xl,slack:"invalid"})),S(xl=>({...xl,slack:Vl.error??"Slack validation failed"}));return}il({slackReviewerDisplayName:o.name}),B(xl=>({...xl,slack:"valid"})),S(xl=>({...xl,slack:Vl.info??"Slack connected"}));return}const V=await(await fetch("/api/validate-integration",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:z.id,credentials:q(z.id)})})).json();V.valid?(B(nl=>({...nl,[z.id]:"valid"})),S(nl=>({...nl,[z.id]:V.info??""}))):(B(nl=>({...nl,[z.id]:"invalid"})),S(nl=>({...nl,[z.id]:V.error??"Validation failed"})))}catch(O){B(V=>({...V,[z.id]:"invalid"})),S(V=>({...V,[z.id]:String(O)}))}},ee=z=>{const O=L[z.id]??"idle";if(z.id!=="slack")return O==="valid";const V=!o.slackGenerationEnabled||(o.slackDefaultProvider==="openai"?!!o.openAIApiKey.trim()&&!!o.openAIModel.trim():!!o.anthropicApiKey.trim()&&!!o.anthropicModel.trim());return O==="valid"&&V},Sl=()=>(L.slack??"idle")!=="valid"?"Validate Slack first":o.slackGenerationEnabled&&o.slackDefaultProvider==="openai"&&!o.openAIApiKey.trim()?"Add an OpenAI API key or disable draft generation":o.slackGenerationEnabled&&o.slackDefaultProvider==="anthropic"&&!o.anthropicApiKey.trim()?"Add a Claude API key or disable draft generation":"",Bl=z=>{k(z)||(_({integrations:[...o.integrations,z]}),Ju(o.email,`integration_${z}_connected`)),G(null)},cl=o.integrations.length;return c.jsxs("div",{className:"step-content",children:[c.jsxs("div",{style:{marginBottom:"1.5rem",display:"flex",alignItems:"flex-start",justifyContent:"space-between"},children:[c.jsxs("div",{children:[c.jsx("h1",{style:{marginBottom:"0.25rem"},children:"Integrations"}),c.jsx("h2",{style:{margin:0},children:"Connect your tools (optional)"})]}),cl>0&&c.jsxs("span",{style:{fontSize:"0.8rem",color:"var(--success)",background:"var(--success-subtle)",padding:"4px 12px",borderRadius:99,fontWeight:500,marginTop:"0.25rem"},children:[cl," connected"]})]}),c.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"0.625rem",marginBottom:"1.5rem"},children:jv.map(z=>{const O=k(z.id),V=N===z.id,nl=L[z.id]??"idle",Vl=D[z.id]??"",xl=Il(z)&&nl!=="validating",El=ee(z);return c.jsxs("div",{style:{borderRadius:"var(--radius)",border:`1px solid ${O?"rgba(34, 197, 94, 0.2)":V?"var(--border-hover)":"var(--border)"}`,background:O?"linear-gradient(to right, rgba(34, 197, 94, 0.04), var(--bg-surface))":V?"var(--bg-surface)":"var(--bg-input)",overflow:"hidden",transition:"border-color 0.2s"},children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"1rem",padding:"0.875rem 1.25rem"},children:[c.jsx("div",{style:{width:40,height:40,borderRadius:"var(--radius-sm)",background:z.color,display:"flex",alignItems:"center",justifyContent:"center",fontWeight:700,fontSize:"0.75rem",fontFamily:"var(--font-mono)",color:"#fff",flexShrink:0,opacity:z.comingSoon?.35:1,letterSpacing:"-0.01em"},children:z.initials}),c.jsxs("div",{style:{flex:1},children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[c.jsx("span",{style:{color:"var(--text-primary)",fontWeight:600,fontSize:"0.9rem"},children:z.name}),O&&c.jsx("span",{style:{fontSize:"0.7rem",background:"var(--success-subtle)",color:"var(--success)",padding:"1px 8px",borderRadius:99,fontWeight:600},children:"Connected"}),z.comingSoon&&c.jsx("span",{style:{fontSize:"0.7rem",background:"var(--bg-elevated)",color:"var(--text-dim)",padding:"1px 8px",borderRadius:99},children:"Coming soon"})]}),c.jsx("div",{style:{color:"var(--text-dim)",fontSize:"0.78rem",marginTop:"2px"},children:z.desc})]}),!z.comingSoon&&c.jsx("div",{style:{display:"flex",gap:"0.5rem",flexShrink:0},children:O?c.jsxs(c.Fragment,{children:[c.jsx("button",{onClick:()=>Z(z.id),style:Rd,children:"Edit"}),c.jsx("button",{onClick:()=>Tl(z.id),style:{...Rd,color:"#f87171",borderColor:"#3f1515"},children:"Disconnect"})]}):c.jsx("button",{onClick:()=>Z(z.id),style:{...Ev,background:V?"var(--accent-subtle)":"var(--bg-elevated)",borderColor:V?"var(--accent)":"var(--border)",color:V?"var(--accent)":"var(--text-secondary)"},children:V?"Setting up...":"+ Connect"})})]}),V&&c.jsxs("div",{style:{borderTop:"1px solid var(--border)",padding:"1.25rem"},children:[c.jsxs("div",{style:{background:"var(--bg-inset)",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",padding:"1rem",marginBottom:"1.25rem"},children:[c.jsx("p",{style:{color:"var(--text-muted)",fontSize:"0.7rem",fontWeight:700,letterSpacing:"0.08em",textTransform:"uppercase",marginBottom:"0.625rem"},children:"Setup steps"}),z.steps]}),c.jsx("div",{style:{display:"grid",gridTemplateColumns:z.fields.length>1?"1fr 1fr":"1fr",gap:"0.75rem",marginBottom:z.id==="slack"?"0.75rem":"1rem"},children:z.fields.map(ul=>c.jsxs("div",{children:[c.jsxs("label",{style:{display:"block",fontSize:"0.78rem",color:"var(--text-muted)",marginBottom:"0.3rem",fontWeight:500},children:[ul.label,ul.optional&&c.jsx("span",{style:{color:"var(--text-dim)"},children:" — optional"})]}),c.jsx("input",{type:ul.type??"text",value:q(z.id)[ul.key]??"",onChange:Wl=>pl(z.id,ul.key,Wl.target.value),placeholder:ul.placeholder,style:{marginBottom:0,fontSize:"0.83rem",padding:"0.6rem 0.75rem",background:"var(--bg-inset)",borderColor:"var(--border)"}})]},ul.key))}),z.id==="slack"&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{style:{marginBottom:"0.75rem"},children:[c.jsx("label",{style:et,children:"Socket Mode App Token"}),c.jsx("input",{type:"password",value:o.slackAppToken,onChange:ul=>il({slackAppToken:ul.target.value},{invalidateValidation:!0}),placeholder:"xapp-...",style:Nn})]}),c.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"0.75rem",marginBottom:"0.75rem"},children:[c.jsxs("div",{children:[c.jsx("label",{style:et,children:"Monitored Channels"}),c.jsx("div",{style:pf,children:"Any Slack channel or private group where the bot is added"})]}),c.jsxs("div",{children:[c.jsx("label",{style:et,children:"Escalation Owner"}),c.jsx("div",{style:pf,children:o.name||"Configured user"})]})]}),c.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"0.75rem",marginBottom:"0.75rem"},children:[c.jsxs("div",{children:[c.jsx("label",{style:et,children:"Reply Mode"}),c.jsx("div",{style:pf,children:"Auto reply"}),c.jsx("div",{style:{marginTop:"0.45rem",color:"var(--text-muted)",fontSize:"0.75rem",lineHeight:1.5},children:"Atlas replies automatically in-thread when the bot is present in the channel. Human review is disabled in onboarding for now."})]}),c.jsxs("div",{children:[c.jsx("label",{style:et,children:"Default Provider"}),c.jsxs("select",{value:o.slackDefaultProvider,onChange:ul=>{const Wl=ul.target.value;il({slackDefaultProvider:Wl,slackDefaultModel:Wl==="openai"?o.openAIModel:o.anthropicModel})},style:Nv,children:[c.jsx("option",{value:"openai",children:"OpenAI"}),c.jsx("option",{value:"anthropic",children:"Claude / Anthropic"})]})]})]}),c.jsxs("label",{style:{display:"flex",alignItems:"center",gap:"0.55rem",marginBottom:"0.9rem",fontSize:"0.82rem",color:"var(--text-secondary)"},children:[c.jsx("input",{type:"checkbox",checked:o.slackGenerationEnabled,onChange:ul=>il({slackGenerationEnabled:ul.target.checked},{invalidateValidation:!0})}),"Enable real-time draft generation"]}),c.jsxs("div",{style:{background:"var(--bg-inset)",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",padding:"0.9rem",marginBottom:"0.9rem"},children:[c.jsx("div",{style:{color:"var(--text-primary)",fontSize:"0.82rem",fontWeight:600,marginBottom:"0.6rem"},children:"Model providers"}),c.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"0.75rem",marginBottom:"0.75rem"},children:[c.jsxs("div",{children:[c.jsx("label",{style:et,children:"OpenAI API Key"}),c.jsx("input",{type:"password",value:o.openAIApiKey,onChange:ul=>il({openAIApiKey:ul.target.value},{invalidateValidation:!0}),placeholder:"sk-...",style:Nn})]}),c.jsxs("div",{children:[c.jsx("label",{style:et,children:"OpenAI Model"}),c.jsx("input",{value:o.openAIModel,onChange:ul=>il({openAIModel:ul.target.value,...o.slackDefaultProvider==="openai"?{slackDefaultModel:ul.target.value}:{}},{invalidateValidation:!0}),placeholder:"gpt-4.1-mini",style:Nn})]})]}),c.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"0.75rem"},children:[c.jsxs("div",{children:[c.jsx("label",{style:et,children:"Claude API Key"}),c.jsx("input",{type:"password",value:o.anthropicApiKey,onChange:ul=>il({anthropicApiKey:ul.target.value},{invalidateValidation:!0}),placeholder:"sk-ant-...",style:Nn})]}),c.jsxs("div",{children:[c.jsx("label",{style:et,children:"Claude Model"}),c.jsx("input",{value:o.anthropicModel,onChange:ul=>il({anthropicModel:ul.target.value,...o.slackDefaultProvider==="anthropic"?{slackDefaultModel:ul.target.value}:{}},{invalidateValidation:!0}),placeholder:"claude-3-7-sonnet-latest",style:Nn})]})]})]}),c.jsx("div",{style:{fontSize:"0.76rem",color:"var(--text-muted)",marginBottom:"1rem",lineHeight:1.6},children:"Slack and provider secrets are saved into your configured workspace storage. In local mode they stay on disk locally. In Google Drive mode they are stored in the workspace folder you selected."})]}),c.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"1rem"},children:[c.jsxs("div",{style:{fontSize:"0.82rem",flex:1},children:[nl==="idle"&&c.jsx("span",{style:{color:"var(--text-dim)"},children:"Enter your credentials above and validate to connect"}),nl==="validating"&&c.jsx("span",{style:{color:"var(--warning)"},children:"Validating credentials..."}),nl==="valid"&&c.jsxs("span",{style:{color:"var(--success)"},children:[Vl,z.id==="slack"&&Sl()?` · ${Sl()}`:""]}),nl==="invalid"&&c.jsx("span",{style:{color:"#f87171"},children:Vl})]}),c.jsxs("div",{style:{display:"flex",gap:"0.5rem",flexShrink:0},children:[c.jsx("button",{onClick:()=>Cl(z),disabled:!xl,style:{...Hd,background:xl?"var(--accent-dim)":"var(--bg-inset)",color:xl?"var(--accent)":"var(--text-dim)",borderColor:xl?"rgba(245, 158, 11, 0.3)":"var(--border)",cursor:xl?"pointer":"not-allowed"},children:nl==="validating"?"Validating...":"Validate"}),c.jsx("button",{onClick:()=>Bl(z.id),disabled:!El,style:{...Hd,background:El?"var(--success-dim)":"var(--bg-inset)",color:El?"var(--success)":"var(--text-dim)",borderColor:El?"rgba(34, 197, 94, 0.3)":"var(--border)",cursor:El?"pointer":"not-allowed",fontWeight:700},children:"Save"})]})]})]})]},z.id)})}),c.jsxs("div",{className:"btn-group",children:[c.jsx("button",{className:"btn-secondary",onClick:h,children:"Back"}),c.jsx("button",{className:"btn-primary",onClick:H,children:"Continue"})]})]})}const Rd={background:"none",border:"1px solid var(--border)",borderRadius:6,padding:"5px 12px",color:"var(--text-dim)",fontSize:"0.78rem",cursor:"pointer",fontWeight:500},Ev={border:"1px solid",borderRadius:6,padding:"5px 14px",fontSize:"0.8rem",fontWeight:600,cursor:"pointer",transition:"all 0.15s"},Hd={border:"1px solid",borderRadius:6,padding:"6px 16px",fontSize:"0.8rem",fontWeight:600,transition:"all 0.15s"},et={display:"block",fontSize:"0.78rem",color:"var(--text-muted)",marginBottom:"0.3rem",fontWeight:500},Nn={marginBottom:0,fontSize:"0.83rem",padding:"0.6rem 0.75rem",background:"var(--bg-inset)",borderColor:"var(--border)"},Nv={width:"100%",fontSize:"0.83rem",padding:"0.6rem 0.75rem",background:"var(--bg-inset)",color:"var(--text-primary)",border:"1px solid var(--border)",borderRadius:8},pf={width:"100%",fontSize:"0.83rem",padding:"0.6rem 0.75rem",background:"var(--bg-inset)",color:"var(--text-primary)",border:"1px solid var(--border)",borderRadius:8,minHeight:40,display:"flex",alignItems:"center"},Mv=[{value:"America/New_York",label:"Eastern Time (ET)"},{value:"America/Chicago",label:"Central Time (CT)"},{value:"America/Denver",label:"Mountain Time (MT)"},{value:"America/Los_Angeles",label:"Pacific Time (PT)"},{value:"UTC",label:"UTC"},{value:"Europe/London",label:"London (GMT/BST)"},{value:"Europe/Berlin",label:"Berlin (CET)"},{value:"Asia/Tokyo",label:"Tokyo (JST)"},{value:"Asia/Kolkata",label:"India (IST)"},{value:"Australia/Sydney",label:"Sydney (AEST)"}];function Cv({state:o,update:_,onNext:H,onPrev:h}){return c.jsxs("div",{className:"step-content",children:[c.jsx("h1",{children:"Sync Schedule"}),c.jsx("h2",{children:"When should context be refreshed?"}),c.jsx("div",{className:"form-card",children:c.jsxs("div",{className:"form-row",style:{marginBottom:"1rem"},children:[c.jsxs("div",{className:"form-field",children:[c.jsx("label",{className:"field-label",children:"Daily Sync Time"}),c.jsx("input",{type:"time",value:o.syncTime,onChange:N=>_({syncTime:N.target.value})})]}),c.jsxs("div",{className:"form-field",children:[c.jsx("label",{className:"field-label",children:"Timezone"}),c.jsx("select",{value:o.timezone,onChange:N=>_({timezone:N.target.value}),children:Mv.map(N=>c.jsx("option",{value:N.value,children:N.label},N.value))})]})]})}),c.jsxs("div",{className:"checkbox-group",children:[c.jsxs("label",{className:"checkbox-item",children:[c.jsx("input",{type:"checkbox",checked:o.manualSync,onChange:N=>_({manualSync:N.target.checked})}),"Manual sync enabled"]}),c.jsxs("label",{className:"checkbox-item",children:[c.jsx("input",{type:"checkbox",checked:o.asyncUpdate,onChange:N=>_({asyncUpdate:N.target.checked})}),"Async updates enabled"]})]}),c.jsxs("div",{className:"btn-group",children:[c.jsx("button",{className:"btn-secondary",onClick:h,children:"Back"}),c.jsx("button",{className:"btn-primary",onClick:H,children:"Continue"})]})]})}function _v({state:o,onNext:_,onPrev:H}){const[h,N]=gl.useState(!1),[G,L]=gl.useState(""),B={user:{name:o.name,email:o.email,assistantName:o.assistantName,profileType:o.profileType,responsibilities:o.responsibilities},storage:o.storageMode==="local"?{mode:"local",workspacePath:o.localPath}:{mode:"gdrive",folderId:o.gdriveFolderId,folderName:o.gdriveFolderName,cachePath:`${o.localPath||".personal-assistant"}/cache`,credentials:{clientId:o.gdriveClientId,clientSecret:o.gdriveClientSecret,refreshToken:o.gdriveRefreshToken}},integrations:o.integrations.map(k=>({type:k,enabled:!0,credentials:o.integrationCredentials[k]??{}})),sync:{dailySyncTime:o.syncTime,timezone:o.timezone,manualSyncEnabled:o.manualSync,asyncUpdateEnabled:o.asyncUpdate},slackRuntime:o.integrations.includes("slack")?{enabled:!0,transport:"socket_mode",appToken:o.slackAppToken,reviewMode:o.slackReviewMode,generationEnabled:o.slackGenerationEnabled,defaultProvider:o.slackGenerationEnabled?o.slackDefaultProvider:void 0,defaultModel:o.slackGenerationEnabled?o.slackDefaultModel:void 0,channelMappings:[]}:void 0,providers:o.integrations.includes("slack")&&(o.openAIApiKey||o.anthropicApiKey)?{...o.openAIApiKey?{openai:{apiKey:o.openAIApiKey,model:o.openAIModel}}:{},...o.anthropicApiKey?{anthropic:{apiKey:o.anthropicApiKey,model:o.anthropicModel}}:{}}:void 0},D=Ov(B),S=async()=>{N(!0),L("");try{const q=await(await fetch("/api/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(B)})).json();q.success?(Ju(o.email,"onboarding_completed"),_()):L(q.error||"Failed to save configuration")}catch(k){L(String(k))}finally{N(!1)}};return c.jsxs("div",{className:"step-content",children:[c.jsx("h1",{children:"All Set"}),c.jsx("h2",{children:"Review and save your configuration"}),c.jsx("div",{className:"summary",children:JSON.stringify(D,null,2)}),G&&c.jsx("p",{style:{color:"var(--error)",marginBottom:"1rem",fontSize:"0.9rem"},children:G}),c.jsxs("div",{className:"btn-group",children:[c.jsx("button",{className:"btn-secondary",onClick:H,children:"Back"}),c.jsx("button",{className:"btn-primary",onClick:S,disabled:h,children:h?"Saving...":"Save & Finish"})]})]})}function Ov(o){return JSON.parse(JSON.stringify(o,(_,H)=>typeof H=="string"&&_.toLowerCase().includes("token")||typeof H=="string"&&_.toLowerCase().includes("secret")||typeof H=="string"&&_.toLowerCase().includes("apikey")?bf(H):H))}function bf(o){return o.length<=8?"********":`${o.slice(0,4)}...${o.slice(-4)}`}function Dv(){return c.jsxs("div",{className:"success step-content",children:[c.jsx("div",{className:"success-icon",children:c.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:c.jsx("polyline",{points:"20 6 9 17 4 12"})})}),c.jsx("h1",{children:"Setup Complete"}),c.jsxs("p",{style:{marginTop:"0.75rem",color:"var(--text-secondary)",fontSize:"1.05rem",lineHeight:1.6},children:["Your personal assistant context has been initialized.",c.jsx("br",{}),"Here's how to get started:"]}),c.jsx("div",{className:"code-block",children:`# Install Claude Code integration
54
+ pacman claude install
55
+ pacman mcp claude install
56
+
57
+ # Install Codex integration
58
+ pacman codex install
59
+ pacman mcp codex install
60
+
61
+ # Start the sync daemon
62
+ pacman daemon
63
+
64
+ # Start the real-time Slack listener
65
+ pacman slack listen
66
+
67
+ # Atlas now auto-replies in the configured Slack channel(s)
68
+ # in any Slack channel/group where the bot is present,
69
+ # using project inference plus saved context
70
+
71
+ # Use in Claude Code
72
+ /personal-assistant start <project>
73
+
74
+ # Use in Codex
75
+ Ask Codex to load or refresh your Personal Assistant context for <project>`}),c.jsxs("p",{style:{marginTop:"1.25rem",color:"var(--text-muted)",fontSize:"0.82rem",lineHeight:1.7},children:["Restart Claude Code or Codex after installing the MCP server.",c.jsx("br",{}),"Make sure"," ",c.jsx("code",{style:{background:"var(--bg-surface)",padding:"0 5px",borderRadius:4,border:"1px solid var(--border)"},children:"pacman"})," ","is available globally. If your shell already reserves"," ",c.jsx("code",{style:{background:"var(--bg-surface)",padding:"0 5px",borderRadius:4,border:"1px solid var(--border)"},children:"pacman"}),", the legacy alias"," ",c.jsx("code",{style:{background:"var(--bg-surface)",padding:"0 5px",borderRadius:4,border:"1px solid var(--border)"},children:"personal-assistant"})," ","still works.",c.jsx("br",{}),"For local repo testing, run:",c.jsx("br",{}),c.jsx("code",{style:{background:"var(--bg-surface)",padding:"2px 6px",borderRadius:4,display:"inline-block",marginTop:"0.4rem",border:"1px solid var(--border)"},children:"pnpm setup && source ~/.zshrc && cd packages/cli && pnpm link --global"})]})]})}const Uv={name:"",email:"",assistantName:"Atlas",profileType:"software-engineer",responsibilities:[],templateFiles:{},storageMode:"local",localPath:".personal-assistant",gdriveClientId:"",gdriveClientSecret:"",gdriveFolderId:"",gdriveFolderName:"Personal Assistant",gdriveFolderParent:"",gdriveFolderPath:"",gdriveRefreshToken:"",integrations:[],integrationCredentials:{},slackAppToken:"",slackChannelId:"",slackChannelName:"",slackReviewerUserId:"",slackReviewerDisplayName:"",slackReviewMode:"auto_send",slackGenerationEnabled:!0,slackDefaultProvider:"openai",slackDefaultModel:"gpt-4.1-mini",openAIApiKey:"",openAIModel:"gpt-4.1-mini",anthropicApiKey:"",anthropicModel:"claude-3-7-sonnet-latest",syncTime:"08:00",timezone:"America/New_York",manualSync:!0,asyncUpdate:!0},Sf=["Identity","Responsibilities","Template","Storage","Integrations","Schedule","Finish","Success"];function Rv(){const[o,_]=gl.useState(0),[H,h]=gl.useState(Uv),N=S=>{h(k=>({...k,...S}))},G=()=>_(S=>Math.min(S+1,Sf.length-1)),L=()=>_(S=>Math.max(S-1,0)),B=Sf.length-1,D=o>=B?100:o/(B-1)*100;return c.jsxs("div",{className:"container",children:[o<B&&c.jsxs("div",{className:"step-header",children:[c.jsxs("div",{className:"step-meta",children:[c.jsxs("span",{className:"step-counter",children:[o+1," / ",B]}),c.jsx("span",{className:"step-name",children:Sf[o]})]}),c.jsx("div",{className:"progress-track",children:c.jsx("div",{className:"progress-fill",style:{width:`${D}%`}})})]}),o===0&&c.jsx(Sv,{state:H,update:N,onNext:G}),o===1&&c.jsx(xv,{state:H,update:N,onNext:G,onPrev:L}),o===2&&c.jsx(Tv,{state:H,update:N,onNext:G,onPrev:L}),o===3&&c.jsx(Av,{state:H,update:N,onNext:G,onPrev:L}),o===4&&c.jsx(zv,{state:H,update:N,onNext:G,onPrev:L}),o===5&&c.jsx(Cv,{state:H,update:N,onNext:G,onPrev:L}),o===6&&c.jsx(_v,{state:H,onNext:G,onPrev:L}),o===7&&c.jsx(Dv,{})]})}gv.createRoot(document.getElementById("root")).render(c.jsx(sv.StrictMode,{children:c.jsx(Rv,{})}));
@@ -0,0 +1 @@
1
+ :root{--bg-base: #09090b;--bg-surface: #141416;--bg-elevated: #1c1c1f;--bg-input: #111113;--bg-inset: #0a0a0c;--border: #27272a;--border-hover: #3f3f46;--border-focus: #f59e0b;--accent: #f59e0b;--accent-hover: #d97706;--accent-subtle: rgba(245, 158, 11, .08);--accent-dim: rgba(245, 158, 11, .15);--text-primary: #fafafa;--text-secondary: #a1a1aa;--text-muted: #71717a;--text-dim: #52525b;--success: #22c55e;--success-subtle: rgba(34, 197, 94, .08);--success-dim: rgba(34, 197, 94, .15);--error: #ef4444;--error-subtle: rgba(239, 68, 68, .08);--warning: #f59e0b;--warning-subtle: rgba(245, 158, 11, .08);--font-display: "Outfit", sans-serif;--font-body: "DM Sans", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Fira Code", monospace;--radius-lg: 16px;--radius: 12px;--radius-sm: 8px;--radius-xs: 6px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);background:var(--bg-base);color:var(--text-primary);min-height:100vh;background-image:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(245,158,11,.03) 0%,transparent 70%);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.container{max-width:720px;margin:0 auto;padding:2.5rem 2rem 3rem}.container:has(.template-preview){max-width:960px}.step-header{margin-bottom:2.5rem}.step-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:.875rem}.step-counter{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);letter-spacing:.05em}.step-name{font-family:var(--font-display);font-size:.75rem;font-weight:500;color:var(--accent);letter-spacing:.06em;text-transform:uppercase}.progress-track{height:2px;background:var(--border);border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-hover));border-radius:2px;transition:width .6s cubic-bezier(.4,0,.2,1)}h1{font-family:var(--font-display);font-size:1.875rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem;letter-spacing:-.025em;line-height:1.2}h2{font-family:var(--font-body);font-size:1rem;margin-bottom:1.5rem;color:var(--text-secondary);font-weight:400;line-height:1.5}.step-content{animation:stepIn .4s ease-out}@keyframes stepIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}label{display:block;margin-bottom:.375rem;color:var(--text-secondary);font-size:.85rem;font-weight:500}input,select,textarea{width:100%;padding:.8rem 1rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-body);font-size:.95rem;margin-bottom:1rem;transition:border-color .2s,box-shadow .2s}input::placeholder,textarea::placeholder{color:var(--text-dim)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .875rem center;padding-right:2.5rem}textarea{min-height:200px;font-family:var(--font-mono);font-size:.85rem;resize:vertical}.form-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-field,.form-field input,.form-field select{margin-bottom:0}.form-section{margin-bottom:1.5rem}.field-label{display:block;font-size:.8rem;font-weight:500;color:var(--text-muted);margin-bottom:.5rem;letter-spacing:.01em}.field-hint{display:block;font-size:.78rem;color:var(--text-dim);margin-top:.35rem;line-height:1.5}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:.625rem}.profile-card{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s}.profile-card:hover{border-color:var(--border-hover);background:var(--bg-elevated)}.profile-card.selected{border-color:var(--accent);background:var(--accent-subtle)}.profile-indicator{width:3px;height:28px;border-radius:2px;flex-shrink:0;opacity:.7;transition:opacity .2s}.profile-card.selected .profile-indicator{opacity:1}.profile-info{display:flex;flex-direction:column;gap:1px}.profile-name{font-weight:600;font-size:.85rem;color:var(--text-primary)}.profile-desc{font-size:.72rem;color:var(--text-muted);line-height:1.4}button{padding:.75rem 1.5rem;border:none;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-hover) 100%);color:#09090b;box-shadow:0 1px 2px #0000004d,0 0 16px #f59e0b1a}.btn-primary:hover:not(:disabled){box-shadow:0 2px 8px #0000004d,0 0 24px #f59e0b33;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-secondary{background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border);color:var(--text-primary)}.btn-secondary:disabled{opacity:.4;cursor:not-allowed}.btn-group{display:flex;gap:.75rem;margin-top:2rem}.checkbox-group{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1rem}.checkbox-item{display:flex;align-items:center;gap:.625rem;padding:.625rem .75rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:.875rem;color:var(--text-secondary);transition:all .2s}.checkbox-item:hover{border-color:var(--border-hover);color:var(--text-primary)}.checkbox-item input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent);flex-shrink:0}.radio-group{display:flex;gap:.75rem;margin-bottom:1.25rem}.radio-item{flex:1;padding:1.25rem 1rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:center;transition:all .2s}.radio-item:hover{border-color:var(--border-hover);background:var(--bg-elevated)}.radio-item.selected{border-color:var(--accent);background:var(--accent-subtle)}.radio-item strong{color:var(--text-primary)}.radio-item small{color:var(--text-muted);font-size:.78rem}.template-preview{display:flex;height:520px;background:#0a0a0c;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:.5rem}.template-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;gap:1rem;color:var(--text-muted);font-family:var(--font-body)}.template-spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.template-error{display:flex;align-items:center;justify-content:center;width:100%;color:var(--error);font-size:.9rem}.template-sidebar{width:200px;min-width:200px;background:#111113;border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto}.template-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;font-family:var(--font-body);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);border-bottom:1px solid var(--border)}.template-sidebar-actions{display:flex;gap:.25rem}.template-action-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-muted);cursor:pointer;transition:all .15s}.template-action-btn:hover{background:var(--border);color:var(--text-primary)}.template-file-tab{display:flex;align-items:center;gap:.5rem;width:100%;padding:.55rem 1rem;background:transparent;border:none;border-left:2px solid transparent;color:var(--text-secondary);font-family:var(--font-body);font-size:.8rem;cursor:pointer;text-align:left;transition:all .15s}.template-file-tab:hover{background:#1c1c1f}.template-file-tab.active{background:#0a0a0c;border-left-color:var(--accent);color:var(--text-primary)}.template-file-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;font-family:var(--font-mono);font-size:.65rem;font-weight:700;flex-shrink:0}.template-file-icon.icon-m{background:#f59e0b1f;color:var(--accent)}.template-file-icon.icon-j{background:#f973161f;color:#f97316}.template-file-icon.icon-y{background:#a855f71f;color:#a855f7}.template-file-icon.icon-f{background:#71717a1f;color:var(--text-muted)}.template-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-file-lines{font-family:var(--font-mono);font-size:.65rem;color:var(--text-dim);flex-shrink:0}.template-folder-group{display:flex;flex-direction:column}.template-folder-row{display:flex;align-items:center;position:relative}.template-folder-tab{display:flex;align-items:center;gap:.35rem;flex:1;padding:.55rem .6rem .55rem .7rem;background:transparent;border:none;border-left:2px solid transparent;color:var(--text-secondary);font-family:var(--font-body);font-size:.8rem;cursor:pointer;text-align:left;transition:all .15s;min-width:0}.template-folder-tab:hover{background:#1c1c1f}.template-folder-arrow{font-size:.65rem;width:12px;flex-shrink:0;color:var(--text-muted)}.template-file-icon.icon-folder{background:#f59e0b1a;color:var(--accent);display:flex;align-items:center;justify-content:center}.template-folder-action{display:none;align-items:center;justify-content:center;width:22px;height:22px;font-size:.75rem;color:var(--text-muted);cursor:pointer;border-radius:3px;flex-shrink:0;transition:all .15s}.template-folder-row:hover .template-folder-action{display:flex}.template-folder-add:hover{background:var(--accent-dim);color:var(--accent)}.template-folder-children{display:flex;flex-direction:column}.template-file-tab.indented{padding-left:2.1rem}.template-folder-empty{padding:.4rem 1rem .4rem 2.1rem;font-size:.7rem;color:var(--text-dim);font-style:italic}.template-item-delete{display:none;align-items:center;justify-content:center;width:22px;height:22px;font-size:.85rem;color:var(--text-muted);cursor:pointer;border-radius:3px;flex-shrink:0;transition:all .15s}.template-file-tab:hover .template-item-delete,.template-folder-row:hover .template-item-delete{display:flex}.template-file-tab:hover .template-file-lines,.template-folder-row:hover .template-file-lines{display:none}.template-item-delete:hover{background:var(--error-subtle);color:var(--error)}.template-create-input{display:flex;align-items:center;gap:.35rem;padding:.35rem .6rem;background:#1c1c1f;border:1px solid var(--border);border-radius:4px;margin:.3rem .5rem}.template-create-prefix{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.template-create-field{width:100%;padding:.2rem .3rem;background:transparent;border:none;border-radius:0;color:var(--text-primary);font-family:var(--font-mono);font-size:.78rem;outline:none;margin:0}.template-create-field::placeholder{color:var(--text-dim)}.template-empty-editor{display:flex;align-items:center;justify-content:center;flex:1;color:var(--text-dim);font-size:.9rem;font-family:var(--font-body)}.template-editor{flex:1;display:flex;flex-direction:column;min-width:0}.template-editor-header{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;background:#111113;border-bottom:1px solid var(--border);min-height:40px}.template-editor-path{font-family:var(--font-mono);font-size:.78rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-editor-badge{font-family:var(--font-mono);font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:.15rem .45rem;border-radius:9999px;background:var(--accent-subtle);color:var(--accent);flex-shrink:0}.template-editor-body{display:flex;flex:1;overflow:auto}.template-line-numbers{display:flex;flex-direction:column;padding:.75rem 0;min-width:42px;text-align:right;font-family:var(--font-mono);font-size:.78rem;line-height:1.55;color:var(--text-dim);-webkit-user-select:none;user-select:none;border-right:1px solid #1c1c1f;background:#0a0a0c}.template-line-numbers span{padding:0 .6rem}.template-textarea{flex:1;padding:.75rem;background:#0a0a0c;border:none;border-radius:0;color:var(--text-secondary);font-family:var(--font-mono);font-size:.78rem;line-height:1.55;resize:none;outline:none;min-height:100%;margin:0;white-space:pre;overflow-wrap:normal;overflow-x:auto}.template-textarea:focus{border:none;box-shadow:none}.success{text-align:center;padding:3rem 0}.success h1{font-family:var(--font-display);font-size:2rem;margin-bottom:.75rem}.success h2{color:var(--success);font-family:var(--font-display);font-size:1.5rem;font-weight:600}.code-block{text-align:left;margin-top:1rem;background:var(--bg-surface);border:1px solid var(--border);padding:1.25rem;border-radius:var(--radius);font-size:.82rem;font-family:var(--font-mono);white-space:pre-wrap;color:var(--text-secondary);line-height:1.7}.summary{background:var(--bg-surface);border:1px solid var(--border);padding:1.25rem;border-radius:var(--radius);margin-bottom:1rem;font-family:var(--font-mono);font-size:.82rem;white-space:pre-wrap;color:var(--text-secondary);line-height:1.6;max-height:400px;overflow-y:auto}.banner-warning{background:#f59e0b0f;border:1px solid rgba(245,158,11,.2);border-radius:var(--radius-sm);padding:.75rem 1rem;font-size:.82rem;color:var(--warning);line-height:1.6}.banner-info{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1rem;font-size:.85rem;color:var(--text-secondary);line-height:1.6}.banner-success{background:var(--success-subtle);border:1px solid rgba(34,197,94,.2);border-radius:var(--radius-sm);padding:1rem}.success-icon{width:72px;height:72px;border-radius:50%;background:var(--success-dim);display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;animation:scaleIn .5s cubic-bezier(.34,1.56,.64,1)}@keyframes scaleIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.success-icon svg{width:32px;height:32px;color:var(--success)}.text-success{color:var(--success)}.text-error{color:var(--error)}.text-warning{color:var(--warning)}.text-muted{color:var(--text-muted)}.mt-1{margin-top:.5rem}.mb-1{margin-bottom:.5rem}
@@ -0,0 +1,20 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <meta name="theme-color" content="#09090b" />
7
+ <title>Personal Assistant - Setup</title>
8
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
9
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
10
+ <link
11
+ href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600&family=JetBrains+Mono:wght@400;500&display=swap"
12
+ rel="stylesheet"
13
+ />
14
+ <script type="module" crossorigin src="/assets/index-IBoT-KD4.js"></script>
15
+ <link rel="stylesheet" crossorigin href="/assets/index-ag5J9F2y.css">
16
+ </head>
17
+ <body>
18
+ <div id="root"></div>
19
+ </body>
20
+ </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mukulaggarwal/pacman",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Privacy-first personal assistant context manager with MCP, onboarding, and Slack runtime",
5
5
  "type": "module",
6
6
  "bin": {
@@ -11,9 +11,7 @@
11
11
  "main": "dist/index.js",
12
12
  "types": "dist/index.d.ts",
13
13
  "files": [
14
- "dist/**/*.js",
15
- "dist/**/*.d.ts",
16
- "dist/**/*.map",
14
+ "dist",
17
15
  "README.md"
18
16
  ],
19
17
  "homepage": "https://github.com/mukulaggarwal/personal-assistant-with-context",
@@ -38,8 +36,8 @@
38
36
  "access": "public"
39
37
  },
40
38
  "scripts": {
41
- "build": "tsup --config tsup.config.ts",
42
- "dev": "tsup --config tsup.config.ts --watch",
39
+ "build": "pnpm --dir ../../apps/onboarding-web build && tsup --config tsup.config.ts && node ./scripts/copy-onboarding-assets.mjs",
40
+ "dev": "pnpm --dir ../../apps/onboarding-web build && tsup --config tsup.config.ts --watch",
43
41
  "test": "vitest run",
44
42
  "lint": "eslint src/",
45
43
  "clean": "rm -rf dist"