@aigne/afs-scheduler 1.12.0-beta.5
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/LICENSE.md +26 -0
- package/dist/_virtual/_@oxc-project_runtime@0.108.0/helpers/decorate.cjs +11 -0
- package/dist/_virtual/_@oxc-project_runtime@0.108.0/helpers/decorate.mjs +10 -0
- package/dist/cron-parser.cjs +202 -0
- package/dist/cron-parser.d.cts +65 -0
- package/dist/cron-parser.d.cts.map +1 -0
- package/dist/cron-parser.d.mts +65 -0
- package/dist/cron-parser.d.mts.map +1 -0
- package/dist/cron-parser.mjs +200 -0
- package/dist/cron-parser.mjs.map +1 -0
- package/dist/do-executor.cjs +59 -0
- package/dist/do-executor.d.cts +30 -0
- package/dist/do-executor.d.cts.map +1 -0
- package/dist/do-executor.d.mts +30 -0
- package/dist/do-executor.d.mts.map +1 -0
- package/dist/do-executor.mjs +59 -0
- package/dist/do-executor.mjs.map +1 -0
- package/dist/do-job-executor.cjs +53 -0
- package/dist/do-job-executor.d.cts +28 -0
- package/dist/do-job-executor.d.cts.map +1 -0
- package/dist/do-job-executor.d.mts +28 -0
- package/dist/do-job-executor.d.mts.map +1 -0
- package/dist/do-job-executor.mjs +53 -0
- package/dist/do-job-executor.mjs.map +1 -0
- package/dist/do-types.d.cts +66 -0
- package/dist/do-types.d.cts.map +1 -0
- package/dist/do-types.d.mts +66 -0
- package/dist/do-types.d.mts.map +1 -0
- package/dist/index.cjs +34 -0
- package/dist/index.d.cts +11 -0
- package/dist/index.d.mts +11 -0
- package/dist/index.mjs +11 -0
- package/dist/job-coordinator.cjs +216 -0
- package/dist/job-coordinator.d.cts +8 -0
- package/dist/job-coordinator.d.cts.map +1 -0
- package/dist/job-coordinator.d.mts +8 -0
- package/dist/job-coordinator.d.mts.map +1 -0
- package/dist/job-coordinator.mjs +216 -0
- package/dist/job-coordinator.mjs.map +1 -0
- package/dist/local-executor.cjs +25 -0
- package/dist/local-executor.d.cts +12 -0
- package/dist/local-executor.d.cts.map +1 -0
- package/dist/local-executor.d.mts +12 -0
- package/dist/local-executor.d.mts.map +1 -0
- package/dist/local-executor.mjs +25 -0
- package/dist/local-executor.mjs.map +1 -0
- package/dist/scheduler-provider.cjs +1236 -0
- package/dist/scheduler-provider.d.cts +95 -0
- package/dist/scheduler-provider.d.cts.map +1 -0
- package/dist/scheduler-provider.d.mts +95 -0
- package/dist/scheduler-provider.d.mts.map +1 -0
- package/dist/scheduler-provider.mjs +1237 -0
- package/dist/scheduler-provider.mjs.map +1 -0
- package/dist/task-runner.cjs +70 -0
- package/dist/task-runner.d.cts +25 -0
- package/dist/task-runner.d.cts.map +1 -0
- package/dist/task-runner.d.mts +25 -0
- package/dist/task-runner.d.mts.map +1 -0
- package/dist/task-runner.mjs +70 -0
- package/dist/task-runner.mjs.map +1 -0
- package/dist/task-store.cjs +186 -0
- package/dist/task-store.d.cts +60 -0
- package/dist/task-store.d.cts.map +1 -0
- package/dist/task-store.d.mts +60 -0
- package/dist/task-store.d.mts.map +1 -0
- package/dist/task-store.mjs +187 -0
- package/dist/task-store.mjs.map +1 -0
- package/dist/types.cjs +185 -0
- package/dist/types.d.cts +384 -0
- package/dist/types.d.cts.map +1 -0
- package/dist/types.d.mts +384 -0
- package/dist/types.d.mts.map +1 -0
- package/dist/types.mjs +176 -0
- package/dist/types.mjs.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { SchedulerProviderOptions, TickResult } from "./types.cjs";
|
|
2
|
+
import { TaskStore } from "./task-store.cjs";
|
|
3
|
+
import { AFSAccessMode, AFSEntry, AFSExecResult, AFSExplainResult, AFSListOptions, AFSListResult, AFSReadOptions, AFSReadResult, AFSRoot, ProviderManifest } from "@aigne/afs";
|
|
4
|
+
import { AFSBaseProvider, RouteContext } from "@aigne/afs/provider";
|
|
5
|
+
|
|
6
|
+
//#region src/scheduler-provider.d.ts
|
|
7
|
+
declare class AFSScheduler extends AFSBaseProvider {
|
|
8
|
+
static manifest(): ProviderManifest;
|
|
9
|
+
readonly name: string;
|
|
10
|
+
readonly description?: string;
|
|
11
|
+
readonly accessMode: AFSAccessMode;
|
|
12
|
+
/** @internal — exposed for conformance test pre-population */
|
|
13
|
+
readonly store: TaskStore;
|
|
14
|
+
private executor;
|
|
15
|
+
private jobExecutor?;
|
|
16
|
+
private root;
|
|
17
|
+
private readonly options;
|
|
18
|
+
private readonly persistence;
|
|
19
|
+
constructor(options?: SchedulerProviderOptions);
|
|
20
|
+
onMount(root: AFSRoot, _mountPath?: string): void;
|
|
21
|
+
/** Await all pending snapshot writes. Use before reading persisted state. */
|
|
22
|
+
flush(): Promise<void>;
|
|
23
|
+
read(path: string, options?: AFSReadOptions): Promise<AFSReadResult>;
|
|
24
|
+
list(path: string, options?: AFSListOptions): Promise<AFSListResult>;
|
|
25
|
+
readRoot(ctx: RouteContext): AFSEntry | undefined;
|
|
26
|
+
readTasks(ctx: RouteContext): AFSEntry | undefined;
|
|
27
|
+
readTask(ctx: RouteContext<{
|
|
28
|
+
id: string;
|
|
29
|
+
}>): AFSEntry | undefined;
|
|
30
|
+
readTaskField(ctx: RouteContext<{
|
|
31
|
+
id: string;
|
|
32
|
+
field: string;
|
|
33
|
+
}>): AFSEntry | undefined;
|
|
34
|
+
readHistory(ctx: RouteContext): AFSEntry | undefined;
|
|
35
|
+
readHistoryTask(ctx: RouteContext<{
|
|
36
|
+
id: string;
|
|
37
|
+
}>): AFSEntry | undefined;
|
|
38
|
+
readHistoryTaskField(ctx: RouteContext<{
|
|
39
|
+
id: string;
|
|
40
|
+
field: string;
|
|
41
|
+
}>): AFSEntry | undefined;
|
|
42
|
+
readSchedules(ctx: RouteContext): AFSEntry | undefined;
|
|
43
|
+
readSchedule(ctx: RouteContext<{
|
|
44
|
+
id: string;
|
|
45
|
+
}>): AFSEntry | undefined;
|
|
46
|
+
readJobs(ctx: RouteContext): AFSEntry | undefined;
|
|
47
|
+
readJob(ctx: RouteContext<{
|
|
48
|
+
id: string;
|
|
49
|
+
}>): Promise<AFSEntry | undefined>;
|
|
50
|
+
readCapabilities(ctx: RouteContext): AFSEntry | undefined;
|
|
51
|
+
listRoot(ctx: RouteContext): AFSListResult;
|
|
52
|
+
listTasks(ctx: RouteContext): AFSListResult;
|
|
53
|
+
listHistory(ctx: RouteContext): AFSListResult;
|
|
54
|
+
listSchedules(ctx: RouteContext): AFSListResult;
|
|
55
|
+
listJobsHandler(ctx: RouteContext): AFSListResult;
|
|
56
|
+
readRootMeta(ctx: RouteContext): AFSEntry | undefined;
|
|
57
|
+
readTasksMeta(ctx: RouteContext): AFSEntry | undefined;
|
|
58
|
+
readHistoryMeta(ctx: RouteContext): AFSEntry | undefined;
|
|
59
|
+
readSchedulesMeta(ctx: RouteContext): AFSEntry | undefined;
|
|
60
|
+
readJobsMeta(ctx: RouteContext): AFSEntry | undefined;
|
|
61
|
+
explainRoot(): AFSExplainResult;
|
|
62
|
+
explainPath(ctx: RouteContext<{
|
|
63
|
+
path: string;
|
|
64
|
+
}>): AFSExplainResult;
|
|
65
|
+
listActions(ctx: RouteContext): AFSListResult;
|
|
66
|
+
execDispatch(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
67
|
+
execCancel(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
68
|
+
execRetry(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
69
|
+
execSchedule(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
70
|
+
execUnschedule(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
71
|
+
execHeartbeat(_ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
72
|
+
execClaim(_ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
73
|
+
execSubmit(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
74
|
+
execSubmitJob(_ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
75
|
+
execCancelJob(_ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
76
|
+
/**
|
|
77
|
+
* Evaluate cron schedules and scan for expired deadlines.
|
|
78
|
+
* Call from Worker `scheduled()` handler or `setInterval` in non-Worker environments.
|
|
79
|
+
*/
|
|
80
|
+
tick(): Promise<TickResult>;
|
|
81
|
+
private getScheduledTaskTimeoutMs;
|
|
82
|
+
private getEffectiveDeadline;
|
|
83
|
+
private getCallerKey;
|
|
84
|
+
private checkTaskOwner;
|
|
85
|
+
private checkScheduleOwner;
|
|
86
|
+
private executeTask;
|
|
87
|
+
private checkTaskBudget;
|
|
88
|
+
private completeProc;
|
|
89
|
+
private dispatchMapTask;
|
|
90
|
+
private onJobTaskComplete;
|
|
91
|
+
private readEntryField;
|
|
92
|
+
}
|
|
93
|
+
//#endregion
|
|
94
|
+
export { AFSScheduler };
|
|
95
|
+
//# sourceMappingURL=scheduler-provider.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler-provider.d.cts","names":[],"sources":["../src/scheduler-provider.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { SchedulerProviderOptions, TickResult } from "./types.mjs";
|
|
2
|
+
import { TaskStore } from "./task-store.mjs";
|
|
3
|
+
import { AFSAccessMode, AFSEntry, AFSExecResult, AFSExplainResult, AFSListOptions, AFSListResult, AFSReadOptions, AFSReadResult, AFSRoot, ProviderManifest } from "@aigne/afs";
|
|
4
|
+
import { AFSBaseProvider, RouteContext } from "@aigne/afs/provider";
|
|
5
|
+
|
|
6
|
+
//#region src/scheduler-provider.d.ts
|
|
7
|
+
declare class AFSScheduler extends AFSBaseProvider {
|
|
8
|
+
static manifest(): ProviderManifest;
|
|
9
|
+
readonly name: string;
|
|
10
|
+
readonly description?: string;
|
|
11
|
+
readonly accessMode: AFSAccessMode;
|
|
12
|
+
/** @internal — exposed for conformance test pre-population */
|
|
13
|
+
readonly store: TaskStore;
|
|
14
|
+
private executor;
|
|
15
|
+
private jobExecutor?;
|
|
16
|
+
private root;
|
|
17
|
+
private readonly options;
|
|
18
|
+
private readonly persistence;
|
|
19
|
+
constructor(options?: SchedulerProviderOptions);
|
|
20
|
+
onMount(root: AFSRoot, _mountPath?: string): void;
|
|
21
|
+
/** Await all pending snapshot writes. Use before reading persisted state. */
|
|
22
|
+
flush(): Promise<void>;
|
|
23
|
+
read(path: string, options?: AFSReadOptions): Promise<AFSReadResult>;
|
|
24
|
+
list(path: string, options?: AFSListOptions): Promise<AFSListResult>;
|
|
25
|
+
readRoot(ctx: RouteContext): AFSEntry | undefined;
|
|
26
|
+
readTasks(ctx: RouteContext): AFSEntry | undefined;
|
|
27
|
+
readTask(ctx: RouteContext<{
|
|
28
|
+
id: string;
|
|
29
|
+
}>): AFSEntry | undefined;
|
|
30
|
+
readTaskField(ctx: RouteContext<{
|
|
31
|
+
id: string;
|
|
32
|
+
field: string;
|
|
33
|
+
}>): AFSEntry | undefined;
|
|
34
|
+
readHistory(ctx: RouteContext): AFSEntry | undefined;
|
|
35
|
+
readHistoryTask(ctx: RouteContext<{
|
|
36
|
+
id: string;
|
|
37
|
+
}>): AFSEntry | undefined;
|
|
38
|
+
readHistoryTaskField(ctx: RouteContext<{
|
|
39
|
+
id: string;
|
|
40
|
+
field: string;
|
|
41
|
+
}>): AFSEntry | undefined;
|
|
42
|
+
readSchedules(ctx: RouteContext): AFSEntry | undefined;
|
|
43
|
+
readSchedule(ctx: RouteContext<{
|
|
44
|
+
id: string;
|
|
45
|
+
}>): AFSEntry | undefined;
|
|
46
|
+
readJobs(ctx: RouteContext): AFSEntry | undefined;
|
|
47
|
+
readJob(ctx: RouteContext<{
|
|
48
|
+
id: string;
|
|
49
|
+
}>): Promise<AFSEntry | undefined>;
|
|
50
|
+
readCapabilities(ctx: RouteContext): AFSEntry | undefined;
|
|
51
|
+
listRoot(ctx: RouteContext): AFSListResult;
|
|
52
|
+
listTasks(ctx: RouteContext): AFSListResult;
|
|
53
|
+
listHistory(ctx: RouteContext): AFSListResult;
|
|
54
|
+
listSchedules(ctx: RouteContext): AFSListResult;
|
|
55
|
+
listJobsHandler(ctx: RouteContext): AFSListResult;
|
|
56
|
+
readRootMeta(ctx: RouteContext): AFSEntry | undefined;
|
|
57
|
+
readTasksMeta(ctx: RouteContext): AFSEntry | undefined;
|
|
58
|
+
readHistoryMeta(ctx: RouteContext): AFSEntry | undefined;
|
|
59
|
+
readSchedulesMeta(ctx: RouteContext): AFSEntry | undefined;
|
|
60
|
+
readJobsMeta(ctx: RouteContext): AFSEntry | undefined;
|
|
61
|
+
explainRoot(): AFSExplainResult;
|
|
62
|
+
explainPath(ctx: RouteContext<{
|
|
63
|
+
path: string;
|
|
64
|
+
}>): AFSExplainResult;
|
|
65
|
+
listActions(ctx: RouteContext): AFSListResult;
|
|
66
|
+
execDispatch(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
67
|
+
execCancel(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
68
|
+
execRetry(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
69
|
+
execSchedule(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
70
|
+
execUnschedule(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
71
|
+
execHeartbeat(_ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
72
|
+
execClaim(_ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
73
|
+
execSubmit(ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
74
|
+
execSubmitJob(_ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
75
|
+
execCancelJob(_ctx: RouteContext, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
76
|
+
/**
|
|
77
|
+
* Evaluate cron schedules and scan for expired deadlines.
|
|
78
|
+
* Call from Worker `scheduled()` handler or `setInterval` in non-Worker environments.
|
|
79
|
+
*/
|
|
80
|
+
tick(): Promise<TickResult>;
|
|
81
|
+
private getScheduledTaskTimeoutMs;
|
|
82
|
+
private getEffectiveDeadline;
|
|
83
|
+
private getCallerKey;
|
|
84
|
+
private checkTaskOwner;
|
|
85
|
+
private checkScheduleOwner;
|
|
86
|
+
private executeTask;
|
|
87
|
+
private checkTaskBudget;
|
|
88
|
+
private completeProc;
|
|
89
|
+
private dispatchMapTask;
|
|
90
|
+
private onJobTaskComplete;
|
|
91
|
+
private readEntryField;
|
|
92
|
+
}
|
|
93
|
+
//#endregion
|
|
94
|
+
export { AFSScheduler };
|
|
95
|
+
//# sourceMappingURL=scheduler-provider.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler-provider.d.mts","names":[],"sources":["../src/scheduler-provider.ts"],"mappings":";;;;;;cAsEa,YAAA,SAAqB,eAAA;EAAA,OACzB,QAAA,CAAA,GAAY,gBAAA;EAAA,SA6BV,IAAA;EAAA,SACA,WAAA;EAAA,SACS,UAAA,EAAY,aAAA;EA/BX;EAAA,SAkCV,KAAA,EAAO,SAAA;EAAA,QACR,QAAA;EAAA,QACA,WAAA;EAAA,QACA,IAAA;EAAA,iBACS,OAAA;EAAA,iBACA,WAAA;cAEL,OAAA,GAAS,wBAAA;EAerB,OAAA,CAAQ,IAAA,EAAM,OAAA,EAAS,UAAA;EAqBqB;EAXtC,KAAA,CAAA,GAAS,OAAA;EAMA,IAAA,CAAK,IAAA,UAAc,OAAA,GAAU,cAAA,GAAiB,OAAA,CAAQ,aAAA;EAKtD,IAAA,CAAK,IAAA,UAAc,OAAA,GAAU,cAAA,GAAiB,OAAA,CAAQ,aAAA;EAQrE,QAAA,CAAS,GAAA,EAAK,YAAA,GAAe,QAAA;EAQ7B,SAAA,CAAU,GAAA,EAAK,YAAA,GAAe,QAAA;EAS9B,QAAA,CAAS,GAAA,EAAK,YAAA;IAAe,EAAA;EAAA,KAAgB,QAAA;EAW7C,aAAA,CAAc,GAAA,EAAK,YAAA;IAAe,EAAA;IAAY,KAAA;EAAA,KAAmB,QAAA;EAOjE,WAAA,CAAY,GAAA,EAAK,YAAA,GAAe,QAAA;EAShC,eAAA,CAAgB,GAAA,EAAK,YAAA;IAAe,EAAA;EAAA,KAAgB,QAAA;EAWpD,oBAAA,CAAqB,GAAA,EAAK,YAAA;IAAe,EAAA;IAAY,KAAA;EAAA,KAAmB,QAAA;EAOxE,aAAA,CAAc,GAAA,EAAK,YAAA,GAAe,QAAA;EASlC,YAAA,CAAa,GAAA,EAAK,YAAA;IAAe,EAAA;EAAA,KAAgB,QAAA;EAWjD,QAAA,CAAS,GAAA,EAAK,YAAA,GAAe,QAAA;EASvB,OAAA,CAAQ,GAAA,EAAK,YAAA;IAAe,EAAA;EAAA,KAAgB,OAAA,CAAQ,QAAA;EAsB1D,gBAAA,CAAiB,GAAA,EAAK,YAAA,GAAe,QAAA;EASrC,QAAA,CAAS,GAAA,EAAK,YAAA,GAAe,aAAA;EAgC7B,SAAA,CAAU,GAAA,EAAK,YAAA,GAAe,aAAA;EAc9B,WAAA,CAAY,GAAA,EAAK,YAAA,GAAe,aAAA;EAchC,aAAA,CAAc,GAAA,EAAK,YAAA,GAAe,aAAA;EAclC,eAAA,CAAgB,GAAA,EAAK,YAAA,GAAe,aAAA;EAgBpC,YAAA,CAAa,GAAA,EAAK,YAAA,GAAe,QAAA;EAMjC,aAAA,CAAc,GAAA,EAAK,YAAA,GAAe,QAAA;EAOlC,eAAA,CAAgB,GAAA,EAAK,YAAA,GAAe,QAAA;EAOpC,iBAAA,CAAkB,GAAA,EAAK,YAAA,GAAe,QAAA;EAOtC,YAAA,CAAa,GAAA,EAAK,YAAA,GAAe,QAAA;EASjC,WAAA,CAAA,GAAe,gBAAA;EAWf,WAAA,CAAY,GAAA,EAAK,YAAA;IAAe,IAAA;EAAA,KAAkB,gBAAA;EAUlD,WAAA,CAAY,GAAA,EAAK,YAAA,GAAe,aAAA;EAW1B,YAAA,CAAa,GAAA,EAAK,YAAA,EAAc,IAAA,EAAM,MAAA,oBAA0B,OAAA,CAAQ,aAAA;EAwFxE,UAAA,CAAW,GAAA,EAAK,YAAA,EAAc,IAAA,EAAM,MAAA,oBAA0B,OAAA,CAAQ,aAAA;EA0DtE,SAAA,CAAU,GAAA,EAAK,YAAA,EAAc,IAAA,EAAM,MAAA,oBAA0B,OAAA,CAAQ,aAAA;EAkFrE,YAAA,CAAa,GAAA,EAAK,YAAA,EAAc,IAAA,EAAM,MAAA,oBAA0B,OAAA,CAAQ,aAAA;EAkCxE,cAAA,CAAe,GAAA,EAAK,YAAA,EAAc,IAAA,EAAM,MAAA,oBAA0B,OAAA,CAAQ,aAAA;EAuC1E,aAAA,CAAc,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,MAAA,oBAA0B,OAAA,CAAQ,aAAA;EAwD1E,SAAA,CAAU,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,MAAA,oBAA0B,OAAA,CAAQ,aAAA;EA4GtE,UAAA,CAAW,GAAA,EAAK,YAAA,EAAc,IAAA,EAAM,MAAA,oBAA0B,OAAA,CAAQ,aAAA;EAuGtE,aAAA,CAAc,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,MAAA,oBAA0B,OAAA,CAAQ,aAAA;EAyE1E,aAAA,CAAc,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,MAAA,oBAA0B,OAAA,CAAQ,aAAA;EAjoBF;;;;EA2rBxE,IAAA,CAAA,GAAQ,OAAA,CAAQ,UAAA;EAAA,QAoFd,yBAAA;EAAA,QAIA,oBAAA;EAAA,QAUA,YAAA;EAAA,QAOA,cAAA;EAAA,QAYA,kBAAA;EAAA,QAeM,WAAA;EAAA,QAoFA,eAAA;EAAA,QAuBA,YAAA;EAAA,QAaN,eAAA;EAAA,QA6BM,iBAAA;EAAA,QAiFN,cAAA;AAAA"}
|