@musnows/scriverse 0.6.2 → 0.6.4
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/dist/ai-protocol.js +22 -9
- package/dist/ai-protocol.js.map +1 -1
- package/dist/ai-tool-results.js +71 -0
- package/dist/ai-tool-results.js.map +1 -1
- package/dist/ai.js +913 -195
- package/dist/ai.js.map +1 -1
- package/dist/app.js +245 -46
- package/dist/app.js.map +1 -1
- package/dist/cli-core.js +23 -13
- package/dist/cli-core.js.map +1 -1
- package/dist/database.js +251 -2
- package/dist/database.js.map +1 -1
- package/dist/docx-export.js +89 -0
- package/dist/docx-export.js.map +1 -0
- package/dist/google-vertex-auth.js +155 -0
- package/dist/google-vertex-auth.js.map +1 -0
- package/dist/image-captcha.js +8 -5
- package/dist/image-captcha.js.map +1 -1
- package/dist/public/ai-context-meter.js +4 -0
- package/dist/public/ai-mentions.js +10 -0
- package/dist/public/ai-message-time.js +3 -9
- package/dist/public/ai-tool-call.js +4 -0
- package/dist/public/app.js +1004 -131
- package/dist/public/display-labels.js +2 -1
- package/dist/public/index.html +75 -16
- package/dist/public/page-route.js +2 -2
- package/dist/public/styles.css +155 -19
- package/dist/public/system-status.d.ts +12 -0
- package/dist/public/system-status.js +16 -0
- package/dist/public/theme-init.js +2 -2
- package/dist/security.js +101 -9
- package/dist/security.js.map +1 -1
- package/dist/store.js +290 -21
- package/dist/store.js.map +1 -1
- package/dist/user-auth.js +62 -24
- package/dist/user-auth.js.map +1 -1
- package/dist/version.js +1 -1
- package/dist/writing-progress-time.js +23 -0
- package/dist/writing-progress-time.js.map +1 -1
- package/package.json +2 -1
package/dist/security.js
CHANGED
|
@@ -6,13 +6,54 @@ import { Agent } from "undici";
|
|
|
6
6
|
import { AppError } from "./errors.js";
|
|
7
7
|
import { logger } from "./logger.js";
|
|
8
8
|
const maximumRateEntries = 10_000;
|
|
9
|
+
/**
|
|
10
|
+
* Express 默认路由大小写不敏感,但 request.path 保留原始大小写。
|
|
11
|
+
* 安全中间件统一用小写路径做匹配,避免 /API/... 一类变体绕过鉴权与限速。
|
|
12
|
+
*/
|
|
13
|
+
export function normalizeApiPath(pathname) {
|
|
14
|
+
return pathname.toLocaleLowerCase("en-US");
|
|
15
|
+
}
|
|
16
|
+
/** 强制保持大小写不敏感路由,并拒绝后续改成大小写敏感。 */
|
|
17
|
+
export function enforceCaseInsensitiveRouting(app) {
|
|
18
|
+
app.set("case sensitive routing", false);
|
|
19
|
+
const originalSet = app.set.bind(app);
|
|
20
|
+
app.set = function lockedCaseInsensitiveRouting(setting, value) {
|
|
21
|
+
// Express 用单参数 app.set(name) 读取配置;不能把它改写成写入。
|
|
22
|
+
if (arguments.length < 2)
|
|
23
|
+
return originalSet(setting);
|
|
24
|
+
if (String(setting).toLocaleLowerCase("en-US") === "case sensitive routing") {
|
|
25
|
+
if (value) {
|
|
26
|
+
throw new Error("Case-sensitive routing is disabled; API security matches paths case-insensitively");
|
|
27
|
+
}
|
|
28
|
+
return originalSet(setting, false);
|
|
29
|
+
}
|
|
30
|
+
return originalSet(setting, value);
|
|
31
|
+
};
|
|
32
|
+
}
|
|
9
33
|
const digest = (value) => createHash("sha256").update(value).digest();
|
|
10
34
|
const constantTimeEqual = (left, right) => timingSafeEqual(digest(left), digest(right));
|
|
11
35
|
export function verifySetupToken(expected, provided) {
|
|
12
36
|
return Boolean(expected && provided) && constantTimeEqual(expected ?? "", provided ?? "");
|
|
13
37
|
}
|
|
14
38
|
function requestKey(request) {
|
|
15
|
-
|
|
39
|
+
const peer = request.socket.remoteAddress || "unknown";
|
|
40
|
+
const trustProxy = request.app?.get?.("trust proxy");
|
|
41
|
+
const trustsForwarded = trustProxy === true
|
|
42
|
+
|| (typeof trustProxy === "number" && trustProxy > 0)
|
|
43
|
+
|| (Array.isArray(trustProxy) && trustProxy.length > 0)
|
|
44
|
+
|| (typeof trustProxy === "string" && trustProxy !== "false" && trustProxy.length > 0);
|
|
45
|
+
// 未启用 trust proxy 时忽略 X-Forwarded-For,始终按直连对端计限速。
|
|
46
|
+
if (!trustsForwarded)
|
|
47
|
+
return peer;
|
|
48
|
+
return request.ip || peer;
|
|
49
|
+
}
|
|
50
|
+
/** 禁止 trust proxy=true(信任整条转发链);至少收敛为单跳。 */
|
|
51
|
+
export function resolveTrustProxySetting(trustProxy) {
|
|
52
|
+
if (trustProxy === undefined)
|
|
53
|
+
return undefined;
|
|
54
|
+
if (trustProxy === true)
|
|
55
|
+
return 1;
|
|
56
|
+
return trustProxy;
|
|
16
57
|
}
|
|
17
58
|
function consumeRate(entries, key, limit, windowMs, entryLimit = maximumRateEntries) {
|
|
18
59
|
const currentTime = Date.now();
|
|
@@ -58,7 +99,7 @@ export function createBasicAuthMiddleware(options) {
|
|
|
58
99
|
const failureWindowMs = options.failureWindowMs ?? 15 * 60_000;
|
|
59
100
|
const failures = new Map();
|
|
60
101
|
return (request, response, next) => {
|
|
61
|
-
if (request.path === "/api/health")
|
|
102
|
+
if (normalizeApiPath(request.path) === "/api/health")
|
|
62
103
|
return next();
|
|
63
104
|
const key = requestKey(request);
|
|
64
105
|
const credentials = parseBasicCredentials(request.get("authorization"));
|
|
@@ -91,7 +132,7 @@ export function createSecurityHeadersMiddleware() {
|
|
|
91
132
|
response.setHeader("X-Content-Type-Options", "nosniff");
|
|
92
133
|
response.setHeader("X-Frame-Options", "DENY");
|
|
93
134
|
response.setHeader("X-Permitted-Cross-Domain-Policies", "none");
|
|
94
|
-
response.setHeader("Cache-Control", request.path.startsWith("/api/") ? "no-store" : "private, no-cache");
|
|
135
|
+
response.setHeader("Cache-Control", normalizeApiPath(request.path).startsWith("/api/") ? "no-store" : "private, no-cache");
|
|
95
136
|
response.vary("Authorization");
|
|
96
137
|
if (request.secure)
|
|
97
138
|
response.setHeader("Strict-Transport-Security", "max-age=31536000; includeSubDomains");
|
|
@@ -131,7 +172,8 @@ export function createSameOriginMiddleware() {
|
|
|
131
172
|
export function createApiRateLimitMiddleware(limit = 600, windowMs = 60_000, entryLimit = maximumRateEntries) {
|
|
132
173
|
const entries = new Map();
|
|
133
174
|
return (request, response, next) => {
|
|
134
|
-
|
|
175
|
+
const path = normalizeApiPath(request.path);
|
|
176
|
+
if (!path.startsWith("/api/") || path === "/api/health")
|
|
135
177
|
return next();
|
|
136
178
|
const rate = consumeRate(entries, requestKey(request), limit, windowMs, entryLimit);
|
|
137
179
|
if (rate.allowed)
|
|
@@ -144,10 +186,11 @@ export function createApiRateLimitMiddleware(limit = 600, windowMs = 60_000, ent
|
|
|
144
186
|
export function createAuthenticationRateLimitMiddleware(limit = 10, windowMs = 15 * 60_000) {
|
|
145
187
|
const entries = new Map();
|
|
146
188
|
return (request, response, next) => {
|
|
147
|
-
const
|
|
189
|
+
const path = normalizeApiPath(request.path);
|
|
190
|
+
const authenticationWrite = request.method === "POST" && ["/api/auth/login", "/api/auth/register"].includes(path);
|
|
148
191
|
if (!authenticationWrite)
|
|
149
192
|
return next();
|
|
150
|
-
const rate = consumeRate(entries, `${requestKey(request)}:${
|
|
193
|
+
const rate = consumeRate(entries, `${requestKey(request)}:${path}`, limit, windowMs);
|
|
151
194
|
if (rate.allowed)
|
|
152
195
|
return next();
|
|
153
196
|
logger.warn("security.request.blocked", { control: "authentication_rate_limit", retryAfterSeconds: rate.retryAfter });
|
|
@@ -158,9 +201,10 @@ export function createAuthenticationRateLimitMiddleware(limit = 10, windowMs = 1
|
|
|
158
201
|
export function createUploadRateLimitMiddleware(limit = 30, windowMs = 10 * 60_000, entryLimit = maximumRateEntries) {
|
|
159
202
|
const entries = new Map();
|
|
160
203
|
return (request, response, next) => {
|
|
161
|
-
const
|
|
162
|
-
|
|
163
|
-
||
|
|
204
|
+
const path = normalizeApiPath(request.path);
|
|
205
|
+
const uploadWrite = (request.method === "POST" || request.method === "PUT") && (path === "/api/auth/avatar"
|
|
206
|
+
|| path === "/api/works/import"
|
|
207
|
+
|| /^\/api\/works\/[^/]+\/(?:import|cover|attachments)$/u.test(path));
|
|
164
208
|
if (!uploadWrite)
|
|
165
209
|
return next();
|
|
166
210
|
const actorKey = request.authUser?.userId ?? requestKey(request);
|
|
@@ -172,6 +216,54 @@ export function createUploadRateLimitMiddleware(limit = 30, windowMs = 10 * 60_0
|
|
|
172
216
|
response.status(429).json({ error: { code: "UPLOAD_RATE_LIMITED", message: "文件上传过于频繁,请稍后重试" } });
|
|
173
217
|
};
|
|
174
218
|
}
|
|
219
|
+
export function createCaptchaRateLimitMiddleware(limit = 20, windowMs = 60_000, entryLimit = maximumRateEntries) {
|
|
220
|
+
const entries = new Map();
|
|
221
|
+
return (request, response, next) => {
|
|
222
|
+
if (request.method !== "GET" || normalizeApiPath(request.path) !== "/api/auth/captcha")
|
|
223
|
+
return next();
|
|
224
|
+
const rate = consumeRate(entries, requestKey(request), limit, windowMs, entryLimit);
|
|
225
|
+
if (rate.allowed)
|
|
226
|
+
return next();
|
|
227
|
+
logger.warn("security.request.blocked", { control: "captcha_rate_limit", retryAfterSeconds: rate.retryAfter });
|
|
228
|
+
response.setHeader("Retry-After", String(rate.retryAfter));
|
|
229
|
+
response.status(429).json({ error: { code: "CAPTCHA_RATE_LIMITED", message: "验证码请求过于频繁,请稍后重试" } });
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
function expensiveApiKind(method, path) {
|
|
233
|
+
if (method === "GET" && /^\/api\/works\/[^/]+\/export$/u.test(path))
|
|
234
|
+
return "export";
|
|
235
|
+
if (method === "GET" && /^\/api\/works\/[^/]+\/search$/u.test(path))
|
|
236
|
+
return "search";
|
|
237
|
+
if (method !== "POST")
|
|
238
|
+
return null;
|
|
239
|
+
if (/^\/api\/works\/[^/]+\/(?:suggestions|chat\/stream|tasks)(?:\/|$)/u.test(path)
|
|
240
|
+
|| /^\/api\/suggestions\/[^/]+\/guard$/u.test(path)
|
|
241
|
+
|| /^\/api\/ai-conversations\/[^/]+\/(?:compact|context\/prepare)$/u.test(path)
|
|
242
|
+
|| /^\/api\/tasks\/[^/]+\/(?:retry|cancel|relationship-changes\/apply)$/u.test(path)) {
|
|
243
|
+
return "ai";
|
|
244
|
+
}
|
|
245
|
+
return null;
|
|
246
|
+
}
|
|
247
|
+
const expensiveApiLimits = {
|
|
248
|
+
ai: 30,
|
|
249
|
+
export: 10,
|
|
250
|
+
search: 60
|
|
251
|
+
};
|
|
252
|
+
export function createExpensiveApiRateLimitMiddleware(windowMs = 60_000, entryLimit = maximumRateEntries) {
|
|
253
|
+
const entries = new Map();
|
|
254
|
+
return (request, response, next) => {
|
|
255
|
+
const kind = expensiveApiKind(request.method, normalizeApiPath(request.path));
|
|
256
|
+
if (!kind)
|
|
257
|
+
return next();
|
|
258
|
+
const actorKey = request.authUser?.userId ?? requestKey(request);
|
|
259
|
+
const rate = consumeRate(entries, `${kind}:${actorKey}`, expensiveApiLimits[kind], windowMs, entryLimit);
|
|
260
|
+
if (rate.allowed)
|
|
261
|
+
return next();
|
|
262
|
+
logger.warn("security.request.blocked", { control: "expensive_api_rate_limit", kind, retryAfterSeconds: rate.retryAfter });
|
|
263
|
+
response.setHeader("Retry-After", String(rate.retryAfter));
|
|
264
|
+
response.status(429).json({ error: { code: "EXPENSIVE_API_RATE_LIMITED", message: "该操作请求过于频繁,请稍后重试" } });
|
|
265
|
+
};
|
|
266
|
+
}
|
|
175
267
|
function parseIpv4(address) {
|
|
176
268
|
if (isIP(address) !== 4)
|
|
177
269
|
return null;
|
package/dist/security.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.js","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAsBrC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,MAAM,MAAM,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;AACtF,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,KAAa,EAAW,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAEjH,MAAM,UAAU,gBAAgB,CAAC,QAA4B,EAAE,QAA4B;IACzF,OAAO,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,iBAAiB,CAAC,QAAQ,IAAI,EAAE,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,UAAU,CAAC,OAAgB;IAClC,OAAO,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,aAAa,IAAI,SAAS,CAAC;AACjE,CAAC;AAED,SAAS,WAAW,CAAC,OAA+B,EAAE,GAAW,EAAE,KAAa,EAAE,QAAgB,EAAE,UAAU,GAAG,kBAAkB;IACjI,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IACtH,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IACjB,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,OAAO;YAAE,IAAI,KAAK,CAAC,OAAO,IAAI,WAAW;gBAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACtG,OAAO,OAAO,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAA2B,CAAC;YACjE,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM;YAChC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACxB,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;AACrH,CAAC;AAED,SAAS,YAAY,CAAC,QAAkB,EAAE,KAAa;IACrD,QAAQ,CAAC,SAAS,CAAC,kBAAkB,EAAE,gBAAgB,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC;IACzG,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAChD,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,qBAAqB,CAAC,MAA0B;IACvD,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/E,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,SAAS,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/B,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;IAC3F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAyB;IACjE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,WAAW,CAAC;IAC3C,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;IAChD,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,EAAE,GAAG,MAAM,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC9C,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QACjC,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa;YAAE,OAAO,IAAI,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,WAAW;eACpB,iBAAiB,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC;eACzD,iBAAiB,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,KAAK,EAAE,CAAC;YACV,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACnD,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,4BAA4B,EAAE,iBAAiB,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACvH,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAC3D,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;YACjG,OAAO;QACT,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC7I,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QACjC,QAAQ,CAAC,SAAS,CAAC,yBAAyB,EAAE,oRAAoR,CAAC,CAAC;QACpU,QAAQ,CAAC,SAAS,CAAC,4BAA4B,EAAE,aAAa,CAAC,CAAC;QAChE,QAAQ,CAAC,SAAS,CAAC,8BAA8B,EAAE,aAAa,CAAC,CAAC;QAClE,QAAQ,CAAC,SAAS,CAAC,oBAAoB,EAAE,8DAA8D,CAAC,CAAC;QACzG,QAAQ,CAAC,SAAS,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QACrD,QAAQ,CAAC,SAAS,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;QACxD,QAAQ,CAAC,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC9C,QAAQ,CAAC,SAAS,CAAC,mCAAmC,EAAE,MAAM,CAAC,CAAC;QAChE,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;QACzG,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM;YAAE,QAAQ,CAAC,SAAS,CAAC,2BAA2B,EAAE,qCAAqC,CAAC,CAAC;QAC3G,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QACjC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,EAAE,CAAC;QACvE,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,YAAY,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAChG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;YAClG,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,cAAc,GAAG,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACnE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;YAC5F,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;YACpF,OAAO;QACT,CAAC;QACD,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAC/F,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;YAClG,OAAO;QACT,CAAC;QACD,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAK,GAAG,GAAG,EAAE,QAAQ,GAAG,MAAM,EAAE,UAAU,GAAG,kBAAkB;IAC1G,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC7C,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa;YAAE,OAAO,IAAI,EAAE,CAAC;QACvF,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACpF,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3G,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3D,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;IAC9F,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uCAAuC,CAAC,KAAK,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,GAAG,MAAM;IACxF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC7C,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QACjC,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1H,IAAI,CAAC,mBAAmB;YAAE,OAAO,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC7F,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACtH,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3D,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;IACpG,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,KAAK,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,GAAG,MAAM,EAAE,UAAU,GAAG,kBAAkB;IACjH,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC7C,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QACjC,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,CAC7E,OAAO,CAAC,IAAI,KAAK,kBAAkB;eAChC,OAAO,CAAC,IAAI,KAAK,mBAAmB;eACpC,sDAAsD,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAC7E,CAAC;QACF,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACzE,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9G,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3D,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACnG,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAChC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAC7G,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG;YAAE,OAAO,SAAS,CAAC;QAC5G,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAC/C,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACzG,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACzM,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,OAAO,IAAI,CAAC;AACd,CAAC;AAKD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAmC,CAAC;AACrE,MAAM,oBAAoB,GAAG,KAAK,CAAC;AACnC,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC;IAC9B,OAAO,EAAE;QACP,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;YACvC,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC;YACtE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;gBACvB,QAAQ,CAAC,IAAI,KAAK,CAAC,oDAAoD,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9E,OAAO;YACT,CAAC;YACD,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5B,CAAC;KACF;CACF,CAAC,CAAC;AAEH,SAAS,yBAAyB,CAAC,QAAgB,EAAE,SAAkC;IACrF,MAAM,GAAG,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC;IACzC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,IAAI,IAAI,oBAAoB,EAAE,CAAC;QAClF,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QACrD,IAAI,MAAM;YAAE,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IACD,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9B,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAa,EAAE,mBAAmB,GAAG,KAAK;IACnF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC/F,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,0BAA0B,EAAE,mCAAmC,CAAC,CAAC;IAC3F,CAAC;IACD,MAAM,SAAS,GAA4B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAChE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAU,EAAE,CAAC;QAC5E,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/G,OAAO;YACP,MAAM,EAAE,MAAe;SACxB,CAAC,CAAC,CAAC;IACN,IAAI,CAAC,SAAS,CAAC,MAAM;QAAE,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,0BAA0B,EAAE,cAAc,CAAC,CAAC;IAC3F,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,SAAS,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACvE,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YAChG,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,0BAA0B,EAAE,4BAA4B,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC;QAC1G,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,4BAA4B,EAAE,uBAAuB,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAE5D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,SAAuB,EACvB,GAAW,EACX,IAAiB,EACjB,mBAA6C,EAC7C,YAAY,GAAG,CAAC;IAEhB,IAAI,UAAU,GAAG,GAAG,CAAC;IACrB,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,YAAY,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QAChG,MAAM,kBAAkB,GAAG,MAAM,mBAAmB,EAAE,CAAC,UAAU,CAAC,CAAC;QACnE,MAAM,WAAW,GAAyC;YACxD,GAAG,IAAI;YACP,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,QAAiB;YAC3B,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,CAAC,MAAM;gBAChE,CAAC,CAAC,CAAC,yBAAyB,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;gBAC9G,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACvH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,QAAQ,CAAC;QAC5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,2BAA2B,EAAE,mBAAmB,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,OAAY,CAAC;QACjB,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,2BAA2B,EAAE,mBAAmB,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC;YAClD,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,gCAAgC,EAAE,oBAAoB,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACrD,CAAC;QACD,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAClC,CAAC;IACD,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,yBAAyB,EAAE,eAAe,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,WAA8B,EAAE,qBAAqB,GAAG,KAAK;IAClG,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,KAAK,YAAY,CAAC;IACzD,MAAM,QAAQ,GAAG,WAAW,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7D,MAAM,QAAQ,GAAG,WAAW,CAAC,iBAAiB,IAAI,EAAE,CAAC;IACrD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC7G,IAAI,qBAAqB,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAC3H,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACvF,MAAM,eAAe,GAAG,WAAW,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAClE,MAAM,UAAU,GAAG,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACxH,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,EAAE,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAClI,MAAM,iBAAiB,GAAG,WAAW,CAAC,sBAAsB,KAAK,MAAM,CAAC;IACxE,MAAM,UAAU,GAAG,WAAW,CAAC,eAAe,IAAI,EAAE,CAAC;IACrD,IAAI,iBAAiB,IAAI,UAAU,CAAC,MAAM,GAAG,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACtG,OAAO;QACL,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,UAAU;QACV,iBAAiB,EAAE,IAAI;QACvB,uBAAuB,EAAE,WAAW,CAAC,8BAA8B,KAAK,MAAM,IAAI,CAAC,UAAU;QAC7F,iBAAiB;QACjB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,WAA8B,EAAE,gBAAgB,GAAG,sBAAsB,CAAC,WAAW,CAAC;IACnI,OAAO,WAAW,CAAC,QAAQ,KAAK,aAAa;WACxC,WAAW,CAAC,iBAAiB,KAAK,MAAM;WACxC,CAAC,gBAAgB,CAAC;AACzB,CAAC;AAED,SAAS,sBAAsB,CAAC,WAA8B;IAC5D,OAAO,WAAW,CAAC,iBAAiB,KAAK,WAAW;WAC/C,UAAU,CAAC,aAAa,CAAC;WACzB,UAAU,CAAC,oBAAoB,CAAC,CAAC;AACxC,CAAC"}
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"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"}
|