@bluelamp/cli-token 1.0.3 → 1.1.0
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 +13 -0
- package/dist/cjs/index.js +175 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.d.ts +75 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +166 -0
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -27,6 +27,19 @@ const maybe = tryReadCliToken();
|
|
|
27
27
|
|---|---|
|
|
28
28
|
| core(I/O なし) | `encryptPayload` / `decryptPayload` / `extractToken` / `validateTokenFormat` |
|
|
29
29
|
| shell(I/O あり) | `getTokenFilePath` / `readCliTokenSync` / `tryReadCliToken` / `loadPortalToken` / `savePortalToken` / `deletePortalToken` |
|
|
30
|
+
| 艦隊の資格の門(1.1.0・n=2607) | `checkFleetGate` / `isAllowedForScope` / `getFleetEntitlementFilePath` / `getFleetGateLogPath` / `formatFleetGateLogLine` / `fleetGateRefusalMessage` / `parseFleetEntitlementCache` / `isFleetEntitlementFresh` |
|
|
31
|
+
|
|
32
|
+
### 艦隊の資格の門(`checkFleetGate`)
|
|
33
|
+
|
|
34
|
+
席を立てる手元の起点(orchestrator の spawn・scheduler/routine の発火)が通る**唯一の判定**。
|
|
35
|
+
口は `GET {BLUELAMP_PORTAL_API_BASE_URL}/cli/fleet-entitlement`(`X-CLI-Token`)、答えは `~/.bluelamp/fleet-entitlement.json` に 24 時間キャッシュ。
|
|
36
|
+
|
|
37
|
+
- 新しいキャッシュが在れば網に出ない。古い/無ければ 1 回だけ聞く(5 秒で打ち切り)
|
|
38
|
+
- 書くのは `active`/`cancelled` だけ。網の不調・5xx・401・404・`unknown` は前回の答え、前回も無ければ通す(fail-open)
|
|
39
|
+
- 止める(`allowed: false`)のは `cancelled` だけ。返り `{allowed, status, reason, from: "cache"|"network"|"stale"|"none"}`
|
|
40
|
+
- 網に出た回(from が cache 以外)だけ `~/.bluelamp/fleet-gate.log` に 1 行追記(`{ts, caller, from, status, reason}`・トークンと URL は載せない・1MB を超えたら新しい側の半分に詰める)。`caller` は `orchestrator`/`scheduler`/`routine`/`server`
|
|
41
|
+
- `scope`(既定 `"fleet"`): `fleet`=cancelled なら止める(orchestrator・scheduler)。`member`=cancelled でも理由が `no_seat`・`rank_below_min` なら止めない(routine=初伝にも配る。席が丸ごと落ちた・退会・期限切れの時だけ止める)。キャッシュと口は 1 つのまま
|
|
42
|
+
- throw しない。止めた時の文面は `fleetGateRefusalMessage(reason)`(固定)
|
|
30
43
|
|
|
31
44
|
## 制約
|
|
32
45
|
|
package/dist/cjs/index.js
CHANGED
|
@@ -46,7 +46,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
46
46
|
};
|
|
47
47
|
})();
|
|
48
48
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
|
-
exports.CliTokenNotFoundError = void 0;
|
|
49
|
+
exports.FLEET_GATE_LOG_MAX_BYTES = exports.FLEET_ENTITLEMENT_MAX_TTL_SEC = exports.MEMBER_SCOPE_ALLOWED_REASONS = exports.CliTokenNotFoundError = void 0;
|
|
50
50
|
exports.getTokenFilePath = getTokenFilePath;
|
|
51
51
|
exports.getPinnedTenantFilePath = getPinnedTenantFilePath;
|
|
52
52
|
exports.encryptPayload = encryptPayload;
|
|
@@ -59,6 +59,14 @@ exports.loadPortalToken = loadPortalToken;
|
|
|
59
59
|
exports.savePortalToken = savePortalToken;
|
|
60
60
|
exports.deletePortalToken = deletePortalToken;
|
|
61
61
|
exports.readPinnedTenantDeclaration = readPinnedTenantDeclaration;
|
|
62
|
+
exports.isAllowedForScope = isAllowedForScope;
|
|
63
|
+
exports.getFleetEntitlementFilePath = getFleetEntitlementFilePath;
|
|
64
|
+
exports.getFleetGateLogPath = getFleetGateLogPath;
|
|
65
|
+
exports.formatFleetGateLogLine = formatFleetGateLogLine;
|
|
66
|
+
exports.fleetGateRefusalMessage = fleetGateRefusalMessage;
|
|
67
|
+
exports.parseFleetEntitlementCache = parseFleetEntitlementCache;
|
|
68
|
+
exports.isFleetEntitlementFresh = isFleetEntitlementFresh;
|
|
69
|
+
exports.checkFleetGate = checkFleetGate;
|
|
62
70
|
const node_crypto_1 = require("node:crypto");
|
|
63
71
|
const fs = __importStar(require("node:fs"));
|
|
64
72
|
const os = __importStar(require("node:os"));
|
|
@@ -239,4 +247,170 @@ function readPinnedTenantDeclaration() {
|
|
|
239
247
|
}
|
|
240
248
|
return tenantId;
|
|
241
249
|
}
|
|
250
|
+
/** member の範囲では止めない cancelled の理由(サーバの語・席 A の services/fleetEntitlement.ts が正本) */
|
|
251
|
+
exports.MEMBER_SCOPE_ALLOWED_REASONS = ['no_seat', 'rank_below_min'];
|
|
252
|
+
/** 範囲ごとの「通すか」(純関数)。止めるのは cancelled だけ */
|
|
253
|
+
function isAllowedForScope(status, reason, scope) {
|
|
254
|
+
if (status !== 'cancelled')
|
|
255
|
+
return true;
|
|
256
|
+
return scope === 'member' && reason !== null && exports.MEMBER_SCOPE_ALLOWED_REASONS.includes(reason);
|
|
257
|
+
}
|
|
258
|
+
/** 猶予の上限(24 時間)。サーバの ttl_sec がこれより長くてもここで切る(線を変えるのは主君) */
|
|
259
|
+
exports.FLEET_ENTITLEMENT_MAX_TTL_SEC = 86_400;
|
|
260
|
+
const FLEET_GATE_TIMEOUT_MS = 5_000;
|
|
261
|
+
// 3 つの MCP(backend-client / yashiro-client / ledger-auth)と同じ既定=/api/bluelamp まで含む
|
|
262
|
+
const FLEET_DEFAULT_BASE = 'https://api.motohi.jp/api/bluelamp';
|
|
263
|
+
/** キャッシュの置き場。テストで HOME を差し替えられるよう呼び出し時に解決する */
|
|
264
|
+
function getFleetEntitlementFilePath() {
|
|
265
|
+
return path.join(os.homedir(), '.bluelamp', 'fleet-entitlement.json');
|
|
266
|
+
}
|
|
267
|
+
/** 網に出た回だけ 1 行ずつ追記するログ(門の呼び出しを数える)。テストで HOME を差し替えられるよう呼び出し時に解決する */
|
|
268
|
+
function getFleetGateLogPath() {
|
|
269
|
+
return path.join(os.homedir(), '.bluelamp', 'fleet-gate.log');
|
|
270
|
+
}
|
|
271
|
+
/** fleet-gate.log がこれを超えたら新しい側の半分に詰める */
|
|
272
|
+
exports.FLEET_GATE_LOG_MAX_BYTES = 1_048_576;
|
|
273
|
+
/**
|
|
274
|
+
* fleet-gate.log の 1 行(純関数)。⛔ トークン・URL は載せない(時刻・呼び手・from・status・reason だけ)
|
|
275
|
+
*/
|
|
276
|
+
function formatFleetGateLogLine(nowMs, caller, r) {
|
|
277
|
+
return JSON.stringify({ ts: new Date(nowMs).toISOString(), caller, from: r.from, status: r.status, reason: r.reason }) + '\n';
|
|
278
|
+
}
|
|
279
|
+
function appendFleetGateLog(logPath, line) {
|
|
280
|
+
try {
|
|
281
|
+
fs.mkdirSync(path.dirname(logPath), { recursive: true });
|
|
282
|
+
fs.appendFileSync(logPath, line);
|
|
283
|
+
if (fs.statSync(logPath).size > exports.FLEET_GATE_LOG_MAX_BYTES) {
|
|
284
|
+
const buf = fs.readFileSync(logPath);
|
|
285
|
+
let start = buf.length - Math.floor(exports.FLEET_GATE_LOG_MAX_BYTES / 2);
|
|
286
|
+
const nl = buf.indexOf(0x0a, start);
|
|
287
|
+
start = nl === -1 ? buf.length : nl + 1; // 行の途中から始めない
|
|
288
|
+
const tmp = `${logPath}.${process.pid}.tmp`;
|
|
289
|
+
fs.writeFileSync(tmp, buf.subarray(start));
|
|
290
|
+
fs.renameSync(tmp, logPath);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
catch {
|
|
294
|
+
// ログが書けなくても門の答えは返す(計器が本体を殺さない)
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
/** 止めた時の文面(固定・席の起動バナーと艦隊オフィスの頭に同じ文を出す) */
|
|
298
|
+
function fleetGateRefusalMessage(reason) {
|
|
299
|
+
return `解約のため席を立てられません(${reason && reason.length > 0 ? reason : 'cancelled'})`;
|
|
300
|
+
}
|
|
301
|
+
/** キャッシュの中身を検める(純関数)。形が違えば null=キャッシュ無しと同じ */
|
|
302
|
+
function parseFleetEntitlementCache(raw) {
|
|
303
|
+
let v;
|
|
304
|
+
try {
|
|
305
|
+
v = JSON.parse(raw);
|
|
306
|
+
}
|
|
307
|
+
catch {
|
|
308
|
+
return null;
|
|
309
|
+
}
|
|
310
|
+
const o = v;
|
|
311
|
+
if (!o || (o.status !== 'active' && o.status !== 'cancelled'))
|
|
312
|
+
return null;
|
|
313
|
+
if (typeof o.checked_at !== 'string' || !Number.isFinite(Date.parse(o.checked_at)))
|
|
314
|
+
return null;
|
|
315
|
+
const ttl = typeof o.ttl_sec === 'number' && Number.isFinite(o.ttl_sec) && o.ttl_sec > 0 ? o.ttl_sec : exports.FLEET_ENTITLEMENT_MAX_TTL_SEC;
|
|
316
|
+
return {
|
|
317
|
+
status: o.status,
|
|
318
|
+
reason: typeof o.reason === 'string' ? o.reason : null,
|
|
319
|
+
checked_at: o.checked_at,
|
|
320
|
+
ttl_sec: ttl,
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
/** キャッシュが新しいか(純関数)。未来の時刻(時計の巻き戻り)は古いと読む */
|
|
324
|
+
function isFleetEntitlementFresh(cache, nowMs) {
|
|
325
|
+
const age = nowMs - Date.parse(cache.checked_at);
|
|
326
|
+
const ttlMs = Math.min(cache.ttl_sec, exports.FLEET_ENTITLEMENT_MAX_TTL_SEC) * 1000;
|
|
327
|
+
return age >= 0 && age < ttlMs;
|
|
328
|
+
}
|
|
329
|
+
function fromCache(cache, from, scope) {
|
|
330
|
+
return { allowed: isAllowedForScope(cache.status, cache.reason, scope), status: cache.status, reason: cache.reason, from };
|
|
331
|
+
}
|
|
332
|
+
function readFleetCache(filePath) {
|
|
333
|
+
try {
|
|
334
|
+
return parseFleetEntitlementCache(fs.readFileSync(filePath, 'utf8'));
|
|
335
|
+
}
|
|
336
|
+
catch {
|
|
337
|
+
return null;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
function writeFleetCache(filePath, cache) {
|
|
341
|
+
try {
|
|
342
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
343
|
+
const tmp = `${filePath}.${process.pid}.tmp`;
|
|
344
|
+
fs.writeFileSync(tmp, JSON.stringify(cache) + '\n');
|
|
345
|
+
fs.renameSync(tmp, filePath);
|
|
346
|
+
}
|
|
347
|
+
catch {
|
|
348
|
+
// 書けなくても今回の答えは返す(次回また聞くだけ・門で本線を落とさない)
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
async function askFleetEntitlement(url, token, fetchFn, timeoutMs) {
|
|
352
|
+
const ac = new AbortController();
|
|
353
|
+
const timer = setTimeout(() => ac.abort(), timeoutMs);
|
|
354
|
+
try {
|
|
355
|
+
const res = await fetchFn(url, { method: 'GET', headers: { 'X-CLI-Token': token }, signal: ac.signal });
|
|
356
|
+
if (!res.ok)
|
|
357
|
+
return { ok: false, why: `http ${res.status}` };
|
|
358
|
+
const body = (await res.json());
|
|
359
|
+
if (body?.status !== 'active' && body?.status !== 'cancelled') {
|
|
360
|
+
return { ok: false, why: `status=${typeof body?.status === 'string' ? body.status : 'invalid'}` };
|
|
361
|
+
}
|
|
362
|
+
const ttl = typeof body.ttl_sec === 'number' && Number.isFinite(body.ttl_sec) && body.ttl_sec > 0 ? body.ttl_sec : exports.FLEET_ENTITLEMENT_MAX_TTL_SEC;
|
|
363
|
+
return { ok: true, status: body.status, reason: typeof body.reason === 'string' ? body.reason : null, ttl_sec: ttl };
|
|
364
|
+
}
|
|
365
|
+
catch (e) {
|
|
366
|
+
return { ok: false, why: ac.signal.aborted ? `timeout ${timeoutMs}ms` : `network: ${e.message}` };
|
|
367
|
+
}
|
|
368
|
+
finally {
|
|
369
|
+
clearTimeout(timer);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* 艦隊の資格の門。**throw しない**。キャッシュと口は範囲によらず 1 つ(判定を 2 つにしない)。
|
|
374
|
+
* 新しいキャッシュ → 網に出ずに答える。古い/無い → 口を 1 回(5 秒で打ち切り)。
|
|
375
|
+
* active/cancelled が返れば書いて答える。それ以外は前回の答え(無ければ通す)。
|
|
376
|
+
*/
|
|
377
|
+
async function checkFleetGate(options = {}) {
|
|
378
|
+
const r = await decideFleetGate(options);
|
|
379
|
+
if (r.from !== 'cache' && options.logPath !== null) {
|
|
380
|
+
appendFleetGateLog(options.logPath ?? getFleetGateLogPath(), formatFleetGateLogLine((options.now ?? Date.now)(), options.caller ?? 'unknown', r));
|
|
381
|
+
}
|
|
382
|
+
return r;
|
|
383
|
+
}
|
|
384
|
+
async function decideFleetGate(options) {
|
|
385
|
+
const scope = options.scope ?? 'fleet';
|
|
386
|
+
const nowMs = (options.now ?? Date.now)();
|
|
387
|
+
const cachePath = options.cachePath ?? getFleetEntitlementFilePath();
|
|
388
|
+
const cache = readFleetCache(cachePath);
|
|
389
|
+
if (cache && isFleetEntitlementFresh(cache, nowMs))
|
|
390
|
+
return fromCache(cache, 'cache', scope);
|
|
391
|
+
const fallback = (why) => cache ? fromCache(cache, 'stale', scope) : { allowed: true, status: 'unknown', reason: why, from: 'none' };
|
|
392
|
+
let token;
|
|
393
|
+
try {
|
|
394
|
+
token = (options.readToken ?? tryReadCliToken)();
|
|
395
|
+
}
|
|
396
|
+
catch {
|
|
397
|
+
token = null;
|
|
398
|
+
}
|
|
399
|
+
if (!token)
|
|
400
|
+
return fallback('no cli token');
|
|
401
|
+
const fetchFn = options.fetch ?? globalThis.fetch;
|
|
402
|
+
if (typeof fetchFn !== 'function')
|
|
403
|
+
return fallback('fetch unavailable');
|
|
404
|
+
const base = (options.baseUrl ?? (process.env.BLUELAMP_PORTAL_API_BASE_URL || FLEET_DEFAULT_BASE)).replace(/\/+$/, '');
|
|
405
|
+
const asked = await askFleetEntitlement(`${base}/cli/fleet-entitlement`, token, fetchFn, options.timeoutMs ?? FLEET_GATE_TIMEOUT_MS);
|
|
406
|
+
if (!asked.ok)
|
|
407
|
+
return fallback(asked.why);
|
|
408
|
+
writeFleetCache(cachePath, {
|
|
409
|
+
status: asked.status,
|
|
410
|
+
reason: asked.reason,
|
|
411
|
+
checked_at: new Date(nowMs).toISOString(),
|
|
412
|
+
ttl_sec: asked.ttl_sec,
|
|
413
|
+
});
|
|
414
|
+
return { allowed: isAllowedForScope(asked.status, asked.reason, scope), status: asked.status, reason: asked.reason, from: 'network' };
|
|
415
|
+
}
|
|
242
416
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBH,4CAEC;AAOD,0DAEC;AAuDD,wCAKC;AAGD,wCAOC;AAGD,oCAOC;AAGD,kDAEC;AAQD,4CAuBC;AAMD,0CAMC;AAGD,0CAUC;AAGD,0CAiBC;AAGD,8CAKC;AAOD,kEAgBC;AA+CD,8CAGC;AAiCD,kEAEC;AAGD,kDAEC;AAQD,wDAEC;AAqBD,0DAEC;AAGD,gEAiBC;AAGD,0DAIC;AAwDD,wCASC;AAjbD,6CAAwF;AACxF,4CAA8B;AAC9B,4CAA8B;AAC9B,gDAAkC;AAElC,MAAM,SAAS,GAAG,aAAa,CAAC;AAChC,MAAM,QAAQ,GAAG,MAAM,CAAC;AACxB,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,yCAAyC;AACzC,oCAAoC;AACpC,kEAAkE;AAClE,MAAM,MAAM,GAAG,qCAAqC,CAAC;AAErD,wDAAwD;AACxD,SAAgB,gBAAgB;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;AAChE,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;AAClE,CAAC;AAyBD;;;;;;;;;;;GAWG;AACH,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,MAAe;QACzB,KAAK,CACH,kDAAkD;YAChD,2BAA2B;YAC3B,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACrC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AATD,sDASC;AAED,SAAS,UAAU;IACjB,OAAO,IAAA,wBAAU,EAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAClD,CAAC;AAED,6DAA6D;AAE7D,iDAAiD;AACjD,SAAgB,cAAc,CAAC,KAAa;IAC1C,MAAM,EAAE,GAAG,IAAA,yBAAW,EAAC,EAAE,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAA,4BAAc,EAAC,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5E,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;AAC9C,CAAC;AAED,sDAAsD;AACtD,SAAgB,cAAc,CAAC,SAAiB;IAC9C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,QAAQ,GAAG,IAAA,8BAAgB,EAAC,SAAS,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACzF,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC3E,CAAC;AAED,uDAAuD;AACvD,SAAgB,YAAY,CAAC,aAAqB;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAwB,CAAC;QAChE,OAAO,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,qBAAqB;AACrB,SAAgB,mBAAmB,CAAC,KAAc;IAChD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAED,6EAA6E;AAE7E;;;GAGG;AACH,SAAgB,gBAAgB;IAC9B,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,qBAAqB,CAAC,GAAG,QAAQ,YAAY,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,qBAAqB,CAAC,gBAAiB,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,KAAoB,CAAC;IACzB,IAAI,CAAC;QACH,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,qBAAqB,CAAC,mBAAoB,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,qBAAqB,CAAC,qCAAqC,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe;IAC7B,IAAI,CAAC;QACH,OAAO,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,oDAAoD;AACpD,SAAgB,eAAe;IAC7B,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAA6B,CAAC;IACvG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAuB,CAAC;AACjC,CAAC;AAED,yCAAyC;AACzC,SAAgB,eAAe,CAAC,KAAa,EAAE,WAA2B,EAAE;IAC1E,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,SAAS,GAAoB;QACjC,KAAK;QACL,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;QACnB,QAAQ;QACR,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,QAAQ;KACjB,CAAC;IACF,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,+CAA+C;AAC/C,SAAgB,iBAAiB;IAC/B,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,2BAA2B;IACzC,MAAM,QAAQ,GAAG,uBAAuB,EAAE,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,uBAAwB,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,QAAQ,GAAI,MAAyC,EAAE,SAAS,CAAC;IACvE,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,sCAAsC,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AA2CD,mFAAmF;AACtE,QAAA,4BAA4B,GAAsB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;AAE7F,yCAAyC;AACzC,SAAgB,iBAAiB,CAAC,MAA8B,EAAE,MAAqB,EAAE,KAAqB;IAC5G,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IACxC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,oCAA4B,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChG,CAAC;AA0BD,0DAA0D;AAC7C,QAAA,6BAA6B,GAAG,MAAM,CAAC;AACpD,MAAM,qBAAqB,GAAG,KAAK,CAAC;AACpC,kFAAkF;AAClF,MAAM,kBAAkB,GAAG,oCAAoC,CAAC;AAEhE,+CAA+C;AAC/C,SAAgB,2BAA2B;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,wBAAwB,CAAC,CAAC;AACxE,CAAC;AAED,qEAAqE;AACrE,SAAgB,mBAAmB;IACjC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;AAChE,CAAC;AAED,yCAAyC;AAC5B,QAAA,wBAAwB,GAAG,SAAS,CAAC;AAElD;;GAEG;AACH,SAAgB,sBAAsB,CAAC,KAAa,EAAE,MAAc,EAAE,CAAkB;IACtF,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;AAChI,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe,EAAE,IAAY;IACvD,IAAI,CAAC;QACH,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACjC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,gCAAwB,EAAE,CAAC;YACzD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAwB,GAAG,CAAC,CAAC,CAAC;YAClE,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACpC,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,aAAa;YACtD,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;YAC5C,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3C,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,+BAA+B;IACjC,CAAC;AACH,CAAC;AAED,0CAA0C;AAC1C,SAAgB,uBAAuB,CAAC,MAAqB;IAC3D,OAAO,kBAAkB,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC;AACjF,CAAC;AAED,8CAA8C;AAC9C,SAAgB,0BAA0B,CAAC,GAAW;IACpD,IAAI,CAAU,CAAC;IACf,IAAI,CAAC;QACH,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,GAAG,CAA0C,CAAC;IACrD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3E,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChG,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qCAA6B,CAAC;IACrI,OAAO;QACL,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;QACtD,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,OAAO,EAAE,GAAG;KACb,CAAC;AACJ,CAAC;AAED,2CAA2C;AAC3C,SAAgB,uBAAuB,CAAC,KAA4B,EAAE,KAAa;IACjF,MAAM,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,qCAA6B,CAAC,GAAG,IAAI,CAAC;IAC5E,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC;AACjC,CAAC;AAED,SAAS,SAAS,CAAC,KAA4B,EAAE,IAAuB,EAAE,KAAqB;IAC7F,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;AAC7H,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,IAAI,CAAC;QACH,OAAO,0BAA0B,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB,EAAE,KAA4B;IACrE,IAAI,CAAC;QACH,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;QAC7C,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACpD,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,sCAAsC;IACxC,CAAC;AACH,CAAC;AAID,KAAK,UAAU,mBAAmB,CAChC,GAAW,EACX,KAAa,EACb,OAAqB,EACrB,SAAiB;IAEjB,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QACxG,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;QAC7D,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAqE,CAAC;QACpG,IAAI,IAAI,EAAE,MAAM,KAAK,QAAQ,IAAI,IAAI,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;YAC9D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,OAAO,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC;QACpG,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,qCAA6B,CAAC;QACjJ,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IACvH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,SAAS,IAAI,CAAC,CAAC,CAAC,YAAa,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC;IAC/G,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,cAAc,CAAC,UAA4B,EAAE;IACjE,MAAM,CAAC,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACnD,kBAAkB,CAChB,OAAO,CAAC,OAAO,IAAI,mBAAmB,EAAE,EACxC,sBAAsB,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC,CACpF,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAAyB;IACtD,MAAM,KAAK,GAAmB,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC;IACvD,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,2BAA2B,EAAE,CAAC;IACrE,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,KAAK,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAE5F,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAmB,EAAE,CAChD,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAE7G,IAAI,KAAoB,CAAC;IACzB,IAAI,CAAC;QACH,KAAK,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,eAAe,CAAC,EAAE,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,IAAI,CAAC;IACf,CAAC;IACD,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IAClD,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,OAAO,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACxE,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACvH,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,GAAG,IAAI,wBAAwB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,IAAI,qBAAqB,CAAC,CAAC;IACrI,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE1C,eAAe,CAAC,SAAS,EAAE;QACzB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,UAAU,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;QACzC,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACxI,CAAC"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -85,4 +85,79 @@ export declare function deletePortalToken(): void;
|
|
|
85
85
|
* (宣言を置いた機体で pin 無しのトークンが生まれるのが、この仕組みが塞ぐ穴そのもの)。
|
|
86
86
|
*/
|
|
87
87
|
export declare function readPinnedTenantDeclaration(): string | null;
|
|
88
|
+
/** サーバの答え。unknown は「サーバが決められない」 */
|
|
89
|
+
export type FleetEntitlementStatus = 'active' | 'cancelled' | 'unknown';
|
|
90
|
+
/** キャッシュ 1 ファイルの形(値の秘密なし)。書くのは active/cancelled だけ */
|
|
91
|
+
export interface FleetEntitlementCache {
|
|
92
|
+
status: 'active' | 'cancelled';
|
|
93
|
+
reason: string | null;
|
|
94
|
+
/** この機体が答えを受け取った時刻(ISO 8601)。鮮度はこの時刻から測る */
|
|
95
|
+
checked_at: string;
|
|
96
|
+
ttl_sec: number;
|
|
97
|
+
}
|
|
98
|
+
export interface FleetGateResult {
|
|
99
|
+
/** false は `cancelled` のときだけ(scope=member では no_seat・rank_below_min の cancelled も true) */
|
|
100
|
+
allowed: boolean;
|
|
101
|
+
status: FleetEntitlementStatus;
|
|
102
|
+
reason: string | null;
|
|
103
|
+
/** cache=新しいキャッシュ/network=いま聞いた/stale=聞けず古いキャッシュ/none=聞けずキャッシュも無い */
|
|
104
|
+
from: 'cache' | 'network' | 'stale' | 'none';
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* 門の範囲(判定は 1 つ・止め方だけ 2 つ)。
|
|
108
|
+
* - fleet: 艦隊(皆伝)の手足=orchestrator の spawn・scheduler の発火。cancelled なら止める
|
|
109
|
+
* - member: 初伝(rank 1〜)にも配る手足=routine。席が皆伝に届かないだけ(no_seat・rank_below_min)では止めず、
|
|
110
|
+
* 席が丸ごと落ちた・退会・期限切れ(それ以外の cancelled)の時だけ止める
|
|
111
|
+
*/
|
|
112
|
+
export type FleetGateScope = 'fleet' | 'member';
|
|
113
|
+
/** member の範囲では止めない cancelled の理由(サーバの語・席 A の services/fleetEntitlement.ts が正本) */
|
|
114
|
+
export declare const MEMBER_SCOPE_ALLOWED_REASONS: readonly string[];
|
|
115
|
+
/** 範囲ごとの「通すか」(純関数)。止めるのは cancelled だけ */
|
|
116
|
+
export declare function isAllowedForScope(status: FleetEntitlementStatus, reason: string | null, scope: FleetGateScope): boolean;
|
|
117
|
+
/** 門を呼んだ手足(fleet-gate.log の呼び手の欄) */
|
|
118
|
+
export type FleetGateCaller = 'orchestrator' | 'scheduler' | 'routine' | 'server';
|
|
119
|
+
export interface FleetGateOptions {
|
|
120
|
+
/** 既定 "fleet" */
|
|
121
|
+
scope?: FleetGateScope;
|
|
122
|
+
/** 呼び手。網に出た回の fleet-gate.log の 1 行に載る(省略は "unknown") */
|
|
123
|
+
caller?: FleetGateCaller;
|
|
124
|
+
/** 既定 getFleetGateLogPath()。null で書かない */
|
|
125
|
+
logPath?: string | null;
|
|
126
|
+
/** 既定 Date.now */
|
|
127
|
+
now?: () => number;
|
|
128
|
+
/** 既定 globalThis.fetch */
|
|
129
|
+
fetch?: typeof fetch;
|
|
130
|
+
/** 既定 tryReadCliToken(読めなければ網に出ない=前回の答え) */
|
|
131
|
+
readToken?: () => string | null;
|
|
132
|
+
/** 既定 getFleetEntitlementFilePath() */
|
|
133
|
+
cachePath?: string;
|
|
134
|
+
/** 既定 BLUELAMP_PORTAL_API_BASE_URL(/api/bluelamp まで含む)→ 無ければ本番 */
|
|
135
|
+
baseUrl?: string;
|
|
136
|
+
/** 既定 5000 */
|
|
137
|
+
timeoutMs?: number;
|
|
138
|
+
}
|
|
139
|
+
/** 猶予の上限(24 時間)。サーバの ttl_sec がこれより長くてもここで切る(線を変えるのは主君) */
|
|
140
|
+
export declare const FLEET_ENTITLEMENT_MAX_TTL_SEC = 86400;
|
|
141
|
+
/** キャッシュの置き場。テストで HOME を差し替えられるよう呼び出し時に解決する */
|
|
142
|
+
export declare function getFleetEntitlementFilePath(): string;
|
|
143
|
+
/** 網に出た回だけ 1 行ずつ追記するログ(門の呼び出しを数える)。テストで HOME を差し替えられるよう呼び出し時に解決する */
|
|
144
|
+
export declare function getFleetGateLogPath(): string;
|
|
145
|
+
/** fleet-gate.log がこれを超えたら新しい側の半分に詰める */
|
|
146
|
+
export declare const FLEET_GATE_LOG_MAX_BYTES = 1048576;
|
|
147
|
+
/**
|
|
148
|
+
* fleet-gate.log の 1 行(純関数)。⛔ トークン・URL は載せない(時刻・呼び手・from・status・reason だけ)
|
|
149
|
+
*/
|
|
150
|
+
export declare function formatFleetGateLogLine(nowMs: number, caller: string, r: FleetGateResult): string;
|
|
151
|
+
/** 止めた時の文面(固定・席の起動バナーと艦隊オフィスの頭に同じ文を出す) */
|
|
152
|
+
export declare function fleetGateRefusalMessage(reason: string | null): string;
|
|
153
|
+
/** キャッシュの中身を検める(純関数)。形が違えば null=キャッシュ無しと同じ */
|
|
154
|
+
export declare function parseFleetEntitlementCache(raw: string): FleetEntitlementCache | null;
|
|
155
|
+
/** キャッシュが新しいか(純関数)。未来の時刻(時計の巻き戻り)は古いと読む */
|
|
156
|
+
export declare function isFleetEntitlementFresh(cache: FleetEntitlementCache, nowMs: number): boolean;
|
|
157
|
+
/**
|
|
158
|
+
* 艦隊の資格の門。**throw しない**。キャッシュと口は範囲によらず 1 つ(判定を 2 つにしない)。
|
|
159
|
+
* 新しいキャッシュ → 網に出ずに答える。古い/無い → 口を 1 回(5 秒で打ち切り)。
|
|
160
|
+
* active/cancelled が返れば書いて答える。それ以外は前回の答え(無ければ通す)。
|
|
161
|
+
*/
|
|
162
|
+
export declare function checkFleetGate(options?: FleetGateOptions): Promise<FleetGateResult>;
|
|
88
163
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAgBH,wDAAwD;AACxD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,MAAM,CAAC,EAAE,MAAM;CAQ5B;AAQD,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED,sDAAsD;AACtD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOxD;AAED,uDAAuD;AACvD,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOjE;AAED,qBAAqB;AACrB,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEnE;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAuBzC;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAM/C;AAED,oDAAoD;AACpD,wBAAgB,eAAe,IAAI,eAAe,GAAG,IAAI,CAUxD;AAED,yCAAyC;AACzC,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,cAAmB,GAAG,IAAI,CAiBlF;AAED,+CAA+C;AAC/C,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,GAAG,IAAI,CAgB3D"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -190,4 +190,170 @@ export function readPinnedTenantDeclaration() {
|
|
|
190
190
|
}
|
|
191
191
|
return tenantId;
|
|
192
192
|
}
|
|
193
|
+
/** member の範囲では止めない cancelled の理由(サーバの語・席 A の services/fleetEntitlement.ts が正本) */
|
|
194
|
+
export const MEMBER_SCOPE_ALLOWED_REASONS = ['no_seat', 'rank_below_min'];
|
|
195
|
+
/** 範囲ごとの「通すか」(純関数)。止めるのは cancelled だけ */
|
|
196
|
+
export function isAllowedForScope(status, reason, scope) {
|
|
197
|
+
if (status !== 'cancelled')
|
|
198
|
+
return true;
|
|
199
|
+
return scope === 'member' && reason !== null && MEMBER_SCOPE_ALLOWED_REASONS.includes(reason);
|
|
200
|
+
}
|
|
201
|
+
/** 猶予の上限(24 時間)。サーバの ttl_sec がこれより長くてもここで切る(線を変えるのは主君) */
|
|
202
|
+
export const FLEET_ENTITLEMENT_MAX_TTL_SEC = 86_400;
|
|
203
|
+
const FLEET_GATE_TIMEOUT_MS = 5_000;
|
|
204
|
+
// 3 つの MCP(backend-client / yashiro-client / ledger-auth)と同じ既定=/api/bluelamp まで含む
|
|
205
|
+
const FLEET_DEFAULT_BASE = 'https://api.motohi.jp/api/bluelamp';
|
|
206
|
+
/** キャッシュの置き場。テストで HOME を差し替えられるよう呼び出し時に解決する */
|
|
207
|
+
export function getFleetEntitlementFilePath() {
|
|
208
|
+
return path.join(os.homedir(), '.bluelamp', 'fleet-entitlement.json');
|
|
209
|
+
}
|
|
210
|
+
/** 網に出た回だけ 1 行ずつ追記するログ(門の呼び出しを数える)。テストで HOME を差し替えられるよう呼び出し時に解決する */
|
|
211
|
+
export function getFleetGateLogPath() {
|
|
212
|
+
return path.join(os.homedir(), '.bluelamp', 'fleet-gate.log');
|
|
213
|
+
}
|
|
214
|
+
/** fleet-gate.log がこれを超えたら新しい側の半分に詰める */
|
|
215
|
+
export const FLEET_GATE_LOG_MAX_BYTES = 1_048_576;
|
|
216
|
+
/**
|
|
217
|
+
* fleet-gate.log の 1 行(純関数)。⛔ トークン・URL は載せない(時刻・呼び手・from・status・reason だけ)
|
|
218
|
+
*/
|
|
219
|
+
export function formatFleetGateLogLine(nowMs, caller, r) {
|
|
220
|
+
return JSON.stringify({ ts: new Date(nowMs).toISOString(), caller, from: r.from, status: r.status, reason: r.reason }) + '\n';
|
|
221
|
+
}
|
|
222
|
+
function appendFleetGateLog(logPath, line) {
|
|
223
|
+
try {
|
|
224
|
+
fs.mkdirSync(path.dirname(logPath), { recursive: true });
|
|
225
|
+
fs.appendFileSync(logPath, line);
|
|
226
|
+
if (fs.statSync(logPath).size > FLEET_GATE_LOG_MAX_BYTES) {
|
|
227
|
+
const buf = fs.readFileSync(logPath);
|
|
228
|
+
let start = buf.length - Math.floor(FLEET_GATE_LOG_MAX_BYTES / 2);
|
|
229
|
+
const nl = buf.indexOf(0x0a, start);
|
|
230
|
+
start = nl === -1 ? buf.length : nl + 1; // 行の途中から始めない
|
|
231
|
+
const tmp = `${logPath}.${process.pid}.tmp`;
|
|
232
|
+
fs.writeFileSync(tmp, buf.subarray(start));
|
|
233
|
+
fs.renameSync(tmp, logPath);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
catch {
|
|
237
|
+
// ログが書けなくても門の答えは返す(計器が本体を殺さない)
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
/** 止めた時の文面(固定・席の起動バナーと艦隊オフィスの頭に同じ文を出す) */
|
|
241
|
+
export function fleetGateRefusalMessage(reason) {
|
|
242
|
+
return `解約のため席を立てられません(${reason && reason.length > 0 ? reason : 'cancelled'})`;
|
|
243
|
+
}
|
|
244
|
+
/** キャッシュの中身を検める(純関数)。形が違えば null=キャッシュ無しと同じ */
|
|
245
|
+
export function parseFleetEntitlementCache(raw) {
|
|
246
|
+
let v;
|
|
247
|
+
try {
|
|
248
|
+
v = JSON.parse(raw);
|
|
249
|
+
}
|
|
250
|
+
catch {
|
|
251
|
+
return null;
|
|
252
|
+
}
|
|
253
|
+
const o = v;
|
|
254
|
+
if (!o || (o.status !== 'active' && o.status !== 'cancelled'))
|
|
255
|
+
return null;
|
|
256
|
+
if (typeof o.checked_at !== 'string' || !Number.isFinite(Date.parse(o.checked_at)))
|
|
257
|
+
return null;
|
|
258
|
+
const ttl = typeof o.ttl_sec === 'number' && Number.isFinite(o.ttl_sec) && o.ttl_sec > 0 ? o.ttl_sec : FLEET_ENTITLEMENT_MAX_TTL_SEC;
|
|
259
|
+
return {
|
|
260
|
+
status: o.status,
|
|
261
|
+
reason: typeof o.reason === 'string' ? o.reason : null,
|
|
262
|
+
checked_at: o.checked_at,
|
|
263
|
+
ttl_sec: ttl,
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
/** キャッシュが新しいか(純関数)。未来の時刻(時計の巻き戻り)は古いと読む */
|
|
267
|
+
export function isFleetEntitlementFresh(cache, nowMs) {
|
|
268
|
+
const age = nowMs - Date.parse(cache.checked_at);
|
|
269
|
+
const ttlMs = Math.min(cache.ttl_sec, FLEET_ENTITLEMENT_MAX_TTL_SEC) * 1000;
|
|
270
|
+
return age >= 0 && age < ttlMs;
|
|
271
|
+
}
|
|
272
|
+
function fromCache(cache, from, scope) {
|
|
273
|
+
return { allowed: isAllowedForScope(cache.status, cache.reason, scope), status: cache.status, reason: cache.reason, from };
|
|
274
|
+
}
|
|
275
|
+
function readFleetCache(filePath) {
|
|
276
|
+
try {
|
|
277
|
+
return parseFleetEntitlementCache(fs.readFileSync(filePath, 'utf8'));
|
|
278
|
+
}
|
|
279
|
+
catch {
|
|
280
|
+
return null;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
function writeFleetCache(filePath, cache) {
|
|
284
|
+
try {
|
|
285
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
286
|
+
const tmp = `${filePath}.${process.pid}.tmp`;
|
|
287
|
+
fs.writeFileSync(tmp, JSON.stringify(cache) + '\n');
|
|
288
|
+
fs.renameSync(tmp, filePath);
|
|
289
|
+
}
|
|
290
|
+
catch {
|
|
291
|
+
// 書けなくても今回の答えは返す(次回また聞くだけ・門で本線を落とさない)
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
async function askFleetEntitlement(url, token, fetchFn, timeoutMs) {
|
|
295
|
+
const ac = new AbortController();
|
|
296
|
+
const timer = setTimeout(() => ac.abort(), timeoutMs);
|
|
297
|
+
try {
|
|
298
|
+
const res = await fetchFn(url, { method: 'GET', headers: { 'X-CLI-Token': token }, signal: ac.signal });
|
|
299
|
+
if (!res.ok)
|
|
300
|
+
return { ok: false, why: `http ${res.status}` };
|
|
301
|
+
const body = (await res.json());
|
|
302
|
+
if (body?.status !== 'active' && body?.status !== 'cancelled') {
|
|
303
|
+
return { ok: false, why: `status=${typeof body?.status === 'string' ? body.status : 'invalid'}` };
|
|
304
|
+
}
|
|
305
|
+
const ttl = typeof body.ttl_sec === 'number' && Number.isFinite(body.ttl_sec) && body.ttl_sec > 0 ? body.ttl_sec : FLEET_ENTITLEMENT_MAX_TTL_SEC;
|
|
306
|
+
return { ok: true, status: body.status, reason: typeof body.reason === 'string' ? body.reason : null, ttl_sec: ttl };
|
|
307
|
+
}
|
|
308
|
+
catch (e) {
|
|
309
|
+
return { ok: false, why: ac.signal.aborted ? `timeout ${timeoutMs}ms` : `network: ${e.message}` };
|
|
310
|
+
}
|
|
311
|
+
finally {
|
|
312
|
+
clearTimeout(timer);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* 艦隊の資格の門。**throw しない**。キャッシュと口は範囲によらず 1 つ(判定を 2 つにしない)。
|
|
317
|
+
* 新しいキャッシュ → 網に出ずに答える。古い/無い → 口を 1 回(5 秒で打ち切り)。
|
|
318
|
+
* active/cancelled が返れば書いて答える。それ以外は前回の答え(無ければ通す)。
|
|
319
|
+
*/
|
|
320
|
+
export async function checkFleetGate(options = {}) {
|
|
321
|
+
const r = await decideFleetGate(options);
|
|
322
|
+
if (r.from !== 'cache' && options.logPath !== null) {
|
|
323
|
+
appendFleetGateLog(options.logPath ?? getFleetGateLogPath(), formatFleetGateLogLine((options.now ?? Date.now)(), options.caller ?? 'unknown', r));
|
|
324
|
+
}
|
|
325
|
+
return r;
|
|
326
|
+
}
|
|
327
|
+
async function decideFleetGate(options) {
|
|
328
|
+
const scope = options.scope ?? 'fleet';
|
|
329
|
+
const nowMs = (options.now ?? Date.now)();
|
|
330
|
+
const cachePath = options.cachePath ?? getFleetEntitlementFilePath();
|
|
331
|
+
const cache = readFleetCache(cachePath);
|
|
332
|
+
if (cache && isFleetEntitlementFresh(cache, nowMs))
|
|
333
|
+
return fromCache(cache, 'cache', scope);
|
|
334
|
+
const fallback = (why) => cache ? fromCache(cache, 'stale', scope) : { allowed: true, status: 'unknown', reason: why, from: 'none' };
|
|
335
|
+
let token;
|
|
336
|
+
try {
|
|
337
|
+
token = (options.readToken ?? tryReadCliToken)();
|
|
338
|
+
}
|
|
339
|
+
catch {
|
|
340
|
+
token = null;
|
|
341
|
+
}
|
|
342
|
+
if (!token)
|
|
343
|
+
return fallback('no cli token');
|
|
344
|
+
const fetchFn = options.fetch ?? globalThis.fetch;
|
|
345
|
+
if (typeof fetchFn !== 'function')
|
|
346
|
+
return fallback('fetch unavailable');
|
|
347
|
+
const base = (options.baseUrl ?? (process.env.BLUELAMP_PORTAL_API_BASE_URL || FLEET_DEFAULT_BASE)).replace(/\/+$/, '');
|
|
348
|
+
const asked = await askFleetEntitlement(`${base}/cli/fleet-entitlement`, token, fetchFn, options.timeoutMs ?? FLEET_GATE_TIMEOUT_MS);
|
|
349
|
+
if (!asked.ok)
|
|
350
|
+
return fallback(asked.why);
|
|
351
|
+
writeFleetCache(cachePath, {
|
|
352
|
+
status: asked.status,
|
|
353
|
+
reason: asked.reason,
|
|
354
|
+
checked_at: new Date(nowMs).toISOString(),
|
|
355
|
+
ttl_sec: asked.ttl_sec,
|
|
356
|
+
});
|
|
357
|
+
return { allowed: isAllowedForScope(asked.status, asked.reason, scope), status: asked.status, reason: asked.reason, from: 'network' };
|
|
358
|
+
}
|
|
193
359
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,SAAS,GAAG,aAAa,CAAC;AAChC,MAAM,QAAQ,GAAG,MAAM,CAAC;AACxB,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,yCAAyC;AACzC,oCAAoC;AACpC,kEAAkE;AAClE,MAAM,MAAM,GAAG,qCAAqC,CAAC;AAErD,wDAAwD;AACxD,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;AAChE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;AAClE,CAAC;AAyBD;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,MAAe;QACzB,KAAK,CACH,kDAAkD;YAChD,2BAA2B;YAC3B,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACrC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,SAAS,UAAU;IACjB,OAAO,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAClD,CAAC;AAED,6DAA6D;AAE7D,iDAAiD;AACjD,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5E,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;AAC9C,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACzF,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC3E,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,YAAY,CAAC,aAAqB;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAwB,CAAC;QAChE,OAAO,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,qBAAqB;AACrB,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAED,6EAA6E;AAE7E;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,qBAAqB,CAAC,GAAG,QAAQ,YAAY,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,qBAAqB,CAAC,gBAAiB,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,KAAoB,CAAC;IACzB,IAAI,CAAC;QACH,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,qBAAqB,CAAC,mBAAoB,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,qBAAqB,CAAC,qCAAqC,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC;QACH,OAAO,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,eAAe;IAC7B,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAA6B,CAAC;IACvG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAuB,CAAC;AACjC,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,WAA2B,EAAE;IAC1E,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,SAAS,GAAoB;QACjC,KAAK;QACL,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;QACnB,QAAQ;QACR,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,QAAQ;KACjB,CAAC;IACF,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,iBAAiB;IAC/B,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B;IACzC,MAAM,QAAQ,GAAG,uBAAuB,EAAE,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,uBAAwB,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,QAAQ,GAAI,MAAyC,EAAE,SAAS,CAAC;IACvE,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,sCAAsC,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AA2CD,mFAAmF;AACnF,MAAM,CAAC,MAAM,4BAA4B,GAAsB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;AAE7F,yCAAyC;AACzC,MAAM,UAAU,iBAAiB,CAAC,MAA8B,EAAE,MAAqB,EAAE,KAAqB;IAC5G,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IACxC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,4BAA4B,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChG,CAAC;AA0BD,0DAA0D;AAC1D,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC;AACpD,MAAM,qBAAqB,GAAG,KAAK,CAAC;AACpC,kFAAkF;AAClF,MAAM,kBAAkB,GAAG,oCAAoC,CAAC;AAEhE,+CAA+C;AAC/C,MAAM,UAAU,2BAA2B;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,wBAAwB,CAAC,CAAC;AACxE,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;AAChE,CAAC;AAED,yCAAyC;AACzC,MAAM,CAAC,MAAM,wBAAwB,GAAG,SAAS,CAAC;AAElD;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa,EAAE,MAAc,EAAE,CAAkB;IACtF,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;AAChI,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe,EAAE,IAAY;IACvD,IAAI,CAAC;QACH,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACjC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,wBAAwB,EAAE,CAAC;YACzD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,GAAG,CAAC,CAAC,CAAC;YAClE,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACpC,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,aAAa;YACtD,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;YAC5C,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3C,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,+BAA+B;IACjC,CAAC;AACH,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,uBAAuB,CAAC,MAAqB;IAC3D,OAAO,kBAAkB,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC;AACjF,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,0BAA0B,CAAC,GAAW;IACpD,IAAI,CAAU,CAAC;IACf,IAAI,CAAC;QACH,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,GAAG,CAA0C,CAAC;IACrD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3E,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChG,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC;IACrI,OAAO;QACL,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;QACtD,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,OAAO,EAAE,GAAG;KACb,CAAC;AACJ,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,uBAAuB,CAAC,KAA4B,EAAE,KAAa;IACjF,MAAM,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,6BAA6B,CAAC,GAAG,IAAI,CAAC;IAC5E,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC;AACjC,CAAC;AAED,SAAS,SAAS,CAAC,KAA4B,EAAE,IAAuB,EAAE,KAAqB;IAC7F,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;AAC7H,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,IAAI,CAAC;QACH,OAAO,0BAA0B,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB,EAAE,KAA4B;IACrE,IAAI,CAAC;QACH,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;QAC7C,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACpD,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,sCAAsC;IACxC,CAAC;AACH,CAAC;AAID,KAAK,UAAU,mBAAmB,CAChC,GAAW,EACX,KAAa,EACb,OAAqB,EACrB,SAAiB;IAEjB,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QACxG,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;QAC7D,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAqE,CAAC;QACpG,IAAI,IAAI,EAAE,MAAM,KAAK,QAAQ,IAAI,IAAI,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;YAC9D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,OAAO,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC;QACpG,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC;QACjJ,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IACvH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,SAAS,IAAI,CAAC,CAAC,CAAC,YAAa,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC;IAC/G,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAA4B,EAAE;IACjE,MAAM,CAAC,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACnD,kBAAkB,CAChB,OAAO,CAAC,OAAO,IAAI,mBAAmB,EAAE,EACxC,sBAAsB,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC,CACpF,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAAyB;IACtD,MAAM,KAAK,GAAmB,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC;IACvD,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,2BAA2B,EAAE,CAAC;IACrE,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,KAAK,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAE5F,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAmB,EAAE,CAChD,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAE7G,IAAI,KAAoB,CAAC;IACzB,IAAI,CAAC;QACH,KAAK,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,eAAe,CAAC,EAAE,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,IAAI,CAAC;IACf,CAAC;IACD,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IAClD,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,OAAO,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACxE,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACvH,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,GAAG,IAAI,wBAAwB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,IAAI,qBAAqB,CAAC,CAAC;IACrI,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE1C,eAAe,CAAC,SAAS,EAAE;QACzB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,UAAU,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;QACzC,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACxI,CAAC"}
|