@numa-tech/numa 1.14.7 → 1.14.8

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.
Files changed (38) hide show
  1. package/README.md +20 -29
  2. package/dist/chatgpt-desktop.d.ts +4 -29
  3. package/dist/chatgpt-desktop.js +18 -376
  4. package/dist/chatgpt-desktop.js.map +1 -1
  5. package/dist/cli.js +20 -7
  6. package/dist/cli.js.map +1 -1
  7. package/dist/codex-module.js +2 -6
  8. package/dist/codex-module.js.map +1 -1
  9. package/dist/command-catalog.js +126 -6
  10. package/dist/command-catalog.js.map +1 -1
  11. package/dist/integration-bootstrap/client.d.ts +31 -4
  12. package/dist/integration-bootstrap/client.js +161 -35
  13. package/dist/integration-bootstrap/client.js.map +1 -1
  14. package/dist/integration-bootstrap/commands.d.ts +28 -5
  15. package/dist/integration-bootstrap/commands.js +399 -47
  16. package/dist/integration-bootstrap/commands.js.map +1 -1
  17. package/dist/integration-bootstrap/schemas.d.ts +408 -43
  18. package/dist/integration-bootstrap/schemas.js +373 -93
  19. package/dist/integration-bootstrap/schemas.js.map +1 -1
  20. package/dist/teams/client.d.ts +119 -0
  21. package/dist/teams/client.js +177 -0
  22. package/dist/teams/client.js.map +1 -0
  23. package/dist/teams/commands.d.ts +6 -0
  24. package/dist/teams/commands.js +190 -0
  25. package/dist/teams/commands.js.map +1 -0
  26. package/dist/teams/errors.d.ts +10 -0
  27. package/dist/teams/errors.js +56 -0
  28. package/dist/teams/errors.js.map +1 -0
  29. package/dist/teams/schemas.d.ts +171 -0
  30. package/dist/teams/schemas.js +81 -0
  31. package/dist/teams/schemas.js.map +1 -0
  32. package/package.json +4 -4
  33. package/skills/numa-cli/SKILL.md +2 -1
  34. package/skills/numa-cli/references/pipeline-release.md +2 -0
  35. package/skills/numa-local-flux-deploy/SKILL.md +24 -0
  36. package/skills/numa-local-flux-deploy/agents/openai.yaml +4 -0
  37. package/skills/numa-local-flux-deploy/evals/evals.json +35 -0
  38. package/skills/numa-local-flux-deploy/references/local-flux-release.md +172 -0
@@ -2,18 +2,25 @@ import { z } from "zod";
2
2
  const CONTROL_CHARACTERS = /[\u0000-\u001f\u007f]/u;
3
3
  const SAFE_KEY = /^[A-Za-z0-9][A-Za-z0-9._:-]*$/u;
4
4
  const DIGEST = /^[a-f0-9]{64}$/u;
5
- const SESSION_NO = /^ibps_[0-9a-f]{32}$/u;
5
+ const PLAN_SESSION_NO = /^ibp2_[0-9a-f]{32}$/u;
6
+ const RUN_NO = /^ibar_[0-9a-f]{32}$/u;
7
+ const ACTION_NO = /^ibaa_[0-9a-f]{32}$/u;
6
8
  const UUID = /(?:^|[^0-9a-f])[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}(?:$|[^0-9a-f])/iu;
7
9
  const safeText = (maximum) => z.string().min(1).max(maximum)
8
10
  .refine((value) => value === value.trim() && !CONTROL_CHARACTERS.test(value), "leading/trailing whitespace and control characters are not allowed");
9
- const safeKey = (maximum) => safeText(maximum).regex(SAFE_KEY);
11
+ const safeKey = (maximum, minimum = 1) => z.string().min(minimum).max(maximum)
12
+ .regex(SAFE_KEY)
13
+ .refine((value) => value === value.trim() && !CONTROL_CHARACTERS.test(value), "leading/trailing whitespace and control characters are not allowed");
10
14
  const safePlanTarget = safeText(320).refine((value) => !/(?:https?:\/\/|@)/iu.test(value) && !UUID.test(value), "target cannot contain a URL, username, or UUID");
11
15
  const digest = z.string().regex(DIGEST);
12
- const instant = z.string().datetime({ offset: true });
16
+ const nullableDigest = digest.nullable();
17
+ const instant = z.string().datetime({ offset: true }).refine((value) => /^(?:\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})(?:\.\d{1,6})?Z$/u.test(value), "timestamp must be an RFC3339 UTC instant with at most microsecond precision");
18
+ const nullableInstant = instant.nullable();
13
19
  const positiveInt64 = z.number().int().positive().max(Number.MAX_SAFE_INTEGER);
14
20
  const nonnegativeInt64 = z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER);
15
21
  const nonnegativeInt32 = z.number().int().nonnegative().max(2_147_483_647);
