@pan-sec/notebooklm-mcp 2026.2.1 → 2026.2.10
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.
- package/README.md +26 -8
- package/dist/auth/auth-manager.d.ts +37 -2
- package/dist/auth/auth-manager.d.ts.map +1 -1
- package/dist/auth/auth-manager.js +133 -11
- package/dist/auth/auth-manager.js.map +1 -1
- package/dist/auth/mcp-auth.d.ts +25 -4
- package/dist/auth/mcp-auth.d.ts.map +1 -1
- package/dist/auth/mcp-auth.js +145 -29
- package/dist/auth/mcp-auth.js.map +1 -1
- package/dist/compliance/retention-engine.js +1 -1
- package/dist/compliance/retention-engine.js.map +1 -1
- package/dist/config.d.ts +24 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +56 -8
- package/dist/config.js.map +1 -1
- package/dist/gemini/gemini-client.d.ts.map +1 -1
- package/dist/gemini/gemini-client.js +58 -20
- package/dist/gemini/gemini-client.js.map +1 -1
- package/dist/index.js +87 -180
- package/dist/index.js.map +1 -1
- package/dist/notebook-creation/audio-manager.js +2 -2
- package/dist/notebook-creation/audio-manager.js.map +1 -1
- package/dist/notebook-creation/data-table-manager.d.ts +13 -3
- package/dist/notebook-creation/data-table-manager.d.ts.map +1 -1
- package/dist/notebook-creation/data-table-manager.js +70 -32
- package/dist/notebook-creation/data-table-manager.js.map +1 -1
- package/dist/notebook-creation/discover-creation-flow.js +1 -1
- package/dist/notebook-creation/discover-creation-flow.js.map +1 -1
- package/dist/notebook-creation/discover-quota.js +1 -1
- package/dist/notebook-creation/discover-quota.js.map +1 -1
- package/dist/notebook-creation/discover-sources.js +1 -1
- package/dist/notebook-creation/discover-sources.js.map +1 -1
- package/dist/notebook-creation/notebook-creator.d.ts.map +1 -1
- package/dist/notebook-creation/notebook-creator.js +49 -26
- package/dist/notebook-creation/notebook-creator.js.map +1 -1
- package/dist/notebook-creation/notebook-sync.js +1 -1
- package/dist/notebook-creation/notebook-sync.js.map +1 -1
- package/dist/notebook-creation/selectors.d.ts +16 -12
- package/dist/notebook-creation/selectors.d.ts.map +1 -1
- package/dist/notebook-creation/selectors.js +25 -15
- package/dist/notebook-creation/selectors.js.map +1 -1
- package/dist/notebook-creation/source-manager.d.ts.map +1 -1
- package/dist/notebook-creation/source-manager.js +29 -6
- package/dist/notebook-creation/source-manager.js.map +1 -1
- package/dist/notebook-creation/video-manager.d.ts +10 -1
- package/dist/notebook-creation/video-manager.d.ts.map +1 -1
- package/dist/notebook-creation/video-manager.js +93 -44
- package/dist/notebook-creation/video-manager.js.map +1 -1
- package/dist/quota/quota-manager.d.ts.map +1 -1
- package/dist/quota/quota-manager.js +46 -15
- package/dist/quota/quota-manager.js.map +1 -1
- package/dist/session/browser-session.d.ts.map +1 -1
- package/dist/session/browser-session.js +21 -14
- package/dist/session/browser-session.js.map +1 -1
- package/dist/tools/definitions/notebook-management.d.ts.map +1 -1
- package/dist/tools/definitions/notebook-management.js +64 -0
- package/dist/tools/definitions/notebook-management.js.map +1 -1
- package/dist/tools/handlers/ask-question.d.ts +18 -0
- package/dist/tools/handlers/ask-question.d.ts.map +1 -0
- package/dist/tools/handlers/ask-question.js +236 -0
- package/dist/tools/handlers/ask-question.js.map +1 -0
- package/dist/tools/handlers/audio-video.d.ts +42 -0
- package/dist/tools/handlers/audio-video.d.ts.map +1 -0
- package/dist/tools/handlers/audio-video.js +356 -0
- package/dist/tools/handlers/audio-video.js.map +1 -0
- package/dist/tools/handlers/auth.d.ts +41 -0
- package/dist/tools/handlers/auth.d.ts.map +1 -0
- package/dist/tools/handlers/auth.js +171 -0
- package/dist/tools/handlers/auth.js.map +1 -0
- package/dist/tools/handlers/gemini.d.ts +142 -0
- package/dist/tools/handlers/gemini.d.ts.map +1 -0
- package/dist/tools/handlers/gemini.js +626 -0
- package/dist/tools/handlers/gemini.js.map +1 -0
- package/dist/tools/handlers/index.d.ts +295 -0
- package/dist/tools/handlers/index.d.ts.map +1 -0
- package/dist/tools/handlers/index.js +197 -0
- package/dist/tools/handlers/index.js.map +1 -0
- package/dist/tools/handlers/notebook-creation.d.ts +75 -0
- package/dist/tools/handlers/notebook-creation.d.ts.map +1 -0
- package/dist/tools/handlers/notebook-creation.js +598 -0
- package/dist/tools/handlers/notebook-creation.js.map +1 -0
- package/dist/tools/handlers/notebook-management.d.ts +64 -0
- package/dist/tools/handlers/notebook-management.d.ts.map +1 -0
- package/dist/tools/handlers/notebook-management.js +214 -0
- package/dist/tools/handlers/notebook-management.js.map +1 -0
- package/dist/tools/handlers/session-management.d.ts +68 -0
- package/dist/tools/handlers/session-management.d.ts.map +1 -0
- package/dist/tools/handlers/session-management.js +238 -0
- package/dist/tools/handlers/session-management.js.map +1 -0
- package/dist/tools/handlers/system.d.ts +102 -0
- package/dist/tools/handlers/system.d.ts.map +1 -0
- package/dist/tools/handlers/system.js +275 -0
- package/dist/tools/handlers/system.js.map +1 -0
- package/dist/tools/handlers/types.d.ts +19 -0
- package/dist/tools/handlers/types.d.ts.map +1 -0
- package/dist/tools/handlers/types.js +5 -0
- package/dist/tools/handlers/types.js.map +1 -0
- package/dist/tools/handlers/webhooks.d.ts +34 -0
- package/dist/tools/handlers/webhooks.d.ts.map +1 -0
- package/dist/tools/handlers/webhooks.js +122 -0
- package/dist/tools/handlers/webhooks.js.map +1 -0
- package/dist/tools/handlers.d.ts +27 -0
- package/dist/tools/handlers.d.ts.map +1 -1
- package/dist/tools/handlers.js +226 -5
- package/dist/tools/handlers.js.map +1 -1
- package/dist/tools/index.d.ts +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/utils/cleanup-manager.d.ts.map +1 -1
- package/dist/utils/cleanup-manager.js +8 -10
- package/dist/utils/cleanup-manager.js.map +1 -1
- package/dist/utils/file-permissions.d.ts.map +1 -1
- package/dist/utils/file-permissions.js +41 -6
- package/dist/utils/file-permissions.js.map +1 -1
- package/docs/improvement-sprint-2026.2.10.md +210 -0
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -4,20 +4,20 @@
|
|
|
4
4
|
|
|
5
5
|
### 🏆 The World's Most Advanced NotebookLM MCP Server
|
|
6
6
|
|
|
7
|
-
**Zero-hallucination answers • Gemini Deep Research •
|
|
7
|
+
**Zero-hallucination answers • Gemini Deep Research • 17 Security Layers • Enterprise Compliance**
|
|
8
8
|
|
|
9
9
|
[](https://www.npmjs.com/package/@pan-sec/notebooklm-mcp)
|
|
10
10
|
[](https://calver.org/)
|
|
11
11
|
[](https://www.typescriptlang.org/)
|
|
12
12
|
[](https://modelcontextprotocol.io/)
|
|
13
13
|
[](#cross-platform-support)
|
|
14
|
-
[](./SECURITY.md)
|
|
15
15
|
[](./SECURITY.md#post-quantum-encryption)
|
|
16
16
|
[](#-gemini-deep-research-v180)
|
|
17
17
|
[](#-document-api-v190)
|
|
18
18
|
[](#programmatic-notebook-creation-v170)
|
|
19
19
|
[](./docs/COMPLIANCE-SPEC.md)
|
|
20
|
-
[](./tests/)
|
|
21
21
|
|
|
22
22
|
[**What's New 2026**](#-whats-new-in-2026) • [**Deep Research**](#-gemini-deep-research) • [**Document API**](#-document-api) • [**Create Notebooks**](#programmatic-notebook-creation) • [**Security**](#security-features) • [**Install**](#installation)
|
|
23
23
|
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
- 📊 **Extract data tables** — structured JSON from notebook sources **NEW**
|
|
37
37
|
- 🔬 **Gemini 3 + Deep Research** — latest models with thinking control (optional API) **NEW**
|
|
38
38
|
- 📄 **Document API** — upload & query PDFs without browser (optional API)
|
|
39
|
-
- 🔐 **
|
|
39
|
+
- 🔐 **17 security layers** — post-quantum encryption, audit logs, secrets scanning
|
|
40
40
|
- ✅ **Enterprise compliance** — GDPR, SOC2, CSSF ready
|
|
41
41
|
- 💡 **No API key required** — core features work with just browser auth
|
|
42
42
|
|
|
@@ -44,10 +44,17 @@
|
|
|
44
44
|
|
|
45
45
|
## 🚀 What's New in 2026
|
|
46
46
|
|
|
47
|
-
**Latest: v2026.2.
|
|
47
|
+
**Latest: v2026.2.9** — Auth stability series complete: credentials now survive restarts, cleanups, and headless calls
|
|
48
48
|
|
|
49
49
|
| Version | Highlights |
|
|
50
50
|
|---------|------------|
|
|
51
|
+
| **v2026.2.9** | `performSetup` no longer wipes credentials before Chrome opens — prevents auth destruction on failed launch |
|
|
52
|
+
| **v2026.2.8** | `cleanup_data` never deletes auth dirs (`browser_state/`, `chrome_profile/`) — auth survives all cleanup paths |
|
|
53
|
+
| **v2026.2.7** | Block headless `setup_auth` calls; robust `auth-now.mjs` standalone script with Chrome profile lock handling |
|
|
54
|
+
| **v2026.2.6** | New `add_folder` tool for bulk PDF/file uploads; improved tier detection for NotebookLM Plus |
|
|
55
|
+
| **v2026.2.5** | Fix `show_browser` silently ignored in `setup_auth` — browser now reliably opens for auth |
|
|
56
|
+
| **v2026.2.4** | Auth stability: 7-day state expiry, `touchStateFile` on validation, block headless `re_auth` |
|
|
57
|
+
| **v2026.2.3** | Studio Panel tools restored: Video Overview, Data Table generation re-enabled |
|
|
51
58
|
| **v2026.2.1** | Standard profile expanded: 14 → 33 tools — notebook creation, audio, source management now visible by default |
|
|
52
59
|
| **v2026.2.0** | Gemini 3 models (2.5 retiring March 31), Video Overviews, Data Tables, thinking level, structured JSON, SDK 1.41 |
|
|
53
60
|
| **v2026.1.12** | Security hardening: constant-time auth, command injection fix, memory leak fixes, MCP SDK 1.26.0 |
|
|
@@ -80,7 +87,7 @@ claude mcp add notebooklm -- npx @pan-sec/notebooklm-mcp@latest
|
|
|
80
87
|
| Deep health verification | ❌ | ✅ |
|
|
81
88
|
|
|
82
89
|
<details>
|
|
83
|
-
<summary><b>📋 Full Feature List (
|
|
90
|
+
<summary><b>📋 Full Feature List (48 Tools)</b></summary>
|
|
84
91
|
|
|
85
92
|
#### Core NotebookLM (No API Key Required)
|
|
86
93
|
| Tool | Description |
|
|
@@ -96,6 +103,7 @@ claude mcp add notebooklm -- npx @pan-sec/notebooklm-mcp@latest
|
|
|
96
103
|
| `sync_library` | Sync library with NotebookLM |
|
|
97
104
|
| `list_sources` | List sources in a notebook |
|
|
98
105
|
| `add_source` | Add source to notebook |
|
|
106
|
+
| `add_folder` | Bulk upload PDFs/files from a local folder to a notebook |
|
|
99
107
|
| `remove_source` | Remove source from notebook |
|
|
100
108
|
| `generate_audio_overview` | Create podcast-style audio |
|
|
101
109
|
| `get_audio_status` | Check audio generation status |
|
|
@@ -226,7 +234,7 @@ Run deep research in the background and check progress:
|
|
|
226
234
|
│ └────────────────────────────────┘ └──────────────────────────────────┘ │
|
|
227
235
|
│ │
|
|
228
236
|
│ ┌─────────────────────────────────┐ │
|
|
229
|
-
│ │
|
|
237
|
+
│ │ 17 SECURITY LAYERS │ │
|
|
230
238
|
│ │ Post-Quantum • Audit Logs │ │
|
|
231
239
|
│ │ Cert Pinning • Memory Wipe │ │
|
|
232
240
|
│ │ GDPR • SOC2 • CSSF Ready │ │
|
|
@@ -627,7 +635,7 @@ The original NotebookLM MCP is excellent for productivity — but MCP servers ha
|
|
|
627
635
|
- **Cookies and tokens** stored on disk
|
|
628
636
|
- **Query history** that may contain proprietary information
|
|
629
637
|
|
|
630
|
-
This fork adds **
|
|
638
|
+
This fork adds **17 security hardening layers** to protect that data.
|
|
631
639
|
|
|
632
640
|
---
|
|
633
641
|
|
|
@@ -648,6 +656,9 @@ This fork adds **14 security hardening layers** to protect that data.
|
|
|
648
656
|
| 🙈 | **Log Sanitization** | Credentials masked in all output |
|
|
649
657
|
| 🐍 | **MEDUSA Integration** | Automated security scanning |
|
|
650
658
|
| 🖥️ | **Cross-Platform** | Native support for Linux, macOS, Windows |
|
|
659
|
+
| 🔒 | **Secure-by-Default Auth** | Auth ON without configuration, explicit opt-out required |
|
|
660
|
+
| 📈 | **Exponential Backoff** | Lockout escalation: 5min → 15min → 45min → 4hr cap |
|
|
661
|
+
| 🗝️ | **Credential Isolation** | SecureCredential TTL + env var scrubbing from process.env |
|
|
651
662
|
|
|
652
663
|
### Post-Quantum Ready
|
|
653
664
|
|
|
@@ -1118,6 +1129,13 @@ Or integrate in CI/CD:
|
|
|
1118
1129
|
|
|
1119
1130
|
| Version | Highlights |
|
|
1120
1131
|
|---------|------------|
|
|
1132
|
+
| **v2026.2.9** | 🔐 `performSetup` no longer destroys credentials before Chrome opens — last root cause of auth loop fixed |
|
|
1133
|
+
| **v2026.2.8** | 🛡️ `cleanup_data` excludes `browser_state/` and `chrome_profile/` from all deletion paths — auth survives cleanup |
|
|
1134
|
+
| **v2026.2.7** | 🚫 Block headless `setup_auth`; `auth-now.mjs` standalone script handles Chrome profile locks and silent save failures |
|
|
1135
|
+
| **v2026.2.6** | 📁 New `add_folder` tool — bulk upload PDFs/files to a notebook with progress, dry_run, and auto-split support |
|
|
1136
|
+
| **v2026.2.5** | 🔧 Fix: `show_browser` now correctly passed to `performSetup` — browser reliably opens for auth |
|
|
1137
|
+
| **v2026.2.4** | 🔑 Auth stability: 7-day state expiry (was 24h), `touchStateFile` resets clock on each validation, headless `re_auth` blocked |
|
|
1138
|
+
| **v2026.2.3** | 🎬 Studio Panel tools restored — Video Overview generation and Data Table tools re-enabled after UI update |
|
|
1121
1139
|
| **v2026.2.1** | 🔧 Standard profile expanded: 14 → 33 tools — all key features now visible by default |
|
|
1122
1140
|
| **v2026.2.0** | 🚀 Gemini 3 models (2.5 retiring March 31), Video Overviews (10 styles), Data Table extraction (JSON), thinking level control, structured JSON output, SDK 1.41 |
|
|
1123
1141
|
| **v2026.1.12** | 🔒 Security hardening — timing attack fix, command injection fix, 6 memory leak fixes, MCP SDK 1.26.0 |
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* - Auto-login with credentials (email/password from ENV)
|
|
7
7
|
* - Browser state persistence (cookies + localStorage + sessionStorage)
|
|
8
8
|
* - Cookie expiry validation
|
|
9
|
-
* - State expiry checks (
|
|
9
|
+
* - State expiry checks (7-day file age)
|
|
10
10
|
* - Hard reset for clean start
|
|
11
11
|
*
|
|
12
12
|
* Based on the Python implementation from auth.py
|
|
@@ -49,7 +49,42 @@ export declare class AuthManager {
|
|
|
49
49
|
*/
|
|
50
50
|
validateCookiesExpiry(context: BrowserContext): Promise<boolean>;
|
|
51
51
|
/**
|
|
52
|
-
*
|
|
52
|
+
* Race-condition-aware auth validation with automatic retry.
|
|
53
|
+
*
|
|
54
|
+
* In concurrent deployments each session runs its own isolated Chrome profile
|
|
55
|
+
* cloned from the shared base. When Google refreshes OAuth tokens for session A,
|
|
56
|
+
* the cookies held by sessions B/C become invalid even though the credentials
|
|
57
|
+
* themselves are fine. This method distinguishes that scenario from genuine
|
|
58
|
+
* cookie expiry and self-heals by reloading fresh cookies from state.json.pqenc.
|
|
59
|
+
*
|
|
60
|
+
* Decision logic per attempt:
|
|
61
|
+
* 1. Cookies valid → return true immediately (fast path).
|
|
62
|
+
* 2. .auth-in-progress lock is held OR state.json.pqenc was written within
|
|
63
|
+
* the last 2 minutes → race condition. Wait random jitter, reload cookies,
|
|
64
|
+
* re-validate, and repeat up to maxRetries times.
|
|
65
|
+
* 3. Neither signal present → genuine expiry. Break early, return false so
|
|
66
|
+
* the caller can prompt for setup_auth.
|
|
67
|
+
*/
|
|
68
|
+
validateWithRetry(context: BrowserContext, maxRetries?: number): Promise<boolean>;
|
|
69
|
+
/**
|
|
70
|
+
* Get the mtime of the auth state file (tries .pqenc, .enc, plain in order).
|
|
71
|
+
* Returns null if no state file found.
|
|
72
|
+
*/
|
|
73
|
+
private getStateFileMtimeMs;
|
|
74
|
+
/**
|
|
75
|
+
* Touch the state file to reset the 7-day expiry clock.
|
|
76
|
+
* Called after successful auth validation so sessions that use the
|
|
77
|
+
* existing credentials don't cause the file to silently expire.
|
|
78
|
+
*/
|
|
79
|
+
private touchStateFile;
|
|
80
|
+
/**
|
|
81
|
+
* Reload fresh cookies from state.json.pqenc into the browser context.
|
|
82
|
+
* Uses addCookies() which overwrites existing cookies with the same key,
|
|
83
|
+
* replacing stale tokens with the latest ones saved by another session.
|
|
84
|
+
*/
|
|
85
|
+
private reloadCookiesFromState;
|
|
86
|
+
/**
|
|
87
|
+
* Check if the saved state file is too old (>7 days)
|
|
53
88
|
* Checks encrypted versions (.pqenc, .enc) as well as unencrypted
|
|
54
89
|
*/
|
|
55
90
|
isStateExpired(): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-manager.d.ts","sourceRoot":"","sources":["../../src/auth/auth-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAYvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAoBpD,qBAAa,WAAW;IACtB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAS;;IAa7B;;;;OAIG;IACG,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAsD9E;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAKvC;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAQ7B;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAejD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAuBlE;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAoC9D;;OAEG;IACG,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAiDtE;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IA+BxC;;;;;OAKG;IACG,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAmFjF;;OAEG;IACG,oBAAoB,CACxB,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC;IA2InB;;;;;OAKG;YACW,yBAAyB;IA4BvC;;;;;OAKG;YACW,eAAe;IAsB7B;;OAEG;YACW,oBAAoB;IA+BlC;;OAEG;YACW,cAAc;IA2H5B;;OAEG;YACW,YAAY;IA+F1B;;OAEG;YACW,SAAS;IAuBvB;;;OAGG;IACG,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiCjF;;;;;;;;;;;;;;;;OAgBG;IACG,YAAY,CAAC,YAAY,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-manager.d.ts","sourceRoot":"","sources":["../../src/auth/auth-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAYvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAoBpD,qBAAa,WAAW;IACtB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAS;;IAa7B;;;;OAIG;IACG,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAsD9E;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAKvC;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAQ7B;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAejD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAuBlE;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAoC9D;;OAEG;IACG,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAiDtE;;;;;;;;;;;;;;;;OAgBG;IACG,iBAAiB,CACrB,OAAO,EAAE,cAAc,EACvB,UAAU,SAAI,GACb,OAAO,CAAC,OAAO,CAAC;IAmDnB;;;OAGG;YACW,mBAAmB;IAYjC;;;;OAIG;YACW,cAAc;IAa5B;;;;OAIG;YACW,sBAAsB;IAoBpC;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IA+BxC;;;;;OAKG;IACG,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAmFjF;;OAEG;IACG,oBAAoB,CACxB,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC;IA2InB;;;;;OAKG;YACW,yBAAyB;IA4BvC;;;;;OAKG;YACW,eAAe;IAsB7B;;OAEG;YACW,oBAAoB;IA+BlC;;OAEG;YACW,cAAc;IA2H5B;;OAEG;YACW,YAAY;IA+F1B;;OAEG;YACW,SAAS;IAuBvB;;;OAGG;IACG,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiCjF;;;;;;;;;;;;;;;;OAgBG;IACG,YAAY,CAAC,YAAY,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAmFjG;;;;;;;;;;OAUG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmDvC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAkBpC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAgDzC"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* - Auto-login with credentials (email/password from ENV)
|
|
7
7
|
* - Browser state persistence (cookies + localStorage + sessionStorage)
|
|
8
8
|
* - Cookie expiry validation
|
|
9
|
-
* - State expiry checks (
|
|
9
|
+
* - State expiry checks (7-day file age)
|
|
10
10
|
* - Hard reset for clean start
|
|
11
11
|
*
|
|
12
12
|
* Based on the Python implementation from auth.py
|
|
@@ -19,7 +19,7 @@ import { log } from "../utils/logger.js";
|
|
|
19
19
|
import { humanType, randomDelay, realisticClick, randomMouseMovement, } from "../utils/stealth-utils.js";
|
|
20
20
|
import { maskEmail } from "../utils/security.js";
|
|
21
21
|
import { getSecureStorage } from "../utils/crypto.js";
|
|
22
|
-
import { withLock } from "../utils/file-lock.js";
|
|
22
|
+
import { withLock, isLocked } from "../utils/file-lock.js";
|
|
23
23
|
/**
|
|
24
24
|
* Critical cookie names for Google authentication
|
|
25
25
|
*/
|
|
@@ -128,7 +128,7 @@ export class AuthManager {
|
|
|
128
128
|
return null;
|
|
129
129
|
}
|
|
130
130
|
if (await this.isStateExpired()) {
|
|
131
|
-
log.warning("⚠️ Saved state is expired (>
|
|
131
|
+
log.warning("⚠️ Saved state is expired (>7 days old)");
|
|
132
132
|
log.info("💡 Run setup_auth tool to re-authenticate");
|
|
133
133
|
return null;
|
|
134
134
|
}
|
|
@@ -235,7 +235,125 @@ export class AuthManager {
|
|
|
235
235
|
}
|
|
236
236
|
}
|
|
237
237
|
/**
|
|
238
|
-
*
|
|
238
|
+
* Race-condition-aware auth validation with automatic retry.
|
|
239
|
+
*
|
|
240
|
+
* In concurrent deployments each session runs its own isolated Chrome profile
|
|
241
|
+
* cloned from the shared base. When Google refreshes OAuth tokens for session A,
|
|
242
|
+
* the cookies held by sessions B/C become invalid even though the credentials
|
|
243
|
+
* themselves are fine. This method distinguishes that scenario from genuine
|
|
244
|
+
* cookie expiry and self-heals by reloading fresh cookies from state.json.pqenc.
|
|
245
|
+
*
|
|
246
|
+
* Decision logic per attempt:
|
|
247
|
+
* 1. Cookies valid → return true immediately (fast path).
|
|
248
|
+
* 2. .auth-in-progress lock is held OR state.json.pqenc was written within
|
|
249
|
+
* the last 2 minutes → race condition. Wait random jitter, reload cookies,
|
|
250
|
+
* re-validate, and repeat up to maxRetries times.
|
|
251
|
+
* 3. Neither signal present → genuine expiry. Break early, return false so
|
|
252
|
+
* the caller can prompt for setup_auth.
|
|
253
|
+
*/
|
|
254
|
+
async validateWithRetry(context, maxRetries = 3) {
|
|
255
|
+
// Fast path — cookies already valid; touch file to reset 7-day expiry clock
|
|
256
|
+
if (await this.validateCookiesExpiry(context)) {
|
|
257
|
+
await this.touchStateFile();
|
|
258
|
+
return true;
|
|
259
|
+
}
|
|
260
|
+
const RECENT_STATE_MS = 120_000; // 2 min — state updated this recently = race condition
|
|
261
|
+
const AUTH_STALE_MS = 720_000; // 12 min stale threshold (matches shared-context-manager)
|
|
262
|
+
const BASE_JITTER_MS = 3_000;
|
|
263
|
+
const MAX_JITTER_MS = 15_000;
|
|
264
|
+
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
265
|
+
// Diagnose: is this a race condition or genuine expiry?
|
|
266
|
+
const lockHeld = isLocked(this.authLockPath, AUTH_STALE_MS);
|
|
267
|
+
const stateMtime = await this.getStateFileMtimeMs();
|
|
268
|
+
const stateRecent = stateMtime !== null && (Date.now() - stateMtime) < RECENT_STATE_MS;
|
|
269
|
+
if (!lockHeld && !stateRecent) {
|
|
270
|
+
log.warning(`⚠️ Auth failed — no concurrent session signal detected. Cookies likely genuinely expired.`);
|
|
271
|
+
break;
|
|
272
|
+
}
|
|
273
|
+
const reason = lockHeld && stateRecent
|
|
274
|
+
? "auth lock held + state recently refreshed"
|
|
275
|
+
: lockHeld ? "auth lock held by another session"
|
|
276
|
+
: "state.json.pqenc refreshed by another session";
|
|
277
|
+
const jitter = BASE_JITTER_MS + Math.random() * (MAX_JITTER_MS - BASE_JITTER_MS);
|
|
278
|
+
log.warning(`⚠️ Auth race condition detected (${reason}). Waiting ${(jitter / 1000).toFixed(1)}s then reloading cookies… (attempt ${attempt}/${maxRetries})`);
|
|
279
|
+
await new Promise(resolve => setTimeout(resolve, jitter));
|
|
280
|
+
const reloaded = await this.reloadCookiesFromState(context);
|
|
281
|
+
if (!reloaded) {
|
|
282
|
+
log.warning(" ⚠️ Could not reload cookies from state file — will retry");
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
285
|
+
if (await this.validateCookiesExpiry(context)) {
|
|
286
|
+
log.success(` ✅ Auth recovered after race condition (attempt ${attempt})`);
|
|
287
|
+
// Touch state file so the 7-day expiry clock resets
|
|
288
|
+
await this.touchStateFile();
|
|
289
|
+
return true;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
log.warning("⚠️ Auth validation failed after retries.");
|
|
293
|
+
log.info("💡 Run setup_auth tool to re-authenticate");
|
|
294
|
+
return false;
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Get the mtime of the auth state file (tries .pqenc, .enc, plain in order).
|
|
298
|
+
* Returns null if no state file found.
|
|
299
|
+
*/
|
|
300
|
+
async getStateFileMtimeMs() {
|
|
301
|
+
for (const ext of [".pqenc", ".enc", ""]) {
|
|
302
|
+
try {
|
|
303
|
+
const stats = await fs.stat(this.stateFilePath + ext);
|
|
304
|
+
return stats.mtimeMs;
|
|
305
|
+
}
|
|
306
|
+
catch {
|
|
307
|
+
continue;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
return null;
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Touch the state file to reset the 7-day expiry clock.
|
|
314
|
+
* Called after successful auth validation so sessions that use the
|
|
315
|
+
* existing credentials don't cause the file to silently expire.
|
|
316
|
+
*/
|
|
317
|
+
async touchStateFile() {
|
|
318
|
+
for (const ext of [".pqenc", ".enc", ""]) {
|
|
319
|
+
const filePath = this.stateFilePath + ext;
|
|
320
|
+
try {
|
|
321
|
+
const now = new Date();
|
|
322
|
+
await fs.utimes(filePath, now, now);
|
|
323
|
+
return;
|
|
324
|
+
}
|
|
325
|
+
catch {
|
|
326
|
+
continue;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Reload fresh cookies from state.json.pqenc into the browser context.
|
|
332
|
+
* Uses addCookies() which overwrites existing cookies with the same key,
|
|
333
|
+
* replacing stale tokens with the latest ones saved by another session.
|
|
334
|
+
*/
|
|
335
|
+
async reloadCookiesFromState(context) {
|
|
336
|
+
try {
|
|
337
|
+
const secureStorage = getSecureStorage();
|
|
338
|
+
const stateData = await secureStorage.load(this.stateFilePath);
|
|
339
|
+
if (!stateData)
|
|
340
|
+
return false;
|
|
341
|
+
const state = JSON.parse(stateData);
|
|
342
|
+
const cookies = state.cookies;
|
|
343
|
+
if (!cookies?.length)
|
|
344
|
+
return false;
|
|
345
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
346
|
+
await context.addCookies(cookies);
|
|
347
|
+
log.info(` 🔄 Reloaded ${cookies.length} cookies from state file into context`);
|
|
348
|
+
return true;
|
|
349
|
+
}
|
|
350
|
+
catch (error) {
|
|
351
|
+
log.warning(` ⚠️ Failed to reload cookies: ${error}`);
|
|
352
|
+
return false;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Check if the saved state file is too old (>7 days)
|
|
239
357
|
* Checks encrypted versions (.pqenc, .enc) as well as unencrypted
|
|
240
358
|
*/
|
|
241
359
|
async isStateExpired() {
|
|
@@ -246,10 +364,10 @@ export class AuthManager {
|
|
|
246
364
|
try {
|
|
247
365
|
const stats = await fs.stat(filePath);
|
|
248
366
|
const fileAgeSeconds = (Date.now() - stats.mtimeMs) / 1000;
|
|
249
|
-
const maxAgeSeconds = 24 * 60 * 60; //
|
|
367
|
+
const maxAgeSeconds = 7 * 24 * 60 * 60; // 7 days (Google cookies last 2-4 weeks)
|
|
250
368
|
if (fileAgeSeconds > maxAgeSeconds) {
|
|
251
369
|
const hoursOld = fileAgeSeconds / 3600;
|
|
252
|
-
log.warning(`⚠️ Saved state is ${hoursOld.toFixed(1)}h old (max:
|
|
370
|
+
log.warning(`⚠️ Saved state is ${hoursOld.toFixed(1)}h old (max: 7 days)`);
|
|
253
371
|
return true;
|
|
254
372
|
}
|
|
255
373
|
return false; // Found a valid, non-expired file
|
|
@@ -841,10 +959,10 @@ export class AuthManager {
|
|
|
841
959
|
// overrideHeadless contains show_browser value (true = show, false = hide)
|
|
842
960
|
const shouldShowBrowser = overrideHeadless !== undefined ? overrideHeadless : true;
|
|
843
961
|
try {
|
|
844
|
-
//
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
962
|
+
// Do NOT call clearAllAuthData() here. Deleting the Chrome profile and
|
|
963
|
+
// state file before the new login completes leaves auth in a broken state
|
|
964
|
+
// if Chrome fails to open or the user doesn't complete login in time.
|
|
965
|
+
// For account switching, call clearAllAuthData() explicitly before setup_auth.
|
|
848
966
|
log.info("🚀 Launching persistent browser for interactive setup...");
|
|
849
967
|
log.info(` 📍 Profile: ${CONFIG.chromeProfileDir}`);
|
|
850
968
|
await sendProgress?.("Launching persistent browser...", 2, 10);
|
|
@@ -903,7 +1021,11 @@ export class AuthManager {
|
|
|
903
1021
|
* Use this BEFORE authenticating a new account!
|
|
904
1022
|
*/
|
|
905
1023
|
async clearAllAuthData() {
|
|
906
|
-
|
|
1024
|
+
// Log a stack trace so we always know who called this
|
|
1025
|
+
const stack = new Error("clearAllAuthData caller").stack ?? "";
|
|
1026
|
+
const caller = stack.split("\n")[2]?.trim() ?? "unknown";
|
|
1027
|
+
log.warning("🗑️ Clearing ALL authentication data...");
|
|
1028
|
+
log.warning(` Called from: ${caller}`);
|
|
907
1029
|
let deletedCount = 0;
|
|
908
1030
|
const secureStorage = getSecureStorage();
|
|
909
1031
|
// 1. Delete all state files in browser_state_dir (including encrypted versions)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-manager.js","sourceRoot":"","sources":["../../src/auth/auth-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EACL,SAAS,EACT,WAAW,EACX,cAAc,EACd,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD;;GAEG;AACH,MAAM,qBAAqB,GAAG;IAC5B,KAAK;IACL,MAAM;IACN,MAAM,EAAE,iBAAiB;IACzB,QAAQ;IACR,SAAS,EAAE,WAAW;IACtB,MAAM;IACN,eAAe,EAAE,sBAAsB;IACvC,gBAAgB;IAChB,gBAAgB,EAAE,kBAAkB;CACrC,CAAC;AAEF,MAAM,OAAO,WAAW;IACd,aAAa,CAAS;IACtB,eAAe,CAAS;IACxB,YAAY,CAAS;IAE7B;QACE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QACrE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;QACzE,mFAAmF;QACnF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IACrE,CAAC;IAED,+EAA+E;IAC/E,2BAA2B;IAC3B,+EAA+E;IAE/E;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAAuB,EAAE,IAAW;QACzD,8DAA8D;QAC9D,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;YACnD,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;gBAEzC,wEAAwE;gBACxE,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;gBAElD,qDAAqD;gBACrD,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;gBAE3D,+CAA+C;gBAC/C,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,CAAC;wBACH,MAAM,kBAAkB,GAAW,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAW,EAAE;4BAClE,oDAAoD;4BACpD,MAAM,OAAO,GAA2B,EAAE,CAAC;4BAC3C,8DAA8D;4BAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC/C,8DAA8D;gCAC9D,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gCAClC,IAAI,GAAG,EAAE,CAAC;oCACR,8DAA8D;oCAC9D,OAAO,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gCACnD,CAAC;4BACH,CAAC;4BACD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;wBACjC,CAAC,CAAC,CAAC;wBAEH,sCAAsC;wBACtC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;wBAEnE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC;wBACnE,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;wBACzC,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,mBAAmB,CAAC;wBAC1F,GAAG,CAAC,OAAO,CAAC,8BAA8B,OAAO,sCAAsC,OAAO,WAAW,CAAC,CAAC;oBAC7G,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,GAAG,CAAC,OAAO,CAAC,+CAA+C,KAAK,EAAE,CAAC,CAAC;oBACtE,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;oBACzC,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,mBAAmB,CAAC;oBAC1F,GAAG,CAAC,OAAO,CAAC,8BAA8B,OAAO,aAAa,CAAC,CAAC;gBAClE,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,KAAK,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;gBACtD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;QACzC,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,YAAY;QACV,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;QACzC,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YAChC,GAAG,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;YACrD,GAAG,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACtB,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5D,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,GAAG,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;gBAC3C,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,mBAAmB,CAAC;YAC1F,GAAG,CAAC,OAAO,CAAC,gCAAgC,OAAO,gBAAgB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,WAAW,CAAC,CAAC;YAC/G,OAAO,WAAW,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,OAAO,CAAC,sCAAsC,KAAK,EAAE,CAAC,CAAC;YAC3D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,oBAAoB;IACpB,+EAA+E;IAE/E;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,OAAuB;QACzC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,GAAG,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;gBAC7C,OAAO,KAAK,CAAC;YACf,CAAC;YAED,gCAAgC;YAChC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACzC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAChC,CAAC;YACF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,GAAG,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;gBAC3C,OAAO,KAAK,CAAC;YACf,CAAC;YAED,yCAAyC;YACzC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YAEtC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;gBACrC,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;oBAC5C,GAAG,CAAC,OAAO,CAAC,eAAe,MAAM,CAAC,IAAI,eAAe,CAAC,CAAC;oBACvD,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YAED,GAAG,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,OAAO,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;YACrD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB,CAAC,OAAuB;QACjD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;gBACpC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,wBAAwB;YACxB,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3C,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CACvC,CAAC;YAEF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,GAAG,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;gBAClD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,4CAA4C;YAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACtC,MAAM,cAAc,GAAa,EAAE,CAAC;YAEpC,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;gBACrC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;gBAErC,uDAAuD;gBACvD,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;oBACnB,SAAS;gBACX,CAAC;gBAED,6BAA6B;gBAC7B,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;oBAC1B,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,GAAG,CAAC,OAAO,CAAC,wBAAwB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACjE,OAAO,KAAK,CAAC;YACf,CAAC;YAED,GAAG,CAAC,OAAO,CAAC,SAAS,eAAe,CAAC,MAAM,6BAA6B,CAAC,CAAC;YAC1E,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,OAAO,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;YACtD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc;QAClB,2DAA2D;QAC3D,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE1C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtC,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;gBAC3D,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,WAAW;gBAE/C,IAAI,cAAc,GAAG,aAAa,EAAE,CAAC;oBACnC,MAAM,QAAQ,GAAG,cAAc,GAAG,IAAI,CAAC;oBACvC,GAAG,CAAC,OAAO,CAAC,sBAAsB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;oBACzE,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,OAAO,KAAK,CAAC,CAAC,kCAAkC;YAClD,CAAC;YAAC,MAAM,CAAC;gBACP,mDAAmD;gBACnD,SAAS;YACX,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,CAAC,gCAAgC;IAC/C,CAAC;IAED,+EAA+E;IAC/E,oBAAoB;IACpB,+EAA+E;IAE/E;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,IAAU,EAAE,YAA+B;QAC5D,IAAI,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAC5C,GAAG,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;YACtD,GAAG,CAAC,OAAO,CAAC,8DAA8D,CAAC,CAAC;YAC5E,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEb,uBAAuB;YACvB,MAAM,YAAY,EAAE,CAAC,+BAA+B,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAE7D,gEAAgE;YAChE,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAEzD,8BAA8B;YAC9B,MAAM,YAAY,EAAE,CAAC,gDAAgD,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAE9E,kCAAkC;YAClC,GAAG,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;YAEzD,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,uBAAuB;YACrD,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,mBAAmB;YAC5C,IAAI,kBAAkB,GAAG,CAAC,CAAC;YAE3B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;gBACvD,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC;oBAEtE,iCAAiC;oBACjC,IAAI,cAAc,GAAG,kBAAkB,IAAI,EAAE,EAAE,CAAC;wBAC9C,kBAAkB,GAAG,cAAc,CAAC;wBACpC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC;wBACtE,MAAM,YAAY,EAAE,CAClB,yBAAyB,cAAc,YAAY,EACnD,YAAY,EACZ,EAAE,CACH,CAAC;oBACJ,CAAC;oBAED,qDAAqD;oBACrD,IAAI,UAAU,CAAC,UAAU,CAAC,gCAAgC,CAAC,EAAE,CAAC;wBAC5D,MAAM,YAAY,EAAE,CAAC,wCAAwC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;wBACtE,GAAG,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;wBAC5D,GAAG,CAAC,OAAO,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAC;wBAE5C,sCAAsC;wBACtC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;wBAChC,OAAO,IAAI,CAAC;oBACd,CAAC;oBAED,kDAAkD;oBAClD,IAAI,UAAU,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,OAAO,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;wBACpF,GAAG,CAAC,OAAO,CAAC,uBAAuB,cAAc,YAAY,CAAC,CAAC;oBACjE,CAAC;oBAED,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;gBAC7C,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;oBAC3C,SAAS;gBACX,CAAC;YACH,CAAC;YAED,gCAAgC;YAChC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9B,IAAI,UAAU,CAAC,UAAU,CAAC,gCAAgC,CAAC,EAAE,CAAC;gBAC5D,MAAM,YAAY,EAAE,CAAC,+CAA+C,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7E,GAAG,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC;gBAC9D,OAAO,IAAI,CAAC;YACd,CAAC;YAED,GAAG,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;YAC3D,GAAG,CAAC,OAAO,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,mBAAmB,KAAK,EAAE,CAAC,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,8BAA8B;IAC9B,+EAA+E;IAE/E;;OAEG;IACH,KAAK,CAAC,oBAAoB,CACxB,OAAuB,EACvB,IAAU,EACV,KAAa,EACb,QAAgB;QAEhB,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QACrC,GAAG,CAAC,OAAO,CAAC,qCAAqC,WAAW,KAAK,CAAC,CAAC;QAEnE,yBAAyB;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,GAAG,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACnD,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAE/C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBACnC,SAAS,EAAE,kBAAkB;gBAC7B,OAAO,EAAE,MAAM,CAAC,cAAc;aAC/B,CAAC,CAAC;YACH,GAAG,CAAC,OAAO,CAAC,oBAAoB,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,kBAAkB,CAAC;QACxD,GAAG,CAAC,IAAI,CAAC,2BAA2B,MAAM,CAAC,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC;QAEzE,yBAAyB;QACzB,GAAG,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QACtD,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAChE,GAAG,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;YACvC,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,GAAG,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC;QAEnE,kCAAkC;QAClC,GAAG,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACjD,IAAI,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;YACjD,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAChE,GAAG,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;gBAC5C,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC3C,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,aAAa;QACb,GAAG,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC3C,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YAC9C,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAChE,GAAG,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;gBAC5C,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC3C,OAAO,IAAI,CAAC;YACd,CAAC;YACD,GAAG,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QAC9C,CAAC;QAED,qCAAqC;QACrC,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,GAAG,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;QAExD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC3E,YAAY,EAAE,CAAC;YAEf,4CAA4C;YAC5C,IAAI,YAAY,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,aAAa,GAAG,YAAY,GAAG,GAAG,CAAC;gBACzC,MAAM,gBAAgB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;gBACxD,GAAG,CAAC,OAAO,CACT,4CAA4C,aAAa,cAAc,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CACjH,CAAC;gBACF,GAAG,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrC,GAAG,CAAC,OAAO,CAAC,+DAA+D,CAAC,CAAC;gBAC7E,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;QAED,uCAAuC;QACvC,GAAG,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QAE9D,IAAI,MAAM,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;YACzD,GAAG,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;YAC5C,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,0BAA0B;QAC1B,GAAG,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAEzC,gCAAgC;QAChC,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAC9B,MAAM,CAAC,OAAO,EACd,gBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,CACjC,CAAC;YACF,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;YAChD,GAAG,CAAC,IAAI,CAAC,0BAA0B,cAAc,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,OAAO,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,mCAAmC;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,GAAG,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAE1C,IAAI,UAAU,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC/C,IAAI,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;gBAC9C,GAAG,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;gBACrE,GAAG,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACrD,CAAC;iBAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7C,GAAG,CAAC,KAAK,CACP,8EAA8E,CAC/E,CAAC;gBACF,GAAG,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;YACtE,CAAC;iBAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3E,GAAG,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;gBAC3E,GAAG,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,KAAK,CAAC,sCAAsC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;aAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,OAAO,CAAC,+DAA+D,CAAC,CAAC;YAC7E,GAAG,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,KAAK,CAAC,wBAAwB,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+EAA+E;IAC/E,iBAAiB;IACjB,+EAA+E;IAE/E;;;;;OAKG;IACK,KAAK,CAAC,yBAAyB,CACrC,IAAU,EACV,QAAgB;QAEhB,GAAG,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAExD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAE9B,sCAAsC;gBACtC,IAAI,UAAU,CAAC,UAAU,CAAC,gCAAgC,CAAC,EAAE,CAAC;oBAC5D,GAAG,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;oBAC9C,sCAAsC;oBACtC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;oBAChC,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,gBAAgB;YAClB,CAAC;YAED,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,eAAe,CAAC,IAAU,EAAE,SAAiB;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAEvC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAE9B,sCAAsC;gBACtC,IAAI,UAAU,CAAC,UAAU,CAAC,gCAAgC,CAAC,EAAE,CAAC;oBAC5D,GAAG,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;oBAC3C,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,gBAAgB;YAClB,CAAC;YAED,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB,CAAC,IAAU,EAAE,KAAa;QAC1D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,2CAA2C,CAAC,CAAC;YAE3E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;oBAC3B,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;oBACrF,IAAI,UAAU,KAAK,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;wBACvC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;wBACnB,MAAM,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;wBAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;wBAC/B,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBAED,8BAA8B;gBAC9B,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;oBACzB,qBAAqB;oBACrB,2BAA2B;oBAC3B,yBAAyB;iBAC1B,CAAC,CAAC;gBACH,MAAM,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5B,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAAC,IAAU,EAAE,KAAa;QACpD,GAAG,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAE9C,MAAM,cAAc,GAAG;YACrB,oBAAoB;YACpB,0BAA0B;YAC1B,qBAAqB;SACtB,CAAC;QAEF,IAAI,aAAa,GAAkB,IAAI,CAAC;QACxC,IAAI,UAAU,GAAQ,IAAI,CAAC;QAE3B,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;oBACrD,KAAK,EAAE,UAAU;oBACjB,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS;oBAAE,SAAS;gBAEzB,IAAI,CAAC;oBACH,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;wBACnC,SAAS,CAAC,eAAe;oBAC3B,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;gBAED,UAAU,GAAG,SAAS,CAAC;gBACvB,aAAa,GAAG,QAAQ,CAAC;gBACzB,GAAG,CAAC,OAAO,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;gBACtD,MAAM;YACR,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QAED,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa,EAAE,CAAC;YAClC,GAAG,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC;YACxE,GAAG,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC;YAC3C,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;gBACtC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;gBACvC,MAAM,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBAClD,MAAM,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;QAED,iBAAiB;QACjB,IAAI,CAAC;YACH,MAAM,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,OAAO,CAAC,wCAAwC,KAAK,wBAAwB,CAAC,CAAC;YACnF,IAAI,CAAC;gBACH,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,GAAG,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBAC/C,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,GAAG,CAAC,IAAI,CAAC,yBAAyB,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9G,MAAM,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YACvE,GAAG,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;gBACtC,GAAG,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;YACnD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE7B,oBAAoB;QACpB,GAAG,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAE9C,MAAM,aAAa,GAAG;YACpB,yBAAyB;YACzB,2BAA2B;YAC3B,iBAAiB;SAClB,CAAC;QAEF,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC5C,IAAI,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC/B,MAAM,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC3C,GAAG,CAAC,OAAO,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;oBACtD,WAAW,GAAG,IAAI,CAAC;oBACnB,MAAM;gBACR,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,GAAG,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;YACxD,MAAM,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAED,iBAAiB;QACjB,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,GAAG,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CAAC,IAAU,EAAE,QAAgB;QACrD,GAAG,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QAEjD,MAAM,iBAAiB,GAAG,CAAC,sBAAsB,EAAE,wBAAwB,CAAC,CAAC;QAE7E,IAAI,gBAAgB,GAAkB,IAAI,CAAC;QAC3C,IAAI,aAAa,GAAQ,IAAI,CAAC;QAE9B,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,aAAa,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,aAAa,EAAE,CAAC;oBAClB,gBAAgB,GAAG,QAAQ,CAAC;oBAC5B,GAAG,CAAC,OAAO,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC;oBACvD,MAAM;gBACR,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,2DAA2D;YAC3D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;YAC9C,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;gBACtC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;gBACvC,MAAM,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBAClD,MAAM,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;QAED,iBAAiB;QACjB,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,cAAc,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC;QAED,6DAA6D;QAC7D,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9G,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,SAAS,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/E,CAAC;YACD,GAAG,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,kDAAkD;QAClD,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE7B,oBAAoB;QACpB,GAAG,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAE9C,MAAM,gBAAgB,GAAG;YACvB,yBAAyB;YACzB,2BAA2B;YAC3B,eAAe;SAChB,CAAC;QAEF,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC5C,IAAI,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC/B,MAAM,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC3C,GAAG,CAAC,OAAO,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;oBACtD,cAAc,GAAG,IAAI,CAAC;oBACtB,MAAM;gBACR,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,GAAG,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;YACxD,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QAED,iBAAiB;QACjB,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,GAAG,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,SAAS,CAAC,IAAU,EAAE,KAAe;QACjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,SAAS,IAAI,GAAG,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,CAAC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,MAAM,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC3C,MAAM,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBAC5B,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,yEAAyE;IAEzE,+EAA+E;IAC/E,4BAA4B;IAC5B,+EAA+E;IAE/E;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,OAAuB,EAAE,SAAiB;QAC5D,gEAAgE;QAChE,OAAO,MAAM,QAAQ,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YAC1C,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;gBAEzC,yBAAyB;gBACzB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,GAAG,CAAC,OAAO,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;oBACvD,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAEpC,yBAAyB;gBACzB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACxC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;oBACzC,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,mBAAmB,CAAC;oBAC1F,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,CAAC,OAAO,CAAC,MAAM,iBAAiB,OAAO,oBAAoB,SAAS,EAAE,CAAC,CAAC;oBACrG,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,GAAG,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;gBAClD,OAAO,KAAK,CAAC;YACf,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,KAAK,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;gBACnD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,YAAY,CAAC,YAA+B,EAAE,gBAA0B;QAC5E,uFAAuF;QACvF,+CAA+C;QAC/C,6DAA6D;QAC7D,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;YAClD,6EAA6E;YAC7E,IAAI,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBAC/B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACjD,IAAI,SAAS,EAAE,CAAC;oBACd,GAAG,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC;oBACzE,GAAG,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;oBAClE,MAAM,YAAY,EAAE,CAAC,oDAAoD,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBACnF,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;YAEhD,2EAA2E;YAC3E,2EAA2E;YAC3E,MAAM,iBAAiB,GAAG,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;YAEnF,IAAI,CAAC;gBACH,kEAAkE;gBAClE,GAAG,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;gBAC3D,MAAM,YAAY,EAAE,CAAC,qCAAqC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAE9B,GAAG,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;gBACrE,GAAG,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBACrD,MAAM,YAAY,EAAE,CAAC,iCAAiC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAE/D,iEAAiE;gBACjE,iDAAiD;gBACjD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,uBAAuB,CACpD,MAAM,CAAC,gBAAgB,EACvB;oBACE,QAAQ,EAAE,CAAC,iBAAiB,EAAE,+CAA+C;oBAC7E,OAAO,EAAE,QAAiB;oBAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,MAAM,EAAE,OAAO;oBACf,UAAU,EAAE,eAAe;oBAC3B,IAAI,EAAE;wBACJ,+CAA+C;wBAC/C,yBAAyB;wBACzB,gBAAgB;wBAChB,4BAA4B;qBAC7B;iBACF,CACF,CAAC;gBAEF,uBAAuB;gBACvB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBAEnE,sCAAsC;gBACtC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBAEjE,IAAI,YAAY,EAAE,CAAC;oBACjB,+DAA+D;oBAC/D,wEAAwE;oBACxE,MAAM,YAAY,EAAE,CAAC,gCAAgC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC9D,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC3C,GAAG,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;oBAC3D,GAAG,CAAC,OAAO,CAAC,oBAAoB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;oBACtD,GAAG,CAAC,OAAO,CAAC,wBAAwB,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;oBAC/D,GAAG,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;gBACnE,CAAC;gBAED,2BAA2B;gBAC3B,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;gBAEtB,OAAO,YAAY,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,KAAK,CAAC,mBAAmB,KAAK,EAAE,CAAC,CAAC;gBACtC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,+BAA+B;IAClF,CAAC;IAED,+EAA+E;IAC/E,UAAU;IACV,+EAA+E;IAE/E;;;;;;;;;;OAUG;IACH,KAAK,CAAC,gBAAgB;QACpB,GAAG,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC;QAE3E,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;QAEzC,gFAAgF;QAChF,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YACvD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/E,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;oBACzD,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;oBACjC,YAAY,EAAE,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,OAAO,CAAC,uCAAuC,KAAK,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,4DAA4D;QAC5D,mEAAmE;QACnE,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;YACjD,IAAI,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACjC,MAAM,EAAE,CAAC,EAAE,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChE,GAAG,CAAC,OAAO,CAAC,+BAA+B,gBAAgB,EAAE,CAAC,CAAC;gBAC/D,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,OAAO,CAAC,0CAA0C,KAAK,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,OAAO,CAAC,4BAA4B,YAAY,kCAAkC,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;YAEzC,kDAAkD;YAClD,MAAM,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAE/C,oDAAoD;YACpD,MAAM,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAEjD,GAAG,CAAC,OAAO,CAAC,4DAA4D,CAAC,CAAC;YAC1E,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC;YACH,GAAG,CAAC,OAAO,CAAC,yDAAyD,CAAC,CAAC;YAEvE,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,oBAAoB;YACpB,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACpC,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;gBAClD,YAAY,EAAE,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC;gBACP,qBAAqB;YACvB,CAAC;YAED,sBAAsB;YACtB,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBACtC,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;gBACpD,YAAY,EAAE,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC;gBACP,qBAAqB;YACvB,CAAC;YAED,kCAAkC;YAClC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;gBACvD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;oBACzD,YAAY,EAAE,CAAC;gBACjB,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,eAAe,MAAM,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC;YACjF,CAAC;YAAC,MAAM,CAAC;gBACP,mCAAmC;YACrC,CAAC;YAED,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;gBACvB,GAAG,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,OAAO,CAAC,0BAA0B,YAAY,gBAAgB,CAAC,CAAC;YACtE,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"auth-manager.js","sourceRoot":"","sources":["../../src/auth/auth-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/mcp-auth.d.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* MCP Auth configuration
|
|
14
14
|
*/
|
|
15
15
|
export interface MCPAuthConfig {
|
|
16
|
-
/** Enable authentication (default:
|
|
16
|
+
/** Enable authentication (default: true — secure by default) */
|
|
17
17
|
enabled: boolean;
|
|
18
18
|
/** Token from environment or file */
|
|
19
19
|
token?: string;
|
|
@@ -21,7 +21,7 @@ export interface MCPAuthConfig {
|
|
|
21
21
|
tokenFile: string;
|
|
22
22
|
/** Max failed auth attempts before lockout */
|
|
23
23
|
maxFailedAttempts: number;
|
|
24
|
-
/** Lockout duration in milliseconds */
|
|
24
|
+
/** Lockout duration in milliseconds (initial — escalates with exponential backoff) */
|
|
25
25
|
lockoutDurationMs: number;
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
@@ -39,6 +39,10 @@ export declare class MCPAuthenticator {
|
|
|
39
39
|
* Initialize the authenticator
|
|
40
40
|
*/
|
|
41
41
|
initialize(): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Print token setup instructions to stderr
|
|
44
|
+
*/
|
|
45
|
+
private printTokenInstructions;
|
|
42
46
|
/**
|
|
43
47
|
* Generate a secure random token
|
|
44
48
|
*/
|
|
@@ -61,6 +65,9 @@ export declare class MCPAuthenticator {
|
|
|
61
65
|
private isLockedOut;
|
|
62
66
|
/**
|
|
63
67
|
* Record a failed authentication attempt
|
|
68
|
+
*
|
|
69
|
+
* Uses exponential backoff for lockout duration:
|
|
70
|
+
* 1st lockout: 5min, 2nd: 15min, 3rd: 45min, 4th+: 4hr (capped)
|
|
64
71
|
*/
|
|
65
72
|
private recordFailedAttempt;
|
|
66
73
|
/**
|
|
@@ -72,9 +79,10 @@ export declare class MCPAuthenticator {
|
|
|
72
79
|
*
|
|
73
80
|
* @param token - Token to validate
|
|
74
81
|
* @param clientId - Client identifier for rate limiting (default: "unknown")
|
|
82
|
+
* @param forceValidation - If true, validate even when auth is globally disabled (for sensitive tools)
|
|
75
83
|
* @returns true if valid, false if invalid
|
|
76
84
|
*/
|
|
77
|
-
validateToken(token: string | undefined, clientId?: string): Promise<boolean>;
|
|
85
|
+
validateToken(token: string | undefined, clientId?: string, forceValidation?: boolean): Promise<boolean>;
|
|
78
86
|
/**
|
|
79
87
|
* Get authentication status for health check
|
|
80
88
|
*/
|
|
@@ -94,9 +102,22 @@ export declare class MCPAuthenticator {
|
|
|
94
102
|
export declare function getMCPAuthenticator(): MCPAuthenticator;
|
|
95
103
|
/**
|
|
96
104
|
* Middleware function for MCP request authentication
|
|
105
|
+
*
|
|
106
|
+
* @param token - The auth token to validate
|
|
107
|
+
* @param clientId - Client identifier for rate limiting
|
|
108
|
+
* @param forceAuth - If true, require auth even when globally disabled (for sensitive tools)
|
|
97
109
|
*/
|
|
98
|
-
export declare function authenticateMCPRequest(token: string | undefined, clientId?: string): Promise<{
|
|
110
|
+
export declare function authenticateMCPRequest(token: string | undefined, clientId?: string, forceAuth?: boolean): Promise<{
|
|
99
111
|
authenticated: boolean;
|
|
100
112
|
error?: string;
|
|
101
113
|
}>;
|
|
114
|
+
/**
|
|
115
|
+
* CLI handler for `npx notebooklm-mcp token <subcommand>`
|
|
116
|
+
*
|
|
117
|
+
* Subcommands:
|
|
118
|
+
* show — Generate a new token (or show instructions to retrieve the current one)
|
|
119
|
+
* rotate — Rotate the token and display the new one
|
|
120
|
+
* (none) — Print help
|
|
121
|
+
*/
|
|
122
|
+
export declare function handleTokenCommand(args: string[]): Promise<void>;
|
|
102
123
|
//# sourceMappingURL=mcp-auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-auth.d.ts","sourceRoot":"","sources":["../../src/auth/mcp-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAeH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,
|
|
1
|
+
{"version":3,"file":"mcp-auth.d.ts","sourceRoot":"","sources":["../../src/auth/mcp-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAeH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,gEAAgE;IAChE,OAAO,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sFAAsF;IACtF,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAgDD;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,cAAc,CAAgD;IACtE,OAAO,CAAC,WAAW,CAAkB;gBAEzB,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAI3C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiDjC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAqB9B;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIhC;;OAEG;YACW,aAAa;IAa3B;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAkBnB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAkC3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;;;;OAOG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,GAAE,MAAkB,EAAE,eAAe,GAAE,OAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAmDhI;;OAEG;IACH,SAAS,IAAI;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;KACvB;IASD;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;CAUrC;AAOD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAKtD;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC;IAAE,aAAa,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA4BrD;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDtE"}
|