@monotykamary/localterm-server 2.66.8 → 2.66.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/dist/agent-git-status.d.ts +3 -0
- package/dist/agent-git-status.d.ts.map +1 -0
- package/dist/agent-git-status.js +46 -0
- package/dist/agent-git-status.js.map +1 -0
- package/dist/agent-log-utils.d.ts +18 -0
- package/dist/agent-log-utils.d.ts.map +1 -0
- package/dist/agent-log-utils.js +123 -0
- package/dist/agent-log-utils.js.map +1 -0
- package/dist/agent-models.d.ts +4 -0
- package/dist/agent-models.d.ts.map +1 -0
- package/dist/agent-models.js +100 -0
- package/dist/agent-models.js.map +1 -0
- package/dist/agent-runner.d.ts +3 -5
- package/dist/agent-runner.d.ts.map +1 -1
- package/dist/agent-runner.js +8 -522
- package/dist/agent-runner.js.map +1 -1
- package/dist/agent-session-reader.d.ts +3 -0
- package/dist/agent-session-reader.d.ts.map +1 -0
- package/dist/agent-session-reader.js +113 -0
- package/dist/agent-session-reader.js.map +1 -0
- package/dist/build-pty-environment.d.ts +8 -0
- package/dist/build-pty-environment.d.ts.map +1 -0
- package/dist/build-pty-environment.js +44 -0
- package/dist/build-pty-environment.js.map +1 -0
- package/dist/caffeinate-automatic-detector.d.ts +57 -0
- package/dist/caffeinate-automatic-detector.d.ts.map +1 -0
- package/dist/caffeinate-automatic-detector.js +275 -0
- package/dist/caffeinate-automatic-detector.js.map +1 -0
- package/dist/caffeinate-battery-guard.d.ts +35 -0
- package/dist/caffeinate-battery-guard.d.ts.map +1 -0
- package/dist/caffeinate-battery-guard.js +190 -0
- package/dist/caffeinate-battery-guard.js.map +1 -0
- package/dist/caffeinate-manager.d.ts +5 -31
- package/dist/caffeinate-manager.d.ts.map +1 -1
- package/dist/caffeinate-manager.js +55 -400
- package/dist/caffeinate-manager.js.map +1 -1
- package/dist/cdp/cdp-client.d.ts +4 -70
- package/dist/cdp/cdp-client.d.ts.map +1 -1
- package/dist/cdp/cdp-client.js +58 -418
- package/dist/cdp/cdp-client.js.map +1 -1
- package/dist/cdp/cdp-connection.d.ts +72 -0
- package/dist/cdp/cdp-connection.d.ts.map +1 -0
- package/dist/cdp/cdp-connection.js +272 -0
- package/dist/cdp/cdp-connection.js.map +1 -0
- package/dist/cdp/constants.d.ts +6 -0
- package/dist/cdp/constants.d.ts.map +1 -0
- package/dist/cdp/constants.js +9 -0
- package/dist/cdp/constants.js.map +1 -0
- package/dist/cdp/target-registry.d.ts +41 -0
- package/dist/cdp/target-registry.d.ts.map +1 -0
- package/dist/cdp/target-registry.js +118 -0
- package/dist/cdp/target-registry.js.map +1 -0
- package/dist/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -0
- package/dist/constants.js.map +1 -1
- package/dist/git-branch-metadata.d.ts +11 -0
- package/dist/git-branch-metadata.d.ts.map +1 -0
- package/dist/git-branch-metadata.js +85 -0
- package/dist/git-branch-metadata.js.map +1 -0
- package/dist/git-diff-cache.d.ts +13 -0
- package/dist/git-diff-cache.d.ts.map +1 -0
- package/dist/git-diff-cache.js +32 -0
- package/dist/git-diff-cache.js.map +1 -0
- package/dist/git-diff-parser.d.ts +15 -0
- package/dist/git-diff-parser.d.ts.map +1 -0
- package/dist/git-diff-parser.js +196 -0
- package/dist/git-diff-parser.js.map +1 -0
- package/dist/git-diff-service.d.ts +10 -0
- package/dist/git-diff-service.d.ts.map +1 -0
- package/dist/git-diff-service.js +395 -0
- package/dist/git-diff-service.js.map +1 -0
- package/dist/git-diff.d.ts +8 -41
- package/dist/git-diff.d.ts.map +1 -1
- package/dist/git-diff.js +5 -944
- package/dist/git-diff.js.map +1 -1
- package/dist/github-pr.d.ts +32 -0
- package/dist/github-pr.d.ts.map +1 -0
- package/dist/github-pr.js +266 -0
- package/dist/github-pr.js.map +1 -0
- package/dist/pi-binary-resolver.d.ts +6 -0
- package/dist/pi-binary-resolver.d.ts.map +1 -0
- package/dist/pi-binary-resolver.js +70 -0
- package/dist/pi-binary-resolver.js.map +1 -0
- package/dist/pi-rpc-client.d.ts +14 -0
- package/dist/pi-rpc-client.d.ts.map +1 -0
- package/dist/pi-rpc-client.js +87 -0
- package/dist/pi-rpc-client.js.map +1 -0
- package/dist/session-client-hub.d.ts +57 -0
- package/dist/session-client-hub.d.ts.map +1 -0
- package/dist/session-client-hub.js +435 -0
- package/dist/session-client-hub.js.map +1 -0
- package/dist/session-command-executor.d.ts +14 -0
- package/dist/session-command-executor.d.ts.map +1 -0
- package/dist/session-command-executor.js +207 -0
- package/dist/session-command-executor.js.map +1 -0
- package/dist/session-git-event-bridge.d.ts +16 -0
- package/dist/session-git-event-bridge.d.ts.map +1 -0
- package/dist/session-git-event-bridge.js +56 -0
- package/dist/session-git-event-bridge.js.map +1 -0
- package/dist/session-lifecycle-policy.d.ts +15 -0
- package/dist/session-lifecycle-policy.d.ts.map +1 -0
- package/dist/session-lifecycle-policy.js +105 -0
- package/dist/session-lifecycle-policy.js.map +1 -0
- package/dist/session-manager.d.ts +11 -42
- package/dist/session-manager.d.ts.map +1 -1
- package/dist/session-manager.js +72 -987
- package/dist/session-manager.js.map +1 -1
- package/dist/session-output-coordinator.d.ts +21 -0
- package/dist/session-output-coordinator.d.ts.map +1 -0
- package/dist/session-output-coordinator.js +134 -0
- package/dist/session-output-coordinator.js.map +1 -0
- package/dist/session-output-transport.d.ts +22 -0
- package/dist/session-output-transport.d.ts.map +1 -0
- package/dist/session-output-transport.js +160 -0
- package/dist/session-output-transport.js.map +1 -0
- package/dist/session.d.ts +0 -4
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +11 -258
- package/dist/session.js.map +1 -1
- package/dist/shell-hook-builder.d.ts +16 -0
- package/dist/shell-hook-builder.d.ts.map +1 -0
- package/dist/shell-hook-builder.js +230 -0
- package/dist/shell-hook-builder.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { CAFFEINATE_BATTERY_POLL_MAX_INTERVAL_MS, CAFFEINATE_BATTERY_POLL_MIN_INTERVAL_MS, CAFFEINATE_BATTERY_POLL_TIME_FRACTION, MS_PER_MINUTE, } from "./constants.js";
|
|
2
|
+
export class CaffeinateBatteryGuard {
|
|
3
|
+
batteryProbe;
|
|
4
|
+
getBatteryThreshold;
|
|
5
|
+
isSupported;
|
|
6
|
+
wantsActive;
|
|
7
|
+
emitChange;
|
|
8
|
+
recompute;
|
|
9
|
+
// The cached battery-suppression flag: true means the machine is on battery
|
|
10
|
+
// power at or below the configured threshold, so `recompute` suppresses
|
|
11
|
+
// caffeinate regardless of what the mode wants.
|
|
12
|
+
batteryLow = false;
|
|
13
|
+
// The most recent battery read, used to choose the next adaptive delay. Null
|
|
14
|
+
// until the first read completes (and is reset to null after a read failure
|
|
15
|
+
// so computeBatteryDelay's null branch picks MAX — fail-open retries slowly).
|
|
16
|
+
lastBatteryStatus = null;
|
|
17
|
+
// Whether performBatteryCheck has resolved at least once. Drives
|
|
18
|
+
// `needsFirstProbe` in `recompute` independently of lastBatteryStatus: a
|
|
19
|
+
// daemon that boots with the battery already below the floor never briefly
|
|
20
|
+
// spawns the power assertion before the first read suppresses it, while a
|
|
21
|
+
// later failed read (lastBatteryStatus -> null) still fail-opens instead of
|
|
22
|
+
// re-gating caffeinate off forever.
|
|
23
|
+
hasProbedBattery = false;
|
|
24
|
+
batteryTimer = null;
|
|
25
|
+
// Coalesces concurrent battery checks: callers (the timer, setBatteryThreshold,
|
|
26
|
+
// pollBatteryNow) all funnel through runBatteryCheck, which returns the same
|
|
27
|
+
// in-flight promise so they all settle on the same result without piling up
|
|
28
|
+
// battery reads — the promise-tracking analogue of pollAuto's polling flag.
|
|
29
|
+
batteryCheckInFlight = null;
|
|
30
|
+
disposed = false;
|
|
31
|
+
constructor(options) {
|
|
32
|
+
this.batteryProbe = options.batteryProbe;
|
|
33
|
+
this.getBatteryThreshold = options.getBatteryThreshold;
|
|
34
|
+
this.isSupported = options.isSupported;
|
|
35
|
+
this.wantsActive = options.wantsActive;
|
|
36
|
+
this.emitChange = options.emitChange;
|
|
37
|
+
this.recompute = options.recompute;
|
|
38
|
+
}
|
|
39
|
+
shouldActivate(wantActive) {
|
|
40
|
+
const guardApplies = this.isSupported() && this.getBatteryThreshold() !== null;
|
|
41
|
+
// While the guard is on but we've never read the battery, hold off engaging
|
|
42
|
+
// until that first read resolves — otherwise a daemon that boots with the
|
|
43
|
+
// battery already below the floor briefly spawns the power assertion before
|
|
44
|
+
// the probe suppresses it. Subsequent arms use the cached flag instead.
|
|
45
|
+
const needsFirstProbe = guardApplies && !this.hasProbedBattery;
|
|
46
|
+
const desired = wantActive && !(guardApplies && (this.batteryLow || needsFirstProbe));
|
|
47
|
+
if (wantActive && guardApplies) {
|
|
48
|
+
// Start (or keep) the adaptive battery check armed. The next delay is
|
|
49
|
+
// derived from the last status, or an immediate probe when there's no
|
|
50
|
+
// cached reading yet.
|
|
51
|
+
this.scheduleBatteryCheck(this.lastBatteryStatus);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
this.clearBatteryTimer();
|
|
55
|
+
}
|
|
56
|
+
return desired;
|
|
57
|
+
}
|
|
58
|
+
// Force an immediate battery re-check and resolve when it settles. Used by
|
|
59
|
+
// tests; production code re-checks via the adaptive timer. Awaits an already
|
|
60
|
+
// in-flight check (so concurrent test calls see the same resolved state)
|
|
61
|
+
// rather than queueing a second probe.
|
|
62
|
+
pollNow() {
|
|
63
|
+
return this.runBatteryCheck();
|
|
64
|
+
}
|
|
65
|
+
// Set the persisted battery floor. `null` disables the guard. Persists
|
|
66
|
+
// immediately (so every tab stays in lockstep via the broadcast) and re-derives
|
|
67
|
+
// suppression from a fresh read so the user sees the floor take effect at
|
|
68
|
+
// once rather than after the adaptive timer's first delay.
|
|
69
|
+
thresholdChanged(percent) {
|
|
70
|
+
// Clear any pending adaptive check so the next read re-arms with a delay
|
|
71
|
+
// derived from the new threshold (and a fresh status), not the old one.
|
|
72
|
+
this.clearBatteryTimer();
|
|
73
|
+
if (!this.isSupported() || percent === null) {
|
|
74
|
+
// Guard disabled: clear any stale suppression so it can't keep
|
|
75
|
+
// caffeinate off after the user turned the floor off.
|
|
76
|
+
this.batteryLow = false;
|
|
77
|
+
this.recompute();
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (this.wantsActive()) {
|
|
81
|
+
// Probe immediately so an already-low battery stops caffeinate at once
|
|
82
|
+
// (the adaptive arming would otherwise wait up to MAX_INTERVAL for the
|
|
83
|
+
// first read, since lastBatteryStatus is stale/null until this resolves).
|
|
84
|
+
void this.runBatteryCheck();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
dispose() {
|
|
88
|
+
this.disposed = true;
|
|
89
|
+
this.clearBatteryTimer();
|
|
90
|
+
}
|
|
91
|
+
// Single entry point for every battery probe. Coalesces concurrent callers
|
|
92
|
+
// onto one in-flight promise so the `pmset` call fires at most once per tick
|
|
93
|
+
// even if the timer, setBatteryThreshold, and a manual pollBatteryNow all race.
|
|
94
|
+
runBatteryCheck() {
|
|
95
|
+
if (this.batteryCheckInFlight !== null)
|
|
96
|
+
return this.batteryCheckInFlight;
|
|
97
|
+
const promise = this.performBatteryCheck().finally(() => {
|
|
98
|
+
if (this.batteryCheckInFlight === promise)
|
|
99
|
+
this.batteryCheckInFlight = null;
|
|
100
|
+
});
|
|
101
|
+
this.batteryCheckInFlight = promise;
|
|
102
|
+
return promise;
|
|
103
|
+
}
|
|
104
|
+
async performBatteryCheck() {
|
|
105
|
+
if (this.disposed)
|
|
106
|
+
return;
|
|
107
|
+
const threshold = this.getBatteryThreshold();
|
|
108
|
+
// Nothing to gate on: unsupported, guard disabled, or nothing wanting
|
|
109
|
+
// active. The last case keeps the design claim that reads happen only while
|
|
110
|
+
// a mode wants caffeinate active (a probe here would be wasted work and
|
|
111
|
+
// couldn't change `desired`, since `wantActive` already forces it false).
|
|
112
|
+
if (!this.isSupported() || threshold === null || !this.wantsActive()) {
|
|
113
|
+
this.clearBatteryTimer();
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
const status = await this.batteryProbe();
|
|
117
|
+
if (this.disposed)
|
|
118
|
+
return;
|
|
119
|
+
this.lastBatteryStatus = status;
|
|
120
|
+
this.hasProbedBattery = true;
|
|
121
|
+
// Fail-open on read failure (null): a missing battery or a transient pmset
|
|
122
|
+
// error cannot take keep-awake away from the user. The scheduler stays
|
|
123
|
+
// armed via the recompute below so a later successful read can re-impose
|
|
124
|
+
// the floor.
|
|
125
|
+
const nextLow = status !== null && status.isOnBattery && status.percent <= threshold;
|
|
126
|
+
if (nextLow !== this.batteryLow) {
|
|
127
|
+
this.batteryLow = nextLow;
|
|
128
|
+
this.emitChange();
|
|
129
|
+
}
|
|
130
|
+
this.recompute();
|
|
131
|
+
}
|
|
132
|
+
scheduleBatteryCheck(status) {
|
|
133
|
+
if (this.disposed)
|
|
134
|
+
return;
|
|
135
|
+
// Coalesce: if a check is already armed, let it run — it reschedules
|
|
136
|
+
// adaptively from a fresh read when it completes, so re-entry here is a no-op.
|
|
137
|
+
if (this.batteryTimer !== null)
|
|
138
|
+
return;
|
|
139
|
+
if (!this.hasProbedBattery) {
|
|
140
|
+
// Never probed: fire immediately (coalesced by runBatteryCheck) so the
|
|
141
|
+
// first arm doesn't wait MAX before applying the floor — a daemon that
|
|
142
|
+
// boots with the battery already below the threshold suppresses at once.
|
|
143
|
+
void this.runBatteryCheck();
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
// A null status here means a prior probe failed or found no battery:
|
|
147
|
+
// computeBatteryDelay maps that to MAX so we retry slowly instead of
|
|
148
|
+
// re-firing immediately and busy-looping on a persistently-failing read.
|
|
149
|
+
const delay = this.computeBatteryDelay(status);
|
|
150
|
+
this.batteryTimer = setTimeout(() => {
|
|
151
|
+
this.batteryTimer = null;
|
|
152
|
+
void this.runBatteryCheck();
|
|
153
|
+
}, delay);
|
|
154
|
+
this.batteryTimer.unref?.();
|
|
155
|
+
}
|
|
156
|
+
computeBatteryDelay(status) {
|
|
157
|
+
const threshold = this.getBatteryThreshold();
|
|
158
|
+
if (threshold === null)
|
|
159
|
+
return CAFFEINATE_BATTERY_POLL_MAX_INTERVAL_MS;
|
|
160
|
+
// Already suppressed: poll fast so charging back above the threshold or
|
|
161
|
+
// plugging in resumes promptly. Bounded by how long the machine stays
|
|
162
|
+
// below the floor — which should be short (it's about to lose power).
|
|
163
|
+
if (this.batteryLow)
|
|
164
|
+
return CAFFEINATE_BATTERY_POLL_MIN_INTERVAL_MS;
|
|
165
|
+
if (status === null || !status.isOnBattery)
|
|
166
|
+
return CAFFEINATE_BATTERY_POLL_MAX_INTERVAL_MS;
|
|
167
|
+
if (status.minutesToEmpty === null)
|
|
168
|
+
return CAFFEINATE_BATTERY_POLL_MAX_INTERVAL_MS;
|
|
169
|
+
// Half of the interpolated time-to-threshold: the OS estimate (minutes to
|
|
170
|
+
// 0%) scaled by the charge fraction still above the floor. Halving gives a
|
|
171
|
+
// 2× buffer against the EWMA lagging real discharge (and the active program
|
|
172
|
+
// draining faster than the idle minutes the average was computed over), so
|
|
173
|
+
// a stale-high estimate still catches the crossing in time rather than
|
|
174
|
+
// sleeping past it. Clamped to [MIN, MAX] below.
|
|
175
|
+
const remaining = status.percent - threshold;
|
|
176
|
+
if (remaining <= 0)
|
|
177
|
+
return CAFFEINATE_BATTERY_POLL_MIN_INTERVAL_MS;
|
|
178
|
+
const fractionAbove = remaining / status.percent;
|
|
179
|
+
const interpolatedMs = status.minutesToEmpty * MS_PER_MINUTE * fractionAbove;
|
|
180
|
+
const scheduledMs = interpolatedMs / CAFFEINATE_BATTERY_POLL_TIME_FRACTION;
|
|
181
|
+
return Math.max(CAFFEINATE_BATTERY_POLL_MIN_INTERVAL_MS, Math.min(scheduledMs, CAFFEINATE_BATTERY_POLL_MAX_INTERVAL_MS));
|
|
182
|
+
}
|
|
183
|
+
clearBatteryTimer() {
|
|
184
|
+
if (this.batteryTimer !== null) {
|
|
185
|
+
clearTimeout(this.batteryTimer);
|
|
186
|
+
this.batteryTimer = null;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=caffeinate-battery-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"caffeinate-battery-guard.js","sourceRoot":"","sources":["../src/caffeinate-battery-guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EventEmitter } from "node:events";
|
|
2
|
+
import { type BatteryProbe } from "./caffeinate-battery.js";
|
|
2
3
|
import type { CaffeinateController } from "./caffeinate-controller.js";
|
|
3
4
|
import type { CaffeinatePreferencesStore } from "./caffeinate-preferences-store.js";
|
|
4
|
-
import { type BatteryProbe } from "./caffeinate-battery.js";
|
|
5
5
|
import { type SnapshotProcesses } from "./caffeinate-process-match.js";
|
|
6
6
|
import type { CaffeinateMode } from "./types.js";
|
|
7
7
|
export interface CaffeinateManagerOptions {
|
|
@@ -21,25 +21,9 @@ interface CaffeinateManagerEvents {
|
|
|
21
21
|
export declare class CaffeinateManager extends EventEmitter<CaffeinateManagerEvents> {
|
|
22
22
|
private readonly controller;
|
|
23
23
|
private readonly store;
|
|
24
|
-
private readonly
|
|
25
|
-
private readonly
|
|
26
|
-
private readonly checkRecentOutput?;
|
|
27
|
-
private readonly hasPeerClient;
|
|
28
|
-
private readonly foregroundNames?;
|
|
29
|
-
private readonly batteryProbe;
|
|
24
|
+
private readonly automaticDetector;
|
|
25
|
+
private readonly batteryGuard;
|
|
30
26
|
readonly defaultCommands: readonly string[];
|
|
31
|
-
private autoActive;
|
|
32
|
-
private autoTrigger;
|
|
33
|
-
private autoPeerActive;
|
|
34
|
-
private pokeTimer;
|
|
35
|
-
private activityGateTimer;
|
|
36
|
-
private batteryLow;
|
|
37
|
-
private lastBatteryStatus;
|
|
38
|
-
private hasProbedBattery;
|
|
39
|
-
private batteryTimer;
|
|
40
|
-
private batteryCheckInFlight;
|
|
41
|
-
private polling;
|
|
42
|
-
private pollQueued;
|
|
43
27
|
private disposed;
|
|
44
28
|
constructor(options: CaffeinateManagerOptions);
|
|
45
29
|
get supported(): boolean;
|
|
@@ -58,21 +42,11 @@ export declare class CaffeinateManager extends EventEmitter<CaffeinateManagerEve
|
|
|
58
42
|
pokeAuto(): void;
|
|
59
43
|
noteOutputActivity(): void;
|
|
60
44
|
pollNow(): Promise<void>;
|
|
45
|
+
pollBatteryNow(): Promise<void>;
|
|
46
|
+
setBatteryThreshold(percent: number | null): void;
|
|
61
47
|
dispose(): void;
|
|
62
|
-
private triggerSet;
|
|
63
|
-
private hookTriggerFor;
|
|
64
48
|
private recompute;
|
|
65
49
|
private modeWantsActive;
|
|
66
|
-
private clearActivityGateTimer;
|
|
67
|
-
pollBatteryNow(): Promise<void>;
|
|
68
|
-
setBatteryThreshold(percent: number | null): void;
|
|
69
|
-
private runBatteryCheck;
|
|
70
|
-
private performBatteryCheck;
|
|
71
|
-
private scheduleBatteryCheck;
|
|
72
|
-
private computeBatteryDelay;
|
|
73
|
-
private clearBatteryTimer;
|
|
74
|
-
private pollAuto;
|
|
75
|
-
private armActivityGateTimerIfNeeded;
|
|
76
50
|
}
|
|
77
51
|
export {};
|
|
78
52
|
//# sourceMappingURL=caffeinate-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"caffeinate-manager.d.ts","sourceRoot":"","sources":["../src/caffeinate-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"caffeinate-manager.d.ts","sourceRoot":"","sources":["../src/caffeinate-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAA4B,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEjG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,oBAAoB,CAAC;IACjC,KAAK,EAAE,0BAA0B,CAAC;IAGlC,eAAe,EAAE,MAAM,MAAM,EAAE,CAAC;IAEhC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAEtC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAIpC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAMzE,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC;IAQ9B,eAAe,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAM5C,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,UAAU,uBAAuB;IAC/B,MAAM,EAAE,EAAE,CAAC;CACZ;AAyCD,qBAAa,iBAAkB,SAAQ,YAAY,CAAC,uBAAuB,CAAC;IAC1E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA8B;IAChE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;IACtD,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAS;IAEzB,YAAY,OAAO,EAAE,wBAAwB,EAqC5C;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,IAAI,IAAI,IAAI,cAAc,CAEzB;IAED,IAAI,QAAQ,IAAI,MAAM,EAAE,CAEvB;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,IAAI,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAEpC;IAED,IAAI,aAAa,IAAI,MAAM,GAAG,IAAI,CAEjC;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAOlC;IAED,WAAW,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAM7C;IAED,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAKtC;IAED,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAOvC;IAED,QAAQ,IAAI,IAAI,CAEf;IAED,kBAAkB,IAAI,IAAI,CAEzB;IAED,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAEvB;IAMD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAE9B;IAMD,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAKhD;IAED,OAAO,IAAI,IAAI,CAMd;IAED,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,eAAe;CAIxB"}
|