16
- const LoginUrlSchema = z.string().max(8_192).refine((value) => {
22
+ const clientRequestId = safeKey(200, 8);
23
+ const AuthorizationUrlSchema = z.string().max(8_192).refine((value) => {
17
24
  try {
18
25
  const url = new URL(value);
19
26
  const safeTransport = url.protocol === "https:"
@@ -28,32 +35,16 @@ const LoginUrlSchema = z.string().max(8_192).refine((value) => {
28
35
  catch {
29
36
  return false;
30
37
  }
31
- }, "loginUrl must be an absolute HTTP(S) URL without userinfo or fragment");
38
+ }, "authorizationUrl must be HTTPS or exact loopback HTTP without userinfo or fragment");
32
39
  export const IntegrationBootstrapSessionStatusSchema = z.enum([
33
- "AWAITING_AUTHORIZATION",
34
- "AUTHORIZING",
35
- "INSPECTING",
36
- "SUCCEEDED",
37
- "FAILED",
38
- "EXPIRED"
40
+ "AWAITING_AUTHORIZATION", "AUTHORIZING", "INSPECTING", "SUCCEEDED", "FAILED", "EXPIRED"
39
41
  ]);
40
42
  export const IntegrationBootstrapPlanStateSchema = z.enum(["READY", "BLOCKED"]);
41
43
  export const IntegrationBootstrapRemoteStateSchema = z.enum([
42
- "MISSING",
43
- "PRESENT_UNVERIFIED",
44
- "MATCHED",
45
- "DRIFTED",
46
- "COLLISION",
47
- "UNAVAILABLE"
44
+ "MISSING", "PRESENT_UNVERIFIED", "MATCHED", "DRIFTED", "COLLISION", "UNAVAILABLE"
48
45
  ]);
49
46
  export const IntegrationBootstrapActionSchema = z.enum([
50
- "CREATE",
51
- "UPDATE",
52
- "GRANT",
53
- "GENERATE",
54
- "ROTATE",
55
- "NOOP",
56
- "BLOCKED"
47
+ "CREATE", "GRANT", "GENERATE", "NOOP", "BLOCKED"
57
48
  ]);
58
49
  export const IntegrationBootstrapComponentSchema = z.enum([
59
50
  "KEYCLOAK_SERVICE_CLIENT",
@@ -69,6 +60,7 @@ export const IntegrationBootstrapComponentSchema = z.enum([
69
60
  "JENKINS_SNAPSHOT_FOLDER_CREDENTIAL_CONTRACT",
70
61
  "JENKINS_WRITER_CREDENTIAL"
71
62
  ]);
63
+ const COMPONENTS = IntegrationBootstrapComponentSchema.options;
72
64
  export const IntegrationBootstrapChangeSchema = z.object({
73
65
  component: IntegrationBootstrapComponentSchema,
74
66
  action: IntegrationBootstrapActionSchema,
@@ -84,12 +76,12 @@ export const IntegrationBootstrapJenkinsInstancePlanSchema = z.object({
84
76
  instanceId: positiveInt64,
85
77
  instanceVersion: nonnegativeInt32,
86
78
  instanceCode: z.literal("numa"),
87
- status: safeKey(64),
79
+ status: z.literal("ACTIVE"),
88
80
  inventoryGeneration: nonnegativeInt64,
89
81
  inventorySnapshotDigest: digest,
90
82
  adminCredentialRecordId: positiveInt64,
91
83
  adminCredentialRecordVersion: nonnegativeInt32,
92
- adminCredentialRecordStatus: safeKey(64),
84
+ adminCredentialRecordStatus: z.literal("ACTIVE"),
93
85
  snapshotFolderState: IntegrationBootstrapRemoteStateSchema,
94
86
  snapshotFolderAclDigest: digest,
95
87
  snapshotFolderAction: IntegrationBootstrapActionSchema,
@@ -97,10 +89,12 @@ export const IntegrationBootstrapJenkinsInstancePlanSchema = z.object({
97
89
  action: IntegrationBootstrapActionSchema
98
90
  }).strict();
99
91
  export const IntegrationBootstrapPlanSchema = z.object({
100
- schemaVersion: z.literal("integration-bootstrap-plan/v1"),
92
+ schemaVersion: z.literal("integration-bootstrap-plan/v2"),
101
93
  profileCode: z.literal("JENKINS_GITOPS_IMAGE_WRITER"),
102
- profileVersion: z.literal("1"),
94
+ profileVersion: z.literal("2"),
103
95
  profileDigest: digest,
96
+ ownershipMarkerSchema: z.literal("mci-devops-platform/integration-bootstrap-owner/v1"),
97
+ secretTransferMode: z.literal("KEYCLOAK_POST_ROTATE_TO_JENKINS_MEMORY_ONLY"),
104
98
  state: IntegrationBootstrapPlanStateSchema,
105
99
  realm: safeKey(256),
106
100
  serviceClientId: z.literal("mci-devops-platform-jenkins-gitops-writer"),
@@ -117,13 +111,17 @@ export const IntegrationBootstrapPlanSchema = z.object({
117
111
  credentialDomain: z.literal("GLOBAL_DOMAIN"),
118
112
  credentialScope: z.literal("GLOBAL"),
119
113
  credentialUsername: z.literal("mci-devops-platform-jenkins-gitops-writer"),
120
- managedDescriptionMarker: z.literal("managed-by=mci-devops-platform;profile=jenkins-gitops-image-writer/v1"),
114
+ managedDescriptionMarkerTemplate: z.literal("managed-by=mci-devops-platform;profile=jenkins-gitops-image-writer/v2;" +
115
+ "originProfile={profile};originPlan={planDigest};originRun={runNo};" +
116
+ "originNonce={ownershipNonce}"),
121
117
  keycloakSnapshotDigest: digest,
122
118
  jenkinsInventorySnapshotDigest: digest,
123
119
  jenkinsInstance: IntegrationBootstrapJenkinsInstancePlanSchema,
124
- changes: z.array(IntegrationBootstrapChangeSchema).max(64),
125
- blockers: z.array(IntegrationBootstrapBlockerSchema).max(64),
126
- authorizationSessionNo: z.string().regex(SESSION_NO),
120
+ changes: z.array(IntegrationBootstrapChangeSchema).length(COMPONENTS.length),
121
+ blockers: z.array(IntegrationBootstrapBlockerSchema).max(COMPONENTS.length),
122
+ authorizationSessionNo: z.string().regex(PLAN_SESSION_NO),
123
+ clientRequestId,
124
+ requestDigest: digest,
127
125
  platformActor: safeText(320),
128
126
  bootstrapSubject: safeText(320),
129
127
  bootstrapUsername: safeText(320),
@@ -131,86 +129,368 @@ export const IntegrationBootstrapPlanSchema = z.object({
131
129
  reviewExpiresAt: instant,
132
130
  planDigest: digest
133
131
  }).strict().superRefine((plan, context) => {
134
- if (plan.state === "READY" && plan.blockers.length !== 0) {
135
- context.addIssue({ code: "custom", path: ["blockers"], message: "READY plan cannot contain blockers" });
132
+ const issue = (path, message) => context.addIssue({ code: "custom", path, message });
133
+ const changes = new Map(plan.changes.map((change) => [change.component, change]));
134
+ if (changes.size !== COMPONENTS.length || COMPONENTS.some((component) => !changes.has(component))) {
135
+ issue(["changes"], "plan requires exactly one change for every component");
136
+ }
137
+ const blocked = plan.changes.filter((change) => change.action === "BLOCKED");
138
+ const blockerKeys = new Set(plan.blockers.map((blocker) => `${blocker.component}\n${blocker.target}\n${blocker.reasonCode}`));
139
+ const blockedKeys = new Set(blocked.map((change) => `${change.component}\n${change.target}\n${change.reasonCode}`));
140
+ if (blockerKeys.size !== plan.blockers.length || blockerKeys.size !== blockedKeys.size
141
+ || [...blockedKeys].some((key) => !blockerKeys.has(key))) {
142
+ issue(["blockers"], "blockers must exactly mirror BLOCKED changes");
143
+ }
144
+ if ((plan.state === "READY") !== (blocked.length === 0)) {
145
+ issue(["state"], "READY is allowed exactly when no component is BLOCKED");
136
146
  }
137
- if (plan.state === "BLOCKED" && plan.blockers.length === 0) {
138
- context.addIssue({ code: "custom", path: ["blockers"], message: "BLOCKED plan requires blockers" });
147
+ if (plan.jenkinsInstance.inventorySnapshotDigest !== plan.jenkinsInventorySnapshotDigest) {
148
+ issue(["jenkinsInstance", "inventorySnapshotDigest"], "instance inventory digest must match plan");
139
149
  }
140
150
  if (Date.parse(plan.reviewExpiresAt) <= Date.parse(plan.reviewedAt)) {
141
- context.addIssue({
142
- code: "custom",
143
- path: ["reviewExpiresAt"],
144
- message: "reviewExpiresAt must be later than reviewedAt"
145
- });
151
+ issue(["reviewExpiresAt"], "reviewExpiresAt must be later than reviewedAt");
146
152
  }
147
153
  });
148
154
  export const IntegrationBootstrapStartSchema = z.object({
149
- sessionNo: z.string().regex(SESSION_NO),
155
+ sessionNo: z.string().regex(PLAN_SESSION_NO),
150
156
  profileCode: z.literal("JENKINS_GITOPS_IMAGE_WRITER"),
151
- status: IntegrationBootstrapSessionStatusSchema,
152
- loginUrl: LoginUrlSchema.nullable(),
153
- expiresAt: instant
157
+ profileVersion: z.literal("2"),
158
+ clientRequestId,
159
+ requestDigest: digest,
160
+ status: z.literal("AWAITING_AUTHORIZATION"),
161
+ authorizationNo: z.string().regex(PLAN_SESSION_NO),
162
+ authorizationUrl: AuthorizationUrlSchema,
163
+ authorizationExpiresAt: instant
154
164
  }).strict().superRefine((started, context) => {
155
- const awaiting = started.status === "AWAITING_AUTHORIZATION";
156
- if (awaiting !== (started.loginUrl != null)) {
157
- context.addIssue({
158
- code: "custom",
159
- path: ["loginUrl"],
160
- message: "loginUrl is present only while awaiting authorization"
161
- });
165
+ if (started.authorizationNo !== started.sessionNo) {
166
+ context.addIssue({ code: "custom", path: ["authorizationNo"], message: "authorizationNo must match sessionNo" });
162
167
  }
163
168
  });
164
169
  const IntegrationBootstrapSessionBaseSchema = z.object({
165
- sessionNo: z.string().regex(SESSION_NO),
170
+ sessionNo: z.string().regex(PLAN_SESSION_NO),
166
171
  profileCode: z.literal("JENKINS_GITOPS_IMAGE_WRITER"),
172
+ profileVersion: z.literal("2"),
173
+ clientRequestId,
174
+ requestDigest: digest,
167
175
  status: IntegrationBootstrapSessionStatusSchema,
168
- loginUrl: LoginUrlSchema.nullable(),
169
176
  plan: IntegrationBootstrapPlanSchema.nullable(),
170
177
  errorCode: safeKey(100).nullable(),
171
178
  errorSummary: safeText(800).nullable(),
172
179
  createdAt: instant,
173
180
  expiresAt: instant,
174
- completedAt: instant.nullable()
181
+ completedAt: nullableInstant
182
+ }).strict();
183
+ export const IntegrationBootstrapSessionSchema = IntegrationBootstrapSessionBaseSchema.superRefine((session, context) => {
184
+ const issue = (path, message) => context.addIssue({ code: "custom", path: [path], message });
185
+ if (Date.parse(session.expiresAt) <= Date.parse(session.createdAt)) {
186
+ issue("expiresAt", "session expiry must follow creation");
187
+ }
188
+ if (session.completedAt != null && Date.parse(session.completedAt) < Date.parse(session.createdAt)) {
189
+ issue("completedAt", "session completion cannot precede creation");
190
+ }
191
+ if (session.plan != null && (session.plan.authorizationSessionNo !== session.sessionNo
192
+ || session.plan.clientRequestId !== session.clientRequestId
193
+ || session.plan.requestDigest !== session.requestDigest
194
+ || session.plan.profileCode !== session.profileCode
195
+ || session.plan.profileVersion !== session.profileVersion))
196
+ issue("plan", "plan identity must match its actor-scoped session");
197
+ if (["AWAITING_AUTHORIZATION", "AUTHORIZING", "INSPECTING"].includes(session.status)) {
198
+ if (session.plan != null || session.errorCode != null || session.errorSummary != null || session.completedAt != null) {
199
+ issue("status", `${session.status} tuple is invalid`);
200
+ }
201
+ }
202
+ else if (session.status === "SUCCEEDED") {
203
+ if (session.plan == null || session.errorCode != null || session.errorSummary != null
204
+ || session.completedAt == null || session.completedAt !== session.plan.reviewedAt) {
205
+ issue("status", "SUCCEEDED tuple is invalid");
206
+ }
207
+ }
208
+ else if (session.plan != null || session.errorCode == null || session.errorSummary == null
209
+ || session.completedAt == null)
210
+ issue("status", `${session.status} tuple is invalid`);
211
+ });
212
+ export const IntegrationBootstrapRunStateSchema = z.enum(["ACCEPTED", "RUNNING", "UNKNOWN", "SUCCEEDED", "FAILED"]);
213
+ export const IntegrationBootstrapActionKindSchema = z.enum(["APPLY", "RECONCILE", "RECOVER", "REAPPLY"]);
214
+ export const IntegrationBootstrapActionStateSchema = z.enum([
215
+ "AWAITING_AUTHORIZATION", "AUTHORIZING", "RUNNING", "UNKNOWN", "SUCCEEDED", "FAILED", "EXPIRED"
216
+ ]);
217
+ export const IntegrationBootstrapStepSchema = z.enum([
218
+ "RESERVED", "FRESHNESS_CHECK", "KEYCLOAK_CLIENT_CREATE", "KEYCLOAK_ROLE_CREATE",
219
+ "KEYCLOAK_CONTRACT_APPLY", "KEYCLOAK_ROLE_GRANT", "JENKINS_FOLDER_CREATE", "KEYCLOAK_SECRET_ROTATE",
220
+ "JENKINS_CREDENTIAL_WRITE", "TOKEN_CANARY", "FINAL_READBACK", "COMPLETE"
221
+ ]);
222
+ export const IntegrationBootstrapRecoveryDispositionSchema = z.enum([
223
+ "VERIFIED", "UNTOUCHED", "RECOVERABLE", "CONFLICT", "READBACK_UNKNOWN", "WRITE_UNKNOWN", "PAIRING_UNVERIFIED"
224
+ ]);
225
+ export const IntegrationBootstrapStoredErrorCodeSchema = z.enum([
226
+ "INTEGRATION_BOOTSTRAP_RESULT_UNKNOWN",
227
+ "INTEGRATION_BOOTSTRAP_AUTHORIZATION_REJECTED",
228
+ "INTEGRATION_BOOTSTRAP_AUTHORIZATION_INVALID",
229
+ "INTEGRATION_BOOTSTRAP_AUTHORIZATION_EXPIRED",
230
+ "INTEGRATION_BOOTSTRAP_PLAN_EXPIRED",
231
+ "INTEGRATION_BOOTSTRAP_PLAN_DRIFTED",
232
+ "INTEGRATION_BOOTSTRAP_FRESHNESS_CHECK_FAILED",
233
+ "INTEGRATION_BOOTSTRAP_PREREQUISITE_FAILED",
234
+ "INTEGRATION_BOOTSTRAP_KEYCLOAK_REQUEST_FAILED",
235
+ "INTEGRATION_BOOTSTRAP_JENKINS_REQUEST_FAILED",
236
+ "INTEGRATION_BOOTSTRAP_INTERNAL_FAILED"
237
+ ]);
238
+ const ActionObjectSchema = z.object({
239
+ actionNo: z.string().regex(ACTION_NO),
240
+ runNo: z.string().regex(RUN_NO),
241
+ kind: IntegrationBootstrapActionKindSchema,
242
+ state: IntegrationBootstrapActionStateSchema,
243
+ disposition: IntegrationBootstrapRecoveryDispositionSchema.nullable(),
244
+ expectedRunVersion: nonnegativeInt32,
245
+ clientRequestId,
246
+ requestDigest: digest,
247
+ step: IntegrationBootstrapStepSchema,
248
+ authorizationExpiresAt: instant,
249
+ writeAttempted: z.boolean(),
250
+ writeAttemptCount: nonnegativeInt32,
251
+ firstWriteAttemptedAt: nullableInstant,
252
+ lastWriteAttemptedAt: nullableInstant,
253
+ ownershipEvidenceDigest: nullableDigest,
254
+ jenkinsMetadataEvidenceDigest: nullableDigest,
255
+ tokenClaimEvidenceDigest: nullableDigest,
256
+ finalEvidenceDigest: nullableDigest,
257
+ tokenVerifiedAt: nullableInstant,
258
+ errorCode: IntegrationBootstrapStoredErrorCodeSchema.nullable(),
259
+ retryable: z.boolean(),
260
+ createdAt: instant,
261
+ startedAt: nullableInstant,
262
+ completedAt: nullableInstant
175
263
  }).strict();
176
- export const IntegrationBootstrapSessionSchema = IntegrationBootstrapSessionBaseSchema
177
- .superRefine((session, context) => {
178
- const issue = (path, message) => context.addIssue({
179
- code: "custom",
180
- path: [path],
181
- message
182
- });
183
- if (session.plan != null && session.plan.authorizationSessionNo !== session.sessionNo) {
184
- issue("plan", "plan authorizationSessionNo must match sessionNo");
185
- }
186
- switch (session.status) {
187
- case "AWAITING_AUTHORIZATION":
188
- if (session.loginUrl == null)
189
- issue("loginUrl", "AWAITING_AUTHORIZATION requires loginUrl");
190
- if (session.plan != null || session.errorCode != null || session.errorSummary != null
191
- || session.completedAt != null)
192
- issue("status", "AWAITING_AUTHORIZATION tuple is invalid");
193
- break;
194
- case "AUTHORIZING":
195
- case "INSPECTING":
196
- if (session.loginUrl != null || session.plan != null || session.errorCode != null
197
- || session.errorSummary != null || session.completedAt != null) {
198
- issue("status", `${session.status} tuple is invalid`);
199
- }
200
- break;
201
- case "SUCCEEDED":
202
- if (session.loginUrl != null || session.plan == null || session.errorCode != null
203
- || session.errorSummary != null || session.completedAt == null) {
204
- issue("status", "SUCCEEDED tuple is invalid");
205
- }
206
- break;
207
- case "FAILED":
208
- case "EXPIRED":
209
- if (session.loginUrl != null || session.plan != null || session.errorCode == null
210
- || session.errorSummary == null || session.completedAt == null) {
211
- issue("status", `${session.status} tuple is invalid`);
212
- }
213
- break;
264
+ function refineWriteTuple(value, issue) {
265
+ if (value.writeAttempted !== (value.writeAttemptCount > 0))
266
+ issue("writeAttemptCount", "write count must match writeAttempted");
267
+ if (value.writeAttempted !== (value.firstWriteAttemptedAt != null && value.lastWriteAttemptedAt != null)) {
268
+ issue("writeAttempted", "write timestamps must be present exactly when a write was attempted");
269
+ }
270
+ if (value.firstWriteAttemptedAt != null && value.lastWriteAttemptedAt != null
271
+ && Date.parse(value.firstWriteAttemptedAt) > Date.parse(value.lastWriteAttemptedAt)) {
272
+ issue("lastWriteAttemptedAt", "write timestamps are not monotonic");
273
+ }
274
+ }
275
+ function refineChronology(value, issue) {
276
+ const before = (left, right) => left != null && right != null && Date.parse(left) < Date.parse(right);
277
+ if (before(value.startedAt, value.createdAt))
278
+ issue("startedAt", "startedAt cannot precede createdAt");
279
+ if (value.firstWriteAttemptedAt != null && value.startedAt == null) {
280
+ issue("firstWriteAttemptedAt", "a write requires startedAt");
281
+ }
282
+ else if (before(value.firstWriteAttemptedAt, value.startedAt)) {
283
+ issue("firstWriteAttemptedAt", "first write cannot precede startedAt");
284
+ }
285
+ const tokenFloor = value.lastWriteAttemptedAt ?? value.startedAt;
286
+ if (before(value.tokenVerifiedAt, tokenFloor))
287
+ issue("tokenVerifiedAt", "token verification chronology is invalid");
288
+ const completionFloor = value.tokenVerifiedAt ?? value.lastWriteAttemptedAt ?? value.startedAt ?? value.createdAt;
289
+ if (before(value.completedAt, completionFloor))
290
+ issue("completedAt", "completion chronology is invalid");
291
+ }
292
+ export const IntegrationBootstrapActionViewSchema = ActionObjectSchema.superRefine((action, context) => {
293
+ const issue = (path, message) => context.addIssue({ code: "custom", path: [path], message });
294
+ refineWriteTuple(action, issue);
295
+ refineChronology(action, issue);
296
+ if (Date.parse(action.authorizationExpiresAt) <= Date.parse(action.createdAt)) {
297
+ issue("authorizationExpiresAt", "authorization expiry must follow action creation");
298
+ }
299
+ if (action.kind === "RECONCILE" && action.writeAttempted)
300
+ issue("writeAttempted", "RECONCILE is strictly read-only");
301
+ const noEvidence = action.ownershipEvidenceDigest == null && action.jenkinsMetadataEvidenceDigest == null
302
+ && action.tokenClaimEvidenceDigest == null && action.finalEvidenceDigest == null && action.tokenVerifiedAt == null;
303
+ if (["AWAITING_AUTHORIZATION", "AUTHORIZING"].includes(action.state)) {
304
+ if (action.step !== "RESERVED" || action.disposition != null || !noEvidence || action.errorCode != null
305
+ || action.writeAttempted || action.startedAt != null || action.completedAt != null || action.retryable) {
306
+ issue("state", `${action.state} tuple is invalid`);
307
+ }
308
+ }
309
+ else if (action.state === "RUNNING") {
310
+ if (action.startedAt == null || action.completedAt != null || action.disposition != null
311
+ || !noEvidence || action.errorCode != null || action.retryable) {
312
+ issue("state", "RUNNING action tuple is invalid");
313
+ }
314
+ }
315
+ else if (action.state === "UNKNOWN") {
316
+ if (action.completedAt == null || action.ownershipEvidenceDigest == null
317
+ || action.errorCode !== "INTEGRATION_BOOTSTRAP_RESULT_UNKNOWN" || !action.retryable
318
+ || action.disposition == null)
319
+ issue("state", "UNKNOWN action tuple is invalid");
320
+ if (action.kind === "RECONCILE" && !["CONFLICT", "READBACK_UNKNOWN"].includes(action.disposition ?? "")) {
321
+ issue("disposition", "RECONCILE UNKNOWN disposition is invalid");
322
+ }
323
+ if (action.kind !== "RECONCILE" && ![
324
+ "CONFLICT", "READBACK_UNKNOWN", "WRITE_UNKNOWN", "PAIRING_UNVERIFIED"
325
+ ].includes(action.disposition ?? "")) {
326
+ issue("disposition", "write action UNKNOWN disposition is invalid");
327
+ }
328
+ if (action.disposition === "PAIRING_UNVERIFIED" && (action.jenkinsMetadataEvidenceDigest == null || action.tokenClaimEvidenceDigest != null
329
+ || action.finalEvidenceDigest != null || action.tokenVerifiedAt != null))
330
+ issue("disposition", "PAIRING_UNVERIFIED evidence tuple is invalid");
331
+ }
332
+ else if (action.state === "SUCCEEDED") {
333
+ if (action.step !== "COMPLETE" || action.disposition == null || action.ownershipEvidenceDigest == null
334
+ || action.errorCode != null || action.retryable || action.completedAt == null) {
335
+ issue("state", "SUCCEEDED action tuple is invalid");
336
+ }
337
+ if (action.kind !== "RECONCILE" && (action.disposition !== "VERIFIED" || !action.writeAttempted
338
+ || action.jenkinsMetadataEvidenceDigest == null || action.tokenClaimEvidenceDigest == null
339
+ || action.finalEvidenceDigest == null || action.tokenVerifiedAt == null))
340
+ issue("state", "successful write action lacks exact final evidence");
341
+ if (action.kind === "RECONCILE" && ![
342
+ "VERIFIED", "UNTOUCHED", "RECOVERABLE", "CONFLICT", "READBACK_UNKNOWN", "PAIRING_UNVERIFIED"
343
+ ].includes(action.disposition ?? ""))
344
+ issue("disposition", "successful RECONCILE disposition is invalid");
345
+ }
346
+ else if (action.completedAt == null || action.errorCode == null || action.disposition != null
347
+ || !noEvidence || action.writeAttempted || action.retryable)
348
+ issue("state", `${action.state} tuple is invalid`);
349
+ });
350
+ export const IntegrationBootstrapApplyStartSchema = z.object({
351
+ runNo: z.string().regex(RUN_NO),
352
+ actionNo: z.string().regex(ACTION_NO),
353
+ authorizationNo: z.string().regex(ACTION_NO),
354
+ profileCode: z.literal("JENKINS_GITOPS_IMAGE_WRITER"),
355
+ profileVersion: z.literal("2"),
356
+ planSessionNo: z.string().regex(PLAN_SESSION_NO),
357
+ planDigest: digest,
358
+ clientRequestId,
359
+ requestDigest: digest,
360
+ runState: z.literal("ACCEPTED"),
361
+ actionState: z.literal("AWAITING_AUTHORIZATION"),
362
+ authorizationUrl: AuthorizationUrlSchema,
363
+ authorizationExpiresAt: instant
364
+ }).strict().superRefine((started, context) => {
365
+ if (started.authorizationNo !== started.actionNo) {
366
+ context.addIssue({ code: "custom", path: ["authorizationNo"], message: "authorizationNo must match actionNo" });
367
+ }
368
+ });
369
+ export const IntegrationBootstrapActionStartSchema = z.object({
370
+ runNo: z.string().regex(RUN_NO),
371
+ actionNo: z.string().regex(ACTION_NO),
372
+ authorizationNo: z.string().regex(ACTION_NO),
373
+ kind: IntegrationBootstrapActionKindSchema.exclude(["APPLY"]),
374
+ clientRequestId,
375
+ requestDigest: digest,
376
+ state: z.literal("AWAITING_AUTHORIZATION"),
377
+ authorizationUrl: AuthorizationUrlSchema,
378
+ authorizationExpiresAt: instant
379
+ }).strict().superRefine((started, context) => {
380
+ if (started.authorizationNo !== started.actionNo) {
381
+ context.addIssue({ code: "custom", path: ["authorizationNo"], message: "authorizationNo must match actionNo" });
382
+ }
383
+ });
384
+ const RunObjectSchema = z.object({
385
+ runNo: z.string().regex(RUN_NO),
386
+ profileCode: z.literal("JENKINS_GITOPS_IMAGE_WRITER"),
387
+ profileVersion: z.literal("2"),
388
+ planSessionNo: z.string().regex(PLAN_SESSION_NO),
389
+ planDigest: digest,
390
+ clientRequestId,
391
+ requestDigest: digest,
392
+ state: IntegrationBootstrapRunStateSchema,
393
+ version: nonnegativeInt32,
394
+ step: IntegrationBootstrapStepSchema,
395
+ disposition: IntegrationBootstrapRecoveryDispositionSchema.nullable(),
396
+ reconcileAllowed: z.boolean(),
397
+ recoverAllowed: z.boolean(),
398
+ reapplyAllowed: z.boolean(),
399
+ writeAttempted: z.boolean(),
400
+ writeAttemptCount: nonnegativeInt32,
401
+ firstWriteAttemptedAt: nullableInstant,
402
+ lastWriteAttemptedAt: nullableInstant,
403
+ ownershipEvidenceDigest: nullableDigest,
404
+ jenkinsMetadataEvidenceDigest: nullableDigest,
405
+ tokenClaimEvidenceDigest: nullableDigest,
406
+ finalEvidenceDigest: nullableDigest,
407
+ tokenVerifiedAt: nullableInstant,
408
+ errorCode: IntegrationBootstrapStoredErrorCodeSchema.nullable(),
409
+ retryable: z.boolean(),
410
+ createdAt: instant,
411
+ startedAt: nullableInstant,
412
+ completedAt: nullableInstant,
413
+ currentAction: IntegrationBootstrapActionViewSchema.nullable(),
414
+ lastAction: IntegrationBootstrapActionViewSchema.nullable()
415
+ }).strict();
416
+ export const IntegrationBootstrapRunViewSchema = RunObjectSchema.superRefine((run, context) => {
417
+ const issue = (path, message) => context.addIssue({ code: "custom", path: [path], message });
418
+ refineWriteTuple(run, issue);
419
+ refineChronology(run, issue);
420
+ for (const [path, action] of [["currentAction", run.currentAction], ["lastAction", run.lastAction]]) {
421
+ if (action != null && action.runNo !== run.runNo)
422
+ issue(path, `${path} must belong to the same run`);
423
+ }
424
+ const noEvidence = run.ownershipEvidenceDigest == null && run.jenkinsMetadataEvidenceDigest == null
425
+ && run.tokenClaimEvidenceDigest == null && run.finalEvidenceDigest == null && run.tokenVerifiedAt == null;
426
+ const noAllowed = !run.reconcileAllowed && !run.recoverAllowed && !run.reapplyAllowed;
427
+ const currentIsInitial = run.currentAction?.kind === "APPLY"
428
+ && run.currentAction.clientRequestId === run.clientRequestId
429
+ && run.currentAction.requestDigest === run.requestDigest;
430
+ if (run.state === "ACCEPTED") {
431
+ if (run.step !== "RESERVED" || run.disposition != null || !noEvidence || run.errorCode != null
432
+ || run.writeAttempted || run.startedAt != null || run.completedAt != null || run.retryable || !noAllowed
433
+ || !currentIsInitial
434
+ || !["AWAITING_AUTHORIZATION", "AUTHORIZING"].includes(run.currentAction?.state ?? "")
435
+ || run.lastAction != null)
436
+ issue("state", "ACCEPTED run tuple is invalid");
437
+ }
438
+ else if (run.state === "RUNNING") {
439
+ if (run.startedAt == null || run.completedAt != null || run.disposition != null
440
+ || run.ownershipEvidenceDigest != null || run.errorCode != null || run.retryable || !noAllowed
441
+ || !currentIsInitial || run.currentAction?.state !== "RUNNING" || run.lastAction != null) {
442
+ issue("state", "RUNNING run tuple is invalid");
443
+ }
444
+ }
445
+ else if (run.state === "UNKNOWN") {
446
+ const expectedReconcile = run.currentAction == null;
447
+ const expectedRecover = expectedReconcile && ["RECOVERABLE", "PAIRING_UNVERIFIED"].includes(run.disposition ?? "");
448
+ const expectedReapply = expectedReconcile && run.disposition === "UNTOUCHED";
449
+ if (run.startedAt == null || run.completedAt != null || run.disposition == null || run.disposition === "VERIFIED"
450
+ || run.ownershipEvidenceDigest == null || run.errorCode !== "INTEGRATION_BOOTSTRAP_RESULT_UNKNOWN"
451
+ || !run.retryable || run.lastAction == null || run.reconcileAllowed !== expectedReconcile
452
+ || run.recoverAllowed !== expectedRecover || run.reapplyAllowed !== expectedReapply) {
453
+ issue("state", "UNKNOWN run tuple is invalid");
454
+ }
455
+ if (run.currentAction != null && (run.currentAction.kind === "APPLY"
456
+ || !["AWAITING_AUTHORIZATION", "AUTHORIZING", "RUNNING"].includes(run.currentAction.state)))
457
+ issue("currentAction", "UNKNOWN run current action must be active recovery");
458
+ if (!["UNKNOWN", "SUCCEEDED", "FAILED", "EXPIRED"].includes(run.lastAction?.state ?? "")
459
+ || run.lastAction?.disposition !== run.disposition
460
+ || run.lastAction?.ownershipEvidenceDigest !== run.ownershipEvidenceDigest
461
+ || run.lastAction?.jenkinsMetadataEvidenceDigest !== run.jenkinsMetadataEvidenceDigest
462
+ || run.lastAction?.tokenClaimEvidenceDigest !== run.tokenClaimEvidenceDigest
463
+ || run.lastAction?.finalEvidenceDigest !== run.finalEvidenceDigest
464
+ || run.lastAction?.tokenVerifiedAt !== run.tokenVerifiedAt) {
465
+ issue("lastAction", "UNKNOWN run must expose its exact terminal evidence action");
466
+ }
467
+ if (run.disposition === "PAIRING_UNVERIFIED" && (run.jenkinsMetadataEvidenceDigest == null || run.tokenClaimEvidenceDigest != null
468
+ || run.finalEvidenceDigest != null || run.tokenVerifiedAt != null))
469
+ issue("disposition", "PAIRING_UNVERIFIED run evidence tuple is invalid");
470
+ }
471
+ else if (run.state === "SUCCEEDED") {
472
+ if (run.step !== "COMPLETE" || run.disposition !== "VERIFIED" || !run.writeAttempted
473
+ || run.ownershipEvidenceDigest == null || run.jenkinsMetadataEvidenceDigest == null
474
+ || run.tokenClaimEvidenceDigest == null || run.finalEvidenceDigest == null || run.tokenVerifiedAt == null
475
+ || run.errorCode != null || run.retryable || !noAllowed || run.startedAt == null || run.completedAt == null
476
+ || run.currentAction != null || run.lastAction == null
477
+ || !["APPLY", "RECOVER", "REAPPLY"].includes(run.lastAction.kind)
478
+ || run.lastAction.state !== "SUCCEEDED"
479
+ || run.lastAction.disposition !== run.disposition
480
+ || run.lastAction.ownershipEvidenceDigest !== run.ownershipEvidenceDigest
481
+ || run.lastAction.jenkinsMetadataEvidenceDigest !== run.jenkinsMetadataEvidenceDigest
482
+ || run.lastAction.tokenClaimEvidenceDigest !== run.tokenClaimEvidenceDigest
483
+ || run.lastAction.finalEvidenceDigest !== run.finalEvidenceDigest
484
+ || run.lastAction.tokenVerifiedAt !== run.tokenVerifiedAt)
485
+ issue("state", "SUCCEEDED run tuple is invalid");
214
486
  }
487
+ else if (run.currentAction != null || run.lastAction?.kind !== "APPLY"
488
+ || !["FAILED", "EXPIRED"].includes(run.lastAction.state) || run.completedAt == null
489
+ || run.lastAction.clientRequestId !== run.clientRequestId
490
+ || run.lastAction.requestDigest !== run.requestDigest
491
+ || run.errorCode == null || run.disposition != null || !noEvidence || run.writeAttempted
492
+ || run.lastAction.errorCode !== run.errorCode
493
+ || run.retryable || !noAllowed)
494
+ issue("state", "FAILED run tuple is invalid");
215
495
  });
216
496
  //# sourceMappingURL=schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/integration-bootstrap/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/integration-bootstrap/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AACpD,MAAM,QAAQ,GAAG,gCAAgC,CAAC;AAClD,MAAM,MAAM,GAAG,iBAAiB,CAAC;AACjC,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAC/C,MAAM,MAAM,GAAG,sBAAsB,CAAC;AACtC,MAAM,SAAS,GAAG,sBAAsB,CAAC;AACzC,MAAM,IAAI,GAAG,yGAAyG,CAAC;AAEvH,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;KACjE,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EACpE,oEAAoE,CACrE,CAAC;AACJ,MAAM,OAAO,GAAG,CAAC,OAAe,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;KACnF,KAAK,CAAC,QAAQ,CAAC;KACf,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EACpE,oEAAoE,CACrE,CAAC;AACJ,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CACzC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAClE,gDAAgD,CACjD,CAAC;AACF,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACxC,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;AACzC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAC1D,CAAC,KAAK,EAAE,EAAE,CAAC,2DAA2D,CAAC,IAAI,CAAC,KAAK,CAAC,EAClF,6EAA6E,CAC9E,CAAC;AACF,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;AAC3C,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC/E,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACrF,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAC3E,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAExC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;IACpE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ;eAC1C,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO;mBACvB,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnE,OAAO,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE;eACxB,aAAa;eACb,GAAG,CAAC,QAAQ,KAAK,EAAE;eACnB,GAAG,CAAC,QAAQ,KAAK,EAAE;eACnB,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,EAAE,oFAAoF,CAAC,CAAC;AAEzF,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,CAAC,IAAI,CAAC;IAC5D,wBAAwB,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS;CACxF,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AAChF,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1D,SAAS,EAAE,oBAAoB,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa;CAClF,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,IAAI,CAAC;IACrD,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS;CACjD,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC,IAAI,CAAC;IACxD,yBAAyB;IACzB,6BAA6B;IAC7B,sBAAsB;IACtB,sBAAsB;IACtB,0BAA0B;IAC1B,4BAA4B;IAC5B,gCAAgC;IAChC,qBAAqB;IACrB,yBAAyB;IACzB,6BAA6B;IAC7B,6CAA6C;IAC7C,2BAA2B;CAC5B,CAAC,CAAC;AACH,MAAM,UAAU,GAAG,mCAAmC,CAAC,OAAO,CAAC;AAE/D,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,SAAS,EAAE,mCAAmC;IAC9C,MAAM,EAAE,gCAAgC;IACxC,MAAM,EAAE,cAAc;IACtB,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC;CACzB,CAAC,CAAC,MAAM,EAAE,CAAC;AACZ,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,SAAS,EAAE,mCAAmC;IAC9C,MAAM,EAAE,cAAc;IACtB,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC;CACzB,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,6CAA6C,GAAG,CAAC,CAAC,MAAM,CAAC;IACpE,UAAU,EAAE,aAAa;IACzB,eAAe,EAAE,gBAAgB;IACjC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC3B,mBAAmB,EAAE,gBAAgB;IACrC,uBAAuB,EAAE,MAAM;IAC/B,uBAAuB,EAAE,aAAa;IACtC,4BAA4B,EAAE,gBAAgB;IAC9C,2BAA2B,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAChD,mBAAmB,EAAE,qCAAqC;IAC1D,uBAAuB,EAAE,MAAM;IAC/B,oBAAoB,EAAE,gCAAgC;IACtD,eAAe,EAAE,qCAAqC;IACtD,MAAM,EAAE,gCAAgC;CACzC,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC;IACzD,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC;IACrD,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAC9B,aAAa,EAAE,MAAM;IACrB,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,oDAAoD,CAAC;IACtF,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,6CAA6C,CAAC;IAC5E,KAAK,EAAE,mCAAmC;IAC1C,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;IACnB,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,2CAA2C,CAAC;IACvE,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC;IAC1C,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,yCAAyC,CAAC;IAC9D,MAAM,EAAE,aAAa;IACrB,WAAW,EAAE,gBAAgB;IAC7B,uBAAuB,EAAE,MAAM;IAC/B,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,mCAAmC,CAAC;IAC5D,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAC9C,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IAC1C,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;IAC7D,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;IAC5C,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACpC,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,2CAA2C,CAAC;IAC1E,gCAAgC,EAAE,CAAC,CAAC,OAAO,CACzC,wEAAwE;QACxE,oEAAoE;QACpE,8BAA8B,CAC/B;IACD,sBAAsB,EAAE,MAAM;IAC9B,8BAA8B,EAAE,MAAM;IACtC,eAAe,EAAE,6CAA6C;IAC9D,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;IAC5E,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;IAC3E,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC;IACzD,eAAe;IACf,aAAa,EAAE,MAAM;IACrB,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC;IAC5B,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC;IAC/B,iBAAiB,EAAE,QAAQ,CAAC,GAAG,CAAC;IAChC,UAAU,EAAE,OAAO;IACnB,eAAe,EAAE,OAAO;IACxB,UAAU,EAAE,MAAM;CACnB,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACxC,MAAM,KAAK,GAAG,CAAC,IAA4B,EAAE,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACrH,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClF,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAClG,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,sDAAsD,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAC7E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC9H,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACpH,IAAI,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI;WAC/E,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC7D,KAAK,CAAC,CAAC,UAAU,CAAC,EAAE,8CAA8C,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QACxD,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,uDAAuD,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,IAAI,CAAC,eAAe,CAAC,uBAAuB,KAAK,IAAI,CAAC,8BAA8B,EAAE,CAAC;QACzF,KAAK,CAAC,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,EAAE,2CAA2C,CAAC,CAAC;IACrG,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACpE,KAAK,CAAC,CAAC,iBAAiB,CAAC,EAAE,+CAA+C,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC;IAC5C,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC;IACrD,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAC9B,eAAe;IACf,aAAa,EAAE,MAAM;IACrB,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;IAC3C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC;IAClD,gBAAgB,EAAE,sBAAsB;IACxC,sBAAsB,EAAE,OAAO;CAChC,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IAC3C,IAAI,OAAO,CAAC,eAAe,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;QAClD,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC,CAAC;IACnH,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC;IAC5C,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC;IACrD,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAC9B,eAAe;IACf,aAAa,EAAE,MAAM;IACrB,MAAM,EAAE,uCAAuC;IAC/C,IAAI,EAAE,8BAA8B,CAAC,QAAQ,EAAE;IAC/C,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAClC,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACtC,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,OAAO;IAClB,WAAW,EAAE,eAAe;CAC7B,CAAC,CAAC,MAAM,EAAE,CAAC;AACZ,MAAM,CAAC,MAAM,iCAAiC,GAAG,qCAAqC,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACtH,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7G,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACnE,KAAK,CAAC,WAAW,EAAE,qCAAqC,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACnG,KAAK,CAAC,aAAa,EAAE,4CAA4C,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,CAC1B,OAAO,CAAC,IAAI,CAAC,sBAAsB,KAAK,OAAO,CAAC,SAAS;WACtD,OAAO,CAAC,IAAI,CAAC,eAAe,KAAK,OAAO,CAAC,eAAe;WACxD,OAAO,CAAC,IAAI,CAAC,aAAa,KAAK,OAAO,CAAC,aAAa;WACpD,OAAO,CAAC,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW;WAChD,OAAO,CAAC,IAAI,CAAC,cAAc,KAAK,OAAO,CAAC,cAAc,CAC1D;QAAE,KAAK,CAAC,MAAM,EAAE,mDAAmD,CAAC,CAAC;IACtE,IAAI,CAAC,wBAAwB,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACrF,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;YACrH,KAAK,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,mBAAmB,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAC1C,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI;eAC9E,OAAO,CAAC,WAAW,IAAI,IAAI,IAAI,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACtF,KAAK,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI;WACrF,OAAO,CAAC,WAAW,IAAI,IAAI;QAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,mBAAmB,CAAC,CAAC;AAC5F,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;AACpH,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AACzG,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1D,wBAAwB,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS;CAChG,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,IAAI,CAAC;IACnD,UAAU,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,sBAAsB;IAC/E,yBAAyB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,wBAAwB;IACnG,0BAA0B,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU;CACzE,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,6CAA6C,GAAG,CAAC,CAAC,IAAI,CAAC;IAClE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,oBAAoB;CAC9G,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,yCAAyC,GAAG,CAAC,CAAC,IAAI,CAAC;IAC9D,sCAAsC;IACtC,8CAA8C;IAC9C,6CAA6C;IAC7C,6CAA6C;IAC7C,oCAAoC;IACpC,oCAAoC;IACpC,8CAA8C;IAC9C,2CAA2C;IAC3C,+CAA+C;IAC/C,8CAA8C;IAC9C,uCAAuC;CACxC,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,oCAAoC;IAC1C,KAAK,EAAE,qCAAqC;IAC5C,WAAW,EAAE,6CAA6C,CAAC,QAAQ,EAAE;IACrE,kBAAkB,EAAE,gBAAgB;IACpC,eAAe;IACf,aAAa,EAAE,MAAM;IACrB,IAAI,EAAE,8BAA8B;IACpC,sBAAsB,EAAE,OAAO;IAC/B,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;IAC3B,iBAAiB,EAAE,gBAAgB;IACnC,qBAAqB,EAAE,eAAe;IACtC,oBAAoB,EAAE,eAAe;IACrC,uBAAuB,EAAE,cAAc;IACvC,6BAA6B,EAAE,cAAc;IAC7C,wBAAwB,EAAE,cAAc;IACxC,mBAAmB,EAAE,cAAc;IACnC,eAAe,EAAE,eAAe;IAChC,SAAS,EAAE,yCAAyC,CAAC,QAAQ,EAAE;IAC/D,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,eAAe;IAC1B,WAAW,EAAE,eAAe;CAC7B,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,SAAS,gBAAgB,CACvB,KAAwI,EACxI,KAA8C;IAE9C,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAAE,KAAK,CAAC,mBAAmB,EAAE,uCAAuC,CAAC,CAAC;IAChI,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,KAAK,CAAC,qBAAqB,IAAI,IAAI,IAAI,KAAK,CAAC,oBAAoB,IAAI,IAAI,CAAC,EAAE,CAAC;QACzG,KAAK,CAAC,gBAAgB,EAAE,qEAAqE,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,KAAK,CAAC,qBAAqB,IAAI,IAAI,IAAI,KAAK,CAAC,oBAAoB,IAAI,IAAI;WACtE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACxF,KAAK,CAAC,sBAAsB,EAAE,oCAAoC,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,KAOC,EACD,KAA8C;IAE9C,MAAM,MAAM,GAAG,CAAC,IAAmB,EAAE,KAAoB,EAAW,EAAE,CACpE,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxE,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;QAAE,KAAK,CAAC,WAAW,EAAE,oCAAoC,CAAC,CAAC;IACvG,IAAI,KAAK,CAAC,qBAAqB,IAAI,IAAI,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;QACnE,KAAK,CAAC,uBAAuB,EAAE,4BAA4B,CAAC,CAAC;IAC/D,CAAC;SAAM,IAAI,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAChE,KAAK,CAAC,uBAAuB,EAAE,sCAAsC,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,SAAS,CAAC;IACjE,IAAI,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,UAAU,CAAC;QAAE,KAAK,CAAC,iBAAiB,EAAE,0CAA0C,CAAC,CAAC;IACpH,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC;IAClH,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,eAAe,CAAC;QAAE,KAAK,CAAC,aAAa,EAAE,kCAAkC,CAAC,CAAC;AAC3G,CAAC;AAED,MAAM,CAAC,MAAM,oCAAoC,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;IACrG,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7G,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9E,KAAK,CAAC,wBAAwB,EAAE,kDAAkD,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,cAAc;QAAE,KAAK,CAAC,gBAAgB,EAAE,iCAAiC,CAAC,CAAC;IACrH,MAAM,UAAU,GAAG,MAAM,CAAC,uBAAuB,IAAI,IAAI,IAAI,MAAM,CAAC,6BAA6B,IAAI,IAAI;WACpG,MAAM,CAAC,wBAAwB,IAAI,IAAI,IAAI,MAAM,CAAC,mBAAmB,IAAI,IAAI,IAAI,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC;IACrH,IAAI,CAAC,wBAAwB,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACrE,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI;eAChG,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YAC3G,KAAK,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,KAAK,mBAAmB,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI;eACjF,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACnE,KAAK,CAAC,OAAO,EAAE,iCAAiC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI,IAAI,MAAM,CAAC,uBAAuB,IAAI,IAAI;eACjE,MAAM,CAAC,SAAS,KAAK,sCAAsC,IAAI,CAAC,MAAM,CAAC,SAAS;eAChF,MAAM,CAAC,WAAW,IAAI,IAAI;YAAE,KAAK,CAAC,OAAO,EAAE,iCAAiC,CAAC,CAAC;QACrF,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;YACxG,KAAK,CAAC,aAAa,EAAE,0CAA0C,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC;YAClC,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,oBAAoB;SACtE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;YACrC,KAAK,CAAC,aAAa,EAAE,6CAA6C,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,MAAM,CAAC,WAAW,KAAK,oBAAoB,IAAI,CACjD,MAAM,CAAC,6BAA6B,IAAI,IAAI,IAAI,MAAM,CAAC,wBAAwB,IAAI,IAAI;eACpF,MAAM,CAAC,mBAAmB,IAAI,IAAI,IAAI,MAAM,CAAC,eAAe,IAAI,IAAI,CACxE;YAAE,KAAK,CAAC,aAAa,EAAE,8CAA8C,CAAC,CAAC;IAC1E,CAAC;SAAM,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QACxC,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI,IAAI,MAAM,CAAC,uBAAuB,IAAI,IAAI;eAC/F,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;YAClF,KAAK,CAAC,OAAO,EAAE,mCAAmC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,CACjC,MAAM,CAAC,WAAW,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,cAAc;eACxD,MAAM,CAAC,6BAA6B,IAAI,IAAI,IAAI,MAAM,CAAC,wBAAwB,IAAI,IAAI;eACvF,MAAM,CAAC,mBAAmB,IAAI,IAAI,IAAI,MAAM,CAAC,eAAe,IAAI,IAAI,CACxE;YAAE,KAAK,CAAC,OAAO,EAAE,oDAAoD,CAAC,CAAC;QACxE,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC;YAClC,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,kBAAkB,EAAE,oBAAoB;SAC7F,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;YAAE,KAAK,CAAC,aAAa,EAAE,6CAA6C,CAAC,CAAC;IAC5G,CAAC;SAAM,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI;WACxF,CAAC,UAAU,IAAI,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,SAAS;QAAE,KAAK,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,KAAK,mBAAmB,CAAC,CAAC;AACtH,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACrC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IAC5C,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC;IACrD,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAC9B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC;IAChD,UAAU,EAAE,MAAM;IAClB,eAAe;IACf,aAAa,EAAE,MAAM;IACrB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC/B,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;IAChD,gBAAgB,EAAE,sBAAsB;IACxC,sBAAsB,EAAE,OAAO;CAChC,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IAC3C,IAAI,OAAO,CAAC,eAAe,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;QACjD,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC,CAAC;IAClH,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACrC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IAC5C,IAAI,EAAE,oCAAoC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7D,eAAe;IACf,aAAa,EAAE,MAAM;IACrB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;IAC1C,gBAAgB,EAAE,sBAAsB;IACxC,sBAAsB,EAAE,OAAO;CAChC,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IAC3C,IAAI,OAAO,CAAC,eAAe,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;QACjD,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC,CAAC;IAClH,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;IAC/B,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC;IACrD,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAC9B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC;IAChD,UAAU,EAAE,MAAM;IAClB,eAAe;IACf,aAAa,EAAE,MAAM;IACrB,KAAK,EAAE,kCAAkC;IACzC,OAAO,EAAE,gBAAgB;IACzB,IAAI,EAAE,8BAA8B;IACpC,WAAW,EAAE,6CAA6C,CAAC,QAAQ,EAAE;IACrE,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE;IAC7B,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;IAC3B,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;IAC3B,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;IAC3B,iBAAiB,EAAE,gBAAgB;IACnC,qBAAqB,EAAE,eAAe;IACtC,oBAAoB,EAAE,eAAe;IACrC,uBAAuB,EAAE,cAAc;IACvC,6BAA6B,EAAE,cAAc;IAC7C,wBAAwB,EAAE,cAAc;IACxC,mBAAmB,EAAE,cAAc;IACnC,eAAe,EAAE,eAAe;IAChC,SAAS,EAAE,yCAAyC,CAAC,QAAQ,EAAE;IAC/D,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,eAAe;IAC1B,WAAW,EAAE,eAAe;IAC5B,aAAa,EAAE,oCAAoC,CAAC,QAAQ,EAAE;IAC9D,UAAU,EAAE,oCAAoC,CAAC,QAAQ,EAAE;CAC5D,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,iCAAiC,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;IAC5F,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7G,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC,CAAU,EAAE,CAAC;QAC7G,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK;YAAE,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,8BAA8B,CAAC,CAAC;IACvG,CAAC;IACD,MAAM,UAAU,GAAG,GAAG,CAAC,uBAAuB,IAAI,IAAI,IAAI,GAAG,CAAC,6BAA6B,IAAI,IAAI;WAC9F,GAAG,CAAC,wBAAwB,IAAI,IAAI,IAAI,GAAG,CAAC,mBAAmB,IAAI,IAAI,IAAI,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC;IAC5G,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;IACtF,MAAM,gBAAgB,GAAG,GAAG,CAAC,aAAa,EAAE,IAAI,KAAK,OAAO;WACvD,GAAG,CAAC,aAAa,CAAC,eAAe,KAAK,GAAG,CAAC,eAAe;WACzD,GAAG,CAAC,aAAa,CAAC,aAAa,KAAK,GAAG,CAAC,aAAa,CAAC;IAC3D,IAAI,GAAG,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QAC7B,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI;eACvF,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,SAAS;eACrG,CAAC,gBAAgB;eACjB,CAAC,CAAC,wBAAwB,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC;eACnF,GAAG,CAAC,UAAU,IAAI,IAAI;YAAE,KAAK,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAC;IACjF,CAAC;SAAM,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI;eACxE,GAAG,CAAC,uBAAuB,IAAI,IAAI,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,SAAS;eAC3F,CAAC,gBAAgB,IAAI,GAAG,CAAC,aAAa,EAAE,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;YAC7F,KAAK,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,iBAAiB,GAAG,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC;QACpD,MAAM,eAAe,GAAG,iBAAiB,IAAI,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QACnH,MAAM,eAAe,GAAG,iBAAiB,IAAI,GAAG,CAAC,WAAW,KAAK,WAAW,CAAC;QAC7E,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,IAAI,GAAG,CAAC,WAAW,KAAK,UAAU;eAC1G,GAAG,CAAC,uBAAuB,IAAI,IAAI,IAAI,GAAG,CAAC,SAAS,KAAK,sCAAsC;eAC/F,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,IAAI,GAAG,CAAC,gBAAgB,KAAK,iBAAiB;eACtF,GAAG,CAAC,cAAc,KAAK,eAAe,IAAI,GAAG,CAAC,cAAc,KAAK,eAAe,EAAE,CAAC;YACxF,KAAK,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,GAAG,CAAC,aAAa,IAAI,IAAI,IAAI,CAC/B,GAAG,CAAC,aAAa,CAAC,IAAI,KAAK,OAAO;eAC/B,CAAC,CAAC,wBAAwB,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAC3F;YAAE,KAAK,CAAC,eAAe,EAAE,oDAAoD,CAAC,CAAC;QAChF,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC;eACjF,GAAG,CAAC,UAAU,EAAE,WAAW,KAAK,GAAG,CAAC,WAAW;eAC/C,GAAG,CAAC,UAAU,EAAE,uBAAuB,KAAK,GAAG,CAAC,uBAAuB;eACvE,GAAG,CAAC,UAAU,EAAE,6BAA6B,KAAK,GAAG,CAAC,6BAA6B;eACnF,GAAG,CAAC,UAAU,EAAE,wBAAwB,KAAK,GAAG,CAAC,wBAAwB;eACzE,GAAG,CAAC,UAAU,EAAE,mBAAmB,KAAK,GAAG,CAAC,mBAAmB;eAC/D,GAAG,CAAC,UAAU,EAAE,eAAe,KAAK,GAAG,CAAC,eAAe,EAAE,CAAC;YAC/D,KAAK,CAAC,YAAY,EAAE,4DAA4D,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,GAAG,CAAC,WAAW,KAAK,oBAAoB,IAAI,CAC9C,GAAG,CAAC,6BAA6B,IAAI,IAAI,IAAI,GAAG,CAAC,wBAAwB,IAAI,IAAI;eAC9E,GAAG,CAAC,mBAAmB,IAAI,IAAI,IAAI,GAAG,CAAC,eAAe,IAAI,IAAI,CAClE;YAAE,KAAK,CAAC,aAAa,EAAE,kDAAkD,CAAC,CAAC;IAC9E,CAAC;SAAM,IAAI,GAAG,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QACrC,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,KAAK,UAAU,IAAI,CAAC,GAAG,CAAC,cAAc;eAC7E,GAAG,CAAC,uBAAuB,IAAI,IAAI,IAAI,GAAG,CAAC,6BAA6B,IAAI,IAAI;eAChF,GAAG,CAAC,wBAAwB,IAAI,IAAI,IAAI,GAAG,CAAC,mBAAmB,IAAI,IAAI,IAAI,GAAG,CAAC,eAAe,IAAI,IAAI;eACtG,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI;eACxG,GAAG,CAAC,aAAa,IAAI,IAAI,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI;eACnD,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;eAC9D,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK,WAAW;eACpC,GAAG,CAAC,UAAU,CAAC,WAAW,KAAK,GAAG,CAAC,WAAW;eAC9C,GAAG,CAAC,UAAU,CAAC,uBAAuB,KAAK,GAAG,CAAC,uBAAuB;eACtE,GAAG,CAAC,UAAU,CAAC,6BAA6B,KAAK,GAAG,CAAC,6BAA6B;eAClF,GAAG,CAAC,UAAU,CAAC,wBAAwB,KAAK,GAAG,CAAC,wBAAwB;eACxE,GAAG,CAAC,UAAU,CAAC,mBAAmB,KAAK,GAAG,CAAC,mBAAmB;eAC9D,GAAG,CAAC,UAAU,CAAC,eAAe,KAAK,GAAG,CAAC,eAAe;YAAE,KAAK,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAC;IAClH,CAAC;SAAM,IAAI,GAAG,CAAC,aAAa,IAAI,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,KAAK,OAAO;WACjE,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI;WAChF,GAAG,CAAC,UAAU,CAAC,eAAe,KAAK,GAAG,CAAC,eAAe;WACtD,GAAG,CAAC,UAAU,CAAC,aAAa,KAAK,GAAG,CAAC,aAAa;WAClD,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,cAAc;WACrF,GAAG,CAAC,UAAU,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS;WAC1C,GAAG,CAAC,SAAS,IAAI,CAAC,SAAS;QAAE,KAAK,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;AACpF,CAAC,CAAC,CAAC"}